mirror of
https://github.com/bluekitchen/btstack.git
synced 2025-03-25 16:43:28 +00:00
ble/battery_service_client: add poll interval as param to connect function
This commit is contained in:
parent
89b171cf29
commit
49f1504696
@ -203,7 +203,7 @@ static void hci_event_handler(uint8_t packet_type, uint16_t channel, uint8_t *pa
|
||||
if (app_state != APP_STATE_W4_CONNECT) return;
|
||||
connection_handle = hci_subevent_le_connection_complete_get_connection_handle(packet);
|
||||
|
||||
status = battery_service_client_connect(connection_handle, handle_gatt_client_event, &battery_service_cid);
|
||||
status = battery_service_client_connect(connection_handle, handle_gatt_client_event, 2000, &battery_service_cid);
|
||||
btstack_assert(status == ERROR_CODE_SUCCESS);
|
||||
|
||||
app_state = APP_STATE_CONNECTED;
|
||||
|
@ -57,8 +57,6 @@
|
||||
#include "btstack_run_loop.h"
|
||||
#include "gap.h"
|
||||
|
||||
#define BATTERY_LEVEL_POLL_TIMEOUT 2000
|
||||
|
||||
static btstack_linked_list_t clients;
|
||||
static uint16_t battery_service_cid_counter = 0;
|
||||
|
||||
@ -170,7 +168,7 @@ static void battery_service_poll_timer_start(battery_service_client_t * client){
|
||||
btstack_run_loop_set_timer_handler(&client->poll_timer, battery_service_poll_timer_timeout_handler);
|
||||
btstack_run_loop_set_timer_context(&client->poll_timer, (void *)(uintptr_t)client->cid);
|
||||
|
||||
btstack_run_loop_set_timer(&client->poll_timer, BATTERY_LEVEL_POLL_TIMEOUT);
|
||||
btstack_run_loop_set_timer(&client->poll_timer, client->poll_interval_ms);
|
||||
btstack_run_loop_add_timer(&client->poll_timer);
|
||||
}
|
||||
|
||||
@ -330,7 +328,7 @@ static void handle_gatt_client_event(uint8_t packet_type, uint16_t channel, uint
|
||||
}
|
||||
}
|
||||
|
||||
if (register_poll_timer){
|
||||
if (register_poll_timer && client->poll_interval_ms > 0){
|
||||
battery_service_poll_timer_start(client);
|
||||
}
|
||||
|
||||
@ -360,7 +358,7 @@ static void battery_service_run_for_client(battery_service_client_t * client){
|
||||
}
|
||||
}
|
||||
|
||||
uint8_t battery_service_client_connect(hci_con_handle_t con_handle, btstack_packet_handler_t callback, uint16_t * battery_service_cid){
|
||||
uint8_t battery_service_client_connect(hci_con_handle_t con_handle, btstack_packet_handler_t callback, uint32_t poll_interval_ms, uint16_t * battery_service_cid){
|
||||
btstack_assert(callback != NULL);
|
||||
|
||||
battery_service_client_t * client = battery_service_get_client_for_con_handle(con_handle);
|
||||
@ -379,6 +377,7 @@ uint8_t battery_service_client_connect(hci_con_handle_t con_handle, btstack_pack
|
||||
}
|
||||
|
||||
client->client_handler = callback;
|
||||
client->poll_interval_ms = poll_interval_ms;
|
||||
client->state = BATTERY_SERVICE_CLIENT_STATE_W2_QUERY_SERVICE;
|
||||
battery_service_run_for_client(client);
|
||||
return ERROR_CODE_SUCCESS;
|
||||
|
@ -88,13 +88,14 @@ typedef struct {
|
||||
|
||||
// used for discovering characteristics and polling
|
||||
uint8_t battery_service_index;
|
||||
uint32_t poll_interval_ms;
|
||||
btstack_timer_source_t poll_timer;
|
||||
} battery_service_client_t;
|
||||
|
||||
void battery_service_client_init(void);
|
||||
void battery_service_client_deinit(void);
|
||||
|
||||
uint8_t battery_service_client_connect(hci_con_handle_t con_handle, btstack_packet_handler_t callback, uint16_t * battery_service_cid);
|
||||
uint8_t battery_service_client_connect(hci_con_handle_t con_handle, btstack_packet_handler_t callback, uint32_t poll_interval_ms, uint16_t * battery_service_cid);
|
||||
uint8_t battery_service_client_disconnect(uint16_t battery_service_cid);
|
||||
|
||||
/* API_END */
|
||||
|
Loading…
x
Reference in New Issue
Block a user