nordic

Fork of nRF51822 by Nordic Semiconductor

Committer:
rgrover1
Date:
Wed Dec 02 10:32:53 2015 +0000
Revision:
507:aab595b22981
Parent:
388:b13ab9a7ddb9
Child:
510:7dc75f30064f
Synchronized with git rev 3fb32e16
Author: Andres Amaya Garcia
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.

Who changed what in which revision?

UserRevisionLine numberNew contents of line
Rohit Grover 22:c6ee8136847e 1 /* mbed Microcontroller Library
Rohit Grover 22:c6ee8136847e 2 * Copyright (c) 2006-2013 ARM Limited
Rohit Grover 22:c6ee8136847e 3 *
Rohit Grover 22:c6ee8136847e 4 * Licensed under the Apache License, Version 2.0 (the "License");
Rohit Grover 22:c6ee8136847e 5 * you may not use this file except in compliance with the License.
Rohit Grover 22:c6ee8136847e 6 * You may obtain a copy of the License at
Rohit Grover 22:c6ee8136847e 7 *
Rohit Grover 22:c6ee8136847e 8 * http://www.apache.org/licenses/LICENSE-2.0
Rohit Grover 22:c6ee8136847e 9 *
Rohit Grover 22:c6ee8136847e 10 * Unless required by applicable law or agreed to in writing, software
Rohit Grover 22:c6ee8136847e 11 * distributed under the License is distributed on an "AS IS" BASIS,
Rohit Grover 22:c6ee8136847e 12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
Rohit Grover 22:c6ee8136847e 13 * See the License for the specific language governing permissions and
Rohit Grover 22:c6ee8136847e 14 * limitations under the License.
Rohit Grover 22:c6ee8136847e 15 */
Rohit Grover 22:c6ee8136847e 16
Rohit Grover 22:c6ee8136847e 17 #ifndef _CUSTOM_HELPER_H_
Rohit Grover 22:c6ee8136847e 18 #define _CUSTOM_HELPER_H_
Rohit Grover 22:c6ee8136847e 19
rgrover1 130:7cf48219e771 20 #include "common/common.h"
rgrover1 130:7cf48219e771 21 #include "ble.h"
rgrover1 372:8f7d2137727a 22 #include "ble/UUID.h"
rgrover1 372:8f7d2137727a 23 #include "ble/GattCharacteristic.h"
rgrover1 130:7cf48219e771 24
Rohit Grover 22:c6ee8136847e 25 #ifdef __cplusplus
Rohit Grover 22:c6ee8136847e 26 extern "C" {
Rohit Grover 22:c6ee8136847e 27 #endif
Rohit Grover 22:c6ee8136847e 28
Rohit Grover 22:c6ee8136847e 29 uint8_t custom_add_uuid_base(uint8_t const *const p_uuid_base);
Rohit Grover 22:c6ee8136847e 30 error_t custom_decode_uuid(uint8_t const *const p_uuid_base,
Rohit Grover 22:c6ee8136847e 31 ble_uuid_t *p_uuid);
Rohit Grover 22:c6ee8136847e 32 ble_uuid_t custom_convert_to_nordic_uuid(const UUID &uuid);
Rohit Grover 22:c6ee8136847e 33
Rohit Grover 22:c6ee8136847e 34 error_t custom_add_in_characteristic(uint16_t service_handle,
Rohit Grover 22:c6ee8136847e 35 ble_uuid_t *p_uuid,
Rohit Grover 22:c6ee8136847e 36 uint8_t properties,
rgrover1 372:8f7d2137727a 37 SecurityManager::SecurityMode_t requiredSecurity,
Rohit Grover 22:c6ee8136847e 38 uint8_t *p_data,
rgrover1 507:aab595b22981 39 uint16_t length,
Rohit Grover 22:c6ee8136847e 40 uint16_t max_length,
rgrover1 120:3ba3e377b972 41 const uint8_t *userDescriptionDescriptorValuePtr,
rgrover1 120:3ba3e377b972 42 uint16_t userDescriptionDescriptorValueLen,
rgrover1 83:71302acf1804 43 bool readAuthorization,
rgrover1 82:6c51cbe4bc12 44 bool writeAuthorization,
Rohit Grover 22:c6ee8136847e 45 ble_gatts_char_handles_t *p_char_handle);
Rohit Grover 22:c6ee8136847e 46
carlescufi 54:e2294c844c83 47 error_t custom_add_in_descriptor(uint16_t char_handle,
carlescufi 54:e2294c844c83 48 ble_uuid_t *p_uuid,
carlescufi 54:e2294c844c83 49 uint8_t *p_data,
rgrover1 507:aab595b22981 50 uint16_t length,
carlescufi 54:e2294c844c83 51 uint16_t max_length,
carlescufi 54:e2294c844c83 52 uint16_t *p_desc_handle);
carlescufi 54:e2294c844c83 53
Rohit Grover 22:c6ee8136847e 54 #ifdef __cplusplus
Rohit Grover 22:c6ee8136847e 55 }
Rohit Grover 22:c6ee8136847e 56 #endif
Rohit Grover 22:c6ee8136847e 57
rgrover1 82:6c51cbe4bc12 58 #endif // ifndef _CUSTOM_HELPER_H_