Commit graph

553 commits

Author SHA1 Message Date
Andres Amaya Garcia
0429643609 Fix comment typo 2015-12-11 18:19:10 +00:00
Andres Amaya Garcia
7bf81e7edb Improve shutdown to clear BLE API and not just SD
Improve the shutdown functionality, such that a call to ble.shutdown() from
the user application clears the API and nRF5x state and NOT only the
SoftDevice. To achieve this the following changes are introduced:

* Add a protected member cleanup() to nRF5xGap, nRF5xGattClient,
nRF5xGattServer, nRF5xSecurityManager and nRF5xServiceDiscovery.
* Modify the shutdown() implementation in nRF5xn such that it also calls the
static member shutdown() exposed by the BLE API in Gap.h, SecurityManager.h,
GattClient.h and GattServer.h.
* Modify nRF5xGattClient, nRF5xGattServer and nRF5xSecurityManager
classes so that they dynamically create their respective objects only if
needed. Previously the GattClient, GattServer and SecurityManager objects were
declared as static, which means that they were always present even though they
were not always needed. This increases memory consumption unnecessarily.
Furthermore, pointers to the object instances are stored in static members of
the classes as specified by the BLE API base classes. This ensures that
calls to shutdown do not require calls to getInstance() functions that would
otherwise result in undesired memory allocations.
* nRF5xGap object is always needed, so this remains allocated statically. But
the reference in Gap is pointed to this object.

The shutdown procedure is as follows:

1. The user calls ble.shutdown() which executes the code in nRF5xn::shutdown()
1. The SoftDevice is shutdown
1. The static members of Gap.h, SecurityManager.h, GattClient.h and
GattServer.h are called to clean up their own state.

If at any point an error occur during the last step, BLE_ERROR_INVALID_STATE is
returned.
2015-12-11 17:56:57 +00:00
Rohit Grover
0583503b05 version v2.2.5 2015-12-11 09:24:29 +00:00
Rohit Grover
d72e2b71d0 version v2.2.4 2015-12-11 09:24:21 +00:00
Rohit Grover
2405f0cb1f Merge pull request #86 from marcuschangarm/bond
Added SecurityManager::setLinkSecurity call for elevating security settings on a particular connection.
2015-12-11 09:20:50 +00:00
Marcus Chang
b2cb566312 Added SecurityManager::setLinkSecurity call for elevating security settings on a particular connection. 2015-12-10 15:09:00 +00:00
Rohit Grover
599bd976d3 Release 2.2.3
=============

* Added support for byte ordering parameter to UUID construction for long UUIDs.

* Added -Wno-unused-function to supress-warnings.cmake.
2015-12-10 09:22:04 +00:00
Rohit Grover
51f614800a version v2.2.2 2015-12-08 13:59:21 +00:00
Rohit Grover
6a0c605d44 Merge pull request pull/83 i.e. commit '6507b4a50ce849db7e5e541dfd03accfc38f1b6f' into develop 2015-12-08 13:58:32 +00:00
Rohit Grover
a605c77a0b version v2.2.1 2015-12-08 11:21:52 +00:00
Rohit Grover
b96c0a6e72 enforce dependency upon ble version >= 2.1.10
We require changes for APIs involved in UUID construction.
2015-12-08 11:21:12 +00:00
Rohit Grover
dada1de8fc Merge pull request #82 from marcuschangarm/endian
WIP: UUID endian change
2015-12-08 11:18:44 +00:00
Marcus Chang
59fa852bea Added bit order parameter to UUID construction. 2015-12-07 13:35:45 +00:00
Andres Amaya Garcia
6507b4a50c Add -Wno-unused-function to supress-warnings.cmake 2015-12-02 16:13:18 +00:00
Marcus Chang
e554200f5e Removed endian conversion in custom helper functions. 2015-12-02 15:39:06 +00:00
Rohit Grover
9412d6745b version v2.2.0 2015-12-02 15:27:13 +00:00
Rohit Grover
47a8ebf2bd Merge branch 'LiyouZhou-split_nordic_sdk' into develop 2015-12-02 15:24:29 +00:00
Rohit Grover
02c3ca3630 updating dep on nrf51-sdk to ^1.0.0 2015-12-02 15:24:00 +00:00
Rohit Grover
264a4ae4d7 Merge branch 'split_nordic_sdk' of https://github.com/LiyouZhou/ble-nrf51822 into LiyouZhou-split_nordic_sdk 2015-12-02 15:21:35 +00:00
Rohit Grover
13efb9a83c version v2.1.4 2015-12-02 13:10:48 +00:00
Rohit Grover
599b8ed7f8 Merge branch 'marcuschangarm-uuid' into develop 2015-12-02 13:10:05 +00:00
Rohit Grover
d7834bc274 replace some loops with memcpy() 2015-12-02 13:09:33 +00:00
Rohit Grover
178931fee8 Merge branch 'uuid' of https://github.com/marcuschangarm/ble-nrf51822 into marcuschangarm-uuid 2015-12-02 13:03:36 +00:00
Rohit Grover
b9c6b435d1 updating versions for dependencies 2015-12-02 12:47:37 +00:00
Rohit Grover
ad00ae2058 update ble dependency to >=2.1.6 2015-12-02 11:50:49 +00:00
Rohit Grover
8cb48f91f8 version v2.1.2 2015-12-02 11:46:32 +00:00
Rohit Grover
4482bbcd3f Merge pull request #81 from andresag01/develop
Allow GattAttributes to have variable length
2015-12-02 11:00:25 +00:00
Andres Amaya Garcia
4b3a1c85b5 Allow GattAttributes to have fixed length
Previously the concepts of initLength and lenth were clearly separated.
However, this was at the cost of registering all characteristics in the
SoftDevice as having variable length. Clearly, this is not the desired
behaviour. Therefore, an additional field '_hasVariableLen' is added to the
GattAttribute to address the problem. Also, the GattAttribute and
GattCharacteristic constructors have been modified to take a boolean that
sets '_hasVariableLen'.

