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. linq中的临时变量

    有一个字符串数组: string[]arrStr={"123","234","345","456"}; 现在想得到该数组 ...

  2. 【Maven】pom.xml 配置 eclipse错误

    <!-- servlet --> <dependency> <groupId>javax.servlet</groupId> <artifactI ...

  3. ZOJ 2856 Happy Life 暴力求解

    因为是Special Judge 的题目,只要输出正确答案即可,不唯一 暴力力求解, 只要每次改变 happiness 值为负的人的符号即可. 如果计算出当前人的 happiness 值为负,那么将其 ...

  4. Windows Phone 8初学者开发—第18部分:在页面间导航

    原文 Windows Phone 8初学者开发—第18部分:在页面间导航 原文地址:  http://channel9.msdn.com/Series/Windows-Phone-8-Developm ...

  5. docker学习笔记:修改无法启动的容器中的内容

    我们可能会碰到这样的一个问题,在容器执行过程中,修改了容器的内容(如配置文件信息),但因为修改出了问题.导致容器关闭后,无法启动. 这事需要重新修改配置文件. 正常情况下可以通过 docker exe ...

  6. nginx记录响应与POST请求日志

    生产环境中的某些api出现故障,但是问题无法重现,但是又很想解决掉问题以及我们新项目上线,需要跟踪请求与响应的信息,可以预先找到一些bug,减少大面积的损失. 安装nginx与ngx_lua 响应日志 ...

  7. 执行Git命令时出现 SSL certificate problem 的解决办法

    比如我在windows下用git clone gitURL 就提示  SSL certificate problem: self signed certificate 这种问题,在windows下出现 ...

  8. 同步机制Lock初学(转)

    前段时间review同事的代码,发现可以简化成如下的模型: Thread 1 Thread 2 lock.lock(); condition.await(); lock.unlock() lock.l ...

  9. ubuntu rpm 包安装使用

    ubuntu安装rpm的方法RED HAT系列用rpm包安装软件,Debian系列得用deb包.毕竟red hat历史悠久,有很多rpm软件包还未对应deb格式.(对应的地方现在是越来越多)在网上找了 ...

  10. poj3308 Paratroopers --- 最小点权覆盖-&gt;最小割

    题目是一个非常明显的二分图带权匹配模型, 加入源点到nx建边,ny到汇点建边,(nx.ny)=inf建边.求最小割既得最小点权覆盖. 在本题中因为求的是乘积,所以先所有取log转换为加法,最后再乘方回 ...