谁能帮忙解释下serialapp中发送和接收函数的意思
时间:10-02
整理:3721RD
点击:
刚接触zigbee,想了解下它是如何发送和接收的,
#if !defined( SERIAL_APP_RX_SZ )
#define SERIAL_APP_RX_SZ 128
#endif
还有这句里的128是什么意思,谢谢了
/*********************************************************************
* @fn SerialApp_Send
*
* @brief Send data OTA.
*
* @param none
*
* @return none
*/
static void SerialApp_Send(void)
{
#if SERIAL_APP_LOOPBACK
if (SerialApp_TxLen < SERIAL_APP_TX_MAX)
{
SerialApp_TxLen += HalUARTRead(SERIAL_APP_PORT, SerialApp_TxBuf+SerialApp_TxLen+1,
SERIAL_APP_TX_MAX-SerialApp_TxLen);
}
if (SerialApp_TxLen)
{
(void)SerialApp_TxAddr;
if (HalUARTWrite(SERIAL_APP_PORT, SerialApp_TxBuf+1, SerialApp_TxLen))
{
SerialApp_TxLen = 0;
}
else
{
osal_set_event(SerialApp_TaskID, SERIALAPP_SEND_EVT);
}
}
#else
if (!SerialApp_TxLen &&
(SerialApp_TxLen = HalUARTRead(SERIAL_APP_PORT, SerialApp_TxBuf+1, SERIAL_APP_TX_MAX)))
{
// Pre-pend sequence number to the Tx message.
SerialApp_TxBuf[0] = ++SerialApp_TxSeq;
}
if (SerialApp_TxLen)
{
if (afStatus_SUCCESS != AF_DataRequest(&SerialApp_TxAddr,
(endPointDesc_t *)&SerialApp_epDesc,
SERIALAPP_CLUSTERID1,
SerialApp_TxLen+1, SerialApp_TxBuf,
&SerialApp_MsgID, 0, AF_DEFAULT_RADIUS))
{
osal_set_event(SerialApp_TaskID, SERIALAPP_SEND_EVT);
}
}
#endif
}
/*********************************************************************
* @fn SerialApp_Resp
*
* @brief Send data OTA.
*
* @param none
*
* @return none
*/
static void SerialApp_Resp(void)
{
if (afStatus_SUCCESS != AF_DataRequest(&SerialApp_RxAddr,
(endPointDesc_t *)&SerialApp_epDesc,
SERIALAPP_CLUSTERID2,
SERIAL_APP_RSP_CNT, SerialApp_RspBuf,
&SerialApp_MsgID, 0, AF_DEFAULT_RADIUS))
{
osal_set_event(SerialApp_TaskID, SERIALAPP_RESP_EVT);
}
}
#if !defined( SERIAL_APP_RX_SZ )
#define SERIAL_APP_RX_SZ 128
#endif
还有这句里的128是什么意思,谢谢了
/*********************************************************************
* @fn SerialApp_Send
*
* @brief Send data OTA.
*
* @param none
*
* @return none
*/
static void SerialApp_Send(void)
{
#if SERIAL_APP_LOOPBACK
if (SerialApp_TxLen < SERIAL_APP_TX_MAX)
{
SerialApp_TxLen += HalUARTRead(SERIAL_APP_PORT, SerialApp_TxBuf+SerialApp_TxLen+1,
SERIAL_APP_TX_MAX-SerialApp_TxLen);
}
if (SerialApp_TxLen)
{
(void)SerialApp_TxAddr;
if (HalUARTWrite(SERIAL_APP_PORT, SerialApp_TxBuf+1, SerialApp_TxLen))
{
SerialApp_TxLen = 0;
}
else
{
osal_set_event(SerialApp_TaskID, SERIALAPP_SEND_EVT);
}
}
#else
if (!SerialApp_TxLen &&
(SerialApp_TxLen = HalUARTRead(SERIAL_APP_PORT, SerialApp_TxBuf+1, SERIAL_APP_TX_MAX)))
{
// Pre-pend sequence number to the Tx message.
SerialApp_TxBuf[0] = ++SerialApp_TxSeq;
}
if (SerialApp_TxLen)
{
if (afStatus_SUCCESS != AF_DataRequest(&SerialApp_TxAddr,
(endPointDesc_t *)&SerialApp_epDesc,
SERIALAPP_CLUSTERID1,
SerialApp_TxLen+1, SerialApp_TxBuf,
&SerialApp_MsgID, 0, AF_DEFAULT_RADIUS))
{
osal_set_event(SerialApp_TaskID, SERIALAPP_SEND_EVT);
}
}
#endif
}
/*********************************************************************
* @fn SerialApp_Resp
*
* @brief Send data OTA.
*
* @param none
*
* @return none
*/
static void SerialApp_Resp(void)
{
if (afStatus_SUCCESS != AF_DataRequest(&SerialApp_RxAddr,
(endPointDesc_t *)&SerialApp_epDesc,
SERIALAPP_CLUSTERID2,
SERIAL_APP_RSP_CNT, SerialApp_RspBuf,
&SerialApp_MsgID, 0, AF_DEFAULT_RADIUS))
{
osal_set_event(SerialApp_TaskID, SERIALAPP_RESP_EVT);
}
}
论坛有帖子介绍的,你可以找找,我以前发过