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编译选项

这个选项可以帮助终端在重启后也还会连上一次连接的协调器,获取到的短地址仍然不变化。开启的方法也很简单

在宏定义中定义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的值

总结:

本文仅抛砖引玉,希望大牛们提出更多的见解和方法,共享技术,共同进步!

NV_INIT保存在nv的内容主要是网络或者节点的配置参数,在节点运行中这些参数很少变化或者几乎不会有变化。NV_INIT选项保存的所有参数可以在结构体zgItemTable中查看到。 NV_RESTORE选项保存的内容主要是节点运行过程中的状态量,借助这个特性,节点在掉电或者复位之后不需要无线电通讯就可以恢复到之前的网络连接状态。NV_RESTORE保存的内容主要有网络层数据库NIB、设备关联表、绑定表、路由表等。



开启及清除NV_RESTORE信息的方法相关推荐

  1. 【zigbee】开启及清除NV_RESTORE信息的方法

    1.NV_RESTORE宏的作用 问:coo和终端都已经组网成功 1.这时将coo断电,重新上电,组网后终端的短地址是否不变? 2.这时终端断电,重新上电,组网后终端的短地址是否不变? 3.这时COO ...

  2. 跨页面清除Cookie信息

    跨页面清除Cookie信息 跨页面清除Cookie信息 解决方法 跨页面清除Cookie信息 最近做到了个简单的小功能,记录在cookie里的信息需要清除,Cookie信息在A页面记录,然后去B页面可 ...

  3. oppo手机工程模式清除数据需要密码_「MIUI玩机技巧27」如何快速查询和清除电池信息...

    作为安卓手机的用户,不知道你现在的手机的电量使用如何?是不是感觉到手机电量掉的很快?现在智能手机耗电量确实很大,在正常时间的情况下,好像都是不到一天就没电了?好一点的情况一天一充,我基本上都是一天充电 ...

  4. php获取当前设备,Linux_在Linux系统中使用lsblk和blkid显示设备信息的方法,今天我们将会向你展示如何使 - phpStudy...

    在Linux系统中使用lsblk和blkid显示设备信息的方法 今天我们将会向你展示如何使用 lsblk 和 blkid 工具来查找关于块设备的信息,我们使用的是一台安装了 CentOS 7.0 的机 ...

  5. PHP网站开启gzip压缩,php中开启gzip压缩的2种方法代码

    Gzip网页压缩可以大幅度提升网站访问速度,对于网站在国外的站来说,这是必不可少的一步,提升网页打开速度非常明显,现在我们就系统的来认识一下这个Gzip的庐山真面目. 一.何为GZIP GZIP概念 ...

  6. Oracle+ASM单机环境下,开启归档的最简单的方法

    在ASM单机环境下,开启归档的最简单的方法. 环境:oracle11g  11.2.0.4 登陆sqlplus [oracle@udevasm ~]$ sqlplus / as sysdba SQL* ...

  7. oracle数据库listener开启和关闭trace文件的方法

    linux下监听文件listener.ora在哪 一般在 $ORACLE_HOME/network/admin下面 可以用find 命令找一下:find $ORACLE_BASE -name list ...

  8. android动态获取地理位置权限,Android6.0获取GPS定位和获取位置权限和位置信息的方法...

    1.添加权限--6.0之后要动态获取,下面会说 2.直接上代码,不多说,代码中注释很详细. private static final int BAIDU_READ_PHONE_STATE = 100; ...

  9. mysql 开启 slow log,mysql 5.5 开启慢日志slow log的方法(log_slow_queries)

    mysql 5.5 开启慢日志slow log的方法(log_slow_queries) 1.MySQL 5.5命令行里面 复制代码 代码如下: set global log_slow_queries ...

最新文章

  1. Delphi7 (第二天:结构及常用函数)
  2. 吴恩达机器学习(第三章)——线性代数回顾
  3. 虚拟机上的ubuntu安装vmware tools
  4. 微信小程序php get_php处理微信小程序request请求
  5. Linux下数据传输安全与加密
  6. Effective Java(二)—— 循环与 StringBuilder
  7. C++::My Effective C++ (二)
  8. matlab分析xml文件_如何在Java中读取XML文件(DOM分析器)
  9. .net framework3.5新特性1:Lambda表达式
  10. 如何断点调试Tomcat源码
  11. .net将html转换PDF
  12. 0018-大数据售前的中年危机
  13. 你们刚开始是怎么看英文文献的?
  14. roboware studio教程_RoboWare-Studio
  15. JAVA实现出题团队
  16. 第5期-通过飞卢小说网爬取小说
  17. win10系统如何关闭服务器,win10命令关闭服务器该怎么操作关闭?
  18. 海思移植Live555
  19. linux基金会认证考试,Linux基金会宣布新的Linux认证计划-嵌入式系统-与非网
  20. opencv中CV_IMAGE_ELEM的用法读取每个像素

热门文章

  1. video.js插件播放hls、rtmp
  2. linux配置防火墙白名单(限制某个IP段)
  3. 出现错误(已解决)RuntimeError: CUDA error: no kernel image is available for execution on the device CUDA ker
  4. java 防渗透_火焰 对于 () 相当于墨汁对于()A.冰冷 洁白B.温暖 黝黑C.氧气 砚台D.光明 黑暗...
  5. 为什么你在公司说话没分量,得不到别人的重视?
  6. 在MarkDown中插入本地图片
  7. ubuntu 16.04执行apt-get update失败卡住的解决方法
  8. 联想A800新蜂ROM V1.1 基于官方4.0.4精简省电稳定
  9. html中字的属性设置,html怎么设置字体属性
  10. 51单片机定时器(T0/T1)的使用与配置流程