**NOTE:** Changes to this module will cause projects to fail the build stage
if changes to the BLE_API are not published first.
2015-12-02 10:41:01 +00:00
Marcus Chang
2725247316 Fixed endianness bug in nRF5xServiceDiscovery::processDiscoverUUIDResponse to be consistent with BLE API. 2015-12-01 18:03:38 +00:00
Rohit Grover
7b3015084c version v2.1.1 2015-12-01 14:34:28 +00:00
Rohit Grover
f800ccf727 Merge pull request #79 from marcuschangarm/address
Fixed bug in nRF5xGap.setAddress where random adresses where not set properly.
2015-12-01 14:33:39 +00:00
Marcus Chang
314d3d449c Fixed bug in nRF5xGap.setAddress where random adresses where not set properly. 2015-12-01 14:10:20 +00:00
Liyou Zhou
b68fdadff7 Merge branch 'split_nordic_sdk' of github.com:LiyouZhou/ble-nrf51822 into split_nordic_sdk
Conflicts:
	module.json
2015-12-01 12:16:04 +00:00
Liyou Zhou
d9f795b461 nrf51-sdk module will change to use sementic versions from 0.0.1 2015-12-01 11:45:17 +00:00
Liyou Zhou
88433d9c0c Change LICENSE description text wording. 2015-12-01 11:42:23 +00:00
Liyou Zhou
a55aadf2ff Specify nrf51-sdk dependency version. 2015-12-01 11:42:23 +00:00
Liyou Zhou
70cf31305e Update the LICENSE description text
To reflect the deletion of the nordic sdk license.
2015-12-01 11:42:23 +00:00
Liyou Zhou
c089380c4d Remove nordic license files as no nordic source files should remain
in this folder.
2015-12-01 11:42:23 +00:00
Liyou Zhou
710b2b77b1 Put back dependendcy on ble module
as ble-nrf51822 provides implementation for ble
2015-12-01 11:42:23 +00:00
Liyou Zhou
52eabeaf95 Remove nordic sdk files from this module, they are now in
nrf51-sdk git@github.com:ARMmbed/nrf51-sdk.git
2015-12-01 11:42:23 +00:00
Rohit Grover
1aa7d6a1d8 Merge pull request #78 from andresag01/develop
Separate concept of minlen and len for BLE chars
2015-11-29 13:47:51 +00:00
Andres Amaya Garcia
3fb32e167f Separate concept of minlen and len for BLE chars
In previous versions of BLE_API the GattCharacteristic initLen parameter is
named minLen as well. When the characteristic is committed to the SoftDevice
the value of initial length is also used as the minimum length of the
characteristic value. Furthermore, the test (max_length == min_length) is used
to determine whether the characteristic value has variable length. This is
slightly confusing and also causes problems if the user wishes to use a
characteristic with variable length but the initial lenght is equal to max
length.

To solve this problem the characteristic is now always committed to the
SoftDevice as variable. Furthermore, the API only maintains the current lenght
and the max length i.e. the field initialLen in the GattAttribute is removed.
In nRF5xGattServer all calls to getInitialLength() are removed and replaced
with getLength().

*NOTES:*
* This change requires updates to ble.
* Ideally we would like the characteristics to be declared as 'variable' only
when necessary, but this requires changing the signature of the
GattCharacteristic and GattAttribute constructors. Therefore, it will be part
of a separate pull request.
2015-11-27 17:25:58 +00:00
Rohit Grover
e19b28bc4e version v2.1.0 2015-11-27 10:57:41 +00:00
Rohit Grover
27c5043fcc Merge pull request #77 from LiyouZhou/update-to-sdk-8.1
Update to sdk 8.1
2015-11-27 10:52:18 +00:00
Rohit Grover
611d03b072 version v2.0.8 2015-11-26 14:56:33 +00:00
Andres Amaya Garcia
167ddd63ab Execute radio notification in low priority context
The ble-nrf51822 implementation of the BLE API executes callbacks for radio
notification events at very high priority. This functionality is replaced by
executing the radio notification callback at a lower priority. When using
mbed OS the callback is posted through minar. In mbed classic the callback is
executed directly, but from a lower priority. Note that minar or callback
execution in mbed classic could not be posted/generated directly from the
radio notification handler because this causes race conditions that may lead
to a hard-fault. Alternatively, a Timeout was used to post the callback in
another context with lower priority.
2015-11-26 10:56:17 +00:00
Liyou Zhou
3bcded72f9 Fix extra includes due to path change in the sdk update 2015-11-24 18:42:03 +00:00
Liyou Zhou
7d95b66f11 Rename due to importing mbed.h and requiring cpp libraries. 2015-11-24 18:41:19 +00:00
Liyou Zhou
a583502f2b Update files to nrf51 sdk 8.1.0 2015-11-24 15:01:15 +00:00
Liyou Zhou
af14327c85 Change folder structure to fit new sdk
Reverted some unnecessary changes.
2015-11-24 14:53:04 +00:00