微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 无线和射频 > TI Zigbee设计交流 > 协调器与终端点对点通讯问题

协调器与终端点对点通讯问题

时间:10-02 整理:3721RD 点击:

我现在的设备是一个协调器,一个路由器,一个终端。

路由器、终端全部挂到协调器上,然后路由器、终端分别发送数据给协调器,协调器收到数据后,分别返回确认数据包,通讯收发均正常。采取的是指定短地址进行收发,下面的测试也是同样指定短地址通讯。

我改为另外一种联机方式,关了协调器,然后终端自动加入了路由器,之后协调器重新上电,由于预编译了NV_RESTORE=1,三个设备是处在同一个网络内。路由器给协调器发收据,协调器收到数据之后,返回确认给路由器,路由器也收到了确认包。当终端给协调器发送数据的时候,协调器也收到了数据,但是协调器返回的确认数据包,终端设备却没有收到协调器的数据,通过调试已经确认协调器发数据的地址是终端设备的网络地址了。不知道是哪里有问题了,请指教了!

另外还想咨询个问题了,第二种测试中,终端与协调器通讯的时候,是否会通过路由器转发?都是指定短地址发送了。

先谢谢了!

发送数据如下,就是更改了GenericApp_DstAddr.addr.shortAddr参数

GenericApp_DstAddr.addrMode = (afAddrMode_t)Addr16Bit; //单播发送
GenericApp_DstAddr.endPoint = GENERICAPP_ENDPOINT; //目的端口号
GenericApp_DstAddr.addr.shortAddr = 0; //目标设备网络地址

if ( AF_DataRequest( &GenericApp_DstAddr, &GenericApp_epDesc,
         GENERICAPP_CLUSTERID,
        sizeof (ZCMD_HEARTBEAT_T),
       buf,
      &GenericApp_TransID,
      AF_DISCV_ROUTE, AF_DEFAULT_RADIUS ) == afStatus_SUCCESS )
{
      HalLedSet( HAL_LED_2, HAL_LED_MODE_TOGGLE );
// Successfully requested to be sent.
}

因为当终端加到路由的时候,协调器没有收到Device Announce, 所以协调器上电时候,认为这个终端设备还是自己的子设备,每次都是把数据放在底层,等到终端设备来取。 但实际上这个时候终端设备已经向路由在请求数据了。

建议使用最新的Z-Stack Home 1.2.2,这个问题已经解决了。

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top