GATT Server API
Application Examples
- bluetooth/bluedroid/ble/gatt_server_service_table demonstrates how to create a GATT service using an attribute table, releasing the user from adding attributes individually. 
- bluetooth/bluedroid/ble/gatt_server demonstrates how to create a GATT service by adding attributes individually and then starts advertising so that a GATT client can connect and exchange data. 
API Reference
Header File
- components/bt/host/bluedroid/api/include/api/esp_gatts_api.h 
- This header file can be included with: - #include "esp_gatts_api.h" 
- This header file is a part of the API provided by the - btcomponent. To declare that your component depends on- bt, add the following to your CMakeLists.txt:- REQUIRES bt - or - PRIV_REQUIRES bt 
Functions
- 
esp_err_t esp_ble_gatts_register_callback(esp_gatts_cb_t callback)
- Register GATT Server application callbacks. - Note - Avoid performing time-consuming operations within the callback functions. - Parameters:
- callback -- [in] The pointer to the application callback function 
- Returns:
- ESP_OK: Success 
- ESP_FAIL: Failure 
 
 
- 
esp_gatts_cb_t esp_ble_gatts_get_callback(void)
- Get the current GATT Server application callback. - Returns:
- esp_gatts_cb_t: Current callback 
 
 
- 
esp_err_t esp_ble_gatts_app_register(uint16_t app_id)
- Register GATT Server application. - Note - This function triggers - ESP_GATTS_REG_EVT.
- The maximum number of applications is limited to 6. 
 - Parameters:
- app_id -- [in] The UUID for different application 
- Returns:
- ESP_OK: Success 
- ESP_ERR_INVALID_ARG: The input - app_idexceeds- ESP_APP_ID_MAX(0x7fff) defined in esp_bt_defs.h.
- ESP_FAIL: Failure due to other reasons 
 
 
- 
esp_err_t esp_ble_gatts_app_unregister(esp_gatt_if_t gatts_if)
- Unregister an GATT Server application. - Note - This function triggers - ESP_GATTS_UNREG_EVT.
- The maximum number of applications is limited to 6. 
 - Parameters:
- gatts_if -- [in] GATT Server access interface. 
- Returns:
- ESP_OK: Success 
- ESP_FAIL: Failure 
 
 
- 
esp_err_t esp_ble_gatts_create_service(esp_gatt_if_t gatts_if, esp_gatt_srvc_id_t *service_id, uint16_t num_handle)
- Create a GATT Server service. - Note - This function triggers - ESP_GATTS_CREATE_EVT.
- num_handleshould not be greater than CONFIG_BT_GATT_MAX_SR_ATTRIBUTES.
 - Parameters:
- gatts_if -- [in] GATT Server access interface 
- service_id -- [in] The pointer to the Service ID 
- num_handle -- [in] The number of handles requested for this service. 
 
- Returns:
- ESP_OK: Success 
- ESP_FAIL: Failure 
 
 
- 
esp_err_t esp_ble_gatts_create_attr_tab(const esp_gatts_attr_db_t *gatts_attr_db, esp_gatt_if_t gatts_if, uint16_t max_nb_attr, uint8_t srvc_inst_id)
- Create a service attribute table. - Note - This function triggers - ESP_GATTS_CREAT_ATTR_TAB_EVT.
- max_nb_attrshould not be greater than CONFIG_BT_GATT_MAX_SR_ATTRIBUTES.
 - Parameters:
- gatts_attr_db -- [in] The pointer to the service attribute table 
- gatts_if -- [in] GATT Server access interface 
- max_nb_attr -- [in] The number of attributes to be added to the service database 
- srvc_inst_id -- [in] The instance ID of the service 
 
- Returns:
- ESP_OK: Success 
- ESP_ERR_INVALID_ARG: Invalid - max_nb_attr
- ESP_FAIL: Failure 
 
 
- 
esp_err_t esp_ble_gatts_add_included_service(uint16_t service_handle, uint16_t included_service_handle)
- Add an included service. - Note - This function triggers - ESP_GATTS_ADD_INCL_SRVC_EVT.
- This function has to be called between - esp_ble_gatts_create_serviceand- esp_ble_gatts_add_char.
 - Parameters:
