home 1.2.2
情况:协调器断电时,终端会一直尝试加入,协调器再次上电,终端会加入
有时候会遇到,协调器再次上电时,终端不会加入,等1天以上也不加入,此时抓包,终端并没有发送入网请求,
此时只要把终端重启,终端即会立刻加入,说明终端之前在设备状态切换的时出问题了,
协议栈有没有这样一种功能,终端尝试一定时间仍然没有入网,则终端会自动把网络状态回到DEV_INIT状态
但是ZigBee芯片的IO的电平不能变化(可能此时IO控制灯,如果直接芯片重启,灯就会断电,体验不好),
只需要设备状态重置为DEV_INIT重新搜索网络加入,IO电平保持不变,有没有什么办法?
YiKai Chen:
终端尝试一定时间仍然没有入网,则终端会自动把网络状态回到DEV_INIT状态—>這個你可以自己在應用程序設計一個定時器去實踐
Alvin Chen:
请参考:
e2echina.ti.com/…/104629
user5367314:
回复 Alvin Chen:
在定时器里调用以下函数,是不是就可以从DEV_INIT状态开始了,而芯片本身不会复位,只是设备状态复位
if(TimeCount>MaxTime)
{
ZDApp_NetworkInit( 0 );
}
YiKai Chen:
回复 user5367314:
建議你先檢查是不是orphan狀態再調用ZDApp_NetworkInit( 0 )
user5367314:
回复 YiKai Chen:
终端掉线后调用ZDApp_NetworkInit( 0 )
抓包确实发了beacon,但是还是没有入网,
最后把协调器入网允许打开了,可以入网
但是之前终端和协调器都开启了NV,不知道为啥ZDApp_NetworkInit( 0 )后就无法加入协调器了
抓包如附件8078.入网失败.psd
user5367314:
回复 YiKai Chen:
对应终端来说,是检测一直在orphan状态下调用ZDApp_NetworkInit,
还是检测状态为非enddevice状态时就调用ZDApp_NetworkInit?
如果建议为前者,
这样就有个问题,会不会终端卡在既不是orphan状态又不是enddevice状态的其他状态?
YiKai Chen:
回复 user5367314:
有可能、所以你可以改成不是enddevice状态就作動
user5367314:
回复 YiKai Chen:
比如说协调器一直断电,终端并不知道,此时终端应该是一直在DEV_NWK_DISC和DEV_NWK_BACKOFF两者之前切换,
一段时间后,终端一直没有联网,我就让他重置网络了ZDApp_NetworkInit,
重置网络的时候要先把DevStartMode赋值再去调用ZDApp_NetworkInit吗?
如果要先赋值,请问赋什么?JOIN,REJOIN还是RESUME?
YiKai Chen:
回复 user5367314:
可以先把DevStartMode赋值為RESUME再去调用ZDApp_NetworkInit
user5367314:
回复 YiKai Chen:
1.对于2530
devStartMode = MODE_RESUME;ZDApp_NetworkInit( 0 );
2.对于2630,
devStartMode = MODE_RESUME;//???
Zstart_discovery();
2630里的devStartMode = MODE_RESUME;这句怎么写?
TI中文支持网