Zephyr API Documentation 4.0.99
A Scalable Open Source RTOS
|
Model publication context. More...
#include <access.h>
Data Fields | |
const struct bt_mesh_model * | mod |
The model the context belongs to. | |
uint16_t | addr |
Publish Address. | |
const uint8_t * | uuid |
Label UUID if Publish Address is Virtual Address. | |
uint16_t | key:12 |
Publish AppKey Index. | |
uint16_t | cred:1 |
Friendship Credentials Flag. | |
uint16_t | send_rel:1 |
Force reliable sending (segment acks) | |
uint16_t | fast_period:1 |
Use FastPeriodDivisor. | |
uint16_t | retr_update:1 |
Call update callback on every retransmission. | |
uint8_t | ttl |
Publish Time to Live. | |
uint8_t | retransmit |
Retransmit Count & Interval Steps. | |
uint8_t | period |
Publish Period. | |
uint8_t | period_div:4 |
Divisor for the Period. | |
uint8_t | count:4 |
Transmissions left. | |
uint8_t | delayable:1 |
Use random delay for publishing. | |
uint32_t | period_start |
Start of the current period. | |
struct net_buf_simple * | msg |
Publication buffer, containing the publication message. | |
int(* | update )(const struct bt_mesh_model *mod) |
Callback for updating the publication buffer. | |
struct k_work_delayable | timer |
Publish Period Timer. | |
Model publication context.
The context should primarily be created using the BT_MESH_MODEL_PUB_DEFINE macro.
uint16_t bt_mesh_model_pub::addr |
Publish Address.
uint8_t bt_mesh_model_pub::count |
Transmissions left.
uint16_t bt_mesh_model_pub::cred |
Friendship Credentials Flag.
uint8_t bt_mesh_model_pub::delayable |
Use random delay for publishing.
uint16_t bt_mesh_model_pub::fast_period |
Use FastPeriodDivisor.
uint16_t bt_mesh_model_pub::key |
Publish AppKey Index.
const struct bt_mesh_model* bt_mesh_model_pub::mod |
The model the context belongs to.
Initialized by the stack.
struct net_buf_simple* bt_mesh_model_pub::msg |
Publication buffer, containing the publication message.
This will get correctly created when the publication context has been defined using the BT_MESH_MODEL_PUB_DEFINE macro.
BT_MESH_MODEL_PUB_DEFINE(name, update, size);
uint8_t bt_mesh_model_pub::period |
Publish Period.
uint8_t bt_mesh_model_pub::period_div |
Divisor for the Period.
uint32_t bt_mesh_model_pub::period_start |
Start of the current period.
uint16_t bt_mesh_model_pub::retr_update |
Call update callback on every retransmission.
uint8_t bt_mesh_model_pub::retransmit |
Retransmit Count & Interval Steps.
uint16_t bt_mesh_model_pub::send_rel |
Force reliable sending (segment acks)
struct k_work_delayable bt_mesh_model_pub::timer |
Publish Period Timer.
Only for stack-internal use.
uint8_t bt_mesh_model_pub::ttl |
Publish Time to Live.
int(* bt_mesh_model_pub::update) (const struct bt_mesh_model *mod) |
Callback for updating the publication buffer.
When set to NULL, the model is assumed not to support periodic publishing. When set to non-NULL the callback will be called periodically and is expected to update bt_mesh_model_pub::msg with a valid publication message.
If the callback returns non-zero, the publication is skipped and will resume on the next periodic publishing interval.
When bt_mesh_model_pub::retr_update is set to 1, the callback will be called on every retransmission.
mod | The Model the Publication Context belongs to. |
const uint8_t* bt_mesh_model_pub::uuid |
Label UUID if Publish Address is Virtual Address.