76 lines
1.6 KiB
C
76 lines
1.6 KiB
C
#include <stdint.h>
|
|
#ifdef __cplusplus
|
|
extern "C" {
|
|
#endif
|
|
#include "bsp.h"
|
|
#include "esp_bt_defs.h"
|
|
#include "esp_gap_ble_api.h"
|
|
#include "esp_gatts_api.h"
|
|
|
|
typedef enum {
|
|
UUID_GATTS_SERVICE_TEST = 0x00FF,
|
|
UUID_GATTS_CHAR_TEST_A = 0xFF01,
|
|
UUID_GATTS_CHAR_TEST_B = 0xFF02,
|
|
UUID_GATTS_CHAR_TEST_C = 0xFF03,
|
|
UUID_PRIMARY_SERVICE = ESP_GATT_UUID_PRI_SERVICE,
|
|
UUID_CHARACTER_DECL = ESP_GATT_UUID_CHAR_DECLARE,
|
|
UUID_CLIENT_CONFIG = ESP_GATT_UUID_CHAR_CLIENT_CONFIG,
|
|
} bsp_ble_gatt_uuid_t;
|
|
|
|
typedef struct {
|
|
bsp_ble_gatt_uuid_t val_uuid;
|
|
uint8_t char_value[10];
|
|
} bsp_ble_charater_t;
|
|
|
|
/* Attributes State Machine */
|
|
typedef enum {
|
|
IDX_SVC,
|
|
IDX_CHAR_VOL, /* 电压 append Notify */
|
|
IDX_CHAR_VAL_VOL,
|
|
IDX_CHAR_CFG_VOL,
|
|
|
|
IDX_CHAR_B, /* TestB Noappend Notify */
|
|
IDX_CHAR_VAL_B,
|
|
|
|
IDX_CHAR_C,
|
|
IDX_CHAR_VAL_C,
|
|
|
|
HRS_IDX_NB,
|
|
} bsp_ble_ID_t;
|
|
|
|
typedef struct {
|
|
uint8_t *prepare_buf;
|
|
bsp_status_t prepare_len;
|
|
} bsp_prepare_env_t;
|
|
|
|
typedef struct {
|
|
uint8_t adv_config_done;
|
|
uint8_t heart_measurement_ccc[2];
|
|
uint16_t heart_rate_handle_table[HRS_IDX_NB];
|
|
esp_ble_adv_params_t adv_params;
|
|
esp_gatts_attr_db_t gatt_db[HRS_IDX_NB];
|
|
bsp_prepare_env_t write_env;
|
|
bsp_ble_charater_t char_inst[3];
|
|
} bsp_ble_config_t;
|
|
|
|
typedef struct {
|
|
esp_gatts_cb_t gatts_cb;
|
|
uint16_t gatts_if;
|
|
uint16_t app_id;
|
|
uint16_t conn_id;
|
|
uint16_t service_handle;
|
|
esp_gatt_srvc_id_t service_id;
|
|
uint16_t char_handle;
|
|
esp_bt_uuid_t char_uuid;
|
|
esp_gatt_perm_t perm;
|
|
esp_gatt_char_prop_t property;
|
|
uint16_t descr_handle;
|
|
esp_bt_uuid_t descr_uuid;
|
|
} bsp_gatts_profile_t;
|
|
|
|
void bsp_ble_init();
|
|
|
|
#ifdef __cplusplus
|
|
}
|
|
#endif
|