Generic Attribute (GATT) Functions.
The Generic Attribute Profile (GATT) defines a service framework which enables Bluetooth low energy applications to configure themselves as a client or server device.
The profile also provides the capability to perform discovery of services, read, write, notification and indication of characteristics defined on a server.
API Reference | |
| GATT Module Initialization | |
| GATT Profile Module Init. | |
| Server API | |
| GATT Profile Server Functions. | |
| Client API | |
| GATT Profile Client Functions. | |
| Connection API | |
| GATT Profile Connection Functions. | |
Macros | |
| #define | GATT_BLE_DEFAULT_MTU_SIZE 23 |
| Default GATT MTU size over LE link. | |
| #define | GATT_AUTH_SIGN_LEN 12 |
| Size of the signature appended to application data in signed write cmd. | |
| #define | GATT_CLIENT_MAX_WRITE_SIGNED_DATA (23 - 3 - GATT_AUTH_SIGN_LEN) |
| Max size of application data allowed to be sent using the signed write cmd. | |
| #define | WICED_GATT_HDR_SIZE 3 |
| GATT Header size (1 byte opcode + 2 byte handle) | |
| #define | GATT_PREP_WRITE_CANCEL GATT_PREPARE_WRITE_CANCEL |
| See GATT_PREPARE_WRITE_CANCEL. | |
| #define | GATT_PREP_WRITE_EXEC GATT_PREPARE_WRITE_EXEC |
| See GATT_PREPARE_WRITE_EXEC. | |
| #define | GATTDB_PERM_VARIABLE_LENGTH (0x1 << 0) |
| Attribute has variable length (not used by stack) | |
| #define | GATTDB_PERM_READABLE (0x1 << 1) |
| Attribute is readable. | |
| #define | GATTDB_PERM_WRITE_CMD (0x1 << 2) |
| Attribute can be written using GATT_CMD_WRITE. | |
| #define | GATTDB_PERM_WRITE_REQ (0x1 << 3) |
| Attribute can be written using GATT_REQ_WRITE. | |
| #define | GATTDB_PERM_AUTH_READABLE (0x1 << 4) |
| Attribute can be read if the connection is encrypted or authenticated. More... | |
| #define | GATTDB_PERM_RELIABLE_WRITE (0x1 << 5) |
| Attribute supports reliable writes. | |
| #define | GATTDB_PERM_AUTH_WRITABLE (0x1 << 6) |
| Attribute can be written if the connection is encrypted or authenticated. More... | |
| #define | GATTDB_PERM_WRITABLE (GATTDB_PERM_WRITE_CMD | GATTDB_PERM_WRITE_REQ | GATTDB_PERM_AUTH_WRITABLE) |
| Writable permissions. | |
| #define | GATTDB_PERM_MASK (0x7f) |
| All the permission bits. | |
| #define | GATTDB_PERM_SERVICE_UUID_128 (0x1 << 7) |
| Set for 128 bit services/characteristic UUIDs, check Service and Characteristic macros. More... | |
| #define | GATTDB_CHAR_PROP_BROADCAST (0x1 << 0) |
| GATT Characteristic Properties (see Vol 3, Part G, 3.3.1.1) | |
| #define | GATTDB_CHAR_PROP_READ (0x1 << 1) |
| GATT Characteristic Properties (see Vol 3, Part G, 3.3.1.1) | |
| #define | GATTDB_CHAR_PROP_WRITE_NO_RESPONSE (0x1 << 2) |
| GATT Characteristic Properties (see Vol 3, Part G, 3.3.1.1) | |
| #define | GATTDB_CHAR_PROP_WRITE (0x1 << 3) |
| GATT Characteristic Properties (see Vol 3, Part G, 3.3.1.1) | |
| #define | GATTDB_CHAR_PROP_NOTIFY (0x1 << 4) |
| GATT Characteristic Properties (see Vol 3, Part G, 3.3.1.1) | |
| #define | GATTDB_CHAR_PROP_INDICATE (0x1 << 5) |
| GATT Characteristic Properties (see Vol 3, Part G, 3.3.1.1) | |
| #define | GATTDB_CHAR_PROP_AUTHD_WRITES (0x1 << 6) |
| GATT Characteristic Properties (see Vol 3, Part G, 3.3.1.1) | |
| #define | GATTDB_CHAR_PROP_EXTENDED (0x1 << 7) |
| GATT Characteristic Properties (see Vol 3, Part G, 3.3.1.1) | |
| #define | GATTDB_CHAR_EXTENDED_PROP_RELIABLE (0x1 << 0) |
| GATT Characteristic Extended Properties (see Vol 3, Part G, 3.3.3.1) | |
| #define | GATTDB_CHAR_EXTENDED_PROP_WRITABLE_AUXILIARIES (0x1 << 1) |
| GATT Characteristic Extended Properties (see Vol 3, Part G, 3.3.3.1) | |
| #define | BIT16_TO_8(val) |
| Conversion macros. More... | |
| #define | GATTDB_UUID16_SIZE 2 |
| UUID lengths. | |
| #define | GATTDB_UUID128_SIZE 16 |
| UUID lengths. | |
| #define | GATT_IS_CSF_FEATURE_SUPPORTED(csf, m) (csf[(m)/8] & (1 << (m)%8)) |
| macro to determine GATT Client Support features | |
Typedefs | |
| typedef uint16_t | wiced_bt_gatt_status_t |
| GATT status (see wiced_bt_gatt_status_e) | |
| typedef uint8_t | wiced_bt_gatt_opcode_t |
| GATT Opcodes. | |
| typedef uint16_t | wiced_bt_gatt_disconn_reason_t |
| GATT disconnection reason (see wiced_bt_gatt_disconn_reason_e) | |
| typedef uint16_t | wiced_bt_gatt_client_char_config_t |
| GATT client config (see wiced_bt_gatt_client_char_config_e) | |
| typedef uint16_t | wiced_bt_gatt_server_char_config_t |
| GATT server config (see wiced_bt_gatt_server_char_config_e) | |
| typedef uint8_t | wiced_bt_gatt_char_properties_t |
| GATT characteristic properties mask (see wiced_bt_gatt_char_properties_e) | |
| typedef uint8_t | wiced_bt_gatt_auth_req_t |
| GATT authentication requirement (see wiced_bt_gatt_auth_req_e) | |
| typedef uint8_t | wiced_bt_gatt_exec_flag_t |
| GATT execute flag (see wiced_bt_gatt_exec_flag_e) | |
| typedef uint8_t | wiced_bt_gatt_discovery_type_t |
| GATT Discovery type (see wiced_bt_gatt_discovery_type_e) | |
| typedef uint8_t | wiced_bt_gatt_optype_t |
| GATT Client Operation Codes. More... | |
| typedef uint8_t | wiced_bt_gatt_caching_status_t |
| GATT peer caching status (see wiced_bt_gatt_caching_status_e) | |
| typedef uint8_t | wiced_bt_gatt_permission_t |
| Attribute permission bit masks. | |
| typedef uint8_t | wiced_bt_gatt_format_t |
| characteristic format specifiers (see wiced_bt_gatt_format_e) | |
| typedef uint8_t | wiced_bt_gatt_csf_bits_t |
| GATT Client Support features. More... | |
| typedef tDRB * | wiced_bt_eatt_drbs[EATT_CHANNELS_PER_TRANSACTION] |
| list of Data Receive Blocks | |
| typedef void * | wiced_bt_gatt_app_context_t |
| App context is returned back to application in event GATT_APP_BUFFER_TRANSMITTED_EVT on transmission of application data buffer. More... | |
| typedef wiced_bt_gatt_status_t | wiced_bt_gatt_cback_t(wiced_bt_gatt_evt_t event, wiced_bt_gatt_event_data_t *p_event_data) |
| GATT event notification callback. More... | |
| typedef void(* | wiced_bt_gatt_eatt_on_connect_ind_t) (wiced_bt_gatt_eatt_connection_indication_event_t *p_ind) |
| Function callbacks for EATT. More... | |
| typedef void(* | wiced_bt_gatt_eatt_on_connect_complete_t) (wiced_bt_gatt_eatt_connection_confirmation_event_t *p_cfm) |
| callback upon GATT EATT connection complete | |
| typedef void(* | wiced_bt_gatt_eatt_on_reconfigure_ind_t) (uint16_t conn_id, uint16_t mtu, uint16_t mps) |
| callback upon GATT EATT reconnection complete | |
| typedef void(* | wiced_bt_gatt_eatt_release_drb_t) (tDRB *p_drb) |
| callback upon releasing the DRB | |
Service and Characteristic macros | |
| #define | PRIMARY_SERVICE_UUID16(handle, service) |
| Macro to assist 16 bit primary service declaration. More... | |
| #define | PRIMARY_SERVICE_UUID128(handle, service) |
| Macro to assist 128 bit primary service declaration. More... | |
| #define | SECONDARY_SERVICE_UUID16(handle, service) |
| Macro to assist 16 bit secondary service declaration. More... | |
| #define | SECONDARY_SERVICE_UUID128(handle, service) |
| Macro to assist 128 bit secondary service declaration. More... | |
| #define | INCLUDE_SERVICE_UUID16(handle, service_handle, end_group_handle, service) |
| Macro to assist included service declaration. More... | |
| #define | INCLUDE_SERVICE_UUID128(handle, service_handle, end_group_handle) |
| Macro to assist 128 bit included service declaration. More... | |
| #define | CHARACTERISTIC_UUID16(handle, handle_value, uuid, properties, permission) |
| Macro to assist readable 16 bit characteristic declaration. More... | |
| #define | CHARACTERISTIC_UUID128(handle, handle_value, uuid, properties, permission) |
| Macro to assist readable 128 bit characteristic declaration. More... | |
| #define | CHARACTERISTIC_UUID16_WRITABLE(handle, handle_value, uuid, properties, permission) |
| Macro to assist writable 16 bit characteristic declaration. More... | |
| #define | CHARACTERISTIC_UUID128_WRITABLE(handle, handle_value, uuid, properties, permission) |
| Macro to assist writable 128 bit characteristic declaration. More... | |
| #define | CHAR_DESCRIPTOR_UUID16_WRITABLE(handle, uuid, permission) |
| Macro to assist writable 16 bit descriptor declaration. More... | |
| #define | CHAR_DESCRIPTOR_UUID16(handle, uuid, permission) |
| Macro to assist readable 16 bit descriptor declaration. More... | |
| #define | CHAR_DESCRIPTOR_UUID128_WRITABLE(handle, uuid, permission) |
| Macro to assist writable 128 bit descriptor declaration. More... | |
| #define | CHAR_DESCRIPTOR_UUID128(handle, uuid, permission) |
| Macro to assist readable 128 bit descriptor declaration. More... | |
| #define | CHAR_DESCRIPTOR_EXTENDED_PROPERTIES(handle, ext_properties) |
| Macro to assist extended properties declaration. More... | |
| #define GATTDB_PERM_AUTH_READABLE (0x1 << 4) |
Attribute can be read if the connection is encrypted or authenticated.
| #define GATTDB_PERM_AUTH_WRITABLE (0x1 << 6) |
Attribute can be written if the connection is encrypted or authenticated.
Permission mask for writable characteristics
| #define GATTDB_PERM_SERVICE_UUID_128 (0x1 << 7) |
Set for 128 bit services/characteristic UUIDs, check Service and Characteristic macros.
| #define BIT16_TO_8 | ( | val | ) |
Conversion macros.
| #define PRIMARY_SERVICE_UUID16 | ( | handle, | |
| service | |||
| ) |
Macro to assist 16 bit primary service declaration.
| #define PRIMARY_SERVICE_UUID128 | ( | handle, | |
| service | |||
| ) |
Macro to assist 128 bit primary service declaration.
| #define SECONDARY_SERVICE_UUID16 | ( | handle, | |
| service | |||
| ) |
Macro to assist 16 bit secondary service declaration.
| #define SECONDARY_SERVICE_UUID128 | ( | handle, | |
| service | |||
| ) |
Macro to assist 128 bit secondary service declaration.
| #define INCLUDE_SERVICE_UUID16 | ( | handle, | |
| service_handle, | |||
| end_group_handle, | |||
| service | |||
| ) |
Macro to assist included service declaration.
| #define INCLUDE_SERVICE_UUID128 | ( | handle, | |
| service_handle, | |||
| end_group_handle | |||
| ) |
Macro to assist 128 bit included service declaration.
| #define CHARACTERISTIC_UUID16 | ( | handle, | |
| handle_value, | |||
| uuid, | |||
| properties, | |||
| permission | |||
| ) |
Macro to assist readable 16 bit characteristic declaration.
| #define CHARACTERISTIC_UUID128 | ( | handle, | |
| handle_value, | |||
| uuid, | |||
| properties, | |||
| permission | |||
| ) |
Macro to assist readable 128 bit characteristic declaration.
| #define CHARACTERISTIC_UUID16_WRITABLE | ( | handle, | |
| handle_value, | |||
| uuid, | |||
| properties, | |||
| permission | |||
| ) |
Macro to assist writable 16 bit characteristic declaration.
| #define CHARACTERISTIC_UUID128_WRITABLE | ( | handle, | |
| handle_value, | |||
| uuid, | |||
| properties, | |||
| permission | |||
| ) |
Macro to assist writable 128 bit characteristic declaration.
| #define CHAR_DESCRIPTOR_UUID16_WRITABLE | ( | handle, | |
| uuid, | |||
| permission | |||
| ) |
Macro to assist writable 16 bit descriptor declaration.
| #define CHAR_DESCRIPTOR_UUID16 | ( | handle, | |
| uuid, | |||
| permission | |||
| ) |
Macro to assist readable 16 bit descriptor declaration.
| #define CHAR_DESCRIPTOR_UUID128_WRITABLE | ( | handle, | |
| uuid, | |||
| permission | |||
| ) |
Macro to assist writable 128 bit descriptor declaration.
| #define CHAR_DESCRIPTOR_UUID128 | ( | handle, | |
| uuid, | |||
| permission | |||
| ) |
Macro to assist readable 128 bit descriptor declaration.
| #define CHAR_DESCRIPTOR_EXTENDED_PROPERTIES | ( | handle, | |
| ext_properties | |||
| ) |
Macro to assist extended properties declaration.
| typedef uint8_t wiced_bt_gatt_optype_t |
GATT Client Operation Codes.
GATT client operation type (see wiced_bt_gatt_optype_e)
| typedef uint8_t wiced_bt_gatt_csf_bits_t |
GATT Client Support features.
Data Receive Buffer Data Receive Buffer or DRB is a memory area of type tDRB and size(channel MTU size + DRB_OVERHEAD_SIZE). The DRB buffer is allocated by the application during channel creation. The allocated DRBs are passed to the GATT layer when establishing an EATT connection. a) As a connection initiator with wiced_bt_gatt_eatt_connect b) As a connection responder with wiced_bt_gatt_eatt_connection_response_t The application can free the allocated DRB after receiving the callback wiced_bt_gatt_eatt_callbacks_t::eatt_release_drb
| typedef void* wiced_bt_gatt_app_context_t |
App context is returned back to application in event GATT_APP_BUFFER_TRANSMITTED_EVT on transmission of application data buffer.
| typedef wiced_bt_gatt_status_t wiced_bt_gatt_cback_t(wiced_bt_gatt_evt_t event, wiced_bt_gatt_event_data_t *p_event_data) |
GATT event notification callback.
Callback for GATT event notifications Registered using wiced_bt_gatt_register()
| [in] | event | : Event ID |
| [in] | p_event_data | : Event data |
| typedef void(* wiced_bt_gatt_eatt_on_connect_ind_t) (wiced_bt_gatt_eatt_connection_indication_event_t *p_ind) |
Function callbacks for EATT.
callback upon GATT EATT connection
| enum gatt_appearance_e |
GATT appearance definitions.
GATT Status Codes.
GATT Operation Codes.
All GATT_REQ_xxx are sent by the client and received on the server. All GATT_RSP_xxx are sent by the server in response to the specific requests from client All GATT_CMD_xxx are sent by client and received on the server. The server shall not send any response to the received GATT_CMD_xxx
GATT_HANDLE_VALUE_NOTIF, GATT_HANDLE_VALUE_IND and GATT_HANDLE_VALUE_MULTI_NOTIF are sent by server to notify/indicate changes to handle values on the server GATT_HANDLE_VALUE_CONF is sent by the client in response to GATT_HANDLE_VALUE_IND
GATT Disconnection reason.
GATT Characteristic Properties Mask.
Discovery types.
GATT client operation type, used in client callback function.
Format of the value of a characteristic.
Enumeration types for the
.Enumeration of known Client Supported Feature Bit assignments of the wiced_bt_gatt_client_supported_features_t
| enum wiced_bt_gatt_evt_t |
GATT events.
| Enumerator | |
|---|---|
| GATT_CONNECTION_STATUS_EVT | GATT connection status change. Event data: wiced_bt_gatt_event_data_t::connection_status |
| GATT_OPERATION_CPLT_EVT | GATT client events, indication completion of app initiated client operations Check specific client APIs for more details. Applications can initiate the next client operation for the specific ATT bearer on receiving this event. Event data: wiced_bt_gatt_event_data_t::operation_complete |
| GATT_DISCOVERY_RESULT_EVT | GATT attribute discovery result. Event data: wiced_bt_gatt_event_data_t::discovery_result |
| GATT_DISCOVERY_CPLT_EVT | GATT attribute discovery complete. Event data: wiced_bt_gatt_event_data_t::discovery_complete |
| GATT_ATTRIBUTE_REQUEST_EVT | GATT attribute request (from remote client). Event data: wiced_bt_gatt_event_data_t::attribute_request |
| GATT_CONGESTION_EVT | GATT congestion (running low in tx buffers). Event data: wiced_bt_gatt_event_data_t::congestion
|
| GATT_GET_RESPONSE_BUFFER_EVT | GATT buffer request, typically sized to max of bearer mtu - 1, Event data: wiced_bt_gatt_event_data_t::buffer_request. |
| GATT_APP_BUFFER_TRANSMITTED_EVT | GATT buffer transmitted event, indicates that the data in wiced_bt_gatt_buffer_transmitted_t::p_app_data has been transmitted and may be released/freed by the application using the application provided context in wiced_bt_gatt_buffer_transmitted_t::p_app_ctxt.
Event data: wiced_bt_gatt_event_data_t::buffer_xmitted |