嗨、大家好:
我们使用15.4协议栈收集器和传感器模式、将在现场使用多个收集器。 同时、我们需要将指定的传感器连接到指定的收集器、例如:
排序器1:[sensor1、sensor2]
排序器2:[sensor3. Sensor4]
我当前的实现方法是在收集器中维护白名单集合并在收集器的 assocIndCb()回调函数中进行判断。 如果它不符合白名单,将不会给予答复。 但在我们的现场、收集器只有在上电后收到 UART 发送的白名单数据后才知道其白名单数据、这可能会导致一些问题:
在首次尝试通过 Sensor3连接到收集器1后、如果收集器1未响应、Sensor3将继续尝试重新连接、不会尝试连接到收集器2。 无法指定 Sensor3首次连接到 Collector1还是 collector2
2.在传感器3第一次尝试连接到指定的收集器1后,收集器1返回 ApiMac-assocStatus_panAccess Denied,因此传感器根本不会尝试连接到收集器1。 如果收集器已通电且尚未收到白名单数据、则传感器在被拒绝后不会尝试再次连接到收集器1和收集器2、并且此时会永久睡眠
3.同步白名单数据( COLLECTOR-OPEN-NWK-EVT 事件)后,即使打开 Collector1和 collector2的开关,也会造成上述1的问题。 如果我通过返回 ApiMac-assocStatus_panAccess Denied 来拒绝白名单外部的传感器连接、 然后、如果在客户使用站点中途添加了传感器5节点、并且两个收集器拒绝一次、即使稍后重新同步白名单、传感器节点也不会尝试加入收集器1和收集器2
应如何重新设计白名单机制?