- service_handle -- [in] Target service handle to add 
- included_service_handle -- [in] The handle of included service to be added 
 
- Returns:
- ESP_OK: Success 
- ESP_FAIL: Failure 
 
 
- 
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, esp_attr_value_t *char_val, esp_attr_control_t *control)
- Add a characteristic into a service. - Note - This function triggers - ESP_GATTS_ADD_CHAR_EVT.
- control->auto_rspshould be set to- ESP_GATT_AUTO_RSPor- ESP_GATT_RSP_BY_APP.
- For stack respond attribute ( - ESP_GATT_AUTO_RSP),- char_valshould not be NULL and- char_val->attr_max_lenmust be greater than 0.
 - Parameters:
- service_handle -- [in] Target service handle to add the characteristic 
- char_uuid -- [in] The pointer to the characteristic UUID 
- perm -- [in] Characteristic value declaration attribute permission 
- property -- [in] Characteristic Properties 
- char_val -- [in] The pointer to the characteristic value 
- control -- [in] The pointer to the attribute response control byte 
 
- Returns:
- ESP_OK: Success 
- ESP_ERR_INVALID_ARG: Invalid arguments 
- ESP_FAIL: Failure due to other reasons 
 
 
- 
esp_err_t esp_ble_gatts_add_char_descr(uint16_t service_handle, esp_bt_uuid_t *descr_uuid, esp_gatt_perm_t perm, esp_attr_value_t *char_descr_val, esp_attr_control_t *control)
- Add a characteristic descriptor. - Note - This function triggers - ESP_GATTS_ADD_CHAR_DESCR_EVT.
- control->auto_rspshould be set to- ESP_GATT_AUTO_RSPor- ESP_GATT_RSP_BY_APP.
- For stack respond attribute ( - ESP_GATT_AUTO_RSP),- char_valshould not be NULL and- char_val->attr_max_lenmust be greater than 0.
 - Parameters:
- service_handle -- [in] Target service handle to add the characteristic descriptor 
- descr_uuid -- [in] The pointer to the descriptor UUID 
- perm -- [in] Descriptor access permission 
- char_descr_val -- [in] The pointer to the characteristic descriptor value 
- control -- [in] The pointer to the attribute response control byte 
 
- Returns:
- ESP_OK: Success 
- ESP_ERR_INVALID_ARG: Invalid arguments 
- ESP_FAIL: Failure due to other reasons 
 
 
- 
esp_err_t esp_ble_gatts_delete_service(uint16_t service_handle)
- Delete a service. - Note - This function triggers - ESP_GATTS_DELETE_EVT.- Parameters:
- service_handle -- [in] Target service handle to delete 
- Returns:
- ESP_OK: Success 
- ESP_FAIL: Failure 
 
 
- 
esp_err_t esp_ble_gatts_start_service(uint16_t service_handle)
- Start a service. - Note - This function triggers - ESP_GATTS_START_EVT.- Parameters:
- service_handle -- [in] Target service handle to start 
- Returns:
- ESP_OK: Success 
- ESP_FAIL: Failure 
 
 
- 
esp_err_t esp_ble_gatts_stop_service(uint16_t service_handle)
- Stop a service. - Note - This function triggers - ESP_GATTS_STOP_EVT.- Parameters:
- service_handle -- [in] Target service handle to stop 
- Returns:
- ESP_OK: Success 
- ESP_FAIL: Failure 
 
 
- 
esp_err_t esp_ble_gatts_send_indicate(esp_gatt_if_t gatts_if, uint16_t conn_id, uint16_t attr_handle, uint16_t value_len, uint8_t *value, bool need_confirm)
- Send indication or notification to a GATT Client. - Note - This function triggers - ESP_GATTS_CONF_EVT.
- The size of indication or notification data must be less than or equal to MTU size, see - esp_ble_gattc_send_mtu_req.
- This function should be called only after the connection has been established. 
 - Parameters:
