From 4e5e1eb09e52946bff439e3e555d22bbc370051d Mon Sep 17 00:00:00 2001 From: Matthias Ringwald Date: Wed, 31 Jan 2018 16:13:17 +0100 Subject: [PATCH] att_db_util: return attribute handle for new servics, improve header documentation --- src/ble/att_db_util.c | 16 ++++++++++------ src/ble/att_db_util.h | 14 ++++++++------ 2 files changed, 18 insertions(+), 12 deletions(-) diff --git a/src/ble/att_db_util.c b/src/ble/att_db_util.c index 176477fc7..e87570561 100644 --- a/src/ble/att_db_util.c +++ b/src/ble/att_db_util.c @@ -143,16 +143,20 @@ static void att_db_util_add_attribute_uuid128(uint8_t * uuid128, uint16_t flags, att_db_util_set_end_tag(); } -void att_db_util_add_service_uuid16(uint16_t uuid16){ +uint16_t att_db_util_add_service_uuid16(uint16_t uuid16){ uint8_t buffer[2]; little_endian_store_16(buffer, 0, uuid16); + uint16_t service_handle = att_db_next_handle; att_db_util_add_attribute_uuid16(GATT_PRIMARY_SERVICE_UUID, ATT_PROPERTY_READ, buffer, 2); + return service_handle; } -void att_db_util_add_service_uuid128(uint8_t * uuid128){ +uint16_t att_db_util_add_service_uuid128(uint8_t * uuid128){ uint8_t buffer[16]; reverse_128(uuid128, buffer); + uint16_t service_handle = att_db_next_handle; att_db_util_add_attribute_uuid16(GATT_PRIMARY_SERVICE_UUID, ATT_PROPERTY_READ, buffer, 16); + return service_handle; } static void att_db_util_add_client_characteristic_configuration(uint16_t properties){ @@ -196,15 +200,15 @@ uint16_t att_db_util_add_characteristic_uuid128(uint8_t * uuid128, uint16_t prop } uint16_t att_db_util_add_descriptor_uuid16(uint16_t uuid16, uint16_t properties, uint8_t * data, uint16_t data_len){ - uint16_t value_handle = att_db_next_handle; + uint16_t descriptor_handler = att_db_next_handle; att_db_util_add_attribute_uuid16(uuid16, properties, data, data_len); - return value_handle; + return descriptor_handler; } uint16_t att_db_util_add_descriptor_uuid128(uint8_t * uuid128, uint16_t properties, uint8_t * data, uint16_t data_len){ - uint16_t value_handle = att_db_next_handle; + uint16_t descriptor_handler = att_db_next_handle; att_db_util_add_attribute_uuid128(uuid128, properties, data, data_len); - return value_handle; + return descriptor_handler; } uint8_t * att_db_util_get_address(void){ diff --git a/src/ble/att_db_util.h b/src/ble/att_db_util.h index bc604ac27..466d8b0db 100644 --- a/src/ble/att_db_util.h +++ b/src/ble/att_db_util.h @@ -64,17 +64,19 @@ void att_db_util_init(void); /** * @brief Add primary service for 16-bit UUID + * @returns attribute handle for the new service definition */ -void att_db_util_add_service_uuid16(uint16_t udid16); +uint16_t att_db_util_add_service_uuid16(uint16_t udid16); /** * @brief Add primary service for 128-bit UUID + * @returns attribute handle for the new service definition */ -void att_db_util_add_service_uuid128(uint8_t * udid128); +uint16_t att_db_util_add_service_uuid128(uint8_t * udid128); /** * @brief Add Characteristic with 16-bit UUID, properties, and data - * @returns attribute value handle + * @returns attribute handle of the new characteristic value declaration * @note If properties contains ATT_PROPERTY_NOTIFY or ATT_PROPERTY_INDICATE flags, a Client Configuration Characteristic Descriptor (CCCD) * is created as well. The attribute value handle of the CCCD is the attribute value handle plus 1 * @see ATT_PROPERTY_* in ble/att_db.h @@ -83,7 +85,7 @@ uint16_t att_db_util_add_characteristic_uuid16(uint16_t udid16, uint16_t prop /** * @brief Add Characteristic with 128-bit UUID, properties, and data - * @returns attribute value handle + * @returns attribute handle of the new characteristic value declaration * @note If properties contains ATT_PROPERTY_NOTIFY or ATT_PROPERTY_INDICATE flags, a Client Configuration Characteristic Descriptor (CCCD) * is created as well. The attribute value handle of the CCCD is the attribute value handle plus 1 * @see ATT_PROPERTY_* in ble/att_db.h @@ -92,14 +94,14 @@ uint16_t att_db_util_add_characteristic_uuid128(uint8_t * udid128, uint16_t prop /** * @brief Add descriptor with 16-bit UUID, properties, and data -* @returns attribute value handle +* @returns attribute handle of the new descriptor * @see ATT_PROPERTY_* in ble/att_db.h */ uint16_t att_db_util_add_descriptor_uuid16(uint16_t uuid16, uint16_t properties, uint8_t * data, uint16_t data_len); /** * @brief Add descriptor with 128-bit UUID, properties, and data -* @returns attribute value handle +* @returns attribute handle of the new characteristic descriptor declaration * @see ATT_PROPERTY_* in ble/att_db.h */ uint16_t att_db_util_add_descriptor_uuid128(uint8_t * udid128, uint16_t properties, uint8_t * data, uint16_t data_len);