From 20ae802ba2e0231571ca8732af932a3b24b23d6c Mon Sep 17 00:00:00 2001 From: jgromes Date: Sun, 27 Oct 2024 19:30:24 +0000 Subject: [PATCH] =?UTF-8?q?Deploying=20to=20gh-pages=20from=20=20@=200156c?= =?UTF-8?q?9004efee62dca24aa5a4e012775f233d3d4=20=F0=9F=9A=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- _build_opt_8h_source.html | 4 +- _c_c1101_8h_source.html | 6 +- _external_radio_8h_source.html | 2 +- _l_l_c_c68_8h_source.html | 2 +- _l_r1110_8h_source.html | 4 +- _l_r1120_8h_source.html | 4 +- _l_r1121_8h_source.html | 2 +- _l_r11x0_8h_source.html | 2094 +++++++++++++------------ _module_8h_source.html | 390 ++--- _physical_layer_8h_source.html | 2 +- _r_f69_8h_source.html | 6 +- _s_t_m32_w_lx_8h_source.html | 8 +- _s_t_m32_w_lx___module_8h_source.html | 2 +- _s_x1231_8h_source.html | 2 +- _s_x1233_8h_source.html | 2 +- _s_x1261_8h_source.html | 2 +- _s_x1262_8h_source.html | 2 +- _s_x1268_8h_source.html | 2 +- _s_x126x_8h_source.html | 8 +- _s_x1272_8h_source.html | 2 +- _s_x1273_8h_source.html | 2 +- _s_x1276_8h_source.html | 2 +- _s_x1277_8h_source.html | 2 +- _s_x1278_8h_source.html | 2 +- _s_x1279_8h_source.html | 2 +- _s_x127x_8h_source.html | 6 +- _s_x1280_8h_source.html | 2 +- _s_x1281_8h_source.html | 2 +- _s_x1282_8h_source.html | 2 +- _s_x128x_8h_source.html | 6 +- _si4430_8h_source.html | 2 +- _si4431_8h_source.html | 2 +- _si4432_8h_source.html | 2 +- _si443x_8h_source.html | 6 +- class_c_c1101.html | 8 +- class_l_r11x0.html | 8 +- class_module.html | 8 +- class_r_f69.html | 8 +- class_s_x126x.html | 8 +- class_s_x127x.html | 8 +- class_s_x128x.html | 8 +- class_si443x.html | 8 +- n_r_f24_8h_source.html | 2 +- 43 files changed, 1328 insertions(+), 1324 deletions(-) diff --git a/_build_opt_8h_source.html b/_build_opt_8h_source.html index 38fc7bac..c4263813 100644 --- a/_build_opt_8h_source.html +++ b/_build_opt_8h_source.html @@ -217,7 +217,7 @@ $(document).ready(function(){initNavTree('_build_opt_8h_source.html',''); initRe
129  * Platform-specific configuration.
130  *
131  * RADIOLIB_PLATFORM - platform name, used in debugging to quickly check the correct platform is detected.
-
132  * RADIOLIB_NC - alias for unused pin, usually the largest possible value of uint8_t.
+
132  * RADIOLIB_NC - alias for unused pin, usually the largest possible value of uint32_t.
133  * RADIOLIB_DEFAULT_SPI - default SPIClass instance to use.
134  * RADIOLIB_NONVOLATILE - macro to place variable into program storage (usually Flash).
135  * RADIOLIB_NONVOLATILE_READ_BYTE - function/macro to read variables saved in program storage (usually Flash).
@@ -510,7 +510,7 @@ $(document).ready(function(){initNavTree('_build_opt_8h_source.html',''); initRe
422  // generic non-Arduino platform
423  #define RADIOLIB_PLATFORM "Generic"
424 
-
425  #define RADIOLIB_NC (0xFF)
+
425  #define RADIOLIB_NC (0xFFFFFFFF)
426  #define RADIOLIB_NONVOLATILE
427  #define RADIOLIB_NONVOLATILE_READ_BYTE(addr) (*((uint8_t *)(void *)(addr)))
428  #define RADIOLIB_NONVOLATILE_READ_DWORD(addr) (*((uint32_t *)(void *)(addr)))
diff --git a/_c_c1101_8h_source.html b/_c_c1101_8h_source.html index b13324bb..f89022cc 100644 --- a/_c_c1101_8h_source.html +++ b/_c_c1101_8h_source.html @@ -856,14 +856,14 @@ $(document).ready(function(){initNavTree('_c_c1101_8h_source.html',''); initResi
int16_t transmitDirectAsync(uint32_t frf=0)
Starts asynchronous direct mode transmission.
Definition: CC1101.cpp:198
int16_t finishTransmit() override
Clean up after transmission is done.
Definition: CC1101.cpp:335
int16_t setOOK(bool enableOOK)
Enables/disables OOK modulation instead of FSK.
Definition: CC1101.cpp:761
-
Implements all common low-level methods to control the wireless module. Every module class contains o...
Definition: Module.h:66
-
static const size_t RFSWITCH_MAX_PINS
The maximum number of pins supported by the RF switch code. Note: It is not recommended to use this c...
Definition: Module.h:75
+
Implements all common low-level methods to control the wireless module. Every module class contains o...
Definition: Module.h:73
+
static const size_t RFSWITCH_MAX_PINS
The maximum number of pins supported by the RF switch code. Note: It is not recommended to use this c...
Definition: Module.h:82
Provides common interface for protocols that run on LoRa/FSK modules, such as RTTY or LoRaWAN....
Definition: PhysicalLayer.h:151
virtual int16_t readData(uint8_t *data, size_t len)
Reads data that was received after calling startReceive method.
Definition: PhysicalLayer.cpp:206
int16_t transmit(const char *str, uint8_t addr=0)
C-string transmit method.
Definition: PhysicalLayer.cpp:53
int16_t startTransmit(const char *str, uint8_t addr=0)
Interrupt-driven Arduino String transmit method. Unlike the standard transmit method,...
Definition: PhysicalLayer.cpp:148
virtual int16_t receive(uint8_t *data, size_t len)
Binary receive method. Must be implemented in module class.
Definition: PhysicalLayer.cpp:111
-
Description of RF switch pin states for a single mode. See setRfSwitchTable for details.
Definition: Module.h:82
+
Description of RF switch pin states for a single mode. See setRfSwitchTable for details.
Definition: Module.h:89
diff --git a/_external_radio_8h_source.html b/_external_radio_8h_source.html index 97669a0e..c8426823 100644 --- a/_external_radio_8h_source.html +++ b/_external_radio_8h_source.html @@ -133,7 +133,7 @@ $(document).ready(function(){initNavTree('_external_radio_8h_source.html',''); i
Module * getMod() override
Method to retrieve pointer to the underlying Module instance.
Definition: ExternalRadio.cpp:40
int16_t setEncoding(uint8_t encoding) override
Dummy implementation overriding PhysicalLayer.
Definition: ExternalRadio.cpp:54
ExternalRadio & operator=(const ExternalRadio &ext)
Overload for assignment operator.
Definition: ExternalRadio.cpp:24
-
Implements all common low-level methods to control the wireless module. Every module class contains o...
Definition: Module.h:66
+
Implements all common low-level methods to control the wireless module. Every module class contains o...
Definition: Module.h:73
Provides common interface for protocols that run on LoRa/FSK modules, such as RTTY or LoRaWAN....
Definition: PhysicalLayer.h:151
Hardware abstraction library base interface.
Definition: Hal.h:13
diff --git a/_l_l_c_c68_8h_source.html b/_l_l_c_c68_8h_source.html index f683a2ab..1de61dd2 100644 --- a/_l_l_c_c68_8h_source.html +++ b/_l_l_c_c68_8h_source.html @@ -134,7 +134,7 @@ $(document).ready(function(){initNavTree('_l_l_c_c68_8h_source.html',''); initRe
int16_t setDataRate(DataRate_t dr) override
Set data.
Definition: LLCC68.cpp:56
int16_t setSpreadingFactor(uint8_t sf)
Sets LoRa spreading factor. Allowed values range from 5 to 11, depending on currently set spreading f...
Definition: LLCC68.cpp:38
int16_t setModem(ModemType_t modem) override
Set modem for the radio to use. Will perform full reset and reconfigure the radio using its default p...
Definition: LLCC68.cpp:119
-
Implements all common low-level methods to control the wireless module. Every module class contains o...
Definition: Module.h:66
+
Implements all common low-level methods to control the wireless module. Every module class contains o...
Definition: Module.h:73
Derived class for SX1262 modules.
Definition: SX1262.h:22
Common data rate structure.
Definition: PhysicalLayer.h:74
diff --git a/_l_r1110_8h_source.html b/_l_r1110_8h_source.html index 582d3009..34bacf10 100644 --- a/_l_r1110_8h_source.html +++ b/_l_r1110_8h_source.html @@ -142,8 +142,8 @@ $(document).ready(function(){initNavTree('_l_r1110_8h_source.html',''); initResi
int16_t setFrequency(float freq) override
Sets carrier frequency. Allowed values are in range from 150.0 to 960.0 MHz. Will automatically perfo...
Definition: LR1110.cpp:49
int16_t checkOutputPower(int8_t power, int8_t *clipped) override
Check if output power is configurable. This method is needed for compatibility with PhysicalLayer::ch...
Definition: LR1110.cpp:93
int16_t beginGFSK(float freq=434.0, float br=4.8, float freqDev=5.0, float rxBw=156.2, int8_t power=10, uint16_t preambleLength=16, float tcxoVoltage=1.6)
Initialization method for FSK modem.
Definition: LR1110.cpp:23
-
Base class for LR11x0 series. All derived classes for LR11x0 (e.g. LR1110 or LR1120) inherit from thi...
Definition: LR11x0.h:872
-
Implements all common low-level methods to control the wireless module. Every module class contains o...
Definition: Module.h:66
+
Base class for LR11x0 series. All derived classes for LR11x0 (e.g. LR1110 or LR1120) inherit from thi...
Definition: LR11x0.h:874
+
Implements all common low-level methods to control the wireless module. Every module class contains o...
Definition: Module.h:73
diff --git a/_l_r1120_8h_source.html b/_l_r1120_8h_source.html index 3962f7cd..7e390a39 100644 --- a/_l_r1120_8h_source.html +++ b/_l_r1120_8h_source.html @@ -145,8 +145,8 @@ $(document).ready(function(){initNavTree('_l_r1120_8h_source.html',''); initResi
int16_t checkOutputPower(int8_t power, int8_t *clipped) override
Check if output power is configurable. This method is needed for compatibility with PhysicalLayer::ch...
Definition: LR1120.cpp:105
int16_t beginLRFHSS(float freq=434.0, uint8_t bw=RADIOLIB_LR11X0_LR_FHSS_BW_722_66, uint8_t cr=RADIOLIB_LR11X0_LR_FHSS_CR_2_3, bool narrowGrid=true, int8_t power=10, float tcxoVoltage=1.6)
Initialization method for LR-FHSS modem.
Definition: LR1120.cpp:36
LR1120(Module *mod)
Default constructor.
Definition: LR1120.cpp:6
-
Base class for LR11x0 series. All derived classes for LR11x0 (e.g. LR1110 or LR1120) inherit from thi...
Definition: LR11x0.h:872
-
Implements all common low-level methods to control the wireless module. Every module class contains o...
Definition: Module.h:66
+
Base class for LR11x0 series. All derived classes for LR11x0 (e.g. LR1110 or LR1120) inherit from thi...
Definition: LR11x0.h:874
+
Implements all common low-level methods to control the wireless module. Every module class contains o...
Definition: Module.h:73
diff --git a/_l_r1121_8h_source.html b/_l_r1121_8h_source.html index 984bc505..c8507c39 100644 --- a/_l_r1121_8h_source.html +++ b/_l_r1121_8h_source.html @@ -113,7 +113,7 @@ $(document).ready(function(){initNavTree('_l_r1121_8h_source.html',''); initResi
Derived class for LR1120 modules.
Definition: LR1120.h:15
Derived class for LR1121 modules.
Definition: LR1121.h:16
LR1121(Module *mod)
Default constructor.
Definition: LR1121.cpp:4
-
Implements all common low-level methods to control the wireless module. Every module class contains o...
Definition: Module.h:66
+
Implements all common low-level methods to control the wireless module. Every module class contains o...
Definition: Module.h:73
diff --git a/_l_r11x0_8h_source.html b/_l_r11x0_8h_source.html index 37310176..437a3af1 100644 --- a/_l_r11x0_8h_source.html +++ b/_l_r11x0_8h_source.html @@ -338,970 +338,972 @@ $(document).ready(function(){initNavTree('_l_r11x0_8h_source.html',''); initResi
250 #define RADIOLIB_LR11X0_RFSW_DIO8_DISABLED (0x00UL << 3) // 4 0 DIO8 disabled (default)
251 #define RADIOLIB_LR11X0_RFSW_DIO10_ENABLED (0x01UL << 4) // 4 0 RF switch: DIO10 enabled
252 #define RADIOLIB_LR11X0_RFSW_DIO10_DISABLED (0x00UL << 4) // 4 0 DIO10 disabled (default)
-
253 #define RADIOLIB_LR11X0_DIO5 (0)
-
254 #define RADIOLIB_LR11X0_DIO6 (1)
-
255 #define RADIOLIB_LR11X0_DIO7 (2)
-
256 #define RADIOLIB_LR11X0_DIO8 (3)
-
257 #define RADIOLIB_LR11X0_DIO10 (4)
-
258 
-
259 // RADIOLIB_LR11X0_CMD_SET_DIO_IRQ_PARAMS
-
260 #define RADIOLIB_LR11X0_IRQ_TX_DONE (0x01UL << 2) // 31 0 interrupt: packet transmitted
-
261 #define RADIOLIB_LR11X0_IRQ_RX_DONE (0x01UL << 3) // 31 0 packet received
-
262 #define RADIOLIB_LR11X0_IRQ_PREAMBLE_DETECTED (0x01UL << 4) // 31 0 preamble detected
-
263 #define RADIOLIB_LR11X0_IRQ_SYNC_WORD_HEADER_VALID (0x01UL << 5) // 31 0 sync word or LoRa header valid
-
264 #define RADIOLIB_LR11X0_IRQ_HEADER_ERR (0x01UL << 6) // 31 0 LoRa header CRC error
-
265 #define RADIOLIB_LR11X0_IRQ_CRC_ERR (0x01UL << 7) // 31 0 packet CRC error
-
266 #define RADIOLIB_LR11X0_IRQ_CAD_DONE (0x01UL << 8) // 31 0 CAD completed
-
267 #define RADIOLIB_LR11X0_IRQ_CAD_DETECTED (0x01UL << 9) // 31 0 CAD detected
-
268 #define RADIOLIB_LR11X0_IRQ_TIMEOUT (0x01UL << 10) // 31 0 Rx or Tx timeout
-
269 #define RADIOLIB_LR11X0_IRQ_LR_FHSS_HOP (0x01UL << 11) // 31 0 FHSS hop
-
270 #define RADIOLIB_LR11X0_IRQ_GNSS_DONE (0x01UL << 19) // 31 0 GNSS scan finished
-
271 #define RADIOLIB_LR11X0_IRQ_WIFI_DONE (0x01UL << 20) // 31 0 WiFi scan finished
-
272 #define RADIOLIB_LR11X0_IRQ_LBD (0x01UL << 21) // 31 0 low battery detected
-
273 #define RADIOLIB_LR11X0_IRQ_CMD_ERROR (0x01UL << 22) // 31 0 command error
-
274 #define RADIOLIB_LR11X0_IRQ_ERROR (0x01UL << 23) // 31 0 some other error than CMD_ERR
-
275 #define RADIOLIB_LR11X0_IRQ_FSK_LEN_ERROR (0x01UL << 24) // 31 0 FSK packet received with length error
-
276 #define RADIOLIB_LR11X0_IRQ_FSK_ADDR_ERROR (0x01UL << 25) // 31 0 FSK packet received with address error
-
277 #define RADIOLIB_LR11X0_IRQ_LORA_RX_TIMESTAMP (0x01UL << 27) // 31 0 last LoRa symbol was received (timestamp source)
-
278 #define RADIOLIB_LR11X0_IRQ_GNSS_ABORT (0x01UL << 28) // 31 0 GNSS scan aborted
-
279 #define RADIOLIB_LR11X0_IRQ_ALL (0x1BF80FFCUL) // 31 0 all interrupts
-
280 #define RADIOLIB_LR11X0_IRQ_NONE (0x00UL << 0) // 31 0 no interrupts
-
281 
-
282 // RADIOLIB_LR11X0_CMD_CONFIG_LF_LOCK
-
283 #define RADIOLIB_LR11X0_LF_CLK_RC (0x00UL << 0) // 1 0 32.768 kHz source: RC oscillator
-
284 #define RADIOLIB_LR11X0_LF_CLK_XOSC (0x01UL << 0) // 1 0 crystal oscillator
-
285 #define RADIOLIB_LR11X0_LF_CLK_EXT (0x02UL << 0) // 1 0 external signal on DIO11
-
286 #define RADIOLIB_LR11X0_LF_BUSY_RELEASE_DISABLED (0x00UL << 2) // 2 2
-
287 #define RADIOLIB_LR11X0_LF_BUSY_RELEASE_ENABLED (0x01UL << 2) // 2 2
-
288 
-
289 // RADIOLIB_LR11X0_CMD_SET_TCXO_MODE
-
290 #define RADIOLIB_LR11X0_TCXO_VOLTAGE_1_6 (0x00UL << 0) // 2 0 TCXO supply voltage: 1.6V
-
291 #define RADIOLIB_LR11X0_TCXO_VOLTAGE_1_7 (0x01UL << 0) // 2 0 1.7V
-
292 #define RADIOLIB_LR11X0_TCXO_VOLTAGE_1_8 (0x02UL << 0) // 2 0 1.8V
-
293 #define RADIOLIB_LR11X0_TCXO_VOLTAGE_2_2 (0x03UL << 0) // 2 0 2.2V
-
294 #define RADIOLIB_LR11X0_TCXO_VOLTAGE_2_4 (0x04UL << 0) // 2 0 2.4V
-
295 #define RADIOLIB_LR11X0_TCXO_VOLTAGE_2_7 (0x05UL << 0) // 2 0 2.7V
-
296 #define RADIOLIB_LR11X0_TCXO_VOLTAGE_3_0 (0x06UL << 0) // 2 0 3.0V
-
297 #define RADIOLIB_LR11X0_TCXO_VOLTAGE_3_3 (0x07UL << 0) // 2 0 3.3V
-
298 
-
299 // RADIOLIB_LR11X0_CMD_SET_SLEEP
-
300 #define RADIOLIB_LR11X0_SLEEP_RETENTION_DISABLED (0x00UL << 0) // 0 0 configuration retention in sleep mode: disabled
-
301 #define RADIOLIB_LR11X0_SLEEP_RETENTION_ENABLED (0x01UL << 0) // 0 0 enabled
-
302 #define RADIOLIB_LR11X0_SLEEP_WAKEUP_DISABLED (0x00UL << 0) // 1 1 automated wakeup: disabled
-
303 #define RADIOLIB_LR11X0_SLEEP_WAKEUP_ENABLED (0x01UL << 0) // 1 1 enabled
-
304 
-
305 // RADIOLIB_LR11X0_CMD_SET_STANDBY
-
306 #define RADIOLIB_LR11X0_STANDBY_RC (0x00UL << 0) // 7 0 standby mode: RC oscillator
-
307 #define RADIOLIB_LR11X0_STANDBY_XOSC (0x00UL << 0) // 7 0 XTAL/TCXO oscillator
-
308 
-
309 // RADIOLIB_LR11X0_CMD_ERASE_INFO_PAGE
-
310 #define RADIOLIB_LR11X0_INFO_PAGE (1)
-
311 
-
312 // RADIOLIB_LR11X0_CMD_GET_CHIP_EUI
-
313 #define RADIOLIB_LR11X0_EUI_LEN (8)
-
314 
-
315 // RADIOLIB_LR11X0_CMD_DERIVE_ROOT_KEYS_AND_GET_PIN
-
316 #define RADIOLIB_LR11X0_PIN_LEN (4)
-
317 
-
318 // RADIOLIB_LR11X0_CMD_GET_PACKET_STATUS
-
319 #define RADIOLIB_LR11X0_RX_STATUS_ADDR_ERR (0x01UL << 5) // 7 0 Rx status: address filtering error
-
320 #define RADIOLIB_LR11X0_RX_STATUS_CRC_ERR (0x01UL << 4) // 7 0 CRC error
-
321 #define RADIOLIB_LR11X0_RX_STATUS_LEN_ERR (0x01UL << 3) // 7 0 length filtering error
-
322 #define RADIOLIB_LR11X0_RX_STATUS_ABORTED (0x01UL << 2) // 7 0 packet reception aborted
-
323 #define RADIOLIB_LR11X0_RX_STATUS_PACKET_RECEIVED (0x01UL << 1) // 7 0 packet received
-
324 #define RADIOLIB_LR11X0_RX_STATUS_PACKET_SENT (0x01UL << 0) // 7 0 packet sent
-
325 
-
326 // RADIOLIB_LR11X0_CMD_SET_GFSK_SYNC_WORD
-
327 #define RADIOLIB_LR11X0_GFSK_SYNC_WORD_LEN (8)
-
328 
-
329 // RADIOLIB_LR11X0_CMD_SET_LORA_PUBLIC_NETWORK
-
330 #define RADIOLIB_LR11X0_LORA_PRIVATE_NETWORK (0x00UL << 0) // 7 0 LoRa sync word: private network
-
331 #define RADIOLIB_LR11X0_LORA_PUBLIC_NETWORK (0x01UL << 0) // 7 0 public network
-
332 
-
333 // RADIOLIB_LR11X0_CMD_SET_RX
-
334 #define RADIOLIB_LR11X0_RX_TIMEOUT_NONE (0x000000UL) // 23 0 Rx timeout duration: no timeout (Rx single mode)
-
335 #define RADIOLIB_LR11X0_RX_TIMEOUT_INF (0xFFFFFFUL) // 23 0 infinite (Rx continuous mode)
-
336 
-
337 // RADIOLIB_LR11X0_CMD_SET_TX
-
338 #define RADIOLIB_LR11X0_TX_TIMEOUT_NONE (0x000000UL) // 23 0 disable Tx timeout
-
339 
-
340 // RADIOLIB_LR11X0_CMD_AUTO_TX_RX
-
341 #define RADIOLIB_LR11X0_AUTO_TX_RX_DISABLED (0xFFFFFFUL) // 23 0 disable auto Tx/Rx mode
-
342 #define RADIOLIB_LR11X0_AUTO_TX_RX_SKIP_INT (0x000000UL) // 23 0 skip intermediary mode
-
343 #define RADIOLIB_LR11X0_AUTO_INTERMEDIARY_MODE_SLEEP (0x00UL << 0) // 1 0 intermediary mode: sleep
-
344 #define RADIOLIB_LR11X0_AUTO_INTERMEDIARY_MODE_STBY_RC (0x01UL << 0) // 1 0 standby with RC
-
345 #define RADIOLIB_LR11X0_AUTO_INTERMEDIARY_MODE_STBY_XOSC (0x02UL << 0) // 1 0 standby with XOSC
-
346 #define RADIOLIB_LR11X0_AUTO_INTERMEDIARY_MODE_FS (0x03UL << 0) // 1 0 frequency synthesis
-
347 #define RADIOLIB_LR11X0_AUTO_TX_RX_TIMEOUT_DISABLED (0x000000UL) // 23 0 disable timeout of the second mode
-
348 
-
349 // RADIOLIB_LR11X0_CMD_SET_CAD_PARAMS
-
350 #define RADIOLIB_LR11X0_CAD_EXIT_MODE_STBY_RC (0x00UL << 0) // 7 0 mode to set after CAD: standby with RC
-
351 #define RADIOLIB_LR11X0_CAD_EXIT_MODE_RX (0x01UL << 0) // 7 0 receive if activity detected
-
352 #define RADIOLIB_LR11X0_CAD_EXIT_MODE_LBT (0x10UL << 0) // 7 0 transmit if no activity detected
-
353 #define RADIOLIB_LR11X0_CAD_PARAM_DEFAULT (0xFFUL << 0) // 7 0 used by the CAD methods to specify default parameter value
-
354 
-
355 // RADIOLIB_LR11X0_CMD_SET_PACKET_TYPE
-
356 #define RADIOLIB_LR11X0_PACKET_TYPE_NONE (0x00UL << 0) // 2 0 packet type: none
-
357 #define RADIOLIB_LR11X0_PACKET_TYPE_GFSK (0x01UL << 0) // 2 0 (G)FSK
-
358 #define RADIOLIB_LR11X0_PACKET_TYPE_LORA (0x02UL << 0) // 2 0 LoRa
-
359 #define RADIOLIB_LR11X0_PACKET_TYPE_SIGFOX (0x03UL << 0) // 2 0 Sigfox
-
360 #define RADIOLIB_LR11X0_PACKET_TYPE_LR_FHSS (0x04UL << 0) // 2 0 GMSK/LR-FHSS
-
361 #define RADIOLIB_LR11X0_PACKET_TYPE_RANGING (0x05UL << 0) // 2 0 ranging
-
362 #define RADIOLIB_LR11X0_PACKET_TYPE_BLE (0x06UL << 0) // 2 0 BLE beacon
-
363 
-
364 // RADIOLIB_LR11X0_CMD_SET_MODULATION_PARAMS
-
365 #define RADIOLIB_LR11X0_LORA_BW_62_5 (0x03UL << 0) // 7 0 LoRa bandwidth: 62.5 kHz
-
366 #define RADIOLIB_LR11X0_LORA_BW_125_0 (0x04UL << 0) // 7 0 125.0 kHz
-
367 #define RADIOLIB_LR11X0_LORA_BW_250_0 (0x05UL << 0) // 7 0 250.0 kHz
-
368 #define RADIOLIB_LR11X0_LORA_BW_500_0 (0x06UL << 0) // 7 0 500.0 kHz
-
369 #define RADIOLIB_LR11X0_LORA_BW_203_125 (0x0DUL << 0) // 7 0 203.0 kHz (2.4GHz only)
-
370 #define RADIOLIB_LR11X0_LORA_BW_406_25 (0x0EUL << 0) // 7 0 406.0 kHz (2.4GHz only)
-
371 #define RADIOLIB_LR11X0_LORA_BW_812_50 (0x0FUL << 0) // 7 0 812.0 kHz (2.4GHz only)
-
372 #define RADIOLIB_LR11X0_LORA_CR_4_5_SHORT (0x01UL << 0) // 7 0 coding rate: 4/5 with short interleaver
-
373 #define RADIOLIB_LR11X0_LORA_CR_4_6_SHORT (0x02UL << 0) // 7 0 4/6 with short interleaver
-
374 #define RADIOLIB_LR11X0_LORA_CR_4_7_SHORT (0x03UL << 0) // 7 0 4/7 with short interleaver
-
375 #define RADIOLIB_LR11X0_LORA_CR_4_8_SHORT (0x04UL << 0) // 7 0 4/8 with short interleaver
-
376 #define RADIOLIB_LR11X0_LORA_CR_4_5_LONG (0x05UL << 0) // 7 0 4/5 with long interleaver
-
377 #define RADIOLIB_LR11X0_LORA_CR_4_6_LONG (0x06UL << 0) // 7 0 4/6 with long interleaver
-
378 #define RADIOLIB_LR11X0_LORA_CR_4_8_LONG (0x07UL << 0) // 7 0 4/8 with long interleaver
-
379 #define RADIOLIB_LR11X0_LORA_LDRO_DISABLED (0x00UL << 0) // 7 0 low data rate optimize: disabled
-
380 #define RADIOLIB_LR11X0_LORA_LDRO_ENABLED (0x01UL << 0) // 7 0 enabled
-
381 #define RADIOLIB_LR11X0_GFSK_BIT_RATE_DIV_DISABLED (0x00UL << 31) // 31 0 divide bit rate value by 256: disabled
-
382 #define RADIOLIB_LR11X0_GFSK_BIT_RATE_DIV_ENABLED (0x01UL << 31) // 31 0 enabled
-
383 #define RADIOLIB_LR11X0_GFSK_SHAPING_NONE (0x00UL << 0) // 7 0 shaping filter: none
-
384 #define RADIOLIB_LR11X0_GFSK_SHAPING_GAUSSIAN_BT_0_3 (0x08UL << 0) // 7 0 Gaussian, BT = 0.3
-
385 #define RADIOLIB_LR11X0_GFSK_SHAPING_GAUSSIAN_BT_0_5 (0x09UL << 0) // 7 0 Gaussian, BT = 0.5
-
386 #define RADIOLIB_LR11X0_GFSK_SHAPING_GAUSSIAN_BT_0_7 (0x0AUL << 0) // 7 0 Gaussian, BT = 0.7
-
387 #define RADIOLIB_LR11X0_GFSK_SHAPING_GAUSSIAN_BT_1_0 (0x0BUL << 0) // 7 0 Gaussian, BT = 1.0
-
388 #define RADIOLIB_LR11X0_GFSK_SHAPING_RAISED_COSINE_BT_0_7 (0x16UL << 0) // 7 0 raised cosine, BT = 0.7
-
389 #define RADIOLIB_LR11X0_GFSK_RX_BW_4_8 (0x1FUL << 0) // 7 0 GFSK Rx bandwidth: 4.8 kHz
-
390 #define RADIOLIB_LR11X0_GFSK_RX_BW_5_8 (0x17UL << 0) // 7 0 5.8 kHz
-
391 #define RADIOLIB_LR11X0_GFSK_RX_BW_7_3 (0x0FUL << 0) // 7 0 7.3 kHz
-
392 #define RADIOLIB_LR11X0_GFSK_RX_BW_9_7 (0x1EUL << 0) // 7 0 9.7 kHz
-
393 #define RADIOLIB_LR11X0_GFSK_RX_BW_11_7 (0x16UL << 0) // 7 0 11.7 kHz
-
394 #define RADIOLIB_LR11X0_GFSK_RX_BW_14_6 (0x0EUL << 0) // 7 0 14.6 kHz
-
395 #define RADIOLIB_LR11X0_GFSK_RX_BW_19_5 (0x1DUL << 0) // 7 0 19.5 kHz
-
396 #define RADIOLIB_LR11X0_GFSK_RX_BW_23_4 (0x15UL << 0) // 7 0 23.4 kHz
-
397 #define RADIOLIB_LR11X0_GFSK_RX_BW_29_3 (0x0DUL << 0) // 7 0 29.3 kHz
-
398 #define RADIOLIB_LR11X0_GFSK_RX_BW_39_0 (0x1CUL << 0) // 7 0 39.0 kHz
-
399 #define RADIOLIB_LR11X0_GFSK_RX_BW_46_9 (0x14UL << 0) // 7 0 46.9 kHz
-
400 #define RADIOLIB_LR11X0_GFSK_RX_BW_58_6 (0x0CUL << 0) // 7 0 58.6 kHz
-
401 #define RADIOLIB_LR11X0_GFSK_RX_BW_78_2 (0x1BUL << 0) // 7 0 78.2 kHz
-
402 #define RADIOLIB_LR11X0_GFSK_RX_BW_93_8 (0x13UL << 0) // 7 0 93.8 kHz
-
403 #define RADIOLIB_LR11X0_GFSK_RX_BW_117_3 (0x0BUL << 0) // 7 0 117.3 kHz
-
404 #define RADIOLIB_LR11X0_GFSK_RX_BW_156_2 (0x1AUL << 0) // 7 0 156.2 kHz
-
405 #define RADIOLIB_LR11X0_GFSK_RX_BW_187_2 (0x12UL << 0) // 7 0 187.2 kHz
-
406 #define RADIOLIB_LR11X0_GFSK_RX_BW_234_3 (0x0AUL << 0) // 7 0 234.3 kHz
-
407 #define RADIOLIB_LR11X0_GFSK_RX_BW_312_0 (0x19UL << 0) // 7 0 312.0 kHz
-
408 #define RADIOLIB_LR11X0_GFSK_RX_BW_373_6 (0x11UL << 0) // 7 0 373.6 kHz
-
409 #define RADIOLIB_LR11X0_GFSK_RX_BW_467_0 (0x09UL << 0) // 7 0 467.0 kHz
-
410 #define RADIOLIB_LR11X0_LR_FHSS_BIT_RATE (488.28215) // 31 0 LR FHSS bit rate: 488.28215 bps
-
411 #define RADIOLIB_LR11X0_LR_FHSS_BIT_RATE_RAW (0x8001E848UL) // 31 0 488.28215 bps in raw
-
412 #define RADIOLIB_LR11X0_LR_FHSS_SHAPING_GAUSSIAN_BT_1_0 (0x0BUL << 0) // 7 0 shaping filter: Gaussian, BT = 1.0
-
413 #define RADIOLIB_LR11X0_SIGFOX_SHAPING_GAUSSIAN_BT_0_7 (0x16UL << 0) // 7 0 shaping filter: Gaussian, BT = 0.7
-
414 
-
415 // RADIOLIB_LR11X0_CMD_SET_PACKET_PARAMS
-
416 #define RADIOLIB_LR11X0_LORA_HEADER_EXPLICIT (0x00UL << 0) // 7 0 LoRa header mode: explicit
-
417 #define RADIOLIB_LR11X0_LORA_HEADER_IMPLICIT (0x01UL << 0) // 7 0 implicit
-
418 #define RADIOLIB_LR11X0_LORA_PAYLOAD_LEN_ANY (0x00UL << 0) // 7 0 accept any payload length
-
419 #define RADIOLIB_LR11X0_LORA_CRC_ENABLED (0x01UL << 0) // 7 0 CRC: enabled
-
420 #define RADIOLIB_LR11X0_LORA_CRC_DISABLED (0x00UL << 0) // 7 0 disabled
-
421 #define RADIOLIB_LR11X0_LORA_IQ_STANDARD (0x00UL << 0) // 7 0 IQ setup: standard
-
422 #define RADIOLIB_LR11X0_LORA_IQ_INVERTED (0x01UL << 0) // 7 0 inverted
-
423 #define RADIOLIB_LR11X0_GFSK_PREAMBLE_DETECT_DISABLED (0x00UL << 0) // 7 0 preamble detector: disabled
-
424 #define RADIOLIB_LR11X0_GFSK_PREAMBLE_DETECT_8_BITS (0x04UL << 0) // 7 0 8 bits
-
425 #define RADIOLIB_LR11X0_GFSK_PREAMBLE_DETECT_16_BITS (0x05UL << 0) // 7 0 16 bits
-
426 #define RADIOLIB_LR11X0_GFSK_PREAMBLE_DETECT_24_BITS (0x06UL << 0) // 7 0 24 bits
-
427 #define RADIOLIB_LR11X0_GFSK_PREAMBLE_DETECT_32_BITS (0x07UL << 0) // 7 0 32 bits
-
428 #define RADIOLIB_LR11X0_GFSK_ADDR_FILTER_DISABLED (0x00UL << 0) // 7 0 address filtering: disabled
-
429 #define RADIOLIB_LR11X0_GFSK_ADDR_FILTER_NODE (0x01UL << 0) // 7 0 node address
-
430 #define RADIOLIB_LR11X0_GFSK_ADDR_FILTER_NODE_BROADCAST (0x02UL << 0) // 7 0 node and broadcast address
-
431 #define RADIOLIB_LR11X0_GFSK_PACKET_LENGTH_FIXED (0x00UL << 0) // 7 0 packet length: fixed
-
432 #define RADIOLIB_LR11X0_GFSK_PACKET_LENGTH_VARIABLE (0x01UL << 0) // 7 0 variable
-
433 #define RADIOLIB_LR11X0_GFSK_PACKET_LENGTH_VARIABLE_SX128X (0x02UL << 0) // 7 0 variable, SX128x 9-bit length encoding
-
434 #define RADIOLIB_LR11X0_GFSK_PAYLOAD_LEN_ANY (0x00UL << 0) // 7 0 accept any payload length
-
435 #define RADIOLIB_LR11X0_GFSK_CRC_DISABLED (0x01UL << 0) // 7 0 CRC: disabled
-
436 #define RADIOLIB_LR11X0_GFSK_CRC_1_BYTE (0x00UL << 0) // 7 0 1-byte
-
437 #define RADIOLIB_LR11X0_GFSK_CRC_2_BYTE (0x02UL << 0) // 7 0 2-byte
-
438 #define RADIOLIB_LR11X0_GFSK_CRC_1_BYTE_INV (0x04UL << 0) // 7 0 1-byte, inverted
-
439 #define RADIOLIB_LR11X0_GFSK_CRC_2_BYTE_INV (0x06UL << 0) // 7 0 2-byte, inverted
-
440 #define RADIOLIB_LR11X0_GFSK_WHITENING_DISABLED (0x00UL << 0) // 7 0 whitening: disabled
-
441 #define RADIOLIB_LR11X0_GFSK_WHITENING_ENABLED (0x01UL << 0) // 7 0 enabled
-
442 
-
443 // RADIOLIB_LR11X0_CMD_SET_TX_PARAMS
-
444 #define RADIOLIB_LR11X0_PA_RAMP_48U (0x02UL << 0) // 7 0 PA ramp time: 48 us
-
445 
-
446 // RADIOLIB_LR11X0_CMD_SET_RX_TX_FALLBACK_MODE
-
447 #define RADIOLIB_LR11X0_FALLBACK_MODE_STBY_RC (0x01UL << 0) // 1 0 fallback mode after Rx/Tx: standby with RC
-
448 #define RADIOLIB_LR11X0_FALLBACK_MODE_STBY_XOSC (0x02UL << 0) // 1 0 standby with XOSC
-
449 #define RADIOLIB_LR11X0_FALLBACK_MODE_FS (0x03UL << 0) // 1 0 frequency synthesis
-
450 
-
451 // RADIOLIB_LR11X0_CMD_SET_RX_DUTY_CYCLE
-
452 #define RADIOLIB_LR11X0_RX_DUTY_CYCLE_MODE_RX (0x00UL << 0) // 0 0 mode in Rx windows: Rx (default)
-
453 #define RADIOLIB_LR11X0_RX_DUTY_CYCLE_MODE_CAD (0x01UL << 0) // 0 0 CAD
-
454 #define RADIOLIB_LR11X0_TIMING_STEP (1.0f/32768.0f) // 23 0 timing step fo delays
-
455 
-
456 // RADIOLIB_LR11X0_CMD_SET_PA_CONFIG
-
457 #define RADIOLIB_LR11X0_PA_SEL_LP (0x00UL << 0) // 7 0 PA select: low power PA
-
458 #define RADIOLIB_LR11X0_PA_SEL_HP (0x01UL << 0) // 7 0 high power PA
-
459 #define RADIOLIB_LR11X0_PA_SEL_HF (0x02UL << 0) // 7 0 high frequency PA
-
460 #define RADIOLIB_LR11X0_PA_SUPPLY_INTERNAL (0x00UL << 0) // 7 0 PA power source: internal
-
461 #define RADIOLIB_LR11X0_PA_SUPPLY_VBAT (0x01UL << 0) // 7 0 VBAT (required for >= 14 dBm)
-
462 
-
463 // RADIOLIB_LR11X0_CMD_STOP_TIMEOUT_ON_PREAMBLE
-
464 #define RADIOLIB_LR11X0_STOP_ON_SYNC_HEADER (0x00UL << 0) // 0 0 stop timeout on: sync word or header (default)
-
465 #define RADIOLIB_LR11X0_STOP_ON_PREAMBLE (0x01UL << 0) // 0 0 preamble
-
466 
-
467 // RADIOLIB_LR11X0_CMD_GET_RANGING_RESULT
-
468 #define RADIOLIB_LR11X0_RANGING_RESULT_DISTANCE (0) // 7 0 ranging result type: distance
-
469 #define RADIOLIB_LR11X0_RANGING_RESULT_RSSI (1) // 7 0 RSSI
-
470 
-
471 // RADIOLIB_LR11X0_CMD_SET_RX_BOOSTED
-
472 #define RADIOLIB_LR11X0_RX_BOOSTED_ENABLED (0x01UL << 0) // 0 0 Rx boosted mode: enabled
-
473 #define RADIOLIB_LR11X0_RX_BOOSTED_DISABLED (0x00UL << 0) // 0 0 disabled
-
474 
-
475 // RADIOLIB_LR11X0_CMD_SET_LORA_SYNC_WORD
-
476 #define RADIOLIB_LR11X0_LORA_SYNC_WORD_PRIVATE (0x12)
-
477 #define RADIOLIB_LR11X0_LORA_SYNC_WORD_PUBLIC (0x34)
-
478 
-
479 // RADIOLIB_LR11X0_CMD_LR_FHSS_BUILD_FRAME
-
480 #define RADIOLIB_LR11X0_LR_FHSS_CR_5_6 (0x00UL << 0) // 7 0 LR FHSS coding rate: 5/6
-
481 #define RADIOLIB_LR11X0_LR_FHSS_CR_2_3 (0x01UL << 0) // 7 0 2/3
-
482 #define RADIOLIB_LR11X0_LR_FHSS_CR_1_2 (0x02UL << 0) // 7 0 1/2
-
483 #define RADIOLIB_LR11X0_LR_FHSS_CR_1_3 (0x03UL << 0) // 7 0 1/3
-
484 #define RADIOLIB_LR11X0_LR_FHSS_MOD_TYPE_GMSK (0x00UL << 0) // 7 0 LR FHSS modulation: GMSK
-
485 #define RADIOLIB_LR11X0_LR_FHSS_GRID_STEP_FCC (0x00UL << 0) // 7 0 LR FHSS step size: 25.390625 kHz (FCC)
-
486 #define RADIOLIB_LR11X0_LR_FHSS_GRID_STEP_NON_FCC (0x01UL << 0) // 7 0 3.90625 kHz (non-FCC)
-
487 #define RADIOLIB_LR11X0_LR_FHSS_HOPPING_DISABLED (0x00UL << 0) // 7 0 LR FHSS hopping: disabled
-
488 #define RADIOLIB_LR11X0_LR_FHSS_HOPPING_ENABLED (0x01UL << 0) // 7 0 enabled
-
489 #define RADIOLIB_LR11X0_LR_FHSS_BW_39_06 (0x00UL << 0) // 7 0 LR FHSS bandwidth: 39.06 kHz
-
490 #define RADIOLIB_LR11X0_LR_FHSS_BW_85_94 (0x01UL << 0) // 7 0 85.94 kHz
-
491 #define RADIOLIB_LR11X0_LR_FHSS_BW_136_72 (0x02UL << 0) // 7 0 136.72 kHz
-
492 #define RADIOLIB_LR11X0_LR_FHSS_BW_183_59 (0x03UL << 0) // 7 0 183.59 kHz
-
493 #define RADIOLIB_LR11X0_LR_FHSS_BW_335_94 (0x04UL << 0) // 7 0 335.94 kHz
-
494 #define RADIOLIB_LR11X0_LR_FHSS_BW_386_72 (0x05UL << 0) // 7 0 386.72 kHz
-
495 #define RADIOLIB_LR11X0_LR_FHSS_BW_722_66 (0x06UL << 0) // 7 0 722.66 kHz
-
496 #define RADIOLIB_LR11X0_LR_FHSS_BW_773_44 (0x07UL << 0) // 7 0 773.44 kHz
-
497 #define RADIOLIB_LR11X0_LR_FHSS_BW_1523_4 (0x08UL << 0) // 7 0 1523.4 kHz
-
498 #define RADIOLIB_LR11X0_LR_FHSS_BW_1574_2 (0x09UL << 0) // 7 0 1574.2 kHz
-
499 #define RADIOLIB_LR11X0_LR_FHSS_HEADER_BITS (114) // 7 0 LR FHSS packet bit widths: header
-
500 #define RADIOLIB_LR11X0_LR_FHSS_FRAG_BITS (48) // 7 0 payload fragment
-
501 #define RADIOLIB_LR11X0_LR_FHSS_BLOCK_PREAMBLE_BITS (2) // 7 0 block preamble
-
502 #define RADIOLIB_LR11X0_LR_FHSS_BLOCK_BITS (RADIOLIB_LR11X0_LR_FHSS_FRAG_BITS + RADIOLIB_LR11X0_LR_FHSS_BLOCK_PREAMBLE_BITS)
-
503 
-
504 // RADIOLIB_LR11X0_CMD_GET_LORA_RX_HEADER_INFOS
-
505 #define RADIOLIB_LR11X0_LAST_HEADER_CRC_ENABLED (0x01UL << 4) // 4 4 last header CRC: enabled
-
506 #define RADIOLIB_LR11X0_LAST_HEADER_CRC_DISABLED (0x00UL << 4) // 4 4 disabled
-
507 
-
508 // RADIOLIB_LR11X0_CMD_WIFI_SCAN
-
509 #define RADIOLIB_LR11X0_WIFI_SCAN_802_11_B (0x01UL << 0) // 7 0 Wi-Fi type to scan: 802.11b
-
510 #define RADIOLIB_LR11X0_WIFI_SCAN_802_11_G (0x02UL << 0) // 7 0 802.11g
-
511 #define RADIOLIB_LR11X0_WIFI_SCAN_802_11_N (0x03UL << 0) // 7 0 802.11n
-
512 #define RADIOLIB_LR11X0_WIFI_SCAN_ALL (0x04UL << 0) // 7 0 all (802.11b first)
-
513 #define RADIOLIB_LR11X0_WIFI_ACQ_MODE_BEACON_ONLY (0x01UL << 0) // 7 0 Wi-Fi acquisition mode: beacon only
-
514 #define RADIOLIB_LR11X0_WIFI_ACQ_MODE_BEACON_PACKET (0x02UL << 0) // 7 0 beacon and packet
-
515 #define RADIOLIB_LR11X0_WIFI_ACQ_MODE_FULL_TRAFFIC (0x03UL << 0) // 7 0 full traffic
-
516 #define RADIOLIB_LR11X0_WIFI_ACQ_MODE_FULL_BEACON (0x04UL << 0) // 7 0 full beacon
-
517 #define RADIOLIB_LR11X0_WIFI_ACQ_MODE_SSID_BEACON (0x05UL << 0) // 7 0 SSID beacon
-
518 #define RADIOLIB_LR11X0_WIFI_ABORT_ON_TIMEOUT_ENABLED (0x01UL << 0) // 7 0 abort scanning on preamble timeout: enabled
-
519 #define RADIOLIB_LR11X0_WIFI_ABORT_ON_TIMEOUT_DISABLED (0x00UL << 0) // 7 0 disabled
-
520 #define RADIOLIB_LR11X0_WIFI_MAX_NUM_RESULTS (32) // 7 0 maximum possible number of Wi-Fi scan results
-
521 #define RADIOLIB_LR11X0_WIFI_ALL_CHANNELS (0x3FFFUL) // 16 0 scan all channels
-
522 
-
523 // RADIOLIB_LR11X0_CMD_WIFI_READ_RESULTS
-
524 #define RADIOLIB_LR11X0_WIFI_RESULT_TYPE_COMPLETE (0x01UL << 0) // 7 0 Wi-Fi scan result type: complete
-
525 #define RADIOLIB_LR11X0_WIFI_RESULT_TYPE_BASIC (0x04UL << 0) // 7 0 basic
-
526 #define RADIOLIB_LR11X0_WIFI_RESULT_MAX_LEN (79) // 7 0 maximum possible Wi-Fi scan size
-
527 #define RADIOLIB_LR11X0_WIFI_RESULT_MAC_LEN (6) // 7 0 MAC address length in bytes
-
528 #define RADIOLIB_LR11X0_WIFI_RESULT_SSID_LEN (32) // 7 0 SSID length in bytes
-
529 
-
530 // RADIOLIB_LR11X0_CMD_GNSS_SET_CONSTELLATION_TO_USE
-
531 #define RADIOLIB_LR11X0_GNSS_CONSTELLATION_GPS (0x01UL << 0) // 7 0 GNSS constellation to use: GPS
-
532 #define RADIOLIB_LR11X0_GNSS_CONSTELLATION_BEIDOU (0x01UL << 1) // 7 0 BeiDou
-
533 
-
534 // RADIOLIB_LR11X0_CMD_GNSS_SET_MODE
-
535 #define RADIOLIB_LR11X0_GNSS_MODE_SINGLE_SCAN (0x00UL << 0) // 7 0 GNSS scanning mode: single/legacy
-
536 #define RADIOLIB_LR11X0_GNSS_MODE_SINGLE_MULTIPLE (0x03UL << 1) // 7 0 multiple/advanced
-
537 
-
538 // RADIOLIB_LR11X0_CMD_GNSS_AUTONOMOUS
-
539 #define RADIOLIB_LR11X0_GNSS_RES_PSEUDO_DOPPLER_ENABLED (0x01UL << 0) // 0 0 GNSS results in NAV message: pseudo-range (in single scan mode) or Doppler information (in multiple scan mode)
-
540 #define RADIOLIB_LR11X0_GNSS_RES_PSEUDO_DOPPLER_DISABLED (0x00UL << 0) // 0 0 not included
-
541 #define RADIOLIB_LR11X0_GNSS_RES_DOPPLER_ENABLED (0x01UL << 1) // 1 1 Doppler information
-
542 #define RADIOLIB_LR11X0_GNSS_RES_DOPPLER_DISABLED (0x00UL << 1) // 1 1 not included
-
543 #define RADIOLIB_LR11X0_GNSS_NB_SV_ALL (0x00UL << 0) // 7 0 include all detected satellites
-
544 #define RADIOLIB_LR11X0_GNSS_AUTO_EFFORT_MODE (0x00UL << 0) // 7 0 reserved, always 0
-
545 
-
546 // RADIOLIB_LR11X0_CMD_GNSS_ASSISTED
-
547 #define RADIOLIB_LR11X0_GNSS_ASSIST_LOW_POWER (0x00UL << 0) // 7 0 effort mode: low power
-
548 #define RADIOLIB_LR11X0_GNSS_ASSIST_BEST_EFFORT (0x01UL << 0) // 7 0 best effort
-
549 
-
550 // RADIOLIB_LR11X0_CMD_GNSS_GET_CONTEXT_STATUS
-
551 #define RADIOLIB_LR11X0_GNSS_CONTEXT_ERR_NONE (0x00UL << 0) // 7 4 error code: none
-
552 #define RADIOLIB_LR11X0_GNSS_CONTEXT_ERR_ALMANAC_OLD (0x01UL << 0) // 7 4 almanac too old
-
553 #define RADIOLIB_LR11X0_GNSS_CONTEXT_ERR_ALMANAC_CRC (0x02UL << 0) // 7 4 almanac CRC mismatch
-
554 #define RADIOLIB_LR11X0_GNSS_CONTEXT_ERR_FLASH (0x03UL << 0) // 7 4 flash integrity error
-
555 #define RADIOLIB_LR11X0_GNSS_CONTEXT_ERR_ALMANAC_UPD (0x04UL << 0) // 7 4 almanac update not allowed
-
556 #define RADIOLIB_LR11X0_GNSS_CONTEXT_FREQ_SPACE_250_HZ (0x00UL << 0) // 8 7 frequency search space: 250 Hz
-
557 #define RADIOLIB_LR11X0_GNSS_CONTEXT_FREQ_SPACE_500_HZ (0x01UL << 0) // 8 7 500 Hz
-
558 #define RADIOLIB_LR11X0_GNSS_CONTEXT_FREQ_SPACE_1000_HZ (0x02UL << 0) // 8 7 1000 Hz
-
559 #define RADIOLIB_LR11X0_GNSS_CONTEXT_FREQ_SPACE_2000_HZ (0x03UL << 0) // 8 7 2000 Hz
-
560 
-
561 // RADIOLIB_LR11X0_CMD_GNSS_GET_SV_VISIBLE
-
562 #define RADIOLIB_LR11X0_SV_CONSTELLATION_GPS (0x00UL << 0) // 7 0 GNSS constellation: GPS
-
563 #define RADIOLIB_LR11X0_SV_CONSTELLATION_BEIDOU (0x01UL << 0) // 7 0 BeiDou
-
564 
-
565 // RADIOLIB_LR11X0_CMD_GNSS_ALMANAC_FULL_UPDATE
-
566 #define RADIOLIB_LR11X0_GNSS_ALMANAC_HEADER_ID (0x80UL << 0) // 7 0 starting byte of GNSS almanac header
-
567 #define RADIOLIB_LR11X0_GNSS_ALMANAC_BLOCK_SIZE (20)
-
568 
-
569 // RADIOLIB_LR11X0_CMD_GNSS_FETCH_TIME
-
570 #define RADIOLIB_LR11X0_GNSS_EFFORT_LOW (0x00UL << 0) // 7 0 GNSS effort mode: low sensitivity
-
571 #define RADIOLIB_LR11X0_GNSS_EFFORT_MID (0x01UL << 0) // 7 0 medium sensitivity
-
572 #define RADIOLIB_LR11X0_GNSS_FETCH_TIME_OPT_TOW (0x00UL << 0) // 7 0 time fetch options: ToW only, requires WN to demodulated beforehand
-
573 #define RADIOLIB_LR11X0_GNSS_FETCH_TIME_OPT_TOW_WN (0x01UL << 0) // 7 0 ToW and WN
-
574 #define RADIOLIB_LR11X0_GNSS_FETCH_TIME_OPT_TOW_WN_ROLL (0x02UL << 0) // 7 0 ToW, WN and rollover
-
575 
-
576 // RADIOLIB_LR11X0_CMD_GNSS_READ_DEMOD_STATUS
-
577 #define RADIOLIB_LR11X0_GNSS_DEMOD_STATUS_NOT_POSSIBLE (-21) // 7 0 GNSS demodulation status: not possible to demodulate
-
578 #define RADIOLIB_LR11X0_GNSS_DEMOD_STATUS_SAT_LOST (-20) // 7 0 satellite lost
-
579 #define RADIOLIB_LR11X0_GNSS_DEMOD_STATUS_ALMANAC_DEMOD_ERROR (-19) // 7 0 almanac demodulation error
-
580 #define RADIOLIB_LR11X0_GNSS_DEMOD_STATUS_TOO_LATE (-18) // 7 0 woke up after preamble (demodulation started too late)
-
581 #define RADIOLIB_LR11X0_GNSS_DEMOD_STATUS_20_MS_FAIL (-17) // 7 0 20ms real-time clock failed
-
582 #define RADIOLIB_LR11X0_GNSS_DEMOD_STATUS_WAKE_UP_FAIL (-16) // 7 0 wake up sync failed
-
583 #define RADIOLIB_LR11X0_GNSS_DEMOD_STATUS_WN_INVALID (-15) // 7 0 week number not validated
-
584 #define RADIOLIB_LR11X0_GNSS_DEMOD_STATUS_NO_ACTIVE_SAT (-14) // 7 0 no active satellite selected in satellite list
-
585 #define RADIOLIB_LR11X0_GNSS_DEMOD_STATUS_SLEEP_TOO_LONG (-13) // 7 0 sleep time too long
-
586 #define RADIOLIB_LR11X0_GNSS_DEMOD_STATUS_TOW_INVALID (-12) // 7 0 wrong time-of-week demodulated
-
587 #define RADIOLIB_LR11X0_GNSS_DEMOD_STATUS_PREAMBLE_INVALID (-11) // 7 0 preamble not validated
-
588 #define RADIOLIB_LR11X0_GNSS_DEMOD_STATUS_DISABLED (-10) // 7 0 demodulator disabled
-
589 #define RADIOLIB_LR11X0_GNSS_DEMOD_STATUS_EXTR_FAILED (-9) // 7 0 demodulator extraction failed
-
590 #define RADIOLIB_LR11X0_GNSS_DEMOD_STATUS_NO_BIT_CHANGE (-8) // 7 0 no bit change found during demodulation start
-
591 #define RADIOLIB_LR11X0_GNSS_DEMOD_STATUS_NO_BIT_CHANGE_ADV (-7) // 7 0 no bit change found during advanced scan
-
592 #define RADIOLIB_LR11X0_GNSS_DEMOD_STATUS_NO_SAT_FOUND (-6) // 7 0 no satellites found
-
593 #define RADIOLIB_LR11X0_GNSS_DEMOD_STATUS_SYNC_LOST (-5) // 7 0 word sync lost
-
594 #define RADIOLIB_LR11X0_GNSS_DEMOD_STATUS_PARITY_NOT_ENOUGH (-3) // 7 0 parity check fail (not enough)
-
595 #define RADIOLIB_LR11X0_GNSS_DEMOD_STATUS_PARITY_TOO_MANY (-2) // 7 0 parity check fail (too many)
-
596 #define RADIOLIB_LR11X0_GNSS_DEMOD_STATUS_NO_PARITY (-1) // 7 0 parity check fail (no parity found)
-
597 #define RADIOLIB_LR11X0_GNSS_DEMOD_STATUS_WORD_SYNC_NONE (0) // 7 0 word sync search not started
-
598 #define RADIOLIB_LR11X0_GNSS_DEMOD_STATUS_WORD_SYNC_POT (1) // 7 0 potential word sync found
-
599 #define RADIOLIB_LR11X0_GNSS_DEMOD_STATUS_WORD_SYNC_OK (2) // 7 0 word sync found
-
600 #define RADIOLIB_LR11X0_GNSS_DEMOD_STATUS_TOW_FOUND (3) // 7 0 time-of-week found
-
601 #define RADIOLIB_LR11X0_GNSS_DEMOD_STATUS_WN_FOUND (4) // 7 0 week number and time-of-week found
-
602 #define RADIOLIB_LR11X0_GNSS_DEMOD_STATUS_ALM_FOUND_UNSAVED (5) // 7 0 almanac found but not saved
-
603 #define RADIOLIB_LR11X0_GNSS_DEMOD_STATUS_HALF_ALM_SAVED (6) // 7 0 half of almanac found and saved
-
604 #define RADIOLIB_LR11X0_GNSS_DEMOD_STATUS_FULL_ALM_SAVED (7) // 7 0 full almanac found and saved
-
605 #define RADIOLIB_LR11X0_GNSS_DEMOD_INFO_WORD_SYNC_FOUND (0x01UL << 0) // 7 0 GNSS demodulation info: word synchronization found
-
606 #define RADIOLIB_LR11X0_GNSS_DEMOD_INFO_TOW_FOUND (0x01UL << 1) // 7 0 time-of-week found
-
607 #define RADIOLIB_LR11X0_GNSS_DEMOD_INFO_WN_DEMODED (0x01UL << 2) // 7 0 week number demodulated
-
608 #define RADIOLIB_LR11X0_GNSS_DEMOD_INFO_WN_FOUND (0x01UL << 3) // 7 0 week number found
-
609 #define RADIOLIB_LR11X0_GNSS_DEMOD_INFO_SUBFRAME_1_FOUND (0x01UL << 4) // 7 0 subframe 1 found
-
610 #define RADIOLIB_LR11X0_GNSS_DEMOD_INFO_SUBFRAME_4_FOUND (0x01UL << 5) // 7 0 subframe 4 found
-
611 #define RADIOLIB_LR11X0_GNSS_DEMOD_INFO_SUBFRAME_5_FOUND (0x01UL << 6) // 7 0 subframe 5 found
-
612 
-
613 // RADIOLIB_LR11X0_CMD_GNSS_READ_ALMANAC_STATUS
-
614 #define RADIOLIB_LR11X0_GNSS_ALMANAC_STATUS_UP_TO_DATE (0) // 7 0 GPS/BeiDou almanac status: all satellites up-to-date
-
615 #define RADIOLIB_LR11X0_GNSS_ALMANAC_STATUS_OUTDATED (1) // 7 0 at least one satellite needs update
-
616 
-
617 // RADIOLIB_LR11X0_CMD_GNSS_READ_DOPPLER_SOLVER_RES
-
618 #define RADIOLIB_LR11X0_GNSS_SOLVER_ERR_NONE (0) // 7 0 internal 2D solver error: no error
-
619 #define RADIOLIB_LR11X0_GNSS_SOLVER_ERR_RES_HIGH (1) // 7 0 residue too high
-
620 #define RADIOLIB_LR11X0_GNSS_SOLVER_ERR_NOT_CONVERGED (2) // 7 0 not converged on solution
-
621 #define RADIOLIB_LR11X0_GNSS_SOLVER_ERR_NOT_ENOUGH_SV (3) // 7 0 not enough satellites
-
622 #define RADIOLIB_LR11X0_GNSS_SOLVER_ERR_ILL_MATRIX (4) // 7 0 matrix error (?)
-
623 #define RADIOLIB_LR11X0_GNSS_SOLVER_ERR_TIME (5) // 7 0 time error
-
624 #define RADIOLIB_LR11X0_GNSS_SOLVER_ERR_ALM_PART_OLD (6) // 7 0 part of almanac too old or not available
-
625 #define RADIOLIB_LR11X0_GNSS_SOLVER_ERR_INCONSISTENT (7) // 7 0 not consistent with history (?)
-
626 #define RADIOLIB_LR11X0_GNSS_SOLVER_ERR_ALM_OLD (8) // 7 0 all of almanac too old
-
627 
-
628 // RADIOLIB_LR11X0_CMD_CRYPTO_SET_KEY
-
629 #define RADIOLIB_LR11X0_CRYPTO_STATUS_SUCCESS (0x00UL << 0) // 7 0 crypto engine status: success
-
630 #define RADIOLIB_LR11X0_CRYPTO_STATUS_FAIL_CMAC (0x01UL << 0) // 7 0 MIC check failed
-
631 #define RADIOLIB_LR11X0_CRYPTO_STATUS_INV_KEY_ID (0x03UL << 0) // 7 0 key/parameter source or destination ID error
-
632 #define RADIOLIB_LR11X0_CRYPTO_STATUS_BUF_SIZE (0x05UL << 0) // 7 0 data buffer size invalid
-
633 #define RADIOLIB_LR11X0_CRYPTO_STATUS_ERROR (0x06UL << 0) // 7 0 generic error
-
634 
-
635 // RADIOLIB_LR11X0_CMD_CRYPTO_PROCESS_JOIN_ACCEPT
-
636 #define RADIOLIB_LR11X0_CRYPTO_LORAWAN_VERSION_1_0 (0x00UL << 0) // 7 0 LoRaWAN version: 1.0.x
-
637 #define RADIOLIB_LR11X0_CRYPTO_LORAWAN_VERSION_1_1 (0x01UL << 0) // 7 0 1.1
-
638 
-
639 // LR11X0 SPI register variables
+
253 #define RADIOLIB_LR11X0_DIOx(X) ((X) | RFSWITCH_PIN_FLAG)
+
254 #define RADIOLIB_LR11X0_DIOx_VAL(X) ((X) & ~RFSWITCH_PIN_FLAG)
+
255 #define RADIOLIB_LR11X0_DIO5 (RADIOLIB_LR11X0_DIOx(0))
+
256 #define RADIOLIB_LR11X0_DIO6 (RADIOLIB_LR11X0_DIOx(1))
+
257 #define RADIOLIB_LR11X0_DIO7 (RADIOLIB_LR11X0_DIOx(2))
+
258 #define RADIOLIB_LR11X0_DIO8 (RADIOLIB_LR11X0_DIOx(3))
+
259 #define RADIOLIB_LR11X0_DIO10 (RADIOLIB_LR11X0_DIOx(4))
+
260 
+
261 // RADIOLIB_LR11X0_CMD_SET_DIO_IRQ_PARAMS
+
262 #define RADIOLIB_LR11X0_IRQ_TX_DONE (0x01UL << 2) // 31 0 interrupt: packet transmitted
+
263 #define RADIOLIB_LR11X0_IRQ_RX_DONE (0x01UL << 3) // 31 0 packet received
+
264 #define RADIOLIB_LR11X0_IRQ_PREAMBLE_DETECTED (0x01UL << 4) // 31 0 preamble detected
+
265 #define RADIOLIB_LR11X0_IRQ_SYNC_WORD_HEADER_VALID (0x01UL << 5) // 31 0 sync word or LoRa header valid
+
266 #define RADIOLIB_LR11X0_IRQ_HEADER_ERR (0x01UL << 6) // 31 0 LoRa header CRC error
+
267 #define RADIOLIB_LR11X0_IRQ_CRC_ERR (0x01UL << 7) // 31 0 packet CRC error
+
268 #define RADIOLIB_LR11X0_IRQ_CAD_DONE (0x01UL << 8) // 31 0 CAD completed
+
269 #define RADIOLIB_LR11X0_IRQ_CAD_DETECTED (0x01UL << 9) // 31 0 CAD detected
+
270 #define RADIOLIB_LR11X0_IRQ_TIMEOUT (0x01UL << 10) // 31 0 Rx or Tx timeout
+
271 #define RADIOLIB_LR11X0_IRQ_LR_FHSS_HOP (0x01UL << 11) // 31 0 FHSS hop
+
272 #define RADIOLIB_LR11X0_IRQ_GNSS_DONE (0x01UL << 19) // 31 0 GNSS scan finished
+
273 #define RADIOLIB_LR11X0_IRQ_WIFI_DONE (0x01UL << 20) // 31 0 WiFi scan finished
+
274 #define RADIOLIB_LR11X0_IRQ_LBD (0x01UL << 21) // 31 0 low battery detected
+
275 #define RADIOLIB_LR11X0_IRQ_CMD_ERROR (0x01UL << 22) // 31 0 command error
+
276 #define RADIOLIB_LR11X0_IRQ_ERROR (0x01UL << 23) // 31 0 some other error than CMD_ERR
+
277 #define RADIOLIB_LR11X0_IRQ_FSK_LEN_ERROR (0x01UL << 24) // 31 0 FSK packet received with length error
+
278 #define RADIOLIB_LR11X0_IRQ_FSK_ADDR_ERROR (0x01UL << 25) // 31 0 FSK packet received with address error
+
279 #define RADIOLIB_LR11X0_IRQ_LORA_RX_TIMESTAMP (0x01UL << 27) // 31 0 last LoRa symbol was received (timestamp source)
+
280 #define RADIOLIB_LR11X0_IRQ_GNSS_ABORT (0x01UL << 28) // 31 0 GNSS scan aborted
+
281 #define RADIOLIB_LR11X0_IRQ_ALL (0x1BF80FFCUL) // 31 0 all interrupts
+
282 #define RADIOLIB_LR11X0_IRQ_NONE (0x00UL << 0) // 31 0 no interrupts
+
283 
+
284 // RADIOLIB_LR11X0_CMD_CONFIG_LF_LOCK
+
285 #define RADIOLIB_LR11X0_LF_CLK_RC (0x00UL << 0) // 1 0 32.768 kHz source: RC oscillator
+
286 #define RADIOLIB_LR11X0_LF_CLK_XOSC (0x01UL << 0) // 1 0 crystal oscillator
+
287 #define RADIOLIB_LR11X0_LF_CLK_EXT (0x02UL << 0) // 1 0 external signal on DIO11
+
288 #define RADIOLIB_LR11X0_LF_BUSY_RELEASE_DISABLED (0x00UL << 2) // 2 2
+
289 #define RADIOLIB_LR11X0_LF_BUSY_RELEASE_ENABLED (0x01UL << 2) // 2 2
+
290 
+
291 // RADIOLIB_LR11X0_CMD_SET_TCXO_MODE
+
292 #define RADIOLIB_LR11X0_TCXO_VOLTAGE_1_6 (0x00UL << 0) // 2 0 TCXO supply voltage: 1.6V
+
293 #define RADIOLIB_LR11X0_TCXO_VOLTAGE_1_7 (0x01UL << 0) // 2 0 1.7V
+
294 #define RADIOLIB_LR11X0_TCXO_VOLTAGE_1_8 (0x02UL << 0) // 2 0 1.8V
+
295 #define RADIOLIB_LR11X0_TCXO_VOLTAGE_2_2 (0x03UL << 0) // 2 0 2.2V
+
296 #define RADIOLIB_LR11X0_TCXO_VOLTAGE_2_4 (0x04UL << 0) // 2 0 2.4V
+
297 #define RADIOLIB_LR11X0_TCXO_VOLTAGE_2_7 (0x05UL << 0) // 2 0 2.7V
+
298 #define RADIOLIB_LR11X0_TCXO_VOLTAGE_3_0 (0x06UL << 0) // 2 0 3.0V
+
299 #define RADIOLIB_LR11X0_TCXO_VOLTAGE_3_3 (0x07UL << 0) // 2 0 3.3V
+
300 
+
301 // RADIOLIB_LR11X0_CMD_SET_SLEEP
+
302 #define RADIOLIB_LR11X0_SLEEP_RETENTION_DISABLED (0x00UL << 0) // 0 0 configuration retention in sleep mode: disabled
+
303 #define RADIOLIB_LR11X0_SLEEP_RETENTION_ENABLED (0x01UL << 0) // 0 0 enabled
+
304 #define RADIOLIB_LR11X0_SLEEP_WAKEUP_DISABLED (0x00UL << 0) // 1 1 automated wakeup: disabled
+
305 #define RADIOLIB_LR11X0_SLEEP_WAKEUP_ENABLED (0x01UL << 0) // 1 1 enabled
+
306 
+
307 // RADIOLIB_LR11X0_CMD_SET_STANDBY
+
308 #define RADIOLIB_LR11X0_STANDBY_RC (0x00UL << 0) // 7 0 standby mode: RC oscillator
+
309 #define RADIOLIB_LR11X0_STANDBY_XOSC (0x00UL << 0) // 7 0 XTAL/TCXO oscillator
+
310 
+
311 // RADIOLIB_LR11X0_CMD_ERASE_INFO_PAGE
+
312 #define RADIOLIB_LR11X0_INFO_PAGE (1)
+
313 
+
314 // RADIOLIB_LR11X0_CMD_GET_CHIP_EUI
+
315 #define RADIOLIB_LR11X0_EUI_LEN (8)
+
316 
+
317 // RADIOLIB_LR11X0_CMD_DERIVE_ROOT_KEYS_AND_GET_PIN
+
318 #define RADIOLIB_LR11X0_PIN_LEN (4)
+
319 
+
320 // RADIOLIB_LR11X0_CMD_GET_PACKET_STATUS
+
321 #define RADIOLIB_LR11X0_RX_STATUS_ADDR_ERR (0x01UL << 5) // 7 0 Rx status: address filtering error
+
322 #define RADIOLIB_LR11X0_RX_STATUS_CRC_ERR (0x01UL << 4) // 7 0 CRC error
+
323 #define RADIOLIB_LR11X0_RX_STATUS_LEN_ERR (0x01UL << 3) // 7 0 length filtering error
+
324 #define RADIOLIB_LR11X0_RX_STATUS_ABORTED (0x01UL << 2) // 7 0 packet reception aborted
+
325 #define RADIOLIB_LR11X0_RX_STATUS_PACKET_RECEIVED (0x01UL << 1) // 7 0 packet received
+
326 #define RADIOLIB_LR11X0_RX_STATUS_PACKET_SENT (0x01UL << 0) // 7 0 packet sent
+
327 
+
328 // RADIOLIB_LR11X0_CMD_SET_GFSK_SYNC_WORD
+
329 #define RADIOLIB_LR11X0_GFSK_SYNC_WORD_LEN (8)
+
330 
+
331 // RADIOLIB_LR11X0_CMD_SET_LORA_PUBLIC_NETWORK
+
332 #define RADIOLIB_LR11X0_LORA_PRIVATE_NETWORK (0x00UL << 0) // 7 0 LoRa sync word: private network
+
333 #define RADIOLIB_LR11X0_LORA_PUBLIC_NETWORK (0x01UL << 0) // 7 0 public network
+
334 
+
335 // RADIOLIB_LR11X0_CMD_SET_RX
+
336 #define RADIOLIB_LR11X0_RX_TIMEOUT_NONE (0x000000UL) // 23 0 Rx timeout duration: no timeout (Rx single mode)
+
337 #define RADIOLIB_LR11X0_RX_TIMEOUT_INF (0xFFFFFFUL) // 23 0 infinite (Rx continuous mode)
+
338 
+
339 // RADIOLIB_LR11X0_CMD_SET_TX
+
340 #define RADIOLIB_LR11X0_TX_TIMEOUT_NONE (0x000000UL) // 23 0 disable Tx timeout
+
341 
+
342 // RADIOLIB_LR11X0_CMD_AUTO_TX_RX
+
343 #define RADIOLIB_LR11X0_AUTO_TX_RX_DISABLED (0xFFFFFFUL) // 23 0 disable auto Tx/Rx mode
+
344 #define RADIOLIB_LR11X0_AUTO_TX_RX_SKIP_INT (0x000000UL) // 23 0 skip intermediary mode
+
345 #define RADIOLIB_LR11X0_AUTO_INTERMEDIARY_MODE_SLEEP (0x00UL << 0) // 1 0 intermediary mode: sleep
+
346 #define RADIOLIB_LR11X0_AUTO_INTERMEDIARY_MODE_STBY_RC (0x01UL << 0) // 1 0 standby with RC
+
347 #define RADIOLIB_LR11X0_AUTO_INTERMEDIARY_MODE_STBY_XOSC (0x02UL << 0) // 1 0 standby with XOSC
+
348 #define RADIOLIB_LR11X0_AUTO_INTERMEDIARY_MODE_FS (0x03UL << 0) // 1 0 frequency synthesis
+
349 #define RADIOLIB_LR11X0_AUTO_TX_RX_TIMEOUT_DISABLED (0x000000UL) // 23 0 disable timeout of the second mode
+
350 
+
351 // RADIOLIB_LR11X0_CMD_SET_CAD_PARAMS
+
352 #define RADIOLIB_LR11X0_CAD_EXIT_MODE_STBY_RC (0x00UL << 0) // 7 0 mode to set after CAD: standby with RC
+
353 #define RADIOLIB_LR11X0_CAD_EXIT_MODE_RX (0x01UL << 0) // 7 0 receive if activity detected
+
354 #define RADIOLIB_LR11X0_CAD_EXIT_MODE_LBT (0x10UL << 0) // 7 0 transmit if no activity detected
+
355 #define RADIOLIB_LR11X0_CAD_PARAM_DEFAULT (0xFFUL << 0) // 7 0 used by the CAD methods to specify default parameter value
+
356 
+
357 // RADIOLIB_LR11X0_CMD_SET_PACKET_TYPE
+
358 #define RADIOLIB_LR11X0_PACKET_TYPE_NONE (0x00UL << 0) // 2 0 packet type: none
+
359 #define RADIOLIB_LR11X0_PACKET_TYPE_GFSK (0x01UL << 0) // 2 0 (G)FSK
+
360 #define RADIOLIB_LR11X0_PACKET_TYPE_LORA (0x02UL << 0) // 2 0 LoRa
+
361 #define RADIOLIB_LR11X0_PACKET_TYPE_SIGFOX (0x03UL << 0) // 2 0 Sigfox
+
362 #define RADIOLIB_LR11X0_PACKET_TYPE_LR_FHSS (0x04UL << 0) // 2 0 GMSK/LR-FHSS
+
363 #define RADIOLIB_LR11X0_PACKET_TYPE_RANGING (0x05UL << 0) // 2 0 ranging
+
364 #define RADIOLIB_LR11X0_PACKET_TYPE_BLE (0x06UL << 0) // 2 0 BLE beacon
+
365 
+
366 // RADIOLIB_LR11X0_CMD_SET_MODULATION_PARAMS
+
367 #define RADIOLIB_LR11X0_LORA_BW_62_5 (0x03UL << 0) // 7 0 LoRa bandwidth: 62.5 kHz
+
368 #define RADIOLIB_LR11X0_LORA_BW_125_0 (0x04UL << 0) // 7 0 125.0 kHz
+
369 #define RADIOLIB_LR11X0_LORA_BW_250_0 (0x05UL << 0) // 7 0 250.0 kHz
+
370 #define RADIOLIB_LR11X0_LORA_BW_500_0 (0x06UL << 0) // 7 0 500.0 kHz
+
371 #define RADIOLIB_LR11X0_LORA_BW_203_125 (0x0DUL << 0) // 7 0 203.0 kHz (2.4GHz only)
+
372 #define RADIOLIB_LR11X0_LORA_BW_406_25 (0x0EUL << 0) // 7 0 406.0 kHz (2.4GHz only)
+
373 #define RADIOLIB_LR11X0_LORA_BW_812_50 (0x0FUL << 0) // 7 0 812.0 kHz (2.4GHz only)
+
374 #define RADIOLIB_LR11X0_LORA_CR_4_5_SHORT (0x01UL << 0) // 7 0 coding rate: 4/5 with short interleaver
+
375 #define RADIOLIB_LR11X0_LORA_CR_4_6_SHORT (0x02UL << 0) // 7 0 4/6 with short interleaver
+
376 #define RADIOLIB_LR11X0_LORA_CR_4_7_SHORT (0x03UL << 0) // 7 0 4/7 with short interleaver
+
377 #define RADIOLIB_LR11X0_LORA_CR_4_8_SHORT (0x04UL << 0) // 7 0 4/8 with short interleaver
+
378 #define RADIOLIB_LR11X0_LORA_CR_4_5_LONG (0x05UL << 0) // 7 0 4/5 with long interleaver
+
379 #define RADIOLIB_LR11X0_LORA_CR_4_6_LONG (0x06UL << 0) // 7 0 4/6 with long interleaver
+
380 #define RADIOLIB_LR11X0_LORA_CR_4_8_LONG (0x07UL << 0) // 7 0 4/8 with long interleaver
+
381 #define RADIOLIB_LR11X0_LORA_LDRO_DISABLED (0x00UL << 0) // 7 0 low data rate optimize: disabled
+
382 #define RADIOLIB_LR11X0_LORA_LDRO_ENABLED (0x01UL << 0) // 7 0 enabled
+
383 #define RADIOLIB_LR11X0_GFSK_BIT_RATE_DIV_DISABLED (0x00UL << 31) // 31 0 divide bit rate value by 256: disabled
+
384 #define RADIOLIB_LR11X0_GFSK_BIT_RATE_DIV_ENABLED (0x01UL << 31) // 31 0 enabled
+
385 #define RADIOLIB_LR11X0_GFSK_SHAPING_NONE (0x00UL << 0) // 7 0 shaping filter: none
+
386 #define RADIOLIB_LR11X0_GFSK_SHAPING_GAUSSIAN_BT_0_3 (0x08UL << 0) // 7 0 Gaussian, BT = 0.3
+
387 #define RADIOLIB_LR11X0_GFSK_SHAPING_GAUSSIAN_BT_0_5 (0x09UL << 0) // 7 0 Gaussian, BT = 0.5
+
388 #define RADIOLIB_LR11X0_GFSK_SHAPING_GAUSSIAN_BT_0_7 (0x0AUL << 0) // 7 0 Gaussian, BT = 0.7
+
389 #define RADIOLIB_LR11X0_GFSK_SHAPING_GAUSSIAN_BT_1_0 (0x0BUL << 0) // 7 0 Gaussian, BT = 1.0
+
390 #define RADIOLIB_LR11X0_GFSK_SHAPING_RAISED_COSINE_BT_0_7 (0x16UL << 0) // 7 0 raised cosine, BT = 0.7
+
391 #define RADIOLIB_LR11X0_GFSK_RX_BW_4_8 (0x1FUL << 0) // 7 0 GFSK Rx bandwidth: 4.8 kHz
+
392 #define RADIOLIB_LR11X0_GFSK_RX_BW_5_8 (0x17UL << 0) // 7 0 5.8 kHz
+
393 #define RADIOLIB_LR11X0_GFSK_RX_BW_7_3 (0x0FUL << 0) // 7 0 7.3 kHz
+
394 #define RADIOLIB_LR11X0_GFSK_RX_BW_9_7 (0x1EUL << 0) // 7 0 9.7 kHz
+
395 #define RADIOLIB_LR11X0_GFSK_RX_BW_11_7 (0x16UL << 0) // 7 0 11.7 kHz
+
396 #define RADIOLIB_LR11X0_GFSK_RX_BW_14_6 (0x0EUL << 0) // 7 0 14.6 kHz
+
397 #define RADIOLIB_LR11X0_GFSK_RX_BW_19_5 (0x1DUL << 0) // 7 0 19.5 kHz
+
398 #define RADIOLIB_LR11X0_GFSK_RX_BW_23_4 (0x15UL << 0) // 7 0 23.4 kHz
+
399 #define RADIOLIB_LR11X0_GFSK_RX_BW_29_3 (0x0DUL << 0) // 7 0 29.3 kHz
+
400 #define RADIOLIB_LR11X0_GFSK_RX_BW_39_0 (0x1CUL << 0) // 7 0 39.0 kHz
+
401 #define RADIOLIB_LR11X0_GFSK_RX_BW_46_9 (0x14UL << 0) // 7 0 46.9 kHz
+
402 #define RADIOLIB_LR11X0_GFSK_RX_BW_58_6 (0x0CUL << 0) // 7 0 58.6 kHz
+
403 #define RADIOLIB_LR11X0_GFSK_RX_BW_78_2 (0x1BUL << 0) // 7 0 78.2 kHz
+
404 #define RADIOLIB_LR11X0_GFSK_RX_BW_93_8 (0x13UL << 0) // 7 0 93.8 kHz
+
405 #define RADIOLIB_LR11X0_GFSK_RX_BW_117_3 (0x0BUL << 0) // 7 0 117.3 kHz
+
406 #define RADIOLIB_LR11X0_GFSK_RX_BW_156_2 (0x1AUL << 0) // 7 0 156.2 kHz
+
407 #define RADIOLIB_LR11X0_GFSK_RX_BW_187_2 (0x12UL << 0) // 7 0 187.2 kHz
+
408 #define RADIOLIB_LR11X0_GFSK_RX_BW_234_3 (0x0AUL << 0) // 7 0 234.3 kHz
+
409 #define RADIOLIB_LR11X0_GFSK_RX_BW_312_0 (0x19UL << 0) // 7 0 312.0 kHz
+
410 #define RADIOLIB_LR11X0_GFSK_RX_BW_373_6 (0x11UL << 0) // 7 0 373.6 kHz
+
411 #define RADIOLIB_LR11X0_GFSK_RX_BW_467_0 (0x09UL << 0) // 7 0 467.0 kHz
+
412 #define RADIOLIB_LR11X0_LR_FHSS_BIT_RATE (488.28215) // 31 0 LR FHSS bit rate: 488.28215 bps
+
413 #define RADIOLIB_LR11X0_LR_FHSS_BIT_RATE_RAW (0x8001E848UL) // 31 0 488.28215 bps in raw
+
414 #define RADIOLIB_LR11X0_LR_FHSS_SHAPING_GAUSSIAN_BT_1_0 (0x0BUL << 0) // 7 0 shaping filter: Gaussian, BT = 1.0
+
415 #define RADIOLIB_LR11X0_SIGFOX_SHAPING_GAUSSIAN_BT_0_7 (0x16UL << 0) // 7 0 shaping filter: Gaussian, BT = 0.7
+
416 
+
417 // RADIOLIB_LR11X0_CMD_SET_PACKET_PARAMS
+
418 #define RADIOLIB_LR11X0_LORA_HEADER_EXPLICIT (0x00UL << 0) // 7 0 LoRa header mode: explicit
+
419 #define RADIOLIB_LR11X0_LORA_HEADER_IMPLICIT (0x01UL << 0) // 7 0 implicit
+
420 #define RADIOLIB_LR11X0_LORA_PAYLOAD_LEN_ANY (0x00UL << 0) // 7 0 accept any payload length
+
421 #define RADIOLIB_LR11X0_LORA_CRC_ENABLED (0x01UL << 0) // 7 0 CRC: enabled
+
422 #define RADIOLIB_LR11X0_LORA_CRC_DISABLED (0x00UL << 0) // 7 0 disabled
+
423 #define RADIOLIB_LR11X0_LORA_IQ_STANDARD (0x00UL << 0) // 7 0 IQ setup: standard
+
424 #define RADIOLIB_LR11X0_LORA_IQ_INVERTED (0x01UL << 0) // 7 0 inverted
+
425 #define RADIOLIB_LR11X0_GFSK_PREAMBLE_DETECT_DISABLED (0x00UL << 0) // 7 0 preamble detector: disabled
+
426 #define RADIOLIB_LR11X0_GFSK_PREAMBLE_DETECT_8_BITS (0x04UL << 0) // 7 0 8 bits
+
427 #define RADIOLIB_LR11X0_GFSK_PREAMBLE_DETECT_16_BITS (0x05UL << 0) // 7 0 16 bits
+
428 #define RADIOLIB_LR11X0_GFSK_PREAMBLE_DETECT_24_BITS (0x06UL << 0) // 7 0 24 bits
+
429 #define RADIOLIB_LR11X0_GFSK_PREAMBLE_DETECT_32_BITS (0x07UL << 0) // 7 0 32 bits
+
430 #define RADIOLIB_LR11X0_GFSK_ADDR_FILTER_DISABLED (0x00UL << 0) // 7 0 address filtering: disabled
+
431 #define RADIOLIB_LR11X0_GFSK_ADDR_FILTER_NODE (0x01UL << 0) // 7 0 node address
+
432 #define RADIOLIB_LR11X0_GFSK_ADDR_FILTER_NODE_BROADCAST (0x02UL << 0) // 7 0 node and broadcast address
+
433 #define RADIOLIB_LR11X0_GFSK_PACKET_LENGTH_FIXED (0x00UL << 0) // 7 0 packet length: fixed
+
434 #define RADIOLIB_LR11X0_GFSK_PACKET_LENGTH_VARIABLE (0x01UL << 0) // 7 0 variable
+
435 #define RADIOLIB_LR11X0_GFSK_PACKET_LENGTH_VARIABLE_SX128X (0x02UL << 0) // 7 0 variable, SX128x 9-bit length encoding
+
436 #define RADIOLIB_LR11X0_GFSK_PAYLOAD_LEN_ANY (0x00UL << 0) // 7 0 accept any payload length
+
437 #define RADIOLIB_LR11X0_GFSK_CRC_DISABLED (0x01UL << 0) // 7 0 CRC: disabled
+
438 #define RADIOLIB_LR11X0_GFSK_CRC_1_BYTE (0x00UL << 0) // 7 0 1-byte
+
439 #define RADIOLIB_LR11X0_GFSK_CRC_2_BYTE (0x02UL << 0) // 7 0 2-byte
+
440 #define RADIOLIB_LR11X0_GFSK_CRC_1_BYTE_INV (0x04UL << 0) // 7 0 1-byte, inverted
+
441 #define RADIOLIB_LR11X0_GFSK_CRC_2_BYTE_INV (0x06UL << 0) // 7 0 2-byte, inverted
+
442 #define RADIOLIB_LR11X0_GFSK_WHITENING_DISABLED (0x00UL << 0) // 7 0 whitening: disabled
+
443 #define RADIOLIB_LR11X0_GFSK_WHITENING_ENABLED (0x01UL << 0) // 7 0 enabled
+
444 
+
445 // RADIOLIB_LR11X0_CMD_SET_TX_PARAMS
+
446 #define RADIOLIB_LR11X0_PA_RAMP_48U (0x02UL << 0) // 7 0 PA ramp time: 48 us
+
447 
+
448 // RADIOLIB_LR11X0_CMD_SET_RX_TX_FALLBACK_MODE
+
449 #define RADIOLIB_LR11X0_FALLBACK_MODE_STBY_RC (0x01UL << 0) // 1 0 fallback mode after Rx/Tx: standby with RC
+
450 #define RADIOLIB_LR11X0_FALLBACK_MODE_STBY_XOSC (0x02UL << 0) // 1 0 standby with XOSC
+
451 #define RADIOLIB_LR11X0_FALLBACK_MODE_FS (0x03UL << 0) // 1 0 frequency synthesis
+
452 
+
453 // RADIOLIB_LR11X0_CMD_SET_RX_DUTY_CYCLE
+
454 #define RADIOLIB_LR11X0_RX_DUTY_CYCLE_MODE_RX (0x00UL << 0) // 0 0 mode in Rx windows: Rx (default)
+
455 #define RADIOLIB_LR11X0_RX_DUTY_CYCLE_MODE_CAD (0x01UL << 0) // 0 0 CAD
+
456 #define RADIOLIB_LR11X0_TIMING_STEP (1.0f/32768.0f) // 23 0 timing step fo delays
+
457 
+
458 // RADIOLIB_LR11X0_CMD_SET_PA_CONFIG
+
459 #define RADIOLIB_LR11X0_PA_SEL_LP (0x00UL << 0) // 7 0 PA select: low power PA
+
460 #define RADIOLIB_LR11X0_PA_SEL_HP (0x01UL << 0) // 7 0 high power PA
+
461 #define RADIOLIB_LR11X0_PA_SEL_HF (0x02UL << 0) // 7 0 high frequency PA
+
462 #define RADIOLIB_LR11X0_PA_SUPPLY_INTERNAL (0x00UL << 0) // 7 0 PA power source: internal
+
463 #define RADIOLIB_LR11X0_PA_SUPPLY_VBAT (0x01UL << 0) // 7 0 VBAT (required for >= 14 dBm)
+
464 
+
465 // RADIOLIB_LR11X0_CMD_STOP_TIMEOUT_ON_PREAMBLE
+
466 #define RADIOLIB_LR11X0_STOP_ON_SYNC_HEADER (0x00UL << 0) // 0 0 stop timeout on: sync word or header (default)
+
467 #define RADIOLIB_LR11X0_STOP_ON_PREAMBLE (0x01UL << 0) // 0 0 preamble
+
468 
+
469 // RADIOLIB_LR11X0_CMD_GET_RANGING_RESULT
+
470 #define RADIOLIB_LR11X0_RANGING_RESULT_DISTANCE (0) // 7 0 ranging result type: distance
+
471 #define RADIOLIB_LR11X0_RANGING_RESULT_RSSI (1) // 7 0 RSSI
+
472 
+
473 // RADIOLIB_LR11X0_CMD_SET_RX_BOOSTED
+
474 #define RADIOLIB_LR11X0_RX_BOOSTED_ENABLED (0x01UL << 0) // 0 0 Rx boosted mode: enabled
+
475 #define RADIOLIB_LR11X0_RX_BOOSTED_DISABLED (0x00UL << 0) // 0 0 disabled
+
476 
+
477 // RADIOLIB_LR11X0_CMD_SET_LORA_SYNC_WORD
+
478 #define RADIOLIB_LR11X0_LORA_SYNC_WORD_PRIVATE (0x12)
+
479 #define RADIOLIB_LR11X0_LORA_SYNC_WORD_PUBLIC (0x34)
+
480 
+
481 // RADIOLIB_LR11X0_CMD_LR_FHSS_BUILD_FRAME
+
482 #define RADIOLIB_LR11X0_LR_FHSS_CR_5_6 (0x00UL << 0) // 7 0 LR FHSS coding rate: 5/6
+
483 #define RADIOLIB_LR11X0_LR_FHSS_CR_2_3 (0x01UL << 0) // 7 0 2/3
+
484 #define RADIOLIB_LR11X0_LR_FHSS_CR_1_2 (0x02UL << 0) // 7 0 1/2
+
485 #define RADIOLIB_LR11X0_LR_FHSS_CR_1_3 (0x03UL << 0) // 7 0 1/3
+
486 #define RADIOLIB_LR11X0_LR_FHSS_MOD_TYPE_GMSK (0x00UL << 0) // 7 0 LR FHSS modulation: GMSK
+
487 #define RADIOLIB_LR11X0_LR_FHSS_GRID_STEP_FCC (0x00UL << 0) // 7 0 LR FHSS step size: 25.390625 kHz (FCC)
+
488 #define RADIOLIB_LR11X0_LR_FHSS_GRID_STEP_NON_FCC (0x01UL << 0) // 7 0 3.90625 kHz (non-FCC)
+
489 #define RADIOLIB_LR11X0_LR_FHSS_HOPPING_DISABLED (0x00UL << 0) // 7 0 LR FHSS hopping: disabled
+
490 #define RADIOLIB_LR11X0_LR_FHSS_HOPPING_ENABLED (0x01UL << 0) // 7 0 enabled
+
491 #define RADIOLIB_LR11X0_LR_FHSS_BW_39_06 (0x00UL << 0) // 7 0 LR FHSS bandwidth: 39.06 kHz
+
492 #define RADIOLIB_LR11X0_LR_FHSS_BW_85_94 (0x01UL << 0) // 7 0 85.94 kHz
+
493 #define RADIOLIB_LR11X0_LR_FHSS_BW_136_72 (0x02UL << 0) // 7 0 136.72 kHz
+
494 #define RADIOLIB_LR11X0_LR_FHSS_BW_183_59 (0x03UL << 0) // 7 0 183.59 kHz
+
495 #define RADIOLIB_LR11X0_LR_FHSS_BW_335_94 (0x04UL << 0) // 7 0 335.94 kHz
+
496 #define RADIOLIB_LR11X0_LR_FHSS_BW_386_72 (0x05UL << 0) // 7 0 386.72 kHz
+
497 #define RADIOLIB_LR11X0_LR_FHSS_BW_722_66 (0x06UL << 0) // 7 0 722.66 kHz
+
498 #define RADIOLIB_LR11X0_LR_FHSS_BW_773_44 (0x07UL << 0) // 7 0 773.44 kHz
+
499 #define RADIOLIB_LR11X0_LR_FHSS_BW_1523_4 (0x08UL << 0) // 7 0 1523.4 kHz
+
500 #define RADIOLIB_LR11X0_LR_FHSS_BW_1574_2 (0x09UL << 0) // 7 0 1574.2 kHz
+
501 #define RADIOLIB_LR11X0_LR_FHSS_HEADER_BITS (114) // 7 0 LR FHSS packet bit widths: header
+
502 #define RADIOLIB_LR11X0_LR_FHSS_FRAG_BITS (48) // 7 0 payload fragment
+
503 #define RADIOLIB_LR11X0_LR_FHSS_BLOCK_PREAMBLE_BITS (2) // 7 0 block preamble
+
504 #define RADIOLIB_LR11X0_LR_FHSS_BLOCK_BITS (RADIOLIB_LR11X0_LR_FHSS_FRAG_BITS + RADIOLIB_LR11X0_LR_FHSS_BLOCK_PREAMBLE_BITS)
+
505 
+
506 // RADIOLIB_LR11X0_CMD_GET_LORA_RX_HEADER_INFOS
+
507 #define RADIOLIB_LR11X0_LAST_HEADER_CRC_ENABLED (0x01UL << 4) // 4 4 last header CRC: enabled
+
508 #define RADIOLIB_LR11X0_LAST_HEADER_CRC_DISABLED (0x00UL << 4) // 4 4 disabled
+
509 
+
510 // RADIOLIB_LR11X0_CMD_WIFI_SCAN
+
511 #define RADIOLIB_LR11X0_WIFI_SCAN_802_11_B (0x01UL << 0) // 7 0 Wi-Fi type to scan: 802.11b
+
512 #define RADIOLIB_LR11X0_WIFI_SCAN_802_11_G (0x02UL << 0) // 7 0 802.11g
+
513 #define RADIOLIB_LR11X0_WIFI_SCAN_802_11_N (0x03UL << 0) // 7 0 802.11n
+
514 #define RADIOLIB_LR11X0_WIFI_SCAN_ALL (0x04UL << 0) // 7 0 all (802.11b first)
+
515 #define RADIOLIB_LR11X0_WIFI_ACQ_MODE_BEACON_ONLY (0x01UL << 0) // 7 0 Wi-Fi acquisition mode: beacon only
+
516 #define RADIOLIB_LR11X0_WIFI_ACQ_MODE_BEACON_PACKET (0x02UL << 0) // 7 0 beacon and packet
+
517 #define RADIOLIB_LR11X0_WIFI_ACQ_MODE_FULL_TRAFFIC (0x03UL << 0) // 7 0 full traffic
+
518 #define RADIOLIB_LR11X0_WIFI_ACQ_MODE_FULL_BEACON (0x04UL << 0) // 7 0 full beacon
+
519 #define RADIOLIB_LR11X0_WIFI_ACQ_MODE_SSID_BEACON (0x05UL << 0) // 7 0 SSID beacon
+
520 #define RADIOLIB_LR11X0_WIFI_ABORT_ON_TIMEOUT_ENABLED (0x01UL << 0) // 7 0 abort scanning on preamble timeout: enabled
+
521 #define RADIOLIB_LR11X0_WIFI_ABORT_ON_TIMEOUT_DISABLED (0x00UL << 0) // 7 0 disabled
+
522 #define RADIOLIB_LR11X0_WIFI_MAX_NUM_RESULTS (32) // 7 0 maximum possible number of Wi-Fi scan results
+
523 #define RADIOLIB_LR11X0_WIFI_ALL_CHANNELS (0x3FFFUL) // 16 0 scan all channels
+
524 
+
525 // RADIOLIB_LR11X0_CMD_WIFI_READ_RESULTS
+
526 #define RADIOLIB_LR11X0_WIFI_RESULT_TYPE_COMPLETE (0x01UL << 0) // 7 0 Wi-Fi scan result type: complete
+
527 #define RADIOLIB_LR11X0_WIFI_RESULT_TYPE_BASIC (0x04UL << 0) // 7 0 basic
+
528 #define RADIOLIB_LR11X0_WIFI_RESULT_MAX_LEN (79) // 7 0 maximum possible Wi-Fi scan size
+
529 #define RADIOLIB_LR11X0_WIFI_RESULT_MAC_LEN (6) // 7 0 MAC address length in bytes
+
530 #define RADIOLIB_LR11X0_WIFI_RESULT_SSID_LEN (32) // 7 0 SSID length in bytes
+
531 
+
532 // RADIOLIB_LR11X0_CMD_GNSS_SET_CONSTELLATION_TO_USE
+
533 #define RADIOLIB_LR11X0_GNSS_CONSTELLATION_GPS (0x01UL << 0) // 7 0 GNSS constellation to use: GPS
+
534 #define RADIOLIB_LR11X0_GNSS_CONSTELLATION_BEIDOU (0x01UL << 1) // 7 0 BeiDou
+
535 
+
536 // RADIOLIB_LR11X0_CMD_GNSS_SET_MODE
+
537 #define RADIOLIB_LR11X0_GNSS_MODE_SINGLE_SCAN (0x00UL << 0) // 7 0 GNSS scanning mode: single/legacy
+
538 #define RADIOLIB_LR11X0_GNSS_MODE_SINGLE_MULTIPLE (0x03UL << 1) // 7 0 multiple/advanced
+
539 
+
540 // RADIOLIB_LR11X0_CMD_GNSS_AUTONOMOUS
+
541 #define RADIOLIB_LR11X0_GNSS_RES_PSEUDO_DOPPLER_ENABLED (0x01UL << 0) // 0 0 GNSS results in NAV message: pseudo-range (in single scan mode) or Doppler information (in multiple scan mode)
+
542 #define RADIOLIB_LR11X0_GNSS_RES_PSEUDO_DOPPLER_DISABLED (0x00UL << 0) // 0 0 not included
+
543 #define RADIOLIB_LR11X0_GNSS_RES_DOPPLER_ENABLED (0x01UL << 1) // 1 1 Doppler information
+
544 #define RADIOLIB_LR11X0_GNSS_RES_DOPPLER_DISABLED (0x00UL << 1) // 1 1 not included
+
545 #define RADIOLIB_LR11X0_GNSS_NB_SV_ALL (0x00UL << 0) // 7 0 include all detected satellites
+
546 #define RADIOLIB_LR11X0_GNSS_AUTO_EFFORT_MODE (0x00UL << 0) // 7 0 reserved, always 0
+
547 
+
548 // RADIOLIB_LR11X0_CMD_GNSS_ASSISTED
+
549 #define RADIOLIB_LR11X0_GNSS_ASSIST_LOW_POWER (0x00UL << 0) // 7 0 effort mode: low power
+
550 #define RADIOLIB_LR11X0_GNSS_ASSIST_BEST_EFFORT (0x01UL << 0) // 7 0 best effort
+
551 
+
552 // RADIOLIB_LR11X0_CMD_GNSS_GET_CONTEXT_STATUS
+
553 #define RADIOLIB_LR11X0_GNSS_CONTEXT_ERR_NONE (0x00UL << 0) // 7 4 error code: none
+
554 #define RADIOLIB_LR11X0_GNSS_CONTEXT_ERR_ALMANAC_OLD (0x01UL << 0) // 7 4 almanac too old
+
555 #define RADIOLIB_LR11X0_GNSS_CONTEXT_ERR_ALMANAC_CRC (0x02UL << 0) // 7 4 almanac CRC mismatch
+
556 #define RADIOLIB_LR11X0_GNSS_CONTEXT_ERR_FLASH (0x03UL << 0) // 7 4 flash integrity error
+
557 #define RADIOLIB_LR11X0_GNSS_CONTEXT_ERR_ALMANAC_UPD (0x04UL << 0) // 7 4 almanac update not allowed
+
558 #define RADIOLIB_LR11X0_GNSS_CONTEXT_FREQ_SPACE_250_HZ (0x00UL << 0) // 8 7 frequency search space: 250 Hz
+
559 #define RADIOLIB_LR11X0_GNSS_CONTEXT_FREQ_SPACE_500_HZ (0x01UL << 0) // 8 7 500 Hz
+
560 #define RADIOLIB_LR11X0_GNSS_CONTEXT_FREQ_SPACE_1000_HZ (0x02UL << 0) // 8 7 1000 Hz
+
561 #define RADIOLIB_LR11X0_GNSS_CONTEXT_FREQ_SPACE_2000_HZ (0x03UL << 0) // 8 7 2000 Hz
+
562 
+
563 // RADIOLIB_LR11X0_CMD_GNSS_GET_SV_VISIBLE
+
564 #define RADIOLIB_LR11X0_SV_CONSTELLATION_GPS (0x00UL << 0) // 7 0 GNSS constellation: GPS
+
565 #define RADIOLIB_LR11X0_SV_CONSTELLATION_BEIDOU (0x01UL << 0) // 7 0 BeiDou
+
566 
+
567 // RADIOLIB_LR11X0_CMD_GNSS_ALMANAC_FULL_UPDATE
+
568 #define RADIOLIB_LR11X0_GNSS_ALMANAC_HEADER_ID (0x80UL << 0) // 7 0 starting byte of GNSS almanac header
+
569 #define RADIOLIB_LR11X0_GNSS_ALMANAC_BLOCK_SIZE (20)
+
570 
+
571 // RADIOLIB_LR11X0_CMD_GNSS_FETCH_TIME
+
572 #define RADIOLIB_LR11X0_GNSS_EFFORT_LOW (0x00UL << 0) // 7 0 GNSS effort mode: low sensitivity
+
573 #define RADIOLIB_LR11X0_GNSS_EFFORT_MID (0x01UL << 0) // 7 0 medium sensitivity
+
574 #define RADIOLIB_LR11X0_GNSS_FETCH_TIME_OPT_TOW (0x00UL << 0) // 7 0 time fetch options: ToW only, requires WN to demodulated beforehand
+
575 #define RADIOLIB_LR11X0_GNSS_FETCH_TIME_OPT_TOW_WN (0x01UL << 0) // 7 0 ToW and WN
+
576 #define RADIOLIB_LR11X0_GNSS_FETCH_TIME_OPT_TOW_WN_ROLL (0x02UL << 0) // 7 0 ToW, WN and rollover
+
577 
+
578 // RADIOLIB_LR11X0_CMD_GNSS_READ_DEMOD_STATUS
+
579 #define RADIOLIB_LR11X0_GNSS_DEMOD_STATUS_NOT_POSSIBLE (-21) // 7 0 GNSS demodulation status: not possible to demodulate
+
580 #define RADIOLIB_LR11X0_GNSS_DEMOD_STATUS_SAT_LOST (-20) // 7 0 satellite lost
+
581 #define RADIOLIB_LR11X0_GNSS_DEMOD_STATUS_ALMANAC_DEMOD_ERROR (-19) // 7 0 almanac demodulation error
+
582 #define RADIOLIB_LR11X0_GNSS_DEMOD_STATUS_TOO_LATE (-18) // 7 0 woke up after preamble (demodulation started too late)
+
583 #define RADIOLIB_LR11X0_GNSS_DEMOD_STATUS_20_MS_FAIL (-17) // 7 0 20ms real-time clock failed
+
584 #define RADIOLIB_LR11X0_GNSS_DEMOD_STATUS_WAKE_UP_FAIL (-16) // 7 0 wake up sync failed
+
585 #define RADIOLIB_LR11X0_GNSS_DEMOD_STATUS_WN_INVALID (-15) // 7 0 week number not validated
+
586 #define RADIOLIB_LR11X0_GNSS_DEMOD_STATUS_NO_ACTIVE_SAT (-14) // 7 0 no active satellite selected in satellite list
+
587 #define RADIOLIB_LR11X0_GNSS_DEMOD_STATUS_SLEEP_TOO_LONG (-13) // 7 0 sleep time too long
+
588 #define RADIOLIB_LR11X0_GNSS_DEMOD_STATUS_TOW_INVALID (-12) // 7 0 wrong time-of-week demodulated
+
589 #define RADIOLIB_LR11X0_GNSS_DEMOD_STATUS_PREAMBLE_INVALID (-11) // 7 0 preamble not validated
+
590 #define RADIOLIB_LR11X0_GNSS_DEMOD_STATUS_DISABLED (-10) // 7 0 demodulator disabled
+
591 #define RADIOLIB_LR11X0_GNSS_DEMOD_STATUS_EXTR_FAILED (-9) // 7 0 demodulator extraction failed
+
592 #define RADIOLIB_LR11X0_GNSS_DEMOD_STATUS_NO_BIT_CHANGE (-8) // 7 0 no bit change found during demodulation start
+
593 #define RADIOLIB_LR11X0_GNSS_DEMOD_STATUS_NO_BIT_CHANGE_ADV (-7) // 7 0 no bit change found during advanced scan
+
594 #define RADIOLIB_LR11X0_GNSS_DEMOD_STATUS_NO_SAT_FOUND (-6) // 7 0 no satellites found
+
595 #define RADIOLIB_LR11X0_GNSS_DEMOD_STATUS_SYNC_LOST (-5) // 7 0 word sync lost
+
596 #define RADIOLIB_LR11X0_GNSS_DEMOD_STATUS_PARITY_NOT_ENOUGH (-3) // 7 0 parity check fail (not enough)
+
597 #define RADIOLIB_LR11X0_GNSS_DEMOD_STATUS_PARITY_TOO_MANY (-2) // 7 0 parity check fail (too many)
+
598 #define RADIOLIB_LR11X0_GNSS_DEMOD_STATUS_NO_PARITY (-1) // 7 0 parity check fail (no parity found)
+
599 #define RADIOLIB_LR11X0_GNSS_DEMOD_STATUS_WORD_SYNC_NONE (0) // 7 0 word sync search not started
+
600 #define RADIOLIB_LR11X0_GNSS_DEMOD_STATUS_WORD_SYNC_POT (1) // 7 0 potential word sync found
+
601 #define RADIOLIB_LR11X0_GNSS_DEMOD_STATUS_WORD_SYNC_OK (2) // 7 0 word sync found
+
602 #define RADIOLIB_LR11X0_GNSS_DEMOD_STATUS_TOW_FOUND (3) // 7 0 time-of-week found
+
603 #define RADIOLIB_LR11X0_GNSS_DEMOD_STATUS_WN_FOUND (4) // 7 0 week number and time-of-week found
+
604 #define RADIOLIB_LR11X0_GNSS_DEMOD_STATUS_ALM_FOUND_UNSAVED (5) // 7 0 almanac found but not saved
+
605 #define RADIOLIB_LR11X0_GNSS_DEMOD_STATUS_HALF_ALM_SAVED (6) // 7 0 half of almanac found and saved
+
606 #define RADIOLIB_LR11X0_GNSS_DEMOD_STATUS_FULL_ALM_SAVED (7) // 7 0 full almanac found and saved
+
607 #define RADIOLIB_LR11X0_GNSS_DEMOD_INFO_WORD_SYNC_FOUND (0x01UL << 0) // 7 0 GNSS demodulation info: word synchronization found
+
608 #define RADIOLIB_LR11X0_GNSS_DEMOD_INFO_TOW_FOUND (0x01UL << 1) // 7 0 time-of-week found
+
609 #define RADIOLIB_LR11X0_GNSS_DEMOD_INFO_WN_DEMODED (0x01UL << 2) // 7 0 week number demodulated
+
610 #define RADIOLIB_LR11X0_GNSS_DEMOD_INFO_WN_FOUND (0x01UL << 3) // 7 0 week number found
+
611 #define RADIOLIB_LR11X0_GNSS_DEMOD_INFO_SUBFRAME_1_FOUND (0x01UL << 4) // 7 0 subframe 1 found
+
612 #define RADIOLIB_LR11X0_GNSS_DEMOD_INFO_SUBFRAME_4_FOUND (0x01UL << 5) // 7 0 subframe 4 found
+
613 #define RADIOLIB_LR11X0_GNSS_DEMOD_INFO_SUBFRAME_5_FOUND (0x01UL << 6) // 7 0 subframe 5 found
+
614 
+
615 // RADIOLIB_LR11X0_CMD_GNSS_READ_ALMANAC_STATUS
+
616 #define RADIOLIB_LR11X0_GNSS_ALMANAC_STATUS_UP_TO_DATE (0) // 7 0 GPS/BeiDou almanac status: all satellites up-to-date
+
617 #define RADIOLIB_LR11X0_GNSS_ALMANAC_STATUS_OUTDATED (1) // 7 0 at least one satellite needs update
+
618 
+
619 // RADIOLIB_LR11X0_CMD_GNSS_READ_DOPPLER_SOLVER_RES
+
620 #define RADIOLIB_LR11X0_GNSS_SOLVER_ERR_NONE (0) // 7 0 internal 2D solver error: no error
+
621 #define RADIOLIB_LR11X0_GNSS_SOLVER_ERR_RES_HIGH (1) // 7 0 residue too high
+
622 #define RADIOLIB_LR11X0_GNSS_SOLVER_ERR_NOT_CONVERGED (2) // 7 0 not converged on solution
+
623 #define RADIOLIB_LR11X0_GNSS_SOLVER_ERR_NOT_ENOUGH_SV (3) // 7 0 not enough satellites
+
624 #define RADIOLIB_LR11X0_GNSS_SOLVER_ERR_ILL_MATRIX (4) // 7 0 matrix error (?)
+
625 #define RADIOLIB_LR11X0_GNSS_SOLVER_ERR_TIME (5) // 7 0 time error
+
626 #define RADIOLIB_LR11X0_GNSS_SOLVER_ERR_ALM_PART_OLD (6) // 7 0 part of almanac too old or not available
+
627 #define RADIOLIB_LR11X0_GNSS_SOLVER_ERR_INCONSISTENT (7) // 7 0 not consistent with history (?)
+
628 #define RADIOLIB_LR11X0_GNSS_SOLVER_ERR_ALM_OLD (8) // 7 0 all of almanac too old
+
629 
+
630 // RADIOLIB_LR11X0_CMD_CRYPTO_SET_KEY
+
631 #define RADIOLIB_LR11X0_CRYPTO_STATUS_SUCCESS (0x00UL << 0) // 7 0 crypto engine status: success
+
632 #define RADIOLIB_LR11X0_CRYPTO_STATUS_FAIL_CMAC (0x01UL << 0) // 7 0 MIC check failed
+
633 #define RADIOLIB_LR11X0_CRYPTO_STATUS_INV_KEY_ID (0x03UL << 0) // 7 0 key/parameter source or destination ID error
+
634 #define RADIOLIB_LR11X0_CRYPTO_STATUS_BUF_SIZE (0x05UL << 0) // 7 0 data buffer size invalid
+
635 #define RADIOLIB_LR11X0_CRYPTO_STATUS_ERROR (0x06UL << 0) // 7 0 generic error
+
636 
+
637 // RADIOLIB_LR11X0_CMD_CRYPTO_PROCESS_JOIN_ACCEPT
+
638 #define RADIOLIB_LR11X0_CRYPTO_LORAWAN_VERSION_1_0 (0x00UL << 0) // 7 0 LoRaWAN version: 1.0.x
+
639 #define RADIOLIB_LR11X0_CRYPTO_LORAWAN_VERSION_1_1 (0x01UL << 0) // 7 0 1.1
640 
-
641 // RADIOLIB_LR11X0_REG_SF6_SX127X_COMPAT
-
642 #define RADIOLIB_LR11X0_SF6_SX126X (0x00UL << 18) // 18 18 SF6 mode: SX126x series
-
643 #define RADIOLIB_LR11X0_SF6_SX127X (0x01UL << 18) // 18 18 SX127x series
-
644 
-
645 // RADIOLIB_LR11X0_REG_LORA_HIGH_POWER_FIX
-
646 #define RADIOLIB_LR11X0_LORA_HIGH_POWER_FIX (0x00UL << 30) // 30 30 fix for errata
-
647 
-
648 // RADIOLIB_LR11X0_REG_LNA_MODE
-
649 #define RADIOLIB_LR11X0_LNA_MODE_SINGLE_RFI_N (0x01UL << 4) // 7 4 LNA mode: single-ended RFI_N
-
650 #define RADIOLIB_LR11X0_LNA_MODE_SINGLE_RFI_P (0x02UL << 4) // 7 4 single-ended RFI_P
-
651 #define RADIOLIB_LR11X0_LNA_MODE_DIFFERENTIAL (0x03UL << 4) // 7 4 differential (default)
-
652 
-
658 struct LR11x0WifiResult_t {
-
660  char type;
-
661 
-
663  uint8_t dataRateId;
-
664 
-
666  uint16_t channelFreq;
-
667 
-
669  uint8_t origin;
-
670 
-
672  bool ap;
-
673 
-
675  float rssi;
-
676 
-
678  uint8_t mac[RADIOLIB_LR11X0_WIFI_RESULT_MAC_LEN];
-
679 };
-
680 
-
686 struct LR11x0WifiResultFull_t: public LR11x0WifiResult_t {
-
688  uint8_t frameType;
-
689 
-
691  uint8_t frameSubType;
-
692 
-
694  bool toDistributionSystem;
-
695 
-
697  bool fromDistributionSystem;
-
698 
-
700  uint16_t phiOffset;
-
701 
-
703  uint64_t timestamp;
-
704 
-
706  uint32_t periodBeacon;
-
707 };
-
708 
-
716 struct LR11x0WifiResultExtended_t: public LR11x0WifiResultFull_t {
-
718  uint8_t rate;
-
719 
-
721  uint16_t service;
-
722 
-
724  uint16_t length;
-
725 
-
727  uint8_t mac0[RADIOLIB_LR11X0_WIFI_RESULT_MAC_LEN];
-
728 
-
730  uint8_t mac2[RADIOLIB_LR11X0_WIFI_RESULT_MAC_LEN];
-
731 
-
733  uint16_t seqCtrl;
-
734 
-
736  uint8_t ssid[RADIOLIB_LR11X0_WIFI_RESULT_SSID_LEN];
-
737 
-
739  uint8_t currentChannel;
-
740 
-
742  char countryCode[3];
-
743 
-
745  uint8_t ioReg;
-
746 
-
748  bool fcsCheckOk;
-
749 };
-
750 
-
755 struct LR11x0VersionInfo_t {
-
757  uint8_t hardware;
-
758 
-
760  uint8_t device;
-
761 
-
763  uint8_t fwMajor;
-
764 
-
766  uint8_t fwMinor;
-
767 
-
769  uint8_t fwMajorWiFi;
-
770 
-
772  uint8_t fwMinorWiFi;
-
773 
-
775  uint8_t fwGNSS;
-
776 
-
778  uint8_t almanacGNSS;
-
779 };
-
780 
-
785 struct LR11x0GnssResult_t {
-
787  int8_t demodStat;
-
788 
-
790  uint8_t numSatsDet;
-
791 
-
793  uint16_t resSize;
-
794 };
-
795 
-
800 struct LR11x0GnssPosition_t {
-
802  float latitude;
-
803 
-
805  float longitude;
-
806 
-
808  uint16_t accuracy;
-
809 
-
811  uint8_t numSatsUsed;
-
812 };
-
813 
-
818 struct LR11x0GnssSatellite_t {
-
820  uint8_t svId;
-
821 
-
823  uint8_t c_n0;
-
824 
-
826  int16_t doppler;
-
827 };
-
828 
-
833 struct LR11x0GnssAlmanacStatusPart_t {
-
834  int8_t status;
-
835  uint32_t timeUntilSubframe;
-
836  uint8_t numSubframes;
-
837  uint8_t nextSubframe4SvId;
-
838  uint8_t nextSubframe5SvId;
-
839  uint8_t nextSubframeStart;
-
840  uint8_t numUpdateNeeded;
-
841  uint32_t flagsUpdateNeeded[2];
-
842  uint32_t flagsActive[2];
-
843 };
-
844 
-
850 struct LR11x0GnssAlmanacStatus_t {
-
852  LR11x0GnssAlmanacStatusPart_t gps;
-
853 
-
855  LR11x0GnssAlmanacStatusPart_t beidou;
-
856 
-
858  uint32_t beidouSvNoAlmanacFlags[2];
-
859 
-
861  uint8_t nextAlmanacId;
-
862 
-
864  RadioLibTime_t start;
-
865 };
-
866 
-
872 class LR11x0: public PhysicalLayer {
-
873  public:
-
874  // introduce PhysicalLayer overloads
-
875  using PhysicalLayer::transmit;
-
876  using PhysicalLayer::receive;
-
877  using PhysicalLayer::startTransmit;
-
878  using PhysicalLayer::readData;
-
879 
-
884  explicit LR11x0(Module* mod);
-
885 
-
890  enum OpMode_t {
-
892  MODE_END_OF_TABLE = Module::MODE_END_OF_TABLE,
-
894  MODE_STBY = Module::MODE_IDLE,
-
896  MODE_RX = Module::MODE_RX,
-
898  MODE_TX = Module::MODE_TX,
-
900  MODE_TX_HP,
-
902  MODE_TX_HF,
-
904  MODE_GNSS,
-
906  MODE_WIFI,
-
907  };
-
908 
-
912  bool XTAL;
-
913 
-
925  int16_t begin(float bw, uint8_t sf, uint8_t cr, uint8_t syncWord, uint16_t preambleLength, float tcxoVoltage, bool high = false);
-
926 
-
936  int16_t beginGFSK(float br, float freqDev, float rxBw, uint16_t preambleLength, float tcxoVoltage);
-
937 
-
946  int16_t beginLRFHSS(uint8_t bw, uint8_t cr, bool narrowGrid, float tcxoVoltage);
-
947 
-
954  int16_t beginGNSS(uint8_t constellations = RADIOLIB_LR11X0_GNSS_CONSTELLATION_GPS | RADIOLIB_LR11X0_GNSS_CONSTELLATION_BEIDOU, float tcxoVoltage = 1.6);
-
955 
-
960  int16_t reset();
-
961 
-
970  int16_t transmit(const uint8_t* data, size_t len, uint8_t addr = 0) override;
-
971 
-
979  int16_t receive(uint8_t* data, size_t len) override;
-
980 
-
986  int16_t transmitDirect(uint32_t frf = 0) override;
-
987 
-
993  int16_t receiveDirect() override;
-
994 
-
999  int16_t scanChannel() override;
-
1000 
-
1006  int16_t scanChannel(const ChannelScanConfig_t &config) override;
-
1007 
-
1012  int16_t standby() override;
-
1013 
-
1021  int16_t standby(uint8_t mode, bool wakeup = true);
-
1022 
-
1028  int16_t sleep() override;
-
1029 
-
1037  int16_t sleep(bool retainConfig, uint32_t sleepTime);
-
1038 
-
1039  // interrupt methods
-
1040 
-
1045  void setIrqAction(void (*func)(void));
-
1046 
-
1050  void clearIrqAction();
-
1051 
-
1056  void setPacketReceivedAction(void (*func)(void)) override;
-
1057 
-
1061  void clearPacketReceivedAction() override;
-
1062 
-
1067  void setPacketSentAction(void (*func)(void)) override;
-
1068 
-
1072  void clearPacketSentAction() override;
-
1073 
-
1082  int16_t startTransmit(const uint8_t* data, size_t len, uint8_t addr = 0) override;
-
1083 
-
1088  int16_t finishTransmit() override;
-
1089 
-
1096  int16_t startReceive() override;
-
1097 
-
1110  int16_t startReceive(uint32_t timeout, uint32_t irqFlags = RADIOLIB_LR11X0_IRQ_RX_DONE, uint32_t irqMask = 0, size_t len = 0);
-
1111 
-
1116  uint32_t getIrqStatus();
-
1117 
-
1126  int16_t readData(uint8_t* data, size_t len) override;
-
1127 
-
1133  int16_t startChannelScan() override;
-
1134 
-
1141  int16_t startChannelScan(const ChannelScanConfig_t &config) override;
-
1142 
-
1147  int16_t getChannelScanResult() override;
-
1148 
-
1149  // configuration methods
+
641 // LR11X0 SPI register variables
+
642 
+
643 // RADIOLIB_LR11X0_REG_SF6_SX127X_COMPAT
+
644 #define RADIOLIB_LR11X0_SF6_SX126X (0x00UL << 18) // 18 18 SF6 mode: SX126x series
+
645 #define RADIOLIB_LR11X0_SF6_SX127X (0x01UL << 18) // 18 18 SX127x series
+
646 
+
647 // RADIOLIB_LR11X0_REG_LORA_HIGH_POWER_FIX
+
648 #define RADIOLIB_LR11X0_LORA_HIGH_POWER_FIX (0x00UL << 30) // 30 30 fix for errata
+
649 
+
650 // RADIOLIB_LR11X0_REG_LNA_MODE
+
651 #define RADIOLIB_LR11X0_LNA_MODE_SINGLE_RFI_N (0x01UL << 4) // 7 4 LNA mode: single-ended RFI_N
+
652 #define RADIOLIB_LR11X0_LNA_MODE_SINGLE_RFI_P (0x02UL << 4) // 7 4 single-ended RFI_P
+
653 #define RADIOLIB_LR11X0_LNA_MODE_DIFFERENTIAL (0x03UL << 4) // 7 4 differential (default)
+
654 
+
660 struct LR11x0WifiResult_t {
+
662  char type;
+
663 
+
665  uint8_t dataRateId;
+
666 
+
668  uint16_t channelFreq;
+
669 
+
671  uint8_t origin;
+
672 
+
674  bool ap;
+
675 
+
677  float rssi;
+
678 
+
680  uint8_t mac[RADIOLIB_LR11X0_WIFI_RESULT_MAC_LEN];
+
681 };
+
682 
+
688 struct LR11x0WifiResultFull_t: public LR11x0WifiResult_t {
+
690  uint8_t frameType;
+
691 
+
693  uint8_t frameSubType;
+
694 
+
696  bool toDistributionSystem;
+
697 
+
699  bool fromDistributionSystem;
+
700 
+
702  uint16_t phiOffset;
+
703 
+
705  uint64_t timestamp;
+
706 
+
708  uint32_t periodBeacon;
+
709 };
+
710 
+
718 struct LR11x0WifiResultExtended_t: public LR11x0WifiResultFull_t {
+
720  uint8_t rate;
+
721 
+
723  uint16_t service;
+
724 
+
726  uint16_t length;
+
727 
+
729  uint8_t mac0[RADIOLIB_LR11X0_WIFI_RESULT_MAC_LEN];
+
730 
+
732  uint8_t mac2[RADIOLIB_LR11X0_WIFI_RESULT_MAC_LEN];
+
733 
+
735  uint16_t seqCtrl;
+
736 
+
738  uint8_t ssid[RADIOLIB_LR11X0_WIFI_RESULT_SSID_LEN];
+
739 
+
741  uint8_t currentChannel;
+
742 
+
744  char countryCode[3];
+
745 
+
747  uint8_t ioReg;
+
748 
+
750  bool fcsCheckOk;
+
751 };
+
752 
+
757 struct LR11x0VersionInfo_t {
+
759  uint8_t hardware;
+
760 
+
762  uint8_t device;
+
763 
+
765  uint8_t fwMajor;
+
766 
+
768  uint8_t fwMinor;
+
769 
+
771  uint8_t fwMajorWiFi;
+
772 
+
774  uint8_t fwMinorWiFi;
+
775 
+
777  uint8_t fwGNSS;
+
778 
+
780  uint8_t almanacGNSS;
+
781 };
+
782 
+
787 struct LR11x0GnssResult_t {
+
789  int8_t demodStat;
+
790 
+
792  uint8_t numSatsDet;
+
793 
+
795  uint16_t resSize;
+
796 };
+
797 
+
802 struct LR11x0GnssPosition_t {
+
804  float latitude;
+
805 
+
807  float longitude;
+
808 
+
810  uint16_t accuracy;
+
811 
+
813  uint8_t numSatsUsed;
+
814 };
+
815 
+
820 struct LR11x0GnssSatellite_t {
+
822  uint8_t svId;
+
823 
+
825  uint8_t c_n0;
+
826 
+
828  int16_t doppler;
+
829 };
+
830 
+
835 struct LR11x0GnssAlmanacStatusPart_t {
+
836  int8_t status;
+
837  uint32_t timeUntilSubframe;
+
838  uint8_t numSubframes;
+
839  uint8_t nextSubframe4SvId;
+
840  uint8_t nextSubframe5SvId;
+
841  uint8_t nextSubframeStart;
+
842  uint8_t numUpdateNeeded;
+
843  uint32_t flagsUpdateNeeded[2];
+
844  uint32_t flagsActive[2];
+
845 };
+
846 
+
852 struct LR11x0GnssAlmanacStatus_t {
+
854  LR11x0GnssAlmanacStatusPart_t gps;
+
855 
+
857  LR11x0GnssAlmanacStatusPart_t beidou;
+
858 
+
860  uint32_t beidouSvNoAlmanacFlags[2];
+
861 
+
863  uint8_t nextAlmanacId;
+
864 
+
866  RadioLibTime_t start;
+
867 };
+
868 
+
874 class LR11x0: public PhysicalLayer {
+
875  public:
+
876  // introduce PhysicalLayer overloads
+
877  using PhysicalLayer::transmit;
+
878  using PhysicalLayer::receive;
+
879  using PhysicalLayer::startTransmit;
+
880  using PhysicalLayer::readData;
+
881 
+
886  explicit LR11x0(Module* mod);
+
887 
+
892  enum OpMode_t {
+
894  MODE_END_OF_TABLE = Module::MODE_END_OF_TABLE,
+
896  MODE_STBY = Module::MODE_IDLE,
+
898  MODE_RX = Module::MODE_RX,
+
900  MODE_TX = Module::MODE_TX,
+
902  MODE_TX_HP,
+
904  MODE_TX_HF,
+
906  MODE_GNSS,
+
908  MODE_WIFI,
+
909  };
+
910 
+
914  bool XTAL;
+
915 
+
927  int16_t begin(float bw, uint8_t sf, uint8_t cr, uint8_t syncWord, uint16_t preambleLength, float tcxoVoltage, bool high = false);
+
928 
+
938  int16_t beginGFSK(float br, float freqDev, float rxBw, uint16_t preambleLength, float tcxoVoltage);
+
939 
+
948  int16_t beginLRFHSS(uint8_t bw, uint8_t cr, bool narrowGrid, float tcxoVoltage);
+
949 
+
956  int16_t beginGNSS(uint8_t constellations = RADIOLIB_LR11X0_GNSS_CONSTELLATION_GPS | RADIOLIB_LR11X0_GNSS_CONSTELLATION_BEIDOU, float tcxoVoltage = 1.6);
+
957 
+
962  int16_t reset();
+
963 
+
972  int16_t transmit(const uint8_t* data, size_t len, uint8_t addr = 0) override;
+
973 
+
981  int16_t receive(uint8_t* data, size_t len) override;
+
982 
+
988  int16_t transmitDirect(uint32_t frf = 0) override;
+
989 
+
995  int16_t receiveDirect() override;
+
996 
+
1001  int16_t scanChannel() override;
+
1002 
+
1008  int16_t scanChannel(const ChannelScanConfig_t &config) override;
+
1009 
+
1014  int16_t standby() override;
+
1015 
+
1023  int16_t standby(uint8_t mode, bool wakeup = true);
+
1024 
+
1030  int16_t sleep() override;
+
1031 
+
1039  int16_t sleep(bool retainConfig, uint32_t sleepTime);
+
1040 
+
1041  // interrupt methods
+
1042 
+
1047  void setIrqAction(void (*func)(void));
+
1048 
+
1052  void clearIrqAction();
+
1053 
+
1058  void setPacketReceivedAction(void (*func)(void)) override;
+
1059 
+
1063  void clearPacketReceivedAction() override;
+
1064 
+
1069  void setPacketSentAction(void (*func)(void)) override;
+
1070 
+
1074  void clearPacketSentAction() override;
+
1075 
+
1084  int16_t startTransmit(const uint8_t* data, size_t len, uint8_t addr = 0) override;
+
1085 
+
1090  int16_t finishTransmit() override;
+
1091 
+
1098  int16_t startReceive() override;
+
1099 
+
1112  int16_t startReceive(uint32_t timeout, uint32_t irqFlags = RADIOLIB_LR11X0_IRQ_RX_DONE, uint32_t irqMask = 0, size_t len = 0);
+
1113 
+
1118  uint32_t getIrqStatus();
+
1119 
+
1128  int16_t readData(uint8_t* data, size_t len) override;
+
1129 
+
1135  int16_t startChannelScan() override;
+
1136 
+
1143  int16_t startChannelScan(const ChannelScanConfig_t &config) override;
+
1144 
+
1149  int16_t getChannelScanResult() override;
1150 
-
1157  int16_t setBandwidth(float bw, bool high = false);
-
1158 
-
1165  int16_t setSpreadingFactor(uint8_t sf, bool legacy = false);
-
1166 
-
1174  int16_t setCodingRate(uint8_t cr, bool longInterleave = false);
-
1175 
-
1181  int16_t setSyncWord(uint32_t syncWord);
-
1182 
-
1188  int16_t setBitRate(float br) override;
-
1189 
-
1195  int16_t setFrequencyDeviation(float freqDev) override;
-
1196 
-
1203  int16_t setRxBandwidth(float rxBw);
-
1204 
-
1211  int16_t setSyncWord(uint8_t* syncWord, size_t len) override;
-
1212 
-
1220  int16_t setSyncBits(uint8_t *syncWord, uint8_t bitsLen);
-
1221 
-
1227  int16_t setNodeAddress(uint8_t nodeAddr);
-
1228 
-
1235  int16_t setBroadcastAddress(uint8_t broadAddr);
-
1236 
-
1241  int16_t disableAddressFiltering();
-
1242 
-
1250  int16_t setDataShaping(uint8_t sh) override;
-
1251 
-
1257  int16_t setEncoding(uint8_t encoding) override;
-
1258 
-
1264  int16_t fixedPacketLengthMode(uint8_t len = RADIOLIB_LR11X0_MAX_PACKET_LENGTH);
-
1265 
-
1271  int16_t variablePacketLengthMode(uint8_t maxLen = RADIOLIB_LR11X0_MAX_PACKET_LENGTH);
-
1272 
-
1280  int16_t setWhitening(bool enabled, uint16_t initial = 0x01FF);
-
1281 
-
1287  int16_t setDataRate(DataRate_t dr) override;
-
1288 
-
1294  int16_t checkDataRate(DataRate_t dr) override;
-
1295 
-
1301  int16_t setPreambleLength(size_t preambleLength) override;
-
1302 
-
1311  int16_t setTCXO(float voltage, uint32_t delay = 5000);
-
1312 
-
1321  int16_t setCRC(uint8_t len, uint32_t initial = 0x00001D0FUL, uint32_t polynomial = 0x00001021UL, bool inverted = true);
-
1322 
-
1328  int16_t invertIQ(bool enable) override;
-
1329 
-
1334  float getRSSI() override;
-
1335 
-
1340  float getSNR() override;
-
1341 
-
1346  float getFrequencyError();
-
1347 
-
1353  size_t getPacketLength(bool update = true) override;
-
1354 
-
1360  size_t getPacketLength(bool update, uint8_t* offset);
-
1361 
-
1367  RadioLibTime_t getTimeOnAir(size_t len) override;
-
1368 
-
1374  RadioLibTime_t calculateRxTimeout(RadioLibTime_t timeoutUs) override;
-
1375 
-
1380  uint32_t getIrqFlags() override;
-
1381 
-
1387  int16_t setIrqFlags(uint32_t irq) override;
-
1388 
-
1394  int16_t clearIrqFlags(uint32_t irq) override;
-
1395 
-
1400  uint8_t randomByte() override;
-
1401 
-
1407  int16_t implicitHeader(size_t len);
-
1408 
-
1413  int16_t explicitHeader();
-
1414 
-
1419  float getDataRate() const;
-
1420 
-
1425  int16_t setRegulatorLDO();
-
1426 
-
1431  int16_t setRegulatorDCDC();
-
1432 
-
1438  int16_t setRxBoostedGainMode(bool en);
-
1439 
-
1441  void setRfSwitchTable(const uint32_t (&pins)[Module::RFSWITCH_MAX_PINS], const Module::RfSwitchMode_t table[]);
-
1442 
-
1449  int16_t forceLDRO(bool enable);
-
1450 
-
1456  int16_t autoLDRO();
-
1457 
-
1466  int16_t setLrFhssConfig(uint8_t bw, uint8_t cr, uint8_t hdrCount = 3, uint16_t hopSeed = 0x13A);
-
1467 
-
1482  int16_t startWifiScan(char wifiType, uint8_t mode = RADIOLIB_LR11X0_WIFI_ACQ_MODE_FULL_BEACON, uint16_t chanMask = RADIOLIB_LR11X0_WIFI_ALL_CHANNELS, uint8_t numScans = 16, uint16_t timeout = 100);
-
1483 
-
1488  void setWiFiScanAction(void (*func)(void));
-
1489 
-
1493  void clearWiFiScanAction();
-
1494 
-
1500  int16_t getWifiScanResultsCount(uint8_t* count);
-
1501 
-
1511  int16_t getWifiScanResult(LR11x0WifiResult_t* result, uint8_t index, bool brief = false);
-
1512 
-
1529  int16_t wifiScan(uint8_t wifiType, uint8_t* count, uint8_t mode = RADIOLIB_LR11X0_WIFI_ACQ_MODE_FULL_BEACON, uint16_t chanMask = RADIOLIB_LR11X0_WIFI_ALL_CHANNELS, uint8_t numScans = 16, uint16_t timeout = 100);
-
1530 
-
1536  int16_t getVersionInfo(LR11x0VersionInfo_t* info);
-
1537 
-
1548  int16_t updateFirmware(const uint32_t* image, size_t size, bool nonvolatile = true);
-
1549 
-
1554  int16_t isGnssScanCapable();
-
1555 
-
1562  int16_t gnssScan(LR11x0GnssResult_t* res = NULL);
-
1563 
-
1570  int16_t getGnssAlmanacStatus(LR11x0GnssAlmanacStatus_t *stat);
-
1571 
-
1581  int16_t gnssDelayUntilSubframe(LR11x0GnssAlmanacStatus_t *stat, uint8_t constellation);
-
1582 
-
1589  int16_t updateGnssAlmanac(uint8_t constellation);
-
1590 
-
1597  int16_t getGnssPosition(LR11x0GnssPosition_t* pos, bool filtered = true);
-
1598 
-
1605  int16_t getGnssSatellites(LR11x0GnssSatellite_t* sats, uint8_t numSats);
-
1606 
-
1612  int16_t getModem(ModemType_t* modem) override;
-
1613 
-
1621  int16_t calibrateImageRejection(float freqMin, float freqMax);
-
1622 
-
1623 #if !RADIOLIB_GODMODE && !RADIOLIB_LOW_LEVEL
-
1624  protected:
-
1625 #endif
-
1626  Module* getMod() override;
-
1627 
-
1628  // LR11x0 SPI command implementations
-
1629  int16_t writeRegMem32(uint32_t addr, uint32_t* data, size_t len);
-
1630  int16_t readRegMem32(uint32_t addr, uint32_t* data, size_t len);
-
1631  int16_t writeBuffer8(uint8_t* data, size_t len);
-
1632  int16_t readBuffer8(uint8_t* data, size_t len, size_t offset);
-
1633  int16_t clearRxBuffer(void);
-
1634  int16_t writeRegMemMask32(uint32_t addr, uint32_t mask, uint32_t data);
-
1635 
-
1636  int16_t getStatus(uint8_t* stat1, uint8_t* stat2, uint32_t* irq);
-
1637  int16_t getVersion(uint8_t* hw, uint8_t* device, uint8_t* major, uint8_t* minor);
-
1638  int16_t getErrors(uint16_t* err);
-
1639  int16_t clearErrors(void);
-
1640  int16_t calibrate(uint8_t params);
-
1641  int16_t setRegMode(uint8_t mode);
-
1642  int16_t setDioAsRfSwitch(uint8_t en, uint8_t stbyCfg, uint8_t rxCfg, uint8_t txCfg, uint8_t txHpCfg, uint8_t txHfCfg, uint8_t gnssCfg, uint8_t wifiCfg);
-
1643  int16_t setDioIrqParams(uint32_t irq1, uint32_t irq2);
-
1644  int16_t setDioIrqParams(uint32_t irq);
-
1645  int16_t clearIrq(uint32_t irq);
-
1646  int16_t configLfClock(uint8_t setup);
-
1647  int16_t setTcxoMode(uint8_t tune, uint32_t delay);
-
1648  int16_t reboot(bool stay);
-
1649  int16_t getVbat(float* vbat);
-
1650  int16_t getTemp(float* temp);
-
1651  int16_t setFs(void);
-
1652  int16_t getRandomNumber(uint32_t* rnd);
-
1653  int16_t eraseInfoPage(void);
-
1654  int16_t writeInfoPage(uint16_t addr, const uint32_t* data, size_t len);
-
1655  int16_t readInfoPage(uint16_t addr, uint32_t* data, size_t len);
-
1656  int16_t getChipEui(uint8_t* eui);
-
1657  int16_t getSemtechJoinEui(uint8_t* eui);
-
1658  int16_t deriveRootKeysAndGetPin(uint8_t* pin);
-
1659  int16_t enableSpiCrc(bool en);
-
1660  int16_t driveDiosInSleepMode(bool en);
-
1661 
-
1662  int16_t resetStats(void);
-
1663  int16_t getStats(uint16_t* nbPktReceived, uint16_t* nbPktCrcError, uint16_t* data1, uint16_t* data2);
-
1664  int16_t getPacketType(uint8_t* type);
-
1665  int16_t getRxBufferStatus(uint8_t* len, uint8_t* startOffset);
-
1666  int16_t getPacketStatusLoRa(float* rssiPkt, float* snrPkt, float* signalRssiPkt);
-
1667  int16_t getPacketStatusGFSK(float* rssiSync, float* rssiAvg, uint8_t* rxLen, uint8_t* stat);
-
1668  int16_t getRssiInst(float* rssi);
-
1669  int16_t setGfskSyncWord(uint8_t* sync);
-
1670  int16_t setLoRaPublicNetwork(bool pub);
-
1671  int16_t setRx(uint32_t timeout);
-
1672  int16_t setTx(uint32_t timeout);
-
1673  int16_t setRfFrequency(uint32_t rfFreq);
-
1674  int16_t autoTxRx(uint32_t delay, uint8_t intMode, uint32_t timeout);
-
1675  int16_t setCadParams(uint8_t symNum, uint8_t detPeak, uint8_t detMin, uint8_t cadExitMode, uint32_t timeout);
-
1676  int16_t setPacketType(uint8_t type);
-
1677  int16_t setModulationParamsLoRa(uint8_t sf, uint8_t bw, uint8_t cr, uint8_t ldro);
-
1678  int16_t setModulationParamsGFSK(uint32_t br, uint8_t sh, uint8_t rxBw, uint32_t freqDev);
-
1679  int16_t setModulationParamsLrFhss(uint32_t br, uint8_t sh);
-
1680  int16_t setModulationParamsSigfox(uint32_t br, uint8_t sh);
-
1681  int16_t setPacketParamsLoRa(uint16_t preambleLen, uint8_t hdrType, uint8_t payloadLen, uint8_t crcType, uint8_t invertIQ);
-
1682  int16_t setPacketParamsGFSK(uint16_t preambleLen, uint8_t preambleDetectorLen, uint8_t syncWordLen, uint8_t addrCmp, uint8_t packType, uint8_t payloadLen, uint8_t crcType, uint8_t whiten);
-
1683  int16_t setPacketParamsSigfox(uint8_t payloadLen, uint16_t rampUpDelay, uint16_t rampDownDelay, uint16_t bitNum);
-
1684  int16_t setTxParams(int8_t pwr, uint8_t ramp);
-
1685  int16_t setPacketAdrs(uint8_t node, uint8_t broadcast);
-
1686  int16_t setRxTxFallbackMode(uint8_t mode);
-
1687  int16_t setRxDutyCycle(uint32_t rxPeriod, uint32_t sleepPeriod, uint8_t mode);
-
1688  int16_t setPaConfig(uint8_t paSel, uint8_t regPaSupply, uint8_t paDutyCycle, uint8_t paHpSel);
-
1689  int16_t stopTimeoutOnPreamble(bool stop);
-
1690  int16_t setCad(void);
-
1691  int16_t setTxCw(void);
-
1692  int16_t setTxInfinitePreamble(void);
-
1693  int16_t setLoRaSynchTimeout(uint8_t symbolNum);
-
1694  int16_t setRangingAddr(uint32_t addr, uint8_t checkLen);
-
1695  int16_t setRangingReqAddr(uint32_t addr);
-
1696  int16_t getRangingResult(uint8_t type, float* res);
-
1697  int16_t setRangingTxRxDelay(uint32_t delay);
-
1698  int16_t setGfskCrcParams(uint32_t init, uint32_t poly);
-
1699  int16_t setGfskWhitParams(uint16_t seed);
-
1700  int16_t setRangingParameter(uint8_t symbolNum);
-
1701  int16_t setRssiCalibration(const int8_t* tune, int16_t gainOffset);
-
1702  int16_t setLoRaSyncWord(uint8_t sync);
-
1703  int16_t lrFhssBuildFrame(uint8_t hdrCount, uint8_t cr, uint8_t grid, bool hop, uint8_t bw, uint16_t hopSeq, int8_t devOffset, uint8_t* payload, size_t len);
-
1704  int16_t lrFhssSetSyncWord(uint32_t sync);
-
1705  int16_t configBleBeacon(uint8_t chan, uint8_t* payload, size_t len);
-
1706  int16_t getLoRaRxHeaderInfos(uint8_t* info);
-
1707  int16_t bleBeaconSend(uint8_t chan, uint8_t* payload, size_t len);
-
1708 
-
1709  int16_t wifiScan(uint8_t type, uint16_t mask, uint8_t acqMode, uint8_t nbMaxRes, uint8_t nbScanPerChan, uint16_t timeout, uint8_t abortOnTimeout);
-
1710  int16_t wifiScanTimeLimit(uint8_t type, uint16_t mask, uint8_t acqMode, uint8_t nbMaxRes, uint16_t timePerChan, uint16_t timeout);
-
1711  int16_t wifiCountryCode(uint16_t mask, uint8_t nbMaxRes, uint8_t nbScanPerChan, uint16_t timeout, uint8_t abortOnTimeout);
-
1712  int16_t wifiCountryCodeTimeLimit(uint16_t mask, uint8_t nbMaxRes, uint16_t timePerChan, uint16_t timeout);
-
1713  int16_t wifiGetNbResults(uint8_t* nbResults);
-
1714  int16_t wifiReadResults(uint8_t index, uint8_t nbResults, uint8_t format, uint8_t* results);
-
1715  int16_t wifiResetCumulTimings(void);
-
1716  int16_t wifiReadCumulTimings(uint32_t* detection, uint32_t* capture, uint32_t* demodulation);
-
1717  int16_t wifiGetNbCountryCodeResults(uint8_t* nbResults);
-
1718  int16_t wifiReadCountryCodeResults(uint8_t index, uint8_t nbResults, uint8_t* results);
-
1719  int16_t wifiCfgTimestampAPphone(uint32_t timestamp);
-
1720  int16_t wifiReadVersion(uint8_t* major, uint8_t* minor);
-
1721 
-
1722  int16_t gnssReadRssi(int8_t* rssi);
-
1723  int16_t gnssSetConstellationToUse(uint8_t mask);
-
1724  int16_t gnssReadConstellationToUse(uint8_t* mask);
-
1725  int16_t gnssSetAlmanacUpdate(uint8_t mask);
-
1726  int16_t gnssReadAlmanacUpdate(uint8_t* mask);
-
1727  int16_t gnssSetFreqSearchSpace(uint8_t freq);
-
1728  int16_t gnssReadFreqSearchSpace(uint8_t* freq);
-
1729  int16_t gnssReadVersion(uint8_t* fw, uint8_t* almanac);
-
1730  int16_t gnssReadSupportedConstellations(uint8_t* mask);
-
1731  int16_t gnssSetMode(uint8_t mode);
-
1732  int16_t gnssAutonomous(uint32_t gpsTime, uint8_t resMask, uint8_t nbSvMask);
-
1733  int16_t gnssAssisted(uint32_t gpsTime, uint8_t effort, uint8_t resMask, uint8_t nbSvMask);
-
1734  int16_t gnssSetAssistancePosition(float lat, float lon);
-
1735  int16_t gnssReadAssistancePosition(float* lat, float* lon);
-
1736  int16_t gnssPushSolverMsg(uint8_t* payload, size_t len);
-
1737  int16_t gnssPushDmMsg(uint8_t* payload, size_t len);
-
1738  int16_t gnssGetContextStatus(uint8_t* fwVersion, uint32_t* almanacCrc, uint8_t* errCode, uint8_t* almUpdMask, uint8_t* freqSpace);
-
1739  int16_t gnssGetNbSvDetected(uint8_t* nbSv);
-
1740  int16_t gnssGetSvDetected(uint8_t* svId, uint8_t* snr, int16_t* doppler, size_t nbSv);
-
1741  int16_t gnssGetConsumption(uint32_t* cpu, uint32_t* radio);
-
1742  int16_t gnssGetResultSize(uint16_t* size);
-
1743  int16_t gnssReadResults(uint8_t* result, uint16_t size);
-
1744  int16_t gnssAlmanacFullUpdateHeader(uint16_t date, uint32_t globalCrc);
-
1745  int16_t gnssAlmanacFullUpdateSV(uint8_t svn, uint8_t* svnAlmanac);
-
1746  int16_t gnssAlmanacReadAddrSize(uint32_t* addr, uint16_t* size);
-
1747  int16_t gnssAlmanacReadSV(uint8_t svId, uint8_t* almanac);
-
1748  int16_t gnssGetNbSvVisible(uint32_t time, float lat, float lon, uint8_t constellation, uint8_t* nbSv);
-
1749  int16_t gnssGetSvVisible(uint8_t nbSv, uint8_t** svId, int16_t** doppler, int16_t** dopplerErr);
-
1750  int16_t gnssPerformScan(uint8_t effort, uint8_t resMask, uint8_t nbSvMax);
-
1751  int16_t gnssReadLastScanModeLaunched(uint8_t* lastScanMode);
-
1752  int16_t gnssFetchTime(uint8_t effort, uint8_t opt);
-
1753  int16_t gnssReadTime(uint8_t* err, uint32_t* time, uint32_t* nbUs, uint32_t* timeAccuracy);
-
1754  int16_t gnssResetTime(void);
-
1755  int16_t gnssResetPosition(void);
-
1756  int16_t gnssReadWeekNumberRollover(uint8_t* status, uint8_t* rollover);
-
1757  int16_t gnssReadDemodStatus(int8_t* status, uint8_t* info);
-
1758  int16_t gnssReadCumulTiming(uint32_t* timing, uint8_t* constDemod);
-
1759  int16_t gnssSetTime(uint32_t time, uint16_t accuracy);
-
1760  int16_t gnssReadDopplerSolverRes(uint8_t* error, uint8_t* nbSvUsed, float* lat, float* lon, uint16_t* accuracy, uint16_t* xtal, float* latFilt, float* lonFilt, uint16_t* accuracyFilt, uint16_t* xtalFilt);
-
1761  int16_t gnssReadDelayResetAP(uint32_t* delay);
-
1762  int16_t gnssAlmanacUpdateFromSat(uint8_t effort, uint8_t bitMask);
-
1763  int16_t gnssReadAlmanacStatus(uint8_t* status);
-
1764  int16_t gnssReadKeepSyncStatus(uint8_t mask, uint8_t* nbSvVisible, uint32_t* elapsed);
-
1765  int16_t gnssConfigAlmanacUpdatePeriod(uint8_t bitMask, uint8_t svType, uint16_t period);
-
1766  int16_t gnssReadAlmanacUpdatePeriod(uint8_t bitMask, uint8_t svType, uint16_t* period);
-
1767  int16_t gnssConfigDelayResetAP(uint32_t delay);
-
1768  int16_t gnssGetSvWarmStart(uint8_t bitMask, uint8_t* sv, uint8_t nbVisSat);
-
1769  int16_t gnssReadWarmStartStatus(uint8_t bitMask, uint8_t* nbVisSat, uint32_t* timeElapsed);
-
1770  int16_t gnssGetSvSync(uint8_t mask, uint8_t nbSv, uint8_t* syncList);
-
1771  int16_t gnssWriteBitMaskSatActivated(uint8_t bitMask, uint32_t* bitMaskActivated0, uint32_t* bitMaskActivated1);
-
1772  void gnssAbort();
-
1773 
-
1774  int16_t cryptoSetKey(uint8_t keyId, uint8_t* key);
-
1775  int16_t cryptoDeriveKey(uint8_t srcKeyId, uint8_t dstKeyId, uint8_t* key);
-
1776  int16_t cryptoProcessJoinAccept(uint8_t decKeyId, uint8_t verKeyId, uint8_t lwVer, uint8_t* header, uint8_t* dataIn, size_t len, uint8_t* dataOut);
-
1777  int16_t cryptoComputeAesCmac(uint8_t keyId, uint8_t* data, size_t len, uint32_t* mic);
-
1778  int16_t cryptoVerifyAesCmac(uint8_t keyId, uint32_t micExp, uint8_t* data, size_t len, bool* result);
-
1779  int16_t cryptoAesEncrypt01(uint8_t keyId, uint8_t* dataIn, size_t len, uint8_t* dataOut);
-
1780  int16_t cryptoAesEncrypt(uint8_t keyId, uint8_t* dataIn, size_t len, uint8_t* dataOut);
-
1781  int16_t cryptoAesDecrypt(uint8_t keyId, uint8_t* dataIn, size_t len, uint8_t* dataOut);
-
1782  int16_t cryptoStoreToFlash(void);
-
1783  int16_t cryptoRestoreFromFlash(void);
-
1784  int16_t cryptoSetParam(uint8_t id, uint32_t value);
-
1785  int16_t cryptoGetParam(uint8_t id, uint32_t* value);
-
1786  int16_t cryptoCheckEncryptedFirmwareImage(uint32_t offset, uint32_t* data, size_t len, bool nonvolatile);
-
1787  int16_t cryptoCheckEncryptedFirmwareImageResult(bool* result);
-
1788 
-
1789  int16_t bootEraseFlash(void);
-
1790  int16_t bootWriteFlashEncrypted(uint32_t offset, uint32_t* data, size_t len, bool nonvolatile);
-
1791  int16_t bootReboot(bool stay);
-
1792  int16_t bootGetPin(uint8_t* pin);
-
1793  int16_t bootGetChipEui(uint8_t* eui);
-
1794  int16_t bootGetJoinEui(uint8_t* eui);
-
1795 
-
1796  int16_t SPIcommand(uint16_t cmd, bool write, uint8_t* data, size_t len, uint8_t* out = NULL, size_t outLen = 0);
+
1151  // configuration methods
+
1152 
+
1159  int16_t setBandwidth(float bw, bool high = false);
+
1160 
+
1167  int16_t setSpreadingFactor(uint8_t sf, bool legacy = false);
+
1168 
+
1176  int16_t setCodingRate(uint8_t cr, bool longInterleave = false);
+
1177 
+
1183  int16_t setSyncWord(uint32_t syncWord);
+
1184 
+
1190  int16_t setBitRate(float br) override;
+
1191 
+
1197  int16_t setFrequencyDeviation(float freqDev) override;
+
1198 
+
1205  int16_t setRxBandwidth(float rxBw);
+
1206 
+
1213  int16_t setSyncWord(uint8_t* syncWord, size_t len) override;
+
1214 
+
1222  int16_t setSyncBits(uint8_t *syncWord, uint8_t bitsLen);
+
1223 
+
1229  int16_t setNodeAddress(uint8_t nodeAddr);
+
1230 
+
1237  int16_t setBroadcastAddress(uint8_t broadAddr);
+
1238 
+
1243  int16_t disableAddressFiltering();
+
1244 
+
1252  int16_t setDataShaping(uint8_t sh) override;
+
1253 
+
1259  int16_t setEncoding(uint8_t encoding) override;
+
1260 
+
1266  int16_t fixedPacketLengthMode(uint8_t len = RADIOLIB_LR11X0_MAX_PACKET_LENGTH);
+
1267 
+
1273  int16_t variablePacketLengthMode(uint8_t maxLen = RADIOLIB_LR11X0_MAX_PACKET_LENGTH);
+
1274 
+
1282  int16_t setWhitening(bool enabled, uint16_t initial = 0x01FF);
+
1283 
+
1289  int16_t setDataRate(DataRate_t dr) override;
+
1290 
+
1296  int16_t checkDataRate(DataRate_t dr) override;
+
1297 
+
1303  int16_t setPreambleLength(size_t preambleLength) override;
+
1304 
+
1313  int16_t setTCXO(float voltage, uint32_t delay = 5000);
+
1314 
+
1323  int16_t setCRC(uint8_t len, uint32_t initial = 0x00001D0FUL, uint32_t polynomial = 0x00001021UL, bool inverted = true);
+
1324 
+
1330  int16_t invertIQ(bool enable) override;
+
1331 
+
1336  float getRSSI() override;
+
1337 
+
1342  float getSNR() override;
+
1343 
+
1348  float getFrequencyError();
+
1349 
+
1355  size_t getPacketLength(bool update = true) override;
+
1356 
+
1362  size_t getPacketLength(bool update, uint8_t* offset);
+
1363 
+
1369  RadioLibTime_t getTimeOnAir(size_t len) override;
+
1370 
+
1376  RadioLibTime_t calculateRxTimeout(RadioLibTime_t timeoutUs) override;
+
1377 
+
1382  uint32_t getIrqFlags() override;
+
1383 
+
1389  int16_t setIrqFlags(uint32_t irq) override;
+
1390 
+
1396  int16_t clearIrqFlags(uint32_t irq) override;
+
1397 
+
1402  uint8_t randomByte() override;
+
1403 
+
1409  int16_t implicitHeader(size_t len);
+
1410 
+
1415  int16_t explicitHeader();
+
1416 
+
1421  float getDataRate() const;
+
1422 
+
1427  int16_t setRegulatorLDO();
+
1428 
+
1433  int16_t setRegulatorDCDC();
+
1434 
+
1440  int16_t setRxBoostedGainMode(bool en);
+
1441 
+
1443  void setRfSwitchTable(const uint32_t (&pins)[Module::RFSWITCH_MAX_PINS], const Module::RfSwitchMode_t table[]);
+
1444 
+
1451  int16_t forceLDRO(bool enable);
+
1452 
+
1458  int16_t autoLDRO();
+
1459 
+
1468  int16_t setLrFhssConfig(uint8_t bw, uint8_t cr, uint8_t hdrCount = 3, uint16_t hopSeed = 0x13A);
+
1469 
+
1484  int16_t startWifiScan(char wifiType, uint8_t mode = RADIOLIB_LR11X0_WIFI_ACQ_MODE_FULL_BEACON, uint16_t chanMask = RADIOLIB_LR11X0_WIFI_ALL_CHANNELS, uint8_t numScans = 16, uint16_t timeout = 100);
+
1485 
+
1490  void setWiFiScanAction(void (*func)(void));
+
1491 
+
1495  void clearWiFiScanAction();
+
1496 
+
1502  int16_t getWifiScanResultsCount(uint8_t* count);
+
1503 
+
1513  int16_t getWifiScanResult(LR11x0WifiResult_t* result, uint8_t index, bool brief = false);
+
1514 
+
1531  int16_t wifiScan(uint8_t wifiType, uint8_t* count, uint8_t mode = RADIOLIB_LR11X0_WIFI_ACQ_MODE_FULL_BEACON, uint16_t chanMask = RADIOLIB_LR11X0_WIFI_ALL_CHANNELS, uint8_t numScans = 16, uint16_t timeout = 100);
+
1532 
+
1538  int16_t getVersionInfo(LR11x0VersionInfo_t* info);
+
1539 
+
1550  int16_t updateFirmware(const uint32_t* image, size_t size, bool nonvolatile = true);
+
1551 
+
1556  int16_t isGnssScanCapable();
+
1557 
+
1564  int16_t gnssScan(LR11x0GnssResult_t* res = NULL);
+
1565 
+
1572  int16_t getGnssAlmanacStatus(LR11x0GnssAlmanacStatus_t *stat);
+
1573 
+
1583  int16_t gnssDelayUntilSubframe(LR11x0GnssAlmanacStatus_t *stat, uint8_t constellation);
+
1584 
+
1591  int16_t updateGnssAlmanac(uint8_t constellation);
+
1592 
+
1599  int16_t getGnssPosition(LR11x0GnssPosition_t* pos, bool filtered = true);
+
1600 
+
1607  int16_t getGnssSatellites(LR11x0GnssSatellite_t* sats, uint8_t numSats);
+
1608 
+
1614  int16_t getModem(ModemType_t* modem) override;
+
1615 
+
1623  int16_t calibrateImageRejection(float freqMin, float freqMax);
+
1624 
+
1625 #if !RADIOLIB_GODMODE && !RADIOLIB_LOW_LEVEL
+
1626  protected:
+
1627 #endif
+
1628  Module* getMod() override;
+
1629 
+
1630  // LR11x0 SPI command implementations
+
1631  int16_t writeRegMem32(uint32_t addr, uint32_t* data, size_t len);
+
1632  int16_t readRegMem32(uint32_t addr, uint32_t* data, size_t len);
+
1633  int16_t writeBuffer8(uint8_t* data, size_t len);
+
1634  int16_t readBuffer8(uint8_t* data, size_t len, size_t offset);
+
1635  int16_t clearRxBuffer(void);
+
1636  int16_t writeRegMemMask32(uint32_t addr, uint32_t mask, uint32_t data);
+
1637 
+
1638  int16_t getStatus(uint8_t* stat1, uint8_t* stat2, uint32_t* irq);
+
1639  int16_t getVersion(uint8_t* hw, uint8_t* device, uint8_t* major, uint8_t* minor);
+
1640  int16_t getErrors(uint16_t* err);
+
1641  int16_t clearErrors(void);
+
1642  int16_t calibrate(uint8_t params);
+
1643  int16_t setRegMode(uint8_t mode);
+
1644  int16_t setDioAsRfSwitch(uint8_t en, uint8_t stbyCfg, uint8_t rxCfg, uint8_t txCfg, uint8_t txHpCfg, uint8_t txHfCfg, uint8_t gnssCfg, uint8_t wifiCfg);
+
1645  int16_t setDioIrqParams(uint32_t irq1, uint32_t irq2);
+
1646  int16_t setDioIrqParams(uint32_t irq);
+
1647  int16_t clearIrq(uint32_t irq);
+
1648  int16_t configLfClock(uint8_t setup);
+
1649  int16_t setTcxoMode(uint8_t tune, uint32_t delay);
+
1650  int16_t reboot(bool stay);
+
1651  int16_t getVbat(float* vbat);
+
1652  int16_t getTemp(float* temp);
+
1653  int16_t setFs(void);
+
1654  int16_t getRandomNumber(uint32_t* rnd);
+
1655  int16_t eraseInfoPage(void);
+
1656  int16_t writeInfoPage(uint16_t addr, const uint32_t* data, size_t len);
+
1657  int16_t readInfoPage(uint16_t addr, uint32_t* data, size_t len);
+
1658  int16_t getChipEui(uint8_t* eui);
+
1659  int16_t getSemtechJoinEui(uint8_t* eui);
+
1660  int16_t deriveRootKeysAndGetPin(uint8_t* pin);
+
1661  int16_t enableSpiCrc(bool en);
+
1662  int16_t driveDiosInSleepMode(bool en);
+
1663 
+
1664  int16_t resetStats(void);
+
1665  int16_t getStats(uint16_t* nbPktReceived, uint16_t* nbPktCrcError, uint16_t* data1, uint16_t* data2);
+
1666  int16_t getPacketType(uint8_t* type);
+
1667  int16_t getRxBufferStatus(uint8_t* len, uint8_t* startOffset);
+
1668  int16_t getPacketStatusLoRa(float* rssiPkt, float* snrPkt, float* signalRssiPkt);
+
1669  int16_t getPacketStatusGFSK(float* rssiSync, float* rssiAvg, uint8_t* rxLen, uint8_t* stat);
+
1670  int16_t getRssiInst(float* rssi);
+
1671  int16_t setGfskSyncWord(uint8_t* sync);
+
1672  int16_t setLoRaPublicNetwork(bool pub);
+
1673  int16_t setRx(uint32_t timeout);
+
1674  int16_t setTx(uint32_t timeout);
+
1675  int16_t setRfFrequency(uint32_t rfFreq);
+
1676  int16_t autoTxRx(uint32_t delay, uint8_t intMode, uint32_t timeout);
+
1677  int16_t setCadParams(uint8_t symNum, uint8_t detPeak, uint8_t detMin, uint8_t cadExitMode, uint32_t timeout);
+
1678  int16_t setPacketType(uint8_t type);
+
1679  int16_t setModulationParamsLoRa(uint8_t sf, uint8_t bw, uint8_t cr, uint8_t ldro);
+
1680  int16_t setModulationParamsGFSK(uint32_t br, uint8_t sh, uint8_t rxBw, uint32_t freqDev);
+
1681  int16_t setModulationParamsLrFhss(uint32_t br, uint8_t sh);
+
1682  int16_t setModulationParamsSigfox(uint32_t br, uint8_t sh);
+
1683  int16_t setPacketParamsLoRa(uint16_t preambleLen, uint8_t hdrType, uint8_t payloadLen, uint8_t crcType, uint8_t invertIQ);
+
1684  int16_t setPacketParamsGFSK(uint16_t preambleLen, uint8_t preambleDetectorLen, uint8_t syncWordLen, uint8_t addrCmp, uint8_t packType, uint8_t payloadLen, uint8_t crcType, uint8_t whiten);
+
1685  int16_t setPacketParamsSigfox(uint8_t payloadLen, uint16_t rampUpDelay, uint16_t rampDownDelay, uint16_t bitNum);
+
1686  int16_t setTxParams(int8_t pwr, uint8_t ramp);
+
1687  int16_t setPacketAdrs(uint8_t node, uint8_t broadcast);
+
1688  int16_t setRxTxFallbackMode(uint8_t mode);
+
1689  int16_t setRxDutyCycle(uint32_t rxPeriod, uint32_t sleepPeriod, uint8_t mode);
+
1690  int16_t setPaConfig(uint8_t paSel, uint8_t regPaSupply, uint8_t paDutyCycle, uint8_t paHpSel);
+
1691  int16_t stopTimeoutOnPreamble(bool stop);
+
1692  int16_t setCad(void);
+
1693  int16_t setTxCw(void);
+
1694  int16_t setTxInfinitePreamble(void);
+
1695  int16_t setLoRaSynchTimeout(uint8_t symbolNum);
+
1696  int16_t setRangingAddr(uint32_t addr, uint8_t checkLen);
+
1697  int16_t setRangingReqAddr(uint32_t addr);
+
1698  int16_t getRangingResult(uint8_t type, float* res);
+
1699  int16_t setRangingTxRxDelay(uint32_t delay);
+
1700  int16_t setGfskCrcParams(uint32_t init, uint32_t poly);
+
1701  int16_t setGfskWhitParams(uint16_t seed);
+
1702  int16_t setRangingParameter(uint8_t symbolNum);
+
1703  int16_t setRssiCalibration(const int8_t* tune, int16_t gainOffset);
+
1704  int16_t setLoRaSyncWord(uint8_t sync);
+
1705  int16_t lrFhssBuildFrame(uint8_t hdrCount, uint8_t cr, uint8_t grid, bool hop, uint8_t bw, uint16_t hopSeq, int8_t devOffset, uint8_t* payload, size_t len);
+
1706  int16_t lrFhssSetSyncWord(uint32_t sync);
+
1707  int16_t configBleBeacon(uint8_t chan, uint8_t* payload, size_t len);
+
1708  int16_t getLoRaRxHeaderInfos(uint8_t* info);
+
1709  int16_t bleBeaconSend(uint8_t chan, uint8_t* payload, size_t len);
+
1710 
+
1711  int16_t wifiScan(uint8_t type, uint16_t mask, uint8_t acqMode, uint8_t nbMaxRes, uint8_t nbScanPerChan, uint16_t timeout, uint8_t abortOnTimeout);
+
1712  int16_t wifiScanTimeLimit(uint8_t type, uint16_t mask, uint8_t acqMode, uint8_t nbMaxRes, uint16_t timePerChan, uint16_t timeout);
+
1713  int16_t wifiCountryCode(uint16_t mask, uint8_t nbMaxRes, uint8_t nbScanPerChan, uint16_t timeout, uint8_t abortOnTimeout);
+
1714  int16_t wifiCountryCodeTimeLimit(uint16_t mask, uint8_t nbMaxRes, uint16_t timePerChan, uint16_t timeout);
+
1715  int16_t wifiGetNbResults(uint8_t* nbResults);
+
1716  int16_t wifiReadResults(uint8_t index, uint8_t nbResults, uint8_t format, uint8_t* results);
+
1717  int16_t wifiResetCumulTimings(void);
+
1718  int16_t wifiReadCumulTimings(uint32_t* detection, uint32_t* capture, uint32_t* demodulation);
+
1719  int16_t wifiGetNbCountryCodeResults(uint8_t* nbResults);
+
1720  int16_t wifiReadCountryCodeResults(uint8_t index, uint8_t nbResults, uint8_t* results);
+
1721  int16_t wifiCfgTimestampAPphone(uint32_t timestamp);
+
1722  int16_t wifiReadVersion(uint8_t* major, uint8_t* minor);
+
1723 
+
1724  int16_t gnssReadRssi(int8_t* rssi);
+
1725  int16_t gnssSetConstellationToUse(uint8_t mask);
+
1726  int16_t gnssReadConstellationToUse(uint8_t* mask);
+
1727  int16_t gnssSetAlmanacUpdate(uint8_t mask);
+
1728  int16_t gnssReadAlmanacUpdate(uint8_t* mask);
+
1729  int16_t gnssSetFreqSearchSpace(uint8_t freq);
+
1730  int16_t gnssReadFreqSearchSpace(uint8_t* freq);
+
1731  int16_t gnssReadVersion(uint8_t* fw, uint8_t* almanac);
+
1732  int16_t gnssReadSupportedConstellations(uint8_t* mask);
+
1733  int16_t gnssSetMode(uint8_t mode);
+
1734  int16_t gnssAutonomous(uint32_t gpsTime, uint8_t resMask, uint8_t nbSvMask);
+
1735  int16_t gnssAssisted(uint32_t gpsTime, uint8_t effort, uint8_t resMask, uint8_t nbSvMask);
+
1736  int16_t gnssSetAssistancePosition(float lat, float lon);
+
1737  int16_t gnssReadAssistancePosition(float* lat, float* lon);
+
1738  int16_t gnssPushSolverMsg(uint8_t* payload, size_t len);
+
1739  int16_t gnssPushDmMsg(uint8_t* payload, size_t len);
+
1740  int16_t gnssGetContextStatus(uint8_t* fwVersion, uint32_t* almanacCrc, uint8_t* errCode, uint8_t* almUpdMask, uint8_t* freqSpace);
+
1741  int16_t gnssGetNbSvDetected(uint8_t* nbSv);
+
1742  int16_t gnssGetSvDetected(uint8_t* svId, uint8_t* snr, int16_t* doppler, size_t nbSv);
+
1743  int16_t gnssGetConsumption(uint32_t* cpu, uint32_t* radio);
+
1744  int16_t gnssGetResultSize(uint16_t* size);
+
1745  int16_t gnssReadResults(uint8_t* result, uint16_t size);
+
1746  int16_t gnssAlmanacFullUpdateHeader(uint16_t date, uint32_t globalCrc);
+
1747  int16_t gnssAlmanacFullUpdateSV(uint8_t svn, uint8_t* svnAlmanac);
+
1748  int16_t gnssAlmanacReadAddrSize(uint32_t* addr, uint16_t* size);
+
1749  int16_t gnssAlmanacReadSV(uint8_t svId, uint8_t* almanac);
+
1750  int16_t gnssGetNbSvVisible(uint32_t time, float lat, float lon, uint8_t constellation, uint8_t* nbSv);
+
1751  int16_t gnssGetSvVisible(uint8_t nbSv, uint8_t** svId, int16_t** doppler, int16_t** dopplerErr);
+
1752  int16_t gnssPerformScan(uint8_t effort, uint8_t resMask, uint8_t nbSvMax);
+
1753  int16_t gnssReadLastScanModeLaunched(uint8_t* lastScanMode);
+
1754  int16_t gnssFetchTime(uint8_t effort, uint8_t opt);
+
1755  int16_t gnssReadTime(uint8_t* err, uint32_t* time, uint32_t* nbUs, uint32_t* timeAccuracy);
+
1756  int16_t gnssResetTime(void);
+
1757  int16_t gnssResetPosition(void);
+
1758  int16_t gnssReadWeekNumberRollover(uint8_t* status, uint8_t* rollover);
+
1759  int16_t gnssReadDemodStatus(int8_t* status, uint8_t* info);
+
1760  int16_t gnssReadCumulTiming(uint32_t* timing, uint8_t* constDemod);
+
1761  int16_t gnssSetTime(uint32_t time, uint16_t accuracy);
+
1762  int16_t gnssReadDopplerSolverRes(uint8_t* error, uint8_t* nbSvUsed, float* lat, float* lon, uint16_t* accuracy, uint16_t* xtal, float* latFilt, float* lonFilt, uint16_t* accuracyFilt, uint16_t* xtalFilt);
+
1763  int16_t gnssReadDelayResetAP(uint32_t* delay);
+
1764  int16_t gnssAlmanacUpdateFromSat(uint8_t effort, uint8_t bitMask);
+
1765  int16_t gnssReadAlmanacStatus(uint8_t* status);
+
1766  int16_t gnssReadKeepSyncStatus(uint8_t mask, uint8_t* nbSvVisible, uint32_t* elapsed);
+
1767  int16_t gnssConfigAlmanacUpdatePeriod(uint8_t bitMask, uint8_t svType, uint16_t period);
+
1768  int16_t gnssReadAlmanacUpdatePeriod(uint8_t bitMask, uint8_t svType, uint16_t* period);
+
1769  int16_t gnssConfigDelayResetAP(uint32_t delay);
+
1770  int16_t gnssGetSvWarmStart(uint8_t bitMask, uint8_t* sv, uint8_t nbVisSat);
+
1771  int16_t gnssReadWarmStartStatus(uint8_t bitMask, uint8_t* nbVisSat, uint32_t* timeElapsed);
+
1772  int16_t gnssGetSvSync(uint8_t mask, uint8_t nbSv, uint8_t* syncList);
+
1773  int16_t gnssWriteBitMaskSatActivated(uint8_t bitMask, uint32_t* bitMaskActivated0, uint32_t* bitMaskActivated1);
+
1774  void gnssAbort();
+
1775 
+
1776  int16_t cryptoSetKey(uint8_t keyId, uint8_t* key);
+
1777  int16_t cryptoDeriveKey(uint8_t srcKeyId, uint8_t dstKeyId, uint8_t* key);
+
1778  int16_t cryptoProcessJoinAccept(uint8_t decKeyId, uint8_t verKeyId, uint8_t lwVer, uint8_t* header, uint8_t* dataIn, size_t len, uint8_t* dataOut);
+
1779  int16_t cryptoComputeAesCmac(uint8_t keyId, uint8_t* data, size_t len, uint32_t* mic);
+
1780  int16_t cryptoVerifyAesCmac(uint8_t keyId, uint32_t micExp, uint8_t* data, size_t len, bool* result);
+
1781  int16_t cryptoAesEncrypt01(uint8_t keyId, uint8_t* dataIn, size_t len, uint8_t* dataOut);
+
1782  int16_t cryptoAesEncrypt(uint8_t keyId, uint8_t* dataIn, size_t len, uint8_t* dataOut);
+
1783  int16_t cryptoAesDecrypt(uint8_t keyId, uint8_t* dataIn, size_t len, uint8_t* dataOut);
+
1784  int16_t cryptoStoreToFlash(void);
+
1785  int16_t cryptoRestoreFromFlash(void);
+
1786  int16_t cryptoSetParam(uint8_t id, uint32_t value);
+
1787  int16_t cryptoGetParam(uint8_t id, uint32_t* value);
+
1788  int16_t cryptoCheckEncryptedFirmwareImage(uint32_t offset, uint32_t* data, size_t len, bool nonvolatile);
+
1789  int16_t cryptoCheckEncryptedFirmwareImageResult(bool* result);
+
1790 
+
1791  int16_t bootEraseFlash(void);
+
1792  int16_t bootWriteFlashEncrypted(uint32_t offset, uint32_t* data, size_t len, bool nonvolatile);
+
1793  int16_t bootReboot(bool stay);
+
1794  int16_t bootGetPin(uint8_t* pin);
+
1795  int16_t bootGetChipEui(uint8_t* eui);
+
1796  int16_t bootGetJoinEui(uint8_t* eui);
1797 
-
1798 #if !RADIOLIB_GODMODE
-
1799  protected:
-
1800 #endif
-
1801  uint8_t chipType = 0;
-
1802  float freqMHz = 0;
-
1803 
-
1804 #if !RADIOLIB_GODMODE
-
1805  private:
-
1806 #endif
-
1807  Module* mod;
-
1808 
-
1809  // cached LoRa parameters
-
1810  uint8_t bandwidth = 0, spreadingFactor = 0, codingRate = 0, ldrOptimize = 0, crcTypeLoRa = 0, headerType = 0;
-
1811  uint16_t preambleLengthLoRa = 0;
-
1812  float bandwidthKhz = 0;
-
1813  bool ldroAuto = true;
-
1814  size_t implicitLen = 0;
-
1815  bool invertIQEnabled = false;
-
1816 
-
1817  // cached GFSK parameters
-
1818  uint32_t bitRate = 0, frequencyDev = 0;
-
1819  uint8_t preambleDetLength = 0, rxBandwidth = 0, pulseShape = 0, crcTypeGFSK = 0, syncWordLength = 0, addrComp = 0, whitening = 0, packetType = 0, node = 0;
-
1820  uint16_t preambleLengthGFSK = 0;
-
1821 
-
1822  // cached LR-FHSS parameters
-
1823  uint8_t lrFhssCr = 0, lrFhssBw = 0, lrFhssHdrCount = 0, lrFhssGrid = 0;
-
1824  uint16_t lrFhssHopSeq = 0;
-
1825 
-
1826  float dataRateMeasured = 0;
+
1798  int16_t SPIcommand(uint16_t cmd, bool write, uint8_t* data, size_t len, uint8_t* out = NULL, size_t outLen = 0);
+
1799 
+
1800 #if !RADIOLIB_GODMODE
+
1801  protected:
+
1802 #endif
+
1803  uint8_t chipType = 0;
+
1804  float freqMHz = 0;
+
1805 
+
1806 #if !RADIOLIB_GODMODE
+
1807  private:
+
1808 #endif
+
1809  Module* mod;
+
1810 
+
1811  // cached LoRa parameters
+
1812  uint8_t bandwidth = 0, spreadingFactor = 0, codingRate = 0, ldrOptimize = 0, crcTypeLoRa = 0, headerType = 0;
+
1813  uint16_t preambleLengthLoRa = 0;
+
1814  float bandwidthKhz = 0;
+
1815  bool ldroAuto = true;
+
1816  size_t implicitLen = 0;
+
1817  bool invertIQEnabled = false;
+
1818 
+
1819  // cached GFSK parameters
+
1820  uint32_t bitRate = 0, frequencyDev = 0;
+
1821  uint8_t preambleDetLength = 0, rxBandwidth = 0, pulseShape = 0, crcTypeGFSK = 0, syncWordLength = 0, addrComp = 0, whitening = 0, packetType = 0, node = 0;
+
1822  uint16_t preambleLengthGFSK = 0;
+
1823 
+
1824  // cached LR-FHSS parameters
+
1825  uint8_t lrFhssCr = 0, lrFhssBw = 0, lrFhssHdrCount = 0, lrFhssGrid = 0;
+
1826  uint16_t lrFhssHopSeq = 0;
1827 
-
1828  uint8_t wifiScanMode = 0;
+
1828  float dataRateMeasured = 0;
1829 
-
1830  int16_t modSetup(float tcxoVoltage, uint8_t modem);
-
1831  static int16_t SPIparseStatus(uint8_t in);
-
1832  static int16_t SPIcheckStatus(Module* mod);
-
1833  bool findChip(uint8_t ver);
-
1834  int16_t config(uint8_t modem);
-
1835  int16_t setPacketMode(uint8_t mode, uint8_t len);
-
1836  int16_t startCad(uint8_t symbolNum, uint8_t detPeak, uint8_t detMin, uint8_t exitMode, RadioLibTime_t timeout);
-
1837  int16_t setHeaderType(uint8_t hdrType, size_t len = 0xFF);
-
1838 
-
1839  // common methods to avoid some copy-paste
-
1840  int16_t bleBeaconCommon(uint16_t cmd, uint8_t chan, uint8_t* payload, size_t len);
-
1841  int16_t writeCommon(uint16_t cmd, uint32_t addrOffset, const uint32_t* data, size_t len, bool nonvolatile);
-
1842  int16_t cryptoCommon(uint16_t cmd, uint8_t keyId, uint8_t* dataIn, size_t len, uint8_t* dataOut);
-
1843 };
-
1844 
-
1845 #endif
+
1830  uint8_t wifiScanMode = 0;
+
1831 
+
1832  int16_t modSetup(float tcxoVoltage, uint8_t modem);
+
1833  static int16_t SPIparseStatus(uint8_t in);
+
1834  static int16_t SPIcheckStatus(Module* mod);
+
1835  bool findChip(uint8_t ver);
+
1836  int16_t config(uint8_t modem);
+
1837  int16_t setPacketMode(uint8_t mode, uint8_t len);
+
1838  int16_t startCad(uint8_t symbolNum, uint8_t detPeak, uint8_t detMin, uint8_t exitMode, RadioLibTime_t timeout);
+
1839  int16_t setHeaderType(uint8_t hdrType, size_t len = 0xFF);
+
1840 
+
1841  // common methods to avoid some copy-paste
+
1842  int16_t bleBeaconCommon(uint16_t cmd, uint8_t chan, uint8_t* payload, size_t len);
+
1843  int16_t writeCommon(uint16_t cmd, uint32_t addrOffset, const uint32_t* data, size_t len, bool nonvolatile);
+
1844  int16_t cryptoCommon(uint16_t cmd, uint8_t keyId, uint8_t* dataIn, size_t len, uint8_t* dataOut);
+
1845 };
1846 
1847 #endif
-
Base class for LR11x0 series. All derived classes for LR11x0 (e.g. LR1110 or LR1120) inherit from thi...
Definition: LR11x0.h:872
+
1848 
+
1849 #endif
+
Base class for LR11x0 series. All derived classes for LR11x0 (e.g. LR1110 or LR1120) inherit from thi...
Definition: LR11x0.h:874
float getSNR() override
Gets SNR (Signal to Noise Ratio) of the last received packet. Only available for LoRa modem.
Definition: LR11x0.cpp:1260
uint32_t getIrqStatus()
Reads the current IRQ status.
Definition: LR11x0.cpp:534
int16_t setDataRate(DataRate_t dr) override
Set data.
Definition: LR11x0.cpp:1054
void setRfSwitchTable(const uint32_t(&pins)[Module::RFSWITCH_MAX_PINS], const Module::RfSwitchMode_t table[])
Some modules contain external RF switch controlled by pins. This function gives RadioLib control over...
Definition: LR11x0.cpp:1444
-
int16_t getGnssPosition(LR11x0GnssPosition_t *pos, bool filtered=true)
Get GNSS position. Called after gnssScan to retrieve the position calculated by the internal solver.
Definition: LR11x0.cpp:1962
+
int16_t getGnssPosition(LR11x0GnssPosition_t *pos, bool filtered=true)
Get GNSS position. Called after gnssScan to retrieve the position calculated by the internal solver.
Definition: LR11x0.cpp:1981
int16_t setRegulatorDCDC()
Set regulator mode to DC-DC.
Definition: LR11x0.cpp:1435
int16_t getChannelScanResult() override
Read the channel scan result.
Definition: LR11x0.cpp:634
float getDataRate() const
Gets effective data rate for the last transmitted packet. The value is calculated only for payload by...
Definition: LR11x0.cpp:1427
@@ -1310,20 +1312,20 @@ $(document).ready(function(){initNavTree('_l_r11x0_8h_source.html',''); initResi
int16_t setRxBandwidth(float rxBw)
Sets GFSK receiver bandwidth. Allowed values are 4.8, 5.8, 7.3, 9.7, 11.7, 14.6, 19....
Definition: LR11x0.cpp:814
RadioLibTime_t calculateRxTimeout(RadioLibTime_t timeoutUs) override
Calculate the timeout value for this specific module / series (in number of symbols or units of time)
Definition: LR11x0.cpp:1394
int16_t reset()
Reset method. Will reset the chip to the default state using RST pin.
Definition: LR11x0.cpp:151
-
OpMode_t
Custom operation modes for LR11x0. Needed because LR11x0 has several modems (sub-GHz,...
Definition: LR11x0.h:890
-
@ MODE_TX_HP
Definition: LR11x0.h:900
-
@ MODE_END_OF_TABLE
Definition: LR11x0.h:892
-
@ MODE_WIFI
Definition: LR11x0.h:906
-
@ MODE_GNSS
Definition: LR11x0.h:904
-
@ MODE_TX
Definition: LR11x0.h:898
-
@ MODE_RX
Definition: LR11x0.h:896
-
@ MODE_STBY
Definition: LR11x0.h:894
-
@ MODE_TX_HF
Definition: LR11x0.h:902
-
int16_t startWifiScan(char wifiType, uint8_t mode=RADIOLIB_LR11X0_WIFI_ACQ_MODE_FULL_BEACON, uint16_t chanMask=RADIOLIB_LR11X0_WIFI_ALL_CHANNELS, uint8_t numScans=16, uint16_t timeout=100)
Start passive WiFi scan. BUSY pin will be de-activated when the scan is finished.
Definition: LR11x0.cpp:1514
+
OpMode_t
Custom operation modes for LR11x0. Needed because LR11x0 has several modems (sub-GHz,...
Definition: LR11x0.h:892
+
@ MODE_TX_HP
Definition: LR11x0.h:902
+
@ MODE_END_OF_TABLE
Definition: LR11x0.h:894
+
@ MODE_WIFI
Definition: LR11x0.h:908
+
@ MODE_GNSS
Definition: LR11x0.h:906
+
@ MODE_TX
Definition: LR11x0.h:900
+
@ MODE_RX
Definition: LR11x0.h:898
+
@ MODE_STBY
Definition: LR11x0.h:896
+
@ MODE_TX_HF
Definition: LR11x0.h:904
+
int16_t startWifiScan(char wifiType, uint8_t mode=RADIOLIB_LR11X0_WIFI_ACQ_MODE_FULL_BEACON, uint16_t chanMask=RADIOLIB_LR11X0_WIFI_ALL_CHANNELS, uint8_t numScans=16, uint16_t timeout=100)
Start passive WiFi scan. BUSY pin will be de-activated when the scan is finished.
Definition: LR11x0.cpp:1533
virtual int16_t readData(uint8_t *data, size_t len)
Reads data that was received after calling startReceive method.
Definition: PhysicalLayer.cpp:206
int16_t explicitHeader()
Set explicit header mode for future reception/transmission.
Definition: LR11x0.cpp:1423
-
bool XTAL
Whether the module has an XTAL (true) or TCXO (false). Defaults to false.
Definition: LR11x0.h:912
-
int16_t getWifiScanResult(LR11x0WifiResult_t *result, uint8_t index, bool brief=false)
Retrieve passive WiFi scan result.
Definition: LR11x0.cpp:1578
+
bool XTAL
Whether the module has an XTAL (true) or TCXO (false). Defaults to false.
Definition: LR11x0.h:914
+
int16_t getWifiScanResult(LR11x0WifiResult_t *result, uint8_t index, bool brief=false)
Retrieve passive WiFi scan result.
Definition: LR11x0.cpp:1597
void setIrqAction(void(*func)(void))
Sets interrupt service routine to call when IRQ1 activates.
Definition: LR11x0.cpp:391
int16_t transmit(const char *str, uint8_t addr=0)
C-string transmit method.
Definition: PhysicalLayer.cpp:53
int16_t checkDataRate(DataRate_t dr) override
Check the data rate can be configured by this module.
Definition: LR11x0.cpp:1088
@@ -1333,39 +1335,39 @@ $(document).ready(function(){initNavTree('_l_r11x0_8h_source.html',''); initResi
int16_t setCodingRate(uint8_t cr, bool longInterleave=false)
Sets LoRa coding rate denominator. Allowed values range from 5 to 8.
Definition: LR11x0.cpp:728
int16_t setDataShaping(uint8_t sh) override
Sets time-bandwidth product of Gaussian filter applied for shaping. Allowed values are RADIOLIB_SHAPI...
Definition: LR11x0.cpp:983
int16_t fixedPacketLengthMode(uint8_t len=RADIOLIB_LR11X0_MAX_PACKET_LENGTH)
Set modem in fixed packet length mode. Available in GFSK mode only.
Definition: LR11x0.cpp:1021
-
int16_t getWifiScanResultsCount(uint8_t *count)
Get number of WiFi scan results after the scan is finished.
Definition: LR11x0.cpp:1564
+
int16_t getWifiScanResultsCount(uint8_t *count)
Get number of WiFi scan results after the scan is finished.
Definition: LR11x0.cpp:1583
int16_t setNodeAddress(uint8_t nodeAddr)
Sets node address. Calling this method will also enable address filtering for node address only.
Definition: LR11x0.cpp:932
int16_t setIrqFlags(uint32_t irq) override
Set interrupt on IRQ pin to be sent on a specific IRQ bit (e.g. RxTimeout, CadDone).
Definition: LR11x0.cpp:1405
int16_t setSyncBits(uint8_t *syncWord, uint8_t bitsLen)
Sets GFSK sync word in the form of array of up to 8 bytes.
Definition: LR11x0.cpp:911
int16_t scanChannel() override
Performs scan for LoRa transmission in the current channel. Detects both preamble and payload.
Definition: LR11x0.cpp:318
float getRSSI() override
Gets RSSI (Recorded Signal Strength Indicator) of the last received packet. Only available for LoRa o...
Definition: LR11x0.cpp:1243
int16_t setBandwidth(float bw, bool high=false)
Sets LoRa bandwidth. Allowed values are 62.5, 125.0, 250.0 and 500.0 kHz. (default,...
Definition: LR11x0.cpp:657
-
int16_t getGnssAlmanacStatus(LR11x0GnssAlmanacStatus_t *stat)
Read information about the almanac.
Definition: LR11x0.cpp:1869
+
int16_t getGnssAlmanacStatus(LR11x0GnssAlmanacStatus_t *stat)
Read information about the almanac.
Definition: LR11x0.cpp:1888
int16_t standby() override
Sets the module to standby mode (overload for PhysicalLayer compatibility, uses 13 MHz RC oscillator)...
Definition: LR11x0.cpp:347
-
int16_t isGnssScanCapable()
Method to check whether the device is capable of performing a GNSS scan.
Definition: LR11x0.cpp:1755
+
int16_t isGnssScanCapable()
Method to check whether the device is capable of performing a GNSS scan.
Definition: LR11x0.cpp:1774
int16_t setSyncWord(uint32_t syncWord)
Sets LoRa or LR-FHSS sync word.
Definition: LR11x0.cpp:761
uint8_t randomByte() override
Get one truly random byte from RSSI noise.
Definition: LR11x0.cpp:1413
int16_t setEncoding(uint8_t encoding) override
Sets transmission encoding. Available in GFSK mode only. Serves only as alias for PhysicalLayer compa...
Definition: LR11x0.cpp:1017
-
int16_t setLrFhssConfig(uint8_t bw, uint8_t cr, uint8_t hdrCount=3, uint16_t hopSeed=0x13A)
Sets LR-FHSS configuration.
Definition: LR11x0.cpp:1493
+
int16_t setLrFhssConfig(uint8_t bw, uint8_t cr, uint8_t hdrCount=3, uint16_t hopSeed=0x13A)
Sets LR-FHSS configuration.
Definition: LR11x0.cpp:1512
void setPacketSentAction(void(*func)(void)) override
Sets interrupt service routine to call when a packet is sent.
Definition: LR11x0.cpp:407
int16_t startTransmit(const char *str, uint8_t addr=0)
Interrupt-driven Arduino String transmit method. Unlike the standard transmit method,...
Definition: PhysicalLayer.cpp:148
int16_t setRegulatorLDO()
Set regulator mode to LDO.
Definition: LR11x0.cpp:1431
void clearPacketSentAction() override
Clears interrupt service routine to call when a packet is sent.
Definition: LR11x0.cpp:411
-
int16_t updateGnssAlmanac(uint8_t constellation)
Perform almanac update. Must be called immediately after gnssDelayUntilSubframe.
Definition: LR11x0.cpp:1932
+
int16_t updateGnssAlmanac(uint8_t constellation)
Perform almanac update. Must be called immediately after gnssDelayUntilSubframe.
Definition: LR11x0.cpp:1951
void clearPacketReceivedAction() override
Clears interrupt service routine to call when a packet is received.
Definition: LR11x0.cpp:403
int16_t setTCXO(float voltage, uint32_t delay=5000)
Sets TCXO (Temperature Compensated Crystal Oscillator) configuration.
Definition: LR11x0.cpp:1131
-
int16_t getGnssSatellites(LR11x0GnssSatellite_t *sats, uint8_t numSats)
Get GNSS satellites found during the last scan.
Definition: LR11x0.cpp:1982
+
int16_t getGnssSatellites(LR11x0GnssSatellite_t *sats, uint8_t numSats)
Get GNSS satellites found during the last scan.
Definition: LR11x0.cpp:2001
int16_t begin(float bw, uint8_t sf, uint8_t cr, uint8_t syncWord, uint16_t preambleLength, float tcxoVoltage, bool high=false)
Initialization method for LoRa modem.
Definition: LR11x0.cpp:26
int16_t clearIrqFlags(uint32_t irq) override
Clear interrupt on a specific IRQ bit (e.g. RxTimeout, CadDone).
Definition: LR11x0.cpp:1409
int16_t setPreambleLength(size_t preambleLength) override
Sets preamble length for LoRa or GFSK modem. Allowed values range from 1 to 65535.
Definition: LR11x0.cpp:1110
int16_t startReceive() override
Interrupt-driven receive method with default parameters. Implemented for compatibility with PhysicalL...
Definition: LR11x0.cpp:490
-
int16_t autoLDRO()
Re-enables automatic LDRO configuration. Only available in LoRa mode. After calling this method,...
Definition: LR11x0.cpp:1481
+
int16_t autoLDRO()
Re-enables automatic LDRO configuration. Only available in LoRa mode. After calling this method,...
Definition: LR11x0.cpp:1500
int16_t finishTransmit() override
Clean up after transmission is done.
Definition: LR11x0.cpp:482
int16_t setRxBoostedGainMode(bool en)
Enables or disables Rx Boosted Gain mode (additional Rx gain for increased power consumption).
Definition: LR11x0.cpp:1439
void clearIrqAction()
Clears interrupt service routine to call when IRQ1 activates.
Definition: LR11x0.cpp:395
int16_t setBitRate(float br) override
Sets GFSK bit rate. Allowed values range from 0.6 to 300.0 kbps.
Definition: LR11x0.cpp:777
-
int16_t updateFirmware(const uint32_t *image, size_t size, bool nonvolatile=true)
Method to upload new firmware image to the device. The device will be automatically erased,...
Definition: LR11x0.cpp:1697
-
int16_t gnssDelayUntilSubframe(LR11x0GnssAlmanacStatus_t *stat, uint8_t constellation)
Blocking wait until the next subframe with almanac data is available. Used to control timing during a...
Definition: LR11x0.cpp:1908
+
int16_t updateFirmware(const uint32_t *image, size_t size, bool nonvolatile=true)
Method to upload new firmware image to the device. The device will be automatically erased,...
Definition: LR11x0.cpp:1716
+
int16_t gnssDelayUntilSubframe(LR11x0GnssAlmanacStatus_t *stat, uint8_t constellation)
Blocking wait until the next subframe with almanac data is available. Used to control timing during a...
Definition: LR11x0.cpp:1927
virtual int16_t receive(uint8_t *data, size_t len)
Binary receive method. Must be implemented in module class.
Definition: PhysicalLayer.cpp:111
int16_t implicitHeader(size_t len)
Set implicit header mode for future reception/transmission.
Definition: LR11x0.cpp:1419
int16_t beginGFSK(float br, float freqDev, float rxBw, uint16_t preambleLength, float tcxoVoltage)
Initialization method for FSK modem.
Definition: LR11x0.cpp:60
@@ -1373,95 +1375,95 @@ $(document).ready(function(){initNavTree('_l_r11x0_8h_source.html',''); initResi
int16_t setFrequencyDeviation(float freqDev) override
Sets GFSK frequency deviation. Allowed values range from 0.0 to 200.0 kHz.
Definition: LR11x0.cpp:794
size_t getPacketLength(bool update=true) override
Query modem for the packet length of received payload.
Definition: LR11x0.cpp:1278
void setPacketReceivedAction(void(*func)(void)) override
Sets interrupt service routine to call when a packet is received.
Definition: LR11x0.cpp:399
-
int16_t getVersionInfo(LR11x0VersionInfo_t *info)
Retrieve LR11x0 hardware, device and firmware version information.
Definition: LR11x0.cpp:1677
-
void clearWiFiScanAction()
Clears interrupt service routine to call when a WiFi scan is completed.
Definition: LR11x0.cpp:1560
+
int16_t getVersionInfo(LR11x0VersionInfo_t *info)
Retrieve LR11x0 hardware, device and firmware version information.
Definition: LR11x0.cpp:1696
+
void clearWiFiScanAction()
Clears interrupt service routine to call when a WiFi scan is completed.
Definition: LR11x0.cpp:1579
int16_t sleep() override
Sets the module to sleep mode. To wake the device up, call standby(). Overload with warm start enable...
Definition: LR11x0.cpp:366
int16_t beginGNSS(uint8_t constellations=RADIOLIB_LR11X0_GNSS_CONSTELLATION_GPS|RADIOLIB_LR11X0_GNSS_CONSTELLATION_BEIDOU, float tcxoVoltage=1.6)
Initialization method for GNSS scanning.
Definition: LR11x0.cpp:123
float getFrequencyError()
Gets frequency error of the latest received packet.
Definition: LR11x0.cpp:1273
-
int16_t gnssScan(LR11x0GnssResult_t *res=NULL)
Performs GNSS scan.
Definition: LR11x0.cpp:1801
-
int16_t calibrateImageRejection(float freqMin, float freqMax)
Perform image rejection calibration for the specified frequency band. WARNING: Use at your own risk!...
Definition: LR11x0.cpp:2403
+
int16_t gnssScan(LR11x0GnssResult_t *res=NULL)
Performs GNSS scan.
Definition: LR11x0.cpp:1820
+
int16_t calibrateImageRejection(float freqMin, float freqMax)
Perform image rejection calibration for the specified frequency band. WARNING: Use at your own risk!...
Definition: LR11x0.cpp:2422
int16_t variablePacketLengthMode(uint8_t maxLen=RADIOLIB_LR11X0_MAX_PACKET_LENGTH)
Set modem in variable packet length mode. Available in GFSK mode only.
Definition: LR11x0.cpp:1025
int16_t setWhitening(bool enabled, uint16_t initial=0x01FF)
Sets GFSK whitening parameters.
Definition: LR11x0.cpp:1029
-
int16_t wifiScan(uint8_t wifiType, uint8_t *count, uint8_t mode=RADIOLIB_LR11X0_WIFI_ACQ_MODE_FULL_BEACON, uint16_t chanMask=RADIOLIB_LR11X0_WIFI_ALL_CHANNELS, uint8_t numScans=16, uint16_t timeout=100)
Blocking WiFi scan method. Performs a full passive WiFi scan. This method may block for several secon...
Definition: LR11x0.cpp:1652
+
int16_t wifiScan(uint8_t wifiType, uint8_t *count, uint8_t mode=RADIOLIB_LR11X0_WIFI_ACQ_MODE_FULL_BEACON, uint16_t chanMask=RADIOLIB_LR11X0_WIFI_ALL_CHANNELS, uint8_t numScans=16, uint16_t timeout=100)
Blocking WiFi scan method. Performs a full passive WiFi scan. This method may block for several secon...
Definition: LR11x0.cpp:1671
int16_t setSpreadingFactor(uint8_t sf, bool legacy=false)
Sets LoRa spreading factor. Allowed values range from 5 to 12.
Definition: LR11x0.cpp:707
int16_t transmitDirect(uint32_t frf=0) override
Starts direct mode transmission.
Definition: LR11x0.cpp:295
-
int16_t forceLDRO(bool enable)
Forces LoRa low data rate optimization. Only available in LoRa mode. After calling this method,...
Definition: LR11x0.cpp:1466
+
int16_t forceLDRO(bool enable)
Forces LoRa low data rate optimization. Only available in LoRa mode. After calling this method,...
Definition: LR11x0.cpp:1485
int16_t receiveDirect() override
Starts direct mode reception. Only implemented for PhysicalLayer compatibility, as SX126x series does...
Definition: LR11x0.cpp:310
int16_t disableAddressFiltering()
Disables address filtering. Calling this method will also erase previously set addresses.
Definition: LR11x0.cpp:969
int16_t setBroadcastAddress(uint8_t broadAddr)
Sets broadcast address. Calling this method will also enable address filtering for node and broadcast...
Definition: LR11x0.cpp:951
int16_t invertIQ(bool enable) override
Enable/disable inversion of the I and Q signals.
Definition: LR11x0.cpp:1230
-
int16_t getModem(ModemType_t *modem) override
Get modem currently in use by the radio.
Definition: LR11x0.cpp:2002
-
void setWiFiScanAction(void(*func)(void))
Sets interrupt service routine to call when a WiFi scan is completed.
Definition: LR11x0.cpp:1556
-
Implements all common low-level methods to control the wireless module. Every module class contains o...
Definition: Module.h:66
-
static const size_t RFSWITCH_MAX_PINS
The maximum number of pins supported by the RF switch code. Note: It is not recommended to use this c...
Definition: Module.h:75
-
@ MODE_TX
Transmission mode.
Definition: Module.h:112
-
@ MODE_IDLE
Idle mode.
Definition: Module.h:106
-
@ MODE_RX
Receive mode.
Definition: Module.h:109
-
@ MODE_END_OF_TABLE
End of table marker, use END_OF_MODE_TABLE constant instead. Value is zero to ensure zero-initialized...
Definition: Module.h:103
+
int16_t getModem(ModemType_t *modem) override
Get modem currently in use by the radio.
Definition: LR11x0.cpp:2021
+
void setWiFiScanAction(void(*func)(void))
Sets interrupt service routine to call when a WiFi scan is completed.
Definition: LR11x0.cpp:1575
+
Implements all common low-level methods to control the wireless module. Every module class contains o...
Definition: Module.h:73
+
static const size_t RFSWITCH_MAX_PINS
The maximum number of pins supported by the RF switch code. Note: It is not recommended to use this c...
Definition: Module.h:82
+
@ MODE_TX
Transmission mode.
Definition: Module.h:119
+
@ MODE_IDLE
Idle mode.
Definition: Module.h:113
+
@ MODE_RX
Receive mode.
Definition: Module.h:116
+
@ MODE_END_OF_TABLE
End of table marker, use END_OF_MODE_TABLE constant instead. Value is zero to ensure zero-initialized...
Definition: Module.h:110
Provides common interface for protocols that run on LoRa/FSK modules, such as RTTY or LoRaWAN....
Definition: PhysicalLayer.h:151
virtual int16_t readData(uint8_t *data, size_t len)
Reads data that was received after calling startReceive method.
Definition: PhysicalLayer.cpp:206
int16_t transmit(const char *str, uint8_t addr=0)
C-string transmit method.
Definition: PhysicalLayer.cpp:53
int16_t startTransmit(const char *str, uint8_t addr=0)
Interrupt-driven Arduino String transmit method. Unlike the standard transmit method,...
Definition: PhysicalLayer.cpp:148
virtual int16_t receive(uint8_t *data, size_t len)
Binary receive method. Must be implemented in module class.
Definition: PhysicalLayer.cpp:111
unsigned long RadioLibTime_t
Type used for durations in RadioLib.
Definition: TypeDef.h:642
-
Structure to save information about the GNSS almanac. This is not the actual almanac,...
Definition: LR11x0.h:850
-
RadioLibTime_t start
Timestamp of when almanac status was retrieved - timeUntilSubframe is relative to this value.
Definition: LR11x0.h:864
-
LR11x0GnssAlmanacStatusPart_t beidou
BeiDou part of the almanac.
Definition: LR11x0.h:855
-
uint8_t nextAlmanacId
Next almanac ID.
Definition: LR11x0.h:861
-
uint32_t beidouSvNoAlmanacFlags[2]
Extra flags present for BeiDou only.
Definition: LR11x0.h:858
-
LR11x0GnssAlmanacStatusPart_t gps
GPS part of the almanac.
Definition: LR11x0.h:852
-
Structure to save information about one constellation of the GNSS almanac.
Definition: LR11x0.h:833
-
Structure to report position from LR11x0 internal solver.
Definition: LR11x0.h:800
-
float latitude
Latitude in degrees.
Definition: LR11x0.h:802
-
uint16_t accuracy
Accuracy of this result.
Definition: LR11x0.h:808
-
float longitude
Longitude in degrees.
Definition: LR11x0.h:805
-
uint8_t numSatsUsed
Number of satellites used to solve this position.
Definition: LR11x0.h:811
-
Structure to report information results of a GNSS scan.
Definition: LR11x0.h:785
-
uint16_t resSize
Result size, used when passing data to LoRa cloud.
Definition: LR11x0.h:793
-
int8_t demodStat
Demodulator status. One of RADIOLIB_LR11X0_GNSS_DEMOD_STATUS_*.
Definition: LR11x0.h:787
-
uint8_t numSatsDet
Number of satellites detected during the scan.
Definition: LR11x0.h:790
-
Structure to save information about a satellite found during GNSS scan.
Definition: LR11x0.h:818
-
uint8_t svId
Satellite vehicle (SV) identifier.
Definition: LR11x0.h:820
-
uint8_t c_n0
C/N0 in dB.
Definition: LR11x0.h:823
-
int16_t doppler
Doppler shift of the signal in Hz.
Definition: LR11x0.h:826
-
Structure to report information about versions of the LR11x0 hardware and firmware.
Definition: LR11x0.h:755
-
uint8_t fwMajor
Major revision of the base firmware.
Definition: LR11x0.h:763
-
uint8_t fwMinorWiFi
Minor revision of the WiFi firmware.
Definition: LR11x0.h:772
-
uint8_t device
Which device this is - one of RADIOLIB_LR11X0_DEVICE_* macros.
Definition: LR11x0.h:760
-
uint8_t hardware
Hardware revision.
Definition: LR11x0.h:757
-
uint8_t fwMinor
Minor revision of the base firmware.
Definition: LR11x0.h:766
-
uint8_t fwGNSS
Revision of the GNSS firmware.
Definition: LR11x0.h:775
-
uint8_t almanacGNSS
Almanac revision of the GNSS firmware.
Definition: LR11x0.h:778
-
uint8_t fwMajorWiFi
Major revision of the WiFi firmware.
Definition: LR11x0.h:769
-
Structure to save result of passive WiFi scan. This result only saves the basic information.
Definition: LR11x0.h:658
-
bool ap
Whether this signal was sent by an access point (true) or end device (false)
Definition: LR11x0.h:672
-
uint16_t channelFreq
Channel frequency in MHz.
Definition: LR11x0.h:666
-
char type
WiFi (802.11) signal type, 'b', 'n' or 'g'.
Definition: LR11x0.h:660
-
uint8_t mac[RADIOLIB_LR11X0_WIFI_RESULT_MAC_LEN]
MAC address.
Definition: LR11x0.h:678
-
uint8_t dataRateId
Data rate ID holding information about modulation and coding rate. See LR11x0 user manual for details...
Definition: LR11x0.h:663
-
float rssi
RSSI in dBm.
Definition: LR11x0.h:675
-
uint8_t origin
MAC address origin: from gateway (1), phone (2) or undetermined (3)
Definition: LR11x0.h:669
-
Structure to save result of passive WiFi scan. This result saves additional information alongside tha...
Definition: LR11x0.h:716
-
uint8_t rate
Data rate. See LR11x0 user manual for details.
Definition: LR11x0.h:718
-
uint16_t length
Refer to IEEE Std 802.11, 2016, Part 11: Wireless LAN MAC and PHY Spec.
Definition: LR11x0.h:724
-
bool fcsCheckOk
True if frame check sequences is valid, false otherwise.
Definition: LR11x0.h:748
-
uint16_t service
Refer to IEEE Std 802.11, 2016, Part 11: Wireless LAN MAC and PHY Spec.
Definition: LR11x0.h:721
-
uint8_t mac2[RADIOLIB_LR11X0_WIFI_RESULT_MAC_LEN]
MAC address 2.
Definition: LR11x0.h:730
-
uint8_t ssid[RADIOLIB_LR11X0_WIFI_RESULT_SSID_LEN]
SSID.
Definition: LR11x0.h:736
-
uint8_t currentChannel
WiFi channel number.
Definition: LR11x0.h:739
-
uint16_t seqCtrl
Refer to IEEE Std 802.11, 2016, Part 11: Wireless LAN MAC and PHY Spec.
Definition: LR11x0.h:733
-
uint8_t mac0[RADIOLIB_LR11X0_WIFI_RESULT_MAC_LEN]
MAC address 0.
Definition: LR11x0.h:727
-
char countryCode[3]
Two-letter country code (null-terminated string).
Definition: LR11x0.h:742
-
uint8_t ioReg
Refer to IEEE Std 802.11, 2016, Part 11: Wireless LAN MAC and PHY Spec.
Definition: LR11x0.h:745
-
Structure to save result of passive WiFi scan. This result saves additional information alongside tha...
Definition: LR11x0.h:686
-
uint32_t periodBeacon
Beacon period in microseconds.
Definition: LR11x0.h:706
-
uint16_t phiOffset
See LR11x0 user manual for details.
Definition: LR11x0.h:700
-
bool fromDistributionSystem
Frame sent from distribution system to client station.
Definition: LR11x0.h:697
-
uint64_t timestamp
Number of microseconds the AP has been active.
Definition: LR11x0.h:703
-
uint8_t frameType
Frame type. See LR11x0 user manual for details.
Definition: LR11x0.h:688
-
uint8_t frameSubType
Frame sub type. See LR11x0 user manual for details.
Definition: LR11x0.h:691
-
bool toDistributionSystem
Frame sent from client station to distribution system.
Definition: LR11x0.h:694
-
Description of RF switch pin states for a single mode. See setRfSwitchTable for details.
Definition: Module.h:82
+
Structure to save information about the GNSS almanac. This is not the actual almanac,...
Definition: LR11x0.h:852
+
RadioLibTime_t start
Timestamp of when almanac status was retrieved - timeUntilSubframe is relative to this value.
Definition: LR11x0.h:866
+
LR11x0GnssAlmanacStatusPart_t beidou
BeiDou part of the almanac.
Definition: LR11x0.h:857
+
uint8_t nextAlmanacId
Next almanac ID.
Definition: LR11x0.h:863
+
uint32_t beidouSvNoAlmanacFlags[2]
Extra flags present for BeiDou only.
Definition: LR11x0.h:860
+
LR11x0GnssAlmanacStatusPart_t gps
GPS part of the almanac.
Definition: LR11x0.h:854
+
Structure to save information about one constellation of the GNSS almanac.
Definition: LR11x0.h:835
+
Structure to report position from LR11x0 internal solver.
Definition: LR11x0.h:802
+
float latitude
Latitude in degrees.
Definition: LR11x0.h:804
+
uint16_t accuracy
Accuracy of this result.
Definition: LR11x0.h:810
+
float longitude
Longitude in degrees.
Definition: LR11x0.h:807
+
uint8_t numSatsUsed
Number of satellites used to solve this position.
Definition: LR11x0.h:813
+
Structure to report information results of a GNSS scan.
Definition: LR11x0.h:787
+
uint16_t resSize
Result size, used when passing data to LoRa cloud.
Definition: LR11x0.h:795
+
int8_t demodStat
Demodulator status. One of RADIOLIB_LR11X0_GNSS_DEMOD_STATUS_*.
Definition: LR11x0.h:789
+
uint8_t numSatsDet
Number of satellites detected during the scan.
Definition: LR11x0.h:792
+
Structure to save information about a satellite found during GNSS scan.
Definition: LR11x0.h:820
+
uint8_t svId
Satellite vehicle (SV) identifier.
Definition: LR11x0.h:822
+
uint8_t c_n0
C/N0 in dB.
Definition: LR11x0.h:825
+
int16_t doppler
Doppler shift of the signal in Hz.
Definition: LR11x0.h:828
+
Structure to report information about versions of the LR11x0 hardware and firmware.
Definition: LR11x0.h:757
+
uint8_t fwMajor
Major revision of the base firmware.
Definition: LR11x0.h:765
+
uint8_t fwMinorWiFi
Minor revision of the WiFi firmware.
Definition: LR11x0.h:774
+
uint8_t device
Which device this is - one of RADIOLIB_LR11X0_DEVICE_* macros.
Definition: LR11x0.h:762
+
uint8_t hardware
Hardware revision.
Definition: LR11x0.h:759
+
uint8_t fwMinor
Minor revision of the base firmware.
Definition: LR11x0.h:768
+
uint8_t fwGNSS
Revision of the GNSS firmware.
Definition: LR11x0.h:777
+
uint8_t almanacGNSS
Almanac revision of the GNSS firmware.
Definition: LR11x0.h:780
+
uint8_t fwMajorWiFi
Major revision of the WiFi firmware.
Definition: LR11x0.h:771
+
Structure to save result of passive WiFi scan. This result only saves the basic information.
Definition: LR11x0.h:660
+
bool ap
Whether this signal was sent by an access point (true) or end device (false)
Definition: LR11x0.h:674
+
uint16_t channelFreq
Channel frequency in MHz.
Definition: LR11x0.h:668
+
char type
WiFi (802.11) signal type, 'b', 'n' or 'g'.
Definition: LR11x0.h:662
+
uint8_t mac[RADIOLIB_LR11X0_WIFI_RESULT_MAC_LEN]
MAC address.
Definition: LR11x0.h:680
+
uint8_t dataRateId
Data rate ID holding information about modulation and coding rate. See LR11x0 user manual for details...
Definition: LR11x0.h:665
+
float rssi
RSSI in dBm.
Definition: LR11x0.h:677
+
uint8_t origin
MAC address origin: from gateway (1), phone (2) or undetermined (3)
Definition: LR11x0.h:671
+
Structure to save result of passive WiFi scan. This result saves additional information alongside tha...
Definition: LR11x0.h:718
+
uint8_t rate
Data rate. See LR11x0 user manual for details.
Definition: LR11x0.h:720
+
uint16_t length
Refer to IEEE Std 802.11, 2016, Part 11: Wireless LAN MAC and PHY Spec.
Definition: LR11x0.h:726
+
bool fcsCheckOk
True if frame check sequences is valid, false otherwise.
Definition: LR11x0.h:750
+
uint16_t service
Refer to IEEE Std 802.11, 2016, Part 11: Wireless LAN MAC and PHY Spec.
Definition: LR11x0.h:723
+
uint8_t mac2[RADIOLIB_LR11X0_WIFI_RESULT_MAC_LEN]
MAC address 2.
Definition: LR11x0.h:732
+
uint8_t ssid[RADIOLIB_LR11X0_WIFI_RESULT_SSID_LEN]
SSID.
Definition: LR11x0.h:738
+
uint8_t currentChannel
WiFi channel number.
Definition: LR11x0.h:741
+
uint16_t seqCtrl
Refer to IEEE Std 802.11, 2016, Part 11: Wireless LAN MAC and PHY Spec.
Definition: LR11x0.h:735
+
uint8_t mac0[RADIOLIB_LR11X0_WIFI_RESULT_MAC_LEN]
MAC address 0.
Definition: LR11x0.h:729
+
char countryCode[3]
Two-letter country code (null-terminated string).
Definition: LR11x0.h:744
+
uint8_t ioReg
Refer to IEEE Std 802.11, 2016, Part 11: Wireless LAN MAC and PHY Spec.
Definition: LR11x0.h:747
+
Structure to save result of passive WiFi scan. This result saves additional information alongside tha...
Definition: LR11x0.h:688
+
uint32_t periodBeacon
Beacon period in microseconds.
Definition: LR11x0.h:708
+
uint16_t phiOffset
See LR11x0 user manual for details.
Definition: LR11x0.h:702
+
bool fromDistributionSystem
Frame sent from distribution system to client station.
Definition: LR11x0.h:699
+
uint64_t timestamp
Number of microseconds the AP has been active.
Definition: LR11x0.h:705
+
uint8_t frameType
Frame type. See LR11x0 user manual for details.
Definition: LR11x0.h:690
+
uint8_t frameSubType
Frame sub type. See LR11x0 user manual for details.
Definition: LR11x0.h:693
+
bool toDistributionSystem
Frame sent from client station to distribution system.
Definition: LR11x0.h:696
+
Description of RF switch pin states for a single mode. See setRfSwitchTable for details.
Definition: Module.h:89
Common channel scan configuration structure.
Definition: PhysicalLayer.h:125
Common data rate structure.
Definition: PhysicalLayer.h:74
diff --git a/_module_8h_source.html b/_module_8h_source.html index e973f8bc..44c8c0c6 100644 --- a/_module_8h_source.html +++ b/_module_8h_source.html @@ -103,231 +103,233 @@ $(document).ready(function(){initNavTree('_module_8h_source.html',''); initResiz
15 
20 #define END_OF_MODE_TABLE { Module::MODE_END_OF_TABLE, {} }
21 
-
28 #define RADIOLIB_MODULE_SPI_COMMAND_READ (0)
-
29 
-
31 #define RADIOLIB_MODULE_SPI_COMMAND_WRITE (1)
-
32 
-
34 #define RADIOLIB_MODULE_SPI_COMMAND_NOP (2)
-
35 
-
37 #define RADIOLIB_MODULE_SPI_COMMAND_STATUS (3)
-
38 
-
49 #define RADIOLIB_MODULE_SPI_WIDTH_ADDR (0)
-
50 
-
52 #define RADIOLIB_MODULE_SPI_WIDTH_CMD (1)
-
53 
-
55 #define RADIOLIB_MODULE_SPI_WIDTH_STATUS (2)
-
56 
-
66 class Module {
-
67  public:
-
75  static const size_t RFSWITCH_MAX_PINS = 5;
-
76 
-
82  struct RfSwitchMode_t {
-
84  uint8_t mode;
-
85 
-
87  uint32_t values[RFSWITCH_MAX_PINS];
-
88  };
-
89 
-
98  enum OpMode_t {
-
103  MODE_END_OF_TABLE = 0,
-
104 
-
106  MODE_IDLE,
-
107 
-
109  MODE_RX,
-
110 
-
112  MODE_TX,
-
113  };
+
27 #define RFSWITCH_PIN_FLAG (0x01UL << 31)
+
28 
+
35 #define RADIOLIB_MODULE_SPI_COMMAND_READ (0)
+
36 
+
38 #define RADIOLIB_MODULE_SPI_COMMAND_WRITE (1)
+
39 
+
41 #define RADIOLIB_MODULE_SPI_COMMAND_NOP (2)
+
42 
+
44 #define RADIOLIB_MODULE_SPI_COMMAND_STATUS (3)
+
45 
+
56 #define RADIOLIB_MODULE_SPI_WIDTH_ADDR (0)
+
57 
+
59 #define RADIOLIB_MODULE_SPI_WIDTH_CMD (1)
+
60 
+
62 #define RADIOLIB_MODULE_SPI_WIDTH_STATUS (2)
+
63 
+
73 class Module {
+
74  public:
+
82  static const size_t RFSWITCH_MAX_PINS = 5;
+
83 
+
89  struct RfSwitchMode_t {
+
91  uint8_t mode;
+
92 
+
94  uint32_t values[RFSWITCH_MAX_PINS];
+
95  };
+
96 
+
105  enum OpMode_t {
+
110  MODE_END_OF_TABLE = 0,
+
111 
+
113  MODE_IDLE,
114 
-
115  #if defined(RADIOLIB_BUILD_ARDUINO)
-
123  Module(uint32_t cs, uint32_t irq, uint32_t rst, uint32_t gpio = RADIOLIB_NC);
-
124 
-
134  Module(uint32_t cs, uint32_t irq, uint32_t rst, uint32_t gpio, SPIClass& spi, SPISettings spiSettings = RADIOLIB_DEFAULT_SPI_SETTINGS);
-
135  #endif
-
136 
-
145  Module(RadioLibHal *hal, uint32_t cs, uint32_t irq, uint32_t rst, uint32_t gpio = RADIOLIB_NC);
-
146 
-
151  Module(const Module& mod);
-
152 
-
157  Module& operator=(const Module& mod);
-
158 
-
159  // public member variables
-
161  RadioLibHal* hal = NULL;
-
162 
-
164  typedef int16_t (*SPIparseStatusCb_t)(uint8_t in);
+
116  MODE_RX,
+
117 
+
119  MODE_TX,
+
120  };
+
121 
+
122  #if defined(RADIOLIB_BUILD_ARDUINO)
+
130  Module(uint32_t cs, uint32_t irq, uint32_t rst, uint32_t gpio = RADIOLIB_NC);
+
131 
+
141  Module(uint32_t cs, uint32_t irq, uint32_t rst, uint32_t gpio, SPIClass& spi, SPISettings spiSettings = RADIOLIB_DEFAULT_SPI_SETTINGS);
+
142  #endif
+
143 
+
152  Module(RadioLibHal *hal, uint32_t cs, uint32_t irq, uint32_t rst, uint32_t gpio = RADIOLIB_NC);
+
153 
+
158  Module(const Module& mod);
+
159 
+
164  Module& operator=(const Module& mod);
165 
-
167  typedef int16_t (*SPIcheckStatusCb_t)(Module* mod);
-
168 
-
169  enum BitWidth_t {
-
170  BITS_0 = 0,
-
171  BITS_8 = 8,
-
172  BITS_16 = 16,
-
173  BITS_32 = 32,
-
174  };
+
166  // public member variables
+
168  RadioLibHal* hal = NULL;
+
169 
+
171  typedef int16_t (*SPIparseStatusCb_t)(uint8_t in);
+
172 
+
174  typedef int16_t (*SPIcheckStatusCb_t)(Module* mod);
175 
-
180  struct SPIConfig_t {
-
182  bool stream;
-
183 
-
185  int16_t err;
-
186 
-
188  uint16_t cmds[4];
-
189 
-
191  BitWidth_t widths[3];
-
192 
-
194  uint8_t statusPos;
-
195 
-
197  SPIparseStatusCb_t parseStatusCb;
-
198 
-
200  SPIcheckStatusCb_t checkStatusCb;
-
201 
-
203  RadioLibTime_t timeout;
-
204  };
+
176  enum BitWidth_t {
+
177  BITS_0 = 0,
+
178  BITS_8 = 8,
+
179  BITS_16 = 16,
+
180  BITS_32 = 32,
+
181  };
+
182 
+
187  struct SPIConfig_t {
+
189  bool stream;
+
190 
+
192  int16_t err;
+
193 
+
195  uint16_t cmds[4];
+
196 
+
198  BitWidth_t widths[3];
+
199 
+
201  uint8_t statusPos;
+
202 
+
204  SPIparseStatusCb_t parseStatusCb;
205 
-
207  SPIConfig_t spiConfig = {
-
208  .stream = false,
-
209  .err = RADIOLIB_ERR_UNKNOWN,
-
210  .cmds = { 0x00, 0x80, 0x00, 0x00 },
-
211  .widths = { Module::BITS_8, Module::BITS_0, Module::BITS_8 },
-
212  .statusPos = 0,
-
213  .parseStatusCb = nullptr,
-
214  .checkStatusCb = nullptr,
-
215  .timeout = 1000,
-
216  };
-
217 
-
218  #if RADIOLIB_INTERRUPT_TIMING
-
219 
-
223  typedef void (*TimerSetupCb_t)(uint32_t len);
+
207  SPIcheckStatusCb_t checkStatusCb;
+
208 
+
210  RadioLibTime_t timeout;
+
211  };
+
212 
+
214  SPIConfig_t spiConfig = {
+
215  .stream = false,
+
216  .err = RADIOLIB_ERR_UNKNOWN,
+
217  .cmds = { 0x00, 0x80, 0x00, 0x00 },
+
218  .widths = { Module::BITS_8, Module::BITS_0, Module::BITS_8 },
+
219  .statusPos = 0,
+
220  .parseStatusCb = nullptr,
+
221  .checkStatusCb = nullptr,
+
222  .timeout = 1000,
+
223  };
224 
-
228  TimerSetupCb_t TimerSetupCb = nullptr;
-
229 
-
233  volatile bool TimerFlag = false;
-
234 
-
235  #endif
+
225  #if RADIOLIB_INTERRUPT_TIMING
+
226 
+
230  typedef void (*TimerSetupCb_t)(uint32_t len);
+
231 
+
235  TimerSetupCb_t TimerSetupCb = nullptr;
236 
-
237  // basic methods
-
238 
-
242  void init();
+
240  volatile bool TimerFlag = false;
+
241 
+
242  #endif
243 
-
247  void term();
-
248 
-
249  // SPI methods
+
244  // basic methods
+
245 
+
249  void init();
250 
-
258  int16_t SPIgetRegValue(uint32_t reg, uint8_t msb = 7, uint8_t lsb = 0);
-
259 
-
270  int16_t SPIsetRegValue(uint32_t reg, uint8_t value, uint8_t msb = 7, uint8_t lsb = 0, uint8_t checkInterval = 2, uint8_t checkMask = 0xFF);
-
271 
-
278  void SPIreadRegisterBurst(uint32_t reg, size_t numBytes, uint8_t* inBytes);
-
279 
-
285  uint8_t SPIreadRegister(uint32_t reg);
+
254  void term();
+
255 
+
256  // SPI methods
+
257 
+
265  int16_t SPIgetRegValue(uint32_t reg, uint8_t msb = 7, uint8_t lsb = 0);
+
266 
+
277  int16_t SPIsetRegValue(uint32_t reg, uint8_t value, uint8_t msb = 7, uint8_t lsb = 0, uint8_t checkInterval = 2, uint8_t checkMask = 0xFF);
+
278 
+
285  void SPIreadRegisterBurst(uint32_t reg, size_t numBytes, uint8_t* inBytes);
286 
-
293  void SPIwriteRegisterBurst(uint32_t reg, uint8_t* data, size_t numBytes);
-
294 
-
300  void SPIwriteRegister(uint32_t reg, uint8_t data);
+
292  uint8_t SPIreadRegister(uint32_t reg);
+
293 
+
300  void SPIwriteRegisterBurst(uint32_t reg, uint8_t* data, size_t numBytes);
301 
-
310  void SPItransfer(uint16_t cmd, uint32_t reg, uint8_t* dataOut, uint8_t* dataIn, size_t numBytes);
-
311 
-
316  int16_t SPIcheckStream();
-
317 
-
327  int16_t SPIreadStream(uint16_t cmd, uint8_t* data, size_t numBytes, bool waitForGpio = true, bool verify = true);
-
328 
-
339  int16_t SPIreadStream(uint8_t* cmd, uint8_t cmdLen, uint8_t* data, size_t numBytes, bool waitForGpio = true, bool verify = true);
-
340 
-
350  int16_t SPIwriteStream(uint16_t cmd, uint8_t* data, size_t numBytes, bool waitForGpio = true, bool verify = true);
-
351 
-
362  int16_t SPIwriteStream(uint8_t* cmd, uint8_t cmdLen, uint8_t* data, size_t numBytes, bool waitForGpio = true, bool verify = true);
-
363 
-
375  int16_t SPItransferStream(const uint8_t* cmd, uint8_t cmdLen, bool write, uint8_t* dataOut, uint8_t* dataIn, size_t numBytes, bool waitForGpio);
-
376 
-
377  // pin number access methods
-
378 
-
383  uint32_t getCs() const { return(csPin); }
-
384 
-
389  uint32_t getIrq() const { return(irqPin); }
-
390 
-
395  uint32_t getRst() const { return(rstPin); }
-
396 
-
401  uint32_t getGpio() const { return(gpioPin); }
-
402 
-
419  void setRfSwitchPins(uint32_t rxEn, uint32_t txEn);
-
420 
-
483  void setRfSwitchTable(const uint32_t (&pins)[RFSWITCH_MAX_PINS], const RfSwitchMode_t table[]);
-
484 
-
492  const RfSwitchMode_t *findRfSwitchMode(uint8_t mode) const;
-
493 
-
498  void setRfSwitchState(uint8_t mode);
-
499 
-
507  void waitForMicroseconds(RadioLibTime_t start, RadioLibTime_t len);
-
508 
-
509  #if RADIOLIB_DEBUG
-
516  void regdump(const char* level, uint16_t start, size_t len);
-
517  #endif
-
518 
-
519 #if !RADIOLIB_GODMODE
-
520  private:
-
521 #endif
-
522  uint32_t csPin = RADIOLIB_NC;
-
523  uint32_t irqPin = RADIOLIB_NC;
-
524  uint32_t rstPin = RADIOLIB_NC;
-
525  uint32_t gpioPin = RADIOLIB_NC;
-
526 
-
527  // RF switch pins and table
-
528  uint32_t rfSwitchPins[RFSWITCH_MAX_PINS] = { RADIOLIB_NC, RADIOLIB_NC, RADIOLIB_NC, RADIOLIB_NC, RADIOLIB_NC };
-
529  const RfSwitchMode_t *rfSwitchTable = nullptr;
-
530 
-
531  #if RADIOLIB_INTERRUPT_TIMING
-
532  uint32_t prevTimingLen = 0;
-
533  #endif
-
534 };
-
535 
-
536 #endif
-
Implements all common low-level methods to control the wireless module. Every module class contains o...
Definition: Module.h:66
-
static const size_t RFSWITCH_MAX_PINS
The maximum number of pins supported by the RF switch code. Note: It is not recommended to use this c...
Definition: Module.h:75
-
int16_t(* SPIcheckStatusCb_t)(Module *mod)
Callback for validation SPI status.
Definition: Module.h:167
+
307  void SPIwriteRegister(uint32_t reg, uint8_t data);
+
308 
+
317  void SPItransfer(uint16_t cmd, uint32_t reg, uint8_t* dataOut, uint8_t* dataIn, size_t numBytes);
+
318 
+
323  int16_t SPIcheckStream();
+
324 
+
334  int16_t SPIreadStream(uint16_t cmd, uint8_t* data, size_t numBytes, bool waitForGpio = true, bool verify = true);
+
335 
+
346  int16_t SPIreadStream(uint8_t* cmd, uint8_t cmdLen, uint8_t* data, size_t numBytes, bool waitForGpio = true, bool verify = true);
+
347 
+
357  int16_t SPIwriteStream(uint16_t cmd, uint8_t* data, size_t numBytes, bool waitForGpio = true, bool verify = true);
+
358 
+
369  int16_t SPIwriteStream(uint8_t* cmd, uint8_t cmdLen, uint8_t* data, size_t numBytes, bool waitForGpio = true, bool verify = true);
+
370 
+
382  int16_t SPItransferStream(const uint8_t* cmd, uint8_t cmdLen, bool write, uint8_t* dataOut, uint8_t* dataIn, size_t numBytes, bool waitForGpio);
+
383 
+
384  // pin number access methods
+
385 
+
390  uint32_t getCs() const { return(csPin); }
+
391 
+
396  uint32_t getIrq() const { return(irqPin); }
+
397 
+
402  uint32_t getRst() const { return(rstPin); }
+
403 
+
408  uint32_t getGpio() const { return(gpioPin); }
+
409 
+
426  void setRfSwitchPins(uint32_t rxEn, uint32_t txEn);
+
427 
+
490  void setRfSwitchTable(const uint32_t (&pins)[RFSWITCH_MAX_PINS], const RfSwitchMode_t table[]);
+
491 
+
499  const RfSwitchMode_t *findRfSwitchMode(uint8_t mode) const;
+
500 
+
505  void setRfSwitchState(uint8_t mode);
+
506 
+
514  void waitForMicroseconds(RadioLibTime_t start, RadioLibTime_t len);
+
515 
+
516  #if RADIOLIB_DEBUG
+
523  void regdump(const char* level, uint16_t start, size_t len);
+
524  #endif
+
525 
+
526 #if !RADIOLIB_GODMODE
+
527  private:
+
528 #endif
+
529  uint32_t csPin = RADIOLIB_NC;
+
530  uint32_t irqPin = RADIOLIB_NC;
+
531  uint32_t rstPin = RADIOLIB_NC;
+
532  uint32_t gpioPin = RADIOLIB_NC;
+
533 
+
534  // RF switch pins and table
+
535  uint32_t rfSwitchPins[RFSWITCH_MAX_PINS] = { RADIOLIB_NC, RADIOLIB_NC, RADIOLIB_NC, RADIOLIB_NC, RADIOLIB_NC };
+
536  const RfSwitchMode_t *rfSwitchTable = nullptr;
+
537 
+
538  #if RADIOLIB_INTERRUPT_TIMING
+
539  uint32_t prevTimingLen = 0;
+
540  #endif
+
541 };
+
542 
+
543 #endif
+
Implements all common low-level methods to control the wireless module. Every module class contains o...
Definition: Module.h:73
+
static const size_t RFSWITCH_MAX_PINS
The maximum number of pins supported by the RF switch code. Note: It is not recommended to use this c...
Definition: Module.h:82
+
int16_t(* SPIcheckStatusCb_t)(Module *mod)
Callback for validation SPI status.
Definition: Module.h:174
void SPIwriteRegisterBurst(uint32_t reg, uint8_t *data, size_t numBytes)
SPI burst write method.
Definition: Module.cpp:137
int16_t SPIgetRegValue(uint32_t reg, uint8_t msb=7, uint8_t lsb=0)
SPI read method that automatically masks unused bits. This method is the preferred SPI read mechanism...
Definition: Module.cpp:49
-
SPIConfig_t spiConfig
SPI configuration structure. The default configuration corresponds to register-access modules,...
Definition: Module.h:207
+
SPIConfig_t spiConfig
SPI configuration structure. The default configuration corresponds to register-access modules,...
Definition: Module.h:214
int16_t SPItransferStream(const uint8_t *cmd, uint8_t cmdLen, bool write, uint8_t *dataOut, uint8_t *dataIn, size_t numBytes, bool waitForGpio)
SPI single transfer method for modules with stream-type SPI interface (SX126x, SX128x etc....
Definition: Module.cpp:310
-
RadioLibHal * hal
Hardware abstraction layer to be used.
Definition: Module.h:161
+
RadioLibHal * hal
Hardware abstraction layer to be used.
Definition: Module.h:168
void term()
Terminate low-level module control.
Definition: Module.cpp:44
Module & operator=(const Module &mod)
Overload for assignment operator.
Definition: Module.cpp:27
-
uint32_t getGpio() const
Access method to get the pin number of second interrupt/GPIO.
Definition: Module.h:401
-
const RfSwitchMode_t * findRfSwitchMode(uint8_t mode) const
Find a mode in the RfSwitchTable.
Definition: Module.cpp:496
-
OpMode_t
Constants to use in a mode table set be setRfSwitchTable. These constants work for most radios,...
Definition: Module.h:98
-
@ MODE_TX
Transmission mode.
Definition: Module.h:112
-
@ MODE_IDLE
Idle mode.
Definition: Module.h:106
-
@ MODE_RX
Receive mode.
Definition: Module.h:109
-
@ MODE_END_OF_TABLE
End of table marker, use END_OF_MODE_TABLE constant instead. Value is zero to ensure zero-initialized...
Definition: Module.h:103
+
uint32_t getGpio() const
Access method to get the pin number of second interrupt/GPIO.
Definition: Module.h:408
+
const RfSwitchMode_t * findRfSwitchMode(uint8_t mode) const
Find a mode in the RfSwitchTable.
Definition: Module.cpp:497
+
OpMode_t
Constants to use in a mode table set be setRfSwitchTable. These constants work for most radios,...
Definition: Module.h:105
+
@ MODE_TX
Transmission mode.
Definition: Module.h:119
+
@ MODE_IDLE
Idle mode.
Definition: Module.h:113
+
@ MODE_RX
Receive mode.
Definition: Module.h:116
+
@ MODE_END_OF_TABLE
End of table marker, use END_OF_MODE_TABLE constant instead. Value is zero to ensure zero-initialized...
Definition: Module.h:110
int16_t SPIcheckStream()
Method to check the result of last SPI stream transfer.
Definition: Module.cpp:287
void SPIwriteRegister(uint32_t reg, uint8_t data)
SPI basic write method. Use of this method is reserved for special cases, SPIsetRegValue should be us...
Definition: Module.cpp:153
void setRfSwitchPins(uint32_t rxEn, uint32_t txEn)
Some modules contain external RF switch controlled by pins. This function gives RadioLib control over...
Definition: Module.cpp:473
void waitForMicroseconds(RadioLibTime_t start, RadioLibTime_t len)
Wait for time to elapse, either using the microsecond timer, or the TimerFlag. Note that in interrupt...
Definition: Module.cpp:440
Module(RadioLibHal *hal, uint32_t cs, uint32_t irq, uint32_t rst, uint32_t gpio=RADIOLIB_NC)
Module constructor.
Definition: Module.cpp:19
-
int16_t(* SPIparseStatusCb_t)(uint8_t in)
Callback for parsing SPI status.
Definition: Module.h:164
-
uint32_t getCs() const
Access method to get the pin number of SPI chip select.
Definition: Module.h:383
+
int16_t(* SPIparseStatusCb_t)(uint8_t in)
Callback for parsing SPI status.
Definition: Module.h:171
+
uint32_t getCs() const
Access method to get the pin number of SPI chip select.
Definition: Module.h:390
void SPItransfer(uint16_t cmd, uint32_t reg, uint8_t *dataOut, uint8_t *dataIn, size_t numBytes)
SPI single transfer method.
Definition: Module.cpp:169
uint8_t SPIreadRegister(uint32_t reg)
SPI basic read method. Use of this method is reserved for special cases, SPIgetRegValue should be use...
Definition: Module.cpp:119
-
uint32_t getIrq() const
Access method to get the pin number of interrupt/GPIO.
Definition: Module.h:389
+
uint32_t getIrq() const
Access method to get the pin number of interrupt/GPIO.
Definition: Module.h:396
void setRfSwitchTable(const uint32_t(&pins)[RFSWITCH_MAX_PINS], const RfSwitchMode_t table[])
Some modules contain external RF switch controlled by pins. This function gives RadioLib control over...
Definition: Module.cpp:489
void SPIreadRegisterBurst(uint32_t reg, size_t numBytes, uint8_t *inBytes)
SPI burst read method.
Definition: Module.cpp:103
void init()
Initialize low-level module control.
Definition: Module.cpp:37
-
uint32_t getRst() const
Access method to get the pin number of hardware reset pin.
Definition: Module.h:395
+
uint32_t getRst() const
Access method to get the pin number of hardware reset pin.
Definition: Module.h:402
int16_t SPIreadStream(uint16_t cmd, uint8_t *data, size_t numBytes, bool waitForGpio=true, bool verify=true)
Method to perform a read transaction with SPI stream.
Definition: Module.cpp:231
int16_t SPIsetRegValue(uint32_t reg, uint8_t value, uint8_t msb=7, uint8_t lsb=0, uint8_t checkInterval=2, uint8_t checkMask=0xFF)
Overwrite-safe SPI write method with verification. This method is the preferred SPI write mechanism.
Definition: Module.cpp:59
int16_t SPIwriteStream(uint16_t cmd, uint8_t *data, size_t numBytes, bool waitForGpio=true, bool verify=true)
Method to perform a write transaction with SPI stream.
Definition: Module.cpp:259
-
void setRfSwitchState(uint8_t mode)
Set RF switch state.
Definition: Module.cpp:506
+
void setRfSwitchState(uint8_t mode)
Set RF switch state.
Definition: Module.cpp:508
Hardware abstraction library base interface.
Definition: Hal.h:13
#define RADIOLIB_ERR_UNKNOWN
There was an unexpected, unknown error. If you see this, something went incredibly wrong....
Definition: TypeDef.h:110
unsigned long RadioLibTime_t
Type used for durations in RadioLib.
Definition: TypeDef.h:642
-
Description of RF switch pin states for a single mode. See setRfSwitchTable for details.
Definition: Module.h:82
-
uint8_t mode
RF switching mode, one of OpMode_t or a custom radio-defined value.
Definition: Module.h:84
-
uint32_t values[RFSWITCH_MAX_PINS]
Output pin values.
Definition: Module.h:87
-
SPI configuration structure.
Definition: Module.h:180
-
bool stream
Whether the SPI module is stream-type (SX126x/8x) or registrer access type (SX127x,...
Definition: Module.h:182
-
RadioLibTime_t timeout
Timeout in ms when waiting for GPIO signals.
Definition: Module.h:203
-
uint16_t cmds[4]
SPI commands.
Definition: Module.h:188
-
uint8_t statusPos
Byte position of status command in SPI stream.
Definition: Module.h:194
-
BitWidth_t widths[3]
Bit widths of SPI addresses, commands and status bytes.
Definition: Module.h:191
-
SPIparseStatusCb_t parseStatusCb
Callback for parsing SPI status.
Definition: Module.h:197
-
SPIcheckStatusCb_t checkStatusCb
Callback for validation SPI status.
Definition: Module.h:200
-
int16_t err
Last recorded SPI error - only updated for modules that return status during SPI transfers.
Definition: Module.h:185
+
Description of RF switch pin states for a single mode. See setRfSwitchTable for details.
Definition: Module.h:89
+
uint8_t mode
RF switching mode, one of OpMode_t or a custom radio-defined value.
Definition: Module.h:91
+
uint32_t values[RFSWITCH_MAX_PINS]
Output pin values.
Definition: Module.h:94
+
SPI configuration structure.
Definition: Module.h:187
+
bool stream
Whether the SPI module is stream-type (SX126x/8x) or registrer access type (SX127x,...
Definition: Module.h:189
+
RadioLibTime_t timeout
Timeout in ms when waiting for GPIO signals.
Definition: Module.h:210
+
uint16_t cmds[4]
SPI commands.
Definition: Module.h:195
+
uint8_t statusPos
Byte position of status command in SPI stream.
Definition: Module.h:201
+
BitWidth_t widths[3]
Bit widths of SPI addresses, commands and status bytes.
Definition: Module.h:198
+
SPIparseStatusCb_t parseStatusCb
Callback for parsing SPI status.
Definition: Module.h:204
+
SPIcheckStatusCb_t checkStatusCb
Callback for validation SPI status.
Definition: Module.h:207
+
int16_t err
Last recorded SPI error - only updated for modules that return status during SPI transfers.
Definition: Module.h:192
diff --git a/_physical_layer_8h_source.html b/_physical_layer_8h_source.html index d9d97873..80911357 100644 --- a/_physical_layer_8h_source.html +++ b/_physical_layer_8h_source.html @@ -391,7 +391,7 @@ $(document).ready(function(){initNavTree('_physical_layer_8h_source.html',''); i
Client for FSK-4 communication. The public interface is the same as Arduino Serial.
Definition: FSK4.h:15
Client for Hellschreiber transmissions.
Definition: Hellschreiber.h:90
LoRaWAN-compatible node (class A device).
Definition: LoRaWAN.h:528
-
Implements all common low-level methods to control the wireless module. Every module class contains o...
Definition: Module.h:66
+
Implements all common low-level methods to control the wireless module. Every module class contains o...
Definition: Module.h:73
Client for Morse Code communication. The public interface is the same as Arduino Serial.
Definition: Morse.h:93
Client for Pager communication.
Definition: Pager.h:62
Provides common interface for protocols that run on LoRa/FSK modules, such as RTTY or LoRaWAN....
Definition: PhysicalLayer.h:151
diff --git a/_r_f69_8h_source.html b/_r_f69_8h_source.html index 032c5f34..e85fa380 100644 --- a/_r_f69_8h_source.html +++ b/_r_f69_8h_source.html @@ -773,8 +773,8 @@ $(document).ready(function(){initNavTree('_r_f69_8h_source.html',''); initResiza
1036 #endif
1037 
1038 #endif
-
Implements all common low-level methods to control the wireless module. Every module class contains o...
Definition: Module.h:66
-
static const size_t RFSWITCH_MAX_PINS
The maximum number of pins supported by the RF switch code. Note: It is not recommended to use this c...
Definition: Module.h:75
+
Implements all common low-level methods to control the wireless module. Every module class contains o...
Definition: Module.h:73
+
static const size_t RFSWITCH_MAX_PINS
The maximum number of pins supported by the RF switch code. Note: It is not recommended to use this c...
Definition: Module.h:82
Provides common interface for protocols that run on LoRa/FSK modules, such as RTTY or LoRaWAN....
Definition: PhysicalLayer.h:151
virtual int16_t readData(uint8_t *data, size_t len)
Reads data that was received after calling startReceive method.
Definition: PhysicalLayer.cpp:206
int16_t transmit(const char *str, uint8_t addr=0)
C-string transmit method.
Definition: PhysicalLayer.cpp:53
@@ -851,7 +851,7 @@ $(document).ready(function(){initNavTree('_r_f69_8h_source.html',''); initResiza
RF69(Module *module)
Default constructor.
Definition: RF69.cpp:5
int16_t setRSSIThreshold(float dbm)
Sets the RSSI value above which the RSSI interrupt is signaled.
Definition: RF69.cpp:926
void setRfSwitchTable(const uint32_t(&pins)[Module::RFSWITCH_MAX_PINS], const Module::RfSwitchMode_t table[])
Some modules contain external RF switch controlled by pins. This function gives RadioLib control over...
Definition: RF69.cpp:936
-
Description of RF switch pin states for a single mode. See setRfSwitchTable for details.
Definition: Module.h:82
+
Description of RF switch pin states for a single mode. See setRfSwitchTable for details.
Definition: Module.h:89
diff --git a/_s_t_m32_w_lx_8h_source.html b/_s_t_m32_w_lx_8h_source.html index 6108d03c..ce9d1a1d 100644 --- a/_s_t_m32_w_lx_8h_source.html +++ b/_s_t_m32_w_lx_8h_source.html @@ -161,10 +161,10 @@ $(document).ready(function(){initNavTree('_s_t_m32_w_lx_8h_source.html',''); ini
166 #endif
167 
168 #endif
-
@ MODE_TX
Transmission mode.
Definition: Module.h:112
-
@ MODE_IDLE
Idle mode.
Definition: Module.h:106
-
@ MODE_RX
Receive mode.
Definition: Module.h:109
-
@ MODE_END_OF_TABLE
End of table marker, use END_OF_MODE_TABLE constant instead. Value is zero to ensure zero-initialized...
Definition: Module.h:103
+
@ MODE_TX
Transmission mode.
Definition: Module.h:119
+
@ MODE_IDLE
Idle mode.
Definition: Module.h:113
+
@ MODE_RX
Receive mode.
Definition: Module.h:116
+
@ MODE_END_OF_TABLE
End of table marker, use END_OF_MODE_TABLE constant instead. Value is zero to ensure zero-initialized...
Definition: Module.h:110
Definition: STM32WLx_Module.h:26
Derived class for STM32WL modules.
Definition: STM32WLx.h:33
void setChannelScanAction(void(*func)(void)) override
Sets interrupt service routine to call when a channel scan is finished.
Definition: STM32WLx.cpp:146
diff --git a/_s_t_m32_w_lx___module_8h_source.html b/_s_t_m32_w_lx___module_8h_source.html index 549b368f..6c0ef84a 100644 --- a/_s_t_m32_w_lx___module_8h_source.html +++ b/_s_t_m32_w_lx___module_8h_source.html @@ -115,7 +115,7 @@ $(document).ready(function(){initNavTree('_s_t_m32_w_lx___module_8h_source.html'
36 #endif
37 
38 #endif
-
Implements all common low-level methods to control the wireless module. Every module class contains o...
Definition: Module.h:66
+
Implements all common low-level methods to control the wireless module. Every module class contains o...
Definition: Module.h:73
Definition: STM32WLx_Module.h:26
diff --git a/_s_x1231_8h_source.html b/_s_x1231_8h_source.html index cb0b33f6..db0840aa 100644 --- a/_s_x1231_8h_source.html +++ b/_s_x1231_8h_source.html @@ -189,7 +189,7 @@ $(document).ready(function(){initNavTree('_s_x1231_8h_source.html',''); initResi
119 #endif
120 
121 #endif
-
Implements all common low-level methods to control the wireless module. Every module class contains o...
Definition: Module.h:66
+
Implements all common low-level methods to control the wireless module. Every module class contains o...
Definition: Module.h:73
Control class for RF69 module. Also serves as base class for SX1231.
Definition: RF69.h:479
Control class for SX1231 module. Overrides some methods from RF69 due to different register values.
Definition: SX1231.h:93
int16_t begin(float freq=434.0, float br=4.8, float freqDev=5.0, float rxBw=125.0, int8_t power=10, uint8_t preambleLen=16)
Initialization method.
Definition: SX1231.cpp:8
diff --git a/_s_x1233_8h_source.html b/_s_x1233_8h_source.html index 1aa8c0ce..d5c5ae6d 100644 --- a/_s_x1233_8h_source.html +++ b/_s_x1233_8h_source.html @@ -121,7 +121,7 @@ $(document).ready(function(){initNavTree('_s_x1233_8h_source.html',''); initResi
59 #endif
60 
61 #endif
-
Implements all common low-level methods to control the wireless module. Every module class contains o...
Definition: Module.h:66
+
Implements all common low-level methods to control the wireless module. Every module class contains o...
Definition: Module.h:73
Control class for SX1231 module. Overrides some methods from RF69 due to different register values.
Definition: SX1231.h:93
Control class for SX1233 module. Overrides some methods from SX1231/RF69 due to different register va...
Definition: SX1233.h:23
int16_t begin(float freq=434.0, float br=4.8, float freqDev=5.0, float rxBw=125.0, int8_t power=10, uint8_t preambleLen=16)
Initialization method.
Definition: SX1233.cpp:9
diff --git a/_s_x1261_8h_source.html b/_s_x1261_8h_source.html index ad571d4a..1373819e 100644 --- a/_s_x1261_8h_source.html +++ b/_s_x1261_8h_source.html @@ -120,7 +120,7 @@ $(document).ready(function(){initNavTree('_s_x1261_8h_source.html',''); initResi
51 #endif
52 
53 #endif
-
Implements all common low-level methods to control the wireless module. Every module class contains o...
Definition: Module.h:66
+
Implements all common low-level methods to control the wireless module. Every module class contains o...
Definition: Module.h:73
Derived class for SX1261 modules.
Definition: SX1261.h:22
int16_t setOutputPower(int8_t power) override
Sets output power. Allowed values are in range from -17 to 14 dBm.
Definition: SX1261.cpp:8
SX1261(Module *mod)
Default constructor.
Definition: SX1261.cpp:4
diff --git a/_s_x1262_8h_source.html b/_s_x1262_8h_source.html index 4c1440af..96fe8ccb 100644 --- a/_s_x1262_8h_source.html +++ b/_s_x1262_8h_source.html @@ -136,7 +136,7 @@ $(document).ready(function(){initNavTree('_s_x1262_8h_source.html',''); initResi
131 #endif
132 
133 #endif
-
Implements all common low-level methods to control the wireless module. Every module class contains o...
Definition: Module.h:66
+
Implements all common low-level methods to control the wireless module. Every module class contains o...
Definition: Module.h:73
Derived class for SX1262 modules.
Definition: SX1262.h:22
SX1262(Module *mod)
Default constructor.
Definition: SX1262.cpp:6
int16_t setFrequency(float freq) override
Sets carrier frequency. Allowed values are in range from 150.0 to 960.0 MHz. Will automatically perfo...
Definition: SX1262.cpp:70
diff --git a/_s_x1268_8h_source.html b/_s_x1268_8h_source.html index b3f582d1..db0072df 100644 --- a/_s_x1268_8h_source.html +++ b/_s_x1268_8h_source.html @@ -135,7 +135,7 @@ $(document).ready(function(){initNavTree('_s_x1268_8h_source.html',''); initResi
129 #endif
130 
131 #endif
-
Implements all common low-level methods to control the wireless module. Every module class contains o...
Definition: Module.h:66
+
Implements all common low-level methods to control the wireless module. Every module class contains o...
Definition: Module.h:73
Derived class for SX1268 modules.
Definition: SX1268.h:21
int16_t beginLRFHSS(float freq=434.0, uint8_t bw=RADIOLIB_SX126X_LR_FHSS_BW_722_66, uint8_t cr=RADIOLIB_SX126X_LR_FHSS_CR_2_3, bool narrowGrid=true, int8_t power=10, float tcxoVoltage=1.6, bool useRegulatorLDO=false)
Initialization method for LR-FHSS modem. This modem only supports transmission!
Definition: SX1268.cpp:52
int16_t setOutputPower(int8_t power) override
Sets output power. Allowed values are in range from -9 to 22 dBm.
Definition: SX1268.cpp:88
diff --git a/_s_x126x_8h_source.html b/_s_x126x_8h_source.html index c91bc439..bd862b21 100644 --- a/_s_x126x_8h_source.html +++ b/_s_x126x_8h_source.html @@ -878,9 +878,9 @@ $(document).ready(function(){initNavTree('_s_x126x_8h_source.html',''); initResi
1335 #endif
1336 
1337 #endif
-
Implements all common low-level methods to control the wireless module. Every module class contains o...
Definition: Module.h:66
-
static const size_t RFSWITCH_MAX_PINS
The maximum number of pins supported by the RF switch code. Note: It is not recommended to use this c...
Definition: Module.h:75
-
@ MODE_TX
Transmission mode.
Definition: Module.h:112
+
Implements all common low-level methods to control the wireless module. Every module class contains o...
Definition: Module.h:73
+
static const size_t RFSWITCH_MAX_PINS
The maximum number of pins supported by the RF switch code. Note: It is not recommended to use this c...
Definition: Module.h:82
+
@ MODE_TX
Transmission mode.
Definition: Module.h:119
Provides common interface for protocols that run on LoRa/FSK modules, such as RTTY or LoRaWAN....
Definition: PhysicalLayer.h:151
virtual int16_t readData(uint8_t *data, size_t len)
Reads data that was received after calling startReceive method.
Definition: PhysicalLayer.cpp:206
int16_t transmit(const char *str, uint8_t addr=0)
C-string transmit method.
Definition: PhysicalLayer.cpp:53
@@ -977,7 +977,7 @@ $(document).ready(function(){initNavTree('_s_x126x_8h_source.html',''); initResi
int16_t getChannelScanResult() override
Read the channel scan result.
Definition: SX126x.cpp:835
unsigned long RadioLibTime_t
Type used for durations in RadioLib.
Definition: TypeDef.h:642
uint32_t RadioLibIrqFlags_t
Type used for radio-agnostic IRQ flags. IRQ to enable corresponds to the bit index (RadioLibIrq_t)....
Definition: TypeDef.h:648
-
Description of RF switch pin states for a single mode. See setRfSwitchTable for details.
Definition: Module.h:82
+
Description of RF switch pin states for a single mode. See setRfSwitchTable for details.
Definition: Module.h:89
Common channel scan configuration structure.
Definition: PhysicalLayer.h:125
Common data rate structure.
Definition: PhysicalLayer.h:74
diff --git a/_s_x1272_8h_source.html b/_s_x1272_8h_source.html index 41ac80e2..653c1f3c 100644 --- a/_s_x1272_8h_source.html +++ b/_s_x1272_8h_source.html @@ -257,7 +257,7 @@ $(document).ready(function(){initNavTree('_s_x1272_8h_source.html',''); initResi
332 #endif
333 
334 #endif
-
Implements all common low-level methods to control the wireless module. Every module class contains o...
Definition: Module.h:66
+
Implements all common low-level methods to control the wireless module. Every module class contains o...
Definition: Module.h:73
Derived class for SX1272 modules. Also used as base class for SX1273. Both modules use the same basic...
Definition: SX1272.h:94
void reset() override
Reset method. Will reset the chip to the default state using RST pin.
Definition: SX1272.cpp:76
int16_t setBandwidth(float bw)
Sets LoRa link bandwidth. Allowed values are 125, 250 and 500 kHz. Only available in LoRa mode.
Definition: SX1272.cpp:96
diff --git a/_s_x1273_8h_source.html b/_s_x1273_8h_source.html index 561e8ec1..6d5d0bdd 100644 --- a/_s_x1273_8h_source.html +++ b/_s_x1273_8h_source.html @@ -125,7 +125,7 @@ $(document).ready(function(){initNavTree('_s_x1273_8h_source.html',''); initResi
80 #endif
81 
82 #endif
-
Implements all common low-level methods to control the wireless module. Every module class contains o...
Definition: Module.h:66
+
Implements all common low-level methods to control the wireless module. Every module class contains o...
Definition: Module.h:73
Derived class for SX1272 modules. Also used as base class for SX1273. Both modules use the same basic...
Definition: SX1272.h:94
Derived class for SX1273 modules. Overrides some methods from SX1272 due to different parameter range...
Definition: SX1273.h:14
int16_t begin(float freq=915.0, float bw=125.0, uint8_t sf=9, uint8_t cr=7, uint8_t syncWord=RADIOLIB_SX127X_SYNC_WORD, int8_t power=10, uint16_t preambleLength=8, uint8_t gain=0)
LoRa modem initialization method. Must be called at least once from Arduino sketch to initialize the ...
Definition: SX1273.cpp:8
diff --git a/_s_x1276_8h_source.html b/_s_x1276_8h_source.html index 7853c80c..94309474 100644 --- a/_s_x1276_8h_source.html +++ b/_s_x1276_8h_source.html @@ -128,7 +128,7 @@ $(document).ready(function(){initNavTree('_s_x1276_8h_source.html',''); initResi
92 #endif
93 
94 #endif
-
Implements all common low-level methods to control the wireless module. Every module class contains o...
Definition: Module.h:66
+
Implements all common low-level methods to control the wireless module. Every module class contains o...
Definition: Module.h:73
Only exists as alias for SX1276, since there seems to be no difference between RFM95 and SX1276 modul...
Only exists as alias for SX1276, since there seems to be no difference between RFM96 and SX1276 modul...
Derived class for SX1276 modules. Overrides some methods from SX1278 due to different parameter range...
Definition: SX1276.h:14
diff --git a/_s_x1277_8h_source.html b/_s_x1277_8h_source.html index 39140983..8e877164 100644 --- a/_s_x1277_8h_source.html +++ b/_s_x1277_8h_source.html @@ -131,7 +131,7 @@ $(document).ready(function(){initNavTree('_s_x1277_8h_source.html',''); initResi
107 #endif
108 
109 #endif
-
Implements all common low-level methods to control the wireless module. Every module class contains o...
Definition: Module.h:66
+
Implements all common low-level methods to control the wireless module. Every module class contains o...
Definition: Module.h:73
Only exists as alias for SX1277, since there seems to be no difference between RFM97 and SX1277 modul...
Derived class for SX1277 modules. Overrides some methods from SX1278 due to different parameter range...
Definition: SX1277.h:14
int16_t setSpreadingFactor(uint8_t sf)
Sets LoRa link spreading factor. Allowed values range from 6 to 9. Only available in LoRa mode.
Definition: SX1277.cpp:82
diff --git a/_s_x1278_8h_source.html b/_s_x1278_8h_source.html index 86c6b7ab..1f2a11c1 100644 --- a/_s_x1278_8h_source.html +++ b/_s_x1278_8h_source.html @@ -270,7 +270,7 @@ $(document).ready(function(){initNavTree('_s_x1278_8h_source.html',''); initResi
350 #endif
351 
352 #endif
-
Implements all common low-level methods to control the wireless module. Every module class contains o...
Definition: Module.h:66
+
Implements all common low-level methods to control the wireless module. Every module class contains o...
Definition: Module.h:73
Only exists as alias for SX1278, since there seems to be no difference between RFM98 and SX1278 modul...
Derived class for SX1278 modules. Also used as base class for SX1276, SX1277, SX1279,...
Definition: SX1278.h:105
SX1278(Module *mod)
Default constructor. Called from Arduino sketch when creating new LoRa instance.
Definition: SX1278.cpp:5
diff --git a/_s_x1279_8h_source.html b/_s_x1279_8h_source.html index edfc60df..8db2ba83 100644 --- a/_s_x1279_8h_source.html +++ b/_s_x1279_8h_source.html @@ -123,7 +123,7 @@ $(document).ready(function(){initNavTree('_s_x1279_8h_source.html',''); initResi
80 #endif
81 
82 #endif
-
Implements all common low-level methods to control the wireless module. Every module class contains o...
Definition: Module.h:66
+
Implements all common low-level methods to control the wireless module. Every module class contains o...
Definition: Module.h:73
Derived class for SX1278 modules. Also used as base class for SX1276, SX1277, SX1279,...
Definition: SX1278.h:105
Derived class for SX1279 modules. Overrides some methods from SX1278 due to different parameter range...
Definition: SX1279.h:14
int16_t begin(float freq=434.0, float bw=125.0, uint8_t sf=9, uint8_t cr=7, uint8_t syncWord=RADIOLIB_SX127X_SYNC_WORD, int8_t power=10, uint16_t preambleLength=8, uint8_t gain=0)
LoRa modem initialization method. Must be called at least once from Arduino sketch to initialize the ...
Definition: SX1279.cpp:8
diff --git a/_s_x127x_8h_source.html b/_s_x127x_8h_source.html index b172abf7..fbf888b8 100644 --- a/_s_x127x_8h_source.html +++ b/_s_x127x_8h_source.html @@ -912,8 +912,8 @@ $(document).ready(function(){initNavTree('_s_x127x_8h_source.html',''); initResi
1280 #endif
1281 
1282 #endif
-
Implements all common low-level methods to control the wireless module. Every module class contains o...
Definition: Module.h:66
-
static const size_t RFSWITCH_MAX_PINS
The maximum number of pins supported by the RF switch code. Note: It is not recommended to use this c...
Definition: Module.h:75
+
Implements all common low-level methods to control the wireless module. Every module class contains o...
Definition: Module.h:73
+
static const size_t RFSWITCH_MAX_PINS
The maximum number of pins supported by the RF switch code. Note: It is not recommended to use this c...
Definition: Module.h:82
Provides common interface for protocols that run on LoRa/FSK modules, such as RTTY or LoRaWAN....
Definition: PhysicalLayer.h:151
virtual int16_t readData(uint8_t *data, size_t len)
Reads data that was received after calling startReceive method.
Definition: PhysicalLayer.cpp:206
int16_t transmit(const char *str, uint8_t addr=0)
C-string transmit method.
Definition: PhysicalLayer.cpp:53
@@ -1011,7 +1011,7 @@ $(document).ready(function(){initNavTree('_s_x127x_8h_source.html',''); initResi
int16_t disableAddressFiltering()
Disables FSK address filtering.
Definition: SX127x.cpp:1108
unsigned long RadioLibTime_t
Type used for durations in RadioLib.
Definition: TypeDef.h:642
uint32_t RadioLibIrqFlags_t
Type used for radio-agnostic IRQ flags. IRQ to enable corresponds to the bit index (RadioLibIrq_t)....
Definition: TypeDef.h:648
-
Description of RF switch pin states for a single mode. See setRfSwitchTable for details.
Definition: Module.h:82
+
Description of RF switch pin states for a single mode. See setRfSwitchTable for details.
Definition: Module.h:89
diff --git a/_s_x1280_8h_source.html b/_s_x1280_8h_source.html index 7039fc90..a812e3c6 100644 --- a/_s_x1280_8h_source.html +++ b/_s_x1280_8h_source.html @@ -116,7 +116,7 @@ $(document).ready(function(){initNavTree('_s_x1280_8h_source.html',''); initResi
54 #endif
55 
56 #endif
-
Implements all common low-level methods to control the wireless module. Every module class contains o...
Definition: Module.h:66
+
Implements all common low-level methods to control the wireless module. Every module class contains o...
Definition: Module.h:73
Derived class for SX1280 modules.
Definition: SX1280.h:16
SX1280(Module *mod)
Default constructor.
Definition: SX1280.cpp:5
int16_t range(bool master, uint32_t addr, uint16_t calTable[3][6]=NULL)
Blocking ranging method.
Definition: SX1280.cpp:9
diff --git a/_s_x1281_8h_source.html b/_s_x1281_8h_source.html index f7cc3bd2..8f128d40 100644 --- a/_s_x1281_8h_source.html +++ b/_s_x1281_8h_source.html @@ -109,7 +109,7 @@ $(document).ready(function(){initNavTree('_s_x1281_8h_source.html',''); initResi
29 #endif
30 
31 #endif
-
Implements all common low-level methods to control the wireless module. Every module class contains o...
Definition: Module.h:66
+
Implements all common low-level methods to control the wireless module. Every module class contains o...
Definition: Module.h:73
Derived class for SX1281 modules.
Definition: SX1281.h:15
SX1281(Module *mod)
Default constructor.
Definition: SX1281.cpp:4
Base class for SX128x series. All derived classes for SX128x (e.g. SX1280 or SX1281) inherit from thi...
Definition: SX128x.h:351
diff --git a/_s_x1282_8h_source.html b/_s_x1282_8h_source.html index c1d79a25..57c6878f 100644 --- a/_s_x1282_8h_source.html +++ b/_s_x1282_8h_source.html @@ -110,7 +110,7 @@ $(document).ready(function(){initNavTree('_s_x1282_8h_source.html',''); initResi
30 #endif
31 
32 #endif
-
Implements all common low-level methods to control the wireless module. Every module class contains o...
Definition: Module.h:66
+
Implements all common low-level methods to control the wireless module. Every module class contains o...
Definition: Module.h:73
Derived class for SX1280 modules.
Definition: SX1280.h:16
Derived class for SX1282 modules.
Definition: SX1282.h:16
SX1282(Module *mod)
Default constructor.
Definition: SX1282.cpp:5
diff --git a/_s_x128x_8h_source.html b/_s_x128x_8h_source.html index cae7a74b..64d4c82b 100644 --- a/_s_x128x_8h_source.html +++ b/_s_x128x_8h_source.html @@ -652,8 +652,8 @@ $(document).ready(function(){initNavTree('_s_x128x_8h_source.html',''); initResi
943 #endif
944 
945 #endif
-
Implements all common low-level methods to control the wireless module. Every module class contains o...
Definition: Module.h:66
-
static const size_t RFSWITCH_MAX_PINS
The maximum number of pins supported by the RF switch code. Note: It is not recommended to use this c...
Definition: Module.h:75
+
Implements all common low-level methods to control the wireless module. Every module class contains o...
Definition: Module.h:73
+
static const size_t RFSWITCH_MAX_PINS
The maximum number of pins supported by the RF switch code. Note: It is not recommended to use this c...
Definition: Module.h:82
Provides common interface for protocols that run on LoRa/FSK modules, such as RTTY or LoRaWAN....
Definition: PhysicalLayer.h:151
virtual int16_t readData(uint8_t *data, size_t len)
Reads data that was received after calling startReceive method.
Definition: PhysicalLayer.cpp:206
int16_t transmit(const char *str, uint8_t addr=0)
C-string transmit method.
Definition: PhysicalLayer.cpp:53
@@ -725,7 +725,7 @@ $(document).ready(function(){initNavTree('_s_x128x_8h_source.html',''); initResi
#define RADIOLIB_SHAPING_0_5
Gaussian shaping filter, BT = 0.5.
Definition: TypeDef.h:27
unsigned long RadioLibTime_t
Type used for durations in RadioLib.
Definition: TypeDef.h:642
uint32_t RadioLibIrqFlags_t
Type used for radio-agnostic IRQ flags. IRQ to enable corresponds to the bit index (RadioLibIrq_t)....
Definition: TypeDef.h:648
-
Description of RF switch pin states for a single mode. See setRfSwitchTable for details.
Definition: Module.h:82
+
Description of RF switch pin states for a single mode. See setRfSwitchTable for details.
Definition: Module.h:89
Common channel scan configuration structure.
Definition: PhysicalLayer.h:125
Common data rate structure.
Definition: PhysicalLayer.h:74
diff --git a/_si4430_8h_source.html b/_si4430_8h_source.html index cdf77389..b4e0a825 100644 --- a/_si4430_8h_source.html +++ b/_si4430_8h_source.html @@ -125,7 +125,7 @@ $(document).ready(function(){initNavTree('_si4430_8h_source.html',''); initResiz
65 #endif
66 
67 #endif
-
Implements all common low-level methods to control the wireless module. Every module class contains o...
Definition: Module.h:66
+
Implements all common low-level methods to control the wireless module. Every module class contains o...
Definition: Module.h:73
Derived class for Si4430 modules.
Definition: Si4430.h:15
int16_t setFrequency(float freq) override
Sets carrier frequency. Allowed values range from 900.0 MHz to 960.0 MHz.
Definition: Si4430.cpp:24
int16_t begin(float freq=434.0, float br=4.8, float freqDev=5.0, float rxBw=181.1, int8_t power=10, uint8_t preambleLen=16)
Initialization method. Must be called at least once from Arduino sketch to initialize the module.
Definition: Si4430.cpp:8
diff --git a/_si4431_8h_source.html b/_si4431_8h_source.html index 889beab2..77e9e2be 100644 --- a/_si4431_8h_source.html +++ b/_si4431_8h_source.html @@ -123,7 +123,7 @@ $(document).ready(function(){initNavTree('_si4431_8h_source.html',''); initResiz
58 #endif
59 
60 #endif
-
Implements all common low-level methods to control the wireless module. Every module class contains o...
Definition: Module.h:66
+
Implements all common low-level methods to control the wireless module. Every module class contains o...
Definition: Module.h:73
Derived class for Si4431 modules.
Definition: Si4431.h:15
Si4431(Module *mod)
Default constructor.
Definition: Si4431.cpp:4
int16_t begin(float freq=434.0, float br=4.8, float freqDev=5.0, float rxBw=181.1, int8_t power=10, uint8_t preambleLen=16)
Initialization method. Must be called at least once from Arduino sketch to initialize the module.
Definition: Si4431.cpp:8
diff --git a/_si4432_8h_source.html b/_si4432_8h_source.html index ef99350a..817c957d 100644 --- a/_si4432_8h_source.html +++ b/_si4432_8h_source.html @@ -125,7 +125,7 @@ $(document).ready(function(){initNavTree('_si4432_8h_source.html',''); initResiz
65 #endif
66 
67 #endif
-
Implements all common low-level methods to control the wireless module. Every module class contains o...
Definition: Module.h:66
+
Implements all common low-level methods to control the wireless module. Every module class contains o...
Definition: Module.h:73
Derived class for Si4432 modules.
Definition: Si4432.h:15
int16_t setOutputPower(int8_t power) override
Sets output power. Allowed values range from -1 to 20 dBm in 3 dBm steps.
Definition: Si4432.cpp:31
int16_t begin(float freq=434.0, float br=4.8, float freqDev=5.0, float rxBw=181.1, int8_t power=10, uint8_t preambleLen=16)
Initialization method. Must be called at least once from Arduino sketch to initialize the module.
Definition: Si4432.cpp:8
diff --git a/_si443x_8h_source.html b/_si443x_8h_source.html index 7038e953..9a266da1 100644 --- a/_si443x_8h_source.html +++ b/_si443x_8h_source.html @@ -762,8 +762,8 @@ $(document).ready(function(){initNavTree('_si443x_8h_source.html',''); initResiz
858 #endif
859 
860 #endif
-
Implements all common low-level methods to control the wireless module. Every module class contains o...
Definition: Module.h:66
-
static const size_t RFSWITCH_MAX_PINS
The maximum number of pins supported by the RF switch code. Note: It is not recommended to use this c...
Definition: Module.h:75
+
Implements all common low-level methods to control the wireless module. Every module class contains o...
Definition: Module.h:73
+
static const size_t RFSWITCH_MAX_PINS
The maximum number of pins supported by the RF switch code. Note: It is not recommended to use this c...
Definition: Module.h:82
Provides common interface for protocols that run on LoRa/FSK modules, such as RTTY or LoRaWAN....
Definition: PhysicalLayer.h:151
virtual int16_t readData(uint8_t *data, size_t len)
Reads data that was received after calling startReceive method.
Definition: PhysicalLayer.cpp:206
int16_t transmit(const char *str, uint8_t addr=0)
C-string transmit method.
Definition: PhysicalLayer.cpp:53
@@ -806,7 +806,7 @@ $(document).ready(function(){initNavTree('_si443x_8h_source.html',''); initResiz
int16_t setSyncWord(uint8_t *syncWord, size_t len) override
Sets sync word. Up to 4 bytes can be set as sync word.
Definition: Si443x.cpp:506
void setPacketSentAction(void(*func)(void)) override
Sets interrupt service routine to call when a packet is sent.
Definition: Si443x.cpp:221
int16_t setBitRate(float br) override
Sets FSK bit rate. Allowed values range from 0.123 to 256.0 kbps.
Definition: Si443x.cpp:345
-
Description of RF switch pin states for a single mode. See setRfSwitchTable for details.
Definition: Module.h:82
+
Description of RF switch pin states for a single mode. See setRfSwitchTable for details.
Definition: Module.h:89
diff --git a/class_c_c1101.html b/class_c_c1101.html index 1675f55d..aeee855b 100644 --- a/class_c_c1101.html +++ b/class_c_c1101.html @@ -1930,10 +1930,10 @@ virtual void  radio.setRfSwitchTable(rfswitch_pins, rfswitch_table);
...
}
-
@ MODE_TX
Transmission mode.
Definition: Module.h:112
-
@ MODE_IDLE
Idle mode.
Definition: Module.h:106
-
@ MODE_RX
Receive mode.
Definition: Module.h:109
-
Description of RF switch pin states for a single mode. See setRfSwitchTable for details.
Definition: Module.h:82
+
@ MODE_TX
Transmission mode.
Definition: Module.h:119
+
@ MODE_IDLE
Idle mode.
Definition: Module.h:113
+
@ MODE_RX
Receive mode.
Definition: Module.h:116
+
Description of RF switch pin states for a single mode. See setRfSwitchTable for details.
Definition: Module.h:89
diff --git a/class_l_r11x0.html b/class_l_r11x0.html index f37af023..608aaac5 100644 --- a/class_l_r11x0.html +++ b/class_l_r11x0.html @@ -2759,10 +2759,10 @@ bool  radio.setRfSwitchTable(rfswitch_pins, rfswitch_table);
...
}
-
@ MODE_TX
Transmission mode.
Definition: Module.h:112
-
@ MODE_IDLE
Idle mode.
Definition: Module.h:106
-
@ MODE_RX
Receive mode.
Definition: Module.h:109
-
Description of RF switch pin states for a single mode. See setRfSwitchTable for details.
Definition: Module.h:82
+
@ MODE_TX
Transmission mode.
Definition: Module.h:119
+
@ MODE_IDLE
Idle mode.
Definition: Module.h:113
+
@ MODE_RX
Receive mode.
Definition: Module.h:116
+
Description of RF switch pin states for a single mode. See setRfSwitchTable for details.
Definition: Module.h:89
diff --git a/class_module.html b/class_module.html index c3060532..8c759b28 100644 --- a/class_module.html +++ b/class_module.html @@ -647,10 +647,10 @@ static const size_t  radio.setRfSwitchTable(rfswitch_pins, rfswitch_table);
...
}
-
@ MODE_TX
Transmission mode.
Definition: Module.h:112
-
@ MODE_IDLE
Idle mode.
Definition: Module.h:106
-
@ MODE_RX
Receive mode.
Definition: Module.h:109
-
Description of RF switch pin states for a single mode. See setRfSwitchTable for details.
Definition: Module.h:82
+
@ MODE_TX
Transmission mode.
Definition: Module.h:119
+
@ MODE_IDLE
Idle mode.
Definition: Module.h:113
+
@ MODE_RX
Receive mode.
Definition: Module.h:116
+
Description of RF switch pin states for a single mode. See setRfSwitchTable for details.
Definition: Module.h:89
diff --git a/class_r_f69.html b/class_r_f69.html index 10ae576d..6d176de4 100644 --- a/class_r_f69.html +++ b/class_r_f69.html @@ -2159,10 +2159,10 @@ virtual void  radio.setRfSwitchTable(rfswitch_pins, rfswitch_table);
...
}
-
@ MODE_TX
Transmission mode.
Definition: Module.h:112
-
@ MODE_IDLE
Idle mode.
Definition: Module.h:106
-
@ MODE_RX
Receive mode.
Definition: Module.h:109
-
Description of RF switch pin states for a single mode. See setRfSwitchTable for details.
Definition: Module.h:82
+
@ MODE_TX
Transmission mode.
Definition: Module.h:119
+
@ MODE_IDLE
Idle mode.
Definition: Module.h:113
+
@ MODE_RX
Receive mode.
Definition: Module.h:116
+
Description of RF switch pin states for a single mode. See setRfSwitchTable for details.
Definition: Module.h:89
diff --git a/class_s_x126x.html b/class_s_x126x.html index c9b504de..183f1ae7 100644 --- a/class_s_x126x.html +++ b/class_s_x126x.html @@ -2688,10 +2688,10 @@ bool  radio.setRfSwitchTable(rfswitch_pins, rfswitch_table);
...
}
-
@ MODE_TX
Transmission mode.
Definition: Module.h:112
-
@ MODE_IDLE
Idle mode.
Definition: Module.h:106
-
@ MODE_RX
Receive mode.
Definition: Module.h:109
-
Description of RF switch pin states for a single mode. See setRfSwitchTable for details.
Definition: Module.h:82
+
@ MODE_TX
Transmission mode.
Definition: Module.h:119
+
@ MODE_IDLE
Idle mode.
Definition: Module.h:113
+
@ MODE_RX
Receive mode.
Definition: Module.h:116
+
Description of RF switch pin states for a single mode. See setRfSwitchTable for details.
Definition: Module.h:89
diff --git a/class_s_x127x.html b/class_s_x127x.html index 9af0231b..003a9cfe 100644 --- a/class_s_x127x.html +++ b/class_s_x127x.html @@ -2679,10 +2679,10 @@ void  radio.setRfSwitchTable(rfswitch_pins, rfswitch_table);
...
}
-
@ MODE_TX
Transmission mode.
Definition: Module.h:112
-
@ MODE_IDLE
Idle mode.
Definition: Module.h:106
-
@ MODE_RX
Receive mode.
Definition: Module.h:109
-
Description of RF switch pin states for a single mode. See setRfSwitchTable for details.
Definition: Module.h:82
+
@ MODE_TX
Transmission mode.
Definition: Module.h:119
+
@ MODE_IDLE
Idle mode.
Definition: Module.h:113
+
@ MODE_RX
Receive mode.
Definition: Module.h:116
+
Description of RF switch pin states for a single mode. See setRfSwitchTable for details.
Definition: Module.h:89
diff --git a/class_s_x128x.html b/class_s_x128x.html index 9f7a8992..c54ce4f2 100644 --- a/class_s_x128x.html +++ b/class_s_x128x.html @@ -2362,10 +2362,10 @@ virtual void  radio.setRfSwitchTable(rfswitch_pins, rfswitch_table);
...
}
-
@ MODE_TX
Transmission mode.
Definition: Module.h:112
-
@ MODE_IDLE
Idle mode.
Definition: Module.h:106
-
@ MODE_RX
Receive mode.
Definition: Module.h:109
-
Description of RF switch pin states for a single mode. See setRfSwitchTable for details.
Definition: Module.h:82
+
@ MODE_TX
Transmission mode.
Definition: Module.h:119
+
@ MODE_IDLE
Idle mode.
Definition: Module.h:113
+
@ MODE_RX
Receive mode.
Definition: Module.h:116
+
Description of RF switch pin states for a single mode. See setRfSwitchTable for details.
Definition: Module.h:89
diff --git a/class_si443x.html b/class_si443x.html index 309c9a3c..4614469f 100644 --- a/class_si443x.html +++ b/class_si443x.html @@ -1239,10 +1239,10 @@ virtual void  radio.setRfSwitchTable(rfswitch_pins, rfswitch_table);
...
}
-
@ MODE_TX
Transmission mode.
Definition: Module.h:112
-
@ MODE_IDLE
Idle mode.
Definition: Module.h:106
-
@ MODE_RX
Receive mode.
Definition: Module.h:109
-
Description of RF switch pin states for a single mode. See setRfSwitchTable for details.
Definition: Module.h:82
+
@ MODE_TX
Transmission mode.
Definition: Module.h:119
+
@ MODE_IDLE
Idle mode.
Definition: Module.h:113
+
@ MODE_RX
Receive mode.
Definition: Module.h:116
+
Description of RF switch pin states for a single mode. See setRfSwitchTable for details.
Definition: Module.h:89
diff --git a/n_r_f24_8h_source.html b/n_r_f24_8h_source.html index 30c096e3..92d96316 100644 --- a/n_r_f24_8h_source.html +++ b/n_r_f24_8h_source.html @@ -381,7 +381,7 @@ $(document).ready(function(){initNavTree('n_r_f24_8h_source.html',''); initResiz
489 };
490 
491 #endif
-
Implements all common low-level methods to control the wireless module. Every module class contains o...
Definition: Module.h:66
+
Implements all common low-level methods to control the wireless module. Every module class contains o...
Definition: Module.h:73
Provides common interface for protocols that run on LoRa/FSK modules, such as RTTY or LoRaWAN....
Definition: PhysicalLayer.h:151
virtual int16_t readData(uint8_t *data, size_t len)
Reads data that was received after calling startReceive method.
Definition: PhysicalLayer.cpp:206
int16_t transmit(const char *str, uint8_t addr=0)
C-string transmit method.
Definition: PhysicalLayer.cpp:53