37 void init(uint16_t modelId);
62 void tick(uint32_t tickCount);
65 void handleMsg(
const access_message_rx_t* accessMsg);
78 uint8_t* msgPtr =
nullptr;
157 void sendReply(
const access_message_rx_t* accessMsg,
const uint8_t* data, uint16_t len);
Class that holds a bitmask of variable size.
Definition: cs_BitmaskVarSize.h:17
Class that:
Definition: cs_MeshModelMulticastAcked.h:24
dsm_handle_t _groupAddressHandle
Definition: cs_MeshModelMulticastAcked.h:83
BitmaskVarSize _ackedStonesBitmask
Bitmask of acked stones.
Definition: cs_MeshModelMulticastAcked.h:103
void tick(uint32_t tickCount)
To be called at a regular interval.
bool sendMsgFromQueue()
Get a msg from the queue, and send it.
bool prepareForMsg(cs_multicast_acked_queue_item_t *item)
Prepare for sending a new message.
access_model_handle_t _accessModelHandle
Definition: cs_MeshModelMulticastAcked.h:81
void processQueue()
Send messages from queue.
void cancelQueueItem(uint8_t index)
If item at index is in progress, cancel it.
cs_multicast_acked_queue_item_t _queue[QUEUE_SIZE]
Definition: cs_MeshModelMulticastAcked.h:87
int getNextItemInQueue(bool priority)
Check if there is a msg in queue with more than 0 transmissions.
void configureSelf(dsm_handle_t appkeyHandle)
Configure the model.
uint8_t _queueIndexNext
Next index in queue to send.
Definition: cs_MeshModelMulticastAcked.h:97
void handleMsg(const access_message_rx_t *accessMsg)
Internal usage.
void handleReply(MeshMsgEvent &msg)
Handle an ack message.
static const uint8_t QUEUE_INDEX_NONE
Definition: cs_MeshModelMulticastAcked.h:70
static const uint8_t QUEUE_SIZE
Definition: cs_MeshModelMulticastAcked.h:68
void retryMsg()
Retry sending (parts of) the message.
cs_ret_code_t remFromQueue(cs_mesh_model_msg_type_t type, uint16_t id)
Remove a msg from the queue.
callback_msg_t _msgCallback
Definition: cs_MeshModelMulticastAcked.h:85
cs_ret_code_t addToQueue(MeshUtil::cs_mesh_queue_item_t &item)
Add a msg to an empty spot in the queue (transmissions == 0).
function< void(MeshMsgEvent &msg)> callback_msg_t
Callback function definition.
Definition: cs_MeshModelMulticastAcked.h:27
void checkDone()
Check if ack from every stone ID in the list has been received.
void sendReply(const access_message_rx_t *accessMsg, const uint8_t *data, uint16_t len)
Send an ack message.
void registerMsgHandler(const callback_msg_t &closure)
Register a callback function that's called when a message from the mesh is received.
uint16_t _processCallsLeft
Number of processQueue() calls left until timeout.
Definition: cs_MeshModelMulticastAcked.h:113
void init(uint16_t modelId)
Init the model.
cs_ret_code_t sendMsg(const uint8_t *data, uint16_t len)
Send a message over the mesh via publish, without reply.
void remQueueItem(uint8_t index)
Remove an item from the queue.
TYPIFY(CONFIG_CROWNSTONE_ID) _ownStoneId=0
uint8_t _queueIndexInProgress
Queue index of message currently being sent.
Definition: cs_MeshModelMulticastAcked.h:92
Definition: cs_MeshMsgEvent.h:71
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_MeshModelMulticastAcked.h:72
uint8_t numStoneIds
Definition: cs_MeshModelMulticastAcked.h:74
stone_id_t * stoneIdsPtr
Definition: cs_MeshModelMulticastAcked.h:75
MeshUtil::cs_mesh_queue_item_meta_data_t metaData
Definition: cs_MeshModelMulticastAcked.h:73
uint8_t msgSize
Definition: cs_MeshModelMulticastAcked.h:77
cs_control_cmd_t controlCommand
Definition: cs_MeshModelMulticastAcked.h:76
Struct to queue an item.
Definition: cs_MeshCommon.h:48