微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 无线和射频 > TI Zigbee设计交流 > 调试ZDP_MgmtPermitJoinReq()函数的问题

调试ZDP_MgmtPermitJoinReq()函数的问题

时间:10-02 整理:3721RD 点击:

在使用ZDP_MgmtPermitJoinReq()函数函数中遇到一个问题,具体情况如下,请各位能帮忙解答,谢谢!

我的Zigbee网络中有一个协调器,一个路由器(0x4B32),一个待入网设备(路由器),上电后协调器和路由器都设置了禁止其它设备入网。

我想实现的功能是:首先待入网设备通过外部操作调用ZDOInitDevice(0);让其自动启动;然后协调器向路由器(0x4B32)发送ZDP_MgmtPermitJoinReq()指令后,待入网设备通过向路由器(0x4B32)入网。

目前的问题是:实际上协调器向路由器(0x4B32)发送ZDP_MgmtPermitJoinReq()指令后,0x4B32并没有开启入网,当然设备也没有加入网络。通过抓包发现协调器有发数据包给0x4B32,但是0x4B32的Assoc仍然为0,按道理应该为1才对,这样才能开启入网。但是我通过NLME_PermitJoiningRequest()指令本地开启0x4B32的允许入网,这时Assoc为1,其他设备能够正常入网。

我的疑问是:0x4B32接收到协调器发过来的ZDP_MgmtPermitJoinReq()指令后,后续的工作是协议栈自动处理开启入网功能;还是需要用户根据接收到的指令开启入网功能?

抓包结果见附件。

有没有定义MT_ZDO_MGMT 

从抓包数据看,节点0x4B32回复了,不支持permit join的命令。

你可以在节点0x4B32用断点调试试下,看会不会进入ZDO_ProcessMgmtPermitJoinReq( zdoIncomingMsg_t *inMsg )

然后的Response是什么

我同样也遇到这样的问题,一模一样,也是调用ZDP_MgmtPermitJoinReq()函数 无任何效果!

后来我自己写了个广播的函数,协调器先调NLME_PermitJoiningRequest() 用来控制入网允许,再通过广播发送指令(自己定义是否允许加网的指令),路由设备收到命令再调用NLME_PermitJoiningRequest()。

你抓包下就知道什么情况了。

你好  现有协调器A 路由B 路由C,均有NV_RESTORE,A初始化时ZDP_MgmtPermitJoinReq()禁止设备加入,B/C初始化没有禁止设备加入。A允许B加入网络后,B可以NV了网络信息。A/B重新上电后,B正常可以加入网络。在这时,由于B没有禁止设备加入,而A是在B上电之前就已经ZDP_MgmtPermitJoinReq()禁止设备加入,所以B不会受到A广播的ZDP_MgmtPermitJoinReq,那么作为新设备的C是否可以通过B加入到网络呢?

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top