问题描述:
1. 协调器、路由器、终端预编译了NV_RESTORE=1和NV_INIT;协调器、路由器禁止未经认证的设备入网。
2. 路由器与终端每隔10秒发一次心跳包给协调器,协调器在一段时间内没有收到心跳包,将会清除相应的设备;程序如下:
......
AddrMgrEntry_t addrEntry;
NLME_LeaveReq_t req;
// Set up device info
addrEntry.user = ADDRMGR_USER_DEFAULT;
addrEntry.index = index;
if (AddrMgrEntryGet( &addrEntry ))
{
req.extAddr = addrEntry.extAddr;
req.removeChildren = TRUE;
req.rejoin = TRUE;
req.silent = FALSE;
NLME_LeaveReq( &req );
AssocRemove(addrEntry.extAddr);
......
3. 遇到的问题
路由器或终端在运行相当长一段时间之后,或者在随意上电重启后,会出现路由器或终端无法加入网络;是随机出现的了,不定时不定点出现。重启等也无法加入网络,只有协调器按下按键,调用NLME_PermitJoiningRequest(10)之后,出问题的设备才能重新加入网络
4. 抓包发现有问题的路由器或终端没有发出"Orphan notification"数据包
5. 总结:现在还不知道是因为协调器没有收到心跳包将设备移除,还是其它原因导致的了。
请TI工程师和各位高手指点迷津了!谢谢!