Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
Fork of X_NUCLEO_IDB0XA1 by
Diff: source/BlueNRGDevice.cpp
- Revision:
- 242:058b2e731adc
- Parent:
- 191:d22cc4715b0c
- Parent:
- 229:9981f62cdb1a
- Child:
- 247:932a44bdff4f
diff -r e8fa3129410a -r 058b2e731adc source/BlueNRGDevice.cpp --- a/source/BlueNRGDevice.cpp Fri Mar 18 12:10:20 2016 +0100 +++ b/source/BlueNRGDevice.cpp Mon Jun 20 14:59:06 2016 +0200 @@ -142,7 +142,7 @@ /* ToDo: Clear memory contents, reset the SD, etc. */ // By default, we set the device GAP role to PERIPHERAL - btle_init(BlueNRGGap::getInstance().getIsSetAddress(), GAP_PERIPHERAL_ROLE_IDB04A1); + btleInit(BlueNRGGap::getInstance().getIsSetAddress(), GAP_PERIPHERAL_ROLE_IDB04A1); isInitialized = true; BLE::InitializationCompleteCallbackContext context = { @@ -159,9 +159,9 @@ @brief Resets the BLE HW, removing any existing services and characteristics @param[in] void - @returns ble_error_t + @returns void */ -ble_error_t BlueNRGDevice::reset(void) +void BlueNRGDevice::reset(void) { wait_us(500); @@ -173,10 +173,7 @@ /* Wait for the radio to come back up */ wait_us(500); - - isInitialized = false; - return BLE_ERROR_NONE; } /*! @@ -205,14 +202,14 @@ /*! @brief get GAP version + @brief Get the BLE stack version information @param[in] void @returns char * + @returns char * */ const char *BlueNRGDevice::getVersion(void) { - char *version = new char[6]; - memcpy((void *)version, "1.0.0", 5); - return version; + return getVersionString(); } /**************************************************************************/ @@ -251,12 +248,43 @@ /**************************************************************************/ /*! - @brief shut down the the BLE device + @brief shut down the BLE device @param[out] error if any */ /**************************************************************************/ ble_error_t BlueNRGDevice::shutdown(void) { - return reset(); + if (!isInitialized) { + return BLE_ERROR_INITIALIZATION_INCOMPLETE; + } + + /* Reset the BlueNRG device first */ + reset(); + + /* Shutdown the BLE API and BlueNRG glue code */ + ble_error_t error; + + /* GattServer instance */ + error = BlueNRGGattServer::getInstance().reset(); + if (error != BLE_ERROR_NONE) { + return error; + } + + /* GattClient instance */ + error = BlueNRGGattClient::getInstance().reset(); + if (error != BLE_ERROR_NONE) { + return error; + } + + /* Gap instance */ + error = BlueNRGGap::getInstance().reset(); + if (error != BLE_ERROR_NONE) { + return error; + } + + isInitialized = false; + + return BLE_ERROR_NONE; + } /**