1.2.8.4.6 SRV_RSERIAL_ParseTxMessage Function
C
bool SRV_RSERIAL_ParseTxMessage ( uint8_t* pDataSrc, DRV_RF215_TX_REQUEST_OBJ* pDataDst, DRV_RF215_TX_HANDLE* pTxHandleCancel );
Summary
Extracts a RF frame to be transmitted from SRV_RSERIAL_CMD_PHY_SEND_MSG serial frame.
Description
Takes a SRV_RSERIAL_CMD_PHY_SEND_MSG serial frame as parameter, extracts the RF frame and its related transmission information and fills a DRV_RF215_TX_REQUEST_OBJ object.
Precondition
None.
Parameters
Param | Description |
---|---|
pDataSrc | Pointer to buffer containing serial frame |
pDataDst | Pointer to a DRV_RF215_TX_REQUEST_OBJ object to fill (output) |
pTxHandleCancel | Pointer to TX handle to cancel (output) |
Returns
Boolean indicating if it is a TX cancel request.
Example
SRV_RSERIAL_COMMAND command; DRV_RF215_TRX_ID trxId; DRV_HANDLE rf215HandleRF09, rf215HandleRF24; // returned from DRV_RF215_Open DRV_HANDLE rf215Handle; DRV_RF215_TX_REQUEST_OBJ txReq; DRV_RF215_TX_HANDLE txHandle; bool txCancel; // Process received message from USI command = SRV_RSERIAL_GetCommand(pData); if (command == SRV_RSERIAL_CMD_PHY_SEND_MSG) { // Parse TRX identifier from USI trxId = SRV_RSERIAL_ParseTxMessageTrxId(pData); if (trxId == RF215_TRX_ID_RF09) { rf215Handle = rf215HandleRF09; } else { rf215Handle = rf215HandleRF24; } // Parse TX request data from USI txCancel = SRV_RSERIAL_ParseTxMessage(pData, &txReq, &txHandle); if (txCancel == false) { DRV_RF215_TX_RESULT txResult; // Send Message through RF txHandle = DRV_RF215_TxRequest(rf215Handle, &txReq, &txResult); SRV_RSERIAL_SetTxHandle(txHandle); } else { // Cancel TX request DRV_RF215_TxCancel(rf215Handle, txHandle); } }
Remarks
None.