GATT Defines
API Reference
Header File
components/bt/host/bluedroid/api/include/api/esp_gatt_defs.h
This header file can be included with:
#include "esp_gatt_defs.h"
This header file is a part of the API provided by the
btcomponent. To declare that your component depends onbt, add the following to your CMakeLists.txt:REQUIRES bt
or
PRIV_REQUIRES bt
Unions
- 
union esp_gatt_rsp_t
 - #include <esp_gatt_defs.h>
Represents the response type for a GATT remote read request.
Public Members
- 
esp_gatt_value_t attr_value
 The GATT attribute value, including its data, handle, and metadata.
- 
uint16_t handle
 Only the handle of the GATT attribute, when that's the only required information.
 - 
esp_gatt_value_t attr_value
 
Structures
- 
struct esp_gatt_id_t
 Represents a GATT identifier.
Public Members
- 
esp_bt_uuid_t uuid
 The UUID component of the GATT ID.
- 
uint8_t inst_id
 The instance ID component of the GATT ID, providing further differentiation of the GATT ID.
- 
esp_bt_uuid_t uuid
 
- 
struct esp_gatt_srvc_id_t
 Represents a GATT service identifier.
Public Members
- 
esp_gatt_id_t id
 Encapsulates the UUID and instance ID of the GATT service.
- 
bool is_primary
 Indicates if the service is primary. A value of true means it is a primary service, false indicates a secondary service.
- 
esp_gatt_id_t id
 
- 
struct esp_attr_desc_t
 Defines an attribute's description.
This structure is used to describe an attribute in the GATT database. It includes details such as the UUID of the attribute, its permissions, and its value.
Public Members
- 
uint16_t uuid_length
 Length of the UUID in bytes.
- 
uint8_t *uuid_p
 Pointer to the UUID value.
- 
uint16_t perm
 Attribute permissions, defined by esp_gatt_perm_t.
- 
uint16_t max_length
 Maximum length of the attribute's value.
- 
uint16_t length
 Current length of the attribute's value.
- 
uint8_t *value
 Pointer to the attribute's value array.
- 
uint16_t uuid_length
 
- 
struct esp_attr_control_t
 Defines the auto response setting for attribute operations.
This structure is used to control whether the GATT stack or the application will handle responses to Read/Write operations.
Public Members
- 
uint8_t auto_rsp
 Controls who handles the response to Read/Write operations.
If set to
ESP_GATT_RSP_BY_APP, the application is responsible for generating the response.If set to
ESP_GATT_AUTO_RSP, the GATT stack will automatically generate the response.
- 
uint8_t auto_rsp
 
- 
struct esp_gatts_attr_db_t
 attribute type added to the GATT server database
Public Members
- 
esp_attr_control_t attr_control
 The attribute control type
- 
esp_attr_desc_t att_desc
 The attribute type
- 
esp_attr_control_t attr_control
 
- 
struct esp_attr_value_t
 set the attribute value type
- 
struct esp_gatts_incl_svc_desc_t
 Gatt include service entry element.
- 
struct esp_gatts_incl128_svc_desc_t
 Gatt include 128 bit service entry element.
- 
struct esp_gatt_value_t
 Represents a GATT attribute's value.
Public Members
- 
uint8_t value[ESP_GATT_MAX_ATTR_LEN]
 Array holding the value of the GATT attribute.
- 
uint16_t handle
 Unique identifier (handle) of the GATT attribute.
- 
uint16_t offset
 Offset within the attribute's value, for partial updates.
- 
uint16_t len
 Current length of the data in the value array.
- 
uint8_t auth_req
 Authentication requirements for accessing this attribute.
- 
uint8_t value[ESP_GATT_MAX_ATTR_LEN]
 
- 
struct esp_gatt_conn_params_t
 Connection parameters for GATT.
- 
struct esp_gattc_multi_t
 Represents multiple attributes for reading.
- 
struct esp_gattc_db_elem_t
 GATT database attribute element.
Public Members
- 
esp_gatt_db_attr_type_t type
 Attribute type.
- 
uint16_t attribute_handle
 Attribute handle.
- 
uint16_t start_handle
 Service start handle.
- 
uint16_t end_handle
 Service end handle.
- 
esp_gatt_char_prop_t properties
 Characteristic properties.
- 
esp_bt_uuid_t uuid
 Attribute UUID.
- 
esp_gatt_db_attr_type_t type
 
