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