芯片:CC2530
协议栈:HA1.2.2a
网络结构:协调器1个,终端一个。
问题复现:①协调器掉电后,唤醒终端,终端发现掉线后发出Orphan Notification(抓包数据中第4行开始到第26行休眠)。
②协调器依然掉电,等待几分钟再次唤醒终端,终端发出beacon request (抓包数据中第237行,然后休眠)。
③等待较长时间后,再唤醒终端,终端直接发出了data request,自此协调器上电也无法恢复网络了,只有重新上电终端才可以(抓包数据中第601行)
问题描述:①请问为何终端一开始发出的是beacon request,长时间休眠后却变成了data request。(中间保持深度休眠,无其他操作)
②经过测试发出beacon request,终端是可以rejoin的方式恢复网络。发出data request 却没办法恢复网络。
终端无法恢复入网.zip
Viki Shi:
如果REJOIN_POLL_RATE设置的长,REJOIN_SCAN设置得短,导致在Rejoin的时候,刚好切换到back off的状态,就可能会出现此问题,详细解释请看:e2echina.ti.com/…/149010
user5032796:
回复 Viki Shi:
抱歉,回复的有些迟。
在程序中,没有对这三项进行更改过。
-DREJOIN_POLL_RATE=440
-DREJOIN_BACKOFF=900000
-DREJOIN_SCAN=900000
休眠也仅是调用了:
NLME_SetPollRate( 0 );
NLME_SetQueuedPollRate( 0);
NLME_SetResponseRate( 0 );
ZDApp_StopJoiningCycle();
唤醒调用了:ZDApp_StartJoiningCycle();NLME_SetPollRate( 200);NLME_SetQueuedPollRate( 100);NLME_SetResponseRate( 100);
感觉和您链接中的问题不太一致。
Viki Shi:
回复 user5032796:
1、此现象的出现频次
2、permit join是否打开?
user5032796:
回复 Viki Shi:
1.基本上每次都会出现,但是无法分辨间隔多久,有时候半个小时,有时候几个小时。
2.Perimit Join 是关闭的,只有入网的时候才手动打开。
Viki Shi:
回复 user5032796:
需要点时间研究一下,后续再来回复
Viki Shi:
回复 user5032796:
跟同事讨论了一下,暂时不清楚为何会发送data request 。请问此问题用TI例程是否能复现?【确保定义NV_RESTORE并调试ZDApp.c以确定设备状态和具体操作】
user5032796:
回复 Viki Shi:
后续我会继续用TI例程测试这个问题,有什么进展我会及时反馈。谢谢您的帮助。
Viki Shi:
回复 user5032796:
好的