Zephyr API Documentation 4.2.99
A Scalable Open Source RTOS
Loading...
Searching...
No Matches
access.h File Reference

Access layer APIs. More...

Go to the source code of this file.

Data Structures

struct  bt_mesh_elem
 Abstraction that describes a Mesh Element. More...
struct  bt_mesh_elem::bt_mesh_elem_rt_ctx
 Mesh Element runtime information. More...
struct  bt_mesh_model_op
 Model opcode handler. More...
struct  bt_mesh_model_pub
 Model publication context. More...
 Models Metadata Entry struct. More...
struct  bt_mesh_model_cb
 Model callback functions. More...
struct  bt_mesh_mod_id_vnd
 Vendor model ID. More...
struct  bt_mesh_model
 Abstraction that describes a Mesh Model instance. More...
struct  bt_mesh_model::bt_mesh_model_rt_ctx
struct  bt_mesh_send_cb
 Callback structure for monitoring model message sending. More...
struct  bt_mesh_comp
 Node Composition. More...
struct  bt_mesh_comp2_record
 Composition data page 2 record. More...
struct  bt_mesh_comp2
 Node Composition data page 2. More...

Macros

#define BT_MESH_KEY_UNUSED_ELT_(IDX, _)
#define BT_MESH_ADDR_UNASSIGNED_ELT_(IDX, _)
#define BT_MESH_UUID_UNASSIGNED_ELT_(IDX, _)
#define BT_MESH_MODEL_KEYS_UNUSED(_keys)
#define BT_MESH_MODEL_GROUPS_UNASSIGNED(_grps)
#define BT_MESH_MODEL_UUIDS_UNASSIGNED()
#define BT_MESH_MODEL_RUNTIME_INIT(_user_data)
#define BT_MESH_ADDR_IS_UNICAST(addr)
 Check if a Bluetooth Mesh address is a unicast address.
#define BT_MESH_ADDR_IS_GROUP(addr)
 Check if a Bluetooth Mesh address is a group address.
#define BT_MESH_ADDR_IS_FIXED_GROUP(addr)
 Check if a Bluetooth Mesh address is a fixed group address.
#define BT_MESH_ADDR_IS_VIRTUAL(addr)
 Check if a Bluetooth Mesh address is a virtual address.
#define BT_MESH_ADDR_IS_RFU(addr)
 Check if a Bluetooth Mesh address is an RFU address.
#define BT_MESH_IS_DEV_KEY(key)
 Check if a Bluetooth Mesh key is a device key.
#define BT_MESH_APP_SEG_SDU_MAX   12
 Maximum size of an access message segment (in octets).
#define BT_MESH_APP_UNSEG_SDU_MAX   15
 Maximum payload size of an unsegmented access message (in octets).
#define BT_MESH_RX_SEG_MAX   0
 Maximum number of segments supported for incoming messages.
#define BT_MESH_TX_SEG_MAX   0
 Maximum number of segments supported for outgoing messages.
#define BT_MESH_TX_SDU_MAX
 Maximum possible payload size of an outgoing access message (in octets).
#define BT_MESH_RX_SDU_MAX
 Maximum possible payload size of an incoming access message (in octets).
#define BT_MESH_ELEM(_loc, _mods, _vnd_mods)
 Helper to define a mesh element within an array.
#define BT_MESH_MODEL_OP_1(b0)
#define BT_MESH_MODEL_OP_2(b0, b1)
#define BT_MESH_MODEL_OP_3(b0, cid)
#define BT_MESH_LEN_EXACT(len)
 Macro for encoding exact message length for fixed-length messages.
#define BT_MESH_LEN_MIN(len)
 Macro for encoding minimum message length for variable-length messages.
#define BT_MESH_MODEL_OP_END   { 0, 0, NULL }
 End of the opcode list.
#define BT_MESH_MODEL_NO_OPS
 Helper to define an empty opcode list.
#define BT_MESH_MODEL_NONE   ((const struct bt_mesh_model []){})
 Helper to define an empty model array.
