Tool/software: TI-RTOS
Hey guys,
to allow sensors to join another network if their collector is exchanged, I've implemented some kind of „auto disassociation“ in the jdllc.c file. Btw. I am using TI 15.4 Stack and my application is based on the sensor/collector zero project.
If the collector of the network disappears, the sensors will go into the orphan state. After 2 unsuccessful orphan scans, 3 functions will be called:
- Jdllc_sendDisassociationRequest();
- Util_setEvent(&Sensor_events, SENSOR_START_EVT);
- sendAssocReq();
This actually works quite well in most of the cases although I sometimes see strange behaviour.
- Sensors, which disassociated from an old network send a beacon request, which is followed by a beacon from the new collector, though no association is following. The sensor will send the beacon request not reacting on the beacon again and again indefinitely long… Only solution here is to flash the sensor again
- Sometimes the sensors join the new collector keeping their old short address, which was assigned to them by the old collector. By "keeping" I mean the new collector assignes the old short address although another one would be right.
- So I would like to know, if all the former information regarding the old network is deleted from the sensor (including its own old short address) if I call „jdllc_sendDisassociationRequest();“?
- If I don’t call „sendAssocReq()“ the sensor will continuously send „orphan notifications“. Why is that?
- Is there a better/more elegant way to proceed regarding the auot disassociation, to have more reliable and stable rejoin behavior?
- If a sensor disconnects and joins his old network again, he receives a new short address. How can I prevent that from happening? (because it fills up the list of devices in the network)
Kind regards
Slev1n