【zigbee】开启及清除NV_RESTORE信息的方法
2016-02-08 15:42
441 查看
1、NV_RESTORE宏的作用
问:coo和终端都已经组网成功1、这时将coo断电,又一次上电,组网后终端的短地址是否不变?
2、这时终端断电,又一次上电,组网后终端的短地址是否不变?
3、这时COO和终端都断电,又一次上电。组网后终端的短地址是否不变?
答:分两种情况来看 开启NV_RESTORE和不开启NV_RESTORE
1) 开启NV_RESTORE
1, 不变
2。不变
3,不变
2)不开启NV_RESTORE
1, 变化
2,不变
3,变化
2、增加NV_RESTORE编译选项
这个选项能够帮助终端在重新启动后也还会连上一次连接的协调器。获取到的短地址仍然不变化。开启的方法也非常easy在宏定义中定义NC_RESTORE=1就可以
3、清除NV_RESTORE保存的信息
增加这个宏定义优点肯定是有的。可是问题也来了,假设终端想增加别的协调器网络,既是PANID和频道都一样。无论重新启动多少次都不会增加新的协调器中。那该怎么办呢?
事实上TI考虑到这个问题了,以下是官方的说明
application wants to delete the stored NV information It just needs to set the ZCD_NV_STARTUP_OPTION as explained below and do a reset.
"If the application would like to force a "new" join, the application should set the ZCD_STARTOPT_DEFAULT_NETWORK_STATE bit in the ZCD_NV_STARTUP_OPTION NV item before calling this function. "New" join means to not restore the network state of the
device. Use zgWriteStartupOptions() to set these options
[zgWriteStartupOptions(ZG_STARTUP_SET, ZCD_STARTOPT_DEFAULT_NETWORK_STATE);]
zGlobals.c中有这两个函数,第二个就是上面所用的函数
uint8 zgReadStartupOptions( void ) //启动时读取ZCD_NV_STARTUP_OPTION的值
uint8 zgWriteStartupOptions( uint8 action, uint8 bitOptions ) //改动ZCD_NV_STARTUP_OPTION的值
总结:
本文仅抛砖引玉。希望大牛们提出很多其它的见解和方法,共享技术,共同进步!
相关文章推荐
- 垃圾回收机制和数据结构栈链表
- 1012. 数字分类
- 体系结构复习2——指令级并行(分支预測和VLIW)
- [bzoj3203][Sdoi2013]保护出题人
- hdu1789 Doing Homework again(贪心)
- 3.1、随机森林之随机森林实例
- hust 1626 Cutting rope 概率论
- python小白-day5 json&pickle
- HBase数据存储格式
- 借助shared_ptr实现copy-on-write以提高多线程并发性能
- List集合去重的一种方法
- ubuntu tftp服务器安装
- mac上storm standalone安装
- jdbc
- Android图像单位转换
- WMI技术介绍和应用——Event Consumer Provider
- mysql
- 炉石传说斩杀计算器-Android
- 广告
- java 双向链表实现序列