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

NLME_LeaveReq问题

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

协调器在接收到device发的join后,在函数ZDSecMgrDeviceJoin中拒绝加网,调用了ZDSecMgrDeviceRemove->NLME_LeaveReq. 但协调器NLME_LeaveReq这个动作,并没有触法发送任何消息给device, 而造成device 一直在等network key,最后超时MAX_DEVICE_UNAUTH_TIMEOUT。 在等待network key的时间里,如果device能够收到NLME_LeaveReq的消息,就不再等待,那么作为节电device可以省很多,求解,多谢。

这个时候都没有入网成功,怎么可能能发送数据过去呢,都没有入网为什么要发送leave?

你们想要实现什么功能?

device已经join成功, 已经收到了ZDO_JoinConfirmCB,并获得的地址, 此时正在等待ZDSecMgrAuthNwkKey。

"都没有入网为什么要发送leave?" --你看看TI代码为什么会调用NLME_LeaveReq, ZDO_NEW_DEVICE->ZDSecMgrNewDeviceEvent->ZDSecMgrDeviceNew->ZDSecMgrDeviceJoinDirect->ZDSecMgrDeviceJoin->ZDSecMgrDeviceRemove->NLME_LeaveReq.

 因为我们的设备是移动设备,应尽可能省电,如果能收到NLME_LeaveReq的消息,就可以减少MAX_DEVICE_UNAUTH_TIMEOUT等待时间。

NLME_LeaveReq只有在transport key不成功的情况下才会发出来的。 

现在你的设被ZDO join confirm都有了,父设备肯定要发transport key给加网设备了。

建议可以把MAX_DEVICE_UNAUTH_TIMEOUT时间调小一点。

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

网站地图

Top