[讨论] 求大神指导!终端请求和协调器绑定后,协调器能用0xFFFE作为目的地址发数据给终端吗?

doudongwade   2013-11-28 20:12 楼主
我想把TI给的传感器实验和灯控制实验结合在一起,终端上有温度传感器和小灯,协调器上有按键作为开关,终端请求绑定成功后,周期性给协调器发送温度数据再通过串口显示在串口助手上,现在我想通过串口助手发个命令给协调器,协调器再发命令给终端实现小灯控制,但是终端始终收不到协调器发的数据,协调器发数据的时候目的地址我设的也是0xFFFE,现在确定协调器收到串口的数据了,然后调用zb_SendDataRequest( 0xFFFE, LIGHT_CONTROL_CMD_ID, len, str, 0, AF_MSG_ACK_REQUEST, 0 );
void zb_SendDataRequest ( uint16 destination, uint16 commandId, uint8 len,
                          uint8 *pData, uint8 handle, uint8 txOptions, uint8 radius )
{
  afStatus_t status;
  afAddrType_t dstAddr;
  txOptions |= AF_DISCV_ROUTE;
  // Set the destination address
  if (destination == ZB_BINDING_ADDR)
  {
    // Binding
    dstAddr.addrMode = afAddrNotPresent;
  }
  else
  {
    // Use short address
    dstAddr.addr.shortAddr = destination;
    dstAddr.addrMode = afAddr16Bit;
    if ( ADDR_NOT_BCAST != NLME_IsAddressBroadcast( destination ) )
    {
      txOptions &= ~AF_ACK_REQUEST;
    }
  }
  dstAddr.panId = 0;                                    // Not an inter-pan message.
  dstAddr.endPoint = sapi_epDesc.simpleDesc->EndPoint;  // Set the endpoint.
  // Send the message
  status = AF_DataRequest(&dstAddr, &sapi_epDesc, commandId, len,
                          pData, &handle, txOptions, radius);
  if (status != afStatus_SUCCESS)
  {
    SAPI_SendCback( SAPICB_DATA_CNF, status, handle );
  }
}
但是终端始终收不到数据是怎么回事?求大神指导,纠结几天了

回复评论 (4)

绑定之后,终端可以使用0xFFFE做为目标地址,协调器也能用吗?
点赞  2013-11-29 21:28
你这个不行,那个工程仅仅就是单项的绑定,想相互绑定,你需要修改成双向的绑定
淘宝:https://viiot.taobao.com/Q群243090717 多年专业物联网行业经验,个人承接各类物联网外包项目
点赞  2013-11-30 22:39
你是说终端和协调器双向绑定吗?   有这个功能吗?
点赞  2013-12-2 19:06

回复 4楼doudongwade 的帖子

可以的
淘宝:https://viiot.taobao.com/Q群243090717 多年专业物联网行业经验,个人承接各类物联网外包项目
点赞  2013-12-6 13:09
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 京公网安备 11010802033920号
    写回复