芯片:CC2530
协议栈:Z-Stacl 2.5.1a
现象描述:协调器A和协调器B分别位于不同楼层,开机建网;终端A在协调器A范围开机,顺利入网,协调器A可以正常收到终端A的数据;将终端A移动到协调器B的范围,终端A已经失去和协调器A的连接,此时发现终端A不停的尝试连接网络,但是协调器B始终没有把终端A连进来。
解决方法:在终端A代码中加一句尝试连接网络10次后调用SystemReset进行软件重启,终端A就可以连上协调器B了。
问题:终端A切换协调器区域是协议栈不支持吗?上述软件复位的解决方案是不是最优方案?
Viki Shi:
终端A是不是使能了NV_RESTORE?如果是,它会不断尝试加入原先的网络
user6008379:
回复 Viki Shi:
终端没有使能NV_RESTORE,协调器使能了NV_RESTORE
user6008379:
回复 user6008379:
如果终端使能了NV_RESTORE,就算SystemReset后,还是会尝试加入原来的网络的,因为nv不会被软件复位给清掉的啊。
Viki Shi:
回复 user6008379:
终端入网后,里面保存了网络的信息,会一直尝试rejoin。因此需要复位后才能加入网络,你的做法就是加入其他网络的解决方案
user6008379:
回复 Viki Shi:
但是我的终端程序没有使能NV_RESTORE,确认过几次