PBL mbed final

Fork of nRF51822 by Shuta Nakamae

Files at this revision

API Documentation at this revision

Comitter:
rgrover1
Date:
Wed Dec 02 12:58:42 2015 +0000
Parent:
521:1db090c0e563
Child:
523:8b96b7935704
Commit message:
Synchronized with git rev 9620c7a1
Author: Rohit Grover
Release 2.1.2
=============

Minor update around GattCharacteristics having variable length.

Changed in this revision

module.json Show annotated file Show diff for this revision Revisions of this file
source/btle/custom/custom_helper.cpp Show annotated file Show diff for this revision Revisions of this file
source/btle/custom/custom_helper.h Show annotated file Show diff for this revision Revisions of this file
source/nRF5xGattServer.cpp Show annotated file Show diff for this revision Revisions of this file
--- 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.1",
+  "version": "2.1.2",
   "description": "Nordic stack and drivers for the mbed BLE API.",
   "keywords": [
     "Bluetooth",
@@ -24,7 +24,7 @@
     }
   ],
   "dependencies": {
-    "ble": "^2.0.0"
+    "ble": "^2.1.6"
   },
   "extraIncludes": [
     "source/btle",
--- 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
@@ -191,6 +191,8 @@
     @param[in]  char_props        The characteristic properties, as
                                   defined by ble_gatt_char_props_t
     @param[in]  max_length        The maximum length of this characeristic
+    @param[in]  has_variable_len  Whether the characteristic data has
+                                  variable length.
     @param[out] p_char_handle
 
     @returns
@@ -204,6 +206,7 @@
                                      uint8_t                  *p_data,
                                      uint16_t                  length,
                                      uint16_t                  max_length,
+                                     bool                      has_variable_len,
                                      const uint8_t            *userDescriptionDescriptorValuePtr,
                                      uint16_t                  userDescriptionDescriptorValueLen,
                                      bool                      readAuthorization,
@@ -243,7 +246,7 @@
 
     attr_md.vloc = BLE_GATTS_VLOC_STACK;
     /* Always set variable size */
-    attr_md.vlen = 1;
+    attr_md.vlen = has_variable_len;
 
     if (char_props.read || char_props.notify || char_props.indicate) {
         switch (requiredSecurity) {
@@ -318,24 +321,27 @@
                                   since 1 is typically used by the primary
                                   service).
     @param[in]  max_length        The maximum length of this descriptor
+    @param[in]  has_variable_len  Whether the characteristic data has
+                                  variable length.
 
     @returns
     @retval     ERROR_NONE        Everything executed normally
 */
 /**************************************************************************/
 error_t custom_add_in_descriptor(uint16_t    char_handle,
-                                             ble_uuid_t *p_uuid,
-                                             uint8_t    *p_data,
-                                             uint16_t    length,
-                                             uint16_t    max_length,
-                                             uint16_t   *p_desc_handle)
+                                 ble_uuid_t *p_uuid,
+                                 uint8_t    *p_data,
+                                 uint16_t    length,
+                                 uint16_t    max_length,
+                                 bool        has_variable_len,
+                                 uint16_t   *p_desc_handle)
 {
     /* Descriptor metadata */
     ble_gatts_attr_md_t   desc_md = {0};
 
     desc_md.vloc = BLE_GATTS_VLOC_STACK;
     /* Always set variable size */
-    desc_md.vlen = 1;
+    desc_md.vlen = has_variable_len;
 
     /* Make it readable and writable */
     BLE_GAP_CONN_SEC_MODE_SET_OPEN(&desc_md.read_perm);
--- 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
@@ -38,6 +38,7 @@
                                      uint8_t                  *p_data,
                                      uint16_t                  length,
                                      uint16_t                  max_length,
+                                     bool                      has_variable_len,
                                      const uint8_t            *userDescriptionDescriptorValuePtr,
                                      uint16_t                  userDescriptionDescriptorValueLen,
                                      bool                      readAuthorization,
@@ -49,6 +50,7 @@
                                      uint8_t                  *p_data,
                                      uint16_t                  length,
                                      uint16_t                  max_length,
+                                     bool                      has_variable_len,
                                      uint16_t                 *p_desc_handle);
 
 #ifdef __cplusplus
--- a/source/nRF5xGattServer.cpp	Wed Dec 02 12:58:42 2015 +0000
+++ b/source/nRF5xGattServer.cpp	Wed Dec 02 12:58:42 2015 +0000
@@ -97,6 +97,7 @@
                                               p_char->getValueAttribute().getValuePtr(),
                                               p_char->getValueAttribute().getLength(),
                                               p_char->getValueAttribute().getMaxLength(),
+                                              p_char->getValueAttribute().hasVariableLength(),
                                               userDescriptionDescriptorValuePtr,
                                               userDescriptionDescriptorValueLen,
                                               p_char->isReadAuthorizationEnabled(),
@@ -129,6 +130,7 @@
                                             p_desc->getValuePtr(),
                                             p_desc->getLength(),
                                             p_desc->getMaxLength(),
+                                            p_desc->hasVariableLength(),
                                             &nrfDescriptorHandles[descriptorCount]),
                 BLE_ERROR_PARAM_OUT_OF_RANGE);