This thread has been locked.
If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.
After a collector reset, it will lose its information on connected devices. However, the sensor will still have these available.
If the power loss is to short for the sensor to notice that the collector was offline, it will not go to orphan state. As it still knows the network, it will be able to send messages to the collector.
The collector will receive the messages and acknowledge them on MAC-Layer.
However, as the sensor is not on the list of connected devices the Information will not be provided to the application.
As the sensor still receives acknowledgements. Thus, it will think that the connection is ongoing, even if communication is not possible.
How to handle this issue:
Knowing this problem helps you to solve it in multiple ways.
A possible tested solution for this issue is:
Adding
if (findDevice(&pPollInd->srcAddr) == NULL &&
pPollInd->srcAddr.addrMode == ApiMac_addrType_short)
{
Cllc_sendDisassociationRequest(addr.addr.shortAddr, false);
}
To the collectors polling Callback “pollIndCB(ApiMac_mlmePollInd_t *pPollInd) within the collector.c.
This causes the collector to send a dissociation request after receiving a message of an unkown device.
In sensor project on has to add
Util_setEvent(&Sensor_events, SENSOR_START_EVT);
to disassocIndCb() which can be found in jdllc.c
This will cause your sensor to restart the network. After receiving a disassociation request.