协调器发给终端设备报错 ZMacTransactionExpired 0xf0,有时成功,有时报错
为什么协调器发给终端设备都会报错 F0??能不能在协调器单播的时候哪里可以修改 缓冲终端数据时间,等待终端poll
HDLApp_DstAddr.addrMode = (afAddrMode_t)Addr16Bit;
HDLApp_DstAddr.endPoint = HDLAPP_ENDPOINT;//目的端点
HDLApp_DstAddr.addr.shortAddr=remoteNodeShortAddr;
if ( AF_DataRequest( &HDLApp_DstAddr, //AF远程地址类型
&HDLApp_epDesc, //源端点描述符
HDLAPP_CLUSTERID,//族ID
(byte)dataLen - SADDR_EXT_LEN,//数据包字节数
(byte *)(data + 1 + 2 + 8),//数据包 00 01 20 00 67 46 0F
&HDLApp_TransID,//
AF_DISCV_ROUTE,
AF_DEFAULT_RADIUS ) == afStatus_SUCCESS )//
。。。。。。。。。。
//AF发送数据请求确认
case AF_DATA_CONFIRM_CMD:
afDataConfirm = (afDataConfirm_t *)MSGpkt;
sentEP = afDataConfirm->endpoint;
sentStatus = afDataConfirm->hdr.status;
sentTransID = afDataConfirm->transID;
(void)sentEP;
(void)sentTransID;
// Action taken when confirmation is received.
if ( sentStatus == ZSuccess )
{
HalUARTWrite(HAL_UART_PORT_0,&sentStatus,1);//OXOO
}
else
{
HalUARTWrite(HAL_UART_PORT_0,&sentStatus,1);//0XF0
}
break;
#define ZMacTransactionExpired 0xf0//
协调器发的快,终端设备poll rate很高的话,有可能出现这个情况。