1个协调器 7个不休眠节点 2个休眠节点都定义了NV_RESTORE 且初次联网限制联网,需要按按键。
情况是这样的:有部分信号不好的节点,运行两三天之后会断网,显示断网的LED灯正常一直闪烁,但是抓不到他发出的包。这时重启这个终端节点他也不会再执行搜网操作,因为保存在NV中的网络信息已经没有了,作为“新”设备等待按按键再搜网。
查看过协调器的连接表还有这个节点的信息,但是节点没有协调器的信息。通常终端节点运行两三天才会出现这个问题。
请问协议栈终端节点有断网太久或什么其他情况清除NV数据的逻辑吗?你觉得还有什么可能?
VV:
节点里面会有一个地方会触发从rejoin到join状态,在多次rejoin没有成功的情况下。
else { if ( devStartMode == MODE_RESUME ) { if ( ++retryCnt <= MAX_RESUME_RETRY ) { if ( _NIB.nwkPanId == 0xFFFF || _NIB.nwkPanId == INVALID_PAN_ID ) devStartMode = MODE_JOIN; else { devStartMode = MODE_REJOIN; _tmpRejoinState = true; } } // Do a normal join to the network after certain times of rejoin retries else if( AIB_apsUseInsecureJoin == true ) { devStartMode = MODE_JOIN; } }
xiaoming huang1:
回复 VV:
感谢您的回复!
就算是JOIN也会发送Beacon,而且重启后之后 devState = DEV_HODE 不会重连了,不能从NV中获得网络信息。
xiaoming huang1:
回复 xiaoming huang1:
就我自己出现过这种情况?