From e115a09f7ced60a7ab33b4381a11a5f4451f6c06 Mon Sep 17 00:00:00 2001 From: Matthias Ringwald Date: Mon, 21 Jun 2021 17:46:01 +0200 Subject: [PATCH] gatt-service-client/ancs_client: split hci and gatt client handlers, extract ancs_client_handle_notification --- src/ble/gatt-service/ancs_client.c | 263 +++++++++++++++-------------- 1 file changed, 134 insertions(+), 129 deletions(-) diff --git a/src/ble/gatt-service/ancs_client.c b/src/ble/gatt-service/ancs_client.c index 7bbc4e157..baf2df67c 100644 --- a/src/ble/gatt-service/ancs_client.c +++ b/src/ble/gatt-service/ancs_client.c @@ -91,6 +91,8 @@ static uint16_t ancs_attribute_len; static btstack_packet_handler_t client_handler; static btstack_packet_callback_registration_t hci_event_callback_registration; +static void ancs_client_handle_gatt_client_event(uint8_t packet_type, uint16_t channel, uint8_t *packet, uint16_t size); + void ancs_client_register_callback(btstack_packet_handler_t handler){ client_handler = handler; } @@ -176,6 +178,137 @@ static void ancs_chunk_parser_handle_byte(uint8_t data){ } } +static void ancs_client_handle_notification(uint8_t * packet, uint16_t size){ + uint16_t value_handle = little_endian_read_16(packet, 4); + uint16_t value_length = little_endian_read_16(packet, 6); + uint8_t * value = &packet[8]; + + log_info("ANCS Notification, value handle %u", value_handle); + + if (value_handle == ancs_data_source_characteristic.value_handle){ + int i; + for (i=0;i