Merge pull request #78 from andresag01/develop

Separate concept of minlen and len for BLE chars
This commit is contained in:
Rohit Grover 2015-11-29 13:47:51 +00:00
commit 1aa7d6a1d8
3 changed files with 13 additions and 11 deletions

View File

@ -202,7 +202,7 @@ error_t custom_add_in_characteristic(uint16_t service_handle,
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 @@ error_t custom_add_in_characteristic(uint16_t service_handle,
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 @@ error_t custom_add_in_characteristic(uint16_t service_handle,
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_characteristic(uint16_t service_handle,
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 @@ error_t custom_add_in_descriptor(uint16_t char_handle,
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 @@ error_t custom_add_in_descriptor(uint16_t char_handle,
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;

View File

@ -36,7 +36,7 @@ error_t custom_add_in_characteristic(uint16_t service_handle,
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_characteristic(uint16_t service_handle,
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);

View File

@ -69,7 +69,7 @@ ble_error_t nRF5xGattServer::addService(GattService &service)
/* 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 @@ ble_error_t nRF5xGattServer::addService(GattService &service)
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 @@ ble_error_t nRF5xGattServer::addService(GattService &service)
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);