This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

关于长址通信问题

我修改了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位的地址与其它节点能信不(除了父子节点)。

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