实验环境: 一个协调器A,一个路由器B作为终端节点
实验方法:协调器A每秒发送一次组播报文到路由器B,路由器\B收到报文后,立即回复报文到协调器A。
实验现象:通电后,连续通信1分钟左右,路由器无缘无故与协调器断开,跟踪路由器代码,发现主程序运行正常,但是,用户程序无论如何都不能捕捉协调器发送的报文,观察_NIB全局变量,网络状态显示为NWK_ROUTER,似乎也是正常的,就是无法联网,重启路由器后,又正常了,再过1分钟左右,重复出现上述故障现象,请问如何解决这个问题?不慎感谢!
YiKai Chen:
有抓包看看狀況嘛?
Viki Shi:
2.5.1的协议栈,是否可以换新版再进行测试?
user5117501:
回复 Viki Shi:
使用了Z-Stack_Home_1.2.2a协议栈。
YiKai Chen:
回复 user5117501:
有抓包看看?
user5117501:
回复 YiKai Chen:
20190115-测试数据1.psd
user5117501:
回复 user5117501:
上面是抓包的数据,当协调器发送0x89报文时,路由回复0xCC报文中的地址:Dest.Address=oxFFFF 、NWK Dest.Address=0xFFFC 不正确,后续的NWK link Status=0x08 不明白怎么回事?敬请赐教!
YiKai Chen:
回复 user5117501:
Dest.Address=0xFFFF是广播、建議你用单播
user5117501:
回复 YiKai Chen:
刚才仔细看了代码和抓包的数据,其实,协调器发送的就是单播数据,不是组播。问题是,为什么路由器会无缘无故的不接收OTA消息??仿真发现,路由器其它代码运行正常。
YiKai Chen:
回复 user5117501:
對,你的抓包的数据,协调器发送的都是单播数据,但是里面沒有看到任何OTA相關的数据
user5117501:
回复 user5117501:
今天分别做了两组实验,第一组:协调器组播发送,路由器收到后,单播回复给协调器。见抓包数据20190116-测试数据_组播1.psd20190116-测试数据_组播2.psd
第二组实验:协调器和路由器启动后,路由器向协调器注册,协调器收到路由器ARP注册后,建立ARP表,然后,每隔1秒向ARP表中的路由发送数据。抓包信息20190116-测试数据_单播1.psd20190116-测试数据_单播2.psd
故障现象:无论协调器使用组播还是单播,路由器在正常工作一段时间后,均从网络断开,无法继续收发数据,只能硬件重启。
敬请高手帮忙协查,不甚感激!