zigbee通过路由通信问题
请教大家个问题:zigbee网络拓扑是mesh结构,协调器下面跟个路由器,路由器下面跟5个End Device,协调器通过广播模式与End Device能通信的上,但通过
点对点单播模式则通信不上,请教大侠们看看可能是什么原因?
有没有进行绑定? 单播的代码能贴出来吗?
谢谢您的回复!没有进行绑定,单播是通过串口发的数据,
通信设置如下:
SampleApp_Periodic_DstAddr.addrMode = (afAddrMode_t)Addr64Bit; //点播
SampleApp_Periodic_DstAddr.endPoint = SAMPLEAPP_ENDPOINT;
osal_memcpy(SampleApp_Periodic_DstAddr.addr.extAddr,DestMacAddrs,8);
通过下面的函数发送
if ( AF_DataRequest( &SampleApp_Periodic_DstAddr, &SampleApp_epDesc,
SAMPLEAPP_COM_CLUSTERID,//自己定义一个
len+1, // 数据长度
str, //数据内容
&SampleApp_TransID,
AF_DISCV_ROUTE,
AF_DEFAULT_RADIUS ) == afStatus_SUCCESS )
{
}
另外,如果把5个End Device 都烧成路由,同样的方式单播也能通信的上
非父节点之间的通信不能通过长地址传输
谢谢!哪里有相应的文档可以查看?
我用长地址做过好多次试验得出的结论,不能保证正确。
你可以通过长地址获取短地址,然后再发数据
路由不是用来转发的吗?长地址模式下不能实现这个功能?
谢谢!长地址是固定的,短地址是随机的,怎么通过长地址获取短地址?
我做实验得出的结论是路由不支持长地址数据转发,可能我的认知是错误的。
注册回调Nwk_Addr_rsp,
ZDP_NwkAddrReq()
case XXXXXXXCB(我忘记了你自己去找)
解析段地址
还有一种方法:快速查找lookup,你自己去找API吧
非常谢谢!我自己好好看看