#define BT_MESH_MODEL_CNT_CB(_id, _op, _pub, _user_data, _keys, _grps, _cb)
 Composition data SIG model entry with callback functions with specific number of keys & groups.
#define BT_MESH_MODEL_CNT_VND_CB(_company, _id, _op, _pub, _user_data, _keys, _grps, _cb)
 Composition data vendor model entry with callback functions with specific number of keys & groups.
#define BT_MESH_MODEL_CB(_id, _op, _pub, _user_data, _cb)
 Composition data SIG model entry with callback functions.
#define BT_MESH_MODEL_METADATA_CB(_id, _op, _pub, _user_data, _cb, _metadata)
 Composition data SIG model entry with callback functions and metadata.
#define BT_MESH_MODEL_VND_CB(_company, _id, _op, _pub, _user_data, _cb)
 Composition data vendor model entry with callback functions.
#define BT_MESH_MODEL_VND_METADATA_CB(_company, _id, _op, _pub, _user_data, _cb, _metadata)
 Composition data vendor model entry with callback functions and metadata.
#define BT_MESH_MODEL(_id, _op, _pub, _user_data)
 Composition data SIG model entry.
#define BT_MESH_MODEL_VND(_company, _id, _op, _pub, _user_data)
 Composition data vendor model entry.
#define BT_MESH_TRANSMIT(count, int_ms)
 Encode transmission count & interval steps.
#define BT_MESH_TRANSMIT_COUNT(transmit)
 Decode transmit count from a transmit value.
#define BT_MESH_TRANSMIT_INT(transmit)
 Decode transmit interval from a transmit value.
#define BT_MESH_PUB_TRANSMIT(count, int_ms)
 Encode Publish Retransmit count & interval steps.
#define BT_MESH_PUB_TRANSMIT_COUNT(transmit)
 Decode Publish Retransmit count from a given value.
#define BT_MESH_PUB_TRANSMIT_INT(transmit)
 Decode Publish Retransmit interval from a given value.
#define BT_MESH_PUB_MSG_TOTAL(pub)
 Get total number of messages within one publication interval including initial publication.
#define BT_MESH_PUB_MSG_NUM(pub)
 Get message number within one publication interval.
#define BT_MESH_MODEL_PUB_DEFINE(_name, _update, _msg_len)
 Define a model publication context.
#define BT_MESH_MODELS_METADATA_ENTRY(_len, _id, _data)
 Initialize a Models Metadata entry structure in a list.
#define BT_MESH_MODELS_METADATA_NONE   NULL
 Helper to define an empty Models metadata array.
#define BT_MESH_MODELS_METADATA_END   { 0, 0, NULL }
 End of the Models Metadata list.
#define BT_MESH_TTL_DEFAULT   0xff
 Special TTL value to request using configured default TTL.
#define BT_MESH_TTL_MAX   0x7f
 Maximum allowed TTL value.
Group addresses
#define BT_MESH_ADDR_UNASSIGNED   0x0000
 unassigned
#define BT_MESH_ADDR_ALL_NODES   0xffff
 all-nodes
#define BT_MESH_ADDR_RELAYS   0xfffe
 all-relays
#define BT_MESH_ADDR_FRIENDS   0xfffd
 all-friends
#define BT_MESH_ADDR_PROXIES   0xfffc
 all-proxies
#define BT_MESH_ADDR_DFW_NODES   0xfffb
 all-directed-forwarding-nodes
#define BT_MESH_ADDR_IP_NODES   0xfffa
 all-ipt-nodes
#define BT_MESH_ADDR_IP_BR_ROUTERS   0xfff9
 all-ipt-border-routers
Predefined key indexes
#define BT_MESH_KEY_UNUSED   0xffff
 Key unused.
#define BT_MESH_KEY_ANY   0xffff
 Any key index.
#define BT_MESH_KEY_DEV   0xfffe
 Device key.
#define BT_MESH_KEY_DEV_LOCAL   BT_MESH_KEY_DEV
 Local device key.
#define BT_MESH_KEY_DEV_REMOTE   0xfffd
 Remote device key.
