TI中文支持网
TI专业的中文技术问题搜集分享网站

网络状态重置咨询

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;这句怎么写?

赞(0)
未经允许不得转载:TI中文支持网 » 网络状态重置咨询
分享到: 更多 (0)