Zephyr API Documentation 4.2.99
A Scalable Open Source RTOS
|
Access layer APIs. More...
#include <zephyr/sys/util.h>
#include <zephyr/settings/settings.h>
#include <zephyr/bluetooth/assigned_numbers.h>
#include <zephyr/bluetooth/mesh/msg.h>
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... | |
struct | bt_mesh_models_metadata_entry |
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_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) |
Macro for encoding a 1-byte opcode (used by Bluetooth SIG defined models). | |
#define | BT_MESH_MODEL_OP_2(b0, b1) |
Macro for encoding a 2-byte opcode (used by Bluetooth SIG defined models). | |
#define | BT_MESH_MODEL_OP_3(b0, cid) |
Macro for encoding a 3-byte opcode (vendor-specific message). | |
#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_elem * | bt_mesh_model_elem (const struct bt_mesh_model *mod) |
Get the element that a model belongs to. | |
const struct bt_mesh_model * | bt_mesh_model_find (const struct bt_mesh_elem *elem, uint16_t id) |
Find a SIG model. | |
const struct bt_mesh_model * | bt_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. |
Access layer APIs.
#define BT_MESH_MODEL_RUNTIME_INIT | ( | _user_data | ) |