16#include <access_reliable.h>
39 void init(uint16_t modelId);
61 void tick(uint32_t tickCount);
64 void handleMsg(
const access_message_rx_t* accessMsg);
79 uint8_t* msgPtr =
nullptr;
90#if MESH_MODEL_TEST_MSG == 2
92 uint32_t _timedout = 0;
93 uint32_t _canceled = 0;
Class that:
Definition: cs_MeshModelUnicast.h:26
cs_ret_code_t addToQueue(MeshUtil::cs_mesh_queue_item_t &item)
Add a msg the queue.
void handleMsg(const access_message_rx_t *accessMsg)
Internal usage.
uint8_t _reliableStatus
Status of the reliable msg.
Definition: cs_MeshModelUnicast.h:112
void handleReliableStatus(access_reliable_status_t status)
Internal usage.
dsm_handle_t _publishAddressHandle
Definition: cs_MeshModelUnicast.h:84
void remQueueItem(uint8_t index)
Remove an item from the queue.
access_model_handle_t _accessModelHandle
Definition: cs_MeshModelUnicast.h:82
void registerMsgHandler(const callback_msg_t &closure)
Register a callback function that's called when a message from the mesh is received.
void cancelQueueItem(uint8_t index)
If item at index is in progress, cancel it.
cs_ret_code_t sendReply(const access_message_rx_t *accessMsg, const uint8_t *msg, uint16_t msgSize)
Send a reply when receiving a reliable message.
function< void(MeshMsgEvent &msg)> callback_msg_t
Callback function definition.
Definition: cs_MeshModelUnicast.h:29
cs_ret_code_t setPublishAddress(stone_id_t id)
Sets the publish address.
uint8_t _ttl
Definition: cs_MeshModelUnicast.h:119
static const uint8_t QUEUE_SIZE
Definition: cs_MeshModelUnicast.h:70
void tick(uint32_t tickCount)
To be called at a regular interval.
uint8_t _queueIndexNext
Next index in queue to send.
Definition: cs_MeshModelUnicast.h:106
bool sendMsgFromQueue()
Get a msg from the queue, and send it.
void processQueue()
Send messages from queue.
void configureSelf(dsm_handle_t appkeyHandle)
Configure the model.
cs_unicast_queue_item_t _queue[QUEUE_SIZE]
Definition: cs_MeshModelUnicast.h:96
cs_ret_code_t setTtl(uint8_t ttl, bool temp=false)
Sets the TTL.
cs_ret_code_t sendMsg(const uint8_t *msg, uint16_t msgSize, uint32_t timeoutUs)
Send a unicast message over the mesh.
void checkDone()
Check if a message is done (success or timed out).
int getNextItemInQueue(bool priority)
Check if there is a msg in queue with more than 0 transmissions.
callback_msg_t _msgCallback
Definition: cs_MeshModelUnicast.h:86
void sendFailedResultToUart(cs_unicast_queue_item_t &item, cs_ret_code_t retCode)
cs_ret_code_t remFromQueue(cs_mesh_model_msg_type_t type, uint16_t id)
Remove a msg from the queue.
bool _replyReceived
Whether the reply message has been received.
Definition: cs_MeshModelUnicast.h:117
access_reliable_t _accessReliableMsg
Definition: cs_MeshModelUnicast.h:88
void init(uint16_t modelId)
Init the model.
static const uint8_t QUEUE_INDEX_NONE
Definition: cs_MeshModelUnicast.h:72
uint8_t _queueIndexInProgress
Queue index of message currently being sent.
Definition: cs_MeshModelUnicast.h:101
Definition: cs_MeshMsgEvent.h:71
#define CS_MESH_DEFAULT_TTL
Definition: cs_Config.h:211
cs_mesh_model_msg_type_t
Definition: cs_MeshModelPackets.h:61
uint16_t cs_control_cmd_t
Definition: cs_Typedefs.h:22
uint8_t stone_id_t
Definition: cs_Typedefs.h:23
uint16_t cs_ret_code_t
Definition: cs_Typedefs.h:21
Definition: cs_MeshModelUnicast.h:74
cs_control_cmd_t controlCommand
Definition: cs_MeshModelUnicast.h:77
stone_id_t targetId
Definition: cs_MeshModelUnicast.h:76
uint8_t msgSize
Definition: cs_MeshModelUnicast.h:78
MeshUtil::cs_mesh_queue_item_meta_data_t metaData
Definition: cs_MeshModelUnicast.h:75
Struct to queue an item.
Definition: cs_MeshCommon.h:48