- 
struct esp_gattc_service_elem_t
 Represents a GATT service element.
Public Members
- 
bool is_primary
 Indicates if the service is primary.
- 
uint16_t start_handle
 Service start handle.
- 
uint16_t end_handle
 Service end handle.
- 
esp_bt_uuid_t uuid
 Service UUID.
- 
bool is_primary
 
- 
struct esp_gattc_char_elem_t
 Represents a GATT characteristic element.
Public Members
- 
uint16_t char_handle
 Characteristic handle.
- 
esp_gatt_char_prop_t properties
 Characteristic properties.
- 
esp_bt_uuid_t uuid
 Characteristic UUID.
- 
uint16_t char_handle
 
- 
struct esp_gattc_descr_elem_t
 Represents a GATT descriptor element.
- 
struct esp_gattc_incl_svc_elem_t
 Represents an included GATT service element.
Public Members
- 
uint16_t handle
 Current attribute handle of the included service.
- 
uint16_t incl_srvc_s_handle
 Start handle of the included service.
- 
uint16_t incl_srvc_e_handle
 End handle of the included service.
- 
esp_bt_uuid_t uuid
 Included service UUID.
- 
uint16_t handle
 
- 
struct esp_ble_gatt_creat_conn_params_t
 Represents a creat connection element.
Public Members
- 
esp_bd_addr_t remote_bda
 The Bluetooth address of the remote device
- 
esp_ble_addr_type_t remote_addr_type
 Address type of the remote device
