iotedge-lorawan-starterkit
iotedge-lorawan-starterkit copied to clipboard
Synchronize device initialization
When a LoRaDevice
instance is created, it is initialized in a second step by loading its twin information before being placed into the cache for others to discover and use. While waiting for the twin information, it is possible for another request to start initialization of another LoRaDevice
for the same DevEUI. For example, suppose the device cache of an LNS is empty and a join request for an OTAA device starts that initialization of the LoRaDevice
. During this time, an uplink message arrives from an ABP device. The LNS will search for all devices belonging to the DevAddr of the data frame. If the search returns the device with the same DevEUI as the OTAA device, then a second LoRaDevice
instance will be created (assuming the device is still not in the cache) and initialized from its twin.