首页 | 新闻 | 新品 | 文库 | 方案 | 视频 | 下载 | 商城 | 开发板 | 数据中心 | 座谈新版 | 培训 | 工具 | 博客 | 论坛 | 百科 | GEC | 活动 | 主题月 | 电子展
返回列表 回复 发帖

zigbee终端节点问题!

如果coord和router都设置NV_RESTORE保存相关信息,我试过了。这样的话,假设现在所有router都开着并已经加入了coord的网络,然后关掉coord,这时候任何一个router在复位后都无法重新加入到其他router的网络,因为他的NV中保存了coord的信息,他只加入coord的网络。
abc
这样当网络很大的时候,节点很多的时候。只要有一个router死机,话故障的话,直接关联在他下面的所有节点就都没法再加入网络了,岂不是损失一大片。但是如果不设置NV的话,虽然可以随时关联到不同的router,可短地址就会变化,可能会造成短地址重复,使得通信混乱。这样有什么两全气煤的方法吗?
abc
我用的是Z-Stack协议栈,当在编译router的选项里加NV_RESTORE后,烧到板子上后,开机第一次关联到那个设备就保存下来了,如果被关联的设备关掉,重启router,他就关联不到其他设备上了。(我是看Led3没有亮得出的结论)。如果不加NV_RESTORE编译的话是可以关联到其他设备下面,但是假设他下面还有子节点,那么他的子节点的信息就都没了。
但是如果coord或router都不加NV_RESTORE编译的话,那么当coord重启后,原来关联在他下面的设备信息都丢失了,接下来再有新的设备加入coord,coord就会重新分配短地址,这样不是会和先前关联到coord的设备的短地址重复吗。(这个试验我也做过,结果是,coord发给一台设备,短地址相同的两台设备都会收到数据)
所以想找一个可以同时解决这两个问题的方法。
abc
当后加入网络的route会保存前面设备的信息到路由表中,这样不是越是后加入网络的,保存的路由信息越全吗?有没有可以在所以设备加入网络后,刷新路由表的函数啊?好像找不到啊
abc
非常感谢你的解答!但是我在nwk_globals.c中看到了路由表的数组// Routing table
rtgEntry_t rtgTable[MAX_RTG_ENTRIES];我在router加入网络后,把这个数组打出到串口看时,发现都是0xFF 0xFE 0xFF 0xFE 0x00 0x00,对应的数据结构是uint16 dstAddress;
uint16 nextHopAddress; byte expiryTime; byte status;好像没有下一跳的地址信息嘛。对这个路由表的操作应该也在库里进行的吧。
abc
返回列表