你好,我目前遇到的情况是coordinator 和 router 距离过远以致通讯断开,距离靠近后等待10分钟以上通讯依旧无法恢复
我的环境如下
CC2530, Z-Stack 2.5.1a, 代码是基于SerialApp修改的,改动幅度很小 。
判断通讯正常与否是看AF_DataRequest的返回,暂时还没用sniffer抓包
请问这是什么问题呢?有没有相应的API可以检测通讯是否断开或者尝试恢复通讯?
谢谢了!
VV:
距离远,没有收到ACK,多次尝试发送失败,认为离开了网络,不停的在请求入网。
你的coordinator是否允许加设备呢,抓包看下吧。
Shanshan Ouyang:
回复 VV:
抓包了,没有不允许加设备,情况是这样的
情景:从coordinator unicast 发送包到 router,每两秒一次,每次4bytes(四个字符0),算上sequence number的话是5个bytes, 然后router远离coordinator直至失去通讯,然后再回到coordinator旁。
抓包显示的是,失去通讯前,信号质量变不好的时候,coordinator有重发包(应用层的重发),获取ACK后发送下一个包,在失去通讯之后,coordinator重发了几次包后就再没发出包,只有正常广播的beacon。当router靠经coordinator后有响应coordinator的beacon,router网络地址未改变, 无数据包从coordinator的应用层发出。
我试了broadcast, 情况是一样的。
抓包的log上传附件了,你可以看看,谢谢了!