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 552:20b282c26f96, committed 2016-01-11
- Comitter:
- vcoubard
- Date:
- Mon Jan 11 10:19:10 2016 +0000
- Parent:
- 551:ab7a8de3ff10
- Child:
- 553:2a413611e569
- 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 Mon Jan 11 10:19:10 2016 +0000
+++ b/module.json Mon Jan 11 10:19:10 2016 +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 Mon Jan 11 10:19:10 2016 +0000
+++ b/source/btle/custom/custom_helper.cpp Mon Jan 11 10:19:10 2016 +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 Mon Jan 11 10:19:10 2016 +0000
+++ b/source/btle/custom/custom_helper.h Mon Jan 11 10:19:10 2016 +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 Mon Jan 11 10:19:10 2016 +0000
+++ b/source/nRF5xGap.cpp Mon Jan 11 10:19:10 2016 +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 Mon Jan 11 10:19:10 2016 +0000
+++ b/source/nRF5xGattServer.cpp Mon Jan 11 10:19:10 2016 +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);
