component/bt : cleanup the function comment as doxygen type

This commit is contained in:
Tian Hao 2016-12-01 18:58:54 +08:00
parent 281a9c2761
commit c6ec70b67b
7 changed files with 834 additions and 752 deletions

View file

@ -27,16 +27,19 @@
#define ESP_BLUFI_EVENT_DEINIT_FINISH 1
#define ESP_BLUFI_EVENT_RECV_DATA 2
/// BLUFI config status
typedef enum {
ESP_BLUFI_CONFIG_OK = 0,
ESP_BLUFI_CONFIG_FAILED,
} esp_blufi_config_state_t;
/// BLUFI init status
typedef enum {
ESP_BLUFI_INIT_OK = 0,
ESP_BLUFI_INIT_FAILED = 0,
} esp_blufi_init_state_t;
/// BLUFI deinit status
typedef enum {
ESP_BLUFI_DEINIT_OK = 0,
ESP_BLUFI_DEINIT_FAILED = 0,
@ -69,52 +72,52 @@ typedef union {
} recv_data; /*!< Blufi callback param of ESP_BLUFI_EVENT_RECV_DATA */
} esp_blufi_cb_param_t;
/*******************************************************************************
**
** @function esp_blufi_register_callback
**
** @brief This function is called to receive blufi callback event
**
** @param[in] callback: callback function
**
** @return ESP_OK - success, other - failed
**
*******************************************************************************/
/**
*
* @function esp_blufi_register_callback
*
* @brief This function is called to receive blufi callback event
*
* @param[in] callback: callback function
*
* @return ESP_OK - success, other - failed
*
*/
esp_err_t esp_blufi_register_callback(esp_profile_cb_t callback);
/*******************************************************************************
**
** @function esp_blufi_send_config_state
**
** @brief This function is called to send config state to phone
**
** @param[in] state: blufi config OK or not
**
** @return ESP_OK - success, other - failed
**
*******************************************************************************/
/**
*
* @function esp_blufi_send_config_state
*
* @brief This function is called to send config state to phone
*
* @param[in] state: blufi config OK or not
*
* @return ESP_OK - success, other - failed
*
*/
esp_err_t esp_blufi_send_config_state(esp_blufi_config_state_t state);
/*******************************************************************************
**
** @function esp_blufi_profile_init
**
** @brief This function is called to initialize blufi_profile
**
** @return ESP_OK - success, other - failed
**
*******************************************************************************/
/**
*
* @function esp_blufi_profile_init
*
* @brief This function is called to initialize blufi_profile
*
* @return ESP_OK - success, other - failed
*
*/
esp_err_t esp_blufi_profile_init(void);
/*******************************************************************************
**
** @function esp_blufi_profile_deinit
**
** @brief This function is called to de-initialize blufi_profile
**
** @return ESP_OK - success, other - failed
**
*******************************************************************************/
/*
*
* @function esp_blufi_profile_deinit
*
* @brief This function is called to de-initialize blufi_profile
*
* @return ESP_OK - success, other - failed
*
*/
esp_err_t esp_blufi_profile_deinit(void);

View file

