|
Zephyr Project API 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) .rt = &(struct bt_mesh_model_rt_ctx){ .user_data = (_user_data) }, |
| #define | BT_MESH_ADDR_IS_UNICAST(addr) ((addr) && (addr) < 0x8000) |
| Check if a Bluetooth Mesh address is a unicast address. | |
| #define | BT_MESH_ADDR_IS_GROUP(addr) ((addr) >= 0xc000 && (addr) < 0xff00) |
| Check if a Bluetooth Mesh address is a group address. | |
| #define | BT_MESH_ADDR_IS_FIXED_GROUP(addr) ((addr) >= 0xff00 && (addr) < 0xffff) |
| Check if a Bluetooth Mesh address is a fixed group address. | |
| #define | BT_MESH_ADDR_IS_VIRTUAL(addr) ((addr) >= 0x8000 && (addr) < 0xc000) |
| Check if a Bluetooth Mesh address is a virtual address. | |
| #define | BT_MESH_ADDR_IS_RFU(addr) ((addr) >= 0xff00 && (addr) <= 0xfff8) |
| 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) (b0) |
| Macro for encoding a 1-byte opcode (used by Bluetooth SIG defined models). | |
| #define | BT_MESH_MODEL_OP_2(b0, b1) (((b0) << 8) | (b1)) |
| Macro for encoding a 2-byte opcode (used by Bluetooth SIG defined models). | |
| #define | BT_MESH_MODEL_OP_3(b0, cid) ((((b0) << 16) | 0xc00000) | (cid)) |
| Macro for encoding a 3-byte opcode (vendor-specific message). | |
| #define | BT_MESH_LEN_EXACT(len) (-len) |
| Macro for encoding exact message length for fixed-length messages. | |
| #define | BT_MESH_LEN_MIN(len) (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) BT_MESH_MODEL_CB(_id, _op, _pub, _user_data, _cb) |
| 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) BT_MESH_MODEL_VND_CB(_company, _id, _op, _pub, _user_data, _cb) |
| Composition data vendor model entry with callback functions and metadata. | |
| #define | BT_MESH_MODEL(_id, _op, _pub, _user_data) BT_MESH_MODEL_CB(_id, _op, _pub, _user_data, NULL) |
| Composition data SIG model entry. | |
| #define | BT_MESH_MODEL_VND(_company, _id, _op, _pub, _user_data) BT_MESH_MODEL_VND_CB(_company, _id, _op, _pub, _user_data, NULL) |
| Composition data vendor model entry. | |
| #define | BT_MESH_TRANSMIT(count, int_ms) ((uint8_t)((count) | (((int_ms / 10) - 1) << 3))) |
| Encode transmission count & interval steps. | |
| #define | BT_MESH_TRANSMIT_COUNT(transmit) (((transmit) & (uint8_t)BIT_MASK(3))) |
| Decode transmit count from a transmit value. | |
| #define | BT_MESH_TRANSMIT_INT(transmit) ((((transmit) >> 3) + 1) * 10) |
| 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) BT_MESH_TRANSMIT_COUNT(transmit) |
| Decode Publish Retransmit count from a given value. | |
| #define | BT_MESH_PUB_TRANSMIT_INT(transmit) ((((transmit) >> 3) + 1) * 50) |
| Decode Publish Retransmit interval from a given value. | |
| #define | BT_MESH_PUB_MSG_TOTAL(pub) (BT_MESH_PUB_TRANSMIT_COUNT((pub)->retransmit) + 1) |
| Get total number of messages within one publication interval including initial publication. | |
| #define | BT_MESH_PUB_MSG_NUM(pub) (BT_MESH_PUB_TRANSMIT_COUNT((pub)->retransmit) + 1 - (pub)->count) |
| 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 | ) | .rt = &(struct bt_mesh_model_rt_ctx){ .user_data = (_user_data) }, |