#define BT_MESH_KEY_DEV_ANY   0xfffc
 Any device key.

Functions

int bt_mesh_model_send (const struct bt_mesh_model *model, struct bt_mesh_msg_ctx *ctx, struct net_buf_simple *msg, const struct bt_mesh_send_cb *cb, void *cb_data)
 Send an Access Layer message.
int bt_mesh_model_publish (const struct bt_mesh_model *model)
 Send a model publication message.
static bool bt_mesh_model_pub_is_retransmission (const struct bt_mesh_model *model)
 Check if a message is being retransmitted.
const struct bt_mesh_elembt_mesh_model_elem (const struct bt_mesh_model *mod)
 Get the element that a model belongs to.
const struct bt_mesh_modelbt_mesh_model_find (const struct bt_mesh_elem *elem, uint16_t id)
 Find a SIG model.
const struct bt_mesh_modelbt_mesh_model_find_vnd (const struct bt_mesh_elem *elem, uint16_t company, uint16_t id)
 Find a vendor model.
static bool bt_mesh_model_in_primary (const struct bt_mesh_model *mod)
 Get whether the model is in the primary element of the device.
int bt_mesh_model_data_store (const struct bt_mesh_model *mod, bool vnd, const char *name, const void *data, size_t data_len)
 Immediately store the model's user data in persistent storage.
void bt_mesh_model_data_store_schedule (const struct bt_mesh_model *mod)
 Schedule the model's user data store in persistent storage.
int bt_mesh_model_extend (const struct bt_mesh_model *extending_mod, const struct bt_mesh_model *base_mod)
 Let a model extend another.
int bt_mesh_model_correspond (const struct bt_mesh_model *corresponding_mod, const struct bt_mesh_model *base_mod)
 Let a model correspond to another.
bool bt_mesh_model_is_extended (const struct bt_mesh_model *model)
 Check if model is extended by another model.
int bt_mesh_comp_change_prepare (void)
 Indicate that the composition data will change on next bootup.
int bt_mesh_models_metadata_change_prepare (void)
 Indicate that the metadata will change on next bootup.
int bt_mesh_comp2_register (const struct bt_mesh_comp2 *comp2)
 Register composition data page 2 of the device.

Detailed Description

Access layer APIs.

Macro Definition Documentation

◆ BT_MESH_ADDR_UNASSIGNED_ELT_

#define BT_MESH_ADDR_UNASSIGNED_ELT_ ( IDX,
_ )
Value:
#define BT_MESH_ADDR_UNASSIGNED
unassigned
Definition access.h:52

◆ BT_MESH_KEY_UNUSED_ELT_

#define BT_MESH_KEY_UNUSED_ELT_ ( IDX,
_ )
Value:
#define BT_MESH_KEY_UNUSED
Key unused.
Definition access.h:68

◆ BT_MESH_MODEL_GROUPS_UNASSIGNED

#define BT_MESH_MODEL_GROUPS_UNASSIGNED ( _grps)
Value:
#define BT_MESH_ADDR_UNASSIGNED_ELT_(IDX, _)
Definition access.h:20
#define LISTIFY(LEN, F, sep,...)
Generates a sequence of code with configurable separator.
Definition util_macro.h:478

◆ BT_MESH_MODEL_KEYS_UNUSED

#define BT_MESH_MODEL_KEYS_UNUSED ( _keys)
Value:
#define BT_MESH_KEY_UNUSED_ELT_(IDX, _)
Definition access.h:19

◆ BT_MESH_MODEL_RUNTIME_INIT

#define BT_MESH_MODEL_RUNTIME_INIT ( _user_data)
Value:
.rt = &(struct bt_mesh_model_rt_ctx){ .user_data = (_user_data) },

◆ BT_MESH_MODEL_UUIDS_UNASSIGNED

#define BT_MESH_MODEL_UUIDS_UNASSIGNED ( )

◆ BT_MESH_UUID_UNASSIGNED_ELT_

#define BT_MESH_UUID_UNASSIGNED_ELT_ ( IDX,
_ )
Value:
#define NULL
Definition iar_missing_defs.h:20