@ -18,7 +18,7 @@
#include <stdint.h>
#include <stdbool.h>
/* Status Return Value */
/// Status Return Value
typedef enum {
ESP_BT_STATUS_SUCCESS = 0, /* Successful operation. */
ESP_BT_STATUS_FAILURE = 1, /* Generic failure. */
@ -28,12 +28,16 @@ typedef enum {
ESP_BT_STATUS_WRONG_MODE = 5,
} esp_bt_status_t;
/// Default GATT interface id
#define ESP_DEFAULT_GATT_IF 0xff
/// Default BLE connection param, if the value doesn't be overwritten
#define ESP_BLE_CONN_PARAM_UNDEF 0xffff /* use this value when a specific value not to be overwritten */
/// Check the param is valid or not
#define ESP_BLE_IS_VALID_PARAM(x, min, max) (((x) >= (min) && (x) <= (max)) || ((x) == ESP_BLE_CONN_PARAM_UNDEF))
/// UUID type
typedef struct {
#define ESP_UUID_LEN_16 2
#define ESP_UUID_LEN_32 4
@ -46,14 +50,18 @@ typedef struct {
} uuid; /*!< UUID */
} __attribute__((packed)) esp_bt_uuid_t;
/// Bluetooth device type
typedef enum {
ESP_BT_DEVICE_TYPE_BREDR = 0x01,
ESP_BT_DEVICE_TYPE_BLE = 0x02,
ESP_BT_DEVICE_TYPE_DUMO = 0x03,
} esp_bt_dev_type_t;
/// Bluetooth address length
#define ESP_BD_ADDR_LEN 6
typedef uint8_t esp_bd_addr_t[ESP_BD_ADDR_LEN]; /*!< Bluetooth device address */
/// Bluetooth device address
typedef uint8_t esp_bd_addr_t[ESP_BD_ADDR_LEN];
/// Own BD address source of the device
typedef enum {
@ -71,6 +79,7 @@ typedef enum {
BD_ADDR_PROVIDED_RECON,
} esp_bd_addr_type_t;
/// BLE device address type
typedef enum {
BLE_ADDR_TYPE_PUBLIC = 0x00,
BLE_ADDR_TYPE_RANDOM = 0x01,
@ -78,9 +87,16 @@ typedef enum {
BLE_ADDR_TYPE_RPA_RANDOM = 0x03,
} esp_ble_addr_type_t;
/// Minimum of the application id
#define ESP_APP_ID_MIN 0x0000
/// Maximum of the application id
#define ESP_APP_ID_MAX 0x7fff
/**
* @brief Each profile callback function type
* @param event : Event type
* @param param : Point to callback parameter, currently is union type
*/
typedef void (* esp_profile_cb_t)(uint32_t event, void *param);
#endif ///__ESP_BT_DEFS_H__

View file

@ -18,12 +18,44 @@
#include "btc_main.h"
#include "esp_err.h"
/**
* @function esp_enable_bluetooth
*
* @brief Enable bluetooth, must after esp_init_bluetooth()
*
* @return - ESP_OK : Succeed
* - Other : Failed
*/
esp_err_t esp_enable_bluetooth(void);
/**
* @function esp_disable_bluetooth
*
* @brief Disable bluetooth, must prior to esp_deinit_bluetooth()
*
* @return - ESP_OK : Succeed
* - Other : Failed
*/
esp_err_t esp_disable_bluetooth(void);
/**
* @function esp_init_bluetooth
*
* @brief Init and alloc the resource for bluetooth, must be prior to every bluetooth stuff
*
* @return - ESP_OK : Succeed
* - Other : Failed
*/
esp_err_t esp_init_bluetooth(void);
/**
* @function esp_deinit_bluetooth
*
* @brief Deinit and free the resource for bluetooth, must be after every bluetooth stuff
*
* @return - ESP_OK : Succeed
* - Other : Failed
*/
esp_err_t esp_deinit_bluetooth(void);

View file

@ -21,42 +21,45 @@
#include "esp_err.h"
#include "esp_bt_defs.h"
#define ESP_GAP_BLE_ADV_DATA_SET_COMPLETE_EVT 0
#define ESP_GAP_BLE_SCAN_RSP_DATA_SET_COMPLETE_EVT 1
#define ESP_GAP_BLE_SCAN_PARAM_SET_COMPLETE_EVT 2
#define ESP_GAP_BLE_SCAN_RESULT_EVT 3
/// GAP BLE callback event type
typedef enum {
ESP_GAP_BLE_ADV_DATA_SET_COMPLETE_EVT = 0, /*!< When advertising data set complete, the event comes */
ESP_GAP_BLE_SCAN_RSP_DATA_SET_COMPLETE_EVT , /*!< When scan response data set complete, the event comes */
ESP_GAP_BLE_SCAN_PARAM_SET_COMPLETE_EVT, /*!< When scan parameters set complete, the event comes */
ESP_GAP_BLE_SCAN_RESULT_EVT, /*!< When one scan result ready, the event comes each time */
}esp_gap_ble_cb_event_t;
/// Advertising data maximum length
#define ESP_BLE_ADV_DATA_LEN_MAX 31
/****************** define the adv type macro***************************************/
#define ESP_BLE_AD_TYPE_FLAG 0x01
#define ESP_BLE_AD_TYPE_16SRV_PART 0x02
#define ESP_BLE_AD_TYPE_16SRV_CMPL 0x03
#define ESP_BLE_AD_TYPE_32SRV_PART 0x04
#define ESP_BLE_AD_TYPE_32SRV_CMPL 0x05
#define ESP_BLE_AD_TYPE_128SRV_PART 0x06
#define ESP_BLE_AD_TYPE_128SRV_CMPL 0x07
#define ESP_BLE_AD_TYPE_NAME_SHORT 0x08
#define ESP_BLE_AD_TYPE_NAME_CMPL 0x09
#define ESP_BLE_AD_TYPE_TX_PWR 0x0A
#define ESP_BLE_AD_TYPE_DEV_CLASS 0x0D
#define ESP_BLE_AD_TYPE_SM_TK 0x10
#define ESP_BLE_AD_TYPE_SM_OOB_FLAG 0x11
#define ESP_BLE_AD_TYPE_INT_RANGE 0x12
#define ESP_BLE_AD_TYPE_SOL_SRV_UUID 0x14
#define ESP_BLE_AD_TYPE_128SOL_SRV_UUID 0x15
#define ESP_BLE_AD_TYPE_SERVICE_DATA 0x16
#define ESP_BLE_AD_TYPE_PUBLIC_TARGET 0x17
#define ESP_BLE_AD_TYPE_RANDOM_TARGET 0x18
#define ESP_BLE_AD_TYPE_APPEARANCE 0x19
#define ESP_BLE_AD_TYPE_ADV_INT 0x1A
#define ESP_BLE_AD_TYPE_32SOL_SRV_UUID 0x1B
#define ESP_BLE_AD_TYPE_32SERVICE_DATA 0x1C
#define ESP_BLE_AD_TYPE_128SERVICE_DATA 0x1D
#define ESP_BLE_AD_MANUFACTURER_SPECIFIC_TYPE 0xFF
typedef uint32_t esp_gap_ble_event_t;
/// The type of advertising data(not adv_type)
typedef enum {
ESP_BLE_AD_TYPE_FLAG = 0x01,
ESP_BLE_AD_TYPE_16SRV_PART = 0x02,
ESP_BLE_AD_TYPE_16SRV_CMPL = 0x03,
ESP_BLE_AD_TYPE_32SRV_PART = 0x04,
ESP_BLE_AD_TYPE_32SRV_CMPL = 0x05,
ESP_BLE_AD_TYPE_128SRV_PART = 0x06,
ESP_BLE_AD_TYPE_128SRV_CMPL = 0x07,
ESP_BLE_AD_TYPE_NAME_SHORT = 0x08,
ESP_BLE_AD_TYPE_NAME_CMPL = 0x09,
ESP_BLE_AD_TYPE_TX_PWR = 0x0A,
ESP_BLE_AD_TYPE_DEV_CLASS = 0x0D,
ESP_BLE_AD_TYPE_SM_TK = 0x10,
ESP_BLE_AD_TYPE_SM_OOB_FLAG = 0x11,
ESP_BLE_AD_TYPE_INT_RANGE = 0x12,
ESP_BLE_AD_TYPE_SOL_SRV_UUID = 0x14,
ESP_BLE_AD_TYPE_128SOL_SRV_UUID = 0x15,
ESP_BLE_AD_TYPE_SERVICE_DATA = 0x16,
ESP_BLE_AD_TYPE_PUBLIC_TARGET = 0x17,
ESP_BLE_AD_TYPE_RANDOM_TARGET = 0x18,
ESP_BLE_AD_TYPE_APPEARANCE = 0x19,
ESP_BLE_AD_TYPE_ADV_INT = 0x1A,
ESP_BLE_AD_TYPE_32SOL_SRV_UUID = 0x1B,
ESP_BLE_AD_TYPE_32SERVICE_DATA = 0x1C,
ESP_BLE_AD_TYPE_128SERVICE_DATA = 0x1D,
ESP_BLE_AD_MANUFACTURER_SPECIFIC_TYPE = 0xFF,
} esp_ble_adv_data_type;
/// Advertising mode
typedef enum {
@ -189,17 +192,15 @@ typedef struct {
Time Range: 100 msec to 32 seconds */
} esp_ble_conn_update_params_t;
typedef void (*esp_gap_ble_cb_t)(esp_gap_ble_event_t event, void *param);
/// Sub Event of ESP_GAP_BLE_SCAN_RESULT_EVT
typedef enum {
/* Search callback events */
ESP_GAP_SEARCH_INQ_RES_EVT = 0, /* Inquiry result for a peer device. */
ESP_GAP_SEARCH_INQ_CMPL_EVT = 1, /* Inquiry complete. */
ESP_GAP_SEARCH_DISC_RES_EVT = 2, /* Discovery result for a peer device. */
ESP_GAP_SEARCH_DISC_BLE_RES_EVT = 3, /* Discovery result for BLE GATT based service on a peer device. */
ESP_GAP_SEARCH_DISC_CMPL_EVT = 4, /* Discovery complete. */
ESP_GAP_SEARCH_DI_DISC_CMPL_EVT = 5, /* Discovery complete. */
ESP_GAP_SEARCH_SEARCH_CANCEL_CMPL_EVT = 6, /* Search cancelled */
ESP_GAP_SEARCH_INQ_RES_EVT = 0, /*!< Inquiry result for a peer device. */
ESP_GAP_SEARCH_INQ_CMPL_EVT = 1, /*!< Inquiry complete. */
ESP_GAP_SEARCH_DISC_RES_EVT = 2, /*!< Discovery result for a peer device. */
ESP_GAP_SEARCH_DISC_BLE_RES_EVT = 3, /*!< Discovery result for BLE GATT based service on a peer device. */
ESP_GAP_SEARCH_DISC_CMPL_EVT = 4, /*!< Discovery complete. */
ESP_GAP_SEARCH_DI_DISC_CMPL_EVT = 5, /*!< Discovery complete. */
ESP_GAP_SEARCH_SEARCH_CANCEL_CMPL_EVT = 6, /*!< Search cancelled */
} esp_gap_search_evt_t;
/**
@ -239,192 +240,189 @@ typedef union {
} scan_rst; /*!< Event parameter of ESP_GAP_BLE_SCAN_RESULT_EVT */
} esp_ble_gap_cb_param_t;
/*******************************************************************************
**
** @function esp_ble_gap_register_callback
**
** @brief This function is called to occur gap event, such as scan result
**
** @param[in] callback: callback function
**
** @return ESP_OK - success, other - failed
**
*******************************************************************************/
/**
* @function esp_ble_gap_register_callback
*
* @brief This function is called to occur gap event, such as scan result
*
* @param[in] callback: callback function
*
* @return - ESP_OK : success
* - other : failed
*
*/
esp_err_t esp_ble_gap_register_callback(esp_profile_cb_t callback);
/*******************************************************************************
**
** @function esp_ble_gap_config_adv_data
**
** @brief This function is called to override the BTA default ADV parameters.
**
** @param[in] adv_data: Pointer to User defined ADV data structure. This
** memory space can not be freed until callback of config_adv_data
** is received.
**
** @return ESP_OK - success, other - failed
**
*******************************************************************************/
/**
* @function esp_ble_gap_config_adv_data
*
* @brief This function is called to override the BTA default ADV parameters.
*
* @param[in] adv_data: Pointer to User defined ADV data structure. This
* memory space can not be freed until callback of config_adv_data
* is received.
*
* @return - ESP_OK : success
* - other : failed
*
*/
esp_err_t esp_ble_gap_config_adv_data (esp_ble_adv_data_t *adv_data);
/*******************************************************************************
**
** @function esp_ble_gap_set_scan_params
**
** @brief This function is called to set scan parameters
**
** @param[in] esp_ble_scan_params: Pointer to User defined scan_params data structure. This
** memory space can not be freed until callback of set_scan_params
**
** @return ESP_OK - success, other - failed
**
*******************************************************************************/
/**
* @function esp_ble_gap_set_scan_params
*
* @brief This function is called to set scan parameters
*
* @param[in] esp_ble_scan_params: Pointer to User defined scan_params data structure. This
* memory space can not be freed until callback of set_scan_params
*
* @return - ESP_OK : success
* - other : failed
*
*/
esp_err_t esp_ble_gap_set_scan_params(esp_ble_scan_params_t *scan_params);
/*******************************************************************************
**
** @function esp_ble_gap_start_scanning
**
** @brief This procedure keep the device scanning the peer device which advertising on the air
**
** @param[in] duration: Keeping the scanning time, the unit is second.
**
** @return ESP_OK - success, other - failed
**
*******************************************************************************/
/**
* @function esp_ble_gap_start_scanning
*
* @brief This procedure keep the device scanning the peer device which advertising on the air
*
* @param[in] duration: Keeping the scanning time, the unit is second.
*
* @return - ESP_OK : success
* - other : failed
*
*/
esp_err_t esp_ble_gap_start_scanning(uint32_t duration);
/*******************************************************************************
**
** @function esp_ble_gap_stop_scanning
**
** @brief This function call to stop the device scanning the peer device which advertising on the air
** @param void
** @return ESP_OK - success, other - failed
**
*******************************************************************************/
/**
* @function esp_ble_gap_stop_scanning
*
* @brief This function call to stop the device scanning the peer device which advertising on the air
* @param void
* @return - ESP_OK : success
* - other : failed
*
*/
esp_err_t esp_ble_gap_stop_scanning(void);
/*******************************************************************************
**
** @function esp_ble_gap_start_advertising
**
** @brief This function is called to start advertising.
**
** @param[in] esp_ble_adv_params_all_t: pointer to User defined adv_params data structure.
**
** @return ESP_OK - success, other - failed
**
*******************************************************************************/
/**
* @function esp_ble_gap_start_advertising
*
* @brief This function is called to start advertising.
*
* @param[in] esp_ble_adv_params_all_t: pointer to User defined adv_params data structure.
*
* @return - ESP_OK : success
* - other : failed
*
*/
esp_err_t esp_ble_gap_start_advertising (esp_ble_adv_params_t *adv_params);
/*******************************************************************************
**
** @function esp_gap_ble_stop_advertising
**
** @brief This function is called to stop advertising.
**
** @param None
**
** @return ESP_OK - success, other - failed
**
*******************************************************************************/
/**
* @function esp_gap_ble_stop_advertising
*
* @brief This function is called to stop advertising.
*
* @param None
*
* @return - ESP_OK : success
* - other : failed
*
*/
esp_err_t esp_ble_gap_stop_advertising(void);
/*******************************************************************************
**
** @function esp_ble_update_conn_params
**
** @brief Update connection parameters, can only be used when connection is up.
**
** @param[in] param - connection update parameters
**
** @return ESP_OK - success, other - failed
**
*******************************************************************************/
/**
* @function esp_ble_update_conn_params
*
* @brief Update connection parameters, can only be used when connection is up.
*
* @param[in] param - connection update parameters
*
* @return - ESP_OK : success
* - other : failed
*
*/
esp_err_t esp_ble_gap_update_conn_params(esp_ble_conn_update_params_t *params);
/*******************************************************************************
**
** @function esp_ble_gap_set_pkt_data_len
**
** @brief This function is to set maximum LE data packet size
**
** @return ESP_OK - success, other - failed
**
*******************************************************************************/
/**
* @function esp_ble_gap_set_pkt_data_len
*
* @brief This function is to set maximum LE data packet size
*
* @return - ESP_OK : success
* - other : failed
*
*/
esp_err_t esp_ble_gap_set_pkt_data_len(esp_bd_addr_t remote_device, uint16_t tx_data_length);
/*******************************************************************************
**
** @function esp_ble_gap_set_rand_addr
**
** @brief This function set the random address for the application
**
** @param[in] rand_addr: the random address which should be setting
**
** @return ESP_OK - success, other - failed
**
**
*******************************************************************************/
/**
* @function esp_ble_gap_set_rand_addr
*
* @brief This function set the random address for the application
*
* @param[in] rand_addr: the random address which should be setting
*
* @return - ESP_OK : success
* - other : failed
*
*/
esp_err_t esp_ble_gap_set_rand_addr(esp_bd_addr_t rand_addr);
/*******************************************************************************
**
** @function esp_ble_gap_config_local_privacy
**
** @brief Enable/disable privacy on the local device
**
** @param[in] privacy_enable - enable/disable privacy on remote device.
**
** @return ESP_OK - success, other - failed
**
*******************************************************************************/
/**
* @function esp_ble_gap_config_local_privacy
*
* @brief Enable/disable privacy on the local device
*
* @param[in] privacy_enable - enable/disable privacy on remote device.
*
* @return - ESP_OK : success
* - other : failed
*
*/
esp_err_t esp_ble_gap_config_local_privacy (bool privacy_enable);
/*******************************************************************************
**
** @function esp_ble_gap_set_device_name
**
** @brief Set device name to the local device
**
** @param[in] name - device name.
**
** @return ESP_OK - success, other - failed
**
*******************************************************************************/
/**
* @function esp_ble_gap_set_device_name
*
* @brief Set device name to the local device
*
* @param[in] name - device name.
*
* @return - ESP_OK : success
* - other : failed
*
*/
esp_err_t esp_ble_gap_set_device_name(const char *name);
/*******************************************************************************
**
** @function esp_ble_resolve_adv_data
**
** @brief This function is called to get ADV data for a specific type.
**
** @param[in] adv_data - pointer of ADV data which to be resolved
** @param[in] type - finding ADV data type
** @param[out] length - return the length of ADV data not including type
**
** @return pointer of ADV data
**
*******************************************************************************/
/**
* @function esp_ble_resolve_adv_data
*
* @brief This function is called to get ADV data for a specific type.
*
* @param[in] adv_data - pointer of ADV data which to be resolved
* @param[in] type - finding ADV data type
* @param[out] length - return the length of ADV data not including type
*
* @return pointer of ADV data
*
*/
uint8_t *esp_ble_resolve_adv_data(uint8_t *adv_data, uint8_t type, uint8_t *p_length);
#endif /* __ESP_GAP_BLE_API_H__ */

View file

@ -17,9 +17,11 @@
#include "esp_bt_defs.h"
/* attribute request data from the client */
#define ESP_GATT_PREP_WRITE_CANCEL 0x00
#define ESP_GATT_PREP_WRITE_EXEC 0x01
/// Attribute write data type from the client
typedef enum {
ESP_GATT_PREP_WRITE_CANCEL = 0x00, /*!< Prepare write cancel */
ESP_GATT_PREP_WRITE_EXEC = 0x01, /*!< Prepare write execute */
} esp_gatt_prep_write_type;
/**
* @brief GATT success code and error codes
@ -144,6 +146,7 @@ typedef enum {
ESP_GATT_CHAR_PROP_BIT_EXT_PROP = (1 << 7), /* 0x80 */
} esp_gatt_char_prop_t;
/// GATT maximum attribute length
#define ESP_GATT_MAX_ATTR_LEN 600 //as same as GATT_MAX_ATTR_LEN
/// Gatt attribute value
@ -169,6 +172,6 @@ typedef enum {
ESP_GATT_WRITE_TYPE_RSP, /*!< Gatt write attribute need remote response */
} esp_gatt_write_type_t;
typedef uint32_t esp_gatt_if_t; /* Gatt interface type, different application on GATT client use different gatt_if */
typedef uint32_t esp_gatt_if_t; /*!< Gatt interface type, different application on GATT client use different gatt_if */
#endif /* __ESP_GATT_DEFS_H__ */

631
components/bt/bluedroid/api/include/esp_gattc_api.h Normal file → Executable file
View file

@ -20,50 +20,53 @@
#include "esp_gatt_defs.h"
#include "esp_err.h"
/* Client callback function events */
#define ESP_GATTC_REG_EVT 0 /* GATT client is registered. */
#define ESP_GATTC_UNREG_EVT 1 /* GATT client unregistered event */
#define ESP_GATTC_OPEN_EVT 2 /* GATTC open request status event */
#define ESP_GATTC_READ_CHAR_EVT 3 /* GATT read characteristic event */
#define ESP_GATTC_WRITE_CHAR_EVT 4 /* GATT write characteristic or char descriptor event */
#define ESP_GATTC_CLOSE_EVT 5 /* GATTC close request status event */
#define ESP_GATTC_SEARCH_CMPL_EVT 6 /* GATT discovery complete event */
#define ESP_GATTC_SEARCH_RES_EVT 7 /* GATT discovery result event */
#define ESP_GATTC_READ_DESCR_EVT 8 /* GATT read characteristic descriptor event */
#define ESP_GATTC_WRITE_DESCR_EVT 9 /* GATT write characteristic descriptor event */
#define ESP_GATTC_NOTIFY_EVT 10 /* GATT attribute notification event */
#define ESP_GATTC_PREP_WRITE_EVT 11 /* GATT prepare write event */
#define ESP_GATTC_EXEC_EVT 12 /* execute write complete event */
#define ESP_GATTC_ACL_EVT 13 /* ACL up event */
#define ESP_GATTC_CANCEL_OPEN_EVT 14 /* cancel open event */
#define ESP_GATTC_SRVC_CHG_EVT 15 /* service change event */
#define ESP_GATTC_ENC_CMPL_CB_EVT 17 /* encryption complete callback event */
#define ESP_GATTC_CFG_MTU_EVT 18 /* configure MTU complete event */
#define ESP_GATTC_ADV_DATA_EVT 19 /* ADV data event */
#define ESP_GATTC_MULT_ADV_ENB_EVT 20 /* Enable Multi ADV event */
#define ESP_GATTC_MULT_ADV_UPD_EVT 21 /* Update parameter event */
#define ESP_GATTC_MULT_ADV_DATA_EVT 22 /* Multi ADV data event */
#define ESP_GATTC_MULT_ADV_DIS_EVT 23 /* Disable Multi ADV event */
#define ESP_GATTC_CONGEST_EVT 24 /* Congestion event */
#define ESP_GATTC_BTH_SCAN_ENB_EVT 25 /* Enable batch scan event */
#define ESP_GATTC_BTH_SCAN_CFG_EVT 26 /* Config storage event */
#define ESP_GATTC_BTH_SCAN_RD_EVT 27 /* Batch scan reports read event */
#define ESP_GATTC_BTH_SCAN_THR_EVT 28 /* Batch scan threshold event */
#define ESP_GATTC_BTH_SCAN_PARAM_EVT 29 /* Batch scan param event */
#define ESP_GATTC_BTH_SCAN_DIS_EVT 30 /* Disable batch scan event */
#define ESP_GATTC_SCAN_FLT_CFG_EVT 31 /* Scan filter config event */
#define ESP_GATTC_SCAN_FLT_PARAM_EVT 32 /* Param filter event */
#define ESP_GATTC_SCAN_FLT_STATUS_EVT 33 /* Filter status event */
#define ESP_GATTC_ADV_VSC_EVT 34 /* ADV VSC event */
#define ESP_GATTC_GET_CHAR_EVT 35 /* get characteristic event */
#define ESP_GATTC_GET_DESCR_EVT 36 /* get characteristic descriptor event */
#define ESP_GATTC_GET_INCL_SRVC_EVT 37 /* get included service event */
#define ESP_GATTC_REG_FOR_NOTIFY_EVT 38 /* register for notification event */
#define ESP_GATTC_UNREG_FOR_NOTIFY_EVT 39 /* unregister for notification event */
/// GATT Client callback function events
typedef enum {
ESP_GATTC_REG_EVT = 0, /*!> when GATT client is registered */
ESP_GATTC_UNREG_EVT, /*!> when GATT client is unregistered */
ESP_GATTC_OPEN_EVT, /*!> when GATT connection is set up */
ESP_GATTC_READ_CHAR_EVT, /*!> when GATT characteristic is read */
ESP_GATTC_WRITE_CHAR_EVT, /*!> when GATT characteristic write operation completes */
ESP_GATTC_CLOSE_EVT, /*!> when GATT connection is closed */
ESP_GATTC_SEARCH_CMPL_EVT, /*!> when GATT service discovery is completed */
ESP_GATTC_SEARCH_RES_EVT, /*!> when GATT service discovery result is got */
ESP_GATTC_READ_DESCR_EVT, /*!> when GATT characteristic descriptor read completes */
ESP_GATTC_WRITE_DESCR_EVT, /*!> when GATT characteristic descriptor write completes */
ESP_GATTC_NOTIFY_EVT, /*!> when GATT notification or indication arrives */
ESP_GATTC_PREP_WRITE_EVT, /*!> when GATT prepare-write operation conpletes */
ESP_GATTC_EXEC_EVT, /*!> when write execution completes */
ESP_GATTC_ACL_EVT, /*!> when ACL connection is up */
ESP_GATTC_CANCEL_OPEN_EVT, /*!> when GATT client ongoing connection is cancelled */
ESP_GATTC_SRVC_CHG_EVT, /*!> when "service changed" occurs */
ESP_GATTC_ENC_CMPL_CB_EVT, /*!> when encryption procedure completes */
ESP_GATTC_CFG_MTU_EVT, /*!> when configuration of MTU completes */
ESP_GATTC_ADV_DATA_EVT, /*!> when advertising of data */
ESP_GATTC_MULT_ADV_ENB_EVT, /*!> when multi-advertising is enabled */
ESP_GATTC_MULT_ADV_UPD_EVT, /*!> when multi-advertising parameters are updated */
ESP_GATTC_MULT_ADV_DATA_EVT, /*!> when multi-advertising data arrives */
ESP_GATTC_MULT_ADV_DIS_EVT, /*!> when multi-advertising is disabled */
ESP_GATTC_CONGEST_EVT, /*!> when GATT connection congestion comes */
ESP_GATTC_BTH_SCAN_ENB_EVT, /*!> when batch scan is enabled */
ESP_GATTC_BTH_SCAN_CFG_EVT, /*!> when batch scan storage is configured */
ESP_GATTC_BTH_SCAN_RD_EVT, /*!> when Batch scan read event is reported */
ESP_GATTC_BTH_SCAN_THR_EVT, /*!> when Batch scan threshold is set */
ESP_GATTC_BTH_SCAN_PARAM_EVT, /*!> when Batch scan parameters are set */
ESP_GATTC_BTH_SCAN_DIS_EVT, /*!> when Batch scan is disabled */
ESP_GATTC_SCAN_FLT_CFG_EVT, /*!> when Scan filter configuration completes */
ESP_GATTC_SCAN_FLT_PARAM_EVT, /*!> when Scan filter parameters are set */
ESP_GATTC_SCAN_FLT_STATUS_EVT, /*!> when Scan filter status is reported */
ESP_GATTC_ADV_VSC_EVT, /*!> when ADV VSC event is reported*/
ESP_GATTC_GET_CHAR_EVT, /*!> when characteristic is got from GATT server */
ESP_GATTC_GET_DESCR_EVT, /*!> when charcteristic descriptor is got from GATT server */
ESP_GATTC_GET_INCL_SRVC_EVT, /*!> when included service is got from GATT server */
ESP_GATTC_REG_FOR_NOTIFY_EVT, /*!> when registration for notification of a service completes */
ESP_GATTC_UNREG_FOR_NOTIFY_EVT /*!> when unregistration for notification of a service completes */
} esp_gattc_cb_event_t;
/// Maximum Transmission Unit used in GATT
#define ESP_GATT_DEF_BLE_MTU_SIZE 23
/// Maximum Transmission Unit allowed in GATT
#define ESP_GATT_MAX_MTU_SIZE 517
/**
@ -242,215 +245,222 @@ typedef union {
} esp_ble_gattc_cb_param_t; /*!< GATT client callback parameter union type */
/*******************************************************************************
**
** @function esp_ble_gattc_app_register_callback
**
** @brief This function is called to register application callbacks
** with GATTC module.
**
** @param[in] callback : pointer to the application callback function.
**
** @return ESP_OK - success, other - failed
**
*******************************************************************************/
/**
*
* @function esp_ble_gattc_app_register_callback
*
* @brief This function is called to register application callbacks
* with GATTC module.
*
* @param[in] callback : pointer to the application callback function.
*
* @return - ESP_OK: success
* - other: failed
*
*/
esp_err_t esp_ble_gattc_register_callback(esp_profile_cb_t callback);
/*******************************************************************************
**
** @function esp_ble_gattc_app_register
**
** @brief This function is called to register application callbacks
** with GATTC module.
**
** @param[in] app_id : Application Identify (UUID), for different application
**
** @return ESP_OK - success, other - failed
**
*******************************************************************************/
/**
*
* @function esp_ble_gattc_app_register
*
* @brief This function is called to register application callbacks
* with GATTC module.
*
* @param[in] app_id : Application Identify (UUID), for different application
*
* @return - ESP_OK: success
* - other: failed
*
*/
esp_err_t esp_ble_gattc_app_register(uint16_t app_id);
/*******************************************************************************
**
** @function esp_ble_gattc_app_unregister
**
** @brief This function is called to unregister an application
** from GATTC module.
**
** @param[in] gatt_if : app identifier.
**
** @return ESP_OK - success, other - failed
**
*******************************************************************************/
/**
*
* @function esp_ble_gattc_app_unregister
*
* @brief This function is called to unregister an application
* from GATTC module.
*
* @param[in] gatt_if : app identifier.
*
* @return - ESP_OK: success
* - other: failed
*
*/
esp_err_t esp_ble_gattc_app_unregister(esp_gatt_if_t gatt_if);
/*******************************************************************************
**
** @function esp_ble_gattc_conn
**
** @brief Open a direct connection or add a background auto connection
**
** @param[in] gatt_if: application identity.
** @param[in] remote_bda: remote device bluetooth device address.
** @param[in] is_direct: direct connection or background auto connection
**
** @return ESP_OK - success, other - failed
**
*******************************************************************************/
/**
*
* @function esp_ble_gattc_conn
*
* @brief Open a direct connection or add a background auto connection
*
* @param[in] gatt_if: application identity.
* @param[in] remote_bda: remote device bluetooth device address.
* @param[in] is_direct: direct connection or background auto connection
*
* @return - ESP_OK: success
* - other: failed
*
*/
esp_err_t esp_ble_gattc_open(esp_gatt_if_t gatt_if, esp_bd_addr_t remote_bda, bool is_direct);
/*******************************************************************************
**
** @function esp_ble_gattc_close
**
** @brief Close a connection to a GATT server.
**
** @param[in] conn_id: connection ID to be closed.
**
** @return ESP_OK - success, other - failed
**
*******************************************************************************/
/**
*
* @function esp_ble_gattc_close
*
* @brief Close a connection to a GATT server.
*
* @param[in] conn_id: connection ID to be closed.
*
* @return - ESP_OK: success
* - other: failed
*
*/
esp_err_t esp_ble_gattc_close (uint16_t conn_id);
/*******************************************************************************
**
** @function esp_ble_gattc_config_mtu
**
** @brief Configure the MTU size in the GATT channel. This can be done
** only once per connection.
**
** @param[in] conn_id: connection ID.
** mtu: desired MTU size to use.
**
** @return ESP_OK - success, other - failed
**
*******************************************************************************/
/**
*
* @function esp_ble_gattc_config_mtu
*
* @brief Configure the MTU size in the GATT channel. This can be done
* only once per connection.
*
* @param[in] conn_id: connection ID.
* mtu: desired MTU size to use.
*
* @return - ESP_OK: success
* - other: failed
*
*/
esp_err_t esp_ble_gattc_config_mtu (uint16_t conn_id, uint16_t mtu);
/*******************************************************************************
**
** @function esp_ble_gattc_search_service
**
** @brief This function is called to request a GATT service discovery
** on a GATT server. This function report service search result
** by a callback event, and followed by a service search complete
** event.
**
** @param[in] conn_id: connection ID.
** @param[in] filter_uuid: a UUID of the service application is interested in.
** If Null, discover for all services.
**
** @return ESP_OK - success, other - failed
**
*******************************************************************************/
/**
*
* @function esp_ble_gattc_search_service
*
* @brief This function is called to request a GATT service discovery
* on a GATT server. This function report service search result
* by a callback event, and followed by a service search complete
* event.
*
* @param[in] conn_id: connection ID.
* @param[in] filter_uuid: a UUID of the service application is interested in.
* If Null, discover for all services.
*
* @return - ESP_OK: success
* - other: failed
*
*/
esp_err_t esp_ble_gattc_search_service(uint16_t conn_id, esp_bt_uuid_t *filter_uuid);
/****************************************************************************************************
**
** @function esp_ble_gattc_get_characteristic
**
** @brief This function is called to find the first characteristic of the
** service on the given server.
**
** @param[in] conn_id: connection ID which identify the server.
**
** @param[in] srvc_id: service ID
**
** @param[in] start_char_id: the start characteristic ID
**
** @return ESP_OK - success, other - failed
**
*****************************************************************************************************/
/**
*
* @function esp_ble_gattc_get_characteristic
*
* @brief This function is called to find the first characteristic of the
* service on the given server.
*
* @param[in] conn_id: connection ID which identify the server.
*
* @param[in] srvc_id: service ID
*
* @param[in] start_char_id: the start characteristic ID
*
* @return - ESP_OK: success
* - other: failed
*
*/
esp_err_t esp_ble_gattc_get_characteristic(uint16_t conn_id,
esp_gatt_srvc_id_t *srvc_id, esp_gatt_id_t *start_char_id);
/****************************************************************************************************
**
** @function esp_ble_gattc_get_descriptor
**
** @brief This function is called to find the descriptor of the
** service on the given server.
**
** @param[in] conn_id: connection ID which identify the server.
** @param[in] srvc_id: the service ID of which the characteristic is belonged to.
** @param[in] char_id: Characteristic ID, if NULL find the first available
** characteristic.
** @param[in] start_descr_id: the start descriptor id
**
** @return ESP_OK - success, other - failed
**
*****************************************************************************************************/
/**
*
* @function esp_ble_gattc_get_descriptor
*
* @brief This function is called to find the descriptor of the
* service on the given server.
*
* @param[in] conn_id: connection ID which identify the server.
* @param[in] srvc_id: the service ID of which the characteristic is belonged to.
* @param[in] char_id: Characteristic ID, if NULL find the first available
* characteristic.
* @param[in] start_descr_id: the start descriptor id
*
* @return - ESP_OK: success
* - other: failed
*
*/
esp_err_t esp_ble_gattc_get_descriptor(uint16_t conn_id,
esp_gatt_srvc_id_t *srvc_id, esp_gatt_id_t *char_id,
esp_gatt_id_t *start_descr_id);
/****************************************************************************************************
**
** @function esp_ble_gattc_get_include_service
**
** @brief This function is called to find the first characteristic of the
** service on the given server.
**
** @param[in] conn_id: connection ID which identify the server.
** @param[in] srvc_id: the service ID of which the characteristic is belonged to.
** @param[in] start_incl_srvc_id: the start include service id
**
** @return ESP_OK - success, other - failed
**
*****************************************************************************************************/
/**
*
* @function esp_ble_gattc_get_include_service
*
* @brief This function is called to find the first characteristic of the
* service on the given server.
*
* @param[in] conn_id: connection ID which identify the server.
* @param[in] srvc_id: the service ID of which the characteristic is belonged to.
* @param[in] start_incl_srvc_id: the start include service id
*
* @return - ESP_OK: success
* - other: failed
*
*/
esp_err_t esp_ble_gattc_get_included_service(uint16_t conn_id,
esp_gatt_srvc_id_t *srvc_id, esp_gatt_srvc_id_t *start_incl_srvc_id);
/*******************************************************************************
**
** @function esp_ble_gattc_read_char
**
** @brief This function is called to read a service's characteristics of
** the given characteriistic ID
**
** @param[in] conn_id : connection ID.
** @param[in] srvc_id : service ID.
** @param[in] char_id : characteristic ID to read.
** @param[in] auth_req : authenticate request type
**
** @return ESP_OK - success, other - failed
**
*******************************************************************************/
/**
*
* @function esp_ble_gattc_read_char
*
* @brief This function is called to read a service's characteristics of
* the given characteriistic ID
*
* @param[in] conn_id : connection ID.
* @param[in] srvc_id : service ID.
* @param[in] char_id : characteristic ID to read.
* @param[in] auth_req : authenticate request type
*
* @return - ESP_OK: success
* - other: failed
*
*/
esp_err_t esp_ble_gattc_read_char (uint16_t conn_id,
esp_gatt_srvc_id_t *srvc_id,
esp_gatt_id_t *char_id,
esp_gatt_auth_req_t auth_req);
/*******************************************************************************
**
** @function esp_ble_gattc_read_char_descr
**
** @brief This function is called to read a characteristics descriptor.
**
** @param[in] conn_id : connection ID.
** @param[in] srvc_id : service ID.
** @param[in] descr_id : characteristic descriptor ID to read.
** @param[in] auth_req : authenticate request type
**
** @return ESP_OK - success, other - failed
**
*******************************************************************************/
/**
*
* @function esp_ble_gattc_read_char_descr
*
* @brief This function is called to read a characteristics descriptor.
*
* @param[in] conn_id : connection ID.
* @param[in] srvc_id : service ID.
* @param[in] descr_id : characteristic descriptor ID to read.
* @param[in] auth_req : authenticate request type
*
* @return - ESP_OK: success
* - other: failed
*
*/
esp_err_t esp_ble_gattc_read_char_descr (uint16_t conn_id,
esp_gatt_srvc_id_t *srvc_id,
esp_gatt_id_t *char_id,
@ -458,23 +468,25 @@ esp_err_t esp_ble_gattc_read_char_descr (uint16_t conn_id,
esp_gatt_auth_req_t auth_req);
/*******************************************************************************
**
** @function esp_ble_gattc_write_char
**
** @brief This function is called to write characteristic value.
**
** @param[in] conn_id : connection ID.
** @param[in] srvc_id : service ID.
** @param[in] char_id : characteristic ID to write.
** @param[in] value_len: length of the value to be written.
** @param[in] value : the value to be written.
** @param[in] write_type : the type of attribute write operation.
** @param[in] auth_req : authentication request.
**
** @return ESP_OK - success, other - failed
**
*******************************************************************************/
/**
*
* @function esp_ble_gattc_write_char
*
* @brief This function is called to write characteristic value.
*
* @param[in] conn_id : connection ID.
* @param[in] srvc_id : service ID.
* @param[in] char_id : characteristic ID to write.
* @param[in] value_len: length of the value to be written.
* @param[in] value : the value to be written.
* @param[in] write_type : the type of attribute write operation.
* @param[in] auth_req : authentication request.
*
*
* @return - ESP_OK: success
* - other: failed
*
*/
esp_err_t esp_ble_gattc_write_char( uint16_t conn_id,
esp_gatt_srvc_id_t *srvc_id,
esp_gatt_id_t *char_id,
@ -484,25 +496,26 @@ esp_err_t esp_ble_gattc_write_char( uint16_t conn_id,
esp_gatt_auth_req_t auth_req);
/*******************************************************************************
**
** @function esp_ble_gattc_write_char_descr
**
** @brief This function is called to write characteristic descriptor value.
**
** @param[in] conn_id : connection ID
** @param[in] srvc_id : service ID.
** @param[in] char_id : characteristic ID.
** @param[in] descr_id : characteristic descriptor ID to write.
** @param[in] value_len: length of the value to be written.
** @param[in] value : the value to be written.
** @param[in] write_type : the type of attribute write operation.
** @param[in] auth_req : authentication request.
**
**
** @return ESP_OK - success, other - failed
**
*******************************************************************************/
/**
*
* @function esp_ble_gattc_write_char_descr
*
* @brief This function is called to write characteristic descriptor value.
*
* @param[in] conn_id : connection ID
* @param[in] srvc_id : service ID.
* @param[in] char_id : characteristic ID.
* @param[in] descr_id : characteristic descriptor ID to write.
* @param[in] value_len: length of the value to be written.
* @param[in] value : the value to be written.
* @param[in] write_type : the type of attribute write operation.
* @param[in] auth_req : authentication request.
*
*
* @return - ESP_OK: success
* - other: failed
*
*/
esp_err_t esp_ble_gattc_write_char_descr (uint16_t conn_id,
esp_gatt_srvc_id_t *srvc_id,
esp_gatt_id_t *char_id,
@ -513,23 +526,23 @@ esp_err_t esp_ble_gattc_write_char_descr (uint16_t conn_id,
esp_gatt_auth_req_t auth_req);
/*******************************************************************************
**
** @function esp_ble_gattc_prepare_write
**
** @brief This function is called to prepare write a characteristic value.
**
** @param[in] conn_id : connection ID.
** @param[in] char_id : GATT characteristic ID of the service.
** @param[in] offset : offset of the write value.
** @param[in] value_len: length of the value to be written.
** @param[in] value : the value to be written.
** @param[in] auth_req : authentication request.
**
** @return ESP_OK - success, other - failed
**
*******************************************************************************/
/**
*
* @function esp_ble_gattc_prepare_write
*
* @brief This function is called to prepare write a characteristic value.
*
* @param[in] conn_id : connection ID.
* @param[in] char_id : GATT characteristic ID of the service.
* @param[in] offset : offset of the write value.
* @param[in] value_len: length of the value to be written.
* @param[in] value : the value to be written.
* @param[in] auth_req : authentication request.
*
* @return - ESP_OK: success
* - other: failed
*
*/
esp_err_t esp_ble_gattc_prepare_write(uint16_t conn_id,
esp_gatt_srvc_id_t *srvc_id,
esp_gatt_id_t *char_id,
@ -538,56 +551,60 @@ esp_err_t esp_ble_gattc_prepare_write(uint16_t conn_id,
uint8_t *value,
esp_gatt_auth_req_t auth_req);
/*******************************************************************************
**
** @function esp_ble_gattc_execute_write
**
** @brief This function is called to execute write a prepare write sequence.
**
** @param[in] conn_id : connection ID.
** @param[in] is_execute : execute or cancel.
**
** @return ESP_OK - success, other - failed
**
*******************************************************************************/
/**
*
* @function esp_ble_gattc_execute_write
*
* @brief This function is called to execute write a prepare write sequence.
*
* @param[in] conn_id : connection ID.
* @param[in] is_execute : execute or cancel.
*
* @return - ESP_OK: success
* - other: failed
*
*/
esp_err_t esp_ble_gattc_execute_write (uint16_t conn_id, bool is_execute);
/*******************************************************************************
**
** @function esp_ble_gattc_register_for_notify
**
** @brief This function is called to register for notification of a service.
**
** @param[in] gatt_if : gatt interface id.
** @param[in] bda : target GATT server.
** @param[in] srvc_id : pointer to GATT service ID.
** @param[in] char_id : pointer to GATT characteristic ID.
**
** @return OK if registration succeed, otherwise failed.
**
*******************************************************************************/
/**
*
* @function esp_ble_gattc_register_for_notify
*
* @brief This function is called to register for notification of a service.
*
* @param[in] gatt_if : gatt interface id.
* @param[in] bda : target GATT server.
* @param[in] srvc_id : pointer to GATT service ID.
* @param[in] char_id : pointer to GATT characteristic ID.
*
*
* @return - ESP_OK: registration succeeds
* - other: failed
*
*/
esp_gatt_status_t esp_ble_gattc_register_for_notify (esp_gatt_if_t gatt_if,
esp_bd_addr_t server_bda,
esp_gatt_srvc_id_t *srvc_id,
esp_gatt_id_t *char_id);
/*******************************************************************************
**
** @function esp_ble_gattc_unregister_ntf
**
** @brief This function is called to de-register for notification of a service.
**
** @param[in] gatt_if : gatt interface id.
** @param[in] bda : target GATT server.
** @param[in] srvc_id : pointer to GATT service ID.
** @param[in] char_id : pointer to GATT characteristic ID.
**
** @return OK if unregister succeed, otherwise failed.
**
*******************************************************************************/
/**
*
* @function esp_ble_gattc_unregister_ntf
*
* @brief This function is called to de-register for notification of a service.
*
* @param[in] gatt_if : gatt interface id.
* @param[in] bda : target GATT server.
* @param[in] srvc_id : pointer to GATT service ID.
* @param[in] char_id : pointer to GATT characteristic ID.
*
*
* @return - ESP_OK: unregister succeeds
* - other: failed
*
*/
esp_gatt_status_t esp_ble_gattc_unregister_for_notify (esp_gatt_if_t gatt_if,
esp_bd_addr_t server_bda,
esp_gatt_srvc_id_t *srvc_id,

View file

@ -21,31 +21,32 @@
#include "bta_gatt_api.h"
#include "esp_err.h"
/* GATT Server Data Structure */
/* Server callback function events */
#define ESP_GATTS_REG_EVT 0
#define ESP_GATTS_READ_EVT 1
#define ESP_GATTS_WRITE_EVT 2
#define ESP_GATTS_EXEC_WRITE_EVT 3
#define ESP_GATTS_MTU_EVT 4
#define ESP_GATTS_CONF_EVT 5
#define ESP_GATTS_UNREG_EVT 6
#define ESP_GATTS_CREATE_EVT 7
#define ESP_GATTS_ADD_INCL_SRVC_EVT 8
#define ESP_GATTS_ADD_CHAR_EVT 9
#define ESP_GATTS_ADD_CHAR_DESCR_EVT 10
#define ESP_GATTS_DELETE_EVT 11
#define ESP_GATTS_START_EVT 12
#define ESP_GATTS_STOP_EVT 13
#define ESP_GATTS_CONNECT_EVT 14
#define ESP_GATTS_DISCONNECT_EVT 15
#define ESP_GATTS_OPEN_EVT 16
#define ESP_GATTS_CANCEL_OPEN_EVT 17
#define ESP_GATTS_CLOSE_EVT 18
#define ESP_GATTS_LISTEN_EVT 19
#define ESP_GATTS_CONGEST_EVT 20
/* following is extra event */
#define ESP_GATTS_RESPONSE_EVT 21
/// GATT Server callback function events
typedef enum {
ESP_GATTS_REG_EVT = 0, /*!< When register application id, the event comes */
ESP_GATTS_READ_EVT = 1, /*!< When gatt client request read operation, the event comes */
ESP_GATTS_WRITE_EVT = 2, /*!< When gatt client request write operation, the event comes */
ESP_GATTS_EXEC_WRITE_EVT = 3, /*!< When gatt client request execute write, the event comes */
ESP_GATTS_MTU_EVT = 4, /*!< When set mtu complete, the event comes */
ESP_GATTS_CONF_EVT = 5, /*!< When receive confirm, the event comes */
ESP_GATTS_UNREG_EVT = 6, /*!< When unregister application id, the event comes */
ESP_GATTS_CREATE_EVT = 7, /*!< When create service complete, the event comes */
ESP_GATTS_ADD_INCL_SRVC_EVT = 8, /*!< When add included service complete, the event comes */
ESP_GATTS_ADD_CHAR_EVT = 9, /*!< When add characteristic complete, the event comes */
ESP_GATTS_ADD_CHAR_DESCR_EVT = 10, /*!< When add descriptor complete, the event comes */
ESP_GATTS_DELETE_EVT = 11, /*!< When delete service complete, the event comes */
ESP_GATTS_START_EVT = 12, /*!< When start service complete, the event comes */
ESP_GATTS_STOP_EVT = 13, /*!< When stop service complete, the event comes */
ESP_GATTS_CONNECT_EVT = 14, /*!< When gatt client connect, the event comes */
ESP_GATTS_DISCONNECT_EVT = 15, /*!< When gatt client disconnect, the event comes */
ESP_GATTS_OPEN_EVT = 16, /*!< When connect to peer, the event comes */
ESP_GATTS_CANCEL_OPEN_EVT = 17, /*!< When disconnect from peer, the event comes */
ESP_GATTS_CLOSE_EVT = 18, /*!< When gatt server close, the event comes */
ESP_GATTS_LISTEN_EVT = 19, /*!< When gatt listen to be connected the event comes */
ESP_GATTS_CONGEST_EVT = 20, /*!< When congest happen, the event comes */
/* following is extra event */
ESP_GATTS_RESPONSE_EVT = 21, /*!< When gatt send response complete, the event comes */
} esp_gatts_cb_event_t;
/**
* @brief Gatt server callback parameters union
@ -237,243 +238,255 @@ typedef union {
} rsp; /*!< Gatt server callback param of ESP_GATTS_RESPONSE_EVT */
} esp_ble_gatts_cb_param_t;
/*******************************************************************************
**
** @function esp_ble_gatts_register_callback
**
** @brief This function is called to register application callbacks
** with BTA GATTS module.
**
**
** @return ESP_OK - success, other - failed
**
*******************************************************************************/
/**
*
* @function esp_ble_gatts_register_callback
*
* @brief This function is called to register application callbacks
* with BTA GATTS module.
*
*
* @return - ESP_OK : success
* - other : failed
*
*/
esp_err_t esp_ble_gatts_register_callback(esp_profile_cb_t callback);
/*******************************************************************************
**
** @function esp_ble_gatts_app_register
**
** @brief This function is called to register application identifier
**
**
** @return ESP_OK - success, other - failed
**
*******************************************************************************/
/**
*
* @function esp_ble_gatts_app_register
*
* @brief This function is called to register application identifier
*
*
* @return - ESP_OK : success
* - other : failed
*
*/
esp_err_t esp_ble_gatts_app_register(uint16_t app_id);
/*******************************************************************************
**
** @function esp_ble_gatts_app_unregister
**
** @brief unregister with GATT Server.
**
** @param[in] gatt_if: gatt interface id.
**
** @return ESP_OK - success, other - failed
**
*******************************************************************************/
/**
*
* @function esp_ble_gatts_app_unregister
*
* @brief unregister with GATT Server.
*
* @param[in] gatt_if: gatt interface id.
*
* @return - ESP_OK : success
* - other : failed
*
*/
esp_err_t esp_ble_gatts_app_unregister(esp_gatt_if_t gatt_if);
/*******************************************************************************
**
** @function esp_ble_gatts_create_service
**
** @brief Create a service. When service creation is done, a callback
** event BTA_GATTS_CREATE_SRVC_EVT is called to report status
** and service ID to the profile. The service ID obtained in
** the callback function needs to be used when adding included
** service and characteristics/descriptors into the service.
**
** @param[in] gatt_if: gatt interface ID
** @param[in] service_id: service ID.
** @param[in] num_handle: number of handle requested for this service.
**
** @return ESP_OK - success, other - failed
**
*******************************************************************************/
/**
*
* @function esp_ble_gatts_create_service
*
* @brief Create a service. When service creation is done, a callback
* event BTA_GATTS_CREATE_SRVC_EVT is called to report status
* and service ID to the profile. The service ID obtained in
* the callback function needs to be used when adding included
* service and characteristics/descriptors into the service.
*
* @param[in] gatt_if: gatt interface ID
* @param[in] service_id: service ID.
* @param[in] num_handle: number of handle requested for this service.
*
* @return - ESP_OK : success
* - other : failed
*
*/
esp_err_t esp_ble_gatts_create_service(esp_gatt_if_t gatt_if,
esp_gatt_srvc_id_t *service_id, uint16_t num_handle);
/*******************************************************************************
**
** @function esp_ble_gatts_add_included_service
**
** @brief This function is called to add an included service. After included
** service is included, a callback event BTA_GATTS_ADD_INCL_SRVC_EVT
** is reported the included service ID.
**
** @param[in] service_handle: service handle to which this included service is to
** be added.
** @param[in] included_service_handle: the service ID to be included.
**
** @return ESP_OK - success, other - failed
**
*******************************************************************************/
/**
*
* @function esp_ble_gatts_add_included_service
*
* @brief This function is called to add an included service. After included
* service is included, a callback event BTA_GATTS_ADD_INCL_SRVC_EVT
* is reported the included service ID.
*
* @param[in] service_handle: service handle to which this included service is to
* be added.
* @param[in] included_service_handle: the service ID to be included.
*
* @return - ESP_OK : success
* - other : failed
*
*/
esp_err_t esp_ble_gatts_add_included_service(uint16_t service_handle, uint16_t included_service_handle);
/*******************************************************************************
**
** @function esp_ble_gatts_add_char
**
** @brief This function is called to add a characteristic into a service.
**
** @param[in] service_handle: service handle to which this included service is to
** be added.
** @param[in] char_uuid : Characteristic UUID.
** @param[in] perm : Characteristic value declaration attribute permission.
** @param[in] property : Characteristic Properties
**
** @return ESP_OK - success, other - failed
**
*******************************************************************************/
/**
*
* @function esp_ble_gatts_add_char
*
* @brief This function is called to add a characteristic into a service.
*
* @param[in] service_handle: service handle to which this included service is to
* be added.
* @param[in] char_uuid : Characteristic UUID.
* @param[in] perm : Characteristic value declaration attribute permission.
* @param[in] property : Characteristic Properties
*
* @return - ESP_OK : success
* - other : failed
*
*/
esp_err_t esp_ble_gatts_add_char(uint16_t service_handle, esp_bt_uuid_t *char_uuid,
esp_gatt_perm_t perm, esp_gatt_char_prop_t property);
/*******************************************************************************
**
** @function esp_ble_gatts_add_char_descr
**
** @brief This function is called to add characteristic descriptor. When
** it's done, a callback event BTA_GATTS_ADD_DESCR_EVT is called
** to report the status and an ID number for this descriptor.
**
** @param[in] service_handle: service handle to which this characteristic descriptor is to
** be added.
** @param[in] perm: descriptor access permission.
** @param[in] descr_uuid: descriptor UUID.
**
** @return ESP_OK - success, other - failed
**
*******************************************************************************/
/**
*
* @function esp_ble_gatts_add_char_descr
*
* @brief This function is called to add characteristic descriptor. When
* it's done, a callback event BTA_GATTS_ADD_DESCR_EVT is called
* to report the status and an ID number for this descriptor.
*
* @param[in] service_handle: service handle to which this characteristic descriptor is to
* be added.
* @param[in] perm: descriptor access permission.
* @param[in] descr_uuid: descriptor UUID.
*
* @return - ESP_OK : success
* - other : failed
*
*/
esp_err_t esp_ble_gatts_add_char_descr (uint16_t service_handle,
esp_bt_uuid_t *descr_uuid,
esp_gatt_perm_t perm);
/*******************************************************************************
**
** @function esp_ble_gatts_delete_service
**
** @brief This function is called to delete a service. When this is done,
** a callback event BTA_GATTS_DELETE_EVT is report with the status.
**
** @param[in] service_handled: service_handle to be deleted.
**
** @return ESP_OK - success, other - failed
**
*******************************************************************************/
/**
*
* @function esp_ble_gatts_delete_service
*
* @brief This function is called to delete a service. When this is done,
* a callback event BTA_GATTS_DELETE_EVT is report with the status.
*
* @param[in] service_handled: service_handle to be deleted.
*
* @return - ESP_OK : success
* - other : failed
*
*/
esp_err_t esp_ble_gatts_delete_service(uint16_t service_handle);
/*******************************************************************************
**
** @function esp_ble_gatts_start_service
**
** @brief This function is called to start a service.
**
** @param[in] service_handle: the service handle to be started.
** @param[in] sup_transport: supported transport.
**
** @return ESP_OK - success, other - failed
**
*******************************************************************************/
/**
*
* @function esp_ble_gatts_start_service
*
* @brief This function is called to start a service.
*
* @param[in] service_handle: the service handle to be started.
* @param[in] sup_transport: supported transport.
*
* @return - ESP_OK : success
* - other : failed
*
*/
esp_err_t esp_ble_gatts_start_service(uint16_t service_handle);
/*******************************************************************************
**
** @function esp_ble_gatts_stop_service
**
** @brief This function is called to stop a service.
**
** @param[in] service_handle - service to be topped.
**
** @return ESP_OK - success, other - failed
**
*******************************************************************************/
/**
*
* @function esp_ble_gatts_stop_service
*
* @brief This function is called to stop a service.
*
* @param[in] service_handle - service to be topped.
*
* @return - ESP_OK : success
* - other : failed
*
*/
esp_err_t esp_ble_gatts_stop_service(uint16_t service_handle);
/*******************************************************************************
**
** @function esp_ble_gatts_send_indicate
**
** @brief This function is called to read a characteristics descriptor.
**
** @param[in] conn_id - connection id to indicate.
** @param[in] attribute_handle - attribute handle to indicate.
** @param[in] value_len - indicate value length.
** @param[in] value: value to indicate.
** @param[in] need_confirm - if this indication expects a confirmation or not.
**
** @return ESP_OK - success, other - failed
**
*******************************************************************************/
/**
*
* @function esp_ble_gatts_send_indicate
*
* @brief This function is called to read a characteristics descriptor.
*
* @param[in] conn_id - connection id to indicate.
* @param[in] attribute_handle - attribute handle to indicate.
* @param[in] value_len - indicate value length.
* @param[in] value: value to indicate.
* @param[in] need_confirm - if this indication expects a confirmation or not.
*
* @return - ESP_OK : success
* - other : failed
*
*/
esp_err_t esp_ble_gatts_send_indicate(uint16_t conn_id, uint16_t attr_handle,
uint16_t value_len, uint8_t *value, bool need_confirm);
/*******************************************************************************
**
** @function esp_ble_gatts_send_rsp
**
** @brief This function is called to send a response to a request.
**
** @param[in] conn_id - connection identifier.
** @param[in] trans_id - transfer id
** @param[in] status - response status
** @param[in] rsp - response data.
**
** @return ESP_OK - success, other - failed
**
*******************************************************************************/
/**
*
* @function esp_ble_gatts_send_rsp
*
* @brief This function is called to send a response to a request.
*
* @param[in] conn_id - connection identifier.
* @param[in] trans_id - transfer id
* @param[in] status - response status
* @param[in] rsp - response data.
*
* @return - ESP_OK : success
* - other : failed
*
*/
esp_err_t esp_ble_gatts_send_response(uint16_t conn_id, uint32_t trans_id,
esp_gatt_status_t status, esp_gatt_rsp_t *rsp);
/*******************************************************************************
**
** @function esp_ble_gatts_open
**
** @brief Open a direct open connection or add a background auto connection
**
** @param[in] gatt_if: application ID.
** @param[in] remote_bda: remote device bluetooth device address.
** @param[in] is_direct: direct connection or background auto connection
**
** @return ESP_OK - success, other - failed
**
*******************************************************************************/
/**
*
* @function esp_ble_gatts_open
*
* @brief Open a direct open connection or add a background auto connection
*
* @param[in] gatt_if: application ID.
* @param[in] remote_bda: remote device bluetooth device address.
* @param[in] is_direct: direct connection or background auto connection
*
* @return - ESP_OK : success
* - other : failed
*
*/
esp_err_t esp_ble_gatts_open(esp_gatt_if_t gatt_if, esp_bd_addr_t remote_bda, bool is_direct);
/*******************************************************************************
**
** @function esp_ble_gatts_close
**
** @brief Close a connection a remote device.
**
** @param[in] conn_id: connection ID to be closed.
**
** @return ESP_OK - success, other - failed
**
*******************************************************************************/
/**
*
* @function esp_ble_gatts_close
*
* @brief Close a connection a remote device.
*
* @param[in] conn_id: connection ID to be closed.
*
* @return - ESP_OK : success
* - other : failed
*
*/
esp_err_t esp_ble_gatts_close(uint16_t conn_id);