Zephyr Project API 4.0.0
A Scalable Open Source RTOS
|
Generic Attribute Profile handling. More...
#include <stdint.h>
#include <stddef.h>
#include <sys/types.h>
#include <zephyr/sys/slist.h>
#include <zephyr/sys/util.h>
#include <zephyr/bluetooth/conn.h>
#include <zephyr/bluetooth/uuid.h>
#include <zephyr/bluetooth/att.h>
#include <zephyr/sys/iterable_sections.h>
Go to the source code of this file.
Data Structures | |
struct | bt_gatt_attr |
GATT Attribute. More... | |
struct | bt_gatt_service_static |
GATT Service structure. More... | |
struct | bt_gatt_service |
GATT Service structure. More... | |
struct | bt_gatt_service_val |
Service Attribute Value. More... | |
struct | bt_gatt_include |
Include Attribute Value. More... | |
struct | bt_gatt_cb |
GATT callback structure. More... | |
struct | bt_gatt_authorization_cb |
GATT authorization callback structure. More... | |
struct | bt_gatt_chrc |
Characteristic Attribute Value. More... | |
struct | bt_gatt_cep |
Characteristic Extended Properties Attribute Value. More... | |
struct | bt_gatt_ccc |
Client Characteristic Configuration Attribute Value. More... | |
struct | bt_gatt_scc |
Server Characteristic Configuration Attribute Value. More... | |
struct | bt_gatt_cpf |
GATT Characteristic Presentation Format Attribute Value. More... | |
struct | bt_gatt_ccc_cfg |
GATT CCC configuration entry. More... | |
struct | bt_gatt_notify_params |
struct | bt_gatt_indicate_params |
GATT Indicate Value parameters. More... | |
struct | bt_gatt_exchange_params |
GATT Exchange MTU parameters. More... | |
struct | bt_gatt_discover_params |
GATT Discover Attributes parameters. More... | |
struct | bt_gatt_read_params |
GATT Read parameters. More... | |
struct | bt_gatt_write_params |
GATT Write parameters. More... | |
struct | bt_gatt_subscribe_params |
GATT Subscribe parameters. More... | |
Macros | |
#define | BT_GATT_ERR(_att_err) (-(_att_err)) |
Construct error return value for attribute read and write callbacks. | |
#define | BT_GATT_CHRC_BROADCAST 0x01 |
Characteristic Properties Bit field values. | |
#define | BT_GATT_CHRC_READ 0x02 |
Characteristic read property. | |
#define | BT_GATT_CHRC_WRITE_WITHOUT_RESP 0x04 |
Characteristic write without response property. | |
#define | BT_GATT_CHRC_WRITE 0x08 |
Characteristic write with response property. | |
#define | BT_GATT_CHRC_NOTIFY 0x10 |
Characteristic notify property. | |
#define | BT_GATT_CHRC_INDICATE 0x20 |
Characteristic indicate property. | |
#define | BT_GATT_CHRC_AUTH 0x40 |
Characteristic Authenticated Signed Writes property. | |
#define | BT_GATT_CHRC_EXT_PROP 0x80 |
Characteristic Extended Properties property. | |
#define | BT_GATT_CEP_RELIABLE_WRITE 0x0001 |
Characteristic Extended Properties Bit field values. | |
#define | BT_GATT_CEP_WRITABLE_AUX 0x0002 |
#define | BT_GATT_CCC_NOTIFY 0x0001 |
Client Characteristic Configuration Values. | |
#define | BT_GATT_CCC_INDICATE 0x0002 |
Client Characteristic Configuration Indication. | |
#define | BT_GATT_SCC_BROADCAST 0x0001 |
Server Characteristic Configuration Values. | |
#define | BT_GATT_SERVICE_DEFINE(_name, ...) |
Statically define and register a service. | |
#define | BT_GATT_SERVICE_INSTANCE_DEFINE( _name, _instances, _instance_num, _attrs_def) |
Statically define service structure array. | |
#define | BT_GATT_SERVICE(_attrs) |
Service Structure Declaration Macro. | |
#define | BT_GATT_PRIMARY_SERVICE(_service) |
Primary Service Declaration Macro. | |
#define | BT_GATT_SECONDARY_SERVICE(_service) |
Secondary Service Declaration Macro. | |
#define | BT_GATT_INCLUDE_SERVICE(_service_incl) |
Include Service Declaration Macro. | |
#define | BT_GATT_CHRC_INIT(_uuid, _handle, _props) |
#define | BT_GATT_CHARACTERISTIC(_uuid, _props, _perm, _read, _write, _user_data) |
Characteristic and Value Declaration Macro. | |
#define | BT_GATT_CCC_MAX 0 |
#define | BT_GATT_CCC_INITIALIZER(_changed, _write, _match) |
Initialize Client Characteristic Configuration Declaration Macro. | |
#define | BT_GATT_CCC_MANAGED(_ccc, _perm) |
Managed Client Characteristic Configuration Declaration Macro. | |
#define | BT_GATT_CCC(_changed, _perm) |
Client Characteristic Configuration Declaration Macro. | |
#define | BT_GATT_CEP(_value) |
Characteristic Extended Properties Declaration Macro. | |
#define | BT_GATT_CUD(_value, _perm) |
Characteristic User Format Descriptor Declaration Macro. | |
#define | BT_GATT_CPF(_value) |
Characteristic Presentation Format Descriptor Declaration Macro. | |
#define | BT_GATT_DESCRIPTOR(_uuid, _perm, _read, _write, _user_data) BT_GATT_ATTRIBUTE(_uuid, _perm, _read, _write, _user_data) |
Descriptor Declaration Macro. | |
#define | BT_GATT_ATTRIBUTE(_uuid, _perm, _read, _write, _user_data) |
Attribute Declaration Macro. | |
#define | BT_GATT_AUTO_DISCOVER_CCC_HANDLE 0x0000U |
Handle value to denote that the CCC will be automatically discovered. | |
Typedefs | |
typedef ssize_t(* | bt_gatt_attr_read_func_t) (struct bt_conn *conn, const struct bt_gatt_attr *attr, void *buf, uint16_t len, uint16_t offset) |
Attribute read callback. | |
typedef ssize_t(* | bt_gatt_attr_write_func_t) (struct bt_conn *conn, const struct bt_gatt_attr *attr, const void *buf, uint16_t len, uint16_t offset, uint8_t flags) |
Attribute Value write implementation. | |
typedef uint8_t(* | bt_gatt_attr_func_t) (const struct bt_gatt_attr *attr, uint16_t handle, void *user_data) |
Attribute iterator callback. | |
typedef void(* | bt_gatt_complete_func_t) (struct bt_conn *conn, void *user_data) |
Notification complete result callback. | |
typedef void(* | bt_gatt_indicate_func_t) (struct bt_conn *conn, struct bt_gatt_indicate_params *params, uint8_t err) |
Indication complete result callback. | |
typedef void(* | bt_gatt_indicate_params_destroy_t) (struct bt_gatt_indicate_params *params) |
typedef uint8_t(* | bt_gatt_discover_func_t) (struct bt_conn *conn, const struct bt_gatt_attr *attr, struct bt_gatt_discover_params *params) |
Discover attribute callback function. | |
typedef uint8_t(* | bt_gatt_read_func_t) (struct bt_conn *conn, uint8_t err, struct bt_gatt_read_params *params, const void *data, uint16_t length) |
Read callback function. | |
typedef void(* | bt_gatt_write_func_t) (struct bt_conn *conn, uint8_t err, struct bt_gatt_write_params *params) |
Write callback function. | |
typedef uint8_t(* | bt_gatt_notify_func_t) (struct bt_conn *conn, struct bt_gatt_subscribe_params *params, const void *data, uint16_t length) |
Notification callback function. | |
typedef void(* | bt_gatt_subscribe_func_t) (struct bt_conn *conn, uint8_t err, struct bt_gatt_subscribe_params *params) |
Subscription callback function. | |
Functions | |
static const char * | bt_gatt_err_to_str (int gatt_err) |
Converts a GATT error to string. | |
void | bt_gatt_cb_register (struct bt_gatt_cb *cb) |
Register GATT callbacks. | |
int | bt_gatt_authorization_cb_register (const struct bt_gatt_authorization_cb *cb) |
Register GATT authorization callbacks. | |
int | bt_gatt_service_register (struct bt_gatt_service *svc) |
Register GATT service. | |
int | bt_gatt_service_unregister (struct bt_gatt_service *svc) |
Unregister GATT service. | |
bool | bt_gatt_service_is_registered (const struct bt_gatt_service *svc) |
Check if GATT service is registered. | |
void | bt_gatt_foreach_attr_type (uint16_t start_handle, uint16_t end_handle, const struct bt_uuid *uuid, const void *attr_data, uint16_t num_matches, bt_gatt_attr_func_t func, void *user_data) |
Attribute iterator by type. | |
static void | bt_gatt_foreach_attr (uint16_t start_handle, uint16_t end_handle, bt_gatt_attr_func_t func, void *user_data) |
Attribute iterator. | |
struct bt_gatt_attr * | bt_gatt_attr_next (const struct bt_gatt_attr *attr) |
Iterate to the next attribute. | |
struct bt_gatt_attr * | bt_gatt_find_by_uuid (const struct bt_gatt_attr *attr, uint16_t attr_count, const struct bt_uuid *uuid) |
Find Attribute by UUID. | |
uint16_t | bt_gatt_attr_get_handle (const struct bt_gatt_attr *attr) |
Get Attribute handle. | |
uint16_t | bt_gatt_attr_value_handle (const struct bt_gatt_attr *attr) |
Get the handle of the characteristic value descriptor. | |
ssize_t | bt_gatt_attr_read (struct bt_conn *conn, const struct bt_gatt_attr *attr, void *buf, uint16_t buf_len, uint16_t offset, const void *value, uint16_t value_len) |
Generic Read Attribute value helper. | |
ssize_t | bt_gatt_attr_read_service (struct bt_conn *conn, const struct bt_gatt_attr *attr, void *buf, uint16_t len, uint16_t offset) |
Read Service Attribute helper. | |
ssize_t | bt_gatt_attr_read_included (struct bt_conn *conn, const struct bt_gatt_attr *attr, void *buf, uint16_t len, uint16_t offset) |
Read Include Attribute helper. | |
ssize_t | bt_gatt_attr_read_chrc (struct bt_conn *conn, const struct bt_gatt_attr *attr, void *buf, uint16_t len, uint16_t offset) |
Read Characteristic Attribute helper. | |
ssize_t | bt_gatt_attr_read_ccc (struct bt_conn *conn, const struct bt_gatt_attr *attr, void *buf, uint16_t len, uint16_t offset) |
Read Client Characteristic Configuration Attribute helper. | |
ssize_t | bt_gatt_attr_write_ccc (struct bt_conn *conn, const struct bt_gatt_attr *attr, const void *buf, uint16_t len, uint16_t offset, uint8_t flags) |
Write Client Characteristic Configuration Attribute helper. | |
ssize_t | bt_gatt_attr_read_cep (struct bt_conn *conn, const struct bt_gatt_attr *attr, void *buf, uint16_t len, uint16_t offset) |
Read Characteristic Extended Properties Attribute helper. | |
ssize_t | bt_gatt_attr_read_cud (struct bt_conn *conn, const struct bt_gatt_attr *attr, void *buf, uint16_t len, uint16_t offset) |
Read Characteristic User Description Descriptor Attribute helper. | |
ssize_t | bt_gatt_attr_read_cpf (struct bt_conn *conn, const struct bt_gatt_attr *attr, void *buf, uint16_t len, uint16_t offset) |
Read Characteristic Presentation format Descriptor Attribute helper. | |
int | bt_gatt_notify_cb (struct bt_conn *conn, struct bt_gatt_notify_params *params) |
Notify attribute value change. | |
int | bt_gatt_notify_multiple (struct bt_conn *conn, uint16_t num_params, struct bt_gatt_notify_params params[]) |
Send multiple notifications in a single PDU. | |
static int | bt_gatt_notify (struct bt_conn *conn, const struct bt_gatt_attr *attr, const void *data, uint16_t len) |
Notify attribute value change. | |
static int | bt_gatt_notify_uuid (struct bt_conn *conn, const struct bt_uuid *uuid, const struct bt_gatt_attr *attr, const void *data, uint16_t len) |
Notify attribute value change by UUID. | |
int | bt_gatt_indicate (struct bt_conn *conn, struct bt_gatt_indicate_params *params) |
Indicate attribute value change. | |
bool | bt_gatt_is_subscribed (struct bt_conn *conn, const struct bt_gatt_attr *attr, uint16_t ccc_type) |
Check if connection have subscribed to attribute. | |
uint16_t | bt_gatt_get_mtu (struct bt_conn *conn) |
Get ATT MTU for a connection. | |
uint16_t | bt_gatt_get_uatt_mtu (struct bt_conn *conn) |
Get Unenhanced ATT (UATT) MTU for a connection. | |
int | bt_gatt_exchange_mtu (struct bt_conn *conn, struct bt_gatt_exchange_params *params) |
Exchange MTU. | |
int | bt_gatt_discover (struct bt_conn *conn, struct bt_gatt_discover_params *params) |
GATT Discover function. | |
int | bt_gatt_read (struct bt_conn *conn, struct bt_gatt_read_params *params) |
Read Attribute Value by handle. | |
int | bt_gatt_write (struct bt_conn *conn, struct bt_gatt_write_params *params) |
Write Attribute Value by handle. | |
int | bt_gatt_write_without_response_cb (struct bt_conn *conn, uint16_t handle, const void *data, uint16_t length, bool sign, bt_gatt_complete_func_t func, void *user_data) |
Write Attribute Value by handle without response with callback. | |
static int | bt_gatt_write_without_response (struct bt_conn *conn, uint16_t handle, const void *data, uint16_t length, bool sign) |
Write Attribute Value by handle without response. | |
int | bt_gatt_subscribe (struct bt_conn *conn, struct bt_gatt_subscribe_params *params) |
Subscribe Attribute Value Notification. | |
int | bt_gatt_resubscribe (uint8_t id, const bt_addr_le_t *peer, struct bt_gatt_subscribe_params *params) |
Resubscribe Attribute Value Notification subscription. | |
int | bt_gatt_unsubscribe (struct bt_conn *conn, struct bt_gatt_subscribe_params *params) |
Unsubscribe Attribute Value Notification. | |
void | bt_gatt_cancel (struct bt_conn *conn, void *params) |
Try to cancel the first pending request identified by params . | |
Generic Attribute Profile handling.