Zigbee协调器主动使终端节点退网

我使用ZDP_MgmtLeaveReq()这个函数来让已知短地址的终端退网,代码如下:我这样使用的结果是,可以将节点退网,节点上也需要做一些配置。我在函数里禁止节点重连,但是节点退网后会获取到新的短地址重新入网,这个属于正常现象么?我使用NLME_PermitJoiningRequest(0)禁止后,节点才会不入网。我现在的问题是有没有什么接口,可以不需要管节点配置,直接指定节点退网?我是担心其他人配置的节点失误加入到我的网络里,开启加密功能是否能解决未知节点加入的问题?

zAddrType_t addr_delet;

addr_delet.addrMode = Addr16Bit;

addr_delet.addr.shortAddr =(UINT16)(SampleApp_RxBuf[1]<<8)+SampleApp_RxBuf[2];

AddrMgrExtAddrLookup(addr_delet.addr.shortAddr, IEEEbuf );

if(ZDP_MgmtLeaveReq((zAddrType_t *)&addr_delet,IEEEbuf ,0,0,0)== ZSuccess)

HalUARTWrite(0,"\nSucce\n",7);

 

对的是正常现象,因为你让节点禁止入网,是禁止节点rejoin到这个网络,

但是节点收到这个消息以后,会把自己的网络信息删除,因为禁止rejoin,然后节点就重新开始搜网,这个时候只要搜到permit join是enable的,并且信号强度可以的话,就会重新join到这个网络,那重新分配地址的话,可能就是不一样的地址了。

#define ZDO_MGMT_LEAVE_REQUEST    

    #define ZDO_MGMT_LEAVE_RESPONSE

这2个定义 必须在协调器和节点都要定义才可以

猜你喜欢

转载自blog.csdn.net/qq_27747359/article/details/96424013