- gatts_if -- [in] GATT Server access interface 
- conn_id -- [in] Connection ID 
- attr_handle -- [in] Attribute handle to indicate 
- value_len -- [in] Indication value length in bytes 
- value -- [in] Value to indicate 
- need_confirm -- [in] True if a confirmation is required, which is a GATT indication; false if the confirmation is not required, which is a GATT notification. 
 
- Returns:
- ESP_OK: Success 
- ESP_ERR_INVALID_STATE: The connection has not been established. 
- ESP_FAIL: Failure due to other reasons 
 
 
- 
esp_err_t esp_ble_gatts_send_response(esp_gatt_if_t gatts_if, uint16_t conn_id, uint32_t trans_id, esp_gatt_status_t status, esp_gatt_rsp_t *rsp)
- Send a response to a request. - Note - This function triggers - ESP_GATTS_RESPONSE_EVT.
- This function should be called only after the connection has been established. 
 - Parameters:
- gatts_if -- [in] GATT Server access interface 
- conn_id -- [in] Connection ID 
- trans_id -- [in] Transfer ID 
- status -- [in] Response status 
- rsp -- [in] The pointer to the response data 
 
- Returns:
- ESP_OK: Success 
- ESP_ERR_INVALID_STATE: The connection has not been established. 
- ESP_FAIL: Failure due to other reasons 
 
 
- 
esp_err_t esp_ble_gatts_set_attr_value(uint16_t attr_handle, uint16_t length, const uint8_t *value)
- Set the attribute value. - Note - This function triggers - ESP_GATTS_SET_ATTR_VAL_EVT.- Parameters:
- attr_handle -- [in] Target attribute handle to set the value 
- length -- [in] The value length in bytes 
- value -- [in] The pointer to the attribute value 
 
- Returns:
- ESP_OK: Success 
- ESP_FAIL: Failure 
 
 
- 
esp_gatt_status_t esp_ble_gatts_get_attr_value(uint16_t attr_handle, uint16_t *length, const uint8_t **value)
- Retrieve attribute value. - Note - This function does not trigger any event. 
- attr_handlemust be greater than 0.
 - Parameters:
- attr_handle -- [in] Attribute handle 
- length -- [out] The pointer to the attribute value length in bytes 
- value -- [out] The pointer to attribute value payload. This value cannot be modified by user. 
 
- Returns:
- ESP_OK: Success 
- ESP_GATT_INVALID_HANDLE: Invalid - attr_handle
- ESP_FAIL: Failure due to other reasons 
 
 
- 
esp_err_t esp_ble_gatts_open(esp_gatt_if_t gatts_if, esp_bd_addr_t remote_bda, bool is_direct)
- Create an ACL connection when - BT_BLE_42_FEATURES_SUPPORTEDis enabled in the menuconfig.- Note - The function always triggers - ESP_GATTS_CONNECT_EVTand- ESP_GATTS_OPEN_EVT.
- When the device acts as GATT Server, besides the above two events, this function triggers - ESP_GATTS_CONNECT_EVTas well.
- This function will establish an ACL connection as a Central and a virtual connection as a GATT Server. If the ACL connection already exists, it will create a virtual connection only. 
 - Parameters:
- gatts_if -- [in] GATT Server access interface 
- remote_bda -- [in] Remote device address 
- is_direct -- [in] - Trueindicates a direct connection, while- Falseindicates a background auto connection. Currently, background auto connection is not supported, so please always set this parameter to True.
 
