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 nRF51822 by
Revision 521:1db090c0e563, committed 2015-12-02
- Comitter:
- rgrover1
- Date:
- Wed Dec 02 12:58:42 2015 +0000
- Parent:
- 520:8252970f1d1e
- Child:
- 522:0f791e328558
- Commit message:
- Synchronized with git rev f4f35c8a
Author: Rohit Grover
Release 2.1.1
=============
A minor release to separate the concept of minlen and len in
GattCharacteristic.
Changed in this revision
--- a/module.json Wed Dec 02 12:58:42 2015 +0000
+++ b/module.json Wed Dec 02 12:58:42 2015 +0000
@@ -1,6 +1,6 @@
{
"name": "ble-nrf51822",
- "version": "2.1.0",
+ "version": "2.1.1",
"description": "Nordic stack and drivers for the mbed BLE API.",
"keywords": [
"Bluetooth",
--- a/source/btle/custom/custom_helper.cpp Wed Dec 02 12:58:42 2015 +0000
+++ b/source/btle/custom/custom_helper.cpp Wed Dec 02 12:58:42 2015 +0000
@@ -202,7 +202,7 @@
uint8_t properties,
SecurityManager::SecurityMode_t requiredSecurity,
uint8_t *p_data,
- uint16_t min_length,
+ uint16_t length,
uint16_t max_length,
const uint8_t *userDescriptionDescriptorValuePtr,
uint16_t userDescriptionDescriptorValueLen,
@@ -242,7 +242,8 @@
attr_md.wr_auth = writeAuthorization;
attr_md.vloc = BLE_GATTS_VLOC_STACK;
- attr_md.vlen = (min_length == max_length) ? 0 : 1;
+ /* Always set variable size */
+ attr_md.vlen = 1;
if (char_props.read || char_props.notify || char_props.indicate) {
switch (requiredSecurity) {
@@ -292,7 +293,7 @@
attr_char_value.p_uuid = p_uuid;
attr_char_value.p_attr_md = &attr_md;
- attr_char_value.init_len = min_length;
+ attr_char_value.init_len = length;
attr_char_value.max_len = max_length;
attr_char_value.p_value = p_data;
@@ -325,7 +326,7 @@
error_t custom_add_in_descriptor(uint16_t char_handle,
ble_uuid_t *p_uuid,
uint8_t *p_data,
- uint16_t min_length,
+ uint16_t length,
uint16_t max_length,
uint16_t *p_desc_handle)
{
@@ -333,7 +334,8 @@
ble_gatts_attr_md_t desc_md = {0};
desc_md.vloc = BLE_GATTS_VLOC_STACK;
- desc_md.vlen = (min_length == max_length) ? 0 : 1;
+ /* Always set variable size */
+ desc_md.vlen = 1;
/* Make it readable and writable */
BLE_GAP_CONN_SEC_MODE_SET_OPEN(&desc_md.read_perm);
@@ -343,7 +345,7 @@
attr_desc.p_uuid = p_uuid;
attr_desc.p_attr_md = &desc_md;
- attr_desc.init_len = min_length;
+ attr_desc.init_len = length;
attr_desc.max_len = max_length;
attr_desc.p_value = p_data;
--- a/source/btle/custom/custom_helper.h Wed Dec 02 12:58:42 2015 +0000
+++ b/source/btle/custom/custom_helper.h Wed Dec 02 12:58:42 2015 +0000
@@ -36,7 +36,7 @@
uint8_t properties,
SecurityManager::SecurityMode_t requiredSecurity,
uint8_t *p_data,
- uint16_t min_length,
+ uint16_t length,
uint16_t max_length,
const uint8_t *userDescriptionDescriptorValuePtr,
uint16_t userDescriptionDescriptorValueLen,
@@ -47,7 +47,7 @@
error_t custom_add_in_descriptor(uint16_t char_handle,
ble_uuid_t *p_uuid,
uint8_t *p_data,
- uint16_t min_length,
+ uint16_t length,
uint16_t max_length,
uint16_t *p_desc_handle);
--- a/source/nRF5xGap.cpp Wed Dec 02 12:58:42 2015 +0000
+++ b/source/nRF5xGap.cpp Wed Dec 02 12:58:42 2015 +0000
@@ -374,15 +374,30 @@
/**************************************************************************/
ble_error_t nRF5xGap::setAddress(AddressType_t type, const Address_t address)
{
- if (type > ADDR_TYPE_RANDOM_PRIVATE_NON_RESOLVABLE) {
+ uint8_t cycle_mode;
+ ble_gap_addr_t dev_addr;
+
+ /* When using Public or Static addresses, the cycle mode must be None.
+ When using Random Private addresses, the cycle mode must be Auto.
+ In auto mode, the given address is ignored.
+ */
+ if ((type == ADDR_TYPE_PUBLIC) || (type == ADDR_TYPE_RANDOM_STATIC))
+ {
+ cycle_mode = BLE_GAP_ADDR_CYCLE_MODE_NONE;
+ memcpy(dev_addr.addr, address, ADDR_LEN);
+ }
+ else if ((type == ADDR_TYPE_RANDOM_PRIVATE_RESOLVABLE) || (type == ADDR_TYPE_RANDOM_PRIVATE_NON_RESOLVABLE))
+ {
+ cycle_mode = BLE_GAP_ADDR_CYCLE_MODE_AUTO;
+ // address is ignored when in auto mode
+ }
+ else
+ {
return BLE_ERROR_PARAM_OUT_OF_RANGE;
}
- ble_gap_addr_t dev_addr;
dev_addr.addr_type = type;
- memcpy(dev_addr.addr, address, ADDR_LEN);
-
- ASSERT_INT(ERROR_NONE, sd_ble_gap_address_set(BLE_GAP_ADDR_CYCLE_MODE_NONE, &dev_addr), BLE_ERROR_PARAM_OUT_OF_RANGE);
+ ASSERT_INT(ERROR_NONE, sd_ble_gap_address_set(cycle_mode, &dev_addr), BLE_ERROR_PARAM_OUT_OF_RANGE);
return BLE_ERROR_NONE;
}
--- a/source/nRF5xGattServer.cpp Wed Dec 02 12:58:42 2015 +0000
+++ b/source/nRF5xGattServer.cpp Wed Dec 02 12:58:42 2015 +0000
@@ -69,7 +69,7 @@
/* Skip any incompletely defined, read-only characteristics. */
if ((p_char->getValueAttribute().getValuePtr() == NULL) &&
- (p_char->getValueAttribute().getInitialLength() == 0) &&
+ (p_char->getValueAttribute().getLength() == 0) &&
(p_char->getProperties() == GattCharacteristic::BLE_GATT_CHAR_PROPERTIES_READ)) {
continue;
}
@@ -95,7 +95,7 @@
p_char->getProperties(),
p_char->getRequiredSecurity(),
p_char->getValueAttribute().getValuePtr(),
- p_char->getValueAttribute().getInitialLength(),
+ p_char->getValueAttribute().getLength(),
p_char->getValueAttribute().getMaxLength(),
userDescriptionDescriptorValuePtr,
userDescriptionDescriptorValueLen,
@@ -127,7 +127,7 @@
custom_add_in_descriptor(BLE_GATT_HANDLE_INVALID,
&nordicUUID,
p_desc->getValuePtr(),
- p_desc->getInitialLength(),
+ p_desc->getLength(),
p_desc->getMaxLength(),
&nrfDescriptorHandles[descriptorCount]),
BLE_ERROR_PARAM_OUT_OF_RANGE);
