1.1.4.4.10 DRV_RF215_TxRequest Function

C

DRV_RF215_TX_HANDLE DRV_RF215_TxRequest (
    DRV_HANDLE drvHandle,
    DRV_RF215_TX_REQUEST_OBJ* reqObj,
    DRV_RF215_TX_RESULT* result
);

Summary

Allows a client to request data transmission through RF.

Description

This routine allows a client to request a new data transmission through RF using the RF215 device.

Precondition

DRV_RF215_Open must have been called to obtain a valid opened driver handle.

Parameters

ParamDescription
drvHandleA valid open-instance handle, returned from the driver's open routine.
reqObjPointer to the object containing TX request parameters.
resultPointer to result of the TX request.

Returns

If successful, the routine returns a valid scheduled-transmission handle (a number identifying the transmission request). Once the transmission finishes (successfully or not), it is notified via TX confirm callback.

If an error occurs in the TX request, the return value is DRV_RF215_TX_HANDLE_INVALID. In this case the error type will be reported by the result parameter. Error can occur

  • if the number of TX buffer objects allocated via MCC is insufficient.

  • if the specified driver handle is not valid.

  • if transmission request parameters are not valid.

Example

DRV_HANDLE drvRf215Handle; // returned from DRV_RF215_Open
DRV_RF215_TX_REQUEST_OBJ txReqObj;
DRV_RF215_TX_RESULT txReqResult;
DRV_RF215_TX_HANDLE txReqHandle;
uint8_t psduTx[DRV_RF215_MAX_PSDU_LEN];

txReqObj.cancelByRx = false;
txReqObj.ccaMode = PHY_CCA_MODE_3;
txReqObj.modScheme = FSK_FEC_OFF;
txReqObj.txPwrAtt = 0;
txReqObj.psduLen = DRV_RF215_MAX_PSDU_LEN;
txReqObj.timeMode = TX_TIME_RELATIVE;
txReqObj.timeCount = 0;
txReqObj.psdu = psduTx;

txReqHandle = DRV_RF215_TxRequest(drvRf215Handle, &txReqObj, &txReqResult);
if (txReqHandle != DRV_RF215_TX_HANDLE_INVALID)
{
    // TX requested successfully. Result will be notified via TX confirm
}

Remarks

The handle returned is valid until the TX confirm routine is called back or canceled by DRV_RF215_TxCancel function.

This is a non-blocking routine.