The LoRa Developer Forum is now in read-only mode and new content will not be added.
Semtech, in its commitment to enhance user experience and streamline content, has successfully integrated the LoRa Developer Portal content into Semtech.com. As a result of this consolidation effort, the LoRa® Developer Portal Forum will be discontinued on May 1st. After this date, you will be automatically redirected to Semtech.com.
For any technical support related to LoRa, please feel free to reach out to our experts here. If you have sales inquiries, please contact us here.

FORUM

Set end node Class B ping & multicast periodicity

Hello community,

When initializing Class B end nodes, it seems that initialization of Ping Slot and Multicast Slot periodicity is required. (If these are not initialized, then computation of next ping / multicast slot upon beacon sync results in a divide by zero.) Furthermore, this initialization would be the application layer responsibility, because the application developer will know what the design requires for initial ping slot assignment.

It seems that there is a method for setting ping slot periodicity without knowing stack details (which the app should not know): LoRaMacClassBSetPingSlotInfo(int periodicity). However I do not see a parallel method for setting multicast periodicity. (The closest is LoRaMacClassBSetMulticastPeriodicity(MulticastCtx_t *), which requires knowledge of stack internals as MulticastCtx_t *).
I would expect something like the following in application code:

if (LmHandlerParams.DefaultClass == CLASS_B) {
    LoRaMacClassBSetPingSlotInfo(pingPeriodicity); // which exists
    LoRaMacClassBSetMulticastSlotInfo(multicastPeriodicity);  // which does not
}

Thoughts or suggestions? Thank you!