FastLED 3.9.15
Loading...
Searching...
No Matches

◆ startBleRemote()

fl::json AutoResearchRemoteControl::startBleRemote ( )

Start BLE remote (creates BLE GATT server + second Remote instance)

Returns
JSON result from startBle()

Definition at line 3662 of file AutoResearchRemote.cpp.

3662 {
3663 if (mBleRemote) {
3664 fl::json response = fl::json::object();
3665 response.set("success", true);
3666 response.set("message", "BLE remote already active");
3667 response.set("device_name", AUTORESEARCH_BLE_DEVICE_NAME);
3668 return response;
3669 }
3670
3671 // Create BLE GATT server (heap-allocates transport state)
3672 // On stub platforms, createTransport returns nullptr and logs FL_ERROR.
3674 if (!mBleState) {
3675 fl::json response = fl::json::object();
3676 response.set("success", false);
3677 response.set("error", "BLE not available on this platform");
3678 return response;
3679 }
3680
3681 // Get transport lambdas that capture mBleState
3683
3684 // Create BLE Remote instance with BLE transport
3685 mBleRemote = fl::make_unique<fl::Remote>(callbacks.first, callbacks.second);
3686
3687 // Register RPC methods on the BLE remote
3689
3690 mState->ble_server_active = true;
3692
3693 fl::json response = fl::json::object();
3694 response.set("success", true);
3695 response.set("device_name", AUTORESEARCH_BLE_DEVICE_NAME);
3696 response.set("service_uuid", FL_BLE_SERVICE_UUID);
3697 response.set("rx_uuid", FL_BLE_CHAR_RX_UUID);
3698 response.set("tx_uuid", FL_BLE_CHAR_TX_UUID);
3699 FL_WARN("[BLE] Remote created and advertising");
3700 return response;
3701}
AutoResearchBleState & getBleState()
Get current BLE autoresearch state.
#define AUTORESEARCH_BLE_DEVICE_NAME
#define FL_BLE_CHAR_TX_UUID
Definition ble.h:41
#define FL_BLE_CHAR_RX_UUID
Definition ble.h:40
#define FL_BLE_SERVICE_UUID
Definition ble.h:39
fl::net::ble::TransportState * mBleState
fl::unique_ptr< fl::Remote > mBleRemote
fl::shared_ptr< AutoResearchState > mState
void registerAllMethods(fl::Remote *remote)
Register all RPC methods on a given Remote instance.
static json object() FL_NOEXCEPT
Definition json.h:692
#define FL_WARN(X)
Definition log.h:276
TransportState * createTransport(const char *) FL_NOEXCEPT
Create BLE GATT server, heap-allocate transport state.
Definition ble.cpp.hpp:21
fl::pair< fl::function< fl::optional< fl::json >()>, fl::function< void(const fl::json &)> > getTransportCallbacks(TransportState *) FL_NOEXCEPT
Get RequestSource and ResponseSink lambdas for fl::Remote.
Definition ble.cpp.hpp:36
fl::enable_if<!fl::is_array< T >::value, unique_ptr< T > >::type make_unique(Args &&... args) FL_NOEXCEPT
Definition unique_ptr.h:261

References AUTORESEARCH_BLE_DEVICE_NAME, AutoResearchBleState::ble_server_active, fl::net::ble::createTransport(), FL_BLE_CHAR_RX_UUID, FL_BLE_CHAR_TX_UUID, FL_BLE_SERVICE_UUID, FL_WARN, getBleState(), fl::net::ble::getTransportCallbacks(), fl::make_unique(), mBleRemote, mBleState, mState, fl::json::object(), and registerAllMethods().

Referenced by registerFunctions().

+ Here is the call graph for this function:
+ Here is the caller graph for this function: