“线程:CC2530, Z 堆栈”中讨论的其它部件
大家好,
我需要了解 ZigBee 网络在 信号较弱的设备(大量失败消息)上的默认行为。
假设您有一台电池供电的困倦设备,每小时报告一次,每10秒自动轮询一次。
根据我的经验,当设备靠近协调器且没有通信故障时,一切都正常。
但当我将设备移到信号覆盖不良的位置 时,我会出现以下行为:
-终端设备能够向协调人报告。 可能会发生某些报告未送达的情况,例如,即使一小时后的报告未送达,协调员也会接受下一个2小时后的报告。
-设备每隔10秒轮询一次新消息。 协调员被设置为在30秒后使消息过期。 因此,当协调员试图将消息传送到终端设备,但传送失败时,可能 当这种情况多次发生时,协调员决定忽略此类终端设备。 发生这种情况时,即使终端设备被移动到更好的位置,协调员仍拒绝向终端设备发送任何内容。 另一方面,协调人可以毫无问题地接收来自设备的报告。 唯一有帮助的是重新启动终端设备,所有设备都开始工作(我不确定 为什么-重新加入?)
因此,我不知道在这种情况下会发生什么。
-协调员是否会在发生一些故障后从邻居列表中删除此类有问题的设备?
-有什么办法可以防止这种行为?
-终端设备和/或协调员是否可以配置任何内容?
我使用 cc2652R 和 zigbee2mqtt 作为协调器,例如 CC2530作为一个安静的终端设备,带有 z-stack1.2,带轮询间隔10秒的 Nwk_auto_polling。 电源管理设置为电池和省电设置。
但我也注意到一些商业终端设备的这种行为。
在我看来,当协调人遇到一些通信故障时,它会从邻居列表中删除终端设备,然后再也不会尝试向其发送任何内容。 只有当终端设备重新连接网络(例如,取出的电池)时,它才会刷新表,并再次能够与设备通信。
我能做些什么来强制协调员不要放弃某些设备,即使存在临时通信问题?
谢谢你。