Transmit#
APIs related to transmitting data packets.
Modules#
Enumerations#
Stop radio operation options bit mask.
Transmit options, in reality a bitmask.
Enumerates the possible outcomes of what will occur if a scheduled TX ends up firing during RX.
Transmit repeat options, in reality a bitmask.
Functions#
Stop an active or pending transmit.
Set the CCA threshold in dBm.
Get detailed information about the last packet transmitted.
Get detailed information about the last packet transmitted.
Get detailed information about the last packet transmitted.
Adjust a RAIL TX completion timestamp to refer to the start of the preamble.
Adjust a RAIL TX completion timestamp to refer to the start of the preamble.
Adjust a RAIL TX timestamp to refer to the end of the sync word.
Adjust a RAIL TX timestamp to refer to the end of the sync word.
Adjust a RAIL TX timestamp to refer to the end of frame.
Adjust a RAIL TX timestamp to refer to the end of frame.
Prevent the radio from starting a transmit.
Check whether or not TX hold off is enabled.
Set an alternate transmitter preamble length.
Macros#
Do not stop any radio operations.
Stop active radio operations only.
Stop pending radio operations.
Stop all radio operations.
A value representing no options enabled.
All options disabled by default.
An option to configure whether or not the TXing node will listen for an ACK.
An option to remove CRC bytes from TX packets.
An option to select which sync word is used during the transmission.
An option to select antenna 0 for transmission.
An option to select antenna 1 for transmission.
An option to use the alternate preamble length established by RAIL_SetTxAltPreambleLength() for the transmission.
An option to use peak rather than average RSSI energy detected during CSMA's RAIL_CsmaConfig_t::ccaDuration or LBT's RAIL_LbtConfig_t::lbtDuration to determine whether the channel is clear or busy.
An option to only perform the CCA (CSMA/LBT) operation but not automatically transmit if the channel is clear.
An option to resend packet at the beginning of the Transmit FIFO.
An option to specify which PHY is used to transmit in the case of concurrent mode.
A value representing all possible options.
The maximum number of LBT/CSMA retries supported.
The maximum power-of-2 exponent for CSMA backoffs.
RAIL_CsmaConfig_t initializer configuring CSMA per IEEE 802.15.4-2003 on 2.4 GHz OSPSK, commonly used by ZigBee.
RAIL_CsmaConfig_t initializer configuring a single CCA prior to TX.
RAIL_LbtConfig_t initializer configuring LBT per ETSI 300 220-1 V2.4.1 for a typical Sub-GHz band.
RAIL_LbtConfig_t initializer configuring LBT per ETSI 300 220-1 V3.1.0 for a typical Sub-GHz band.
A value representing no repeat options enabled.
All repeat options disabled by default.
An option to configure whether or not to channel-hop before each repeated transmit.
An option to configure the delay between transmissions to be from start to start instead of end to start.
RAIL_TxRepeatConfig_t::iterations initializer configuring infinite repeated transmissions.
Enumeration Documentation#
RAIL_StopMode_t#
RAIL_StopMode_t
Stop radio operation options bit mask.
Enumerator | |
---|---|
RAIL_STOP_MODE_ACTIVE_SHIFT | Shift position of RAIL_STOP_MODE_ACTIVE bit. |
RAIL_STOP_MODE_PENDING_SHIFT | Shift position of RAIL_STOP_MODE_PENDING bit. |
2953
of file common/rail_types.h
RAIL_TxOptions_t#
RAIL_TxOptions_t
Transmit options, in reality a bitmask.
Enumerator | |
---|---|
RAIL_TX_OPTION_WAIT_FOR_ACK_SHIFT | Shift position of RAIL_TX_OPTION_WAIT_FOR_ACK bit. |
RAIL_TX_OPTION_REMOVE_CRC_SHIFT | Shift position of RAIL_TX_OPTION_REMOVE_CRC bit. |
RAIL_TX_OPTION_SYNC_WORD_ID_SHIFT | Shift position of RAIL_TX_OPTION_SYNC_WORD_ID bit. |
RAIL_TX_OPTION_ANTENNA0_SHIFT | Shift position of RAIL_TX_OPTION_ANTENNA0 bit. |
RAIL_TX_OPTION_ANTENNA1_SHIFT | Shift position of RAIL_TX_OPTION_ANTENNA1 bit. |
RAIL_TX_OPTION_ALT_PREAMBLE_LEN_SHIFT | Shift position of RAIL_TX_OPTION_ALT_PREAMBLE_LEN bit. |
RAIL_TX_OPTION_CCA_PEAK_RSSI_SHIFT | Shift position of RAIL_TX_OPTION_CCA_PEAK_RSSI bit. |
RAIL_TX_OPTION_CCA_ONLY_SHIFT | Shift position of RAIL_TX_OPTION_CCA_ONLY bit. |
RAIL_TX_OPTION_RESEND_SHIFT | Shift position of RAIL_TX_OPTION_RESEND bit. |
RAIL_TX_OPTION_CONCURRENT_PHY_ID_SHIFT | Shift position of RAIL_TX_OPTION_CONCURRENT_PHY_ID bit. |
RAIL_TX_OPTIONS_COUNT | A count of the choices in this enumeration. |
2973
of file common/rail_types.h
RAIL_ScheduledTxDuringRx_t#
RAIL_ScheduledTxDuringRx_t
Enumerates the possible outcomes of what will occur if a scheduled TX ends up firing during RX.
Because RX and TX can't happen at the same time, it is up to the user how the TX should be handled. This enumeration is passed into RAIL_StartScheduledTx() as part of RAIL_ScheduleTxConfig_t.
Enumerator | |
---|---|
RAIL_SCHEDULED_TX_DURING_RX_POSTPONE_TX | The scheduled TX will be postponed until RX completes and then sent. |
RAIL_SCHEDULED_TX_DURING_RX_ABORT_TX | The scheduled TX will be aborted and a RAIL_EVENT_TX_BLOCKED event will fire. |
3141
of file common/rail_types.h
RAIL_TxRepeatOptions_t#
RAIL_TxRepeatOptions_t
Transmit repeat options, in reality a bitmask.
Enumerator | |
---|---|
RAIL_TX_REPEAT_OPTION_HOP_SHIFT | Shift position of RAIL_TX_REPEAT_OPTION_HOP bit. |
RAIL_TX_REPEAT_OPTION_START_TO_START_SHIFT | Shift position of the RAIL_TX_REPEAT_OPTION_START_TO_START bit. |
3511
of file common/rail_types.h
Function Documentation#
RAIL_StopTx#
RAIL_Status_t RAIL_StopTx (RAIL_Handle_t railHandle, RAIL_StopMode_t mode)
Stop an active or pending transmit.
[in] | railHandle | A RAIL instance handle. |
[in] | mode | Configure the types of transmits to stop. |
Returns
RAIL_STATUS_NO_ERROR if the transmit was successfully stopped or RAIL_STATUS_INVALID_STATE if there is no transmit operation to stop.
Note
When mode includes RAIL_STOP_MODE_ACTIVE, this can also stop an active auto-ACK transmit. When an active transmit is stopped, RAIL_EVENT_TX_ABORTED or RAIL_EVENT_TXACK_ABORTED should occur. When mode includes RAIL_STOP_MODE_PENDING this can also stop a RAIL_TX_OPTION_CCA_ONLY transmit operation. When a pending transmit is stopped, RAIL_EVENT_TX_BLOCKED should occur.
3241
of file common/rail.h
RAIL_SetCcaThreshold#
RAIL_Status_t RAIL_SetCcaThreshold (RAIL_Handle_t railHandle, int8_t ccaThresholdDbm)
Set the CCA threshold in dBm.
[in] | railHandle | A RAIL instance handle. |
[in] | ccaThresholdDbm | The CCA threshold in dBm. |
Returns
Status code indicating success of the function call.
Unlike RAIL_StartCcaCsmaTx() or RAIL_StartCcaLbtTx(), which can cause a transmit, this function only modifies the CCA threshold. A possible use case for this function involves setting the CCA threshold to invalid RSSI of -128 which blocks transmission by preventing clear channel assessments from succeeding.
3256
of file common/rail.h
RAIL_GetTxPacketDetails#
RAIL_Status_t RAIL_GetTxPacketDetails (RAIL_Handle_t railHandle, RAIL_TxPacketDetails_t * pPacketDetails)
Get detailed information about the last packet transmitted.
[in] | railHandle | A RAIL instance handle. |
[inout] | pPacketDetails | An application-provided pointer to store RAIL_TxPacketDetails_t corresponding to the transmit event. The isAck and timeSent fields totalPacketBytes and timePosition must be initialized prior to each call:
|
Returns
RAIL_STATUS_NO_ERROR if pPacketDetails was filled in, or an appropriate error code otherwise.
Note
Consider using RAIL_GetTxPacketDetailsAlt2 for smaller code size.
This function can only be called from callback context for either RAIL_EVENT_TX_PACKET_SENT or RAIL_EVENT_TXACK_PACKET_SENT events.
3286
of file common/rail.h
RAIL_GetTxPacketDetailsAlt#
RAIL_Status_t RAIL_GetTxPacketDetailsAlt (RAIL_Handle_t railHandle, bool isAck, RAIL_Time_t * pPacketTime)
Get detailed information about the last packet transmitted.
[in] | railHandle | A RAIL instance handle. |
[in] | isAck | True to obtain details about the most recent ACK transmit. False to obtain details about the most recent app-initiated transmit. |
[out] | pPacketTime | An application-provided non-NULL pointer to store a RAIL_Time_t corresponding to the transmit event. This will be populated with a timestamp corresponding to an arbitrary location in the packet. Call RAIL_GetTxTimePreambleStart, RAIL_GetTxTimeSyncWordEnd, or RAIL_GetTxTimeFrameEnd to adjust the timestamp for different locations in the packet. |
Returns
RAIL_STATUS_NO_ERROR if pPacketTime was filled in, or an appropriate error code otherwise.
Note
Consider using RAIL_GetTxPacketDetailsAlt2 to pass in a RAIL_PacketTimeStamp_t structure instead of a RAIL_Time_t structure, particularly when RAIL_PacketTimePosition_t information is needed or useful.
This function can only be called from callback context for either RAIL_EVENT_TX_PACKET_SENT or RAIL_EVENT_TXACK_PACKET_SENT events.
3313
of file common/rail.h
RAIL_GetTxPacketDetailsAlt2#
RAIL_Status_t RAIL_GetTxPacketDetailsAlt2 (RAIL_Handle_t railHandle, RAIL_TxPacketDetails_t * pPacketDetails)
Get detailed information about the last packet transmitted.
[in] | railHandle | A RAIL instance handle. |
[inout] | pPacketDetails | An application-provided pointer to store RAIL_TxPacketDetails_t corresponding to the transmit event. The isAck must be initialized prior to each call:
|
Returns
RAIL_STATUS_NO_ERROR if pPacketDetails was filled in, or an appropriate error code otherwise.
This function can only be called from callback context for either RAIL_EVENT_TX_PACKET_SENT or RAIL_EVENT_TXACK_PACKET_SENT events.
3339
of file common/rail.h
RAIL_GetTxTimePreambleStart#
RAIL_Status_t RAIL_GetTxTimePreambleStart (RAIL_Handle_t railHandle, uint16_t totalPacketBytes, RAIL_Time_t * pPacketTime)
Adjust a RAIL TX completion timestamp to refer to the start of the preamble.
[in] | railHandle | A RAIL instance handle. |
[in] | totalPacketBytes | The total number of bytes of the transmitted packet for RAIL to use when adjusting the provided timestamp. This should account for all bytes transmitted over the air after the Preamble and Sync word(s), including CRC bytes. Pass RAIL_TX_STARTED_BYTES to retrieve the start-of-normal-TX timestamp (see below). |
[inout] | pPacketTime | This points to the RAIL_Time_t returned from a previous call to RAIL_GetTxPacketDetailsAlt for this same packet. That time will be updated with the time that the preamble for this packet started on air. Must be non-NULL. |
Also used to retrieve the RAIL_EVENT_TX_STARTED timestamp.
Returns
RAIL_STATUS_NO_ERROR if pPacketTime was successfully determined or an appropriate error code otherwise.
When used for timestamp adjustment, call this function in the same transmit-complete event-handling context as RAIL_GetTxPacketDetailsAlt() is called.
This function may be called when handling the RAIL_EVENT_TX_STARTED event to retrieve that event's start-of-normal-TX timestamp. (ACK transmits currently have no equivalent event or associated timestamp.) In this case, totalPacketBytes must be RAIL_TX_STARTED_BYTES, and pPacketTime is an output-only parameter filled in with that time (so no need to initialize it beforehand by calling RAIL_GetTxPacketDetailsAlt()).
3374
of file common/rail.h
RAIL_GetTxTimePreambleStartAlt#
RAIL_Status_t RAIL_GetTxTimePreambleStartAlt (RAIL_Handle_t railHandle, RAIL_TxPacketDetails_t * pPacketDetails)
Adjust a RAIL TX completion timestamp to refer to the start of the preamble.
[in] | railHandle | A RAIL instance handle. |
[inout] | pPacketDetails | The non-NULL details that were returned from a previous call to RAIL_GetTxPacketDetailsAlt2 for this same packet. The application must update the timeSent field totalPacketBytes to be the total number of bytes of the sent packet for RAIL to use when calculating the specified timestamp. This should account for all bytes transmitted over the air after the Preamble and Sync word(s), including CRC bytes. Pass RAIL_TX_STARTED_BYTES to retrieve the start-of-normal-TX timestamp (see below). After this function, the timeSent field packetTime will be updated with the time that the preamble for this packet started on air. |
Also used to retrieve the RAIL_EVENT_TX_STARTED timestamp.
Returns
RAIL_STATUS_NO_ERROR if the packet time was successfully calculated, or an appropriate error code otherwise.
When used for timestamp adjustment, call this function in the same transmit-complete event-handling context as RAIL_GetTxPacketDetailsAlt2() is called.
This function may be called when handling the RAIL_EVENT_TX_STARTED event to retrieve that event's start-of-normal-TX timestamp. (ACK transmits currently have no equivalent event or associated timestamp.) In this case, the timeSent field totalPacketBytes must be RAIL_TX_STARTED_BYTES, and the timeSent field packetTime is an output-only parameter filled in with that time (so no need to initialize it beforehand by calling RAIL_GetTxPacketDetailsAlt2()).
3409
of file common/rail.h
RAIL_GetTxTimeSyncWordEnd#
RAIL_Status_t RAIL_GetTxTimeSyncWordEnd (RAIL_Handle_t railHandle, uint16_t totalPacketBytes, RAIL_Time_t * pPacketTime)
Adjust a RAIL TX timestamp to refer to the end of the sync word.
[in] | railHandle | A RAIL instance handle. |
[in] | totalPacketBytes | The total number of bytes of the transmitted packet for RAIL to use when calculating the specified timestamp. This should account for all bytes transmitted over the air after the Preamble and Sync word(s), including CRC bytes. |
[inout] | pPacketTime | The time that was returned in a RAIL_Time_t from a previous call to RAIL_GetTxPacketDetailsAlt for this same packet. After this function, the time at that location will be updated with the time that the sync word for this packet finished on air. Must be non-NULL. |
Returns
RAIL_STATUS_NO_ERROR if pPacketTime was successfully calculated, or an appropriate error code otherwise.
Call the timestamp adjustment function in the same transmit-complete event-handling context as RAIL_GetTxPacketDetailsAlt() is called.
3432
of file common/rail.h
RAIL_GetTxTimeSyncWordEndAlt#
RAIL_Status_t RAIL_GetTxTimeSyncWordEndAlt (RAIL_Handle_t railHandle, RAIL_TxPacketDetails_t * pPacketDetails)
Adjust a RAIL TX timestamp to refer to the end of the sync word.
[in] | railHandle | A RAIL instance handle. |
[inout] | pPacketDetails | The non-NULL details that were returned from a previous call to RAIL_GetTxPacketDetailsAlt2 for this same packet. The application must update the timeSent field totalPacketBytes to be the total number of bytes of the sent packet for RAIL to use when calculating the specified timestamp. This should account for all bytes transmitted over the air after the Preamble and Sync word(s), including CRC bytes. Pass RAIL_TX_STARTED_BYTES to retrieve the start-of-normal-TX timestamp (see below). After this function, the timeSent field packetTime will be updated with the time that the sync word for this packet finished on air. Must be non-NULL. |
Returns
RAIL_STATUS_NO_ERROR if the packet time was successfully calculated, or an appropriate error code otherwise.
Call the timestamp adjustment function in the same transmit-complete event-handling context as RAIL_GetTxPacketDetailsAlt2() is called.
3457
of file common/rail.h
RAIL_GetTxTimeFrameEnd#
RAIL_Status_t RAIL_GetTxTimeFrameEnd (RAIL_Handle_t railHandle, uint16_t totalPacketBytes, RAIL_Time_t * pPacketTime)
Adjust a RAIL TX timestamp to refer to the end of frame.
[in] | railHandle | A RAIL instance handle. |
[in] | totalPacketBytes | The total number of bytes of the transmitted packet for RAIL to use when calculating the specified timestamp. This should account for all bytes transmitted over the air after the Preamble and Sync word(s), including CRC bytes. |
[inout] | pPacketTime | The time that was returned in a RAIL_Time_t from a previous call to RAIL_GetTxPacketDetailsAlt for this same packet. After this function, the time at that location will be updated with the time that this packet finished on air. Must be non-NULL. |
Returns
RAIL_STATUS_NO_ERROR if pPacketTime was successfully calculated, or an appropriate error code otherwise.
Call the timestamp adjustment function in the same transmit-complete event-handling context as RAIL_GetTxPacketDetailsAlt() is called.
3480
of file common/rail.h
RAIL_GetTxTimeFrameEndAlt#
RAIL_Status_t RAIL_GetTxTimeFrameEndAlt (RAIL_Handle_t railHandle, RAIL_TxPacketDetails_t * pPacketDetails)
Adjust a RAIL TX timestamp to refer to the end of frame.
[in] | railHandle | A RAIL instance handle. |
[inout] | pPacketDetails | The non-NULL details that were returned from a previous call to RAIL_GetTxPacketDetailsAlt2 for this same packet. The application must update the timeSent field totalPacketBytes to be the total number of bytes of the sent packet for RAIL to use when calculating the specified timestamp. This should account for all bytes transmitted over the air after the Preamble and Sync word(s), including CRC bytes. Pass RAIL_TX_STARTED_BYTES to retrieve the start-of-normal-TX timestamp (see below). After this function, the timeSent field packetTime will be updated with the time that this packet finished on air. Must be non-NULL. |
Returns
RAIL_STATUS_NO_ERROR if the packet time was successfully calculated, or an appropriate error code otherwise.
Call the timestamp adjustment function in the same transmit-complete event-handling context as RAIL_GetTxPacketDetailsAlt2() is called.
3506
of file common/rail.h
RAIL_EnableTxHoldOff#
void RAIL_EnableTxHoldOff (RAIL_Handle_t railHandle, bool enable)
Prevent the radio from starting a transmit.
[in] | railHandle | A RAIL instance handle. |
[in] | enable | Enable/Disable TX hold off. |
Enable TX hold off to prevent the radio from starting any transmits. Disable TX hold off to allow the radio to transmit again. Attempting to transmit with the TX hold off enabled will result in RAIL_EVENT_TX_BLOCKED and/or RAIL_EVENT_TXACK_BLOCKED events.
Note
This function does not affect a transmit that has already started. To stop an already-started transmission, use RAIL_Idle() with RAIL_IDLE_ABORT.
3525
of file common/rail.h
RAIL_IsTxHoldOffEnabled#
bool RAIL_IsTxHoldOffEnabled (RAIL_Handle_t railHandle)
Check whether or not TX hold off is enabled.
[in] | railHandle | A RAIL instance handle. |
Returns
Returns true if TX hold off is enabled, false otherwise.
TX hold off can be enabled/disabled using RAIL_EnableTxHoldOff. Attempting to transmit with the TX hold off enabled will block the transmission and result in RAIL_EVENT_TX_BLOCKED and/or RAIL_EVENT_TXACK_BLOCKED events.
3538
of file common/rail.h
RAIL_SetTxAltPreambleLength#
RAIL_Status_t RAIL_SetTxAltPreambleLength (RAIL_Handle_t railHandle, uint16_t length)
Set an alternate transmitter preamble length.
[in] | railHandle | A RAIL instance handle. |
[in] | length | The desired preamble length, in bits. |
Returns
Status code indicating success of the function call.
To cause a transmission to use this alternate preamble length, specify RAIL_TX_OPTION_ALT_PREAMBLE_LEN in the txOptions parameter passed to the respective RAIL transmit API.
Note
Attempting to set a preamble length of 0xFFFF bits will result in RAIL_STATUS_INVALID_PARAMETER.
3554
of file common/rail.h
Macro Definition Documentation#
RAIL_STOP_MODES_NONE#
#define RAIL_STOP_MODES_NONEValue:
(0U)
Do not stop any radio operations.
2961
of file common/rail_types.h
RAIL_STOP_MODE_ACTIVE#
#define RAIL_STOP_MODE_ACTIVEValue:
(1U << RAIL_STOP_MODE_ACTIVE_SHIFT)
Stop active radio operations only.
2963
of file common/rail_types.h
RAIL_STOP_MODE_PENDING#
#define RAIL_STOP_MODE_PENDINGValue:
(1U << RAIL_STOP_MODE_PENDING_SHIFT)
Stop pending radio operations.
2965
of file common/rail_types.h
RAIL_STOP_MODES_ALL#
#define RAIL_STOP_MODES_ALLValue:
(0xFFU)
Stop all radio operations.
2967
of file common/rail_types.h
RAIL_TX_OPTIONS_NONE#
#define RAIL_TX_OPTIONS_NONEValue:
0UL
A value representing no options enabled.
2999
of file common/rail_types.h
RAIL_TX_OPTIONS_DEFAULT#
#define RAIL_TX_OPTIONS_DEFAULTValue:
RAIL_TX_OPTIONS_NONE
All options disabled by default.
This is the fastest TX option to apply.
3001
of file common/rail_types.h
RAIL_TX_OPTION_WAIT_FOR_ACK#
#define RAIL_TX_OPTION_WAIT_FOR_ACKValue:
(1UL << RAIL_TX_OPTION_WAIT_FOR_ACK_SHIFT)
An option to configure whether or not the TXing node will listen for an ACK.
If this is false, the isAck flag in RAIL_RxPacketDetails_t of a received packet will always be false.
3007
of file common/rail_types.h
RAIL_TX_OPTION_REMOVE_CRC#
#define RAIL_TX_OPTION_REMOVE_CRCValue:
(1UL << RAIL_TX_OPTION_REMOVE_CRC_SHIFT)
An option to remove CRC bytes from TX packets.
To receive packets when the sender has this option set true, set RAIL_RX_OPTION_IGNORE_CRC_ERRORS on the receive side.
3013
of file common/rail_types.h
RAIL_TX_OPTION_SYNC_WORD_ID#
#define RAIL_TX_OPTION_SYNC_WORD_IDValue:
(1UL << RAIL_TX_OPTION_SYNC_WORD_ID_SHIFT)
An option to select which sync word is used during the transmission.
When two sync words are configured by the PHY or RAIL_ConfigSyncWords() enabling this option selects SYNC2 rather than SYNC1 for the upcoming transmit.
This option should not be used when only one sync word has been configured.
Note
There are a few special radio configurations (e.g. BLE Viterbi) that do not support transmitting different sync words.
3024
of file common/rail_types.h
RAIL_TX_OPTION_ANTENNA0#
#define RAIL_TX_OPTION_ANTENNA0Value:
(1UL << RAIL_TX_OPTION_ANTENNA0_SHIFT)
An option to select antenna 0 for transmission.
If the antenna selection option is not set or if both antenna options are set, then the transmit will occur on either antenna depending on the last receive or transmit selection. This option is only valid on platforms that support Antenna Control and have been configured via RAIL_ConfigAntenna().
Note
These TX antenna options do not control the antenna used for Auto-ACK transmissions, which always occur on the same antenna used to receive the packet being acknowledged.
3036
of file common/rail_types.h
RAIL_TX_OPTION_ANTENNA1#
#define RAIL_TX_OPTION_ANTENNA1Value:
(1UL << RAIL_TX_OPTION_ANTENNA1_SHIFT)
An option to select antenna 1 for transmission.
If the antenna selection option is not set or if both antenna options are set, then the transmit will occur on either antenna depending on the last receive or transmit selection. This option is only valid on platforms that support Antenna Control and have been configured via RAIL_ConfigAntenna().
Note
These TX antenna options do not control the antenna used for Auto-ACK transmissions, which always occur on the same antenna used to receive the packet being acknowledged.
3048
of file common/rail_types.h
RAIL_TX_OPTION_ALT_PREAMBLE_LEN#
#define RAIL_TX_OPTION_ALT_PREAMBLE_LENValue:
(1UL << RAIL_TX_OPTION_ALT_PREAMBLE_LEN_SHIFT)
An option to use the alternate preamble length established by RAIL_SetTxAltPreambleLength() for the transmission.
When not set, the PHY configuration's preamble length is used.
3054
of file common/rail_types.h
RAIL_TX_OPTION_CCA_PEAK_RSSI#
#define RAIL_TX_OPTION_CCA_PEAK_RSSIValue:
(1UL << RAIL_TX_OPTION_CCA_PEAK_RSSI_SHIFT)
An option to use peak rather than average RSSI energy detected during CSMA's RAIL_CsmaConfig_t::ccaDuration or LBT's RAIL_LbtConfig_t::lbtDuration to determine whether the channel is clear or busy.
This option is only valid when calling one of the CCA transmit routines: RAIL_StartCcaCsmaTx, RAIL_StartCcaLbtTx, RAIL_StartScheduledCcaCsmaTx, or RAIL_StartScheduledCcaLbtTx.
Note
This option does nothing on platforms like EFR32XG1 that lack support for capturing peak RSSI energy.
3066
of file common/rail_types.h
RAIL_TX_OPTION_CCA_ONLY#
#define RAIL_TX_OPTION_CCA_ONLYValue:
(1UL << RAIL_TX_OPTION_CCA_ONLY_SHIFT)
An option to only perform the CCA (CSMA/LBT) operation but not automatically transmit if the channel is clear.
This option is only valid when calling one of the CCA transmit routines: RAIL_StartCcaCsmaTx, RAIL_StartCcaLbtTx, RAIL_StartScheduledCcaCsmaTx, or RAIL_StartScheduledCcaLbtTx.
Application can then use the RAIL_EVENT_TX_CHANNEL_CLEAR to initiate transmit manually, e.g., giving it the opportunity to adjust outgoing packet data before the packet goes out.
Note
Configured state transitions to Rx or Idle are suspended during this CSMA/LBT operation. If packet reception occurs, the radio will return to the state it was in just prior to the CSMA/LBT operation when that reception (including any AutoACK response) is complete.
3083
of file common/rail_types.h
RAIL_TX_OPTION_RESEND#
#define RAIL_TX_OPTION_RESENDValue:
(1UL << RAIL_TX_OPTION_RESEND_SHIFT)
An option to resend packet at the beginning of the Transmit FIFO.
The packet to be resent must have been previously provided by RAIL_SetTxFifo() or RAIL_WriteTxFifo() passing true for the latter's reset parameter. It works by setting the transmit FIFO's read offset to the beginning of the FIFO while leaving its write offset intact. For this to work, RAIL_DataConfig_t::txMethod must be RAIL_DataMethod_t::PACKET_MODE (i.e., the packet can't exceed the Transmit FIFO's size), otherwise undefined behavior will result.
This option can also be used with RAIL_SetNextTxRepeat() to cause the repeated packet(s) to all be the same as the first.
3100
of file common/rail_types.h
RAIL_TX_OPTION_CONCURRENT_PHY_ID#
#define RAIL_TX_OPTION_CONCURRENT_PHY_IDValue:
(1UL << RAIL_TX_OPTION_CONCURRENT_PHY_ID_SHIFT)
An option to specify which PHY is used to transmit in the case of concurrent mode.
Concurrent mode is only allowed on EFR32xG25 for some predefined combinations of Wi-SUN PHYs. When set/unset, the alternate/base PHY is used to transmit.
3107
of file common/rail_types.h
RAIL_TX_OPTIONS_ALL#
#define RAIL_TX_OPTIONS_ALLValue:
0xFFFFFFFFUL
A value representing all possible options.
3110
of file common/rail_types.h
RAIL_MAX_LBT_TRIES#
#define RAIL_MAX_LBT_TRIESValue:
(15U)
The maximum number of LBT/CSMA retries supported.
3187
of file common/rail_types.h
RAIL_MAX_CSMA_EXPONENT#
#define RAIL_MAX_CSMA_EXPONENTValue:
(8U)
The maximum power-of-2 exponent for CSMA backoffs.
3193
of file common/rail_types.h
RAIL_CSMA_CONFIG_802_15_4_2003_2p4_GHz_OQPSK_CSMA#
#define RAIL_CSMA_CONFIG_802_15_4_2003_2p4_GHz_OQPSK_CSMAValue:
RAIL_CsmaConfig_t initializer configuring CSMA per IEEE 802.15.4-2003 on 2.4 GHz OSPSK, commonly used by ZigBee.
3336
of file common/rail_types.h
RAIL_CSMA_CONFIG_SINGLE_CCA#
#define RAIL_CSMA_CONFIG_SINGLE_CCAValue:
RAIL_CsmaConfig_t initializer configuring a single CCA prior to TX.
It can be used to as a basis for implementing other channel access schemes with custom backoff delays. Users can override ccaBackoff with a fixed delay on each use.
3354
of file common/rail_types.h
RAIL_LBT_CONFIG_ETSI_EN_300_220_1_V2_4_1#
#define RAIL_LBT_CONFIG_ETSI_EN_300_220_1_V2_4_1Value:
RAIL_LbtConfig_t initializer configuring LBT per ETSI 300 220-1 V2.4.1 for a typical Sub-GHz band.
To be practical, users should override lbtTries and/or lbtTimeout so channel access failure will be reported in a reasonable time frame rather than the unbounded time frame ETSI defined.
3456
of file common/rail_types.h
RAIL_LBT_CONFIG_ETSI_EN_300_220_1_V3_1_0#
#define RAIL_LBT_CONFIG_ETSI_EN_300_220_1_V3_1_0Value:
RAIL_LbtConfig_t initializer configuring LBT per ETSI 300 220-1 V3.1.0 for a typical Sub-GHz band.
To be practical, users should override lbtTries and/or lbtTimeout so channel access failure will be reported in a reasonable time frame rather than the unbounded time frame ETSI defined.
3475
of file common/rail_types.h
RAIL_TX_REPEAT_OPTIONS_NONE#
#define RAIL_TX_REPEAT_OPTIONS_NONEValue:
0U
A value representing no repeat options enabled.
3519
of file common/rail_types.h
RAIL_TX_REPEAT_OPTIONS_DEFAULT#
#define RAIL_TX_REPEAT_OPTIONS_DEFAULTValue:
RAIL_TX_REPEAT_OPTIONS_NONE
All repeat options disabled by default.
3521
of file common/rail_types.h
RAIL_TX_REPEAT_OPTION_HOP#
#define RAIL_TX_REPEAT_OPTION_HOPValue:
(1U << RAIL_TX_REPEAT_OPTION_HOP_SHIFT)
An option to configure whether or not to channel-hop before each repeated transmit.
3526
of file common/rail_types.h
RAIL_TX_REPEAT_OPTION_START_TO_START#
#define RAIL_TX_REPEAT_OPTION_START_TO_STARTValue:
(1 << RAIL_TX_REPEAT_OPTION_START_TO_START_SHIFT)
An option to configure the delay between transmissions to be from start to start instead of end to start.
Delay must be long enough to cover the prior transmit's time.
3532
of file common/rail_types.h
RAIL_TX_REPEAT_INFINITE_ITERATIONS#
#define RAIL_TX_REPEAT_INFINITE_ITERATIONSValue:
(0xFFFFU)
RAIL_TxRepeatConfig_t::iterations initializer configuring infinite repeated transmissions.
3578
of file common/rail_types.h