终端设备 + 协调器。
协议栈 1.2.2a。
ZC 始终开启允许入网,仅增加白名单限制。
ZED 入网后,发送若干 data request,然后手动把 ZC 下电,等到 ZED 发送完 MAX_POLL_FAILURE_RETRIES 轮 data request 和 ophan request 后,把 ZC 重新上电,观察 rejoin 情况。
ZED 发送 3 个 beacon request 都得到父节点 ZC 的 payload 后,发送 rejoin request。
但此时并没有收到 ZC 的 rejoin response,导致 ZED 不断发送 beacon request 和 rejoin request,最终也无法重连成功。
同时,在 ZDO_NETWORK_INIT 事件中原本增加了仅允许进行 9 轮调用 ZDO_StartDevice() 的限制也失效了,程序不断在发送 beacon request。
希望能获得思路。
rejoin.psd
gaoyang9992006:
重新上电后ZC的网络参数是不是被随机生成了。之前有没有主动设置初始化网络的参数。网络的ID相关参数是不是没有指定,导致重新上电后自动分配的,跟ZED里面的不一致了,所以一直连接不上。
Makoto Loeng:
回复 gaoyang9992006:
ZC 的信道和 panid 都和下电前相同,使能了 NV_RESTORE,失能了 HOLD_AUTO_START。
Makoto Loeng:
回复 gaoyang9992006:
测试发现发送 orphan notification 后有 coordinator realignment,同时也有 ack 回应,ZED 进入 ZDO_JoinConfirmCB(),但此时的 status 为 0xEA(不知道这个这个状态的含义)而不是 ZSUCCESS,失败切换为 MODE_REJOIN。
Makoto Loeng:
回复 Alvin Chen:
按错了,这不是确认答案。
Makoto Loeng:
回复 Alvin Chen:
我使用过去做的的 2.5.1 下的 ZED 接入到这个白名单 ZC 下是有效重连的。coordinator realignment 之后 ZED 相应了一个应用层数据包,ZC 也回复了相同的应用层内容(这部分不是我的程序做的)。
1.2.2a 的 ZED 更换为原版 ZDApp 和 ZDObject 也是无法完成重连。coordinator realignment 之后 ZED 仍是发送多次 beacon request。
Alvin Chen:
回复 Makoto Loeng:
这我帮不了你,建议你不要替换SDK里面的文件,你重新安装SDK用我们Demo试一下,你所的那个部分程序,你最好咨询做那个code 人。
Makoto Loeng:
回复 Alvin Chen:
这段应用层消息似乎是协议栈自带的。
Makoto Loeng:
回复 Alvin Chen:
使用原版协议栈,仅修改了 poll rate 和信道,问题依旧。
re.psd