zigbee组网函数的一些用法
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)节点自己请求自己离网,并通知父节点和邻居节点
req.removeChildren = FALSE;//是否移除子设备 req.rejoin = TRUE;//是否重新加入网络,FALSE 设备不再加入网络 req.silent = FALSE; NLME_LeaveReq(&req);
对于按键允许入网的一篇不错的博文:https://blog.csdn.net/nicole088/article/details/52458772