Packet Transmit#
APIs which initiate a packet transmission in RAIL.
When using any of these functions, the data to be transmitted must have been previously written to the transmit FIFO via RAIL_SetTxFifo() and/or RAIL_WriteTxFifo().
Functions#
Start a transmit.
Schedule sending a packet.
Start a transmit using CSMA.
Start a transmit using LBT.
Schedule a transmit using CSMA.
Schedule a transmit using LBT.
Function Documentation#
RAIL_StartTx#
RAIL_Status_t RAIL_StartTx (RAIL_Handle_t railHandle, uint16_t channel, RAIL_TxOptions_t options, const RAIL_SchedulerInfo_t * schedulerInfo)
Start a transmit.
[in] | railHandle | A RAIL instance handle. |
[in] | channel | Define the channel to transmit on. |
[in] | options | TX options to be applied to this transmit only. |
[in] | schedulerInfo | A pointer to information to allow the radio scheduler to place this transmit appropriately. This is only used in multiprotocol version of RAIL and may be set to NULL in all other versions. |
Returns
Status code indicating success of the function call. If successfully initiated, transmit completion or failure will be reported by a later RAIL_Config_t::eventsCallback with the appropriate RAIL_Events_t.
The transmit process will begin immediately or as soon as a packet being received has finished. The data to be transmitted must have been previously established via RAIL_SetTxFifo() and/or RAIL_WriteTxFifo().
Returns an error if a previous transmit is still in progress. If changing channels, any ongoing packet reception is aborted.
In multiprotocol, ensure that the radio is properly yielded after this operation completes. See Yielding the Radio for more details.
3045
of file common/rail.h
RAIL_StartScheduledTx#
RAIL_Status_t RAIL_StartScheduledTx (RAIL_Handle_t railHandle, uint16_t channel, RAIL_TxOptions_t options, const RAIL_ScheduleTxConfig_t * config, const RAIL_SchedulerInfo_t * schedulerInfo)
Schedule sending a packet.
[in] | railHandle | A RAIL instance handle. |
[in] | channel | The channel to transmit on. |
[in] | options | TX options to be applied to this transmit only. |
[in] | config | A pointer to the RAIL_ScheduleTxConfig_t structure indicating when and how the transmit should occur. |
[in] | schedulerInfo | A pointer to information to allow the radio scheduler to place this transmit appropriately. This is only used in multiprotocol version of RAIL and may be set to NULL in all other versions. |
Returns
Status code indicating success of the function call. If successfully initiated, a transmit completion or failure will be reported by a later RAIL_Config_t::eventsCallback with the appropriate RAIL_Events_t.
The transmit process will begin at the scheduled time. The data to be transmitted must have been previously established via RAIL_SetTxFifo() and/or RAIL_WriteTxFifo(). The time (in microseconds) and whether that time is absolute or relative is specified using the RAIL_ScheduleTxConfig_t structure. What to do if a scheduled transmit fires in the middle of receiving a packet is also specified in this structure.
Returns an error if a previous transmit is still in progress. If changing channels, the channel is changed immediately and will abort any ongoing packet reception.
In multiprotocol, ensure that the radio is properly yielded after this operation completes. See Yielding the Radio for more details.
3080
of file common/rail.h
RAIL_StartCcaCsmaTx#
RAIL_Status_t RAIL_StartCcaCsmaTx (RAIL_Handle_t railHandle, uint16_t channel, RAIL_TxOptions_t options, const RAIL_CsmaConfig_t * csmaConfig, const RAIL_SchedulerInfo_t * schedulerInfo)
Start a transmit using CSMA.
[in] | railHandle | A RAIL instance handle. |
[in] | channel | The channel to transmit on. |
[in] | options | TX options to be applied to this transmit only. |
[in] | csmaConfig | A pointer to the RAIL_CsmaConfig_t structure describing the CSMA parameters to use for this transmit. |
[in] | schedulerInfo | A pointer to information to allow the radio scheduler to place this transmit appropriately. This is only used in multiprotocol version of RAIL and may be set to NULL in all other versions. |
Returns
Status code indicating success of the function call. If successfully initiated, a transmit completion or failure will be reported by a later RAIL_Config_t::eventsCallback with the appropriate RAIL_Events_t.
Perform the Carrier Sense Multiple Access (CSMA) algorithm, and if the channel is deemed clear (RSSI below the specified threshold), it will commence transmission. The data to be transmitted must have been previously established via RAIL_SetTxFifo() and/or RAIL_WriteTxFifo(). Packets can be received during CSMA backoff periods if receive is active throughout the CSMA process. This will happen either by starting the CSMA process while receive is already active, or if the RAIL_CsmaConfig_t::ccaBackoff time is less than the RAIL_StateTiming_t::idleToRx time. If the RAIL_CsmaConfig_t::ccaBackoff time is greater than the RAIL_StateTiming_t::idleToRx time, receive will only be active during CSMA's clear channel assessments.
If the CSMA algorithm deems the channel busy, the RAIL_Config_t::eventsCallback occurs with RAIL_EVENT_TX_CHANNEL_BUSY, and the contents of the transmit FIFO remain intact.
Returns an error if a previous transmit is still in progress. If changing channels, the channel is changed immediately and any ongoing packet reception is aborted.
Returns an error if a scheduled RX is still in progress.
In multiprotocol, ensure that the radio is properly yielded after this operation completes. See Yielding the Radio for more details.
3128
of file common/rail.h
RAIL_StartCcaLbtTx#
RAIL_Status_t RAIL_StartCcaLbtTx (RAIL_Handle_t railHandle, uint16_t channel, RAIL_TxOptions_t options, const RAIL_LbtConfig_t * lbtConfig, const RAIL_SchedulerInfo_t * schedulerInfo)
Start a transmit using LBT.
[in] | railHandle | A RAIL instance handle. |
[in] | channel | The channel to transmit on. |
[in] | options | TX options to be applied to this transmit only. |
[in] | lbtConfig | A pointer to the RAIL_LbtConfig_t structure describing the LBT parameters to use for this transmit. |
[in] | schedulerInfo | A pointer to information to allow the radio scheduler to place this transmit appropriately. This is only used in multiprotocol version of RAIL and may be set to NULL in all other versions. |
Returns
Status code indicating success of the function call. If successfully initiated, a transmit completion or failure will be reported by a later RAIL_Config_t::eventsCallback with the appropriate RAIL_Events_t.
Performs the Listen Before Talk (LBT) algorithm, and if the channel is deemed clear (RSSI below the specified threshold), it will commence transmission. The data to be transmitted must have been previously established via RAIL_SetTxFifo() and/or RAIL_WriteTxFifo(). Packets can be received during LBT backoff periods if receive is active throughout the LBT process. This will happen either by starting the LBT process while receive is already active, or if the RAIL_LbtConfig_t::lbtBackoff time is less than the RAIL_StateTiming_t::idleToRx time. If the RAIL_LbtConfig_t::lbtBackoff time is greater than the RAIL_StateTiming_t::idleToRx time, receive will only be active during LBT's clear channel assessments.
If the LBT algorithm deems the channel busy, the RAIL_Config_t::eventsCallback occurs with RAIL_EVENT_TX_CHANNEL_BUSY, and the contents of the transmit FIFO remain intact.
Returns an error if a previous transmit is still in progress. If changing channels, the channel is changed immediately and any ongoing packet reception is aborted.
Returns an error if a scheduled RX is still in progress.
In multiprotocol, ensure that the radio is properly yielded after this operation completes. See Yielding the Radio for more details.
3176
of file common/rail.h
RAIL_StartScheduledCcaCsmaTx#
RAIL_Status_t RAIL_StartScheduledCcaCsmaTx (RAIL_Handle_t railHandle, uint16_t channel, RAIL_TxOptions_t options, const RAIL_ScheduleTxConfig_t * scheduleTxConfig, const RAIL_CsmaConfig_t * csmaConfig, const RAIL_SchedulerInfo_t * schedulerInfo)
Schedule a transmit using CSMA.
[in] | railHandle | A RAIL instance handle. |
[in] | channel | The channel to transmit on. |
[in] | options | TX options to be applied to this transmit only. |
[in] | scheduleTxConfig | A pointer to the RAIL_ScheduleTxConfig_t structure describing the CSMA parameters to use for this transmit. |
[in] | csmaConfig | A pointer to the RAIL_CsmaConfig_t structure describing the CSMA parameters to use for this transmit. |
[in] | schedulerInfo | A pointer to information to allow the radio scheduler to place this transmit appropriately. This is only used in multiprotocol version of RAIL and may be set to NULL in all other versions. |
Returns
Status code indicating success of the function call. If successfully initiated, a transmit completion or failure will be reported by a later RAIL_Config_t::eventsCallback with the appropriate RAIL_Events_t.
Internally, the RAIL library needs a PRS channel for this feature. It will allocate an available PRS channel to use and hold onto that channel for future use. If no PRS channel is available, the function returns with RAIL_STATUS_INVALID_CALL.
This is a scheduled variation of RAIL_StartCcaCsmaTx(); refer to that function for CSMA details.
Returns an error if a previous transmit is still in progress. If changing channels, the channel is changed immediately and any ongoing packet reception is aborted.
In multiprotocol, ensure that the radio is properly yielded after this operation completes. See Yielding the Radio for more details.
3216
of file common/rail.h
RAIL_StartScheduledCcaLbtTx#
RAIL_Status_t RAIL_StartScheduledCcaLbtTx (RAIL_Handle_t railHandle, uint16_t channel, RAIL_TxOptions_t options, const RAIL_ScheduleTxConfig_t * scheduleTxConfig, const RAIL_LbtConfig_t * lbtConfig, const RAIL_SchedulerInfo_t * schedulerInfo)
Schedule a transmit using LBT.
[in] | railHandle | A RAIL instance handle. |
[in] | channel | The channel to transmit on. |
[in] | options | TX options to be applied to this transmit only. |
[in] | scheduleTxConfig | A pointer to the RAIL_ScheduleTxConfig_t structure describing the CSMA parameters to use for this transmit. |
[in] | lbtConfig | A pointer to the RAIL_LbtConfig_t structure describing the LBT parameters to use for this transmit. |
[in] | schedulerInfo | A pointer to information to allow the radio scheduler to place this transmit appropriately. This is only used in multiprotocol version of RAIL and may be set to NULL in all other versions. |
Returns
Status code indicating success of the function call. If successfully initiated, a transmit completion or failure will be reported by a later RAIL_Config_t::eventsCallback with the appropriate RAIL_Events_t.
Internally, the RAIL library needs a PRS channel for this feature. It will allocate an available PRS channel to use and hold onto that channel for future use. If no PRS channel is available, the function returns with RAIL_STATUS_INVALID_CALL.
This is a scheduled variation of RAIL_StartCcaLbtTx; refer to that function for LBT details.
Returns an error if a previous transmit is still in progress. If changing channels, the channel is changed immediately and any ongoing packet reception is aborted.
In multiprotocol, ensure that the radio is properly yielded after this operation completes. See Yielding the Radio for more details.
3257
of file common/rail.h