lock_lfvx/projects/bluetooth/central/main/gatt/dm_gatt_connection.h

55 lines
1.5 KiB
C
Raw Normal View History

2025-10-10 16:07:00 +08:00
#pragma once
#define GATT_MAX_CONNECTION_COUNT 7
enum
{
GAP_CONNECT_STATUS_IDLE,
GAP_CONNECT_STATUS_CONNECTING,
GAP_CONNECT_STATUS_CONNECTED,
GAP_CONNECT_STATUS_DISCONNECTING,
};
typedef struct
{
bk_bd_addr_t addr;
bk_ble_addr_type_t addr_type;
uint16_t conn_id;
uint8_t status; //see GAP_CONNECT_STATUS_IDLE
uint8_t local_is_master;
uint8_t is_authen;
uint32_t data_len;
uint8_t *data;
uint32_t addition_data_len;
uint8_t *addition_data;
} dm_gatt_app_env_t;
typedef struct
{
//for server
uint8_t notify_status; //0 disable; 1 notify; 2 indicate
//for client
uint8_t job_status; //see GATTC_STATUS_IDLE
uint8_t noti_indica_switch;
uint8_t noti_indicate_recv_count;
uint16_t peer_interest_service_start_handle; //interest
uint16_t peer_interest_service_end_handle;
uint16_t peer_interest_char_handle;
uint16_t peer_interest_char_desc_handle;
uint16_t peer_gap_service_start_handle;
uint16_t peer_gap_service_end_handle;
} dm_gatt_demo_app_env_t;
dm_gatt_app_env_t *dm_ble_alloc_app_env_by_addr(uint8_t *addr, uint32_t data_len);
dm_gatt_app_env_t *dm_ble_find_app_env_by_addr(uint8_t *addr);
dm_gatt_app_env_t *dm_ble_find_app_env_by_conn_id(uint16_t conn_id);
uint8_t dm_ble_del_app_env_by_addr(uint8_t *addr);
dm_gatt_app_env_t *dm_ble_alloc_addition_data_by_addr(uint8_t *addr, uint32_t data_len);
uint8_t dm_ble_app_env_foreach( int32_t (*func) (dm_gatt_app_env_t *env, void *arg), void *arg );