1.NLME_PermitJoiningRequest(0)  :(1)值0x00:表示禁止加入网络  (2)值0x01-0xFE:表示允许链接的秒数 (3) 值0xff:表示启用网络

同时此函数:是对于自己而言的只管本节点是否允许其他设备加入,管不了整个网络。所以多级组网或者设备很多的时候,不但协调器的Permit需要打开,下面Router的Permit也要打开,否则一旦设备和协调器之间无法直接通信,或者协调器直接挂载的设备数已经达到最大值,都会导致设备无法入网。同样,设备退网的时候,也需要将整个网络的Permit都关掉,不然的话,设备一退网,如果发入网请求的话,又会加回来,这就是有人说的设备退不了网的情况。(是让自己不允许其他设备加入,只是一个内部的操作,没有无线数据的交互)

2.

ZDP_MgmtPermitJoinReq:函数原型extern afStatus_t ZDP_MgmtPermitJoinReq( zAddrType_t *dstAddr,
                               byte duration,
                               byte TcSignificance,
                               byte SecurityEnable );

是通过 地址 ,告诉某个设备 或者 所有路由    开启或者关闭 允许其他设备入网但是有一点要明确的是, 如果通信是加密的, 那么 就必须有一个trust center。 一般是协调器,因为我上面的通信是加密的, 关了协调器 就没有了 trust center,导致了 终端只能association  不能入网!(发送命令给别人,让别的设备不允许其他设备加入。是通过无线数据让别的设备不允许加入。设备在收到ZDP_MgmtPermitJoinReq进行处理的时候,最后调用的也是NLME_PermitJoiningRequest来实现的。)

3.zigbee节点退出网络 NLME_LeaveReq()

离开网络分两种机制:(1)父节点发送离网请求要求子节点离网  ;(2)节点自己请求自己离网,并通知父节点和邻居节点

           NLME_LeaveReq_t leaveReq;
 
          osal_memset((uint8 *)&leaveReq,0,sizeof(NLME_LeaveReq_t));
 
          osal_memcpy(leaveReq.extAddr,NLME_GetExtAddr(),Z_EXTADDR_LEN);  //1.要使远程节点离开网络,应将NLME_LeaveReq_t参数的extAddr指针赋给远程节点64位IEEE地址。通过处理Device_annce消息
                                               //NLME_LeaveReq_t参数的extAddr参数为NULL,意思是当前自己离开网络,并通知父亲节点和周围的设备。
        req.removeChildren = FALSE;//是否移除子设备
req.rejoin = TRUE;//是否重新加入网络,FALSE 设备不再加入网络
req.silent = FALSE;
NLME_LeaveReq(&req);

对于按键允许入网的一篇不错的博文:https://blog.csdn.net/nicole088/article/details/52458772

zigbee组网函数的一些用法的更多相关文章

  1. PHP错误处理函数set_error_handler()的用法

    定义和用法 set_error_handler() 函数设置用户自定义的错误处理函数. 该函数用于创建运行时期间的用户自己的错误处理方法. 该函数会返回旧的错误处理程序,若失败,则返回 null. 语 ...

  2. PHP异常处理函数set_exception_handler()的用法

    定义和用法 set_exception_handler() 函数设置用户自定义的异常处理函数. 该函数用于创建运行时期间的用户自己的异常处理方法. 该函数会返回旧的异常处理程序,若失败,则返回 nul ...

  3. C语言函数sscanf()的用法

    从文件读取数据是一件很麻烦的事,所幸有sscanf()函数. C语言函数sscanf()的用法 sscanf() - 从一个字符串中读进与指定格式相符的数据. 函数原型: int sscanf( st ...

  4. Zigbee组网原理详解

    Zigbee组网原理详解 来源:互联网 作者:佚名2015年08月13日 15:57   [导读] 组建一个完整的zigbee网状网络包括两个步骤:网络初始化.节点加入网络.其中节点加入网络又包括两个 ...

  5. c语言学习之基础知识点介绍(八):函数的基本用法

    本节开始说函数. 一.函数的基本用法  /* 作用:可以实现代码的复用,在一定程度上解决代码冗余的问题:方便后期维护. 语法: void 函数名(){ 函数体; } 函数命名要有意义,遵守驼峰命名法. ...

  6. ROW_NUMBER() OVER函数的基本用法用法

    ROW_NUMBER() OVER函数的基本用法用法 转自:http://www.cnblogs.com/icebutterfly/archive/2009/08/05/1539657.html 语法 ...

  7. C++虚函数的新用法

    1.今天在segmentfault上看到了一个C++虚函数的新用法,先上代码 #include <iostream> using namespace std; class B { publ ...

  8. JAVA中字符串函数subString的用法小结

    本篇文章主要是对JAVA中字符串函数subString的用法进行了详细的介绍,需要的朋友可以过来参考下,希望对大家有所帮助 String str; str=str.substring(int begi ...

  9. Python正则替换字符串函数re.sub用法示例(1)

    本文实例讲述了Python正则替换字符串函数re.sub用法.分享给大家供大家参考,具体如下: python re.sub属于python正则的标准库,主要是的功能是用正则匹配要替换的字符串然后把它替 ...

随机推荐

  1. (53)Wangdao.com第七天_JavaScript 强制类型转换

    其他进制的数字 二进制    以 0b 开头的 Number 八进制    以 0 开头的 Number 十六进制    以 0x 开头的 Number 注意:无论是多少进制的数字,输出都是十进制 强 ...

  2. jenkins-参数化构建(二)插件:Extended Choice Parameter

    一.Extended Choice Parameter插件 这个插件相对丰富,安装过程就不过多介绍了,在点击项目设置后会出现下载的插件名字. 写在文件中构建时效果如下:

  3. 不让浏览器缓存index.html

    参考文档:https://www.2cto.com/ask/question/4598 location = /index.html { add_header Cache-Control " ...

  4. DTcms 模版用vs2015或2017 打开编辑时候 粘贴出问题 代码被调整

    因为模版语言不是标准的HTML格式 ,所以HTML粘帖的时候会格式化 导致原标签出问题,这里修改下就可以了

  5. SaaS的先鋒:多合一讯息处理器

    在Rocketbots,我们的使命是改善企业与客户之间的关係.全球有超过40亿个消息传递帐户,人们花在上线对话的时间比任何其他活动都多.这种转变,创造了一个更高效及贴身的沟通.随著消费者越来越多要求, ...

  6. kubernetes in action - Volumes

    Volume解决Kubernetes的存储的问题 对于Pod使用的存储,抽象为volume,volume伴随着Pod的创建而创建,消失而同时消失,不能单独的创建 这样的好处,是存储的塑胶不会因为某个c ...

  7. spark核心优化详解

    大家好!转眼又到了经验分享的时间了.吼吼,我这里没有摘要也没有引言,只有单纯的经验分享,请见谅哦! 言归正传,目前在大数据领域能够提供的核心计算的工具,如离线计算hadoop生态圈的mr计算模型,以及 ...

  8. jmeter 之 if controller

    jmeter版本5.0.下面是jmeter5.0的if逻辑控制器的截图 标红字体的意思大概是,如果勾选了 下面的 interpret condition as variable expression ...

  9. python 面试小基础

    1.  py2和py3的区别? 2.  进程 / 线程 / 协程的区别?

  10. wordCount剖析Spark模型