- Returns:
- ESP_OK: Success 
- ESP_FAIL: Failure 
 
 
- 
esp_err_t esp_ble_gatts_close(esp_gatt_if_t gatts_if, uint16_t conn_id)
- Close a connection with a remote device. - Note - This function triggers - ESP_GATTS_CLOSE_EVT.
- There may be multiple virtual GATT server connections when multiple - app_idgot registered.
- This API closes one virtual GATT server connection only, if there exist other virtual GATT server connections. It does not close the physical connection. 
- The API - esp_ble_gap_disconnectcan be used to disconnect the physical connection directly.
- If there is only one virtual GATT connection left, this API will terminate the ACL connection in addition, and trigger - ESP_GATTS_DISCONNECT_EVT. Then there is no need to call- esp_ble_gap_disconnectanymore.
 - Parameters:
- gatts_if -- [in] GATT Server access interface 
- conn_id -- [in] Connection ID to be closed 
 
- Returns:
- ESP_OK: Success 
- ESP_FAIL: Failure 
 
 
- 
esp_err_t esp_ble_gatts_send_service_change_indication(esp_gatt_if_t gatts_if, esp_bd_addr_t remote_bda)
- Send service change indication. - Note - This function triggers - ESP_GATTS_SEND_SERVICE_CHANGE_EVT.- Parameters:
- gatts_if -- [in] GATT Server access interface 
- remote_bda -- [in] Remote device address. If remote_bda is NULL then it will send service change indication to all the connected devices and if not then to a specific device. 
 
- Returns:
- ESP_OK: Success 
- ESP_FAIL: Failure 
 
 
- 
esp_err_t esp_ble_gatts_show_local_database(void)
- Display the Server's local attribute database. - This API prints the local attribute database of the BLE server, including details of all services, characteristics, and descriptors. - Note - This function does not trigger any event. 
- It is primarily intended for debugging purposes to verify the server's current configuration. 
 - Returns:
- ESP_OK: Success 
- ESP_FAIL: Failure 
 
 
Unions
- 
union esp_ble_gatts_cb_param_t
- #include <esp_gatts_api.h>GATT Server callback parameters. Public Members - 
struct esp_ble_gatts_cb_param_t::gatts_reg_evt_param reg
- Callback parameter for the event - ESP_GATTS_REG_EVT
 - 
struct esp_ble_gatts_cb_param_t::gatts_read_evt_param read
- Callback parameter for the event - ESP_GATTS_READ_EVT
 - 
struct esp_ble_gatts_cb_param_t::gatts_write_evt_param write
- Callback parameter for the event - ESP_GATTS_WRITE_EVT
 - 
struct esp_ble_gatts_cb_param_t::gatts_exec_write_evt_param exec_write
- Callback parameter for the event - ESP_GATTS_EXEC_WRITE_EVT
 - 
struct esp_ble_gatts_cb_param_t::gatts_mtu_evt_param mtu
- Callback parameter for the event - ESP_GATTS_MTU_EVT
 - 
struct esp_ble_gatts_cb_param_t::gatts_conf_evt_param conf
- Callback parameter for the event - ESP_GATTS_CONF_EVT
 - 
struct esp_ble_gatts_cb_param_t::gatts_create_evt_param create
- Callback parameter for the event - ESP_GATTS_CREATE_EVT
 - 
struct esp_ble_gatts_cb_param_t::gatts_add_incl_srvc_evt_param add_incl_srvc
- Callback parameter for the event - ESP_GATTS_ADD_INCL_SRVC_EVT
 - 
struct esp_ble_gatts_cb_param_t::gatts_add_char_evt_param add_char
- Callback parameter for the event - ESP_GATTS_ADD_CHAR_EVT
 - 
struct esp_ble_gatts_cb_param_t::gatts_add_char_descr_evt_param add_char_descr
- Callback parameter for the event - ESP_GATTS_ADD_CHAR_DESCR_EVT
 - 
struct esp_ble_gatts_cb_param_t::gatts_delete_evt_param del
- Callback parameter for the event - ESP_GATTS_DELETE_EVT
 - 
struct esp_ble_gatts_cb_param_t::gatts_start_evt_param start
- Callback parameter for the event - ESP_GATTS_START_EVT
 - 
