Hi guys:
We use the 15.4 protocol stack collector and sensor mode, and we will have multiple collectors on site. At the same time, we need to connect the specified sensor to the specified collector, for example:
Collector1: [sensor1, sensor2]
Collector2: [sensor3. sensor4]
My current implementation method is to maintain a whitelist collection in the collector and make judgments in the assocIndCb() callback function of the collector. If it does not meet the whitelist, no reply will be given. However, in our field, the collector only knows its whitelist data after receiving the whitelist data sent from uart after powering on, which may cause some problems:
After the first attempt to connect to collector1 by Sensor3, if collector1 does not respond, Sensor3 will continue to try to reconnect and will not attempt to connect to collector2. It is not possible to specify whether Sensor3 connects to collector1 or collector2 for the first time
2. After the first attempt of sensor 3 to connect to the specified collector 1, collector 1 returns ApiMac-assocStatus_panAccess Denied, so the sensor will not attempt to connect to collector 1 at all. If the collector has been powered on and has not yet received whitelist data, the sensor will not attempt to connect to collector 1 and collector 2 again after being rejected, and will permanently sleep at this time
3. Even if I turn on the switches for collector1 and collector2 after synchronizing the whitelist data (COLLECTOR-OPEN-NWK-EVT event), it will still cause the issue with the aforementioned 1. If I reject sensor connections outside the whitelist by returning ApiMac-assocStatus_panAccess Denied, then if a sensor 5 node is added midway through the customer's usage site and is rejected by both collectors once, even if the whitelist is resynchronized later, the sensor node will not attempt to join collector1 and collector2
How should I redesign my whitelist mechanism?