Release 2.0.0


* Major change to the APIs around stack initialization. BLE::init() is now
  meant to only trigger the initialization of the underlying BLE stack. init()
  now takes a completion callback as an optional parameter; this callback gets
  invoked when initialization completes.

    - There's a new type: BLE::InitializationCompleteCallback_t

    - There's a new API: BLEInstanceBase::hasInitialized() which transports
      need to implement.

    - If no init-completion callback is setup, the application can still
      determine the status of initialization using BLE::hasInitialized().

    !This update may require in a minor change to existing apps!

    mbed-classic demos would look something like:

    main() {
        while (!BLE::Instance().hasInitialized()) {
            /* spin wait */

        /* rest of the initialization ending in the waitForEvent loop */


    whereas mbedOS demos would look like:

    void bleInitComplete(BLE &ble, ble_error_t error)

        if (error != BLE_ERROR_NONE) {
            WsfTrace("initailization failed with error: %u", error);

        if (ble.getInstanceID() == BLE::DEFAULT_INSTANCE) {
            /* use the BLE instance */

    extern "C" void app_start(int argc, char *argv[])

    The Nordic stack initializes right-away, and so existing demos based on Nordic should continue to work.

* There's a new API: BLE::getInstanceID(), which simply returns the ID of an

* Reduce the memory footprint consumed by a FunctionPointerWithContext to 20
  bytes (originally, it was 32 bytes !). Also enforce alignment constraints
  of the embedded pointer to member function. This should help with the size
  of a GattCharacteristic.

* Add EnvironmentalService.h under services/.

* There have been minor improvements to EddystoneService and EddystoneConfigService.

* We've added a to help guide user contributions.
This commit is contained in:
Rohit Grover 2015-10-30 15:18:02 +00:00
parent 9eec2467f2
commit 2f92904fbe
2 changed files with 10 additions and 3 deletions

7 Normal file
View file

@ -0,0 +1,7 @@
# Hello!
We are an open source project of [ARM mbed]( Contributions via [pull request](, and [bug reports]( are welcome!
Please submit your pull request to the 'develop' branch of this module. Commits to develop will merge into master at the time of the next release.
# Contributor agreement
For your pull request to be accepted, we will need you to agree to our [contributor agreement]( to give us the necessary rights to use and distribute your contributions. (To click through the agreement create an account on and log in.)

View file

@ -1,6 +1,6 @@
"name": "ble",
"version": "1.1.0",
"version": "2.0.0",
"description": "The BLE module offers a high level abstraction for using Bluetooth Low Energy on multiple platforms.",
"keywords": [
@ -26,10 +26,10 @@
"x-nucleo-idb0xa1": "ARMmbed/ble-x-nucleo-idb0xa1"
"nrf51822": {
"ble-nrf51822": "^1.0.0"
"ble-nrf51822": "^2.0.0"
"cordio": {
"ble-wicentric": "~0.0.0"
"ble-wicentric": "~0.0.4"
"mbed-classic": {
"mbed-classic": "~0.0.1"