大家好,我在使用ZDP_NwkAddrReq函数通过IEEE地址获取节点短地址时遇到了问题:
需要让终端节点的-DRFD_RCVC_ALWAYS_ON=TRUE 才能成功获取到短地址。=FALSE时则不行。
想请教一下用什么办法可以用IEEE地址获取到 休眠 节点的短地址。
不管怎么样先在这里谢谢各位了!
Viki Shi:
论坛有类似问题,解答请看这边: https://www.deyisupport.com/question_answer/wireless_connectivity/zigbee/f/104/t/91221.aspx
zhibin wang:
回复 Viki Shi:
Viki Shi 你好,谢谢你在百忙之中回答我的问题。
这篇帖子我看了,原帖的发起者到最后也是遇到和我一样的疑问,按照原帖里VV说的进行操作,的确可以是在 -DRFD_RCVC_ALWAYS_ON=TRUE时获取到终端的短地址,但当 -DRFD_RCVC_ALWAYS_ON=FALSE时则没办法。
我也是着将ZDP_NwkAddrReq函数中dstAddr.addr.shortAddr=NWK_BROADCAST_SHORTADDR_DEVRXON
改为
dstAddr.addr.shortAddr = NWK_BROADCAST_SHORTADDR_DEVALL;
依旧无法实现。
zhibin wang:
回复 zhibin wang:
大家好……
请问有人知道么……
谢谢了。
VV:
回复 zhibin wang:
-DRFD_RCVC_ALWAYS_ON=FALSE的时候,你的POLL_RATE是多少,如果子设备没有向父设备进行data request的话,父设备是不会把广播数据发送给休眠的设备的。
另外父设备给子设备保存数据的最长时间是7.5s,如果超时就直接把数据丢了。
Peter Yin:
回复 VV:
关于您说的7.5s,是固定的吗?有办法修改这个timeout值吗?
zhibin wang:
回复 Peter Yin:
可以改。
在 f8wConfig.cfg 的 -DNWK_INDIRECT_MSG_TIMEOUT=
Peter Yin:
回复 zhibin wang:
您怎么确定是这个的? 默认值为7,单位应该是ms吧?
最大值是65536,怎么换算成7.5s呢?
/* Default indirect message holding timeout value: * 1-65535 (0 -> 65536) X CNT_RTG_TIMER X RTG_TIMER_INTERVAL */-DNWK_INDIRECT_MSG_TIMEOUT=7
CNT_RTG_TIMER的定义没有找到,RTG_TIMER_INTERVAL的定义为1000。
如果真的是7.5s,即使RFD_RCVC_ALWAYS_ON为false,ZE 1s查询一次,也应该能收到父节点的包啊。
jinghuan hao:
回复 zhibin wang:
怎么解决的,我也遇到这样的问题了,睡眠情况下查不到短地址,求共享方法。
TI中文支持网