gatt_client: add eatt state

This commit is contained in:
Matthias Ringwald 2023-06-13 16:25:23 +02:00
parent 4601294989
commit cbd76cec95
2 changed files with 22 additions and 0 deletions

View File

@ -189,6 +189,9 @@ static uint8_t gatt_client_provide_context_for_handle(hci_con_handle_t con_handl
gatt_client->mtu_state = MTU_AUTO_EXCHANGE_DISABLED; gatt_client->mtu_state = MTU_AUTO_EXCHANGE_DISABLED;
} }
gatt_client->gatt_client_state = P_READY; gatt_client->gatt_client_state = P_READY;
#ifdef ENABLE_GATT_OVER_EATT
gatt_client->eatt_state = GATT_CLIENT_EATT_IDLE;
#endif
btstack_linked_list_add(&gatt_client_connections, (btstack_linked_item_t*)gatt_client); btstack_linked_list_add(&gatt_client_connections, (btstack_linked_item_t*)gatt_client);
// get unenhanced att bearer state // get unenhanced att bearer state
@ -2849,6 +2852,9 @@ uint8_t gatt_client_classic_connect(btstack_packet_handler_t callback, bd_addr_t
gatt_client->sdp_query_request.callback = &gatt_client_classic_sdp_start; gatt_client->sdp_query_request.callback = &gatt_client_classic_sdp_start;
gatt_client->sdp_query_request.context = gatt_client; gatt_client->sdp_query_request.context = gatt_client;
gatt_client->callback = callback; gatt_client->callback = callback;
#ifdef ENABLE_GATT_OVER_EATT
gatt_client->eatt_state = GATT_CLIENT_EATT_IDLE;
#endif
btstack_linked_list_add(&gatt_client_connections, (btstack_linked_item_t*)gatt_client); btstack_linked_list_add(&gatt_client_connections, (btstack_linked_item_t*)gatt_client);
sdp_client_register_query_callback(&gatt_client->sdp_query_request); sdp_client_register_query_callback(&gatt_client->sdp_query_request);
return ERROR_CODE_SUCCESS; return ERROR_CODE_SUCCESS;

View File

@ -144,6 +144,17 @@ typedef enum{
MTU_AUTO_EXCHANGE_DISABLED MTU_AUTO_EXCHANGE_DISABLED
} gatt_client_mtu_t; } gatt_client_mtu_t;
#ifdef ENABLE_GATT_OVER_EATT
typedef enum {
GATT_CLIENT_EATT_IDLE,
GATT_CLIENT_EATT_W2_READ_SERVER_SUPPORTED_FEATURES,
GATT_CLIENT_EATT_W4_READ_SERVER_SUPPORTED_FEATURES,
GATT_CLIENT_EATT_W2_FIND_CLIENT_SUPPORTED_FEATURES,
GATT_CLIENT_EATT_W4_WRITE_ClIENT_SUPPORTED_FEATURES,
GATT_CLIENT_EATT_READY,
} gatt_client_eatt_state_t;
#endif
typedef struct gatt_client{ typedef struct gatt_client{
btstack_linked_item_t item; btstack_linked_item_t item;
// TODO: rename gatt_client_state -> state // TODO: rename gatt_client_state -> state
@ -172,6 +183,11 @@ typedef struct gatt_client{
btstack_context_callback_registration_t sdp_query_request; btstack_context_callback_registration_t sdp_query_request;
#endif #endif
#ifdef ENABLE_GATT_OVER_EATT
gatt_client_eatt_state_t eatt_state;
uint16_t gatt_client_supported_features_handle;
#endif
uint16_t mtu; uint16_t mtu;
gatt_client_mtu_t mtu_state; gatt_client_mtu_t mtu_state;