TI中文支持网
TI专业的中文技术问题搜集分享网站

NLME_LeaveReq问题

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

VV:

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

你们想要实现什么功能?

wit ding:

回复 VV:

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等待时间。

VV:

回复 wit ding:

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

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

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

赞(0)
未经允许不得转载:TI中文支持网 » NLME_LeaveReq问题
分享到: 更多 (0)