- 
bool is_direct
 Direct connection or background auto connection(by now, background auto connection is not supported
- 
bool is_aux
 Set to true for BLE 5.0 or higher to enable auxiliary connections; set to false for BLE 4.2 or lower.
- 
esp_ble_addr_type_t own_addr_type
 Specifies the address type used in the connection request. Set to 0xFF if the address type is unknown.
- 
esp_ble_phy_mask_t phy_mask
 Indicates which PHY connection parameters will be used. When is_aux is false, only the connection params for 1M PHY can be specified
- 
const esp_ble_conn_params_t *phy_1m_conn_params
 Connection parameters for the LE 1M PHY
- 
const esp_ble_conn_params_t *phy_2m_conn_params
 Connection parameters for the LE 2M PHY
- 
const esp_ble_conn_params_t *phy_coded_conn_params
 Connection parameters for the LE Coded PHY
- 
esp_bd_addr_t remote_bda
 
Macros
- 
ESP_GATT_ILLEGAL_UUID
 GATT INVALID UUID.
- 
ESP_GATT_ILLEGAL_HANDLE
 GATT INVALID HANDLE.
- 
ESP_GATT_ATTR_HANDLE_MAX
 GATT attribute max handle.
- 
ESP_GATT_MAX_READ_MULTI_HANDLES
 Maximum number of attributes to read in one request.
- 
ESP_GATT_MAX_ATTR_LEN
 Defines the maximum length of a GATT attribute.
This definition specifies the maximum number of bytes that a GATT attribute can hold. As same as GATT_MAX_ATTR_LEN.
- 
ESP_GATT_RSP_BY_APP
 Defines attribute control for GATT operations.
This module provides definitions for controlling attribute auto responses in GATT operations.
Response to Write/Read operations should be handled by the application.
- 
ESP_GATT_AUTO_RSP
 Response to Write/Read operations should be automatically handled by the GATT stack.
- 
ESP_GATT_IF_NONE
 Macro indicating no specific GATT interface.
No specific application GATT interface.
Type Definitions
- 
typedef uint16_t esp_gatt_perm_t
 Type to represent GATT attribute permissions.
- 
typedef uint8_t esp_gatt_char_prop_t
 Type for characteristic properties bitmask.
- 
typedef uint8_t esp_gatt_if_t
 GATT interface type for client applications.
Enumerations
- 
enum esp_gatt_prep_write_type
 Defines the attribute write operation types from the client.
These values are used to specify the type of write operation in a prepare write sequence. relate to BTA_GATT_PREP_WRITE_xxx in bta/bta_gatt_api.h.
Values:
- 
enumerator ESP_GATT_PREP_WRITE_CANCEL
 Prepare write cancel. Corresponds to BTA_GATT_PREP_WRITE_CANCEL.
- 
enumerator ESP_GATT_PREP_WRITE_EXEC
 Prepare write execute. Corresponds to BTA_GATT_PREP_WRITE_EXEC.
- 
enumerator ESP_GATT_PREP_WRITE_CANCEL
 
- 
enum esp_gatt_status_t
 GATT operation status codes.
These status codes are used to indicate the result of various GATT operations. relate to BTA_GATT_xxx in bta/bta_gatt_api.h .
Values:
- 
enumerator ESP_GATT_OK
 0x0, Operation successful. Corresponds to BTA_GATT_OK.
- 
enumerator ESP_GATT_INVALID_HANDLE
 0x01, Invalid handle. Corresponds to BTA_GATT_INVALID_HANDLE.
- 
enumerator ESP_GATT_READ_NOT_PERMIT
 0x02, Read operation not permitted. Corresponds to BTA_GATT_READ_NOT_PERMIT.
- 
enumerator ESP_GATT_WRITE_NOT_PERMIT
 0x03, Write operation not permitted. Corresponds to BTA_GATT_WRITE_NOT_PERMIT.
- 
enumerator ESP_GATT_INVALID_PDU
 0x04, Invalid PDU. Corresponds to BTA_GATT_INVALID_PDU.
- 
enumerator ESP_GATT_INSUF_AUTHENTICATION
 0x05, Insufficient authentication. Corresponds to BTA_GATT_INSUF_AUTHENTICATION.
- 
enumerator ESP_GATT_REQ_NOT_SUPPORTED
 0x06, Request not supported. Corresponds to BTA_GATT_REQ_NOT_SUPPORTED.
- 
enumerator ESP_GATT_INVALID_OFFSET
 0x07, Invalid offset. Corresponds to BTA_GATT_INVALID_OFFSET.
- 
enumerator ESP_GATT_INSUF_AUTHORIZATION
 0x08, Insufficient authorization. Corresponds to BTA_GATT_INSUF_AUTHORIZATION.
- 
enumerator ESP_GATT_PREPARE_Q_FULL
 0x09, Prepare queue full. Corresponds to BTA_GATT_PREPARE_Q_FULL.
- 
enumerator ESP_GATT_NOT_FOUND
 0x0a, Not found. Corresponds to BTA_GATT_NOT_FOUND.
- 
enumerator ESP_GATT_NOT_LONG
 0x0b, Not long. Corresponds to BTA_GATT_NOT_LONG.
- 
enumerator ESP_GATT_INSUF_KEY_SIZE
 0x0c, Insufficient key size. Corresponds to BTA_GATT_INSUF_KEY_SIZE.
- 
enumerator ESP_GATT_INVALID_ATTR_LEN
 0x0d, Invalid attribute length. Corresponds to BTA_GATT_INVALID_ATTR_LEN.
- 
enumerator ESP_GATT_ERR_UNLIKELY
 0x0e, Unlikely error. Corresponds to BTA_GATT_ERR_UNLIKELY.
- 
enumerator ESP_GATT_INSUF_ENCRYPTION
 0x0f, Insufficient encryption. Corresponds to BTA_GATT_INSUF_ENCRYPTION.
- 
enumerator ESP_GATT_UNSUPPORT_GRP_TYPE
 0x10, Unsupported group type. Corresponds to BTA_GATT_UNSUPPORT_GRP_TYPE.
- 
enumerator ESP_GATT_INSUF_RESOURCE
 0x11, Insufficient resource. Corresponds to BTA_GATT_INSUF_RESOURCE.
- 
enumerator ESP_GATT_NO_RESOURCES
 0x80, No resources. Corresponds to BTA_GATT_NO_RESOURCES.
- 
enumerator ESP_GATT_INTERNAL_ERROR
 0x81, Internal error. Corresponds to BTA_GATT_INTERNAL_ERROR.
- 
enumerator ESP_GATT_WRONG_STATE
 0x82, Wrong state. Corresponds to BTA_GATT_WRONG_STATE.
- 
enumerator ESP_GATT_DB_FULL
 0x83, Database full. Corresponds to BTA_GATT_DB_FULL.
- 
enumerator ESP_GATT_BUSY
 0x84, Busy. Corresponds to BTA_GATT_BUSY.
- 
enumerator ESP_GATT_ERROR
 0x85, Generic error. Corresponds to BTA_GATT_ERROR.
- 
enumerator ESP_GATT_CMD_STARTED
 0x86, Command started. Corresponds to BTA_GATT_CMD_STARTED.
- 
enumerator ESP_GATT_ILLEGAL_PARAMETER
 0x87, Illegal parameter. Corresponds to BTA_GATT_ILLEGAL_PARAMETER.
- 
enumerator ESP_GATT_PENDING
 0x88, Operation pending. Corresponds to BTA_GATT_PENDING.
- 
enumerator ESP_GATT_AUTH_FAIL
 0x89, Authentication failed. Corresponds to BTA_GATT_AUTH_FAIL.
- 
enumerator ESP_GATT_MORE
 0x8a, More data available. Corresponds to BTA_GATT_MORE.
- 
enumerator ESP_GATT_INVALID_CFG
 0x8b, Invalid configuration. Corresponds to BTA_GATT_INVALID_CFG.
- 
enumerator ESP_GATT_SERVICE_STARTED
 0x8c, Service started. Corresponds to BTA_GATT_SERVICE_STARTED.
- 
enumerator ESP_GATT_ENCRYPTED_MITM
 0x0, Encrypted, with MITM protection. Corresponds to BTA_GATT_ENCRYPTED_MITM.
- 
enumerator ESP_GATT_ENCRYPTED_NO_MITM
 0x8d, Encrypted, without MITM protection. Corresponds to BTA_GATT_ENCRYPTED_NO_MITM.
- 
enumerator ESP_GATT_NOT_ENCRYPTED
 0x8e, Not encrypted. Corresponds to BTA_GATT_NOT_ENCRYPTED.
- 
enumerator ESP_GATT_CONGESTED
 0x8f, Congested. Corresponds to BTA_GATT_CONGESTED.
- 
enumerator ESP_GATT_DUP_REG
 0x90, Duplicate registration. Corresponds to BTA_GATT_DUP_REG.
- 
enumerator ESP_GATT_ALREADY_OPEN
 0x91, Already open. Corresponds to BTA_GATT_ALREADY_OPEN.
- 
enumerator ESP_GATT_CANCEL
 0x92, Operation cancelled. Corresponds to BTA_GATT_CANCEL.
- 
enumerator ESP_GATT_STACK_RSP
 0xe0, Stack response. Corresponds to BTA_GATT_STACK_RSP.
- 
enumerator ESP_GATT_APP_RSP
 0xe1, Application response. Corresponds to BTA_GATT_APP_RSP.
- 
enumerator ESP_GATT_UNKNOWN_ERROR
 0xef, Unknown error. Corresponds to BTA_GATT_UNKNOWN_ERROR.
- 
enumerator ESP_GATT_CCC_CFG_ERR
 0xfd, Client Characteristic Configuration Descriptor improperly configured. Corresponds to BTA_GATT_CCC_CFG_ERR.
- 
enumerator ESP_GATT_PRC_IN_PROGRESS
 0xfe, Procedure already in progress. Corresponds to BTA_GATT_PRC_IN_PROGRESS.
- 
enumerator ESP_GATT_OUT_OF_RANGE
 0xff, Attribute value out of range. Corresponds to BTA_GATT_OUT_OF_RANGE.
- 
enumerator ESP_GATT_OK
 
- 
enum esp_gatt_conn_reason_t
 Enumerates reasons for GATT connection.
Values:
- 
enumerator ESP_GATT_CONN_UNKNOWN
 Unknown connection reason. Corresponds to BTA_GATT_CONN_UNKNOWN in bta/bta_gatt_api.h
- 
enumerator ESP_GATT_CONN_L2C_FAILURE
 General L2CAP failure. Corresponds to BTA_GATT_CONN_L2C_FAILURE in bta/bta_gatt_api.h
- 
enumerator ESP_GATT_CONN_TIMEOUT
 Connection timeout. Corresponds to BTA_GATT_CONN_TIMEOUT in bta/bta_gatt_api.h
- 
enumerator ESP_GATT_CONN_TERMINATE_PEER_USER
 Connection terminated by peer user. Corresponds to BTA_GATT_CONN_TERMINATE_PEER_USER in bta/bta_gatt_api.h
- 
enumerator ESP_GATT_CONN_TERMINATE_LOCAL_HOST
 Connection terminated by local host. Corresponds to BTA_GATT_CONN_TERMINATE_LOCAL_HOST in bta/bta_gatt_api.h
- 
enumerator ESP_GATT_CONN_FAIL_ESTABLISH
 Failure to establish connection. Corresponds to BTA_GATT_CONN_FAIL_ESTABLISH in bta/bta_gatt_api.h
- 
enumerator ESP_GATT_CONN_LMP_TIMEOUT
 Connection failed due to LMP response timeout. Corresponds to BTA_GATT_CONN_LMP_TIMEOUT in bta/bta_gatt_api.h
- 
enumerator ESP_GATT_CONN_CONN_CANCEL
 L2CAP connection cancelled. Corresponds to BTA_GATT_CONN_CONN_CANCEL in bta/bta_gatt_api.h
- 
enumerator ESP_GATT_CONN_NONE
 No connection to cancel. Corresponds to BTA_GATT_CONN_NONE in bta/bta_gatt_api.h
- 
enumerator ESP_GATT_CONN_UNKNOWN
 
- 
enum esp_gatt_auth_req_t
 Defines the GATT authentication request types.
This enumeration lists the types of authentication requests that can be made. It corresponds to the
BTA_GATT_AUTH_REQ_xxxvalues defined inbta/bta_gatt_api.h. The types include options for no authentication, unauthenticated encryption, authenticated encryption, and both signed versions with and without MITM (Man-In-The-Middle) protection.Values:
- 
enumerator ESP_GATT_AUTH_REQ_NONE
 No authentication required. Corresponds to BTA_GATT_AUTH_REQ_NONE.
- 
enumerator ESP_GATT_AUTH_REQ_NO_MITM
 Unauthenticated encryption. Corresponds to BTA_GATT_AUTH_REQ_NO_MITM.
- 
enumerator ESP_GATT_AUTH_REQ_MITM
 Authenticated encryption (MITM protection). Corresponds to BTA_GATT_AUTH_REQ_MITM.
- 
enumerator ESP_GATT_AUTH_REQ_SIGNED_NO_MITM
 Signed data, no MITM protection. Corresponds to BTA_GATT_AUTH_REQ_SIGNED_NO_MITM.
- 
enumerator ESP_GATT_AUTH_REQ_SIGNED_MITM
 Signed data with MITM protection. Corresponds to BTA_GATT_AUTH_REQ_SIGNED_MITM.
- 
enumerator ESP_GATT_AUTH_REQ_NONE
 
- 
enum esp_service_source_t
 Enumerates the possible sources of a GATT service discovery.
This enumeration identifies the source of a GATT service discovery process, indicating whether the service information was obtained from a remote device, from NVS (Non-Volatile Storage) flash, or the source is unknown.
Values:
- 
enumerator ESP_GATT_SERVICE_FROM_REMOTE_DEVICE
 Service information from a remote device. Relates to BTA_GATTC_SERVICE_INFO_FROM_REMOTE_DEVICE.
- 
enumerator ESP_GATT_SERVICE_FROM_NVS_FLASH
 Service information from NVS flash. Relates to BTA_GATTC_SERVICE_INFO_FROM_NVS_FLASH.
- 
enumerator ESP_GATT_SERVICE_FROM_UNKNOWN
 Service source is unknown. Relates to BTA_GATTC_SERVICE_INFO_FROM_UNKNOWN.
- 
enumerator ESP_GATT_SERVICE_FROM_REMOTE_DEVICE
 
- 
enum esp_gatt_write_type_t
 Defines the types of GATT write operations.
Values:
- 
enumerator ESP_GATT_WRITE_TYPE_NO_RSP
 Write operation where no response is needed.
- 
enumerator ESP_GATT_WRITE_TYPE_RSP
 Write operation that requires a remote response.
- 
enumerator ESP_GATT_WRITE_TYPE_NO_RSP
 
- 
enum esp_gatt_db_attr_type_t
 Enumerates types of GATT database attributes.
Values:
- 
enumerator ESP_GATT_DB_PRIMARY_SERVICE
 Primary service attribute.
- 
enumerator ESP_GATT_DB_SECONDARY_SERVICE
 Secondary service attribute.
- 
enumerator ESP_GATT_DB_CHARACTERISTIC
 Characteristic attribute.
- 
enumerator ESP_GATT_DB_DESCRIPTOR
 Descriptor attribute.
- 
enumerator ESP_GATT_DB_INCLUDED_SERVICE
 Included service attribute.
- 
enumerator ESP_GATT_DB_ALL
 All attribute types.
- 
enumerator ESP_GATT_DB_PRIMARY_SERVICE