XRange SX1272Lib
Dependents: XRangePingPong XRange-LoRaWAN-lmic-app lora-transceiver
Fork of SX1276Lib by
Radio Class Reference
#include <radio.h>
Inherited by SX1272.
Public Member Functions | |
Radio (void(*txDone)(), void(*txTimeout)(), void(*rxDone)(uint8_t *payload, uint16_t size, int16_t rssi, int8_t snr), void(*rxTimeout)(), void(*rxError)(), void(*fhssChangeChannel)(uint8_t channelIndex), void(*cadDone)(bool channelActivityDetected)) | |
Constructor of the radio object, the parameters are the callback functions described in the header. | |
virtual RadioState | GetState (void)=0 |
virtual void | SetModem (ModemType modem)=0 |
Configures the radio with the given modem. | |
virtual void | SetChannel (uint32_t freq)=0 |
Sets the channel frequency. | |
virtual bool | IsChannelFree (ModemType modem, uint32_t freq, int8_t rssiThresh)=0 |
Sets the channels configuration. | |
virtual uint32_t | Random (void)=0 |
Generates a 32 bits random value based on the RSSI readings. | |
virtual void | SetRxConfig (ModemType 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)=0 |
Sets the reception parameters. | |
virtual void | SetTxConfig (ModemType 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)=0 |
Sets the transmission parameters. | |
virtual bool | CheckRfFrequency (uint32_t frequency)=0 |
Checks if the given RF frequency is supported by the hardware. | |
virtual double | TimeOnAir (ModemType modem, uint8_t pktLen)=0 |
Computes the packet time on air for the given payload. | |
virtual void | Send (uint8_t *buffer, uint8_t size)=0 |
Sends the buffer of size. Prepares the packet to be sent and sets the radio in transmission. | |
virtual void | Sleep (void)=0 |
Sets the radio in sleep mode. | |
virtual void | Standby (void)=0 |
Sets the radio in standby mode. | |
virtual void | StartCad (void)=0 |
Sets the radio in CAD mode. | |
virtual void | Rx (uint32_t timeout)=0 |
Sets the radio in reception mode for the given time. | |
virtual void | Tx (uint32_t timeout)=0 |
Sets the radio in transmission mode for the given time. | |
virtual int16_t | GetRssi (ModemType modem)=0 |
Reads the current RSSI value. | |
virtual void | Write (uint8_t addr, uint8_t data)=0 |
Writes the radio register at the specified address. | |
virtual uint8_t | Read (uint8_t addr)=0 |
Reads the radio register at the specified address. | |
virtual void | Write (uint8_t addr, uint8_t *buffer, uint8_t size)=0 |
Writes multiple radio registers starting at address. | |
virtual void | Read (uint8_t addr, uint8_t *buffer, uint8_t size)=0 |
Reads multiple radio registers starting at address. | |
virtual void | WriteFifo (uint8_t *buffer, uint8_t size)=0 |
Writes the buffer contents to the SX1276 FIFO. | |
virtual void | ReadFifo (uint8_t *buffer, uint8_t size)=0 |
Reads the contents of the SX1276 FIFO. | |
Protected Attributes | |
void(* | txDone )() |
Tx Done callback prototype. | |
void(* | txTimeout )() |
Tx Timeout callback prototype. | |
void(* | rxDone )(uint8_t *payload, uint16_t size, int16_t rssi, int8_t snr) |
Rx Done callback prototype. | |
void(* | rxTimeout )() |
Rx Timeout callback prototype. | |
void(* | rxError )() |
Rx Error callback prototype. | |
void(* | fhssChangeChannel )(uint8_t CurrentChannel) |
FHSS Change Channel callback prototype. | |
void(* | cadDone )(bool channelActivityDetected) |
CAD Done callback prototype. |
Detailed Description
Interface for the radios, contains the main functions that a radio needs, and 5 callback functions
Definition at line 25 of file radio.h.
Constructor & Destructor Documentation
Radio | ( | void(*)() | txDone, |
void(*)() | txTimeout, | ||
void(*)(uint8_t *payload, uint16_t size, int16_t rssi, int8_t snr) | rxDone, | ||
void(*)() | rxTimeout, | ||
void(*)() | rxError, | ||
void(*)(uint8_t channelIndex) | fhssChangeChannel, | ||
void(*)(bool channelActivityDetected) | cadDone | ||
) |
Member Function Documentation
virtual bool CheckRfFrequency | ( | uint32_t | frequency ) | [pure virtual] |
virtual int16_t GetRssi | ( | ModemType | modem ) | [pure virtual] |
Reads the current RSSI value.
- Return values:
-
rssiValue Current RSSI value in [dBm]
Implemented in SX1272.
virtual RadioState GetState | ( | void | ) | [pure virtual] |
virtual bool IsChannelFree | ( | ModemType | modem, |
uint32_t | freq, | ||
int8_t | rssiThresh | ||
) | [pure virtual] |
virtual uint32_t Random | ( | void | ) | [pure virtual] |
Generates a 32 bits random value based on the RSSI readings.
- Remarks:
- This function sets the radio in LoRa modem mode and disables all interrupts. After calling this function either Radio.SetRxConfig or Radio.SetTxConfig functions must be called.
- Return values:
-
randomValue 32 bits random value
Implemented in SX1272.
virtual uint8_t Read | ( | uint8_t | addr ) | [pure virtual] |
virtual void Read | ( | uint8_t | addr, |
uint8_t * | buffer, | ||
uint8_t | size | ||
) | [pure virtual] |
virtual void ReadFifo | ( | uint8_t * | buffer, |
uint8_t | size | ||
) | [pure virtual] |
virtual void Rx | ( | uint32_t | timeout ) | [pure virtual] |
Sets the radio in reception mode for the given time.
- Parameters:
-
[IN] timeout Reception timeout [us] [0: continuous, others timeout]
Implemented in SX1272.
virtual void Send | ( | uint8_t * | buffer, |
uint8_t | size | ||
) | [pure virtual] |
Sends the buffer of size. Prepares the packet to be sent and sets the radio in transmission.
- Parameters:
-
[IN],: buffer Buffer pointer [IN],: size Buffer size
Implemented in SX1272.
virtual void SetChannel | ( | uint32_t | freq ) | [pure virtual] |
virtual void SetModem | ( | ModemType | modem ) | [pure virtual] |
Configures the radio with the given modem.
- Parameters:
-
[IN] modem Modem to be used [0: FSK, 1: LoRa]
Implemented in SX1272.
virtual void SetRxConfig | ( | ModemType | 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 | ||
) | [pure virtual] |
Sets the reception parameters.
- Parameters:
-
[IN] modem Radio modem to be used [0: FSK, 1: LoRa] [IN] bandwidth Sets the bandwidth FSK : >= 2600 and <= 250000 Hz LoRa: [0: 125 kHz, 1: 250 kHz, 2: 500 kHz, 3: Reserved] [IN] 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] [IN] 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] [IN] bandwidthAfc Sets the AFC Bandwidth ( FSK only ) FSK : >= 2600 and <= 250000 Hz LoRa: N/A ( set to 0 ) [IN] preambleLen Sets the Preamble length ( LoRa only ) FSK : N/A ( set to 0 ) LoRa: Length in symbols ( the hardware adds 4 more symbols ) [IN] symbTimeout Sets the RxSingle timeout value ( LoRa only ) FSK : N/A ( set to 0 ) LoRa: timeout in symbols [IN] fixLen Fixed length packets [0: variable, 1: fixed] [IN] payloadLen Sets payload length when fixed lenght is used [IN] crcOn Enables/Disables the CRC [0: OFF, 1: ON] [IN] freqHopOn Enables disables the intra-packet frequency hopping [0: OFF, 1: ON] (LoRa only) [IN] hopPeriod Number of symbols bewteen each hop (LoRa only) [IN] iqInverted Inverts IQ signals ( LoRa only ) FSK : N/A ( set to 0 ) LoRa: [0: not inverted, 1: inverted] [IN] rxContinuous Sets the reception in continuous mode [false: single mode, true: continuous mode]
Implemented in SX1272.
virtual void SetTxConfig | ( | ModemType | 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 | ||
) | [pure virtual] |
Sets the transmission parameters.
- Parameters:
-
[IN] modem Radio modem to be used [0: FSK, 1: LoRa] [IN] power Sets the output power [dBm] [IN] fdev Sets the frequency deviation ( FSK only ) FSK : [Hz] LoRa: 0 [IN] bandwidth Sets the bandwidth ( LoRa only ) FSK : 0 LoRa: [0: 125 kHz, 1: 250 kHz, 2: 500 kHz, 3: Reserved] [IN] 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] [IN] 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] [IN] preambleLen Sets the preamble length [IN] fixLen Fixed length packets [0: variable, 1: fixed] [IN] crcOn Enables disables the CRC [0: OFF, 1: ON] [IN] freqHopOn Enables disables the intra-packet frequency hopping [0: OFF, 1: ON] (LoRa only) [IN] hopPeriod Number of symbols bewteen each hop (LoRa only) [IN] iqInverted Inverts IQ signals ( LoRa only ) FSK : N/A ( set to 0 ) LoRa: [0: not inverted, 1: inverted] [IN] timeout Transmission timeout [us]
Implemented in SX1272.
virtual void Sleep | ( | void | ) | [pure virtual] |
Sets the radio in sleep mode.
Implemented in SX1272.
virtual void Standby | ( | void | ) | [pure virtual] |
Sets the radio in standby mode.
Implemented in SX1272.
virtual void StartCad | ( | void | ) | [pure virtual] |
Sets the radio in CAD mode.
Implemented in SX1272.
virtual double TimeOnAir | ( | ModemType | modem, |
uint8_t | pktLen | ||
) | [pure virtual] |
Computes the packet time on air for the given payload.
Can only be called once SetRxConfig or SetTxConfig have been called
- Parameters:
-
[IN] modem Radio modem to be used [0: FSK, 1: LoRa] [IN] pktLen Packet payload length
- Return values:
-
airTime Computed airTime for the given packet payload length
Implemented in SX1272.
virtual void Tx | ( | uint32_t | timeout ) | [pure virtual] |
Sets the radio in transmission mode for the given time.
- Parameters:
-
[IN] timeout Transmission timeout [us] [0: continuous, others timeout]
Implemented in SX1272.
virtual void Write | ( | uint8_t | addr, |
uint8_t | data | ||
) | [pure virtual] |
virtual void Write | ( | uint8_t | addr, |
uint8_t * | buffer, | ||
uint8_t | size | ||
) | [pure virtual] |
virtual void WriteFifo | ( | uint8_t * | buffer, |
uint8_t | size | ||
) | [pure virtual] |
Field Documentation
void( * cadDone)(bool channelActivityDetected) [protected] |
void( * fhssChangeChannel)(uint8_t CurrentChannel) [protected] |
void( * rxDone)(uint8_t *payload, uint16_t size, int16_t rssi, int8_t snr) [protected] |
Rx Done callback prototype.
- Parameters:
-
[IN] payload Received buffer pointer [IN] size Received buffer size [IN] rssi RSSI value computed while receiving the frame [dBm] [IN] snr Raw SNR value given by the radio hardware FSK : N/A ( set to 0 ) LoRa: SNR value in dB
void( * rxTimeout)() [protected] |
Generated on Wed Jul 13 2022 07:28:43 by 1.7.2