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().
When using any of these functions, the data to be transmitted must have been previously written to the transmit FIFO via sl_rail_set_tx_fifo() and/or sl_rail_write_tx_fifo().
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.
Check whether next CCA is imminent.
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.
Check whether next CCA is imminent.
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.
| Type | Direction | Argument Name | Description |
|---|---|---|---|
| RAIL_Handle_t | [in] | railHandle | A RAIL instance handle. |
| uint16_t | [in] | channel | Define the channel to transmit on. |
| RAIL_TxOptions_t | [in] | options | TX options to be applied to this transmit only. |
| const RAIL_SchedulerInfo_t * | [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.
DeprecatedRAIL 2.x synonym of sl_rail_start_tx().
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.
| Type | Direction | Argument Name | Description |
|---|---|---|---|
| RAIL_Handle_t | [in] | railHandle | A RAIL instance handle. |
| uint16_t | [in] | channel | The channel to transmit on. |
| RAIL_TxOptions_t | [in] | options | TX options to be applied to this transmit only. |
| const RAIL_ScheduleTxConfig_t * | [in] | config | A pointer to the RAIL_ScheduleTxConfig_t structure indicating when and how the transmit should occur. |
| const RAIL_SchedulerInfo_t * | [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.
DeprecatedRAIL 2.x synonym of sl_rail_start_scheduled_tx().
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.
| Type | Direction | Argument Name | Description |
|---|---|---|---|
| RAIL_Handle_t | [in] | railHandle | A RAIL instance handle. |
| uint16_t | [in] | channel | The channel to transmit on. |
| RAIL_TxOptions_t | [in] | options | TX options to be applied to this transmit only. |
| const RAIL_CsmaConfig_t * | [in] | csmaConfig | A pointer to the RAIL_CsmaConfig_t structure describing the CSMA parameters to use for this transmit. |
| const RAIL_SchedulerInfo_t * | [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.
DeprecatedRAIL 2.x synonym of sl_rail_start_cca_csma_tx().
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.
| Type | Direction | Argument Name | Description |
|---|---|---|---|
| RAIL_Handle_t | [in] | railHandle | A RAIL instance handle. |
| uint16_t | [in] | channel | The channel to transmit on. |
| RAIL_TxOptions_t | [in] | options | TX options to be applied to this transmit only. |
| const RAIL_LbtConfig_t * | [in] | lbtConfig | A pointer to the RAIL_LbtConfig_t structure describing the LBT parameters to use for this transmit. |
| const RAIL_SchedulerInfo_t * | [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.
DeprecatedRAIL 2.x synonym of sl_rail_start_cca_lbt_tx().
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.
| Type | Direction | Argument Name | Description |
|---|---|---|---|
| RAIL_Handle_t | [in] | railHandle | A RAIL instance handle. |
| uint16_t | [in] | channel | The channel to transmit on. |
| RAIL_TxOptions_t | [in] | options | TX options to be applied to this transmit only. |
| const RAIL_ScheduleTxConfig_t * | [in] | scheduleTxConfig | A pointer to the RAIL_ScheduleTxConfig_t structure describing the CSMA parameters to use for this transmit. |
| const RAIL_CsmaConfig_t * | [in] | csmaConfig | A pointer to the RAIL_CsmaConfig_t structure describing the CSMA parameters to use for this transmit. |
| const RAIL_SchedulerInfo_t * | [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.
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.
DeprecatedRAIL 2.x synonym of sl_rail_start_scheduled_cca_csma_tx().
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.
| Type | Direction | Argument Name | Description |
|---|---|---|---|
| RAIL_Handle_t | [in] | railHandle | A RAIL instance handle. |
| uint16_t | [in] | channel | The channel to transmit on. |
| RAIL_TxOptions_t | [in] | options | TX options to be applied to this transmit only. |
| const RAIL_ScheduleTxConfig_t * | [in] | scheduleTxConfig | A pointer to the RAIL_ScheduleTxConfig_t structure describing the CSMA parameters to use for this transmit. |
| const RAIL_LbtConfig_t * | [in] | lbtConfig | A pointer to the RAIL_LbtConfig_t structure describing the LBT parameters to use for this transmit. |
| const RAIL_SchedulerInfo_t * | [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.
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.
DeprecatedRAIL 2.x synonym of sl_rail_start_scheduled_cca_lbt_tx().
RAIL_IsNextCcaNow#
bool RAIL_IsNextCcaNow (RAIL_Handle_t railHandle)
Check whether next CCA is imminent.
| Type | Direction | Argument Name | Description |
|---|---|---|---|
| RAIL_Handle_t | [in] | railHandle | A RAIL instance handle. |
Valid only when handing RAIL_EVENT_TX_CCA_RETRY. Typically used for coexistence signalling.
Returns
true if the next CCA is imminent (zero backoff).
DeprecatedRAIL 2.x synonym of sl_rail_is_next_cca_now().
sl_rail_start_tx#
sl_rail_status_t sl_rail_start_tx (sl_rail_handle_t rail_handle, uint16_t channel, sl_rail_tx_options_t tx_options, const sl_rail_scheduler_info_t * p_scheduler_info)
Start a transmit.
| Type | Direction | Argument Name | Description |
|---|---|---|---|
| sl_rail_handle_t | [in] | rail_handle | A real RAIL instance handle. |
| uint16_t | [in] | channel | Define the channel to transmit on. |
| sl_rail_tx_options_t | [in] | tx_options | TX options to be applied to this transmit only. |
| const sl_rail_scheduler_info_t * | [in] | p_scheduler_info | 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 sl_rail_config_t::events_callback() with the appropriate sl_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 sl_rail_set_tx_fifo() and/or sl_rail_write_tx_fifo().
Returns an error if a previous transmit is still in progress. If changing channels, any ongoing packet reception is aborted.
Returns an error if no receive FIFO or Packet Queue have been configured and either of the TX state transitions are to SL_RAIL_RF_STATE_RX.
In multiprotocol, ensure that the radio is properly yielded after this operation completes. See Yielding the Radio for more details.
sl_rail_start_scheduled_tx#
sl_rail_status_t sl_rail_start_scheduled_tx (sl_rail_handle_t rail_handle, uint16_t channel, sl_rail_tx_options_t tx_options, const sl_rail_scheduled_tx_config_t * p_scheduled_tx_config, const sl_rail_scheduler_info_t * p_scheduler_info)
Schedule sending a packet.
| Type | Direction | Argument Name | Description |
|---|---|---|---|
| sl_rail_handle_t | [in] | rail_handle | A real RAIL instance handle. |
| uint16_t | [in] | channel | The channel to transmit on. |
| sl_rail_tx_options_t | [in] | tx_options | TX options to be applied to this transmit only. |
| const sl_rail_scheduled_tx_config_t * | [in] | p_scheduled_tx_config | A pointer to the sl_rail_scheduled_tx_config_t structure indicating when and how the transmit should occur. |
| const sl_rail_scheduler_info_t * | [in] | p_scheduler_info | 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 sl_rail_config_t::events_callback() with the appropriate sl_rail_events_t.
The transmit process will begin at the scheduled time. The data to be transmitted must have been previously established via sl_rail_set_tx_fifo() and/or sl_rail_write_tx_fifo(). The time (in microseconds) and whether that time is absolute or relative is specified using the sl_rail_scheduled_tx_config_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.
Returns an error if no receive FIFO or Packet Queue have been configured and either of the TX state transitions are to SL_RAIL_RF_STATE_RX.
In multiprotocol, ensure that the radio is properly yielded after this operation completes. See Yielding the Radio for more details.
sl_rail_start_cca_csma_tx#
sl_rail_status_t sl_rail_start_cca_csma_tx (sl_rail_handle_t rail_handle, uint16_t channel, sl_rail_tx_options_t tx_options, const sl_rail_csma_config_t * p_csma_config, const sl_rail_scheduler_info_t * p_scheduler_info)
Start a transmit using CSMA.
| Type | Direction | Argument Name | Description |
|---|---|---|---|
| sl_rail_handle_t | [in] | rail_handle | A real RAIL instance handle. |
| uint16_t | [in] | channel | The channel to transmit on. |
| sl_rail_tx_options_t | [in] | tx_options | TX options to be applied to this transmit only. |
| const sl_rail_csma_config_t * | [in] | p_csma_config | A pointer to the sl_rail_csma_config_t structure describing the CSMA parameters to use for this transmit. |
| const sl_rail_scheduler_info_t * | [in] | p_scheduler_info | 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 sl_rail_config_t::events_callback() with the appropriate sl_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 sl_rail_set_tx_fifo() and/or sl_rail_write_tx_fifo(). 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 sl_rail_csma_config_t::cca_backoff_us is less than sl_rail_state_timing_t::idle_to_rx time. If the sl_rail_csma_config_t::cca_backoff_us time is greater than the sl_rail_state_timing_t::idle_to_rx time, receive will only be active during CSMA's clear channel assessments.
If the CSMA algorithm deems the channel busy, the sl_rail_config_t::events_callback() occurs with SL_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, or if no receive FIFO or Packet Queue have been configured.
In multiprotocol, ensure that the radio is properly yielded after this operation completes. See Yielding the Radio for more details.
sl_rail_start_cca_lbt_tx#
sl_rail_status_t sl_rail_start_cca_lbt_tx (sl_rail_handle_t rail_handle, uint16_t channel, sl_rail_tx_options_t tx_options, const sl_rail_lbt_config_t * p_lbt_config, const sl_rail_scheduler_info_t * p_scheduler_info)
Start a transmit using LBT.
| Type | Direction | Argument Name | Description |
|---|---|---|---|
| sl_rail_handle_t | [in] | rail_handle | A real RAIL instance handle. |
| uint16_t | [in] | channel | The channel to transmit on. |
| sl_rail_tx_options_t | [in] | tx_options | TX options to be applied to this transmit only. |
| const sl_rail_lbt_config_t * | [in] | p_lbt_config | A pointer to the sl_rail_lbt_config_t structure describing the LBT parameters to use for this transmit. |
| const sl_rail_scheduler_info_t * | [in] | p_scheduler_info | 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 sl_rail_config_t::events_callback() with the appropriate sl_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 sl_rail_set_tx_fifo() and/or sl_rail_write_tx_fifo(). 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 sl_rail_lbt_config_t::lbt_backoff_us is less than sl_rail_state_timing_t::idle_to_rx time. If the sl_rail_lbt_config_t::lbt_backoff_us time is greater than the sl_rail_state_timing_t::idle_to_rx time, receive will only be active during LBT's clear channel assessments.
If the LBT algorithm deems the channel busy, the sl_rail_config_t::events_callback() occurs with SL_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, or if no receive FIFO or Packet Queue have been configured.
In multiprotocol, ensure that the radio is properly yielded after this operation completes. See Yielding the Radio for more details.
sl_rail_start_scheduled_cca_csma_tx#
sl_rail_status_t sl_rail_start_scheduled_cca_csma_tx (sl_rail_handle_t rail_handle, uint16_t channel, sl_rail_tx_options_t tx_options, const sl_rail_scheduled_tx_config_t * p_scheduled_tx_config, const sl_rail_csma_config_t * p_csma_config, const sl_rail_scheduler_info_t * p_scheduler_info)
Schedule a transmit using CSMA.
| Type | Direction | Argument Name | Description |
|---|---|---|---|
| sl_rail_handle_t | [in] | rail_handle | A real RAIL instance handle. |
| uint16_t | [in] | channel | The channel to transmit on. |
| sl_rail_tx_options_t | [in] | tx_options | TX options to be applied to this transmit only. |
| const sl_rail_scheduled_tx_config_t * | [in] | p_scheduled_tx_config | A pointer to the sl_rail_scheduled_tx_config_t structure describing the CSMA parameters to use for this transmit. |
| const sl_rail_csma_config_t * | [in] | p_csma_config | A pointer to the sl_rail_csma_config_t structure describing the CSMA parameters to use for this transmit. |
| const sl_rail_scheduler_info_t * | [in] | p_scheduler_info | 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 sl_rail_config_t::events_callback() with the appropriate sl_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 SL_RAIL_STATUS_INVALID_CALL.
This is a scheduled variation of sl_rail_start_cca_csma_tx(); 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.
Returns an error if a scheduled RX is still in progress, or if no receive FIFO or Packet Queue have been configured.
In multiprotocol, ensure that the radio is properly yielded after this operation completes. See Yielding the Radio for more details.
sl_rail_start_scheduled_cca_lbt_tx#
sl_rail_status_t sl_rail_start_scheduled_cca_lbt_tx (sl_rail_handle_t rail_handle, uint16_t channel, sl_rail_tx_options_t tx_options, const sl_rail_scheduled_tx_config_t * p_scheduled_tx_config, const sl_rail_lbt_config_t * p_lbt_config, const sl_rail_scheduler_info_t * p_scheduler_info)
Schedule a transmit using LBT.
| Type | Direction | Argument Name | Description |
|---|---|---|---|
| sl_rail_handle_t | [in] | rail_handle | A real RAIL instance handle. |
| uint16_t | [in] | channel | The channel to transmit on. |
| sl_rail_tx_options_t | [in] | tx_options | TX options to be applied to this transmit only. |
| const sl_rail_scheduled_tx_config_t * | [in] | p_scheduled_tx_config | A pointer to the sl_rail_scheduled_tx_config_t structure describing the CSMA parameters to use for this transmit. |
| const sl_rail_lbt_config_t * | [in] | p_lbt_config | A pointer to the sl_rail_lbt_config_t structure describing the LBT parameters to use for this transmit. |
| const sl_rail_scheduler_info_t * | [in] | p_scheduler_info | 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 sl_rail_config_t::events_callback() with the appropriate sl_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 SL_RAIL_STATUS_INVALID_CALL.
This is a scheduled variation of sl_rail_start_cca_lbt_tx(); 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.
Returns an error if a scheduled RX is still in progress, or if no receive FIFO or Packet Queue have been configured.
In multiprotocol, ensure that the radio is properly yielded after this operation completes. See Yielding the Radio for more details.
sl_rail_is_next_cca_now#
bool sl_rail_is_next_cca_now (sl_rail_handle_t rail_handle)
Check whether next CCA is imminent.
| Type | Direction | Argument Name | Description |
|---|---|---|---|
| sl_rail_handle_t | [in] | rail_handle | A real RAIL instance handle. |
Valid only when handing SL_RAIL_EVENT_TX_CCA_RETRY. Typically used for coexistence signalling.
Returns
true if the next CCA is imminent (zero backoff).