|  | SX126x-Arduino
    2.0.1
    | 
Radio driver definition. More...
#include <radio.h>
| Data Fields | |
| void(* | Init )(RadioEvents_t *events) | 
| Initializes the radio.  More... | |
| void(* | ReInit )(RadioEvents_t *events) | 
| Re-Initializes the radio after CPU wakeup from deep sleep.  More... | |
| RadioState_t(* | GetStatus )(void) | 
| void(* | SetModem )(RadioModems_t modem) | 
| Configures the radio with the given modem.  More... | |
| void(* | SetChannel )(uint32_t freq) | 
| Sets the channel frequency.  More... | |
| bool(* | IsChannelFree )(RadioModems_t modem, uint32_t freq, int16_t rssiThresh, uint32_t maxCarrierSenseTime) | 
| Checks if the channel is free for the given time.  More... | |
| uint32_t(* | Random )(void) | 
| Generates a 32 bits random value based on the RSSI readings.  More... | |
| void(* | SetRxConfig )(RadioModems_t modem, uint32_t bandwidth, uint32_t datarate, uint8_t coderate, uint32_t bandwidthAfc, uint16_t preambleLen, uint16_t symbTimeout, bool fixLen, uint8_t payloadLen, bool crcOn, bool freqHopOn, uint8_t hopPeriod, bool iqInverted, bool rxContinuous) | 
| Sets the reception parameters.  More... | |
| void(* | SetTxConfig )(RadioModems_t modem, int8_t power, uint32_t fdev, uint32_t bandwidth, uint32_t datarate, uint8_t coderate, uint16_t preambleLen, bool fixLen, bool crcOn, bool freqHopOn, uint8_t hopPeriod, bool iqInverted, uint32_t timeout) | 
| Sets the transmission parameters.  More... | |
| bool(* | CheckRfFrequency )(uint32_t frequency) | 
| Checks if the given RF frequency is supported by the hardware.  More... | |
| uint32_t(* | TimeOnAir )(RadioModems_t modem, uint8_t pktLen) | 
| Computes the packet time on air in ms for the given payload.  More... | |
| void(* | Send )(uint8_t *buffer, uint8_t size) | 
| Sends the buffer of size. Prepares the packet to be sent and sets the radio in transmission.  More... | |
| void(* | Sleep )(void) | 
| Sets the radio in sleep mode.  More... | |
| void(* | Standby )(void) | 
| Sets the radio in standby mode.  More... | |
| void(* | Rx )(uint32_t timeout) | 
| Sets the radio in reception mode for the given time.  More... | |
| void(* | SetCadParams )(uint8_t cadSymbolNum, uint8_t cadDetPeak, uint8_t cadDetMin, uint8_t cadExitMode, uint32_t cadTimeout) | 
| Set Channel Activity Detection parameters.  More... | |
| void(* | StartCad )(void) | 
| Start a Channel Activity Detection.  More... | |
| void(* | SetTxContinuousWave )(uint32_t freq, int8_t power, uint16_t time) | 
| Sets the radio in continuous wave transmission mode.  More... | |
| int16_t(* | Rssi )(RadioModems_t modem) | 
| Reads the current RSSI value.  More... | |
| void(* | Write )(uint16_t addr, uint8_t data) | 
| Writes the radio register at the specified address.  More... | |
| uint8_t(* | Read )(uint16_t addr) | 
| Reads the radio register at the specified address.  More... | |
| void(* | WriteBuffer )(uint16_t addr, uint8_t *buffer, uint8_t size) | 
| Writes multiple radio registers starting at address.  More... | |
| void(* | ReadBuffer )(uint16_t addr, uint8_t *buffer, uint8_t size) | 
| Reads multiple radio registers starting at address.  More... | |
| void(* | SetMaxPayloadLength )(RadioModems_t modem, uint8_t max) | 
| Sets the maximum payload length.  More... | |
| void(* | SetPublicNetwork )(bool enable) | 
| Sets the network to public or private. Updates the sync byte.  More... | |
| uint32_t(* | GetWakeupTime )(void) | 
| Gets the time required for the board plus radio to get out of sleep.[ms].  More... | |
| void(* | BgIrqProcess )(void) | 
| Process radio irq in background task (nRF52 & ESP32)  More... | |
| void(* | IrqProcess )(void) | 
| Process radio irq.  More... | |
| void(* | IrqProcessAfterDeepSleep )(void) | 
| void(* | RxBoosted )(uint32_t timeout) | 
| Sets the radio in reception mode with Max LNA gain for the given time.  More... | |
| void(* | SetRxDutyCycle )(uint32_t rxTime, uint32_t sleepTime) | 
| Sets the Rx duty cycle management parameters.  More... | |
Radio driver definition.
| void(* Radio_s::Init) (RadioEvents_t *events) | 
Initializes the radio.
| events | Structure containing the driver callback functions | 
| void(* Radio_s::ReInit) (RadioEvents_t *events) | 
Re-Initializes the radio after CPU wakeup from deep sleep.
| events | Structure containing the driver callback functions | 
| RadioState_t(* Radio_s::GetStatus) (void) | 
Return current radio status
| status | Radio status.[RF_IDLE, RF_RX_RUNNING, RF_TX_RUNNING] | 
| void(* Radio_s::SetModem) (RadioModems_t modem) | 
Configures the radio with the given modem.
| modem | Modem to be used [0: FSK, 1: LoRa] | 
| void(* Radio_s::SetChannel) (uint32_t freq) | 
Sets the channel frequency.
| freq | Channel RF frequency | 
| bool(* Radio_s::IsChannelFree) (RadioModems_t modem, uint32_t freq, int16_t rssiThresh, uint32_t maxCarrierSenseTime) | 
Checks if the channel is free for the given time.
| modem | Radio modem to be used [0: FSK, 1: LoRa] | 
| freq | Channel RF frequency | 
| rssiThresh | RSSI threshold | 
| maxCarrierSenseTime | Max time while the RSSI is measured | 
| isFree | [true: Channel is free, false: Channel is not free] | 
| uint32_t(* Radio_s::Random) (void) | 
Generates a 32 bits random value based on the RSSI readings.
| randomValue | 32 bits random value | 
| void(* Radio_s::SetRxConfig) (RadioModems_t modem, uint32_t bandwidth, uint32_t datarate, uint8_t coderate, uint32_t bandwidthAfc, uint16_t preambleLen, uint16_t symbTimeout, bool fixLen, uint8_t payloadLen, bool crcOn, bool freqHopOn, uint8_t hopPeriod, bool iqInverted, bool rxContinuous) | 
Sets the reception parameters.
| modem | Radio modem to be used [0: FSK, 1: LoRa] | 
| bandwidth | Sets the bandwidth FSK : >= 2600 and <= 250000 Hz LoRa: [0: 125 kHz, 1: 250 kHz, 2: 500 kHz, 3: Reserved] | 
| datarate | Sets the Datarate FSK : 600..300000 bits/s LoRa: [6: 64, 7: 128, 8: 256, 9: 512, 10: 1024, 11: 2048, 12: 4096 chips] | 
| coderate | Sets the coding rate (LoRa only) FSK : N/A ( set to 0 ) LoRa: [1: 4/5, 2: 4/6, 3: 4/7, 4: 4/8] | 
| bandwidthAfc | Sets the AFC Bandwidth (FSK only) FSK : >= 2600 and <= 250000 Hz LoRa: N/A ( set to 0 ) | 
| preambleLen | Sets the Preamble length FSK : Number of bytes LoRa: Length in symbols (the hardware adds 4 more symbols) | 
| symbTimeout | Sets the RxSingle timeout value FSK : timeout in number of bytes LoRa: timeout in symbols | 
| fixLen | Fixed length packets [0: variable, 1: fixed] | 
| payloadLen | Sets payload length when fixed length is used | 
| crcOn | Enables/Disables the CRC [0: OFF, 1: ON] | 
| freqHopOn | Enables disables the intra-packet frequency hopping FSK : N/A ( set to 0 ) LoRa: [0: OFF, 1: ON] | 
| hopPeriod | Number of symbols between each hop FSK : N/A ( set to 0 ) LoRa: Number of symbols | 
| iqInverted | Inverts IQ signals (LoRa only) FSK : N/A ( set to 0 ) LoRa: [0: not inverted, 1: inverted] | 
| rxContinuous | Sets the reception in continuous mode [false: single mode, true: continuous mode] | 
| void(* Radio_s::SetTxConfig) (RadioModems_t modem, int8_t power, uint32_t fdev, uint32_t bandwidth, uint32_t datarate, uint8_t coderate, uint16_t preambleLen, bool fixLen, bool crcOn, bool freqHopOn, uint8_t hopPeriod, bool iqInverted, uint32_t timeout) | 
Sets the transmission parameters.
| modem | Radio modem to be used [0: FSK, 1: LoRa] | 
| power | Sets the output power [dBm] | 
| fdev | Sets the frequency deviation (FSK only) FSK : [Hz] LoRa: 0 | 
| bandwidth | Sets the bandwidth (LoRa only) FSK : 0 LoRa: [0: 125 kHz, 1: 250 kHz, 2: 500 kHz, 3: Reserved] | 
| datarate | Sets the Datarate FSK : 600..300000 bits/s LoRa: [6: 64, 7: 128, 8: 256, 9: 512, 10: 1024, 11: 2048, 12: 4096 chips] | 
| coderate | Sets the coding rate (LoRa only) FSK : N/A ( set to 0 ) LoRa: [1: 4/5, 2: 4/6, 3: 4/7, 4: 4/8] | 
| preambleLen | Sets the preamble length FSK : Number of bytes LoRa: Length in symbols (the hardware adds 4 more symbols) | 
| fixLen | Fixed length packets [0: variable, 1: fixed] | 
| crcOn | Enables disables the CRC [0: OFF, 1: ON] | 
| freqHopOn | Enables disables the intra-packet frequency hopping FSK : N/A ( set to 0 ) LoRa: [0: OFF, 1: ON] | 
| hopPeriod | Number of symbols between each hop FSK : N/A ( set to 0 ) LoRa: Number of symbols | 
| iqInverted | Inverts IQ signals (LoRa only) FSK : N/A ( set to 0 ) LoRa: [0: not inverted, 1: inverted] | 
| timeout | Transmission timeout [ms] | 
| bool(* Radio_s::CheckRfFrequency) (uint32_t frequency) | 
Checks if the given RF frequency is supported by the hardware.
| frequency | RF frequency to be checked | 
| isSupported | [true: supported, false: unsupported] | 
| uint32_t(* Radio_s::TimeOnAir) (RadioModems_t modem, uint8_t pktLen) | 
Computes the packet time on air in ms for the given payload.
| modem | Radio modem to be used [0: FSK, 1: LoRa] | 
| pktLen | Packet payload length | 
| airTime | Computed airTime (ms) for the given packet payload length | 
| void(* Radio_s::Send) (uint8_t *buffer, uint8_t size) | 
Sends the buffer of size. Prepares the packet to be sent and sets the radio in transmission.
| buffer | Buffer pointer | 
| size | Buffer size | 
| void(* Radio_s::Sleep) (void) | 
Sets the radio in sleep mode.
| void(* Radio_s::Standby) (void) | 
Sets the radio in standby mode.
| void(* Radio_s::Rx) (uint32_t timeout) | 
Sets the radio in reception mode for the given time.
| timeout | Reception timeout [ms] [0: continuous, others timeout] | 
| void(* Radio_s::SetCadParams) (uint8_t cadSymbolNum, uint8_t cadDetPeak, uint8_t cadDetMin, uint8_t cadExitMode, uint32_t cadTimeout) | 
Set Channel Activity Detection parameters.
| void(* Radio_s::StartCad) (void) | 
Start a Channel Activity Detection.
| void(* Radio_s::SetTxContinuousWave) (uint32_t freq, int8_t power, uint16_t time) | 
Sets the radio in continuous wave transmission mode.
| freq | Channel RF frequency | 
| power | Sets the output power [dBm] | 
| time | Transmission mode timeout [s] | 
| int16_t(* Radio_s::Rssi) (RadioModems_t modem) | 
Reads the current RSSI value.
| rssiValue | Current RSSI value in [dBm] | 
| void(* Radio_s::Write) (uint16_t addr, uint8_t data) | 
Writes the radio register at the specified address.
| addr | Register address | 
| data | New register value | 
| uint8_t(* Radio_s::Read) (uint16_t addr) | 
Reads the radio register at the specified address.
| addr | Register address | 
| data | Register value | 
| void(* Radio_s::WriteBuffer) (uint16_t addr, uint8_t *buffer, uint8_t size) | 
Writes multiple radio registers starting at address.
| addr | First Radio register address | 
| buffer | Buffer containing the new register's values | 
| size | Number of registers to be written | 
| void(* Radio_s::ReadBuffer) (uint16_t addr, uint8_t *buffer, uint8_t size) | 
Reads multiple radio registers starting at address.
| addr | First Radio register address | 
| buffer | Buffer where to copy the registers data | 
| size | Number of registers to be read | 
| void(* Radio_s::SetMaxPayloadLength) (RadioModems_t modem, uint8_t max) | 
Sets the maximum payload length.
| modem | Radio modem to be used [0: FSK, 1: LoRa] | 
| max | Maximum payload length in bytes | 
| void(* Radio_s::SetPublicNetwork) (bool enable) | 
Sets the network to public or private. Updates the sync byte.
| enable | if true, it enables a public network | 
| uint32_t(* Radio_s::GetWakeupTime) (void) | 
Gets the time required for the board plus radio to get out of sleep.[ms].
| time | Radio plus board wakeup time in ms. | 
| void(* Radio_s::BgIrqProcess) (void) | 
Process radio irq in background task (nRF52 & ESP32)
| void(* Radio_s::IrqProcess) (void) | 
Process radio irq.
| void(* Radio_s::IrqProcessAfterDeepSleep) (void) | 
| void(* Radio_s::RxBoosted) (uint32_t timeout) | 
Sets the radio in reception mode with Max LNA gain for the given time.
| timeout | Reception timeout [ms] [0: continuous, others timeout] | 
| void(* Radio_s::SetRxDutyCycle) (uint32_t rxTime, uint32_t sleepTime) | 
Sets the Rx duty cycle management parameters.
| rxTime | Structure describing reception timeout value | 
| sleepTime | Structure describing sleep timeout value | 
 1.8.18
 1.8.18