最近遇到个问题,在ZigBee网络中,当终端设备断电之后,发现不能再次加入网络。
看到飞比论坛上有朋友遇到过协调器断电之后再上电,终端设备不能入网的问题。其原因如下:
网络组好后,将协调器关掉,路由器是不会再加入到重新上电的协调器了。因为PANID不同,路由器已经是一个独立的网络(协调器创建网络后也是一个普通的协路由器了)。如果你再重新给协调器上电,PANID和路由器相同不能建立网络,只能在另一个PANID上建立网络,那么这两个设备就不是一个网络了,所以你一直开着的那个设备没有反应,因为他们已经不是一个网络里的了。
解决方法:加上NV-RESTORE编译选项。
由此得到一点启示,这个应该是和PAN ID及NV-RESTORE编译选项有关。
因此,拟解决的方法如下:
1、将PAN ID设置为固定值,加上NV-RESTORE编译选项,上电所有设备试验;
2、1方法不行,再断电路由设备单独试验终端,如若能加入,那么和路由设备有关联。
上述两个方法等待实验,再更新。。。
补充:NV_INIT和NV_RESTORE的区别
NV_INIT保存在nv的内容主要是网络或者节点的配置参数,在节点运行中这些参数很少变化或者几乎不会有变化。NV_INIT选项保存的所有参数可以在结构体zgItemTable中查看到。
NV_RESTORE选项保存的内容主要是节点运行过程中的状态量,借助这个特性,节点在掉电或者复位之后不需要无线电通讯就可以恢复到之前的网络连接状态。NV_RESTORE保存的内容主要有网络层数据库NIB、设备关联表、绑定表、路由表等。