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就可以

watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvamsxMTAzMzM=/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast" alt="">

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的值

总结:

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



【zigbee】开启及清除NV_RESTORE信息的方法的更多相关文章

  1. 前端开发JavaScript清除浏览器缓存的方法

    查看和删除浏览器缓存的方法=====>打开 最近在开发项目中发现有时候总要频繁地清除浏览器缓存,不然总是显示的过时的信息 浏览器缓存有利有弊,有些数据需要缓存下来使得页面打开更快提高网站性能,但 ...

  2. DEDECMS开启邮箱验证通知的解决方法

    [摘要]织梦CMS是开源内容管理系统,是国内开源CMS的领先品牌,目前程序安装量已达七十万,本文介绍DEDECMS会员注册时,开启邮箱验证通知的解决方法. 在论坛上看到很多人都说这个功能没用,邮箱根本 ...

  3. mysql开启GTID跳过错误的方法【转】

    1.数据库版本 MySQL> select version()    -> ;+-------------------------------------------+| version( ...

  4. PHP版微信第三方实现一键登录及获取用户信息的方法

    本文实例讲述了PHP版微信第三方实现一键登录及获取用户信息的方法.分享给大家供大家参考,具体如下: 注意,要使用微信在第三方网页登录是需要“服务号”才可以哦,所以必须到官方申请. 一开始你需要进入微信 ...

  5. JS清除选择内容的方法

    本文实例讲述了JS清除选择内容的方法.分享给大家供大家参考.具体分析如下: 今天在做一个DIV拖动的效果,发现在拖动的时候会选中页面中的文本,于是找了一下JS清除选择的内容的相关信息. 在得到的结果中 ...

  6. 痞子衡嵌入式:在IAR开发环境下为工程开启CRC完整性校验功能的方法

    大家好,我是痞子衡,是正经搞技术的痞子.今天痞子衡给大家分享的是在IAR开发环境下为工程开启CRC完整性校验功能的方法. CRC校验在嵌入式领域里的应用非常广,比如在通信领域,CRC检验值可以作为数据 ...

  7. SQL Server 2008 R2:快速清除日志文件的方法

    本例,快速清理“students”数据库的日志,清理后日志文件不足1M. USE [master] GO ALTER DATABASE students SET RECOVERY SIMPLE WIT ...

  8. SQL Server 2000:快速清除日志文件的方法

    通过文章 SQL Server中“数据收缩”详解 和 SQLServer删除log文件和清空日志的方法 可以整理出一种快速删除数据库日志的方法,即 第一步:清空日志文件里的数据: 第二步:收缩日志文件 ...

  9. JavaScript获取客户端计算机硬件及系统等信息的方法

    JavaScript获取客户端计算机硬件及系统等信息的方法 JavaScript 获取客户端计算机硬件及系统信息 通过WMI来实现获取客户端计算机硬件及系统信息: function getSysInf ...

随机推荐

  1. SparkContext主构造函数代码提取

    这是阅读sparkContext类的代码做的一个笔记.阅读这个类的时候,主要的任务就是搞清楚sparkContext是怎么构造的,java.C#的class的初始化都是放在一个方法中的,而scala的 ...

  2. tomcat环境变量的配置(网上摘,全部验证通过)

    tomcat环境变量的配置   1.===> 进入bin目录下,双击startup.bat看是否报错.一般肯定会报. 2.===> 右键我的电脑===>高级===>环境变量   ...

  3. Clojure学习03:数据结构(集合)

    Clojure提供了几种强大的数据结构(集合) 一.集合种类 1.vector 相当于数组,如: [2  3   5]  ,  ["ad"  "adas"  & ...

  4. java--局部类只能访问外包方法的final局部成员

    class B523{ // private int k = 10; public void go(int x, final int y){ // int a = x+y; final int b = ...

  5. DockerCon 2016

    DockerCon 2016 – 微软带来了什么?   根据Forrester的调查,接近半数的企业CIO在考虑IT架构的时候更乐于接受开源方案,这主要是基于低成本,避免供应商锁定和敏捷的需求:同时另 ...

  6. QtSoap调用Web Service(QtSoap是非官方应用)

    今天学习如何用QtSoap访问Web Service服务.这里调用的是查询QQ在线状态的服务qqOnlineWebService.调用的几个步骤: 1.创建QtSoapMessage对象 messag ...

  7. mysql启动的四种方式

    mysql的四种启动方式: .mysqld 启动mysql服务器:./mysqld --defaults-file=/etc/my.cnf --user=root 客户端连接: mysql --def ...

  8. -F, --flush-logs

    <pre name="code" class="html"> -F, --flush-logs Flush logs file in server ...

  9. LoadRunner脚本增强

    1.检查点 web_find() 和web_reg_find() 2.Block技术 如果对不同的事物进行不同次数的循环该怎么处理?默认情况下LoadRunner对所有的事物都是统一执行的,即虽然有多 ...

  10. Hadoop源代码导入Eclipse

    须要进一步学习hadoop.须要看看内部源代码实现.因此须要将hadoop源代码导入都eclipse中,简单总结一下,详细过程例如以下: 首先确保已经安装了git.maven3.protobuf2.5 ...