struct esp_ble_gatts_cb_param_t::gatts_stop_evt_param stop
- Callback parameter for the event - ESP_GATTS_STOP_EVT
 - 
struct esp_ble_gatts_cb_param_t::gatts_connect_evt_param connect
- Callback parameter for the event - ESP_GATTS_CONNECT_EVT
 - 
struct esp_ble_gatts_cb_param_t::gatts_disconnect_evt_param disconnect
- Callback parameter for the event - ESP_GATTS_DISCONNECT_EVT
 - 
struct esp_ble_gatts_cb_param_t::gatts_open_evt_param open
- Callback parameter for the event - ESP_GATTS_OPEN_EVT
 - 
struct esp_ble_gatts_cb_param_t::gatts_cancel_open_evt_param cancel_open
- Callback parameter for the event - ESP_GATTS_CANCEL_OPEN_EVT
 - 
struct esp_ble_gatts_cb_param_t::gatts_close_evt_param close
- Callback parameter for the event - ESP_GATTS_CLOSE_EVT
 - 
struct esp_ble_gatts_cb_param_t::gatts_congest_evt_param congest
- Callback parameter for the event - ESP_GATTS_CONGEST_EVT
 - 
struct esp_ble_gatts_cb_param_t::gatts_rsp_evt_param rsp
- Callback parameter for the event - ESP_GATTS_RESPONSE_EVT
 - 
struct esp_ble_gatts_cb_param_t::gatts_add_attr_tab_evt_param add_attr_tab
- Callback parameter for the event - ESP_GATTS_CREAT_ATTR_TAB_EVT
 - 
struct esp_ble_gatts_cb_param_t::gatts_set_attr_val_evt_param set_attr_val
- Callback parameter for the event - ESP_GATTS_SET_ATTR_VAL_EVT
 - 
struct esp_ble_gatts_cb_param_t::gatts_send_service_change_evt_param service_change
- Callback parameter for the event - ESP_GATTS_SEND_SERVICE_CHANGE_EVT
 - 
struct gatts_add_attr_tab_evt_param
- #include <esp_gatts_api.h>Callback parameter for the event ESP_GATTS_CREAT_ATTR_TAB_EVTPublic Members - 
esp_gatt_status_t status
- Operation status 
 - 
esp_bt_uuid_t svc_uuid
- Service UUID type 
 - 
uint8_t svc_inst_id
- Service ID 
 - 
uint16_t num_handle
- The number of the attribute handles which have been added to the GATT Service table 
 - 
uint16_t *handles
- The handles which have been added to the table 
 
- 
esp_gatt_status_t status
 - 
struct gatts_add_char_descr_evt_param
- #include <esp_gatts_api.h>Callback parameter for the event ESP_GATTS_ADD_CHAR_DESCR_EVTPublic Members - 
esp_gatt_status_t status
- Operation status 
 - 
uint16_t attr_handle
- Descriptor attribute handle 
 - 
uint16_t service_handle
- Service attribute handle 
 - 
esp_bt_uuid_t descr_uuid
- Characteristic descriptor UUID 
 
- 
esp_gatt_status_t status
 - 
struct gatts_add_char_evt_param
- #include <esp_gatts_api.h>Callback parameter for the event ESP_GATTS_ADD_CHAR_EVTPublic Members - 
esp_gatt_status_t status
- Operation status 
 - 
uint16_t attr_handle
- Characteristic attribute handle 
 - 
uint16_t service_handle
- Service attribute handle 
 - 
esp_bt_uuid_t char_uuid
- Characteristic UUID 
 
- 
esp_gatt_status_t status
 - 
struct gatts_add_incl_srvc_evt_param
- #include <esp_gatts_api.h>Callback parameter for the event ESP_GATTS_ADD_INCL_SRVC_EVTPublic Members - 
esp_gatt_status_t status
- Operation status 
 - 
uint16_t attr_handle
- Included service attribute handle 
 - 
uint16_t service_handle
- Service attribute handle 
 
- 
esp_gatt_status_t status
 - 
