High level Bluetooth Low Energy API and radio abstraction layer
Fork of BLE_API by
Diff: source/BLE.cpp
- Revision:
- 912:f728aa46e7df
- Parent:
- 907:f9a79127973a
- Child:
- 1074:1fedc77d9add
diff -r 885ee648c6ab -r f728aa46e7df source/BLE.cpp --- a/source/BLE.cpp Thu Nov 26 12:52:03 2015 +0000 +++ b/source/BLE.cpp Thu Nov 26 12:52:03 2015 +0000 @@ -15,15 +15,16 @@ */ #include "ble/BLE.h" +#include "ble/BLEInstanceBase.h" #if defined(TARGET_OTA_ENABLED) #include "ble/services/DFUService.h" #endif ble_error_t -BLE::init() +BLE::initImplementation(FunctionPointerWithContext<InitializationCompleteCallbackContext *> callback) { - ble_error_t err = transport->init(); + ble_error_t err = transport->init(instanceID, callback); if (err != BLE_ERROR_NONE) { return err; } @@ -105,7 +106,7 @@ return badSingleton; } -BLE::BLE(InstanceID_t instanceID) : transport() +BLE::BLE(InstanceID_t instanceIDIn) : instanceID(instanceIDIn), transport() { static BLEInstanceBase *transportInstances[NUM_INSTANCES]; @@ -117,4 +118,113 @@ } else { transport = NULL; } +} + +bool BLE::hasInitialized(void) const +{ + if (!transport) { + error("bad handle to underlying transport"); + } + + return transport->hasInitialized(); +} + +ble_error_t BLE::shutdown(void) +{ + clearAdvertisingPayload(); + if (!transport) { + error("bad handle to underlying transport"); + } + + return transport->shutdown(); +} + +const char *BLE::getVersion(void) +{ + if (!transport) { + error("bad handle to underlying transport"); + } + + return transport->getVersion(); +} + +const Gap &BLE::gap() const +{ + if (!transport) { + error("bad handle to underlying transport"); + } + + return transport->getGap(); +} + +Gap &BLE::gap() +{ + if (!transport) { + error("bad handle to underlying transport"); + } + + return transport->getGap(); +} + +const GattServer& BLE::gattServer() const +{ + if (!transport) { + error("bad handle to underlying transport"); + } + + return transport->getGattServer(); +} + +GattServer& BLE::gattServer() +{ + if (!transport) { + error("bad handle to underlying transport"); + } + + return transport->getGattServer(); +} + +const GattClient& BLE::gattClient() const +{ + if (!transport) { + error("bad handle to underlying transport"); + } + + return transport->getGattClient(); +} + +GattClient& BLE::gattClient() +{ + if (!transport) { + error("bad handle to underlying transport"); + } + + return transport->getGattClient(); +} + +const SecurityManager& BLE::securityManager() const +{ + if (!transport) { + error("bad handle to underlying transport"); + } + + return transport->getSecurityManager(); +} + +SecurityManager& BLE::securityManager() +{ + if (!transport) { + error("bad handle to underlying transport"); + } + + return transport->getSecurityManager(); +} + +void BLE::waitForEvent(void) +{ + if (!transport) { + error("bad handle to underlying transport"); + } + + transport->waitForEvent(); } \ No newline at end of file