Interface for the radios, containing the main functions that a radio needs, and five callback functions. More...
#include <LoRaRadio.h>
Public Member Functions | |
virtual void | init_radio (radio_events_t *events)=0 |
Registers radio events with the Mbed LoRaWAN stack and undergoes initialization steps, if any. More... | |
virtual void | radio_reset ()=0 |
Resets the radio module. More... | |
virtual void | sleep (void)=0 |
Put the RF module in sleep mode. More... | |
virtual void | standby (void)=0 |
Sets the radio to standby mode. More... | |
virtual void | set_rx_config (radio_modems_t modem, uint32_t bandwidth, uint32_t datarate, uint8_t coderate, uint32_t bandwidth_afc, uint16_t preamble_len, uint16_t symb_timeout, bool fix_len, uint8_t payload_len, bool crc_on, bool freq_hop_on, uint8_t hop_period, bool iq_inverted, bool rx_continuous)=0 |
Sets reception parameters. More... | |
virtual void | set_tx_config (radio_modems_t modem, int8_t power, uint32_t fdev, uint32_t bandwidth, uint32_t datarate, uint8_t coderate, uint16_t preamble_len, bool fix_len, bool crc_on, bool freq_hop_on, uint8_t hop_period, bool iq_inverted, uint32_t timeout)=0 |
Sets the transmission parameters. More... | |
virtual void | send (uint8_t *buffer, uint8_t size)=0 |
Sends the packet. More... | |
virtual void | receive (void)=0 |
Sets the radio to reception mode. More... | |
virtual void | set_channel (uint32_t freq)=0 |
Sets the carrier frequency. More... | |
virtual uint32_t | random (void)=0 |
Generates a 32 bit random value based on RSSI readings. More... | |
virtual uint8_t | get_status (void)=0 |
Gets the radio status. More... | |
virtual void | set_max_payload_length (radio_modems_t modem, uint8_t max)=0 |
Sets the maximum payload length. More... | |
virtual void | set_public_network (bool enable)=0 |
Sets the network to public or private. More... | |
virtual uint32_t | time_on_air (radio_modems_t modem, uint8_t pkt_len)=0 |
Computes the packet time on air for the given payload. More... | |
virtual bool | perform_carrier_sense (radio_modems_t modem, uint32_t freq, int16_t rssi_threshold, uint32_t max_carrier_sense_time)=0 |
Performs carrier sensing. More... | |
virtual void | start_cad (void)=0 |
Sets the radio to CAD mode. More... | |
virtual bool | check_rf_frequency (uint32_t frequency)=0 |
Checks whether the given RF is in range. More... | |
virtual void | set_tx_continuous_wave (uint32_t freq, int8_t power, uint16_t time)=0 |
Sets the radio to continuous wave transmission mode. More... | |
virtual void | lock (void)=0 |
Acquires exclusive access to this radio. More... | |
virtual void | unlock (void)=0 |
Releases exclusive access to this radio. More... | |
Interface for the radios, containing the main functions that a radio needs, and five callback functions.
Definition at line 440 of file LoRaRadio.h.
|
pure virtual |
Checks whether the given RF is in range.
frequency | The frequency to check. |
Implemented in SX1276_LoRaRadio, SX1272_LoRaRadio, and SX126X_LoRaRadio.
|
pure virtual |
Gets the radio status.
Implemented in SX1276_LoRaRadio, SX1272_LoRaRadio, and SX126X_LoRaRadio.
|
pure virtual |
Registers radio events with the Mbed LoRaWAN stack and undergoes initialization steps, if any.
events | Contains driver callback functions. |
Implemented in SX1276_LoRaRadio, SX1272_LoRaRadio, and SX126X_LoRaRadio.
|
pure virtual |
Acquires exclusive access to this radio.
Implemented in SX1276_LoRaRadio, SX1272_LoRaRadio, and SX126X_LoRaRadio.
|
pure virtual |
Performs carrier sensing.
Checks for a certain time if the RSSI is above a given threshold. This threshold determines whether or not there is a transmission on the channel already.
modem | The type of radio modem. |
freq | The carrier frequency. |
rssi_threshold | The threshold value of RSSI. |
max_carrier_sense_time | The time set for sensing the channel (ms). |
Implemented in SX1276_LoRaRadio, SX1272_LoRaRadio, and SX126X_LoRaRadio.
|
pure virtual |
Resets the radio module.
Implemented in SX1276_LoRaRadio, SX1272_LoRaRadio, and SX126X_LoRaRadio.
|
pure virtual |
Generates a 32 bit random value based on RSSI readings.
Radio.SetRxConfig
or Radio.SetTxConfig
functions must be called.Implemented in SX1276_LoRaRadio, SX1272_LoRaRadio, and SX126X_LoRaRadio.
|
pure virtual |
Sets the radio to reception mode.
To configure the receiver, use the set_rx_config()
API.
Implemented in SX1276_LoRaRadio, SX1272_LoRaRadio, and SX126X_LoRaRadio.
|
pure virtual |
Sends the packet.
Prepares the packet to be sent and sets the radio to transmission mode.
buffer | A pointer to the buffer. |
size | The buffer size. |
Implemented in SX1276_LoRaRadio, SX1272_LoRaRadio, and SX126X_LoRaRadio.
|
pure virtual |
Sets the carrier frequency.
freq | Channel RF frequency. |
Implemented in SX1276_LoRaRadio, SX1272_LoRaRadio, and SX126X_LoRaRadio.
|
pure virtual |
Sets the maximum payload length.
modem | The radio modem [0: FSK, 1: LoRa]. |
max | The maximum payload length in bytes. |
Implemented in SX1276_LoRaRadio, SX1272_LoRaRadio, and SX126X_LoRaRadio.
|
pure virtual |
Sets the network to public or private.
Updates the sync byte. Applies to LoRa modem only.
enable | If true, enables a public network. |
Implemented in SX1276_LoRaRadio, SX1272_LoRaRadio, and SX126X_LoRaRadio.
|
pure virtual |
Sets reception parameters.
modem | The radio modem [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] |
bandwidth_afc | Sets the AFC bandwidth (FSK only). FSK : >= 2600 and <= 250000 Hz LoRa: N/A (set to 0) |
preamble_len | Sets the preamble length (LoRa only). FSK : N/A (set to 0) LoRa: Length in symbols (the hardware adds four more symbols). |
symb_timeout | Sets the RxSingle timeout value. FSK : Timeout number of bytes LoRa: Timeout in symbols |
fix_len | Fixed length packets [0: variable, 1: fixed]. |
payload_len | Sets the payload length when fixed length is used. |
crc_on | Enables/disables CRC [0: OFF, 1: ON]. |
freq_hop_on | Enables/disables intra-packet frequency hopping [0: OFF, 1: ON] (LoRa only). |
hop_period | The number of symbols bewteen each hop (LoRa only). |
iq_inverted | Inverts the IQ signals (LoRa only). FSK : N/A (set to 0) LoRa: [0: not inverted, 1: inverted] |
rx_continuous | Sets the reception to continuous mode. [false: single mode, true: continuous mode] |
Implemented in SX1276_LoRaRadio, SX1272_LoRaRadio, and SX126X_LoRaRadio.
|
pure virtual |
Sets the transmission parameters.
modem | The radio modem [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] |
preamble_len | Sets the preamble length. |
fix_len | Fixed length packets [0: variable, 1: fixed]. |
crc_on | Enables/disables CRC [0: OFF, 1: ON]. |
freq_hop_on | Enables/disables intra-packet frequency hopping [0: OFF, 1: ON] (LoRa only). |
hop_period | The number of symbols between each hop (LoRa only). |
iq_inverted | Inverts IQ signals (LoRa only) FSK : N/A (set to 0). LoRa: [0: not inverted, 1: inverted] |
timeout | The transmission timeout [ms]. |
Implemented in SX1276_LoRaRadio, SX1272_LoRaRadio, and SX126X_LoRaRadio.
|
pure virtual |
Sets the radio to continuous wave transmission mode.
freq | The RF frequency of the channel. |
power | The output power [dBm]. |
time | The transmission mode timeout [s]. |
Implemented in SX1276_LoRaRadio, SX1272_LoRaRadio, and SX126X_LoRaRadio.
|
pure virtual |
Put the RF module in sleep mode.
Implemented in SX1276_LoRaRadio, SX1272_LoRaRadio, and SX126X_LoRaRadio.
|
pure virtual |
Sets the radio to standby mode.
Implemented in SX1276_LoRaRadio, SX1272_LoRaRadio, and SX126X_LoRaRadio.
|
pure virtual |
Sets the radio to CAD mode.
Implemented in SX1276_LoRaRadio, SX1272_LoRaRadio, and SX126X_LoRaRadio.
|
pure virtual |
Computes the packet time on air for the given payload.
SetRxConfig
or SetTxConfig
.modem | The radio modem [0: FSK, 1: LoRa]. |
pkt_len | The packet payload length. |
airTime
for the given packet payload length. Implemented in SX1276_LoRaRadio, SX1272_LoRaRadio, and SX126X_LoRaRadio.
|
pure virtual |
Releases exclusive access to this radio.
Implemented in SX1276_LoRaRadio, SX1272_LoRaRadio, and SX126X_LoRaRadio.