微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 无线和射频 > TI Zigbee设计交流 > 关于长址通信问题

关于长址通信问题

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

我修改了zb_SendDataRequest()函数,能与父子节点能信,不能与其它节点通信,这是为什么。其它节点它好像没找到它们的短址。是不是有些地方没打开,不能全网搜获得其它们节点的短地址。

The destination of the data. The destination can be one of the following:
* - 16-Bit short address of device [0-0xfffD]


* - ZB_BROADCAST_ADDR sends the data to all devices in the network.


* - ZB_BINDING_ADDR sends the data to a previously  bound device.

请问您是如何修改的呢?

void MY_zb_SendDataRequest ( uint8 *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.
  dstAddr.addrMode = afAddr64Bit;
 
  osal_cpyExtAddr( dstAddr.addr.extAddr, destination );
 
 // dstAddr.addr.extAddr
    
 
  // 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 );
  }
}

TI的大虾AF_DataRequest()能用64位的地址与其它节点能信不(除了父子节点)。

不能

也就是说不能用长址通信?协条器保存了所有节点的长址与短址没。

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

网站地图

Top