struct gatts_cancel_open_evt_param
- #include <esp_gatts_api.h>Callback parameter for the event ESP_GATTS_CANCEL_OPEN_EVTPublic Members - 
esp_gatt_status_t status
- Operation status 
 
- 
esp_gatt_status_t status
 - 
struct gatts_close_evt_param
- #include <esp_gatts_api.h>Callback parameter for the event ESP_GATTS_CLOSE_EVT
 - 
struct gatts_conf_evt_param
- #include <esp_gatts_api.h>Callback parameter for the event ESP_GATTS_CONF_EVTPublic Members - 
esp_gatt_status_t status
- Operation status 
 - 
uint16_t conn_id
- Connection ID 
 - 
uint16_t handle
- Attribute handle 
 - 
uint16_t len
- The length of indication or notification value in bytes. The length is invalid if the notification or indication failed. 
 - 
uint8_t *value
- The indication or notification value. The value is invalid if the notification or indication failed. 
 
- 
esp_gatt_status_t status
 - 
struct gatts_congest_evt_param
- #include <esp_gatts_api.h>Callback parameter for the event ESP_GATTS_CONGEST_EVT
 - 
struct gatts_connect_evt_param
- #include <esp_gatts_api.h>Callback parameter for the event ESP_GATTS_CONNECT_EVTPublic Members - 
uint16_t conn_id
- Connection ID 
 - 
uint8_t link_role
- Link role: master role = 0; slave role = 1 
 - 
esp_bd_addr_t remote_bda
- Remote device address 
 - 
esp_gatt_conn_params_t conn_params
- Current connection parameters 
 - 
esp_ble_addr_type_t ble_addr_type
- Remote device address type 
 - 
uint16_t conn_handle
- HCI connection handle 
 
- 
uint16_t conn_id
 - 
struct gatts_create_evt_param
- #include <esp_gatts_api.h>Callback parameter for the event ESP_GATTS_CREATE_EVTPublic Members - 
esp_gatt_status_t status
- Operation status 
 - 
uint16_t service_handle
- Service attribute handle 
 - 
esp_gatt_srvc_id_t service_id
- Service ID, including service UUID and other information 
 
- 
esp_gatt_status_t status
 - 
struct gatts_delete_evt_param
- #include <esp_gatts_api.h>Callback parameter for the event ESP_GATTS_DELETE_EVTPublic Members - 
esp_gatt_status_t status
- Operation status 
 - 
uint16_t service_handle
- Service attribute handle 
 
- 
esp_gatt_status_t status
 - 
struct gatts_disconnect_evt_param
- #include <esp_gatts_api.h>Callback parameter for the event ESP_GATTS_DISCONNECT_EVTPublic Members - 
uint16_t conn_id
- Connection ID 
 - 
esp_bd_addr_t remote_bda
- Remote device address 
 - 
esp_gatt_conn_reason_t reason
- The reason of disconnection 
 
- 
uint16_t conn_id
 - 
struct gatts_exec_write_evt_param
- #include <esp_gatts_api.h>Callback parameter for the event ESP_GATTS_EXEC_WRITE_EVTPublic Members - 
uint16_t conn_id
- Connection ID 
 - 
uint32_t trans_id
- Transfer ID 
 - 
esp_bd_addr_t bda
- The bluetooth device address to write 
 - 
uint8_t exec_write_flag
- Execute write flag: - ESP_GATT_PREP_WRITE_CANCELor- ESP_GATT_PREP_WRITE_EXEC
 
- 
uint16_t conn_id
 - 
struct gatts_mtu_evt_param
- #include <esp_gatts_api.h>Callback parameter for the event ESP_GATTS_MTU_EVT
 - 
struct gatts_open_evt_param
- #include <esp_gatts_api.h>Callback parameter for the event ESP_GATTS_OPEN_EVTPublic Members - 
esp_gatt_status_t status
- Operation status 
 
- 
esp_gatt_status_t status
 - 
