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.