我们发现我们的器件节点存在一个相当难调试(难以重现)的问题。
有时、网络中的设备会完全断开与网关的连接。 该器件仍具有响应能力(对传感器输入做出反应)、但 我们无法通过网络获取任何数据。
由于它只会在一段时间(甚至几周)内发生一次、 因此调试是非常不可能的、因为您永远不知道网络中哪个器件会发生故障(网络中大多数为20-30个器件)。 复位器件是退出此模式的唯一方法、然后它再次正常工作。
现在、我今天尝试使用卡在该"模式"中的器件时、使用监听器查看网络流量、发现它仍在发送数据、但具有"无效"目标 PAN (0xFFFF)和无效短地址(0xFFFF)。 目的地本身仍然正确。 (请参阅 Wireshark 的屏幕截图)。 在发生这种情况之前、这些值当然是正确的(0x6833和0x0001)。
因此、它看起来像是 MAC 层或传感器应用程序释放了目标 PAN 和短地址的值。
我们的应用基于 具有 SDK5.10的 DMM 传感器 OAD、但 SDK4.30也是如此。
是否有人建议设备为什么可以"丢失"关联数据?
我在代码中找到的唯一两个设置了这些值的位置是:disassocCnfCb 和 disassocIndCb、但此时所有数据都会被复位、然后目标地址也会被清除、但情况并非如此。