关于长址通信问题
我修改了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位的地址与其它节点能信不(除了父子节点)。
不能
也就是说不能用长址通信?协条器保存了所有节点的长址与短址没。