diff --git a/_l_r1110_8h_source.html b/_l_r1110_8h_source.html index a2f29629..e89751e6 100644 --- a/_l_r1110_8h_source.html +++ b/_l_r1110_8h_source.html @@ -139,7 +139,7 @@ $(document).ready(function(){initNavTree('_l_r1110_8h_source.html',''); initResi
LR1110::setFrequency
int16_t setFrequency(float freq) override
Sets carrier frequency. Allowed values are in range from 150.0 to 960.0 MHz. Will also perform calibr...
Definition: LR1110.cpp:47
LR1110::checkOutputPower
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:87
LR1110::beginGFSK
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:21
-
LR11x0
Base class for LR11x0 series. All derived classes for LR11x0 (e.g. LR1110 or LR1120) inherit from thi...
Definition: LR11x0.h:720
+
LR11x0
Base class for LR11x0 series. All derived classes for LR11x0 (e.g. LR1110 or LR1120) inherit from thi...
Definition: LR11x0.h:726
Module
Implements all common low-level methods to control the wireless module. Every module class contains o...
Definition: Module.h:65
diff --git a/_l_r1120_8h_source.html b/_l_r1120_8h_source.html index a97f13d2..9f6811f9 100644 --- a/_l_r1120_8h_source.html +++ b/_l_r1120_8h_source.html @@ -142,7 +142,7 @@ $(document).ready(function(){initNavTree('_l_r1120_8h_source.html',''); initResi
LR1120::beginLRFHSS
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, int8_t power=10, float tcxoVoltage=1.6)
Initialization method for LR-FHSS modem.
Definition: LR1120.cpp:34
LR1120::checkOutputPower
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:102
LR1120::LR1120
LR1120(Module *mod)
Default constructor.
Definition: LR1120.cpp:4
-
LR11x0
Base class for LR11x0 series. All derived classes for LR11x0 (e.g. LR1110 or LR1120) inherit from thi...
Definition: LR11x0.h:720
+
LR11x0
Base class for LR11x0 series. All derived classes for LR11x0 (e.g. LR1110 or LR1120) inherit from thi...
Definition: LR11x0.h:726
Module
Implements all common low-level methods to control the wireless module. Every module class contains o...
Definition: Module.h:65
diff --git a/_l_r11x0_8h_source.html b/_l_r11x0_8h_source.html index e5c9a0c4..883da054 100644 --- a/_l_r11x0_8h_source.html +++ b/_l_r11x0_8h_source.html @@ -264,904 +264,910 @@ $(document).ready(function(){initNavTree('_l_r11x0_8h_source.html',''); initResi
176 // LR11X0 register map
177 #define RADIOLIB_LR11X0_REG_SF6_SX127X_COMPAT (0x00F20414)
178 #define RADIOLIB_LR11X0_REG_LORA_HIGH_POWER_FIX (0x00F30054)
-
179 // TODO add fix for br 600/1200 bps
-
180 
-
181 // LR11X0 SPI command variables
-
182 
-
183 // RADIOLIB_LR11X0_CMD_GET_STATUS MSB LSB DESCRIPTION
-
184 #define RADIOLIB_LR11X0_STAT_1_CMD_FAIL (0x00UL << 1) // 3 1 command status: last command could not be executed
-
185 #define RADIOLIB_LR11X0_STAT_1_CMD_PERR (0x01UL << 1) // 3 1 processing error
-
186 #define RADIOLIB_LR11X0_STAT_1_CMD_OK (0x02UL << 1) // 3 1 successfully processed
-
187 #define RADIOLIB_LR11X0_STAT_1_CMD_DAT (0x03UL << 1) // 3 1 successfully processed, data is being transmitted
-
188 #define RADIOLIB_LR11X0_STAT_1_IRQ_INACTIVE (0x00UL << 0) // 0 0 interrupt status: inactive
-
189 #define RADIOLIB_LR11X0_STAT_1_IRQ_ACTIVE (0x01UL << 0) // 0 0 at least 1 interrupt active
-
190 #define RADIOLIB_LR11X0_STAT_2_CMD_RST_CLEARED (0x00UL << 4) // 7 4 reset status: cleared
-
191 #define RADIOLIB_LR11X0_STAT_2_CMD_RST_ANALOG (0x01UL << 4) // 7 4 analog (power on, brown-out)
-
192 #define RADIOLIB_LR11X0_STAT_2_CMD_RST_EXTERNAL (0x02UL << 4) // 7 4 NRESET pin
-
193 #define RADIOLIB_LR11X0_STAT_2_CMD_RST_SYSTEM (0x03UL << 4) // 7 4 system
-
194 #define RADIOLIB_LR11X0_STAT_2_CMD_RST_WATCHDOG (0x04UL << 4) // 7 4 watchdog
-
195 #define RADIOLIB_LR11X0_STAT_2_CMD_RST_WAKEUP (0x05UL << 4) // 7 4 NSS toggling wake-up
-
196 #define RADIOLIB_LR11X0_STAT_2_CMD_RST_RTC (0x06UL << 4) // 7 4 realtime clock
-
197 #define RADIOLIB_LR11X0_STAT_2_MODE_SLEEP (0x00UL << 1) // 3 1 chip mode: sleep
-
198 #define RADIOLIB_LR11X0_STAT_2_MODE_STBY_RC (0x01UL << 1) // 3 1 standby with RC oscillator
-
199 #define RADIOLIB_LR11X0_STAT_2_MODE_STBY_OSC (0x02UL << 1) // 3 1 standby with external oscillator
-
200 #define RADIOLIB_LR11X0_STAT_2_MODE_FS (0x03UL << 1) // 3 1 frequency synthesis
-
201 #define RADIOLIB_LR11X0_STAT_2_MODE_RX (0x04UL << 1) // 3 1 receive
-
202 #define RADIOLIB_LR11X0_STAT_2_MODE_TX (0x05UL << 1) // 3 1 transmit
-
203 #define RADIOLIB_LR11X0_STAT_2_MODE_WIFI_GNSS (0x06UL << 1) // 3 1 WiFi or GNSS geolocation
-
204 #define RADIOLIB_LR11X0_STAT_2_BOOT (0x00UL << 0) // 0 0 code executed from: bootloader
-
205 #define RADIOLIB_LR11X0_STAT_2_FLASH (0x01UL << 0) // 0 0 flash
-
206 
-
207 // RADIOLIB_LR11X0_CMD_WRITE_REG_MEM
-
208 #define RADIOLIB_LR11X0_SPI_MAX_READ_WRITE_LEN (256) // 7 0 maximum length of read/write SPI payload in bytes
-
209 
-
210 // RADIOLIB_LR11X0_CMD_GET_VERSION
-
211 #define RADIOLIB_LR11X0_DEVICE_LR1110 (0x01UL << 0) // 7 0 HW device: LR1110
-
212 #define RADIOLIB_LR11X0_DEVICE_LR1120 (0x02UL << 0) // 7 0 LR1120
-
213 #define RADIOLIB_LR11X0_DEVICE_LR1121 (0x03UL << 0) // 7 0 LR1121
-
214 #define RADIOLIB_LR11X0_DEVICE_BOOT (0xDFUL << 0) // 7 0 bootloader mode
-
215 
-
216 // RADIOLIB_LR11X0_CMD_GET_ERRORS
-
217 #define RADIOLIB_LR11X0_ERROR_STAT_LF_RC_CALIB_ERR (0x01UL << 0) // 15 0 error: low frequency RC not calibrated
-
218 #define RADIOLIB_LR11X0_ERROR_STAT_HF_RC_CALIB_ERR (0x01UL << 1) // 15 0 high frequency RC not calibrated
-
219 #define RADIOLIB_LR11X0_ERROR_STAT_ADC_CALIB_ERR (0x01UL << 2) // 15 0 ADC not calibrated
-
220 #define RADIOLIB_LR11X0_ERROR_STAT_PLL_CALIB_ERR (0x01UL << 3) // 15 0 PLL not calibrated
-
221 #define RADIOLIB_LR11X0_ERROR_STAT_IMG_CALIB_ERR (0x01UL << 4) // 15 0 image rejection not calibrated
-
222 #define RADIOLIB_LR11X0_ERROR_STAT_HF_XOSC_START_ERR (0x01UL << 5) // 15 0 high frequency oscillator failed to start
-
223 #define RADIOLIB_LR11X0_ERROR_STAT_LF_XOSC_START_ERR (0x01UL << 6) // 15 0 low frequency oscillator failed to start
-
224 #define RADIOLIB_LR11X0_ERROR_STAT_PLL_LOCK_ERR (0x01UL << 7) // 15 0 PLL failed to lock
-
225 #define RADIOLIB_LR11X0_ERROR_STAT_RX_ADC_OFFSET_ERR (0x01UL << 8) // 15 0 ADC offset not calibrated
-
226 
-
227 // RADIOLIB_LR11X0_CMD_CALIBRATE
-
228 #define RADIOLIB_LR11X0_CALIBRATE_PLL_TX (0x01UL << 5) // 5 5 calibrate: Tx PLL
-
229 #define RADIOLIB_LR11X0_CALIBRATE_IMG (0x01UL << 4) // 4 4 image rejection
-
230 #define RADIOLIB_LR11X0_CALIBRATE_ADC (0x01UL << 3) // 3 3 A/D converter
-
231 #define RADIOLIB_LR11X0_CALIBRATE_PLL (0x01UL << 2) // 2 2 PLL
-
232 #define RADIOLIB_LR11X0_CALIBRATE_HF_RC (0x01UL << 1) // 1 1 high frequency RC
-
233 #define RADIOLIB_LR11X0_CALIBRATE_LF_RC (0x01UL << 0) // 0 0 low frequency RC
-
234 #define RADIOLIB_LR11X0_CALIBRATE_ALL (0x3FUL << 0) // 5 0 everything
-
235 
-
236 // RADIOLIB_LR11X0_CMD_SET_REG_MODE
-
237 #define RADIOLIB_LR11X0_REG_MODE_LDO (0x00UL << 0) // 0 0 regulator mode: LDO in all modes
-
238 #define RADIOLIB_LR11X0_REG_MODE_DC_DC (0x01UL << 0) // 0 0 DC-DC and LDO
-
239 
-
240 // RADIOLIB_LR11X0_CMD_SET_DIO_AS_RF_SWITCH
-
241 #define RADIOLIB_LR11X0_RFSW_DIO5_ENABLED (0x01UL << 0) // 4 0 RF switch: DIO5 enabled
-
242 #define RADIOLIB_LR11X0_RFSW_DIO5_DISABLED (0x00UL << 0) // 4 0 DIO5 disabled (default)
-
243 #define RADIOLIB_LR11X0_RFSW_DIO6_ENABLED (0x01UL << 1) // 4 0 RF switch: DIO6 enabled
-
244 #define RADIOLIB_LR11X0_RFSW_DIO6_DISABLED (0x00UL << 1) // 4 0 DIO6 disabled (default)
-
245 #define RADIOLIB_LR11X0_RFSW_DIO7_ENABLED (0x01UL << 2) // 4 0 RF switch: DIO7 enabled
-
246 #define RADIOLIB_LR11X0_RFSW_DIO7_DISABLED (0x00UL << 2) // 4 0 DIO7 disabled (default)
-
247 #define RADIOLIB_LR11X0_RFSW_DIO8_ENABLED (0x01UL << 3) // 4 0 RF switch: DIO8 enabled
-
248 #define RADIOLIB_LR11X0_RFSW_DIO8_DISABLED (0x00UL << 3) // 4 0 DIO8 disabled (default)
-
249 #define RADIOLIB_LR11X0_RFSW_DIO10_ENABLED (0x01UL << 4) // 4 0 RF switch: DIO10 enabled
-
250 #define RADIOLIB_LR11X0_RFSW_DIO10_DISABLED (0x00UL << 4) // 4 0 DIO10 disabled (default)
-
251 #define RADIOLIB_LR11X0_DIO5 (0)
-
252 #define RADIOLIB_LR11X0_DIO6 (1)
-
253 #define RADIOLIB_LR11X0_DIO7 (2)
-
254 #define RADIOLIB_LR11X0_DIO8 (3)
-
255 #define RADIOLIB_LR11X0_DIO10 (4)
-
256 
-
257 // RADIOLIB_LR11X0_CMD_SET_DIO_IRQ_PARAMS
-
258 #define RADIOLIB_LR11X0_IRQ_TX_DONE (0x01UL << 2) // 31 0 interrupt: packet transmitted
-
259 #define RADIOLIB_LR11X0_IRQ_RX_DONE (0x01UL << 3) // 31 0 packet received
-
260 #define RADIOLIB_LR11X0_IRQ_PREAMBLE_DETECTED (0x01UL << 4) // 31 0 preamble detected
-
261 #define RADIOLIB_LR11X0_IRQ_SYNC_WORD_HEADER_VALID (0x01UL << 5) // 31 0 sync word or LoRa header valid
-
262 #define RADIOLIB_LR11X0_IRQ_HEADER_ERR (0x01UL << 6) // 31 0 LoRa header CRC error
-
263 #define RADIOLIB_LR11X0_IRQ_CRC_ERR (0x01UL << 7) // 31 0 packet CRC error
-
264 #define RADIOLIB_LR11X0_IRQ_CAD_DONE (0x01UL << 8) // 31 0 CAD completed
-
265 #define RADIOLIB_LR11X0_IRQ_CAD_DETECTED (0x01UL << 9) // 31 0 CAD detected
-
266 #define RADIOLIB_LR11X0_IRQ_TIMEOUT (0x01UL << 10) // 31 0 Rx or Tx timeout
-
267 #define RADIOLIB_LR11X0_IRQ_LR_FHSS_HOP (0x01UL << 11) // 31 0 FHSS hop
-
268 #define RADIOLIB_LR11X0_IRQ_GNSS_DONE (0x01UL << 19) // 31 0 GNSS scan finished
-
269 #define RADIOLIB_LR11X0_IRQ_WIFI_DONE (0x01UL << 20) // 31 0 WiFi scan finished
-
270 #define RADIOLIB_LR11X0_IRQ_LBD (0x01UL << 21) // 31 0 low battery detected
-
271 #define RADIOLIB_LR11X0_IRQ_CMD_ERROR (0x01UL << 22) // 31 0 command error
-
272 #define RADIOLIB_LR11X0_IRQ_ERROR (0x01UL << 23) // 31 0 some other error than CMD_ERR
-
273 #define RADIOLIB_LR11X0_IRQ_FSK_LEN_ERROR (0x01UL << 24) // 31 0 FSK packet received with length error
-
274 #define RADIOLIB_LR11X0_IRQ_FSK_ADDR_ERROR (0x01UL << 25) // 31 0 FSK packet received with address error
-
275 #define RADIOLIB_LR11X0_IRQ_LORA_RX_TIMESTAMP (0x01UL << 27) // 31 0 last LoRa symbol was received (timestamp source)
-
276 #define RADIOLIB_LR11X0_IRQ_ALL (0x0BF80FFCUL) // 31 0 all interrupts
-
277 #define RADIOLIB_LR11X0_IRQ_NONE (0x00UL << 0) // 31 0 no interrupts
-
278 
-
279 // RADIOLIB_LR11X0_CMD_CONFIG_LF_LOCK
-
280 #define RADIOLIB_LR11X0_LF_CLK_RC (0x00UL << 0) // 1 0 32.768 kHz source: RC oscillator
-
281 #define RADIOLIB_LR11X0_LF_CLK_XOSC (0x01UL << 0) // 1 0 crystal oscillator
-
282 #define RADIOLIB_LR11X0_LF_CLK_EXT (0x02UL << 0) // 1 0 external signal on DIO11
-
283 #define RADIOLIB_LR11X0_LF_BUSY_RELEASE_DISABLED (0x00UL << 2) // 2 2
-
284 #define RADIOLIB_LR11X0_LF_BUSY_RELEASE_ENABLED (0x01UL << 2) // 2 2
-
285 
-
286 // RADIOLIB_LR11X0_CMD_SET_TCXO_MODE
-
287 #define RADIOLIB_LR11X0_TCXO_VOLTAGE_1_6 (0x00UL << 0) // 2 0 TCXO supply voltage: 1.6V
-
288 #define RADIOLIB_LR11X0_TCXO_VOLTAGE_1_7 (0x01UL << 0) // 2 0 1.7V
-
289 #define RADIOLIB_LR11X0_TCXO_VOLTAGE_1_8 (0x02UL << 0) // 2 0 1.8V
-
290 #define RADIOLIB_LR11X0_TCXO_VOLTAGE_2_2 (0x03UL << 0) // 2 0 2.2V
-
291 #define RADIOLIB_LR11X0_TCXO_VOLTAGE_2_4 (0x04UL << 0) // 2 0 2.4V
-
292 #define RADIOLIB_LR11X0_TCXO_VOLTAGE_2_7 (0x05UL << 0) // 2 0 2.7V
-
293 #define RADIOLIB_LR11X0_TCXO_VOLTAGE_3_0 (0x06UL << 0) // 2 0 3.0V
-
294 #define RADIOLIB_LR11X0_TCXO_VOLTAGE_3_3 (0x07UL << 0) // 2 0 3.3V
-
295 
-
296 // RADIOLIB_LR11X0_CMD_SET_SLEEP
-
297 #define RADIOLIB_LR11X0_SLEEP_RETENTION_DISABLED (0x00UL << 0) // 0 0 configuration retention in sleep mode: disabled
-
298 #define RADIOLIB_LR11X0_SLEEP_RETENTION_ENABLED (0x01UL << 0) // 0 0 enabled
-
299 #define RADIOLIB_LR11X0_SLEEP_WAKEUP_DISABLED (0x00UL << 0) // 1 1 automated wakeup: disabled
-
300 #define RADIOLIB_LR11X0_SLEEP_WAKEUP_ENABLED (0x01UL << 0) // 1 1 enabled
-
301 
-
302 // RADIOLIB_LR11X0_CMD_SET_STANDBY
-
303 #define RADIOLIB_LR11X0_STANDBY_RC (0x00UL << 0) // 7 0 standby mode: RC oscillator
-
304 #define RADIOLIB_LR11X0_STANDBY_XOSC (0x00UL << 0) // 7 0 XTAL/TCXO oscillator
-
305 
-
306 // RADIOLIB_LR11X0_CMD_ERASE_INFO_PAGE
-
307 #define RADIOLIB_LR11X0_INFO_PAGE (1)
-
308 
-
309 // RADIOLIB_LR11X0_CMD_GET_CHIP_EUI
-
310 #define RADIOLIB_LR11X0_EUI_LEN (8)
-
311 
-
312 // RADIOLIB_LR11X0_CMD_DERIVE_ROOT_KEYS_AND_GET_PIN
-
313 #define RADIOLIB_LR11X0_PIN_LEN (4)
-
314 
-
315 // RADIOLIB_LR11X0_CMD_GET_PACKET_STATUS
-
316 #define RADIOLIB_LR11X0_RX_STATUS_ADDR_ERR (0x01UL << 5) // 7 0 Rx status: address filtering error
-
317 #define RADIOLIB_LR11X0_RX_STATUS_CRC_ERR (0x01UL << 4) // 7 0 CRC error
-
318 #define RADIOLIB_LR11X0_RX_STATUS_LEN_ERR (0x01UL << 3) // 7 0 length filtering error
-
319 #define RADIOLIB_LR11X0_RX_STATUS_ABORTED (0x01UL << 2) // 7 0 packet reception aborted
-
320 #define RADIOLIB_LR11X0_RX_STATUS_PACKET_RECEIVED (0x01UL << 1) // 7 0 packet received
-
321 #define RADIOLIB_LR11X0_RX_STATUS_PACKET_SENT (0x01UL << 0) // 7 0 packet sent
-
322 
-
323 // RADIOLIB_LR11X0_CMD_SET_GFSK_SYNC_WORD
-
324 #define RADIOLIB_LR11X0_GFSK_SYNC_WORD_LEN (8)
-
325 
-
326 // RADIOLIB_LR11X0_CMD_SET_LORA_PUBLIC_NETWORK
-
327 #define RADIOLIB_LR11X0_LORA_PRIVATE_NETWORK (0x00UL << 0) // 7 0 LoRa sync word: private network
-
328 #define RADIOLIB_LR11X0_LORA_PUBLIC_NETWORK (0x01UL << 0) // 7 0 public network
-
329 
-
330 // RADIOLIB_LR11X0_CMD_SET_RX
-
331 #define RADIOLIB_LR11X0_RX_TIMEOUT_NONE (0x000000UL) // 23 0 Rx timeout duration: no timeout (Rx single mode)
-
332 #define RADIOLIB_LR11X0_RX_TIMEOUT_INF (0xFFFFFFUL) // 23 0 infinite (Rx continuous mode)
-
333 
-
334 // RADIOLIB_LR11X0_CMD_SET_TX
-
335 #define RADIOLIB_LR11X0_TX_TIMEOUT_NONE (0x000000UL) // 23 0 disable Tx timeout
-
336 
-
337 // RADIOLIB_LR11X0_CMD_AUTO_TX_RX
-
338 #define RADIOLIB_LR11X0_AUTO_TX_RX_DISABLED (0xFFFFFFUL) // 23 0 disable auto Tx/Rx mode
-
339 #define RADIOLIB_LR11X0_AUTO_TX_RX_SKIP_INT (0x000000UL) // 23 0 skip intermediary mode
-
340 #define RADIOLIB_LR11X0_AUTO_INTERMEDIARY_MODE_SLEEP (0x00UL << 0) // 1 0 intermediary mode: sleep
-
341 #define RADIOLIB_LR11X0_AUTO_INTERMEDIARY_MODE_STBY_RC (0x01UL << 0) // 1 0 standby with RC
-
342 #define RADIOLIB_LR11X0_AUTO_INTERMEDIARY_MODE_STBY_XOSC (0x02UL << 0) // 1 0 standby with XOSC
-
343 #define RADIOLIB_LR11X0_AUTO_INTERMEDIARY_MODE_FS (0x03UL << 0) // 1 0 frequency synthesis
-
344 #define RADIOLIB_LR11X0_AUTO_TX_RX_TIMEOUT_DISABLED (0x000000UL) // 23 0 disable timeout of the second mode
-
345 
-
346 // RADIOLIB_LR11X0_CMD_SET_CAD_PARAMS
-
347 #define RADIOLIB_LR11X0_CAD_EXIT_MODE_STBY_RC (0x00UL << 0) // 7 0 mode to set after CAD: standby with RC
-
348 #define RADIOLIB_LR11X0_CAD_EXIT_MODE_RX (0x01UL << 0) // 7 0 receive if activity detected
-
349 #define RADIOLIB_LR11X0_CAD_EXIT_MODE_LBT (0x10UL << 0) // 7 0 transmit if no activity detected
-
350 #define RADIOLIB_LR11X0_CAD_PARAM_DEFAULT (0xFFUL << 0) // 7 0 used by the CAD methods to specify default parameter value
-
351 
-
352 // RADIOLIB_LR11X0_CMD_SET_PACKET_TYPE
-
353 #define RADIOLIB_LR11X0_PACKET_TYPE_NONE (0x00UL << 0) // 2 0 packet type: none
-
354 #define RADIOLIB_LR11X0_PACKET_TYPE_GFSK (0x01UL << 0) // 2 0 (G)FSK
-
355 #define RADIOLIB_LR11X0_PACKET_TYPE_LORA (0x02UL << 0) // 2 0 LoRa
-
356 #define RADIOLIB_LR11X0_PACKET_TYPE_SIGFOX (0x03UL << 0) // 2 0 Sigfox
-
357 #define RADIOLIB_LR11X0_PACKET_TYPE_LR_FHSS (0x04UL << 0) // 2 0 GMSK/LR-FHSS
-
358 #define RADIOLIB_LR11X0_PACKET_TYPE_RANGING (0x05UL << 0) // 2 0 ranging
-
359 #define RADIOLIB_LR11X0_PACKET_TYPE_BLE (0x06UL << 0) // 2 0 BLE beacon
-
360 
-
361 // RADIOLIB_LR11X0_CMD_SET_MODULATION_PARAMS
-
362 #define RADIOLIB_LR11X0_LORA_BW_62_5 (0x03UL << 0) // 7 0 LoRa bandwidth: 62.5 kHz
-
363 #define RADIOLIB_LR11X0_LORA_BW_125_0 (0x04UL << 0) // 7 0 125.0 kHz
-
364 #define RADIOLIB_LR11X0_LORA_BW_250_0 (0x05UL << 0) // 7 0 250.0 kHz
-
365 #define RADIOLIB_LR11X0_LORA_BW_500_0 (0x06UL << 0) // 7 0 500.0 kHz
-
366 #define RADIOLIB_LR11X0_LORA_CR_4_5_SHORT (0x01UL << 0) // 7 0 coding rate: 4/5 with short interleaver
-
367 #define RADIOLIB_LR11X0_LORA_CR_4_6_SHORT (0x02UL << 0) // 7 0 4/6 with short interleaver
-
368 #define RADIOLIB_LR11X0_LORA_CR_4_7_SHORT (0x03UL << 0) // 7 0 4/7 with short interleaver
-
369 #define RADIOLIB_LR11X0_LORA_CR_4_8_SHORT (0x04UL << 0) // 7 0 4/8 with short interleaver
-
370 #define RADIOLIB_LR11X0_LORA_CR_4_5_LONG (0x05UL << 0) // 7 0 4/5 with long interleaver
-
371 #define RADIOLIB_LR11X0_LORA_CR_4_6_LONG (0x06UL << 0) // 7 0 4/6 with long interleaver
-
372 #define RADIOLIB_LR11X0_LORA_CR_4_8_LONG (0x07UL << 0) // 7 0 4/8 with long interleaver
-
373 #define RADIOLIB_LR11X0_LORA_LDRO_DISABLED (0x00UL << 0) // 7 0 low data rate optimize: disabled
-
374 #define RADIOLIB_LR11X0_LORA_LDRO_ENABLED (0x01UL << 0) // 7 0 enabled
-
375 #define RADIOLIB_LR11X0_GFSK_BIT_RATE_DIV_DISABLED (0x00UL << 31) // 31 0 divide bit rate value by 256: disabled
-
376 #define RADIOLIB_LR11X0_GFSK_BIT_RATE_DIV_ENABLED (0x01UL << 31) // 31 0 enabled
-
377 #define RADIOLIB_LR11X0_GFSK_SHAPING_NONE (0x00UL << 0) // 7 0 shaping filter: none
-
378 #define RADIOLIB_LR11X0_GFSK_SHAPING_GAUSSIAN_BT_0_3 (0x08UL << 0) // 7 0 Gaussian, BT = 0.3
-
379 #define RADIOLIB_LR11X0_GFSK_SHAPING_GAUSSIAN_BT_0_5 (0x09UL << 0) // 7 0 Gaussian, BT = 0.5
-
380 #define RADIOLIB_LR11X0_GFSK_SHAPING_GAUSSIAN_BT_0_7 (0x0AUL << 0) // 7 0 Gaussian, BT = 0.7
-
381 #define RADIOLIB_LR11X0_GFSK_SHAPING_GAUSSIAN_BT_1_0 (0x0BUL << 0) // 7 0 Gaussian, BT = 1.0
-
382 #define RADIOLIB_LR11X0_GFSK_SHAPING_RAISED_COSINE_BT_0_7 (0x16UL << 0) // 7 0 raised cosine, BT = 0.7
-
383 #define RADIOLIB_LR11X0_GFSK_RX_BW_4_8 (0x1FUL << 0) // 7 0 GFSK Rx bandwidth: 4.8 kHz
-
384 #define RADIOLIB_LR11X0_GFSK_RX_BW_5_8 (0x17UL << 0) // 7 0 5.8 kHz
-
385 #define RADIOLIB_LR11X0_GFSK_RX_BW_7_3 (0x0FUL << 0) // 7 0 7.3 kHz
-
386 #define RADIOLIB_LR11X0_GFSK_RX_BW_9_7 (0x1EUL << 0) // 7 0 9.7 kHz
-
387 #define RADIOLIB_LR11X0_GFSK_RX_BW_11_7 (0x16UL << 0) // 7 0 11.7 kHz
-
388 #define RADIOLIB_LR11X0_GFSK_RX_BW_14_6 (0x0EUL << 0) // 7 0 14.6 kHz
-
389 #define RADIOLIB_LR11X0_GFSK_RX_BW_19_5 (0x1DUL << 0) // 7 0 19.5 kHz
-
390 #define RADIOLIB_LR11X0_GFSK_RX_BW_23_4 (0x15UL << 0) // 7 0 23.4 kHz
-
391 #define RADIOLIB_LR11X0_GFSK_RX_BW_29_3 (0x0DUL << 0) // 7 0 29.3 kHz
-
392 #define RADIOLIB_LR11X0_GFSK_RX_BW_39_0 (0x1CUL << 0) // 7 0 39.0 kHz
-
393 #define RADIOLIB_LR11X0_GFSK_RX_BW_46_9 (0x14UL << 0) // 7 0 46.9 kHz
-
394 #define RADIOLIB_LR11X0_GFSK_RX_BW_58_6 (0x0CUL << 0) // 7 0 58.6 kHz
-
395 #define RADIOLIB_LR11X0_GFSK_RX_BW_78_2 (0x1BUL << 0) // 7 0 78.2 kHz
-
396 #define RADIOLIB_LR11X0_GFSK_RX_BW_93_8 (0x13UL << 0) // 7 0 93.8 kHz
-
397 #define RADIOLIB_LR11X0_GFSK_RX_BW_117_3 (0x0BUL << 0) // 7 0 117.3 kHz
-
398 #define RADIOLIB_LR11X0_GFSK_RX_BW_156_2 (0x1AUL << 0) // 7 0 156.2 kHz
-
399 #define RADIOLIB_LR11X0_GFSK_RX_BW_187_2 (0x12UL << 0) // 7 0 187.2 kHz
-
400 #define RADIOLIB_LR11X0_GFSK_RX_BW_234_3 (0x0AUL << 0) // 7 0 234.3 kHz
-
401 #define RADIOLIB_LR11X0_GFSK_RX_BW_312_0 (0x19UL << 0) // 7 0 312.0 kHz
-
402 #define RADIOLIB_LR11X0_GFSK_RX_BW_373_6 (0x11UL << 0) // 7 0 373.6 kHz
-
403 #define RADIOLIB_LR11X0_GFSK_RX_BW_467_0 (0x09UL << 0) // 7 0 467.0 kHz
-
404 #define RADIOLIB_LR11X0_LR_FHSS_BIT_RATE (488.28215) // 31 0 LR FHSS bit rate: 488.28215 bps
-
405 #define RADIOLIB_LR11X0_LR_FHSS_BIT_RATE_RAW (0x8001E848UL) // 31 0 488.28215 bps in raw
-
406 #define RADIOLIB_LR11X0_LR_FHSS_SHAPING_GAUSSIAN_BT_1_0 (0x0BUL << 0) // 7 0 shaping filter: Gaussian, BT = 1.0
-
407 #define RADIOLIB_LR11X0_SIGFOX_SHAPING_GAUSSIAN_BT_0_7 (0x16UL << 0) // 7 0 shaping filter: Gaussian, BT = 0.7
-
408 
-
409 // RADIOLIB_LR11X0_CMD_SET_PACKET_PARAMS
-
410 #define RADIOLIB_LR11X0_LORA_HEADER_EXPLICIT (0x00UL << 0) // 7 0 LoRa header mode: explicit
-
411 #define RADIOLIB_LR11X0_LORA_HEADER_IMPLICIT (0x01UL << 0) // 7 0 implicit
-
412 #define RADIOLIB_LR11X0_LORA_PAYLOAD_LEN_ANY (0x00UL << 0) // 7 0 accept any payload length
-
413 #define RADIOLIB_LR11X0_LORA_CRC_ENABLED (0x01UL << 0) // 7 0 CRC: enabled
-
414 #define RADIOLIB_LR11X0_LORA_CRC_DISABLED (0x00UL << 0) // 7 0 disabled
-
415 #define RADIOLIB_LR11X0_LORA_IQ_STANDARD (0x00UL << 0) // 7 0 IQ setup: standard
-
416 #define RADIOLIB_LR11X0_LORA_IQ_INVERTED (0x01UL << 0) // 7 0 inverted
-
417 #define RADIOLIB_LR11X0_GFSK_PREAMBLE_DETECT_DISABLED (0x00UL << 0) // 7 0 preamble detector: disabled
-
418 #define RADIOLIB_LR11X0_GFSK_PREAMBLE_DETECT_8_BITS (0x04UL << 0) // 7 0 8 bits
-
419 #define RADIOLIB_LR11X0_GFSK_PREAMBLE_DETECT_16_BITS (0x05UL << 0) // 7 0 16 bits
-
420 #define RADIOLIB_LR11X0_GFSK_PREAMBLE_DETECT_24_BITS (0x06UL << 0) // 7 0 24 bits
-
421 #define RADIOLIB_LR11X0_GFSK_PREAMBLE_DETECT_32_BITS (0x07UL << 0) // 7 0 32 bits
-
422 #define RADIOLIB_LR11X0_GFSK_ADDR_FILTER_DISABLED (0x00UL << 0) // 7 0 address filtering: disabled
-
423 #define RADIOLIB_LR11X0_GFSK_ADDR_FILTER_NODE (0x01UL << 0) // 7 0 node address
-
424 #define RADIOLIB_LR11X0_GFSK_ADDR_FILTER_NODE_BROADCAST (0x02UL << 0) // 7 0 node and broadcast address
-
425 #define RADIOLIB_LR11X0_GFSK_PACKET_LENGTH_FIXED (0x00UL << 0) // 7 0 packet length: fixed
-
426 #define RADIOLIB_LR11X0_GFSK_PACKET_LENGTH_VARIABLE (0x01UL << 0) // 7 0 variable
-
427 #define RADIOLIB_LR11X0_GFSK_PACKET_LENGTH_VARIABLE_SX128X (0x02UL << 0) // 7 0 variable, SX128x 9-bit length encoding
-
428 #define RADIOLIB_LR11X0_GFSK_PAYLOAD_LEN_ANY (0x00UL << 0) // 7 0 accept any payload length
-
429 #define RADIOLIB_LR11X0_GFSK_CRC_DISABLED (0x01UL << 0) // 7 0 CRC: disabled
-
430 #define RADIOLIB_LR11X0_GFSK_CRC_1_BYTE (0x00UL << 0) // 7 0 1-byte
-
431 #define RADIOLIB_LR11X0_GFSK_CRC_2_BYTE (0x02UL << 0) // 7 0 2-byte
-
432 #define RADIOLIB_LR11X0_GFSK_CRC_1_BYTE_INV (0x04UL << 0) // 7 0 1-byte, inverted
-
433 #define RADIOLIB_LR11X0_GFSK_CRC_2_BYTE_INV (0x06UL << 0) // 7 0 2-byte, inverted
-
434 #define RADIOLIB_LR11X0_GFSK_WHITENING_DISABLED (0x00UL << 0) // 7 0 whitening: disabled
-
435 #define RADIOLIB_LR11X0_GFSK_WHITENING_ENABLED (0x01UL << 0) // 7 0 enabled
-
436 
-
437 // RADIOLIB_LR11X0_CMD_SET_TX_PARAMS
-
438 #define RADIOLIB_LR11X0_PA_RAMP_48U (0x02UL << 0) // 7 0 PA ramp time: 48 us
-
439 
-
440 // RADIOLIB_LR11X0_CMD_SET_RX_TX_FALLBACK_MODE
-
441 #define RADIOLIB_LR11X0_FALLBACK_MODE_STBY_RC (0x01UL << 0) // 1 0 fallback mode after Rx/Tx: standby with RC
-
442 #define RADIOLIB_LR11X0_FALLBACK_MODE_STBY_XOSC (0x02UL << 0) // 1 0 standby with XOSC
-
443 #define RADIOLIB_LR11X0_FALLBACK_MODE_FS (0x03UL << 0) // 1 0 frequency synthesis
-
444 
-
445 // RADIOLIB_LR11X0_CMD_SET_RX_DUTY_CYCLE
-
446 #define RADIOLIB_LR11X0_RX_DUTY_CYCLE_MODE_RX (0x00UL << 0) // 0 0 mode in Rx windows: Rx (default)
-
447 #define RADIOLIB_LR11X0_RX_DUTY_CYCLE_MODE_CAD (0x01UL << 0) // 0 0 CAD
-
448 #define RADIOLIB_LR11X0_TIMING_STEP (1.0f/32768.0f) // 23 0 timing step fo delays
-
449 
-
450 // RADIOLIB_LR11X0_CMD_SET_PA_CONFIG
-
451 #define RADIOLIB_LR11X0_PA_SEL_LP (0x00UL << 0) // 7 0 PA select: low power PA
-
452 #define RADIOLIB_LR11X0_PA_SEL_HP (0x01UL << 0) // 7 0 high power PA
-
453 #define RADIOLIB_LR11X0_PA_SEL_HF (0x02UL << 0) // 7 0 high frequency PA
-
454 #define RADIOLIB_LR11X0_PA_SUPPLY_INTERNAL (0x00UL << 0) // 7 0 PA power source: internal
-
455 #define RADIOLIB_LR11X0_PA_SUPPLY_VBAT (0x01UL << 0) // 7 0 VBAT (required for >= 14 dBm)
-
456 
-
457 // RADIOLIB_LR11X0_CMD_STOP_TIMEOUT_ON_PREAMBLE
-
458 #define RADIOLIB_LR11X0_STOP_ON_SYNC_HEADER (0x00UL << 0) // 0 0 stop timeout on: sync word or header (default)
-
459 #define RADIOLIB_LR11X0_STOP_ON_PREAMBLE (0x01UL << 0) // 0 0 preamble
-
460 
-
461 // RADIOLIB_LR11X0_CMD_GET_RANGING_RESULT
-
462 #define RADIOLIB_LR11X0_RANGING_RESULT_DISTANCE (0) // 7 0 ranging result type: distance
-
463 #define RADIOLIB_LR11X0_RANGING_RESULT_RSSI (1) // 7 0 RSSI
-
464 
-
465 // RADIOLIB_LR11X0_CMD_SET_RX_BOOSTED
-
466 #define RADIOLIB_LR11X0_RX_BOOSTED_ENABLED (0x01UL << 0) // 0 0 Rx boosted mode: enabled
-
467 #define RADIOLIB_LR11X0_RX_BOOSTED_DISABLED (0x00UL << 0) // 0 0 disabled
-
468 
-
469 // RADIOLIB_LR11X0_CMD_SET_LORA_SYNC_WORD
-
470 #define RADIOLIB_LR11X0_LORA_SYNC_WORD_PRIVATE (0x12)
-
471 #define RADIOLIB_LR11X0_LORA_SYNC_WORD_PUBLIC (0x34)
-
472 
-
473 // RADIOLIB_LR11X0_CMD_LR_FHSS_BUILD_FRAME
-
474 #define RADIOLIB_LR11X0_LR_FHSS_CR_5_6 (0x00UL << 0) // 7 0 LR FHSS coding rate: 5/6
-
475 #define RADIOLIB_LR11X0_LR_FHSS_CR_2_3 (0x01UL << 0) // 7 0 2/3
-
476 #define RADIOLIB_LR11X0_LR_FHSS_CR_1_2 (0x02UL << 0) // 7 0 1/2
-
477 #define RADIOLIB_LR11X0_LR_FHSS_CR_1_3 (0x03UL << 0) // 7 0 1/3
-
478 #define RADIOLIB_LR11X0_LR_FHSS_MOD_TYPE_GMSK (0x00UL << 0) // 7 0 LR FHSS modulation: GMSK
-
479 #define RADIOLIB_LR11X0_LR_FHSS_GRID_STEP_FCC (0x00UL << 0) // 7 0 LR FHSS step size: 25.390625 kHz (FCC)
-
480 #define RADIOLIB_LR11X0_LR_FHSS_GRID_STEP_NON_FCC (0x01UL << 0) // 7 0 3.90625 kHz (non-FCC)
-
481 #define RADIOLIB_LR11X0_LR_FHSS_HOPPING_DISABLED (0x00UL << 0) // 7 0 LR FHSS hopping: disabled
-
482 #define RADIOLIB_LR11X0_LR_FHSS_HOPPING_ENABLED (0x01UL << 0) // 7 0 enabled
-
483 #define RADIOLIB_LR11X0_LR_FHSS_BW_39_06 (0x00UL << 0) // 7 0 LR FHSS bandwidth: 39.06 kHz
-
484 #define RADIOLIB_LR11X0_LR_FHSS_BW_85_94 (0x01UL << 0) // 7 0 85.94 kHz
-
485 #define RADIOLIB_LR11X0_LR_FHSS_BW_136_72 (0x02UL << 0) // 7 0 136.72 kHz
-
486 #define RADIOLIB_LR11X0_LR_FHSS_BW_183_59 (0x03UL << 0) // 7 0 183.59 kHz
-
487 #define RADIOLIB_LR11X0_LR_FHSS_BW_335_94 (0x04UL << 0) // 7 0 335.94 kHz
-
488 #define RADIOLIB_LR11X0_LR_FHSS_BW_386_72 (0x05UL << 0) // 7 0 386.72 kHz
-
489 #define RADIOLIB_LR11X0_LR_FHSS_BW_722_66 (0x06UL << 0) // 7 0 722.66 kHz
-
490 #define RADIOLIB_LR11X0_LR_FHSS_BW_773_44 (0x07UL << 0) // 7 0 773.44 kHz
-
491 #define RADIOLIB_LR11X0_LR_FHSS_BW_1523_4 (0x08UL << 0) // 7 0 1523.4 kHz
-
492 #define RADIOLIB_LR11X0_LR_FHSS_BW_1574_2 (0x09UL << 0) // 7 0 1574.2 kHz
-
493 #define RADIOLIB_LR11X0_LR_FHSS_HEADER_BITS (114) // 7 0 LR FHSS packet bit widths: header
-
494 #define RADIOLIB_LR11X0_LR_FHSS_FRAG_BITS (48) // 7 0 payload fragment
-
495 #define RADIOLIB_LR11X0_LR_FHSS_BLOCK_PREAMBLE_BITS (2) // 7 0 block preamble
-
496 #define RADIOLIB_LR11X0_LR_FHSS_BLOCK_BITS (RADIOLIB_LR11X0_LR_FHSS_FRAG_BITS + RADIOLIB_LR11X0_LR_FHSS_BLOCK_PREAMBLE_BITS)
-
497 
-
498 // RADIOLIB_LR11X0_CMD_GET_LORA_RX_HEADER_INFOS
-
499 #define RADIOLIB_LR11X0_LAST_HEADER_CRC_ENABLED (0x01UL << 4) // 4 4 last header CRC: enabled
-
500 #define RADIOLIB_LR11X0_LAST_HEADER_CRC_DISABLED (0x00UL << 4) // 4 4 disabled
-
501 
-
502 // RADIOLIB_LR11X0_CMD_WIFI_SCAN
-
503 #define RADIOLIB_LR11X0_WIFI_SCAN_802_11_B (0x01UL << 0) // 7 0 Wi-Fi type to scan: 802.11b
-
504 #define RADIOLIB_LR11X0_WIFI_SCAN_802_11_G (0x02UL << 0) // 7 0 802.11g
-
505 #define RADIOLIB_LR11X0_WIFI_SCAN_802_11_N (0x03UL << 0) // 7 0 802.11n
-
506 #define RADIOLIB_LR11X0_WIFI_SCAN_ALL (0x04UL << 0) // 7 0 all (802.11b first)
-
507 #define RADIOLIB_LR11X0_WIFI_ACQ_MODE_BEACON_ONLY (0x01UL << 0) // 7 0 Wi-Fi acquisition mode: beacon only
-
508 #define RADIOLIB_LR11X0_WIFI_ACQ_MODE_BEACON_PACKET (0x02UL << 0) // 7 0 beacon and packet
-
509 #define RADIOLIB_LR11X0_WIFI_ACQ_MODE_FULL_TRAFFIC (0x03UL << 0) // 7 0 full traffic
-
510 #define RADIOLIB_LR11X0_WIFI_ACQ_MODE_FULL_BEACON (0x04UL << 0) // 7 0 full beacon
-
511 #define RADIOLIB_LR11X0_WIFI_ACQ_MODE_SSID_BEACON (0x05UL << 0) // 7 0 SSID beacon
-
512 #define RADIOLIB_LR11X0_WIFI_ABORT_ON_TIMEOUT_ENABLED (0x01UL << 0) // 7 0 abort scanning on preamble timeout: enabled
-
513 #define RADIOLIB_LR11X0_WIFI_ABORT_ON_TIMEOUT_DISABLED (0x00UL << 0) // 7 0 disabled
-
514 #define RADIOLIB_LR11X0_WIFI_MAX_NUM_RESULTS (32) // 7 0 maximum possible number of Wi-Fi scan results
-
515 #define RADIOLIB_LR11X0_WIFI_ALL_CHANNELS (0x3FFFUL) // 16 0 scan all channels
-
516 
-
517 // RADIOLIB_LR11X0_CMD_WIFI_READ_RESULTS
-
518 #define RADIOLIB_LR11X0_WIFI_RESULT_TYPE_COMPLETE (0x01UL << 0) // 7 0 Wi-Fi scan result type: complete
-
519 #define RADIOLIB_LR11X0_WIFI_RESULT_TYPE_BASIC (0x04UL << 0) // 7 0 basic
-
520 #define RADIOLIB_LR11X0_WIFI_RESULT_MAX_LEN (79) // 7 0 maximum possible Wi-Fi scan size
-
521 #define RADIOLIB_LR11X0_WIFI_RESULT_MAC_LEN (6) // 7 0 MAC address length in bytes
-
522 #define RADIOLIB_LR11X0_WIFI_RESULT_SSID_LEN (32) // 7 0 SSID length in bytes
-
523 
-
524 // RADIOLIB_LR11X0_CMD_GNSS_SET_CONSTELLATION_TO_USE
-
525 #define RADIOLIB_LR11X0_GNSS_CONSTELLATION_GPS (0x01UL << 0) // 7 0 GNSS constellation to use: GPS
-
526 #define RADIOLIB_LR11X0_GNSS_CONSTELLATION_BEIDOU (0x01UL << 1) // 7 0 BeiDou
-
527 
-
528 // RADIOLIB_LR11X0_CMD_GNSS_SET_MODE
-
529 #define RADIOLIB_LR11X0_GNSS_MODE_SINGLE_SCAN (0x00UL << 0) // 7 0 GNSS scanning mode: single/legacy
-
530 #define RADIOLIB_LR11X0_GNSS_MODE_SINGLE_MULTIPLE (0x03UL << 1) // 7 0 multiple/advanced
-
531 
-
532 // RADIOLIB_LR11X0_CMD_GNSS_AUTONOMOUS
-
533 #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)
-
534 #define RADIOLIB_LR11X0_GNSS_RES_PSEUDO_DOPPLER_DISABLED (0x00UL << 0) // 0 0 not included
-
535 #define RADIOLIB_LR11X0_GNSS_RES_DOPPLER_ENABLED (0x01UL << 1) // 1 1 Doppler information
-
536 #define RADIOLIB_LR11X0_GNSS_RES_DOPPLER_DISABLED (0x00UL << 1) // 1 1 not included
-
537 #define RADIOLIB_LR11X0_GNSS_NB_SV_ALL (0x00UL << 0) // 7 0 include all detected satellites
-
538 #define RADIOLIB_LR11X0_GNSS_AUTO_EFFORT_MODE (0x00UL << 0) // 7 0 reserved, always 0
-
539 
-
540 // RADIOLIB_LR11X0_CMD_GNSS_ASSISTED
-
541 #define RADIOLIB_LR11X0_GNSS_ASSIST_LOW_POWER (0x00UL << 0) // 7 0 effort mode: low power
-
542 #define RADIOLIB_LR11X0_GNSS_ASSIST_BEST_EFFORT (0x01UL << 0) // 7 0 best effort
-
543 
-
544 // RADIOLIB_LR11X0_CMD_GNSS_GET_CONTEXT_STATUS
-
545 #define RADIOLIB_LR11X0_GNSS_CONTEXT_ERR_NONE (0x00UL << 0) // 7 4 error code: none
-
546 #define RADIOLIB_LR11X0_GNSS_CONTEXT_ERR_ALMANAC_OLD (0x01UL << 0) // 7 4 almanac too old
-
547 #define RADIOLIB_LR11X0_GNSS_CONTEXT_ERR_ALMANAC_CRC (0x02UL << 0) // 7 4 almanac CRC mismatch
-
548 #define RADIOLIB_LR11X0_GNSS_CONTEXT_ERR_FLASH (0x03UL << 0) // 7 4 flash integrity error
-
549 #define RADIOLIB_LR11X0_GNSS_CONTEXT_ERR_ALMANAC_UPD (0x04UL << 0) // 7 4 almanac update not allowed
-
550 #define RADIOLIB_LR11X0_GNSS_CONTEXT_FREQ_SPACE_250_HZ (0x00UL << 0) // 8 7 frequency search space: 250 Hz
-
551 #define RADIOLIB_LR11X0_GNSS_CONTEXT_FREQ_SPACE_500_HZ (0x01UL << 0) // 8 7 500 H
-
552 #define RADIOLIB_LR11X0_GNSS_CONTEXT_FREQ_SPACE_1000_HZ (0x02UL << 0) // 8 7 1000 Hz
-
553 #define RADIOLIB_LR11X0_GNSS_CONTEXT_FREQ_SPACE_2000_HZ (0x03UL << 0) // 8 7 2000 Hz
-
554 
-
555 // RADIOLIB_LR11X0_CMD_GNSS_GET_SV_VISIBLE
-
556 #define RADIOLIB_LR11X0_SV_CONSTELLATION_GPS (0x00UL << 0) // 7 0 GNSS constellation: GPS
-
557 #define RADIOLIB_LR11X0_SV_CONSTELLATION_BEIDOU (0x01UL << 0) // 7 0 BeiDou
-
558 
-
559 // RADIOLIB_LR11X0_CMD_GNSS_ALMANAC_FULL_UPDATE
-
560 #define RADIOLIB_LR11X0_GNSS_ALMANAC_HEADER_ID (0x80UL << 0) // 7 0 starting byte of GNSS almanac header
-
561 #define RADIOLIB_LR11X0_GNSS_ALMANAC_BLOCK_SIZE (20)
-
562 
-
563 // RADIOLIB_LR11X0_CMD_CRYPTO_SET_KEY
-
564 #define RADIOLIB_LR11X0_CRYPTO_STATUS_SUCCESS (0x00UL << 0) // 7 0 crypto engine status: success
-
565 #define RADIOLIB_LR11X0_CRYPTO_STATUS_FAIL_CMAC (0x01UL << 0) // 7 0 MIC check failed
-
566 #define RADIOLIB_LR11X0_CRYPTO_STATUS_INV_KEY_ID (0x03UL << 0) // 7 0 key/parameter source or destination ID error
-
567 #define RADIOLIB_LR11X0_CRYPTO_STATUS_BUF_SIZE (0x05UL << 0) // 7 0 data buffer size invalid
-
568 #define RADIOLIB_LR11X0_CRYPTO_STATUS_ERROR (0x06UL << 0) // 7 0 generic error
-
569 
-
570 // RADIOLIB_LR11X0_CMD_CRYPTO_PROCESS_JOIN_ACCEPT
-
571 #define RADIOLIB_LR11X0_CRYPTO_LORAWAN_VERSION_1_0 (0x00UL << 0) // 7 0 LoRaWAN version: 1.0.x
-
572 #define RADIOLIB_LR11X0_CRYPTO_LORAWAN_VERSION_1_1 (0x01UL << 0) // 7 0 1.1
-
573 
-
574 // LR11X0 SPI register variables
-
575 
-
576 // RADIOLIB_LR11X0_REG_SF6_SX127X_COMPAT
-
577 #define RADIOLIB_LR11X0_SF6_SX126X (0x00UL << 18) // 18 18 SF6 mode: SX126x series
-
578 #define RADIOLIB_LR11X0_SF6_SX127X (0x01UL << 18) // 18 18 SX127x series
-
579 
-
580 // RADIOLIB_LR11X0_REG_LORA_HIGH_POWER_FIX
-
581 #define RADIOLIB_LR11X0_LORA_HIGH_POWER_FIX (0x00UL << 30) // 30 30 fix for errata
-
582 
-
588 struct LR11x0WifiResult_t {
-
590  char type;
-
591 
-
593  uint8_t dataRateId;
-
594 
-
596  uint16_t channelFreq;
+
179 #define RADIOLIB_LR11X0_REG_LNA_MODE (0x00F3008C)
+
180 // TODO add fix for br 600/1200 bps
+
181 
+
182 // LR11X0 SPI command variables
+
183 
+
184 // RADIOLIB_LR11X0_CMD_GET_STATUS MSB LSB DESCRIPTION
+
185 #define RADIOLIB_LR11X0_STAT_1_CMD_FAIL (0x00UL << 1) // 3 1 command status: last command could not be executed
+
186 #define RADIOLIB_LR11X0_STAT_1_CMD_PERR (0x01UL << 1) // 3 1 processing error
+
187 #define RADIOLIB_LR11X0_STAT_1_CMD_OK (0x02UL << 1) // 3 1 successfully processed
+
188 #define RADIOLIB_LR11X0_STAT_1_CMD_DAT (0x03UL << 1) // 3 1 successfully processed, data is being transmitted
+
189 #define RADIOLIB_LR11X0_STAT_1_IRQ_INACTIVE (0x00UL << 0) // 0 0 interrupt status: inactive
+
190 #define RADIOLIB_LR11X0_STAT_1_IRQ_ACTIVE (0x01UL << 0) // 0 0 at least 1 interrupt active
+
191 #define RADIOLIB_LR11X0_STAT_2_CMD_RST_CLEARED (0x00UL << 4) // 7 4 reset status: cleared
+
192 #define RADIOLIB_LR11X0_STAT_2_CMD_RST_ANALOG (0x01UL << 4) // 7 4 analog (power on, brown-out)
+
193 #define RADIOLIB_LR11X0_STAT_2_CMD_RST_EXTERNAL (0x02UL << 4) // 7 4 NRESET pin
+
194 #define RADIOLIB_LR11X0_STAT_2_CMD_RST_SYSTEM (0x03UL << 4) // 7 4 system
+
195 #define RADIOLIB_LR11X0_STAT_2_CMD_RST_WATCHDOG (0x04UL << 4) // 7 4 watchdog
+
196 #define RADIOLIB_LR11X0_STAT_2_CMD_RST_WAKEUP (0x05UL << 4) // 7 4 NSS toggling wake-up
+
197 #define RADIOLIB_LR11X0_STAT_2_CMD_RST_RTC (0x06UL << 4) // 7 4 realtime clock
+
198 #define RADIOLIB_LR11X0_STAT_2_MODE_SLEEP (0x00UL << 1) // 3 1 chip mode: sleep
+
199 #define RADIOLIB_LR11X0_STAT_2_MODE_STBY_RC (0x01UL << 1) // 3 1 standby with RC oscillator
+
200 #define RADIOLIB_LR11X0_STAT_2_MODE_STBY_OSC (0x02UL << 1) // 3 1 standby with external oscillator
+
201 #define RADIOLIB_LR11X0_STAT_2_MODE_FS (0x03UL << 1) // 3 1 frequency synthesis
+
202 #define RADIOLIB_LR11X0_STAT_2_MODE_RX (0x04UL << 1) // 3 1 receive
+
203 #define RADIOLIB_LR11X0_STAT_2_MODE_TX (0x05UL << 1) // 3 1 transmit
+
204 #define RADIOLIB_LR11X0_STAT_2_MODE_WIFI_GNSS (0x06UL << 1) // 3 1 WiFi or GNSS geolocation
+
205 #define RADIOLIB_LR11X0_STAT_2_BOOT (0x00UL << 0) // 0 0 code executed from: bootloader
+
206 #define RADIOLIB_LR11X0_STAT_2_FLASH (0x01UL << 0) // 0 0 flash
+
207 
+
208 // RADIOLIB_LR11X0_CMD_WRITE_REG_MEM
+
209 #define RADIOLIB_LR11X0_SPI_MAX_READ_WRITE_LEN (256) // 7 0 maximum length of read/write SPI payload in bytes
+
210 
+
211 // RADIOLIB_LR11X0_CMD_GET_VERSION
+
212 #define RADIOLIB_LR11X0_DEVICE_LR1110 (0x01UL << 0) // 7 0 HW device: LR1110
+
213 #define RADIOLIB_LR11X0_DEVICE_LR1120 (0x02UL << 0) // 7 0 LR1120
+
214 #define RADIOLIB_LR11X0_DEVICE_LR1121 (0x03UL << 0) // 7 0 LR1121
+
215 #define RADIOLIB_LR11X0_DEVICE_BOOT (0xDFUL << 0) // 7 0 bootloader mode
+
216 
+
217 // RADIOLIB_LR11X0_CMD_GET_ERRORS
+
218 #define RADIOLIB_LR11X0_ERROR_STAT_LF_RC_CALIB_ERR (0x01UL << 0) // 15 0 error: low frequency RC not calibrated
+
219 #define RADIOLIB_LR11X0_ERROR_STAT_HF_RC_CALIB_ERR (0x01UL << 1) // 15 0 high frequency RC not calibrated
+
220 #define RADIOLIB_LR11X0_ERROR_STAT_ADC_CALIB_ERR (0x01UL << 2) // 15 0 ADC not calibrated
+
221 #define RADIOLIB_LR11X0_ERROR_STAT_PLL_CALIB_ERR (0x01UL << 3) // 15 0 PLL not calibrated
+
222 #define RADIOLIB_LR11X0_ERROR_STAT_IMG_CALIB_ERR (0x01UL << 4) // 15 0 image rejection not calibrated
+
223 #define RADIOLIB_LR11X0_ERROR_STAT_HF_XOSC_START_ERR (0x01UL << 5) // 15 0 high frequency oscillator failed to start
+
224 #define RADIOLIB_LR11X0_ERROR_STAT_LF_XOSC_START_ERR (0x01UL << 6) // 15 0 low frequency oscillator failed to start
+
225 #define RADIOLIB_LR11X0_ERROR_STAT_PLL_LOCK_ERR (0x01UL << 7) // 15 0 PLL failed to lock
+
226 #define RADIOLIB_LR11X0_ERROR_STAT_RX_ADC_OFFSET_ERR (0x01UL << 8) // 15 0 ADC offset not calibrated
+
227 
+
228 // RADIOLIB_LR11X0_CMD_CALIBRATE
+
229 #define RADIOLIB_LR11X0_CALIBRATE_PLL_TX (0x01UL << 5) // 5 5 calibrate: Tx PLL
+
230 #define RADIOLIB_LR11X0_CALIBRATE_IMG (0x01UL << 4) // 4 4 image rejection
+
231 #define RADIOLIB_LR11X0_CALIBRATE_ADC (0x01UL << 3) // 3 3 A/D converter
+
232 #define RADIOLIB_LR11X0_CALIBRATE_PLL (0x01UL << 2) // 2 2 PLL
+
233 #define RADIOLIB_LR11X0_CALIBRATE_HF_RC (0x01UL << 1) // 1 1 high frequency RC
+
234 #define RADIOLIB_LR11X0_CALIBRATE_LF_RC (0x01UL << 0) // 0 0 low frequency RC
+
235 #define RADIOLIB_LR11X0_CALIBRATE_ALL (0x3FUL << 0) // 5 0 everything
+
236 
+
237 // RADIOLIB_LR11X0_CMD_SET_REG_MODE
+
238 #define RADIOLIB_LR11X0_REG_MODE_LDO (0x00UL << 0) // 0 0 regulator mode: LDO in all modes
+
239 #define RADIOLIB_LR11X0_REG_MODE_DC_DC (0x01UL << 0) // 0 0 DC-DC and LDO
+
240 
+
241 // RADIOLIB_LR11X0_CMD_SET_DIO_AS_RF_SWITCH
+
242 #define RADIOLIB_LR11X0_RFSW_DIO5_ENABLED (0x01UL << 0) // 4 0 RF switch: DIO5 enabled
+
243 #define RADIOLIB_LR11X0_RFSW_DIO5_DISABLED (0x00UL << 0) // 4 0 DIO5 disabled (default)
+
244 #define RADIOLIB_LR11X0_RFSW_DIO6_ENABLED (0x01UL << 1) // 4 0 RF switch: DIO6 enabled
+
245 #define RADIOLIB_LR11X0_RFSW_DIO6_DISABLED (0x00UL << 1) // 4 0 DIO6 disabled (default)
+
246 #define RADIOLIB_LR11X0_RFSW_DIO7_ENABLED (0x01UL << 2) // 4 0 RF switch: DIO7 enabled
+
247 #define RADIOLIB_LR11X0_RFSW_DIO7_DISABLED (0x00UL << 2) // 4 0 DIO7 disabled (default)
+
248 #define RADIOLIB_LR11X0_RFSW_DIO8_ENABLED (0x01UL << 3) // 4 0 RF switch: DIO8 enabled
+
249 #define RADIOLIB_LR11X0_RFSW_DIO8_DISABLED (0x00UL << 3) // 4 0 DIO8 disabled (default)
+
250 #define RADIOLIB_LR11X0_RFSW_DIO10_ENABLED (0x01UL << 4) // 4 0 RF switch: DIO10 enabled
+
251 #define RADIOLIB_LR11X0_RFSW_DIO10_DISABLED (0x00UL << 4) // 4 0 DIO10 disabled (default)
+
252 #define RADIOLIB_LR11X0_DIO5 (0)
+
253 #define RADIOLIB_LR11X0_DIO6 (1)
+
254 #define RADIOLIB_LR11X0_DIO7 (2)
+
255 #define RADIOLIB_LR11X0_DIO8 (3)
+
256 #define RADIOLIB_LR11X0_DIO10 (4)
+
257 
+
258 // RADIOLIB_LR11X0_CMD_SET_DIO_IRQ_PARAMS
+
259 #define RADIOLIB_LR11X0_IRQ_TX_DONE (0x01UL << 2) // 31 0 interrupt: packet transmitted
+
260 #define RADIOLIB_LR11X0_IRQ_RX_DONE (0x01UL << 3) // 31 0 packet received
+
261 #define RADIOLIB_LR11X0_IRQ_PREAMBLE_DETECTED (0x01UL << 4) // 31 0 preamble detected
+
262 #define RADIOLIB_LR11X0_IRQ_SYNC_WORD_HEADER_VALID (0x01UL << 5) // 31 0 sync word or LoRa header valid
+
263 #define RADIOLIB_LR11X0_IRQ_HEADER_ERR (0x01UL << 6) // 31 0 LoRa header CRC error
+
264 #define RADIOLIB_LR11X0_IRQ_CRC_ERR (0x01UL << 7) // 31 0 packet CRC error
+
265 #define RADIOLIB_LR11X0_IRQ_CAD_DONE (0x01UL << 8) // 31 0 CAD completed
+
266 #define RADIOLIB_LR11X0_IRQ_CAD_DETECTED (0x01UL << 9) // 31 0 CAD detected
+
267 #define RADIOLIB_LR11X0_IRQ_TIMEOUT (0x01UL << 10) // 31 0 Rx or Tx timeout
+
268 #define RADIOLIB_LR11X0_IRQ_LR_FHSS_HOP (0x01UL << 11) // 31 0 FHSS hop
+
269 #define RADIOLIB_LR11X0_IRQ_GNSS_DONE (0x01UL << 19) // 31 0 GNSS scan finished
+
270 #define RADIOLIB_LR11X0_IRQ_WIFI_DONE (0x01UL << 20) // 31 0 WiFi scan finished
+
271 #define RADIOLIB_LR11X0_IRQ_LBD (0x01UL << 21) // 31 0 low battery detected
+
272 #define RADIOLIB_LR11X0_IRQ_CMD_ERROR (0x01UL << 22) // 31 0 command error
+
273 #define RADIOLIB_LR11X0_IRQ_ERROR (0x01UL << 23) // 31 0 some other error than CMD_ERR
+
274 #define RADIOLIB_LR11X0_IRQ_FSK_LEN_ERROR (0x01UL << 24) // 31 0 FSK packet received with length error
+
275 #define RADIOLIB_LR11X0_IRQ_FSK_ADDR_ERROR (0x01UL << 25) // 31 0 FSK packet received with address error
+
276 #define RADIOLIB_LR11X0_IRQ_LORA_RX_TIMESTAMP (0x01UL << 27) // 31 0 last LoRa symbol was received (timestamp source)
+
277 #define RADIOLIB_LR11X0_IRQ_ALL (0x0BF80FFCUL) // 31 0 all interrupts
+
278 #define RADIOLIB_LR11X0_IRQ_NONE (0x00UL << 0) // 31 0 no interrupts
+
279 
+
280 // RADIOLIB_LR11X0_CMD_CONFIG_LF_LOCK
+
281 #define RADIOLIB_LR11X0_LF_CLK_RC (0x00UL << 0) // 1 0 32.768 kHz source: RC oscillator
+
282 #define RADIOLIB_LR11X0_LF_CLK_XOSC (0x01UL << 0) // 1 0 crystal oscillator
+
283 #define RADIOLIB_LR11X0_LF_CLK_EXT (0x02UL << 0) // 1 0 external signal on DIO11
+
284 #define RADIOLIB_LR11X0_LF_BUSY_RELEASE_DISABLED (0x00UL << 2) // 2 2
+
285 #define RADIOLIB_LR11X0_LF_BUSY_RELEASE_ENABLED (0x01UL << 2) // 2 2
+
286 
+
287 // RADIOLIB_LR11X0_CMD_SET_TCXO_MODE
+
288 #define RADIOLIB_LR11X0_TCXO_VOLTAGE_1_6 (0x00UL << 0) // 2 0 TCXO supply voltage: 1.6V
+
289 #define RADIOLIB_LR11X0_TCXO_VOLTAGE_1_7 (0x01UL << 0) // 2 0 1.7V
+
290 #define RADIOLIB_LR11X0_TCXO_VOLTAGE_1_8 (0x02UL << 0) // 2 0 1.8V
+
291 #define RADIOLIB_LR11X0_TCXO_VOLTAGE_2_2 (0x03UL << 0) // 2 0 2.2V
+
292 #define RADIOLIB_LR11X0_TCXO_VOLTAGE_2_4 (0x04UL << 0) // 2 0 2.4V
+
293 #define RADIOLIB_LR11X0_TCXO_VOLTAGE_2_7 (0x05UL << 0) // 2 0 2.7V
+
294 #define RADIOLIB_LR11X0_TCXO_VOLTAGE_3_0 (0x06UL << 0) // 2 0 3.0V
+
295 #define RADIOLIB_LR11X0_TCXO_VOLTAGE_3_3 (0x07UL << 0) // 2 0 3.3V
+
296 
+
297 // RADIOLIB_LR11X0_CMD_SET_SLEEP
+
298 #define RADIOLIB_LR11X0_SLEEP_RETENTION_DISABLED (0x00UL << 0) // 0 0 configuration retention in sleep mode: disabled
+
299 #define RADIOLIB_LR11X0_SLEEP_RETENTION_ENABLED (0x01UL << 0) // 0 0 enabled
+
300 #define RADIOLIB_LR11X0_SLEEP_WAKEUP_DISABLED (0x00UL << 0) // 1 1 automated wakeup: disabled
+
301 #define RADIOLIB_LR11X0_SLEEP_WAKEUP_ENABLED (0x01UL << 0) // 1 1 enabled
+
302 
+
303 // RADIOLIB_LR11X0_CMD_SET_STANDBY
+
304 #define RADIOLIB_LR11X0_STANDBY_RC (0x00UL << 0) // 7 0 standby mode: RC oscillator
+
305 #define RADIOLIB_LR11X0_STANDBY_XOSC (0x00UL << 0) // 7 0 XTAL/TCXO oscillator
+
306 
+
307 // RADIOLIB_LR11X0_CMD_ERASE_INFO_PAGE
+
308 #define RADIOLIB_LR11X0_INFO_PAGE (1)
+
309 
+
310 // RADIOLIB_LR11X0_CMD_GET_CHIP_EUI
+
311 #define RADIOLIB_LR11X0_EUI_LEN (8)
+
312 
+
313 // RADIOLIB_LR11X0_CMD_DERIVE_ROOT_KEYS_AND_GET_PIN
+
314 #define RADIOLIB_LR11X0_PIN_LEN (4)
+
315 
+
316 // RADIOLIB_LR11X0_CMD_GET_PACKET_STATUS
+
317 #define RADIOLIB_LR11X0_RX_STATUS_ADDR_ERR (0x01UL << 5) // 7 0 Rx status: address filtering error
+
318 #define RADIOLIB_LR11X0_RX_STATUS_CRC_ERR (0x01UL << 4) // 7 0 CRC error
+
319 #define RADIOLIB_LR11X0_RX_STATUS_LEN_ERR (0x01UL << 3) // 7 0 length filtering error
+
320 #define RADIOLIB_LR11X0_RX_STATUS_ABORTED (0x01UL << 2) // 7 0 packet reception aborted
+
321 #define RADIOLIB_LR11X0_RX_STATUS_PACKET_RECEIVED (0x01UL << 1) // 7 0 packet received
+
322 #define RADIOLIB_LR11X0_RX_STATUS_PACKET_SENT (0x01UL << 0) // 7 0 packet sent
+
323 
+
324 // RADIOLIB_LR11X0_CMD_SET_GFSK_SYNC_WORD
+
325 #define RADIOLIB_LR11X0_GFSK_SYNC_WORD_LEN (8)
+
326 
+
327 // RADIOLIB_LR11X0_CMD_SET_LORA_PUBLIC_NETWORK
+
328 #define RADIOLIB_LR11X0_LORA_PRIVATE_NETWORK (0x00UL << 0) // 7 0 LoRa sync word: private network
+
329 #define RADIOLIB_LR11X0_LORA_PUBLIC_NETWORK (0x01UL << 0) // 7 0 public network
+
330 
+
331 // RADIOLIB_LR11X0_CMD_SET_RX
+
332 #define RADIOLIB_LR11X0_RX_TIMEOUT_NONE (0x000000UL) // 23 0 Rx timeout duration: no timeout (Rx single mode)
+
333 #define RADIOLIB_LR11X0_RX_TIMEOUT_INF (0xFFFFFFUL) // 23 0 infinite (Rx continuous mode)
+
334 
+
335 // RADIOLIB_LR11X0_CMD_SET_TX
+
336 #define RADIOLIB_LR11X0_TX_TIMEOUT_NONE (0x000000UL) // 23 0 disable Tx timeout
+
337 
+
338 // RADIOLIB_LR11X0_CMD_AUTO_TX_RX
+
339 #define RADIOLIB_LR11X0_AUTO_TX_RX_DISABLED (0xFFFFFFUL) // 23 0 disable auto Tx/Rx mode
+
340 #define RADIOLIB_LR11X0_AUTO_TX_RX_SKIP_INT (0x000000UL) // 23 0 skip intermediary mode
+
341 #define RADIOLIB_LR11X0_AUTO_INTERMEDIARY_MODE_SLEEP (0x00UL << 0) // 1 0 intermediary mode: sleep
+
342 #define RADIOLIB_LR11X0_AUTO_INTERMEDIARY_MODE_STBY_RC (0x01UL << 0) // 1 0 standby with RC
+
343 #define RADIOLIB_LR11X0_AUTO_INTERMEDIARY_MODE_STBY_XOSC (0x02UL << 0) // 1 0 standby with XOSC
+
344 #define RADIOLIB_LR11X0_AUTO_INTERMEDIARY_MODE_FS (0x03UL << 0) // 1 0 frequency synthesis
+
345 #define RADIOLIB_LR11X0_AUTO_TX_RX_TIMEOUT_DISABLED (0x000000UL) // 23 0 disable timeout of the second mode
+
346 
+
347 // RADIOLIB_LR11X0_CMD_SET_CAD_PARAMS
+
348 #define RADIOLIB_LR11X0_CAD_EXIT_MODE_STBY_RC (0x00UL << 0) // 7 0 mode to set after CAD: standby with RC
+
349 #define RADIOLIB_LR11X0_CAD_EXIT_MODE_RX (0x01UL << 0) // 7 0 receive if activity detected
+
350 #define RADIOLIB_LR11X0_CAD_EXIT_MODE_LBT (0x10UL << 0) // 7 0 transmit if no activity detected
+
351 #define RADIOLIB_LR11X0_CAD_PARAM_DEFAULT (0xFFUL << 0) // 7 0 used by the CAD methods to specify default parameter value
+
352 
+
353 // RADIOLIB_LR11X0_CMD_SET_PACKET_TYPE
+
354 #define RADIOLIB_LR11X0_PACKET_TYPE_NONE (0x00UL << 0) // 2 0 packet type: none
+
355 #define RADIOLIB_LR11X0_PACKET_TYPE_GFSK (0x01UL << 0) // 2 0 (G)FSK
+
356 #define RADIOLIB_LR11X0_PACKET_TYPE_LORA (0x02UL << 0) // 2 0 LoRa
+
357 #define RADIOLIB_LR11X0_PACKET_TYPE_SIGFOX (0x03UL << 0) // 2 0 Sigfox
+
358 #define RADIOLIB_LR11X0_PACKET_TYPE_LR_FHSS (0x04UL << 0) // 2 0 GMSK/LR-FHSS
+
359 #define RADIOLIB_LR11X0_PACKET_TYPE_RANGING (0x05UL << 0) // 2 0 ranging
+
360 #define RADIOLIB_LR11X0_PACKET_TYPE_BLE (0x06UL << 0) // 2 0 BLE beacon
+
361 
+
362 // RADIOLIB_LR11X0_CMD_SET_MODULATION_PARAMS
+
363 #define RADIOLIB_LR11X0_LORA_BW_62_5 (0x03UL << 0) // 7 0 LoRa bandwidth: 62.5 kHz
+
364 #define RADIOLIB_LR11X0_LORA_BW_125_0 (0x04UL << 0) // 7 0 125.0 kHz
+
365 #define RADIOLIB_LR11X0_LORA_BW_250_0 (0x05UL << 0) // 7 0 250.0 kHz
+
366 #define RADIOLIB_LR11X0_LORA_BW_500_0 (0x06UL << 0) // 7 0 500.0 kHz
+
367 #define RADIOLIB_LR11X0_LORA_CR_4_5_SHORT (0x01UL << 0) // 7 0 coding rate: 4/5 with short interleaver
+
368 #define RADIOLIB_LR11X0_LORA_CR_4_6_SHORT (0x02UL << 0) // 7 0 4/6 with short interleaver
+
369 #define RADIOLIB_LR11X0_LORA_CR_4_7_SHORT (0x03UL << 0) // 7 0 4/7 with short interleaver
+
370 #define RADIOLIB_LR11X0_LORA_CR_4_8_SHORT (0x04UL << 0) // 7 0 4/8 with short interleaver
+
371 #define RADIOLIB_LR11X0_LORA_CR_4_5_LONG (0x05UL << 0) // 7 0 4/5 with long interleaver
+
372 #define RADIOLIB_LR11X0_LORA_CR_4_6_LONG (0x06UL << 0) // 7 0 4/6 with long interleaver
+
373 #define RADIOLIB_LR11X0_LORA_CR_4_8_LONG (0x07UL << 0) // 7 0 4/8 with long interleaver
+
374 #define RADIOLIB_LR11X0_LORA_LDRO_DISABLED (0x00UL << 0) // 7 0 low data rate optimize: disabled
+
375 #define RADIOLIB_LR11X0_LORA_LDRO_ENABLED (0x01UL << 0) // 7 0 enabled
+
376 #define RADIOLIB_LR11X0_GFSK_BIT_RATE_DIV_DISABLED (0x00UL << 31) // 31 0 divide bit rate value by 256: disabled
+
377 #define RADIOLIB_LR11X0_GFSK_BIT_RATE_DIV_ENABLED (0x01UL << 31) // 31 0 enabled
+
378 #define RADIOLIB_LR11X0_GFSK_SHAPING_NONE (0x00UL << 0) // 7 0 shaping filter: none
+
379 #define RADIOLIB_LR11X0_GFSK_SHAPING_GAUSSIAN_BT_0_3 (0x08UL << 0) // 7 0 Gaussian, BT = 0.3
+
380 #define RADIOLIB_LR11X0_GFSK_SHAPING_GAUSSIAN_BT_0_5 (0x09UL << 0) // 7 0 Gaussian, BT = 0.5
+
381 #define RADIOLIB_LR11X0_GFSK_SHAPING_GAUSSIAN_BT_0_7 (0x0AUL << 0) // 7 0 Gaussian, BT = 0.7
+
382 #define RADIOLIB_LR11X0_GFSK_SHAPING_GAUSSIAN_BT_1_0 (0x0BUL << 0) // 7 0 Gaussian, BT = 1.0
+
383 #define RADIOLIB_LR11X0_GFSK_SHAPING_RAISED_COSINE_BT_0_7 (0x16UL << 0) // 7 0 raised cosine, BT = 0.7
+
384 #define RADIOLIB_LR11X0_GFSK_RX_BW_4_8 (0x1FUL << 0) // 7 0 GFSK Rx bandwidth: 4.8 kHz
+
385 #define RADIOLIB_LR11X0_GFSK_RX_BW_5_8 (0x17UL << 0) // 7 0 5.8 kHz
+
386 #define RADIOLIB_LR11X0_GFSK_RX_BW_7_3 (0x0FUL << 0) // 7 0 7.3 kHz
+
387 #define RADIOLIB_LR11X0_GFSK_RX_BW_9_7 (0x1EUL << 0) // 7 0 9.7 kHz
+
388 #define RADIOLIB_LR11X0_GFSK_RX_BW_11_7 (0x16UL << 0) // 7 0 11.7 kHz
+
389 #define RADIOLIB_LR11X0_GFSK_RX_BW_14_6 (0x0EUL << 0) // 7 0 14.6 kHz
+
390 #define RADIOLIB_LR11X0_GFSK_RX_BW_19_5 (0x1DUL << 0) // 7 0 19.5 kHz
+
391 #define RADIOLIB_LR11X0_GFSK_RX_BW_23_4 (0x15UL << 0) // 7 0 23.4 kHz
+
392 #define RADIOLIB_LR11X0_GFSK_RX_BW_29_3 (0x0DUL << 0) // 7 0 29.3 kHz
+
393 #define RADIOLIB_LR11X0_GFSK_RX_BW_39_0 (0x1CUL << 0) // 7 0 39.0 kHz
+
394 #define RADIOLIB_LR11X0_GFSK_RX_BW_46_9 (0x14UL << 0) // 7 0 46.9 kHz
+
395 #define RADIOLIB_LR11X0_GFSK_RX_BW_58_6 (0x0CUL << 0) // 7 0 58.6 kHz
+
396 #define RADIOLIB_LR11X0_GFSK_RX_BW_78_2 (0x1BUL << 0) // 7 0 78.2 kHz
+
397 #define RADIOLIB_LR11X0_GFSK_RX_BW_93_8 (0x13UL << 0) // 7 0 93.8 kHz
+
398 #define RADIOLIB_LR11X0_GFSK_RX_BW_117_3 (0x0BUL << 0) // 7 0 117.3 kHz
+
399 #define RADIOLIB_LR11X0_GFSK_RX_BW_156_2 (0x1AUL << 0) // 7 0 156.2 kHz
+
400 #define RADIOLIB_LR11X0_GFSK_RX_BW_187_2 (0x12UL << 0) // 7 0 187.2 kHz
+
401 #define RADIOLIB_LR11X0_GFSK_RX_BW_234_3 (0x0AUL << 0) // 7 0 234.3 kHz
+
402 #define RADIOLIB_LR11X0_GFSK_RX_BW_312_0 (0x19UL << 0) // 7 0 312.0 kHz
+
403 #define RADIOLIB_LR11X0_GFSK_RX_BW_373_6 (0x11UL << 0) // 7 0 373.6 kHz
+
404 #define RADIOLIB_LR11X0_GFSK_RX_BW_467_0 (0x09UL << 0) // 7 0 467.0 kHz
+
405 #define RADIOLIB_LR11X0_LR_FHSS_BIT_RATE (488.28215) // 31 0 LR FHSS bit rate: 488.28215 bps
+
406 #define RADIOLIB_LR11X0_LR_FHSS_BIT_RATE_RAW (0x8001E848UL) // 31 0 488.28215 bps in raw
+
407 #define RADIOLIB_LR11X0_LR_FHSS_SHAPING_GAUSSIAN_BT_1_0 (0x0BUL << 0) // 7 0 shaping filter: Gaussian, BT = 1.0
+
408 #define RADIOLIB_LR11X0_SIGFOX_SHAPING_GAUSSIAN_BT_0_7 (0x16UL << 0) // 7 0 shaping filter: Gaussian, BT = 0.7
+
409 
+
410 // RADIOLIB_LR11X0_CMD_SET_PACKET_PARAMS
+
411 #define RADIOLIB_LR11X0_LORA_HEADER_EXPLICIT (0x00UL << 0) // 7 0 LoRa header mode: explicit
+
412 #define RADIOLIB_LR11X0_LORA_HEADER_IMPLICIT (0x01UL << 0) // 7 0 implicit
+
413 #define RADIOLIB_LR11X0_LORA_PAYLOAD_LEN_ANY (0x00UL << 0) // 7 0 accept any payload length
+
414 #define RADIOLIB_LR11X0_LORA_CRC_ENABLED (0x01UL << 0) // 7 0 CRC: enabled
+
415 #define RADIOLIB_LR11X0_LORA_CRC_DISABLED (0x00UL << 0) // 7 0 disabled
+
416 #define RADIOLIB_LR11X0_LORA_IQ_STANDARD (0x00UL << 0) // 7 0 IQ setup: standard
+
417 #define RADIOLIB_LR11X0_LORA_IQ_INVERTED (0x01UL << 0) // 7 0 inverted
+
418 #define RADIOLIB_LR11X0_GFSK_PREAMBLE_DETECT_DISABLED (0x00UL << 0) // 7 0 preamble detector: disabled
+
419 #define RADIOLIB_LR11X0_GFSK_PREAMBLE_DETECT_8_BITS (0x04UL << 0) // 7 0 8 bits
+
420 #define RADIOLIB_LR11X0_GFSK_PREAMBLE_DETECT_16_BITS (0x05UL << 0) // 7 0 16 bits
+
421 #define RADIOLIB_LR11X0_GFSK_PREAMBLE_DETECT_24_BITS (0x06UL << 0) // 7 0 24 bits
+
422 #define RADIOLIB_LR11X0_GFSK_PREAMBLE_DETECT_32_BITS (0x07UL << 0) // 7 0 32 bits
+
423 #define RADIOLIB_LR11X0_GFSK_ADDR_FILTER_DISABLED (0x00UL << 0) // 7 0 address filtering: disabled
+
424 #define RADIOLIB_LR11X0_GFSK_ADDR_FILTER_NODE (0x01UL << 0) // 7 0 node address
+
425 #define RADIOLIB_LR11X0_GFSK_ADDR_FILTER_NODE_BROADCAST (0x02UL << 0) // 7 0 node and broadcast address
+
426 #define RADIOLIB_LR11X0_GFSK_PACKET_LENGTH_FIXED (0x00UL << 0) // 7 0 packet length: fixed
+
427 #define RADIOLIB_LR11X0_GFSK_PACKET_LENGTH_VARIABLE (0x01UL << 0) // 7 0 variable
+
428 #define RADIOLIB_LR11X0_GFSK_PACKET_LENGTH_VARIABLE_SX128X (0x02UL << 0) // 7 0 variable, SX128x 9-bit length encoding
+
429 #define RADIOLIB_LR11X0_GFSK_PAYLOAD_LEN_ANY (0x00UL << 0) // 7 0 accept any payload length
+
430 #define RADIOLIB_LR11X0_GFSK_CRC_DISABLED (0x01UL << 0) // 7 0 CRC: disabled
+
431 #define RADIOLIB_LR11X0_GFSK_CRC_1_BYTE (0x00UL << 0) // 7 0 1-byte
+
432 #define RADIOLIB_LR11X0_GFSK_CRC_2_BYTE (0x02UL << 0) // 7 0 2-byte
+
433 #define RADIOLIB_LR11X0_GFSK_CRC_1_BYTE_INV (0x04UL << 0) // 7 0 1-byte, inverted
+
434 #define RADIOLIB_LR11X0_GFSK_CRC_2_BYTE_INV (0x06UL << 0) // 7 0 2-byte, inverted
+
435 #define RADIOLIB_LR11X0_GFSK_WHITENING_DISABLED (0x00UL << 0) // 7 0 whitening: disabled
+
436 #define RADIOLIB_LR11X0_GFSK_WHITENING_ENABLED (0x01UL << 0) // 7 0 enabled
+
437 
+
438 // RADIOLIB_LR11X0_CMD_SET_TX_PARAMS
+
439 #define RADIOLIB_LR11X0_PA_RAMP_48U (0x02UL << 0) // 7 0 PA ramp time: 48 us
+
440 
+
441 // RADIOLIB_LR11X0_CMD_SET_RX_TX_FALLBACK_MODE
+
442 #define RADIOLIB_LR11X0_FALLBACK_MODE_STBY_RC (0x01UL << 0) // 1 0 fallback mode after Rx/Tx: standby with RC
+
443 #define RADIOLIB_LR11X0_FALLBACK_MODE_STBY_XOSC (0x02UL << 0) // 1 0 standby with XOSC
+
444 #define RADIOLIB_LR11X0_FALLBACK_MODE_FS (0x03UL << 0) // 1 0 frequency synthesis
+
445 
+
446 // RADIOLIB_LR11X0_CMD_SET_RX_DUTY_CYCLE
+
447 #define RADIOLIB_LR11X0_RX_DUTY_CYCLE_MODE_RX (0x00UL << 0) // 0 0 mode in Rx windows: Rx (default)
+
448 #define RADIOLIB_LR11X0_RX_DUTY_CYCLE_MODE_CAD (0x01UL << 0) // 0 0 CAD
+
449 #define RADIOLIB_LR11X0_TIMING_STEP (1.0f/32768.0f) // 23 0 timing step fo delays
+
450 
+
451 // RADIOLIB_LR11X0_CMD_SET_PA_CONFIG
+
452 #define RADIOLIB_LR11X0_PA_SEL_LP (0x00UL << 0) // 7 0 PA select: low power PA
+
453 #define RADIOLIB_LR11X0_PA_SEL_HP (0x01UL << 0) // 7 0 high power PA
+
454 #define RADIOLIB_LR11X0_PA_SEL_HF (0x02UL << 0) // 7 0 high frequency PA
+
455 #define RADIOLIB_LR11X0_PA_SUPPLY_INTERNAL (0x00UL << 0) // 7 0 PA power source: internal
+
456 #define RADIOLIB_LR11X0_PA_SUPPLY_VBAT (0x01UL << 0) // 7 0 VBAT (required for >= 14 dBm)
+
457 
+
458 // RADIOLIB_LR11X0_CMD_STOP_TIMEOUT_ON_PREAMBLE
+
459 #define RADIOLIB_LR11X0_STOP_ON_SYNC_HEADER (0x00UL << 0) // 0 0 stop timeout on: sync word or header (default)
+
460 #define RADIOLIB_LR11X0_STOP_ON_PREAMBLE (0x01UL << 0) // 0 0 preamble
+
461 
+
462 // RADIOLIB_LR11X0_CMD_GET_RANGING_RESULT
+
463 #define RADIOLIB_LR11X0_RANGING_RESULT_DISTANCE (0) // 7 0 ranging result type: distance
+
464 #define RADIOLIB_LR11X0_RANGING_RESULT_RSSI (1) // 7 0 RSSI
+
465 
+
466 // RADIOLIB_LR11X0_CMD_SET_RX_BOOSTED
+
467 #define RADIOLIB_LR11X0_RX_BOOSTED_ENABLED (0x01UL << 0) // 0 0 Rx boosted mode: enabled
+
468 #define RADIOLIB_LR11X0_RX_BOOSTED_DISABLED (0x00UL << 0) // 0 0 disabled
+
469 
+
470 // RADIOLIB_LR11X0_CMD_SET_LORA_SYNC_WORD
+
471 #define RADIOLIB_LR11X0_LORA_SYNC_WORD_PRIVATE (0x12)
+
472 #define RADIOLIB_LR11X0_LORA_SYNC_WORD_PUBLIC (0x34)
+
473 
+
474 // RADIOLIB_LR11X0_CMD_LR_FHSS_BUILD_FRAME
+
475 #define RADIOLIB_LR11X0_LR_FHSS_CR_5_6 (0x00UL << 0) // 7 0 LR FHSS coding rate: 5/6
+
476 #define RADIOLIB_LR11X0_LR_FHSS_CR_2_3 (0x01UL << 0) // 7 0 2/3
+
477 #define RADIOLIB_LR11X0_LR_FHSS_CR_1_2 (0x02UL << 0) // 7 0 1/2
+
478 #define RADIOLIB_LR11X0_LR_FHSS_CR_1_3 (0x03UL << 0) // 7 0 1/3
+
479 #define RADIOLIB_LR11X0_LR_FHSS_MOD_TYPE_GMSK (0x00UL << 0) // 7 0 LR FHSS modulation: GMSK
+
480 #define RADIOLIB_LR11X0_LR_FHSS_GRID_STEP_FCC (0x00UL << 0) // 7 0 LR FHSS step size: 25.390625 kHz (FCC)
+
481 #define RADIOLIB_LR11X0_LR_FHSS_GRID_STEP_NON_FCC (0x01UL << 0) // 7 0 3.90625 kHz (non-FCC)
+
482 #define RADIOLIB_LR11X0_LR_FHSS_HOPPING_DISABLED (0x00UL << 0) // 7 0 LR FHSS hopping: disabled
+
483 #define RADIOLIB_LR11X0_LR_FHSS_HOPPING_ENABLED (0x01UL << 0) // 7 0 enabled
+
484 #define RADIOLIB_LR11X0_LR_FHSS_BW_39_06 (0x00UL << 0) // 7 0 LR FHSS bandwidth: 39.06 kHz
+
485 #define RADIOLIB_LR11X0_LR_FHSS_BW_85_94 (0x01UL << 0) // 7 0 85.94 kHz
+
486 #define RADIOLIB_LR11X0_LR_FHSS_BW_136_72 (0x02UL << 0) // 7 0 136.72 kHz
+
487 #define RADIOLIB_LR11X0_LR_FHSS_BW_183_59 (0x03UL << 0) // 7 0 183.59 kHz
+
488 #define RADIOLIB_LR11X0_LR_FHSS_BW_335_94 (0x04UL << 0) // 7 0 335.94 kHz
+
489 #define RADIOLIB_LR11X0_LR_FHSS_BW_386_72 (0x05UL << 0) // 7 0 386.72 kHz
+
490 #define RADIOLIB_LR11X0_LR_FHSS_BW_722_66 (0x06UL << 0) // 7 0 722.66 kHz
+
491 #define RADIOLIB_LR11X0_LR_FHSS_BW_773_44 (0x07UL << 0) // 7 0 773.44 kHz
+
492 #define RADIOLIB_LR11X0_LR_FHSS_BW_1523_4 (0x08UL << 0) // 7 0 1523.4 kHz
+
493 #define RADIOLIB_LR11X0_LR_FHSS_BW_1574_2 (0x09UL << 0) // 7 0 1574.2 kHz
+
494 #define RADIOLIB_LR11X0_LR_FHSS_HEADER_BITS (114) // 7 0 LR FHSS packet bit widths: header
+
495 #define RADIOLIB_LR11X0_LR_FHSS_FRAG_BITS (48) // 7 0 payload fragment
+
496 #define RADIOLIB_LR11X0_LR_FHSS_BLOCK_PREAMBLE_BITS (2) // 7 0 block preamble
+
497 #define RADIOLIB_LR11X0_LR_FHSS_BLOCK_BITS (RADIOLIB_LR11X0_LR_FHSS_FRAG_BITS + RADIOLIB_LR11X0_LR_FHSS_BLOCK_PREAMBLE_BITS)
+
498 
+
499 // RADIOLIB_LR11X0_CMD_GET_LORA_RX_HEADER_INFOS
+
500 #define RADIOLIB_LR11X0_LAST_HEADER_CRC_ENABLED (0x01UL << 4) // 4 4 last header CRC: enabled
+
501 #define RADIOLIB_LR11X0_LAST_HEADER_CRC_DISABLED (0x00UL << 4) // 4 4 disabled
+
502 
+
503 // RADIOLIB_LR11X0_CMD_WIFI_SCAN
+
504 #define RADIOLIB_LR11X0_WIFI_SCAN_802_11_B (0x01UL << 0) // 7 0 Wi-Fi type to scan: 802.11b
+
505 #define RADIOLIB_LR11X0_WIFI_SCAN_802_11_G (0x02UL << 0) // 7 0 802.11g
+
506 #define RADIOLIB_LR11X0_WIFI_SCAN_802_11_N (0x03UL << 0) // 7 0 802.11n
+
507 #define RADIOLIB_LR11X0_WIFI_SCAN_ALL (0x04UL << 0) // 7 0 all (802.11b first)
+
508 #define RADIOLIB_LR11X0_WIFI_ACQ_MODE_BEACON_ONLY (0x01UL << 0) // 7 0 Wi-Fi acquisition mode: beacon only
+
509 #define RADIOLIB_LR11X0_WIFI_ACQ_MODE_BEACON_PACKET (0x02UL << 0) // 7 0 beacon and packet
+
510 #define RADIOLIB_LR11X0_WIFI_ACQ_MODE_FULL_TRAFFIC (0x03UL << 0) // 7 0 full traffic
+
511 #define RADIOLIB_LR11X0_WIFI_ACQ_MODE_FULL_BEACON (0x04UL << 0) // 7 0 full beacon
+
512 #define RADIOLIB_LR11X0_WIFI_ACQ_MODE_SSID_BEACON (0x05UL << 0) // 7 0 SSID beacon
+
513 #define RADIOLIB_LR11X0_WIFI_ABORT_ON_TIMEOUT_ENABLED (0x01UL << 0) // 7 0 abort scanning on preamble timeout: enabled
+
514 #define RADIOLIB_LR11X0_WIFI_ABORT_ON_TIMEOUT_DISABLED (0x00UL << 0) // 7 0 disabled
+
515 #define RADIOLIB_LR11X0_WIFI_MAX_NUM_RESULTS (32) // 7 0 maximum possible number of Wi-Fi scan results
+
516 #define RADIOLIB_LR11X0_WIFI_ALL_CHANNELS (0x3FFFUL) // 16 0 scan all channels
+
517 
+
518 // RADIOLIB_LR11X0_CMD_WIFI_READ_RESULTS
+
519 #define RADIOLIB_LR11X0_WIFI_RESULT_TYPE_COMPLETE (0x01UL << 0) // 7 0 Wi-Fi scan result type: complete
+
520 #define RADIOLIB_LR11X0_WIFI_RESULT_TYPE_BASIC (0x04UL << 0) // 7 0 basic
+
521 #define RADIOLIB_LR11X0_WIFI_RESULT_MAX_LEN (79) // 7 0 maximum possible Wi-Fi scan size
+
522 #define RADIOLIB_LR11X0_WIFI_RESULT_MAC_LEN (6) // 7 0 MAC address length in bytes
+
523 #define RADIOLIB_LR11X0_WIFI_RESULT_SSID_LEN (32) // 7 0 SSID length in bytes
+
524 
+
525 // RADIOLIB_LR11X0_CMD_GNSS_SET_CONSTELLATION_TO_USE
+
526 #define RADIOLIB_LR11X0_GNSS_CONSTELLATION_GPS (0x01UL << 0) // 7 0 GNSS constellation to use: GPS
+
527 #define RADIOLIB_LR11X0_GNSS_CONSTELLATION_BEIDOU (0x01UL << 1) // 7 0 BeiDou
+
528 
+
529 // RADIOLIB_LR11X0_CMD_GNSS_SET_MODE
+
530 #define RADIOLIB_LR11X0_GNSS_MODE_SINGLE_SCAN (0x00UL << 0) // 7 0 GNSS scanning mode: single/legacy
+
531 #define RADIOLIB_LR11X0_GNSS_MODE_SINGLE_MULTIPLE (0x03UL << 1) // 7 0 multiple/advanced
+
532 
+
533 // RADIOLIB_LR11X0_CMD_GNSS_AUTONOMOUS
+
534 #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)
+
535 #define RADIOLIB_LR11X0_GNSS_RES_PSEUDO_DOPPLER_DISABLED (0x00UL << 0) // 0 0 not included
+
536 #define RADIOLIB_LR11X0_GNSS_RES_DOPPLER_ENABLED (0x01UL << 1) // 1 1 Doppler information
+
537 #define RADIOLIB_LR11X0_GNSS_RES_DOPPLER_DISABLED (0x00UL << 1) // 1 1 not included
+
538 #define RADIOLIB_LR11X0_GNSS_NB_SV_ALL (0x00UL << 0) // 7 0 include all detected satellites
+
539 #define RADIOLIB_LR11X0_GNSS_AUTO_EFFORT_MODE (0x00UL << 0) // 7 0 reserved, always 0
+
540 
+
541 // RADIOLIB_LR11X0_CMD_GNSS_ASSISTED
+
542 #define RADIOLIB_LR11X0_GNSS_ASSIST_LOW_POWER (0x00UL << 0) // 7 0 effort mode: low power
+
543 #define RADIOLIB_LR11X0_GNSS_ASSIST_BEST_EFFORT (0x01UL << 0) // 7 0 best effort
+
544 
+
545 // RADIOLIB_LR11X0_CMD_GNSS_GET_CONTEXT_STATUS
+
546 #define RADIOLIB_LR11X0_GNSS_CONTEXT_ERR_NONE (0x00UL << 0) // 7 4 error code: none
+
547 #define RADIOLIB_LR11X0_GNSS_CONTEXT_ERR_ALMANAC_OLD (0x01UL << 0) // 7 4 almanac too old
+
548 #define RADIOLIB_LR11X0_GNSS_CONTEXT_ERR_ALMANAC_CRC (0x02UL << 0) // 7 4 almanac CRC mismatch
+
549 #define RADIOLIB_LR11X0_GNSS_CONTEXT_ERR_FLASH (0x03UL << 0) // 7 4 flash integrity error
+
550 #define RADIOLIB_LR11X0_GNSS_CONTEXT_ERR_ALMANAC_UPD (0x04UL << 0) // 7 4 almanac update not allowed
+
551 #define RADIOLIB_LR11X0_GNSS_CONTEXT_FREQ_SPACE_250_HZ (0x00UL << 0) // 8 7 frequency search space: 250 Hz
+
552 #define RADIOLIB_LR11X0_GNSS_CONTEXT_FREQ_SPACE_500_HZ (0x01UL << 0) // 8 7 500 H
+
553 #define RADIOLIB_LR11X0_GNSS_CONTEXT_FREQ_SPACE_1000_HZ (0x02UL << 0) // 8 7 1000 Hz
+
554 #define RADIOLIB_LR11X0_GNSS_CONTEXT_FREQ_SPACE_2000_HZ (0x03UL << 0) // 8 7 2000 Hz
+
555 
+
556 // RADIOLIB_LR11X0_CMD_GNSS_GET_SV_VISIBLE
+
557 #define RADIOLIB_LR11X0_SV_CONSTELLATION_GPS (0x00UL << 0) // 7 0 GNSS constellation: GPS
+
558 #define RADIOLIB_LR11X0_SV_CONSTELLATION_BEIDOU (0x01UL << 0) // 7 0 BeiDou
+
559 
+
560 // RADIOLIB_LR11X0_CMD_GNSS_ALMANAC_FULL_UPDATE
+
561 #define RADIOLIB_LR11X0_GNSS_ALMANAC_HEADER_ID (0x80UL << 0) // 7 0 starting byte of GNSS almanac header
+
562 #define RADIOLIB_LR11X0_GNSS_ALMANAC_BLOCK_SIZE (20)
+
563 
+
564 // RADIOLIB_LR11X0_CMD_CRYPTO_SET_KEY
+
565 #define RADIOLIB_LR11X0_CRYPTO_STATUS_SUCCESS (0x00UL << 0) // 7 0 crypto engine status: success
+
566 #define RADIOLIB_LR11X0_CRYPTO_STATUS_FAIL_CMAC (0x01UL << 0) // 7 0 MIC check failed
+
567 #define RADIOLIB_LR11X0_CRYPTO_STATUS_INV_KEY_ID (0x03UL << 0) // 7 0 key/parameter source or destination ID error
+
568 #define RADIOLIB_LR11X0_CRYPTO_STATUS_BUF_SIZE (0x05UL << 0) // 7 0 data buffer size invalid
+
569 #define RADIOLIB_LR11X0_CRYPTO_STATUS_ERROR (0x06UL << 0) // 7 0 generic error
+
570 
+
571 // RADIOLIB_LR11X0_CMD_CRYPTO_PROCESS_JOIN_ACCEPT
+
572 #define RADIOLIB_LR11X0_CRYPTO_LORAWAN_VERSION_1_0 (0x00UL << 0) // 7 0 LoRaWAN version: 1.0.x
+
573 #define RADIOLIB_LR11X0_CRYPTO_LORAWAN_VERSION_1_1 (0x01UL << 0) // 7 0 1.1
+
574 
+
575 // LR11X0 SPI register variables
+
576 
+
577 // RADIOLIB_LR11X0_REG_SF6_SX127X_COMPAT
+
578 #define RADIOLIB_LR11X0_SF6_SX126X (0x00UL << 18) // 18 18 SF6 mode: SX126x series
+
579 #define RADIOLIB_LR11X0_SF6_SX127X (0x01UL << 18) // 18 18 SX127x series
+
580 
+
581 // RADIOLIB_LR11X0_REG_LORA_HIGH_POWER_FIX
+
582 #define RADIOLIB_LR11X0_LORA_HIGH_POWER_FIX (0x00UL << 30) // 30 30 fix for errata
+
583 
+
584 // RADIOLIB_LR11X0_REG_LNA_MODE
+
585 #define RADIOLIB_LR11X0_LNA_MODE_SINGLE_RFI_N (0x01UL << 4) // 7 4 LNA mode: single-ended RFI_N
+
586 #define RADIOLIB_LR11X0_LNA_MODE_SINGLE_RFI_P (0x02UL << 4) // 7 4 single-ended RFI_P
+
587 #define RADIOLIB_LR11X0_LNA_MODE_DIFFERENTIAL (0x03UL << 4) // 7 4 differential (default)
+
588 
+
594 struct LR11x0WifiResult_t {
+
596  char type;
597 
-
599  uint8_t origin;
+
599  uint8_t dataRateId;
600 
-
602  bool ap;
+
602  uint16_t channelFreq;
603 
-
605  float rssi;
+
605  uint8_t origin;
606 
-
608  uint8_t mac[RADIOLIB_LR11X0_WIFI_RESULT_MAC_LEN];
-
609 };
-
610 
-
616 struct LR11x0WifiResultFull_t: public LR11x0WifiResult_t {
-
618  uint8_t frameType;
-
619 
-
621  uint8_t frameSubType;
-
622 
-
624  bool toDistributionSystem;
+
608  bool ap;
+
609 
+
611  float rssi;
+
612 
+
614  uint8_t mac[RADIOLIB_LR11X0_WIFI_RESULT_MAC_LEN];
+
615 };
+
616 
+
622 struct LR11x0WifiResultFull_t: public LR11x0WifiResult_t {
+
624  uint8_t frameType;
625 
-
627  bool fromDistributionSystem;
+
627  uint8_t frameSubType;
628 
-
630  uint16_t phiOffset;
+
630  bool toDistributionSystem;
631 
-
633  uint64_t timestamp;
+
633  bool fromDistributionSystem;
634 
-
636  uint32_t periodBeacon;
-
637 };
-
638 
-
646 struct LR11x0WifiResultExtended_t: public LR11x0WifiResultFull_t {
-
648  uint8_t rate;
-
649 
-
651  uint16_t service;
-
652 
-
654  uint16_t length;
+
636  uint16_t phiOffset;
+
637 
+
639  uint64_t timestamp;
+
640 
+
642  uint32_t periodBeacon;
+
643 };
+
644 
+
652 struct LR11x0WifiResultExtended_t: public LR11x0WifiResultFull_t {
+
654  uint8_t rate;
655 
-
657  uint8_t mac0[RADIOLIB_LR11X0_WIFI_RESULT_MAC_LEN];
+
657  uint16_t service;
658 
-
660  uint8_t mac2[RADIOLIB_LR11X0_WIFI_RESULT_MAC_LEN];
+
660  uint16_t length;
661 
-
663  uint16_t seqCtrl;
+
663  uint8_t mac0[RADIOLIB_LR11X0_WIFI_RESULT_MAC_LEN];
664 
-
666  uint8_t ssid[RADIOLIB_LR11X0_WIFI_RESULT_SSID_LEN];
+
666  uint8_t mac2[RADIOLIB_LR11X0_WIFI_RESULT_MAC_LEN];
667 
-
669  uint8_t currentChannel;
+
669  uint16_t seqCtrl;
670 
-
672  char countryCode[3];
+
672  uint8_t ssid[RADIOLIB_LR11X0_WIFI_RESULT_SSID_LEN];
673 
-
675  uint8_t ioReg;
+
675  uint8_t currentChannel;
676 
-
678  bool fcsCheckOk;
-
679 };
-
680 
-
685 struct LR11x0VersionInfo_t {
-
687  uint8_t hardware;
-
688 
-
690  uint8_t device;
-
691 
-
693  uint8_t fwMajor;
-
694 
-
696  uint8_t fwMinor;
-
697 
-
699  uint8_t fwMajorWiFi;
+
678  char countryCode[3];
+
679 
+
681  uint8_t ioReg;
+
682 
+
684  bool fcsCheckOk;
+
685 };
+
686 
+
691 struct LR11x0VersionInfo_t {
+
693  uint8_t hardware;
+
694 
+
696  uint8_t device;
+
697 
+
699  uint8_t fwMajor;
700 
-
702  uint8_t fwMinorWiFi;
+
702  uint8_t fwMinor;
703 
-
705  uint8_t fwGNSS;
+
705  uint8_t fwMajorWiFi;
706 
-
708  uint8_t almanacGNSS;
-
709 };
-
710 
-
711 struct LR11x0GnssResult_t {
-
712 
-
713 };
-
714 
-
720 class LR11x0: public PhysicalLayer {
-
721  public:
-
722  // introduce PhysicalLayer overloads
-
723  using PhysicalLayer::transmit;
-
724  using PhysicalLayer::receive;
-
725  using PhysicalLayer::startTransmit;
-
726  using PhysicalLayer::readData;
-
727 
-
732  explicit LR11x0(Module* mod);
+
708  uint8_t fwMinorWiFi;
+
709 
+
711  uint8_t fwGNSS;
+
712 
+
714  uint8_t almanacGNSS;
+
715 };
+
716 
+
717 struct LR11x0GnssResult_t {
+
718 
+
719 };
+
720 
+
726 class LR11x0: public PhysicalLayer {
+
727  public:
+
728  // introduce PhysicalLayer overloads
+
729  using PhysicalLayer::transmit;
+
730  using PhysicalLayer::receive;
+
731  using PhysicalLayer::startTransmit;
+
732  using PhysicalLayer::readData;
733 
-
738  enum OpMode_t {
-
740  MODE_END_OF_TABLE = Module::MODE_END_OF_TABLE,
-
742  MODE_STBY = Module::MODE_IDLE,
-
744  MODE_RX = Module::MODE_RX,
-
746  MODE_TX = Module::MODE_TX,
-
748  MODE_TX_HP,
-
750  MODE_TX_HF,
-
752  MODE_GNSS,
-
754  MODE_WIFI,
-
755  };
-
756 
-
760  bool XTAL;
-
761 
-
772  int16_t begin(float bw, uint8_t sf, uint8_t cr, uint8_t syncWord, uint16_t preambleLength, float tcxoVoltage);
-
773 
-
783  int16_t beginGFSK(float br, float freqDev, float rxBw, uint16_t preambleLength, float tcxoVoltage);
-
784 
-
792  int16_t beginLRFHSS(uint8_t bw, uint8_t cr, float tcxoVoltage);
-
793 
-
798  int16_t reset();
+
738  explicit LR11x0(Module* mod);
+
739 
+
744  enum OpMode_t {
+
746  MODE_END_OF_TABLE = Module::MODE_END_OF_TABLE,
+
748  MODE_STBY = Module::MODE_IDLE,
+
750  MODE_RX = Module::MODE_RX,
+
752  MODE_TX = Module::MODE_TX,
+
754  MODE_TX_HP,
+
756  MODE_TX_HF,
+
758  MODE_GNSS,
+
760  MODE_WIFI,
+
761  };
+
762 
+
766  bool XTAL;
+
767 
+
778  int16_t begin(float bw, uint8_t sf, uint8_t cr, uint8_t syncWord, uint16_t preambleLength, float tcxoVoltage);
+
779 
+
789  int16_t beginGFSK(float br, float freqDev, float rxBw, uint16_t preambleLength, float tcxoVoltage);
+
790 
+
798  int16_t beginLRFHSS(uint8_t bw, uint8_t cr, float tcxoVoltage);
799 
-
808  int16_t transmit(const uint8_t* data, size_t len, uint8_t addr = 0) override;
-
809 
-
817  int16_t receive(uint8_t* data, size_t len) override;
-
818 
-
824  int16_t transmitDirect(uint32_t frf = 0) override;
-
825 
-
831  int16_t receiveDirect() override;
-
832 
-
837  int16_t scanChannel() override;
+
804  int16_t reset();
+
805 
+
814  int16_t transmit(const uint8_t* data, size_t len, uint8_t addr = 0) override;
+
815 
+
823  int16_t receive(uint8_t* data, size_t len) override;
+
824 
+
830  int16_t transmitDirect(uint32_t frf = 0) override;
+
831 
+
837  int16_t receiveDirect() override;
838 
-
846  int16_t scanChannel(uint8_t symbolNum, uint8_t detPeak, uint8_t detMin);
-
847 
-
852  int16_t standby() override;
+
843  int16_t scanChannel() override;
+
844 
+
852  int16_t scanChannel(uint8_t symbolNum, uint8_t detPeak, uint8_t detMin);
853 
-
861  int16_t standby(uint8_t mode, bool wakeup = true);
-
862 
-
868  int16_t sleep() override;
-
869 
-
877  int16_t sleep(bool retainConfig, uint32_t sleepTime);
-
878 
-
879  // interrupt methods
-
880 
-
885  void setIrqAction(void (*func)(void));
+
858  int16_t standby() override;
+
859 
+
867  int16_t standby(uint8_t mode, bool wakeup = true);
+
868 
+
874  int16_t sleep() override;
+
875 
+
883  int16_t sleep(bool retainConfig, uint32_t sleepTime);
+
884 
+
885  // interrupt methods
886 
-
890  void clearIrqAction();
-
891 
-
896  void setPacketReceivedAction(void (*func)(void)) override;
+
891  void setIrqAction(void (*func)(void));
+
892 
+
896  void clearIrqAction();
897 
-
901  void clearPacketReceivedAction() override;
-
902 
-
907  void setPacketSentAction(void (*func)(void)) override;
+
902  void setPacketReceivedAction(void (*func)(void)) override;
+
903 
+
907  void clearPacketReceivedAction() override;
908 
-
912  void clearPacketSentAction() override;
-
913 
-
922  int16_t startTransmit(const uint8_t* data, size_t len, uint8_t addr = 0) override;
-
923 
-
928  int16_t finishTransmit() override;
+
913  void setPacketSentAction(void (*func)(void)) override;
+
914 
+
918  void clearPacketSentAction() override;
+
919 
+
928  int16_t startTransmit(const uint8_t* data, size_t len, uint8_t addr = 0) override;
929 
-
936  int16_t startReceive() override;
-
937 
-
950  int16_t startReceive(uint32_t timeout, uint32_t irqFlags = RADIOLIB_LR11X0_IRQ_RX_DONE, uint32_t irqMask = 0, size_t len = 0);
-
951 
-
956  uint32_t getIrqStatus();
+
934  int16_t finishTransmit() override;
+
935 
+
942  int16_t startReceive() override;
+
943 
+
956  int16_t startReceive(uint32_t timeout, uint32_t irqFlags = RADIOLIB_LR11X0_IRQ_RX_DONE, uint32_t irqMask = 0, size_t len = 0);
957 
-
966  int16_t readData(uint8_t* data, size_t len) override;
-
967 
-
973  int16_t startChannelScan() override;
-
974 
-
983  int16_t startChannelScan(uint8_t symbolNum, uint8_t detPeak, uint8_t detMin);
-
984 
-
989  int16_t getChannelScanResult() override;
+
962  uint32_t getIrqStatus();
+
963 
+
972  int16_t readData(uint8_t* data, size_t len) override;
+
973 
+
979  int16_t startChannelScan() override;
+
980 
+
989  int16_t startChannelScan(uint8_t symbolNum, uint8_t detPeak, uint8_t detMin);
990 
-
991  // configuration methods
-
992 
-
998  int16_t setBandwidth(float bw);
-
999 
-
1006  int16_t setSpreadingFactor(uint8_t sf, bool legacy = false);
-
1007 
-
1015  int16_t setCodingRate(uint8_t cr, bool longInterleave = false);
-
1016 
-
1022  int16_t setSyncWord(uint32_t syncWord);
-
1023 
-
1029  int16_t setBitRate(float br) override;
-
1030 
-
1036  int16_t setFrequencyDeviation(float freqDev) override;
-
1037 
-
1044  int16_t setRxBandwidth(float rxBw);
-
1045 
-
1052  int16_t setSyncWord(uint8_t* syncWord, size_t len) override;
-
1053 
-
1061  int16_t setSyncBits(uint8_t *syncWord, uint8_t bitsLen);
-
1062 
-
1068  int16_t setNodeAddress(uint8_t nodeAddr);
-
1069 
-
1076  int16_t setBroadcastAddress(uint8_t broadAddr);
-
1077 
-
1082  int16_t disableAddressFiltering();
+
995  int16_t getChannelScanResult() override;
+
996 
+
997  // configuration methods
+
998 
+
1004  int16_t setBandwidth(float bw);
+
1005 
+
1012  int16_t setSpreadingFactor(uint8_t sf, bool legacy = false);
+
1013 
+
1021  int16_t setCodingRate(uint8_t cr, bool longInterleave = false);
+
1022 
+
1028  int16_t setSyncWord(uint32_t syncWord);
+
1029 
+
1035  int16_t setBitRate(float br) override;
+
1036 
+
1042  int16_t setFrequencyDeviation(float freqDev) override;
+
1043 
+
1050  int16_t setRxBandwidth(float rxBw);
+
1051 
+
1058  int16_t setSyncWord(uint8_t* syncWord, size_t len) override;
+
1059 
+
1067  int16_t setSyncBits(uint8_t *syncWord, uint8_t bitsLen);
+
1068 
+
1074  int16_t setNodeAddress(uint8_t nodeAddr);
+
1075 
+
1082  int16_t setBroadcastAddress(uint8_t broadAddr);
1083 
-
1091  int16_t setDataShaping(uint8_t sh) override;
-
1092 
-
1098  int16_t setEncoding(uint8_t encoding) override;
-
1099 
-
1105  int16_t fixedPacketLengthMode(uint8_t len = RADIOLIB_LR11X0_MAX_PACKET_LENGTH);
-
1106 
-
1112  int16_t variablePacketLengthMode(uint8_t maxLen = RADIOLIB_LR11X0_MAX_PACKET_LENGTH);
-
1113 
-
1121  int16_t setWhitening(bool enabled, uint16_t initial = 0x01FF);
-
1122 
-
1128  int16_t setDataRate(DataRate_t dr) override;
-
1129 
-
1135  int16_t checkDataRate(DataRate_t dr) override;
-
1136 
-
1142  int16_t setPreambleLength(size_t preambleLength) override;
-
1143 
-
1152  int16_t setTCXO(float voltage, uint32_t delay = 5000);
-
1153 
-
1162  int16_t setCRC(uint8_t len, uint32_t initial = 0x00001D0FUL, uint32_t polynomial = 0x00001021UL, bool inverted = true);
-
1163 
-
1169  int16_t invertIQ(bool enable) override;
-
1170 
-
1175  float getRSSI() override;
+
1088  int16_t disableAddressFiltering();
+
1089 
+
1097  int16_t setDataShaping(uint8_t sh) override;
+
1098 
+
1104  int16_t setEncoding(uint8_t encoding) override;
+
1105 
+
1111  int16_t fixedPacketLengthMode(uint8_t len = RADIOLIB_LR11X0_MAX_PACKET_LENGTH);
+
1112 
+
1118  int16_t variablePacketLengthMode(uint8_t maxLen = RADIOLIB_LR11X0_MAX_PACKET_LENGTH);
+
1119 
+
1127  int16_t setWhitening(bool enabled, uint16_t initial = 0x01FF);
+
1128 
+
1134  int16_t setDataRate(DataRate_t dr) override;
+
1135 
+
1141  int16_t checkDataRate(DataRate_t dr) override;
+
1142 
+
1148  int16_t setPreambleLength(size_t preambleLength) override;
+
1149 
+
1158  int16_t setTCXO(float voltage, uint32_t delay = 5000);
+
1159 
+
1168  int16_t setCRC(uint8_t len, uint32_t initial = 0x00001D0FUL, uint32_t polynomial = 0x00001021UL, bool inverted = true);
+
1169 
+
1175  int16_t invertIQ(bool enable) override;
1176 
-
1181  float getSNR() override;
+
1181  float getRSSI() override;
1182 
-
1187  float getFrequencyError();
+
1187  float getSNR() override;
1188 
-
1194  size_t getPacketLength(bool update = true) override;
-
1195 
-
1201  size_t getPacketLength(bool update, uint8_t* offset);
-
1202 
-
1208  RadioLibTime_t getTimeOnAir(size_t len) override;
-
1209 
-
1215  RadioLibTime_t calculateRxTimeout(RadioLibTime_t timeoutUs) override;
-
1216 
-
1223  int16_t irqRxDoneRxTimeout(uint32_t &irqFlags, uint32_t &irqMask) override;
-
1224 
-
1229  bool isRxTimeout() override;
+
1193  float getFrequencyError();
+
1194 
+
1200  size_t getPacketLength(bool update = true) override;
+
1201 
+
1207  size_t getPacketLength(bool update, uint8_t* offset);
+
1208 
+
1214  RadioLibTime_t getTimeOnAir(size_t len) override;
+
1215 
+
1221  RadioLibTime_t calculateRxTimeout(RadioLibTime_t timeoutUs) override;
+
1222 
+
1229  int16_t irqRxDoneRxTimeout(uint32_t &irqFlags, uint32_t &irqMask) override;
1230 
-
1235  uint8_t randomByte() override;
+
1235  bool isRxTimeout() override;
1236 
-
1242  int16_t implicitHeader(size_t len);
-
1243 
-
1248  int16_t explicitHeader();
+
1241  uint8_t randomByte() override;
+
1242 
+
1248  int16_t implicitHeader(size_t len);
1249 
-
1254  float getDataRate() const;
+
1254  int16_t explicitHeader();
1255 
-
1260  int16_t setRegulatorLDO();
+
1260  float getDataRate() const;
1261 
-
1266  int16_t setRegulatorDCDC();
+
1266  int16_t setRegulatorLDO();
1267 
-
1273  int16_t setRxBoostedGainMode(bool en);
-
1274 
-
1276  void setRfSwitchTable(const uint32_t (&pins)[Module::RFSWITCH_MAX_PINS], const Module::RfSwitchMode_t table[]);
-
1277 
-
1286  int16_t setLrFhssConfig(uint8_t bw, uint8_t cr, uint8_t hdrCount = 3, uint16_t hopSeed = 0x13A);
-
1287 
-
1302  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);
-
1303 
-
1308  void setWiFiScanAction(void (*func)(void));
+
1272  int16_t setRegulatorDCDC();
+
1273 
+
1279  int16_t setRxBoostedGainMode(bool en);
+
1280 
+
1282  void setRfSwitchTable(const uint32_t (&pins)[Module::RFSWITCH_MAX_PINS], const Module::RfSwitchMode_t table[]);
+
1283 
+
1292  int16_t setLrFhssConfig(uint8_t bw, uint8_t cr, uint8_t hdrCount = 3, uint16_t hopSeed = 0x13A);
+
1293 
+
1308  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);
1309 
-
1313  void clearWiFiScanAction();
-
1314 
-
1320  int16_t getWifiScanResultsCount(uint8_t* count);
-
1321 
-
1331  int16_t getWifiScanResult(LR11x0WifiResult_t* result, uint8_t index, bool brief = false);
-
1332 
-
1349  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);
-
1350 
-
1356  int16_t getVersionInfo(LR11x0VersionInfo_t* info);
-
1357 
-
1368  int16_t updateFirmware(const uint32_t* image, size_t size, bool nonvolatile = true);
-
1369 
-
1375  int16_t isGnssScanCapable();
-
1376 
-
1383  int16_t gnssScan(uint16_t* resSize);
-
1384 
-
1391  int16_t getGnssScanResult(uint16_t size);
-
1392 
-
1401  int16_t getGnssPosition(float* lat, float* lon, bool filtered = true);
-
1402 
-
1403 #if !RADIOLIB_GODMODE && !RADIOLIB_LOW_LEVEL
-
1404  protected:
-
1405 #endif
-
1406  Module* getMod() override;
-
1407 
-
1408  // LR11x0 SPI command implementations
-
1409  int16_t writeRegMem32(uint32_t addr, uint32_t* data, size_t len);
-
1410  int16_t readRegMem32(uint32_t addr, uint32_t* data, size_t len);
-
1411  int16_t writeBuffer8(uint8_t* data, size_t len);
-
1412  int16_t readBuffer8(uint8_t* data, size_t len, size_t offset);
-
1413  int16_t clearRxBuffer(void);
-
1414  int16_t writeRegMemMask32(uint32_t addr, uint32_t mask, uint32_t data);
-
1415 
-
1416  int16_t getStatus(uint8_t* stat1, uint8_t* stat2, uint32_t* irq);
-
1417  int16_t getVersion(uint8_t* hw, uint8_t* device, uint8_t* major, uint8_t* minor);
-
1418  int16_t getErrors(uint16_t* err);
-
1419  int16_t clearErrors(void);
-
1420  int16_t calibrate(uint8_t params);
-
1421  int16_t setRegMode(uint8_t mode);
-
1422  int16_t calibImage(float freq1, float freq2);
-
1423  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);
-
1424  int16_t setDioIrqParams(uint32_t irq1, uint32_t irq2);
-
1425  int16_t setDioIrqParams(uint32_t irq);
-
1426  int16_t clearIrq(uint32_t irq);
-
1427  int16_t configLfClock(uint8_t setup);
-
1428  int16_t setTcxoMode(uint8_t tune, uint32_t delay);
-
1429  int16_t reboot(bool stay);
-
1430  int16_t getVbat(float* vbat);
-
1431  int16_t getTemp(float* temp);
-
1432  int16_t setFs(void);
-
1433  int16_t getRandomNumber(uint32_t* rnd);
-
1434  int16_t eraseInfoPage(void);
-
1435  int16_t writeInfoPage(uint16_t addr, const uint32_t* data, size_t len);
-
1436  int16_t readInfoPage(uint16_t addr, uint32_t* data, size_t len);
-
1437  int16_t getChipEui(uint8_t* eui);
-
1438  int16_t getSemtechJoinEui(uint8_t* eui);
-
1439  int16_t deriveRootKeysAndGetPin(uint8_t* pin);
-
1440  int16_t enableSpiCrc(bool en);
-
1441  int16_t driveDiosInSleepMode(bool en);
-
1442 
-
1443  int16_t resetStats(void);
-
1444  int16_t getStats(uint16_t* nbPktReceived, uint16_t* nbPktCrcError, uint16_t* data1, uint16_t* data2);
-
1445  int16_t getPacketType(uint8_t* type);
-
1446  int16_t getRxBufferStatus(uint8_t* len, uint8_t* startOffset);
-
1447  int16_t getPacketStatusLoRa(float* rssiPkt, float* snrPkt, float* signalRssiPkt);
-
1448  int16_t getPacketStatusGFSK(float* rssiSync, float* rssiAvg, uint8_t* rxLen, uint8_t* stat);
-
1449  int16_t getRssiInst(float* rssi);
-
1450  int16_t setGfskSyncWord(uint8_t* sync);
-
1451  int16_t setLoRaPublicNetwork(bool pub);
-
1452  int16_t setRx(uint32_t timeout);
-
1453  int16_t setTx(uint32_t timeout);
-
1454  int16_t setRfFrequency(uint32_t rfFreq);
-
1455  int16_t autoTxRx(uint32_t delay, uint8_t intMode, uint32_t timeout);
-
1456  int16_t setCadParams(uint8_t symNum, uint8_t detPeak, uint8_t detMin, uint8_t cadExitMode, uint32_t timeout);
-
1457  int16_t setPacketType(uint8_t type);
-
1458  int16_t setModulationParamsLoRa(uint8_t sf, uint8_t bw, uint8_t cr, uint8_t ldro);
-
1459  int16_t setModulationParamsGFSK(uint32_t br, uint8_t sh, uint8_t rxBw, uint32_t freqDev);
-
1460  int16_t setModulationParamsLrFhss(uint32_t br, uint8_t sh);
-
1461  int16_t setModulationParamsSigfox(uint32_t br, uint8_t sh);
-
1462  int16_t setPacketParamsLoRa(uint16_t preambleLen, uint8_t hdrType, uint8_t payloadLen, uint8_t crcType, uint8_t invertIQ);
-
1463  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);
-
1464  int16_t setPacketParamsSigfox(uint8_t payloadLen, uint16_t rampUpDelay, uint16_t rampDownDelay, uint16_t bitNum);
-
1465  int16_t setTxParams(int8_t pwr, uint8_t ramp);
-
1466  int16_t setPacketAdrs(uint8_t node, uint8_t broadcast);
-
1467  int16_t setRxTxFallbackMode(uint8_t mode);
-
1468  int16_t setRxDutyCycle(uint32_t rxPeriod, uint32_t sleepPeriod, uint8_t mode);
-
1469  int16_t setPaConfig(uint8_t paSel, uint8_t regPaSupply, uint8_t paDutyCycle, uint8_t paHpSel);
-
1470  int16_t stopTimeoutOnPreamble(bool stop);
-
1471  int16_t setCad(void);
-
1472  int16_t setTxCw(void);
-
1473  int16_t setTxInfinitePreamble(void);
-
1474  int16_t setLoRaSynchTimeout(uint8_t symbolNum);
-
1475  int16_t setRangingAddr(uint32_t addr, uint8_t checkLen);
-
1476  int16_t setRangingReqAddr(uint32_t addr);
-
1477  int16_t getRangingResult(uint8_t type, float* res);
-
1478  int16_t setRangingTxRxDelay(uint32_t delay);
-
1479  int16_t setGfskCrcParams(uint32_t init, uint32_t poly);
-
1480  int16_t setGfskWhitParams(uint16_t seed);
-
1481  int16_t setRangingParameter(uint8_t symbolNum);
-
1482  int16_t setRssiCalibration(const int8_t* tune, int16_t gainOffset);
-
1483  int16_t setLoRaSyncWord(uint8_t sync);
-
1484  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);
-
1485  int16_t lrFhssSetSyncWord(uint32_t sync);
-
1486  int16_t configBleBeacon(uint8_t chan, uint8_t* payload, size_t len);
-
1487  int16_t getLoRaRxHeaderInfos(uint8_t* info);
-
1488  int16_t bleBeaconSend(uint8_t chan, uint8_t* payload, size_t len);
-
1489 
-
1490  int16_t wifiScan(uint8_t type, uint16_t mask, uint8_t acqMode, uint8_t nbMaxRes, uint8_t nbScanPerChan, uint16_t timeout, uint8_t abortOnTimeout);
-
1491  int16_t wifiScanTimeLimit(uint8_t type, uint16_t mask, uint8_t acqMode, uint8_t nbMaxRes, uint16_t timePerChan, uint16_t timeout);
-
1492  int16_t wifiCountryCode(uint16_t mask, uint8_t nbMaxRes, uint8_t nbScanPerChan, uint16_t timeout, uint8_t abortOnTimeout);
-
1493  int16_t wifiCountryCodeTimeLimit(uint16_t mask, uint8_t nbMaxRes, uint16_t timePerChan, uint16_t timeout);
-
1494  int16_t wifiGetNbResults(uint8_t* nbResults);
-
1495  int16_t wifiReadResults(uint8_t index, uint8_t nbResults, uint8_t format, uint8_t* results);
-
1496  int16_t wifiResetCumulTimings(void);
-
1497  int16_t wifiReadCumulTimings(uint32_t* detection, uint32_t* capture, uint32_t* demodulation);
-
1498  int16_t wifiGetNbCountryCodeResults(uint8_t* nbResults);
-
1499  int16_t wifiReadCountryCodeResults(uint8_t index, uint8_t nbResults, uint8_t* results);
-
1500  int16_t wifiCfgTimestampAPphone(uint32_t timestamp);
-
1501  int16_t wifiReadVersion(uint8_t* major, uint8_t* minor);
-
1502 
-
1503  int16_t gnssReadRssi(int8_t* rssi);
-
1504  int16_t gnssSetConstellationToUse(uint8_t mask);
-
1505  int16_t gnssReadConstellationToUse(uint8_t* mask);
-
1506  int16_t gnssSetAlmanacUpdate(uint8_t mask);
-
1507  int16_t gnssReadAlmanacUpdate(uint8_t* mask);
-
1508  int16_t gnssSetFreqSearchSpace(uint8_t freq);
-
1509  int16_t gnssReadFreqSearchSpace(uint8_t* freq);
-
1510  int16_t gnssReadVersion(uint8_t* fw, uint8_t* almanac);
-
1511  int16_t gnssReadSupportedConstellations(uint8_t* mask);
-
1512  int16_t gnssSetMode(uint8_t mode);
-
1513  int16_t gnssAutonomous(uint32_t gpsTime, uint8_t resMask, uint8_t nbSvMask);
-
1514  int16_t gnssAssisted(uint32_t gpsTime, uint8_t effort, uint8_t resMask, uint8_t nbSvMask);
-
1515  int16_t gnssSetAssistancePosition(float lat, float lon);
-
1516  int16_t gnssReadAssistancePosition(float* lat, float* lon);
-
1517  int16_t gnssPushSolverMsg(uint8_t* payload, size_t len);
-
1518  int16_t gnssPushDmMsg(uint8_t* payload, size_t len);
-
1519  int16_t gnssGetContextStatus(uint8_t* fwVersion, uint32_t* almanacCrc, uint8_t* errCode, uint8_t* almUpdMask, uint8_t* freqSpace);
-
1520  int16_t gnssGetNbSvDetected(uint8_t* nbSv);
-
1521  int16_t gnssGetSvDetected(uint8_t* svId, uint8_t* snr, int16_t* doppler, size_t nbSv);
-
1522  int16_t gnssGetConsumption(uint32_t* cpu, uint32_t* radio);
-
1523  int16_t gnssGetResultSize(uint16_t* size);
-
1524  int16_t gnssReadResults(uint8_t* result, uint16_t size);
-
1525  int16_t gnssAlmanacFullUpdateHeader(uint16_t date, uint32_t globalCrc);
-
1526  int16_t gnssAlmanacFullUpdateSV(uint8_t svn, uint8_t* svnAlmanac);
-
1527  int16_t gnssAlmanacReadAddrSize(uint32_t* addr, uint16_t* size);
-
1528  int16_t gnssAlmanacReadSV(uint8_t svId, uint8_t* almanac);
-
1529  int16_t gnssGetNbSvVisible(uint32_t time, float lat, float lon, uint8_t constellation, uint8_t* nbSv);
-
1530  int16_t gnssGetSvVisible(uint8_t nbSv, uint8_t** svId, int16_t** doppler, int16_t** dopplerErr);
-
1531  int16_t gnssPerformScan(uint8_t effort, uint8_t resMask, uint8_t nbSvMax);
-
1532  int16_t gnssReadLastScanModeLaunched(uint8_t* lastScanMode);
-
1533  int16_t gnssFetchTime(uint8_t effort, uint8_t opt);
-
1534  int16_t gnssReadTime(uint8_t* err, uint32_t* time, uint32_t* nbUs, uint32_t* timeAccuracy);
-
1535  int16_t gnssResetTime(void);
-
1536  int16_t gnssResetPosition(void);
-
1537  int16_t gnssReadWeekNumberRollover(uint8_t* status, uint8_t* rollover);
-
1538  int16_t gnssReadDemodStatus(int8_t* status, uint8_t* info);
-
1539  int16_t gnssReadCumulTiming(uint32_t* timing, uint8_t* constDemod);
-
1540  int16_t gnssSetTime(uint32_t time, uint16_t accuracy);
-
1541  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);
-
1542  int16_t gnssReadDelayResetAP(uint32_t* delay);
-
1543  int16_t gnssAlmanacUpdateFromSat(uint8_t effort, uint8_t bitMask);
-
1544  int16_t gnssReadAlmanacStatus(uint8_t* status);
-
1545  int16_t gnssReadKeepSyncStatus(uint8_t mask, uint8_t* nbSvVisible, uint32_t* elapsed);
-
1546  int16_t gnssConfigAlmanacUpdatePeriod(uint8_t bitMask, uint8_t svType, uint16_t period);
-
1547  int16_t gnssReadAlmanacUpdatePeriod(uint8_t bitMask, uint8_t svType, uint16_t* period);
-
1548  int16_t gnssConfigDelayResetAP(uint32_t delay);
-
1549  int16_t gnssGetSvWarmStart(uint8_t bitMask, uint8_t* sv, uint8_t nbVisSat);
-
1550  int16_t gnssReadWarmStartStatus(uint8_t bitMask, uint8_t* nbVisSat, uint32_t* timeElapsed);
-
1551  int16_t gnssGetSvSync(uint8_t mask, uint8_t nbSv, uint8_t* syncList);
-
1552  int16_t gnssWriteBitMaskSatActivated(uint8_t bitMask, uint32_t* bitMaskActivated0, uint32_t* bitMaskActivated1);
-
1553 
-
1554  int16_t cryptoSetKey(uint8_t keyId, uint8_t* key);
-
1555  int16_t cryptoDeriveKey(uint8_t srcKeyId, uint8_t dstKeyId, uint8_t* key);
-
1556  int16_t cryptoProcessJoinAccept(uint8_t decKeyId, uint8_t verKeyId, uint8_t lwVer, uint8_t* header, uint8_t* dataIn, size_t len, uint8_t* dataOut);
-
1557  int16_t cryptoComputeAesCmac(uint8_t keyId, uint8_t* data, size_t len, uint32_t* mic);
-
1558  int16_t cryptoVerifyAesCmac(uint8_t keyId, uint32_t micExp, uint8_t* data, size_t len, bool* result);
-
1559  int16_t cryptoAesEncrypt01(uint8_t keyId, uint8_t* dataIn, size_t len, uint8_t* dataOut);
-
1560  int16_t cryptoAesEncrypt(uint8_t keyId, uint8_t* dataIn, size_t len, uint8_t* dataOut);
-
1561  int16_t cryptoAesDecrypt(uint8_t keyId, uint8_t* dataIn, size_t len, uint8_t* dataOut);
-
1562  int16_t cryptoStoreToFlash(void);
-
1563  int16_t cryptoRestoreFromFlash(void);
-
1564  int16_t cryptoSetParam(uint8_t id, uint32_t value);
-
1565  int16_t cryptoGetParam(uint8_t id, uint32_t* value);
-
1566  int16_t cryptoCheckEncryptedFirmwareImage(uint32_t offset, uint32_t* data, size_t len, bool nonvolatile);
-
1567  int16_t cryptoCheckEncryptedFirmwareImageResult(bool* result);
-
1568 
-
1569  int16_t bootEraseFlash(void);
-
1570  int16_t bootWriteFlashEncrypted(uint32_t offset, uint32_t* data, size_t len, bool nonvolatile);
-
1571  int16_t bootReboot(bool stay);
-
1572  int16_t bootGetPin(uint8_t* pin);
-
1573  int16_t bootGetChipEui(uint8_t* eui);
-
1574  int16_t bootGetJoinEui(uint8_t* eui);
-
1575 
-
1576  int16_t SPIcommand(uint16_t cmd, bool write, uint8_t* data, size_t len, uint8_t* out = NULL, size_t outLen = 0);
-
1577 
-
1578 #if !RADIOLIB_GODMODE
-
1579  protected:
-
1580 #endif
-
1581  uint8_t chipType = 0;
-
1582 
-
1583 #if !RADIOLIB_GODMODE
-
1584  private:
-
1585 #endif
-
1586  Module* mod;
-
1587 
-
1588  // cached LoRa parameters
-
1589  uint8_t bandwidth = 0, spreadingFactor = 0, codingRate = 0, ldrOptimize = 0, crcTypeLoRa = 0, headerType = 0;
-
1590  uint16_t preambleLengthLoRa = 0;
-
1591  float bandwidthKhz = 0;
-
1592  bool ldroAuto = true;
-
1593  size_t implicitLen = 0;
-
1594  bool invertIQEnabled = false;
-
1595 
-
1596  // cached GFSK parameters
-
1597  uint32_t bitRate = 0, frequencyDev = 0;
-
1598  uint8_t preambleDetLength = 0, rxBandwidth = 0, pulseShape = 0, crcTypeGFSK = 0, syncWordLength = 0, addrComp = 0, whitening = 0, packetType = 0, node = 0;
-
1599  uint16_t preambleLengthGFSK = 0;
-
1600 
-
1601  // cached LR-FHSS parameters
-
1602  uint8_t lrFhssCr = 0, lrFhssBw = 0, lrFhssHdrCount = 0;
-
1603  uint16_t lrFhssHopSeq = 0;
-
1604 
-
1605  float dataRateMeasured = 0;
+
1314  void setWiFiScanAction(void (*func)(void));
+
1315 
+
1319  void clearWiFiScanAction();
+
1320 
+
1326  int16_t getWifiScanResultsCount(uint8_t* count);
+
1327 
+
1337  int16_t getWifiScanResult(LR11x0WifiResult_t* result, uint8_t index, bool brief = false);
+
1338 
+
1355  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);
+
1356 
+
1362  int16_t getVersionInfo(LR11x0VersionInfo_t* info);
+
1363 
+
1374  int16_t updateFirmware(const uint32_t* image, size_t size, bool nonvolatile = true);
+
1375 
+
1381  int16_t isGnssScanCapable();
+
1382 
+
1389  int16_t gnssScan(uint16_t* resSize);
+
1390 
+
1397  int16_t getGnssScanResult(uint16_t size);
+
1398 
+
1407  int16_t getGnssPosition(float* lat, float* lon, bool filtered = true);
+
1408 
+
1409 #if !RADIOLIB_GODMODE && !RADIOLIB_LOW_LEVEL
+
1410  protected:
+
1411 #endif
+
1412  Module* getMod() override;
+
1413 
+
1414  // LR11x0 SPI command implementations
+
1415  int16_t writeRegMem32(uint32_t addr, uint32_t* data, size_t len);
+
1416  int16_t readRegMem32(uint32_t addr, uint32_t* data, size_t len);
+
1417  int16_t writeBuffer8(uint8_t* data, size_t len);
+
1418  int16_t readBuffer8(uint8_t* data, size_t len, size_t offset);
+
1419  int16_t clearRxBuffer(void);
+
1420  int16_t writeRegMemMask32(uint32_t addr, uint32_t mask, uint32_t data);
+
1421 
+
1422  int16_t getStatus(uint8_t* stat1, uint8_t* stat2, uint32_t* irq);
+
1423  int16_t getVersion(uint8_t* hw, uint8_t* device, uint8_t* major, uint8_t* minor);
+
1424  int16_t getErrors(uint16_t* err);
+
1425  int16_t clearErrors(void);
+
1426  int16_t calibrate(uint8_t params);
+
1427  int16_t setRegMode(uint8_t mode);
+
1428  int16_t calibImage(float freq1, float freq2);
+
1429  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);
+
1430  int16_t setDioIrqParams(uint32_t irq1, uint32_t irq2);
+
1431  int16_t setDioIrqParams(uint32_t irq);
+
1432  int16_t clearIrq(uint32_t irq);
+
1433  int16_t configLfClock(uint8_t setup);
+
1434  int16_t setTcxoMode(uint8_t tune, uint32_t delay);
+
1435  int16_t reboot(bool stay);
+
1436  int16_t getVbat(float* vbat);
+
1437  int16_t getTemp(float* temp);
+
1438  int16_t setFs(void);
+
1439  int16_t getRandomNumber(uint32_t* rnd);
+
1440  int16_t eraseInfoPage(void);
+
1441  int16_t writeInfoPage(uint16_t addr, const uint32_t* data, size_t len);
+
1442  int16_t readInfoPage(uint16_t addr, uint32_t* data, size_t len);
+
1443  int16_t getChipEui(uint8_t* eui);
+
1444  int16_t getSemtechJoinEui(uint8_t* eui);
+
1445  int16_t deriveRootKeysAndGetPin(uint8_t* pin);
+
1446  int16_t enableSpiCrc(bool en);
+
1447  int16_t driveDiosInSleepMode(bool en);
+
1448 
+
1449  int16_t resetStats(void);
+
1450  int16_t getStats(uint16_t* nbPktReceived, uint16_t* nbPktCrcError, uint16_t* data1, uint16_t* data2);
+
1451  int16_t getPacketType(uint8_t* type);
+
1452  int16_t getRxBufferStatus(uint8_t* len, uint8_t* startOffset);
+
1453  int16_t getPacketStatusLoRa(float* rssiPkt, float* snrPkt, float* signalRssiPkt);
+
1454  int16_t getPacketStatusGFSK(float* rssiSync, float* rssiAvg, uint8_t* rxLen, uint8_t* stat);
+
1455  int16_t getRssiInst(float* rssi);
+
1456  int16_t setGfskSyncWord(uint8_t* sync);
+
1457  int16_t setLoRaPublicNetwork(bool pub);
+
1458  int16_t setRx(uint32_t timeout);
+
1459  int16_t setTx(uint32_t timeout);
+
1460  int16_t setRfFrequency(uint32_t rfFreq);
+
1461  int16_t autoTxRx(uint32_t delay, uint8_t intMode, uint32_t timeout);
+
1462  int16_t setCadParams(uint8_t symNum, uint8_t detPeak, uint8_t detMin, uint8_t cadExitMode, uint32_t timeout);
+
1463  int16_t setPacketType(uint8_t type);
+
1464  int16_t setModulationParamsLoRa(uint8_t sf, uint8_t bw, uint8_t cr, uint8_t ldro);
+
1465  int16_t setModulationParamsGFSK(uint32_t br, uint8_t sh, uint8_t rxBw, uint32_t freqDev);
+
1466  int16_t setModulationParamsLrFhss(uint32_t br, uint8_t sh);
+
1467  int16_t setModulationParamsSigfox(uint32_t br, uint8_t sh);
+
1468  int16_t setPacketParamsLoRa(uint16_t preambleLen, uint8_t hdrType, uint8_t payloadLen, uint8_t crcType, uint8_t invertIQ);
+
1469  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);
+
1470  int16_t setPacketParamsSigfox(uint8_t payloadLen, uint16_t rampUpDelay, uint16_t rampDownDelay, uint16_t bitNum);
+
1471  int16_t setTxParams(int8_t pwr, uint8_t ramp);
+
1472  int16_t setPacketAdrs(uint8_t node, uint8_t broadcast);
+
1473  int16_t setRxTxFallbackMode(uint8_t mode);
+
1474  int16_t setRxDutyCycle(uint32_t rxPeriod, uint32_t sleepPeriod, uint8_t mode);
+
1475  int16_t setPaConfig(uint8_t paSel, uint8_t regPaSupply, uint8_t paDutyCycle, uint8_t paHpSel);
+
1476  int16_t stopTimeoutOnPreamble(bool stop);
+
1477  int16_t setCad(void);
+
1478  int16_t setTxCw(void);
+
1479  int16_t setTxInfinitePreamble(void);
+
1480  int16_t setLoRaSynchTimeout(uint8_t symbolNum);
+
1481  int16_t setRangingAddr(uint32_t addr, uint8_t checkLen);
+
1482  int16_t setRangingReqAddr(uint32_t addr);
+
1483  int16_t getRangingResult(uint8_t type, float* res);
+
1484  int16_t setRangingTxRxDelay(uint32_t delay);
+
1485  int16_t setGfskCrcParams(uint32_t init, uint32_t poly);
+
1486  int16_t setGfskWhitParams(uint16_t seed);
+
1487  int16_t setRangingParameter(uint8_t symbolNum);
+
1488  int16_t setRssiCalibration(const int8_t* tune, int16_t gainOffset);
+
1489  int16_t setLoRaSyncWord(uint8_t sync);
+
1490  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);
+
1491  int16_t lrFhssSetSyncWord(uint32_t sync);
+
1492  int16_t configBleBeacon(uint8_t chan, uint8_t* payload, size_t len);
+
1493  int16_t getLoRaRxHeaderInfos(uint8_t* info);
+
1494  int16_t bleBeaconSend(uint8_t chan, uint8_t* payload, size_t len);
+
1495 
+
1496  int16_t wifiScan(uint8_t type, uint16_t mask, uint8_t acqMode, uint8_t nbMaxRes, uint8_t nbScanPerChan, uint16_t timeout, uint8_t abortOnTimeout);
+
1497  int16_t wifiScanTimeLimit(uint8_t type, uint16_t mask, uint8_t acqMode, uint8_t nbMaxRes, uint16_t timePerChan, uint16_t timeout);
+
1498  int16_t wifiCountryCode(uint16_t mask, uint8_t nbMaxRes, uint8_t nbScanPerChan, uint16_t timeout, uint8_t abortOnTimeout);
+
1499  int16_t wifiCountryCodeTimeLimit(uint16_t mask, uint8_t nbMaxRes, uint16_t timePerChan, uint16_t timeout);
+
1500  int16_t wifiGetNbResults(uint8_t* nbResults);
+
1501  int16_t wifiReadResults(uint8_t index, uint8_t nbResults, uint8_t format, uint8_t* results);
+
1502  int16_t wifiResetCumulTimings(void);
+
1503  int16_t wifiReadCumulTimings(uint32_t* detection, uint32_t* capture, uint32_t* demodulation);
+
1504  int16_t wifiGetNbCountryCodeResults(uint8_t* nbResults);
+
1505  int16_t wifiReadCountryCodeResults(uint8_t index, uint8_t nbResults, uint8_t* results);
+
1506  int16_t wifiCfgTimestampAPphone(uint32_t timestamp);
+
1507  int16_t wifiReadVersion(uint8_t* major, uint8_t* minor);
+
1508 
+
1509  int16_t gnssReadRssi(int8_t* rssi);
+
1510  int16_t gnssSetConstellationToUse(uint8_t mask);
+
1511  int16_t gnssReadConstellationToUse(uint8_t* mask);
+
1512  int16_t gnssSetAlmanacUpdate(uint8_t mask);
+
1513  int16_t gnssReadAlmanacUpdate(uint8_t* mask);
+
1514  int16_t gnssSetFreqSearchSpace(uint8_t freq);
+
1515  int16_t gnssReadFreqSearchSpace(uint8_t* freq);
+
1516  int16_t gnssReadVersion(uint8_t* fw, uint8_t* almanac);
+
1517  int16_t gnssReadSupportedConstellations(uint8_t* mask);
+
1518  int16_t gnssSetMode(uint8_t mode);
+
1519  int16_t gnssAutonomous(uint32_t gpsTime, uint8_t resMask, uint8_t nbSvMask);
+
1520  int16_t gnssAssisted(uint32_t gpsTime, uint8_t effort, uint8_t resMask, uint8_t nbSvMask);
+
1521  int16_t gnssSetAssistancePosition(float lat, float lon);
+
1522  int16_t gnssReadAssistancePosition(float* lat, float* lon);
+
1523  int16_t gnssPushSolverMsg(uint8_t* payload, size_t len);
+
1524  int16_t gnssPushDmMsg(uint8_t* payload, size_t len);
+
1525  int16_t gnssGetContextStatus(uint8_t* fwVersion, uint32_t* almanacCrc, uint8_t* errCode, uint8_t* almUpdMask, uint8_t* freqSpace);
+
1526  int16_t gnssGetNbSvDetected(uint8_t* nbSv);
+
1527  int16_t gnssGetSvDetected(uint8_t* svId, uint8_t* snr, int16_t* doppler, size_t nbSv);
+
1528  int16_t gnssGetConsumption(uint32_t* cpu, uint32_t* radio);
+
1529  int16_t gnssGetResultSize(uint16_t* size);
+
1530  int16_t gnssReadResults(uint8_t* result, uint16_t size);
+
1531  int16_t gnssAlmanacFullUpdateHeader(uint16_t date, uint32_t globalCrc);
+
1532  int16_t gnssAlmanacFullUpdateSV(uint8_t svn, uint8_t* svnAlmanac);
+
1533  int16_t gnssAlmanacReadAddrSize(uint32_t* addr, uint16_t* size);
+
1534  int16_t gnssAlmanacReadSV(uint8_t svId, uint8_t* almanac);
+
1535  int16_t gnssGetNbSvVisible(uint32_t time, float lat, float lon, uint8_t constellation, uint8_t* nbSv);
+
1536  int16_t gnssGetSvVisible(uint8_t nbSv, uint8_t** svId, int16_t** doppler, int16_t** dopplerErr);
+
1537  int16_t gnssPerformScan(uint8_t effort, uint8_t resMask, uint8_t nbSvMax);
+
1538  int16_t gnssReadLastScanModeLaunched(uint8_t* lastScanMode);
+
1539  int16_t gnssFetchTime(uint8_t effort, uint8_t opt);
+
1540  int16_t gnssReadTime(uint8_t* err, uint32_t* time, uint32_t* nbUs, uint32_t* timeAccuracy);
+
1541  int16_t gnssResetTime(void);
+
1542  int16_t gnssResetPosition(void);
+
1543  int16_t gnssReadWeekNumberRollover(uint8_t* status, uint8_t* rollover);
+
1544  int16_t gnssReadDemodStatus(int8_t* status, uint8_t* info);
+
1545  int16_t gnssReadCumulTiming(uint32_t* timing, uint8_t* constDemod);
+
1546  int16_t gnssSetTime(uint32_t time, uint16_t accuracy);
+
1547  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);
+
1548  int16_t gnssReadDelayResetAP(uint32_t* delay);
+
1549  int16_t gnssAlmanacUpdateFromSat(uint8_t effort, uint8_t bitMask);
+
1550  int16_t gnssReadAlmanacStatus(uint8_t* status);
+
1551  int16_t gnssReadKeepSyncStatus(uint8_t mask, uint8_t* nbSvVisible, uint32_t* elapsed);
+
1552  int16_t gnssConfigAlmanacUpdatePeriod(uint8_t bitMask, uint8_t svType, uint16_t period);
+
1553  int16_t gnssReadAlmanacUpdatePeriod(uint8_t bitMask, uint8_t svType, uint16_t* period);
+
1554  int16_t gnssConfigDelayResetAP(uint32_t delay);
+
1555  int16_t gnssGetSvWarmStart(uint8_t bitMask, uint8_t* sv, uint8_t nbVisSat);
+
1556  int16_t gnssReadWarmStartStatus(uint8_t bitMask, uint8_t* nbVisSat, uint32_t* timeElapsed);
+
1557  int16_t gnssGetSvSync(uint8_t mask, uint8_t nbSv, uint8_t* syncList);
+
1558  int16_t gnssWriteBitMaskSatActivated(uint8_t bitMask, uint32_t* bitMaskActivated0, uint32_t* bitMaskActivated1);
+
1559 
+
1560  int16_t cryptoSetKey(uint8_t keyId, uint8_t* key);
+
1561  int16_t cryptoDeriveKey(uint8_t srcKeyId, uint8_t dstKeyId, uint8_t* key);
+
1562  int16_t cryptoProcessJoinAccept(uint8_t decKeyId, uint8_t verKeyId, uint8_t lwVer, uint8_t* header, uint8_t* dataIn, size_t len, uint8_t* dataOut);
+
1563  int16_t cryptoComputeAesCmac(uint8_t keyId, uint8_t* data, size_t len, uint32_t* mic);
+
1564  int16_t cryptoVerifyAesCmac(uint8_t keyId, uint32_t micExp, uint8_t* data, size_t len, bool* result);
+
1565  int16_t cryptoAesEncrypt01(uint8_t keyId, uint8_t* dataIn, size_t len, uint8_t* dataOut);
+
1566  int16_t cryptoAesEncrypt(uint8_t keyId, uint8_t* dataIn, size_t len, uint8_t* dataOut);
+
1567  int16_t cryptoAesDecrypt(uint8_t keyId, uint8_t* dataIn, size_t len, uint8_t* dataOut);
+
1568  int16_t cryptoStoreToFlash(void);
+
1569  int16_t cryptoRestoreFromFlash(void);
+
1570  int16_t cryptoSetParam(uint8_t id, uint32_t value);
+
1571  int16_t cryptoGetParam(uint8_t id, uint32_t* value);
+
1572  int16_t cryptoCheckEncryptedFirmwareImage(uint32_t offset, uint32_t* data, size_t len, bool nonvolatile);
+
1573  int16_t cryptoCheckEncryptedFirmwareImageResult(bool* result);
+
1574 
+
1575  int16_t bootEraseFlash(void);
+
1576  int16_t bootWriteFlashEncrypted(uint32_t offset, uint32_t* data, size_t len, bool nonvolatile);
+
1577  int16_t bootReboot(bool stay);
+
1578  int16_t bootGetPin(uint8_t* pin);
+
1579  int16_t bootGetChipEui(uint8_t* eui);
+
1580  int16_t bootGetJoinEui(uint8_t* eui);
+
1581 
+
1582  int16_t SPIcommand(uint16_t cmd, bool write, uint8_t* data, size_t len, uint8_t* out = NULL, size_t outLen = 0);
+
1583 
+
1584 #if !RADIOLIB_GODMODE
+
1585  protected:
+
1586 #endif
+
1587  uint8_t chipType = 0;
+
1588 
+
1589 #if !RADIOLIB_GODMODE
+
1590  private:
+
1591 #endif
+
1592  Module* mod;
+
1593 
+
1594  // cached LoRa parameters
+
1595  uint8_t bandwidth = 0, spreadingFactor = 0, codingRate = 0, ldrOptimize = 0, crcTypeLoRa = 0, headerType = 0;
+
1596  uint16_t preambleLengthLoRa = 0;
+
1597  float bandwidthKhz = 0;
+
1598  bool ldroAuto = true;
+
1599  size_t implicitLen = 0;
+
1600  bool invertIQEnabled = false;
+
1601 
+
1602  // cached GFSK parameters
+
1603  uint32_t bitRate = 0, frequencyDev = 0;
+
1604  uint8_t preambleDetLength = 0, rxBandwidth = 0, pulseShape = 0, crcTypeGFSK = 0, syncWordLength = 0, addrComp = 0, whitening = 0, packetType = 0, node = 0;
+
1605  uint16_t preambleLengthGFSK = 0;
1606 
-
1607  uint8_t wifiScanMode = 0;
-
1608 
-
1609  int16_t modSetup(float tcxoVoltage, uint8_t modem);
-
1610  static int16_t SPIparseStatus(uint8_t in);
-
1611  static int16_t SPIcheckStatus(Module* mod);
-
1612  bool findChip(uint8_t ver);
-
1613  int16_t config(uint8_t modem);
-
1614  int16_t setPacketMode(uint8_t mode, uint8_t len);
-
1615  int16_t startCad(uint8_t symbolNum, uint8_t detPeak, uint8_t detMin);
-
1616  int16_t setHeaderType(uint8_t hdrType, size_t len = 0xFF);
-
1617 
-
1618  // common methods to avoid some copy-paste
-
1619  int16_t bleBeaconCommon(uint16_t cmd, uint8_t chan, uint8_t* payload, size_t len);
-
1620  int16_t writeCommon(uint16_t cmd, uint32_t addrOffset, const uint32_t* data, size_t len, bool nonvolatile);
-
1621  int16_t cryptoCommon(uint16_t cmd, uint8_t keyId, uint8_t* dataIn, size_t len, uint8_t* dataOut);
-
1622 };
+
1607  // cached LR-FHSS parameters
+
1608  uint8_t lrFhssCr = 0, lrFhssBw = 0, lrFhssHdrCount = 0;
+
1609  uint16_t lrFhssHopSeq = 0;
+
1610 
+
1611  float dataRateMeasured = 0;
+
1612 
+
1613  uint8_t wifiScanMode = 0;
+
1614 
+
1615  int16_t modSetup(float tcxoVoltage, uint8_t modem);
+
1616  static int16_t SPIparseStatus(uint8_t in);
+
1617  static int16_t SPIcheckStatus(Module* mod);
+
1618  bool findChip(uint8_t ver);
+
1619  int16_t config(uint8_t modem);
+
1620  int16_t setPacketMode(uint8_t mode, uint8_t len);
+
1621  int16_t startCad(uint8_t symbolNum, uint8_t detPeak, uint8_t detMin);
+
1622  int16_t setHeaderType(uint8_t hdrType, size_t len = 0xFF);
1623 
-
1624 #endif
-
1625 
-
1626 #endif
-
LR11x0
Base class for LR11x0 series. All derived classes for LR11x0 (e.g. LR1110 or LR1120) inherit from thi...
Definition: LR11x0.h:720
+
1624  // common methods to avoid some copy-paste
+
1625  int16_t bleBeaconCommon(uint16_t cmd, uint8_t chan, uint8_t* payload, size_t len);
+
1626  int16_t writeCommon(uint16_t cmd, uint32_t addrOffset, const uint32_t* data, size_t len, bool nonvolatile);
+
1627  int16_t cryptoCommon(uint16_t cmd, uint8_t keyId, uint8_t* dataIn, size_t len, uint8_t* dataOut);
+
1628 };
+
1629 
+
1630 #endif
+
1631 
+
1632 #endif
+
LR11x0
Base class for LR11x0 series. All derived classes for LR11x0 (e.g. LR1110 or LR1120) inherit from thi...
Definition: LR11x0.h:726
LR11x0::getSNR
float getSNR() override
Gets SNR (Signal to Noise Ratio) of the last received packet. Only available for LoRa modem.
Definition: LR11x0.cpp:1184
LR11x0::getIrqStatus
uint32_t getIrqStatus()
Reads the current IRQ status.
Definition: LR11x0.cpp:488
LR11x0::setDataRate
int16_t setDataRate(DataRate_t dr) override
Set data.
Definition: LR11x0.cpp:982
@@ -1172,19 +1178,19 @@ $(document).ready(function(){initNavTree('_l_r11x0_8h_source.html',''); initResi
LR11x0::setRxBandwidth
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:742
LR11x0::calculateRxTimeout
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:1318
LR11x0::reset
int16_t reset()
Reset method. Will reset the chip to the default state using RST pin.
Definition: LR11x0.cpp:110
-
LR11x0::OpMode_t
OpMode_t
Custom operation modes for LR11x0. Needed because LR11x0 has several modems (sub-GHz,...
Definition: LR11x0.h:738
-
LR11x0::MODE_TX_HP
@ MODE_TX_HP
Definition: LR11x0.h:748
-
LR11x0::MODE_END_OF_TABLE
@ MODE_END_OF_TABLE
Definition: LR11x0.h:740
-
LR11x0::MODE_WIFI
@ MODE_WIFI
Definition: LR11x0.h:754
-
LR11x0::MODE_GNSS
@ MODE_GNSS
Definition: LR11x0.h:752
-
LR11x0::MODE_TX
@ MODE_TX
Definition: LR11x0.h:746
-
LR11x0::MODE_RX
@ MODE_RX
Definition: LR11x0.h:744
-
LR11x0::MODE_STBY
@ MODE_STBY
Definition: LR11x0.h:742
-
LR11x0::MODE_TX_HF
@ MODE_TX_HF
Definition: LR11x0.h:750
+
LR11x0::OpMode_t
OpMode_t
Custom operation modes for LR11x0. Needed because LR11x0 has several modems (sub-GHz,...
Definition: LR11x0.h:744
+
LR11x0::MODE_TX_HP
@ MODE_TX_HP
Definition: LR11x0.h:754
+
LR11x0::MODE_END_OF_TABLE
@ MODE_END_OF_TABLE
Definition: LR11x0.h:746
+
LR11x0::MODE_WIFI
@ MODE_WIFI
Definition: LR11x0.h:760
+
LR11x0::MODE_GNSS
@ MODE_GNSS
Definition: LR11x0.h:758
+
LR11x0::MODE_TX
@ MODE_TX
Definition: LR11x0.h:752
+
LR11x0::MODE_RX
@ MODE_RX
Definition: LR11x0.h:750
+
LR11x0::MODE_STBY
@ MODE_STBY
Definition: LR11x0.h:748
+
LR11x0::MODE_TX_HF
@ MODE_TX_HF
Definition: LR11x0.h:756
LR11x0::startWifiScan
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:1411
LR11x0::readData
virtual int16_t readData(uint8_t *data, size_t len)
Reads data that was received after calling startReceive method.
Definition: PhysicalLayer.cpp:209
LR11x0::explicitHeader
int16_t explicitHeader()
Set explicit header mode for future reception/transmission.
Definition: LR11x0.cpp:1347
-
LR11x0::XTAL
bool XTAL
Whether the module has an XTAL (true) or TCXO (false). Defaults to false.
Definition: LR11x0.h:760
+
LR11x0::XTAL
bool XTAL
Whether the module has an XTAL (true) or TCXO (false). Defaults to false.
Definition: LR11x0.h:766
LR11x0::getGnssScanResult
int16_t getGnssScanResult(uint16_t size)
Get GNSS scan result. CAUTION: Work in progress! Most data is returned via debug prints.
Definition: LR11x0.cpp:1763
LR11x0::getWifiScanResult
int16_t getWifiScanResult(LR11x0WifiResult_t *result, uint8_t index, bool brief=false)
Retrieve passive WiFi scan result.
Definition: LR11x0.cpp:1470
LR11x0::setIrqAction
void setIrqAction(void(*func)(void))
Sets interrupt service routine to call when IRQ1 activates.
Definition: LR11x0.cpp:342
@@ -1260,44 +1266,44 @@ $(document).ready(function(){initNavTree('_l_r11x0_8h_source.html',''); initResi
PhysicalLayer::startTransmit
int16_t startTransmit(const char *str, uint8_t addr=0)
Interrupt-driven Arduino String transmit method. Unlike the standard transmit method,...
Definition: PhysicalLayer.cpp:149
PhysicalLayer::receive
virtual int16_t receive(uint8_t *data, size_t len)
Binary receive method. Must be implemented in module class.
Definition: PhysicalLayer.cpp:112
RadioLibTime_t
unsigned long RadioLibTime_t
Type used for durations in RadioLib.
Definition: TypeDef.h:616
-
LR11x0GnssResult_t
Definition: LR11x0.h:711
-
LR11x0VersionInfo_t
Structure to report information about versions of the LR11x0 hardware and firmware.
Definition: LR11x0.h:685
-
LR11x0VersionInfo_t::fwMajor
uint8_t fwMajor
Major revision of the base firmware.
Definition: LR11x0.h:693
-
LR11x0VersionInfo_t::fwMinorWiFi
uint8_t fwMinorWiFi
Minor revision of the WiFi firmware.
Definition: LR11x0.h:702
-
LR11x0VersionInfo_t::device
uint8_t device
Which device this is - one of RADIOLIB_LR11X0_DEVICE_* macros.
Definition: LR11x0.h:690
-
LR11x0VersionInfo_t::hardware
uint8_t hardware
Hardware revision.
Definition: LR11x0.h:687
-
LR11x0VersionInfo_t::fwMinor
uint8_t fwMinor
Minor revision of the base firmware.
Definition: LR11x0.h:696
-
LR11x0VersionInfo_t::fwGNSS
uint8_t fwGNSS
Revision of the GNSS firmware.
Definition: LR11x0.h:705
-
LR11x0VersionInfo_t::almanacGNSS
uint8_t almanacGNSS
Almanac revision of the GNSS firmware.
Definition: LR11x0.h:708
-
LR11x0VersionInfo_t::fwMajorWiFi
uint8_t fwMajorWiFi
Major revision of the WiFi firmware.
Definition: LR11x0.h:699
-
LR11x0WifiResult_t
Structure to save result of passive WiFi scan. This result only saves the basic information.
Definition: LR11x0.h:588
-
LR11x0WifiResult_t::ap
bool ap
Whether this signal was sent by an access point (true) or end device (false)
Definition: LR11x0.h:602
-
LR11x0WifiResult_t::channelFreq
uint16_t channelFreq
Channel frequency in MHz.
Definition: LR11x0.h:596
-
LR11x0WifiResult_t::type
char type
WiFi (802.11) signal type, 'b', 'n' or 'g'.
Definition: LR11x0.h:590
-
LR11x0WifiResult_t::mac
uint8_t mac[RADIOLIB_LR11X0_WIFI_RESULT_MAC_LEN]
MAC address.
Definition: LR11x0.h:608
-
LR11x0WifiResult_t::dataRateId
uint8_t dataRateId
Data rate ID holding information about modulation and coding rate. See LR11x0 user manual for details...
Definition: LR11x0.h:593
-
LR11x0WifiResult_t::rssi
float rssi
RSSI in dBm.
Definition: LR11x0.h:605
-
LR11x0WifiResult_t::origin
uint8_t origin
MAC address origin: from gateway (1), phone (2) or undetermined (3)
Definition: LR11x0.h:599
-
LR11x0WifiResultExtended_t
Structure to save result of passive WiFi scan. This result saves additional information alongside tha...
Definition: LR11x0.h:646
-
LR11x0WifiResultExtended_t::rate
uint8_t rate
Data rate. See LR11x0 user manual for details.
Definition: LR11x0.h:648
-
LR11x0WifiResultExtended_t::length
uint16_t length
Refer to IEEE Std 802.11, 2016, Part 11: Wireless LAN MAC and PHY Spec.
Definition: LR11x0.h:654
-
LR11x0WifiResultExtended_t::fcsCheckOk
bool fcsCheckOk
True if frame check sequences is valid, false otherwise.
Definition: LR11x0.h:678
-
LR11x0WifiResultExtended_t::service
uint16_t service
Refer to IEEE Std 802.11, 2016, Part 11: Wireless LAN MAC and PHY Spec.
Definition: LR11x0.h:651
-
LR11x0WifiResultExtended_t::mac2
uint8_t mac2[RADIOLIB_LR11X0_WIFI_RESULT_MAC_LEN]
MAC address 2.
Definition: LR11x0.h:660
-
LR11x0WifiResultExtended_t::ssid
uint8_t ssid[RADIOLIB_LR11X0_WIFI_RESULT_SSID_LEN]
SSID.
Definition: LR11x0.h:666
-
LR11x0WifiResultExtended_t::currentChannel
uint8_t currentChannel
WiFi channel number.
Definition: LR11x0.h:669
-
LR11x0WifiResultExtended_t::seqCtrl
uint16_t seqCtrl
Refer to IEEE Std 802.11, 2016, Part 11: Wireless LAN MAC and PHY Spec.
Definition: LR11x0.h:663
-
LR11x0WifiResultExtended_t::mac0
uint8_t mac0[RADIOLIB_LR11X0_WIFI_RESULT_MAC_LEN]
MAC address 0.
Definition: LR11x0.h:657
-
LR11x0WifiResultExtended_t::countryCode
char countryCode[3]
Two-letter country code (null-terminated string).
Definition: LR11x0.h:672
-
LR11x0WifiResultExtended_t::ioReg
uint8_t ioReg
Refer to IEEE Std 802.11, 2016, Part 11: Wireless LAN MAC and PHY Spec.
Definition: LR11x0.h:675
-
LR11x0WifiResultFull_t
Structure to save result of passive WiFi scan. This result saves additional information alongside tha...
Definition: LR11x0.h:616
-
LR11x0WifiResultFull_t::periodBeacon
uint32_t periodBeacon
Beacon period in microseconds.
Definition: LR11x0.h:636
-
LR11x0WifiResultFull_t::phiOffset
uint16_t phiOffset
See LR11x0 user manual for details.
Definition: LR11x0.h:630
-
LR11x0WifiResultFull_t::fromDistributionSystem
bool fromDistributionSystem
Frame sent from distribution system to client station.
Definition: LR11x0.h:627
-
LR11x0WifiResultFull_t::timestamp
uint64_t timestamp
Number of microseconds the AP has been active.
Definition: LR11x0.h:633
-
LR11x0WifiResultFull_t::frameType
uint8_t frameType
Frame type. See LR11x0 user manual for details.
Definition: LR11x0.h:618
-
LR11x0WifiResultFull_t::frameSubType
uint8_t frameSubType
Frame sub type. See LR11x0 user manual for details.
Definition: LR11x0.h:621
-
LR11x0WifiResultFull_t::toDistributionSystem
bool toDistributionSystem
Frame sent from client station to distribution system.
Definition: LR11x0.h:624
+
LR11x0GnssResult_t
Definition: LR11x0.h:717
+
LR11x0VersionInfo_t
Structure to report information about versions of the LR11x0 hardware and firmware.
Definition: LR11x0.h:691
+
LR11x0VersionInfo_t::fwMajor
uint8_t fwMajor
Major revision of the base firmware.
Definition: LR11x0.h:699
+
LR11x0VersionInfo_t::fwMinorWiFi
uint8_t fwMinorWiFi
Minor revision of the WiFi firmware.
Definition: LR11x0.h:708
+
LR11x0VersionInfo_t::device
uint8_t device
Which device this is - one of RADIOLIB_LR11X0_DEVICE_* macros.
Definition: LR11x0.h:696
+
LR11x0VersionInfo_t::hardware
uint8_t hardware
Hardware revision.
Definition: LR11x0.h:693
+
LR11x0VersionInfo_t::fwMinor
uint8_t fwMinor
Minor revision of the base firmware.
Definition: LR11x0.h:702
+
LR11x0VersionInfo_t::fwGNSS
uint8_t fwGNSS
Revision of the GNSS firmware.
Definition: LR11x0.h:711
+
LR11x0VersionInfo_t::almanacGNSS
uint8_t almanacGNSS
Almanac revision of the GNSS firmware.
Definition: LR11x0.h:714
+
LR11x0VersionInfo_t::fwMajorWiFi
uint8_t fwMajorWiFi
Major revision of the WiFi firmware.
Definition: LR11x0.h:705
+
LR11x0WifiResult_t
Structure to save result of passive WiFi scan. This result only saves the basic information.
Definition: LR11x0.h:594
+
LR11x0WifiResult_t::ap
bool ap
Whether this signal was sent by an access point (true) or end device (false)
Definition: LR11x0.h:608
+
LR11x0WifiResult_t::channelFreq
uint16_t channelFreq
Channel frequency in MHz.
Definition: LR11x0.h:602
+
LR11x0WifiResult_t::type
char type
WiFi (802.11) signal type, 'b', 'n' or 'g'.
Definition: LR11x0.h:596
+
LR11x0WifiResult_t::mac
uint8_t mac[RADIOLIB_LR11X0_WIFI_RESULT_MAC_LEN]
MAC address.
Definition: LR11x0.h:614
+
LR11x0WifiResult_t::dataRateId
uint8_t dataRateId
Data rate ID holding information about modulation and coding rate. See LR11x0 user manual for details...
Definition: LR11x0.h:599
+
LR11x0WifiResult_t::rssi
float rssi
RSSI in dBm.
Definition: LR11x0.h:611
+
LR11x0WifiResult_t::origin
uint8_t origin
MAC address origin: from gateway (1), phone (2) or undetermined (3)
Definition: LR11x0.h:605
+
LR11x0WifiResultExtended_t
Structure to save result of passive WiFi scan. This result saves additional information alongside tha...
Definition: LR11x0.h:652
+
LR11x0WifiResultExtended_t::rate
uint8_t rate
Data rate. See LR11x0 user manual for details.
Definition: LR11x0.h:654
+
LR11x0WifiResultExtended_t::length
uint16_t length
Refer to IEEE Std 802.11, 2016, Part 11: Wireless LAN MAC and PHY Spec.
Definition: LR11x0.h:660
+
LR11x0WifiResultExtended_t::fcsCheckOk
bool fcsCheckOk
True if frame check sequences is valid, false otherwise.
Definition: LR11x0.h:684
+
LR11x0WifiResultExtended_t::service
uint16_t service
Refer to IEEE Std 802.11, 2016, Part 11: Wireless LAN MAC and PHY Spec.
Definition: LR11x0.h:657
+
LR11x0WifiResultExtended_t::mac2
uint8_t mac2[RADIOLIB_LR11X0_WIFI_RESULT_MAC_LEN]
MAC address 2.
Definition: LR11x0.h:666
+
LR11x0WifiResultExtended_t::ssid
uint8_t ssid[RADIOLIB_LR11X0_WIFI_RESULT_SSID_LEN]
SSID.
Definition: LR11x0.h:672
+
LR11x0WifiResultExtended_t::currentChannel
uint8_t currentChannel
WiFi channel number.
Definition: LR11x0.h:675
+
LR11x0WifiResultExtended_t::seqCtrl
uint16_t seqCtrl
Refer to IEEE Std 802.11, 2016, Part 11: Wireless LAN MAC and PHY Spec.
Definition: LR11x0.h:669
+
LR11x0WifiResultExtended_t::mac0
uint8_t mac0[RADIOLIB_LR11X0_WIFI_RESULT_MAC_LEN]
MAC address 0.
Definition: LR11x0.h:663
+
LR11x0WifiResultExtended_t::countryCode
char countryCode[3]
Two-letter country code (null-terminated string).
Definition: LR11x0.h:678
+
LR11x0WifiResultExtended_t::ioReg
uint8_t ioReg
Refer to IEEE Std 802.11, 2016, Part 11: Wireless LAN MAC and PHY Spec.
Definition: LR11x0.h:681
+
LR11x0WifiResultFull_t
Structure to save result of passive WiFi scan. This result saves additional information alongside tha...
Definition: LR11x0.h:622
+
LR11x0WifiResultFull_t::periodBeacon
uint32_t periodBeacon
Beacon period in microseconds.
Definition: LR11x0.h:642
+
LR11x0WifiResultFull_t::phiOffset
uint16_t phiOffset
See LR11x0 user manual for details.
Definition: LR11x0.h:636
+
LR11x0WifiResultFull_t::fromDistributionSystem
bool fromDistributionSystem
Frame sent from distribution system to client station.
Definition: LR11x0.h:633
+
LR11x0WifiResultFull_t::timestamp
uint64_t timestamp
Number of microseconds the AP has been active.
Definition: LR11x0.h:639
+
LR11x0WifiResultFull_t::frameType
uint8_t frameType
Frame type. See LR11x0 user manual for details.
Definition: LR11x0.h:624
+
LR11x0WifiResultFull_t::frameSubType
uint8_t frameSubType
Frame sub type. See LR11x0 user manual for details.
Definition: LR11x0.h:627
+
LR11x0WifiResultFull_t::toDistributionSystem
bool toDistributionSystem
Frame sent from client station to distribution system.
Definition: LR11x0.h:630
Module::RfSwitchMode_t
Description of RF switch pin states for a single mode. See setRfSwitchTable for details.
Definition: Module.h:81
DataRate_t
Common data rate structure.
Definition: PhysicalLayer.h:38