From f368eb91f4405e2bc282bf963e549e4e03d07b55 Mon Sep 17 00:00:00 2001 From: Matthias Ringwald Date: Wed, 13 Nov 2024 09:37:14 +0100 Subject: [PATCH] gatt-service/bas-server: provide service id on registration --- src/ble/gatt-service/battery_service_v1_server.c | 11 +++++++---- src/ble/gatt-service/battery_service_v1_server.h | 13 ++++++++++++- 2 files changed, 19 insertions(+), 5 deletions(-) diff --git a/src/ble/gatt-service/battery_service_v1_server.c b/src/ble/gatt-service/battery_service_v1_server.c index b25a11386..a7979d146 100644 --- a/src/ble/gatt-service/battery_service_v1_server.c +++ b/src/ble/gatt-service/battery_service_v1_server.c @@ -95,7 +95,7 @@ static const char * bas_uuid16_name[BAS_CHARACTERISTIC_INDEX_NUM] = { "SERIAL_NUMBER_STRING", }; -static uint16_t bas_id_counter = 0; +static uint16_t bas_service_id_counter = 0; static btstack_linked_list_t battery_services; #define MEDFLOAT16_POSITIVE_INFINITY 0x07FE @@ -571,7 +571,7 @@ void battery_service_v1_server_init(void){ } -void battery_service_v1_server_register(battery_service_v1_t *service, battery_service_v1_server_connection_t *connections, uint8_t connection_max_num){ +void battery_service_v1_server_register(battery_service_v1_t *service, battery_service_v1_server_connection_t *connections, uint8_t connection_max_num, uint16_t * out_service_id){ btstack_assert(service != NULL); btstack_assert(connections != NULL); btstack_assert(connection_max_num > 0u); @@ -594,8 +594,11 @@ void battery_service_v1_server_register(battery_service_v1_t *service, battery_s UNUSED(service_found); // get next service id - bas_id_counter = btstack_next_cid_ignoring_zero(bas_id_counter); - service->service_id = bas_id_counter; + bas_service_id_counter = btstack_next_cid_ignoring_zero(bas_service_id_counter); + service->service_id = bas_service_id_counter; + if (out_service_id != NULL) { + *out_service_id = bas_service_id_counter; + } service->service_handler.start_handle = start_handle; service->service_handler.end_handle = end_handle; diff --git a/src/ble/gatt-service/battery_service_v1_server.h b/src/ble/gatt-service/battery_service_v1_server.h index fbb16f24e..4c74e9bc2 100644 --- a/src/ble/gatt-service/battery_service_v1_server.h +++ b/src/ble/gatt-service/battery_service_v1_server.h @@ -297,8 +297,19 @@ typedef struct battery_service_v1 { */ void battery_service_v1_server_init(void); -void battery_service_v1_server_register(battery_service_v1_t * service, battery_service_v1_server_connection_t * connections, uint8_t connection_max_num); +/** + * @brief Register Battery Service + * @param service + * @param connections array of battery_service_v1_server_connection_t for storage + * @param connection_max_num + * @param out_service_id + */ +void battery_service_v1_server_register(battery_service_v1_t * service, battery_service_v1_server_connection_t * connections, uint8_t connection_max_num, uint16_t * out_service_id); +/** + * @brief Deregister Battery Service Server + * @param service + */ void battery_service_v1_server_deregister(battery_service_v1_t * service); /**