struct gatts_read_evt_param
- #include <esp_gatts_api.h>Callback parameter for the event ESP_GATTS_READ_EVTPublic Members - 
uint16_t conn_id
- Connection ID 
 - 
uint32_t trans_id
- Transfer ID 
 - 
esp_bd_addr_t bda
- The device address to read 
 - 
uint16_t handle
- The attribute handle 
 - 
uint16_t offset
- The position offset to read. If the length of value is less than or equal to the MTU size, this value is 0. 
 - 
bool is_long
- True indicates that the length of value is greater than the MTU size; false otherwise. 
 - 
bool need_rsp
- True indicates that the - esp_ble_gatts_send_responseis required in the following step; false otherwise.
 
- 
uint16_t conn_id
 - 
struct gatts_reg_evt_param
- #include <esp_gatts_api.h>Callback parameter for the event ESP_GATTS_REG_EVT
 - 
struct gatts_rsp_evt_param
- #include <esp_gatts_api.h>Callback parameter for the event ESP_GATTS_RESPONSE_EVTPublic Members - 
esp_gatt_status_t status
- Operation status 
 - 
uint16_t conn_id
- Connection ID 
 - 
uint16_t handle
- Attribute handle which sends the response 
 
- 
esp_gatt_status_t status
 - 
struct gatts_send_service_change_evt_param
- #include <esp_gatts_api.h>Callback parameter for the event ESP_GATTS_SEND_SERVICE_CHANGE_EVTPublic Members - 
esp_gatt_status_t status
- Operation status 
 
- 
esp_gatt_status_t status
 - 
struct gatts_set_attr_val_evt_param
- #include <esp_gatts_api.h>Callback parameter for the event ESP_GATTS_SET_ATTR_VAL_EVTPublic Members - 
uint16_t srvc_handle
- The service handle 
 - 
uint16_t attr_handle
- The attribute handle 
 - 
esp_gatt_status_t status
- Operation status 
 
- 
uint16_t srvc_handle
 - 
struct gatts_start_evt_param
- #include <esp_gatts_api.h>Callback parameter for the event ESP_GATTS_START_EVTPublic Members - 
esp_gatt_status_t status
- Operation status 
 - 
uint16_t service_handle
- Service attribute handle 
 
- 
esp_gatt_status_t status
 - 
struct gatts_stop_evt_param
- #include <esp_gatts_api.h>Callback parameter for the event ESP_GATTS_STOP_EVTPublic Members - 
esp_gatt_status_t status
- Operation status 
 - 
uint16_t service_handle
- Service attribute handle 
 
- 
esp_gatt_status_t status
 - 
struct gatts_write_evt_param
- #include <esp_gatts_api.h>Callback parameter for the event ESP_GATTS_WRITE_EVTPublic Members - 
uint16_t conn_id
- Connection ID 
 - 
uint32_t trans_id
- Transfer ID 
 - 
esp_bd_addr_t bda
- The device address to write 
 - 
uint16_t handle
- The attribute handle 
 - 
uint16_t offset
- The position offset to write. If the length of value is less than or equal to the MTU size, this value is 0. 
 - 
bool need_rsp
- True indicates that the - esp_ble_gatts_send_responseis required in the following step; false otherwise.
 - 
bool is_prep
- True indicates the write operation is a prepared write operation 
 - 
uint16_t len
- The length of the write attribute value in bytes 
 - 
uint8_t *value
- The write attribute value 
 
- 
uint16_t conn_id
 
- 
struct esp_ble_gatts_cb_param_t::gatts_reg_evt_param reg
Macros
- 
ESP_GATT_PREP_WRITE_CANCEL
- Flag to indicate the cancellation of a prepare write operation 
- 
ESP_GATT_PREP_WRITE_EXEC
- Flag to indicate the execution of a prepare write operation 
Type Definitions
- 
typedef void (*esp_gatts_cb_t)(esp_gatts_cb_event_t event, esp_gatt_if_t gatts_if, esp_ble_gatts_cb_param_t *param)
- GATT Server callback function type. - Param event:
- [in] Event type 
- Param gatts_if:
- [in] GATT Server access interface. Typically, different - gatts_ifvalues correspond to different profiles.
- Param param:
- [in] The pointer to the callback parameter, which is of a union type. 
 
