我设置终端信道为
-DDEFAULT_CHANLIST=0x00100000
协议栈为 MESH 1.0.0。
开启了
NV_RESTORE
NV_INIT
协调器断电之后,再次上电终端设备无法从新入网。但是如果我按复位键,从新启动终端设备,终端确可以迅速加入网络。
这里怀疑是因为我在协调器上使用了 NLME_PermitJoiningRequest(0x00)函数导致的,但是我开了NV,并且终端已经入网成功过,为怎么还会出现无法入网的情况。而且终端设备重启却可以正常入网。
Viki Shi:
NLME_PermitJoiningRequest只会禁止新入网的设备,已经入网过的设备不会被阻止。
断电重启跟reset的区别是,reset复位,有些急村级或者ram区的数据不会被清除,而断电重启是清除所有。一般来说,双方都开启NV_RESTORE,断电重启是可以正常恢复网络的。这里有个条件,代码在起作用之前需要CPU的各模块都ready,如果断电后没有做好上电复位工作,有可能出现你说的情况
qi yang:
回复 Viki Shi:
终端在已经加入协调器网络后,在协调器开启了,NLME_PermitJoiningRequest(0xff);限制新设备加入网络
终端设备始终通电。断开协调器一段时间后,过(N个小时)再次开启协调器,终端无法入网。
NV_INITNV_RESTORE
都开启了。PANID始终没变,终端设备devState 是 2(通过液晶显示)。
在上一次出现这种问题时,我开启协调器NLME_PermitJoiningRequest(0x00),之后设备可以正确入网。
出现这种情况一般是什么原因那?
我在终端设备上还应该把什么参数显示出来,作为判断那?
fly sun:
回复 qi yang:
我的终端始终加入不了协调器,用的2.5的sampleapp,单步调试状态一直是DEV_NWK_DISC,是什么原因呢
qi yang:
回复 fly sun:
有可能的情况太多了啊。你用同一个工程下的协调器和终端,开erase flash下载后实施。