=============
* Introduce an Instance() class method to BLE to allow access to the BLE
singleton(s) using instanceID. Calling BLE::Instance() is preferable to
constructing a BLE object directly because Instance() returns references to
internally created singletons.
* We've added an initial prototype for a yotta-config based initialization for BLE transports.
It is conceivable to have multiple BLE transports available to a system
concurrently in which case Instance() can be passed an instanceID.
There's also a BLE::NUM_INSTANCES--instanceID passed to Instance() should be
less than NUM_INSTANCES for the returned BLE singleton to be useful.
The config system now allows the target to specify multiple BLE instances.
BLE::Instance() and BLE constructor rely upon a static array of initializers
to create actual BLE transport instances. A description of these instances
and initializers is supposed to be put in some .json file contributing to
yotta's configuration (typically the target.json). Here's a sample:
"config": {
...
"ble_instances": {
"count": 1,
"0" : {
"initializer" : "createBLEInstance"
}
}
}
Refer to http://yottadocs.mbed.com/reference/config.html.
Note: The configuration system is currently experimental. Some of the
behaviour described below may change in backwards-incompatible ways with
minor updates to yotta.
The use of this feature is optional. Initialization would continue to work
like before as long as there is a default createBLEInstance() method
available.
* We've updated our support for Google's Eddystone beacon by adding the EddystoneConfigService.
* Added onConnection() and onDisconnection() now append to a callback chain internally.
Please note that this has also changed the callbackType for onDisconnection; resulting in a minor breaking change for API.
All previous programs using onDisconnection() would need to adapt.
* Handle the case of a NULL transport pointer for BLE.
* We now disallow copy constructor and assignment operator for BLE.
=============
This is a minor release.
Enhancements
~~~~~~~~~~~~
* Switch github repo URL to ARMmbed organization: https://github.com/ARMmbed/BLE_API.
We were previously hosted in the mbedmicro organization.
* Extend onRadioNotification() to take a <object, member> pair. This also
introduces a new GAP API: initRadioNotification() which porters of BLE_API
should implement.
* Rename iBeaconService as iBeacon. This is not a Service in the BLE sense.
* Pull from Ollie Ford (#56): GattCharacteristic constructors now expose optional descriptors.
* Pull from AFernandes: change DiscoveredCharacteristic API to return long or short UUIDs.
* Provide a useful initial implementation for GattClient::discoverServices().
Bugfixes
~~~~~~~~
none.
=============
This is a minor release.
Enhancements
~~~~~~~~~~~~
* fix#53: add GattClient API for handling HVX Events (notifications and
indications). Refer to GattClient::onHVX(HVXCallback_t ...) and
GattHVXCallbackParams.
* Add empty (void) declarations for unused variables in the default
implementations for several API (in Gap, GattServer, GattClient, etc). This
avoids compiler warnings.
Bugfixes
~~~~~~~~
none.