zoukankan      html  css  js  c++  java
  • 【zigbee】开启及清除NV_RESTORE信息的方法

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


    总结:

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


    
  • 相关阅读:
    iOS NSProgress的使用
    GIT的 .gitignore 配置
    MagicalRecord入门教程
    CoreData的数据存储
    NSLog打印信息的从新设置
    大石头得博客
    exc_bad_access(code=1, address=0x789870)野指针错误
    oc 获取当前设备系统的版本号
    免证书真机调试脚本iphoneentitlements
    支持非arc
  • 原文地址:https://www.cnblogs.com/mengfanrong/p/5185030.html
Copyright © 2011-2022 走看看