Commit graph

34 commits

Author SHA1 Message Date
Rohit Grover
34c8447a63 version v2.0.4 2015-11-13 08:20:21 +00:00
Rohit Grover
73559d3bef version v2.0.3 2015-11-03 13:18:50 +00:00
Rohit Grover
2d6aade713 version v2.0.2 2015-11-03 12:33:35 +00:00
Rohit Grover
9d92facf33 version v2.0.1 2015-11-02 17:47:55 +00:00
Rohit Grover
2f92904fbe 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() {
        BLE::Instance().init();
        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)
    {
        WsfTrace("bleInitComplete");

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

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

    extern "C" void app_start(int argc, char *argv[])
    {
        BLE::Instance().init(bleInitComplete);
    }
    ```

    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
  instance.

* 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 CONTRIBUTING.md to help guide user contributions.
2015-11-02 08:52:41 +00:00
Rohit Grover
e0ef88f47d Merge branch 'master' into develop. 2015-10-30 08:42:53 +00:00
Rohit Grover
902e17e300 version v1.1.0 2015-10-28 12:56:15 +00:00
Johnny Robeson
8aaa385ed5 use the github url public url in module.json 2015-10-24 02:51:07 -04:00
Rohit Grover
5cb478cab6 Merge branch 'master' into develop 2015-10-23 14:47:28 +01:00
Rohit Grover
7aac367d99 add a target specific dependency 2015-10-23 14:34:25 +01:00
Bogdan Marinescu
0e54ba6c70 version v1.0.0 2015-10-19 16:17:06 +03:00
Bogdan Marinescu
df8a41c80a Updated dependencies 2015-10-19 16:17:06 +03:00
Vincent Coubard
df088f57aa Add st-ble-shield as a possible target dependency. 2015-10-09 14:58:16 +01:00
Rohit Grover
91239f6b7c Release 0.4.8
=============

* 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.
2015-09-29 09:37:40 +01:00
Rohit Grover
5bf17c0e7c version v0.4.7 2015-08-13 11:10:40 +01:00
Rohit Grover
8de531a7b5 depend on an updated version of nRF51822 which provides event handling through minar. 2015-08-13 11:08:32 +01:00
Rohit Grover
9d7a7568b8 Use mbed-os as a target dependency.
This will be provided by the target configs.
2015-08-13 11:03:28 +01:00
Rohit Grover
d5c5335fce version v0.4.6 2015-08-11 15:03:16 +01:00
Rohit Grover
a15780a712 require 0.4.6 of nRF51 because of the implementation of connHandle field in callbacks. 2015-08-11 14:55:13 +01:00
Rohit Grover
bc899071d2 oops. ble depends on nrf51822-v0.4.5. 2015-08-11 07:13:10 +01:00
Rohit Grover
3aac9f7c90 version v0.4.5 2015-08-10 14:54:59 +01:00
Rohit Grover
340a046a8c update module.json to depend on mbed-drivers instead of mbed-core 2015-08-10 08:36:41 +01:00
Rohit Grover
3d6893f3da version v0.4.4 2015-08-07 15:50:59 +01:00
Rohit Grover
00e76777b2 add yotta dependency for mbed-core 2015-08-07 15:50:03 +01:00
Rohit Grover
5422ec45c3 we now depend on v0.4.4 of ble-nrf51822 2015-08-07 15:42:49 +01:00
Rohit Grover
a9561faea1 host repository has been renamed to github/ARMmbed/ble. 2015-08-07 15:29:34 +01:00
Rohit Grover
2cf2c2f52d version v0.4.3 2015-07-22 10:14:56 +01:00
Rohit Grover
1842576f26 Release 0.4.3
=============

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.
2015-07-21 12:01:59 +01:00
Rohit Grover
98261b871b switch repo URL to ARMmbed organization. 2015-07-14 08:05:20 +01:00
Rohit Grover
74191e254b module.json: depend on mbed-classic only for mbed-classic builds. 2015-07-13 10:05:56 +01:00
Rohit Grover
33a70b4655 Release 0.4.2
=============

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.
2015-07-06 09:35:41 +01:00
Rohit Grover
4b21112e34 update module.json with version numbers 2015-07-03 11:09:04 +01:00
James Crosby
c7dbf2b071 use mbed-classic to build (this will probably be a target-dependendency in the future) 2015-07-02 11:31:47 +01:00
Rohit Grover
75beb80315 switch to a yotta layout 2015-06-19 13:37:31 +01:00