Enumerations
- 
enum esp_gatts_cb_event_t
- GATT Server callback function events. - Values: - 
enumerator ESP_GATTS_REG_EVT
- This event is triggered when a GATT Server application is registered using - esp_ble_gatts_app_register.
 - 
enumerator ESP_GATTS_READ_EVT
- This event is triggered when the read request from the Client is received. 
 - 
enumerator ESP_GATTS_WRITE_EVT
- This event is triggered when the write request from the Client is received. 
 - 
enumerator ESP_GATTS_EXEC_WRITE_EVT
- This event is triggered when the write execution request from the Client is received. 
 - 
enumerator ESP_GATTS_MTU_EVT
- This event is triggered when the MTU configuration request from the Client is received. 
 - 
enumerator ESP_GATTS_CONF_EVT
- This event is triggered when the confirmation from the Client is received. 
 - 
enumerator ESP_GATTS_UNREG_EVT
- This event is triggered when a GATT Server application is unregistered using - esp_ble_gatts_app_unregister.
 - 
enumerator ESP_GATTS_CREATE_EVT
- This event is triggered when a GATT Server service is created using - esp_ble_gatts_create_service.
 - 
enumerator ESP_GATTS_ADD_INCL_SRVC_EVT
- This event is triggered when an included service is added using - esp_ble_gatts_add_included_service.
 - 
enumerator ESP_GATTS_ADD_CHAR_EVT
- This event is triggered when a characteristic is added to the service using - esp_ble_gatts_add_char.
 - 
enumerator ESP_GATTS_ADD_CHAR_DESCR_EVT
- This event is triggered when a characteristic descriptor is added to the service using - esp_ble_gatts_add_char_descr.
 - 
enumerator ESP_GATTS_DELETE_EVT
- This event is triggered when the service is deleted using - esp_ble_gatts_delete_service.
 - 
enumerator ESP_GATTS_START_EVT
- This event is triggered when the service is started using - esp_ble_gatts_start_service.
 - 
enumerator ESP_GATTS_STOP_EVT
- This event is triggered when the service is stopped using - esp_ble_gatts_stop_service.
 - 
enumerator ESP_GATTS_CONNECT_EVT
- This event is triggered when a physical connection is set up. 
 - 
enumerator ESP_GATTS_DISCONNECT_EVT
- This event is triggered when a physical connection is terminated. 
 - 
enumerator ESP_GATTS_OPEN_EVT
- This event is triggered when a virtual connection is created using - esp_ble_gatts_open.
 - 
enumerator ESP_GATTS_CANCEL_OPEN_EVT
- Deprecated. 
 - 
enumerator ESP_GATTS_CLOSE_EVT
- This event is triggered when a virtual connection is closed using - esp_ble_gatts_close.
 - 
enumerator ESP_GATTS_LISTEN_EVT
- Deprecated. 
 - 
enumerator ESP_GATTS_CONGEST_EVT
- This event is triggered when the GATT connection is congested. 
 - 
enumerator ESP_GATTS_RESPONSE_EVT
- This event is triggered when a response is sent to the request using - esp_ble_gatts_send_response.
 - 
enumerator ESP_GATTS_CREAT_ATTR_TAB_EVT
- This event is triggered when a service attribute table is created using - esp_ble_gatts_create_attr_tab.
 - 
enumerator ESP_GATTS_SET_ATTR_VAL_EVT
- This event is triggered when an attribute value is set using - esp_ble_gatts_set_attr_value.
 - 
enumerator ESP_GATTS_SEND_SERVICE_CHANGE_EVT
- This event is triggered when a service change indication is sent using - esp_ble_gatts_send_service_change_indication.
 
- 
enumerator ESP_GATTS_REG_EVT