使用64位地址从协调器发送数据异常
时间:12-22
整理:3721RD
点击:
使用64位MAC地址从协调器发送数据至路由器或终端节点
发现当路由器或终端节点是没有经过路由直接连接协调器时,数据可以发送成功
当路由器或终端节点是经过路由器转发时,数据发送失败
我使用AF_DataRequest函数发送数据
我配置参数为afAddr64Bit
我感到很奇怪
希望有人可以帮助我
64位地址和16位地址发送数据的到底有什么区别?
其实真正的数据传输都是通过短地址来进行的。你是长地址的话,也会先转换成短地址。所有的路由表默认也是短地址。如果是转发数据的话,也有可能查不到相应的短地址而失败。
现在的问题就是你所说的使用长地址转发数据失败
协调器直接对路由器可以
但一旦经过一级路由器转发,以后的所有节点收不到数据
而且还发现一个问题
网络结构 协调器-----01路由器-----02路由器
我使用长地址发送数据至02路由器,一切正常
网络结构 协调器-----01路由器-----02终端节点
我使用长地址发送数据至02终端节点,异常
我发现用sniffer抓包,我向0202终端节点发送的数据根本没有通过RF发送出去
这个问题有没有可能是协调器无法将长地址转换为短地址,从而导致数据不外发?
问题已解决
更换16位短地址发送
一切OK
不是,是ED设备可能无法响应长地址和短地址的lookup的命令,因为是广播包,所以休眠的时候会丢包。