我用三个终端+1个协调器。协调器上电后绑定方式发送一次数据,给三个终端。
1、刚开始未进行绑定时,三个终端接收不到数据。正确
2、绑定后,协调器重启,三个终端能很快接收到数据。说明绑定表已经建立,并且存在了NV 中。
3、绑定顺序是协调器依此和终端1、2、3进行绑定。测试发现如果关闭终端1或2,协调器重启,终端3要过一段时间才能收到数据。
问题:
1、问题3是怎么回事?是因为绑定通信是按照绑定表依次通信,终端1、2断电后,协调器收不到反馈,尝试N次后,再给终端3发数据,导致了延迟么?
2、如果猜想对,该怎么解决?
Alvin Chen:
你的延时和绑定无关,请提供抓包文件。 通信延迟可以减小poll rate
Viki Shi:
绑定不会造成通信延迟,你的协调器是广播发送数据吗?
user4711142:
回复 Alvin Chen:
终端1、2、3现在已经和协调器绑定好了。重启协调器,间接方式发送一次数据。
1、终端1、2、3均上电时,三个终端很快接收到数据。
2、终端1断电,终端2、3上电时。终端2、3等待7秒左右才收到数据。
3、终端1、2断电,终端3上电。终端3等待14秒左右才收到数据。
4、终端1、2、3均上电。三个终端又是很快接收到数据。下面是抓包文件。终端1断电,终端2、3上电。
user4711142:
回复 user4711142:
绑定.psd
YiKai Chen:
回复 user4711142:
沒有看到抓包檔,不過推測因為终端1、2断电所以协调器发送数据失敗要retry才導致终端3等待14秒左右才收到数据
user4711142:
回复 YiKai Chen:
我推测也是这个问题,有没有好的办法解决这个问题?总共有5个终端+1个协调器
我想实现协调器上电后,发送命令给5个终端。然后5个终端发送数据给协调器。
协调器用广播的方式会导致有些终端接收不到。用绑定方式,又会出现上述问题。请问有没有好的建议?
Alvin Chen:
回复 user4711142:
2.5.1a 对吧,如果你不打算升级,你就用unicast,直接用单播发送,你就一个ZC多个ZED,直接在关联表里面挨个短地址发送。
user4711142:
回复 Alvin Chen:
3.0协议栈中解决了这个问题么?
YiKai Chen:
回复 user4711142:
應該沒有
Alvin Chen:
回复 user4711142:
你这个正常现象,但是3.0的child aging 会清掉掉线设备的,会有所优化。