ble/battery_service_client: fix polling, remove size check for internal events

This commit is contained in:
Milanka Ringwald 2021-03-04 10:36:07 +01:00
parent 83b6788cc1
commit 89b171cf29
2 changed files with 7 additions and 10 deletions

View File

@ -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;

View File

@ -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;