mirror of
https://github.com/bluekitchen/btstack.git
synced 2025-03-29 13:20:39 +00:00
ble/battery_service_client: fix polling, remove size check for internal events
This commit is contained in:
parent
83b6788cc1
commit
89b171cf29
@ -97,7 +97,7 @@ static int blacklist_contains(bd_addr_t addr){
|
||||
}
|
||||
|
||||
static void add_to_blacklist(bd_addr_t addr){
|
||||
printf("%s added to blacklist (no battery service found\n", bd_addr_to_str(addr));
|
||||
printf("%s added to blacklist (no battery service found).\n", bd_addr_to_str(addr));
|
||||
bd_addr_copy(blacklist[blacklist_index], addr);
|
||||
blacklist_index = (blacklist_index + 1) % blacklist_size();
|
||||
}
|
||||
@ -132,11 +132,11 @@ static void handle_gatt_client_event(uint8_t packet_type, uint16_t channel, uint
|
||||
status = gattservice_subevent_battery_service_connected_get_status(packet);
|
||||
switch (status){
|
||||
case ERROR_CODE_SUCCESS:
|
||||
printf("Battery service client connected - found %d services",
|
||||
printf("Battery service client connected, found %d services.\n",
|
||||
gattservice_subevent_battery_service_connected_get_num_instances(packet));
|
||||
break;
|
||||
default:
|
||||
printf("Battery service client connection failed - Error status 0x%02x.\n", status);
|
||||
printf("Battery service client connection failed, err 0x%02x.\n", status);
|
||||
add_to_blacklist(report.address);
|
||||
gap_disconnect(connection_handle);
|
||||
break;
|
||||
@ -144,7 +144,7 @@ static void handle_gatt_client_event(uint8_t packet_type, uint16_t channel, uint
|
||||
break;
|
||||
|
||||
case GATTSERVICE_SUBEVENT_BATTERY_SERVICE_LEVEL:
|
||||
printf("Service index: %d, Battery level %d \n",
|
||||
printf("Service index: %d, Battery level: %d\n",
|
||||
gattservice_subevent_battery_service_level_get_sevice_index(packet),
|
||||
gattservice_subevent_battery_service_level_get_level(packet));
|
||||
break;
|
||||
|
@ -63,6 +63,7 @@ static btstack_linked_list_t clients;
|
||||
static uint16_t battery_service_cid_counter = 0;
|
||||
|
||||
static void handle_gatt_client_event(uint8_t packet_type, uint16_t channel, uint8_t *packet, uint16_t size);
|
||||
static void battery_service_poll_timer_start(battery_service_client_t * client);
|
||||
|
||||
static uint16_t battery_service_get_next_cid(void){
|
||||
if (battery_service_cid_counter == 0xffff) {
|
||||
@ -162,6 +163,7 @@ static void battery_service_poll_timer_timeout_handler(btstack_timer_source_t *
|
||||
gatt_client_read_value_of_characteristic(handle_gatt_client_event, client->con_handle, &characteristic);
|
||||
}
|
||||
}
|
||||
battery_service_poll_timer_start(client);
|
||||
}
|
||||
|
||||
static void battery_service_poll_timer_start(battery_service_client_t * client){
|
||||
@ -186,9 +188,6 @@ static void handle_gatt_client_event(uint8_t packet_type, uint16_t channel, uint
|
||||
|
||||
switch(hci_event_packet_get_type(packet)){
|
||||
case GATT_EVENT_SERVICE_QUERY_RESULT:
|
||||
// ignore if wrong (event type 1, length 1, handle 2, service 6)
|
||||
if (size != 10) break;
|
||||
|
||||
client = battery_service_get_client_for_con_handle(gatt_event_service_query_result_get_handle(packet));
|
||||
btstack_assert(client != NULL);
|
||||
|
||||
@ -206,9 +205,6 @@ static void handle_gatt_client_event(uint8_t packet_type, uint16_t channel, uint
|
||||
break;
|
||||
|
||||
case GATT_EVENT_CHARACTERISTIC_QUERY_RESULT:
|
||||
// ignore if wrong (event type 1, length 1, handle 2, chr 10)
|
||||
if (size != 14) break;
|
||||
|
||||
client = battery_service_get_client_for_con_handle(gatt_event_characteristic_query_result_get_handle(packet));
|
||||
btstack_assert(client != NULL);
|
||||
|
||||
@ -337,6 +333,7 @@ static void handle_gatt_client_event(uint8_t packet_type, uint16_t channel, uint
|
||||
if (register_poll_timer){
|
||||
battery_service_poll_timer_start(client);
|
||||
}
|
||||
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
|
Loading…
x
Reference in New Issue
Block a user