diff --git a/_l_r1110_8h_source.html b/_l_r1110_8h_source.html index d2893fd4..6b9b91f6 100644 --- a/_l_r1110_8h_source.html +++ b/_l_r1110_8h_source.html @@ -129,7 +129,7 @@ $(document).ready(function(){initNavTree('_l_r1110_8h_source.html',''); initResi
LR1110::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: LR1110.cpp:28
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:38
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:18
-
LR11x0
Base class for LR11x0 series. All derived classes for LR11x0 (e.g. LR1110 or LR1120) inherit from thi...
Definition: LR11x0.h:704
+
LR11x0
Base class for LR11x0 series. All derived classes for LR11x0 (e.g. LR1110 or LR1120) inherit from thi...
Definition: LR11x0.h:708
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 92088463..75b34597 100644 --- a/_l_r1120_8h_source.html +++ b/_l_r1120_8h_source.html @@ -129,7 +129,7 @@ $(document).ready(function(){initNavTree('_l_r1120_8h_source.html',''); initResi
LR1120::setFrequency
int16_t setFrequency(float freq) override
Sets carrier frequency. Allowed values are in range from 150.0 to 960.0 MHz, 1900 - 2200 MHz and 2400...
Definition: LR1120.cpp:38
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:28
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:704
+
LR11x0
Base class for LR11x0 series. All derived classes for LR11x0 (e.g. LR1110 or LR1120) inherit from thi...
Definition: LR11x0.h:708
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 635ce4af..05f9c5dc 100644 --- a/_l_r11x0_8h_source.html +++ b/_l_r11x0_8h_source.html @@ -570,573 +570,577 @@ $(document).ready(function(){initNavTree('_l_r11x0_8h_source.html',''); initResi
482 #define RADIOLIB_LR11X0_LR_FHSS_BW_773_44 (0x07UL << 0) // 7 0 773.44 kHz
483 #define RADIOLIB_LR11X0_LR_FHSS_BW_1523_4 (0x08UL << 0) // 7 0 1523.4 kHz
484 #define RADIOLIB_LR11X0_LR_FHSS_BW_1574_2 (0x09UL << 0) // 7 0 1574.2 kHz
-
485 
-
486 // RADIOLIB_LR11X0_CMD_GET_LORA_RX_HEADER_INFOS
-
487 #define RADIOLIB_LR11X0_LAST_HEADER_CRC_ENABLED (0x01UL << 4) // 4 4 last header CRC: enabled
-
488 #define RADIOLIB_LR11X0_LAST_HEADER_CRC_DISABLED (0x00UL << 4) // 4 4 disabled
+
485 #define RADIOLIB_LR11X0_LR_FHSS_HEADER_BITS (114) // 7 0 LR FHSS packet bit widths: header
+
486 #define RADIOLIB_LR11X0_LR_FHSS_FRAG_BITS (48) // 7 0 payload fragment
+
487 #define RADIOLIB_LR11X0_LR_FHSS_BLOCK_PREAMBLE_BITS (2) // 7 0 block preamble
+
488 #define RADIOLIB_LR11X0_LR_FHSS_BLOCK_BITS (RADIOLIB_LR11X0_LR_FHSS_FRAG_BITS + RADIOLIB_LR11X0_LR_FHSS_BLOCK_PREAMBLE_BITS)
489 
-
490 // RADIOLIB_LR11X0_CMD_WIFI_SCAN
-
491 #define RADIOLIB_LR11X0_WIFI_SCAN_802_11_B (0x01UL << 0) // 7 0 Wi-Fi type to scan: 802.11b
-
492 #define RADIOLIB_LR11X0_WIFI_SCAN_802_11_G (0x02UL << 0) // 7 0 802.11g
-
493 #define RADIOLIB_LR11X0_WIFI_SCAN_802_11_N (0x03UL << 0) // 7 0 802.11n
-
494 #define RADIOLIB_LR11X0_WIFI_SCAN_ALL (0x04UL << 0) // 7 0 all (802.11b first)
-
495 #define RADIOLIB_LR11X0_WIFI_ACQ_MODE_BEACON_ONLY (0x01UL << 0) // 7 0 Wi-Fi acquisition mode: beacon only
-
496 #define RADIOLIB_LR11X0_WIFI_ACQ_MODE_BEACON_PACKET (0x02UL << 0) // 7 0 beacon and packet
-
497 #define RADIOLIB_LR11X0_WIFI_ACQ_MODE_FULL_TRAFFIC (0x03UL << 0) // 7 0 full traffic
-
498 #define RADIOLIB_LR11X0_WIFI_ACQ_MODE_FULL_BEACON (0x04UL << 0) // 7 0 full beacon
-
499 #define RADIOLIB_LR11X0_WIFI_ACQ_MODE_SSID_BEACON (0x05UL << 0) // 7 0 SSID beacon
-
500 #define RADIOLIB_LR11X0_WIFI_ABORT_ON_TIMEOUT_ENABLED (0x01UL << 0) // 7 0 abort scanning on preamble timeout: enabled
-
501 #define RADIOLIB_LR11X0_WIFI_ABORT_ON_TIMEOUT_DISABLED (0x00UL << 0) // 7 0 disabled
-
502 #define RADIOLIB_LR11X0_WIFI_MAX_NUM_RESULTS (32) // 7 0 maximum possible number of Wi-Fi scan results
-
503 #define RADIOLIB_LR11X0_WIFI_ALL_CHANNELS (0x3FFFUL) // 16 0 scan all channels
-
504 
-
505 // RADIOLIB_LR11X0_CMD_WIFI_READ_RESULTS
-
506 #define RADIOLIB_LR11X0_WIFI_RESULT_TYPE_COMPLETE (0x01UL << 0) // 7 0 Wi-Fi scan result type: complete
-
507 #define RADIOLIB_LR11X0_WIFI_RESULT_TYPE_BASIC (0x04UL << 0) // 7 0 basic
-
508 #define RADIOLIB_LR11X0_WIFI_RESULT_MAX_LEN (79) // 7 0 maximum possible Wi-Fi scan size
-
509 #define RADIOLIB_LR11X0_WIFI_RESULT_MAC_LEN (6) // 7 0 MAC address length in bytes
-
510 #define RADIOLIB_LR11X0_WIFI_RESULT_SSID_LEN (32) // 7 0 SSID length in bytes
-
511 
-
512 // RADIOLIB_LR11X0_CMD_GNSS_SET_CONSTELLATION_TO_USE
-
513 #define RADIOLIB_LR11X0_GNSS_CONSTELLATION_GPS (0x01UL << 0) // 7 0 GNSS constellation to use: GPS
-
514 #define RADIOLIB_LR11X0_GNSS_CONSTELLATION_BEIDOU (0x01UL << 1) // 7 0 BeiDou
+
490 // RADIOLIB_LR11X0_CMD_GET_LORA_RX_HEADER_INFOS
+
491 #define RADIOLIB_LR11X0_LAST_HEADER_CRC_ENABLED (0x01UL << 4) // 4 4 last header CRC: enabled
+
492 #define RADIOLIB_LR11X0_LAST_HEADER_CRC_DISABLED (0x00UL << 4) // 4 4 disabled
+
493 
+
494 // RADIOLIB_LR11X0_CMD_WIFI_SCAN
+
495 #define RADIOLIB_LR11X0_WIFI_SCAN_802_11_B (0x01UL << 0) // 7 0 Wi-Fi type to scan: 802.11b
+
496 #define RADIOLIB_LR11X0_WIFI_SCAN_802_11_G (0x02UL << 0) // 7 0 802.11g
+
497 #define RADIOLIB_LR11X0_WIFI_SCAN_802_11_N (0x03UL << 0) // 7 0 802.11n
+
498 #define RADIOLIB_LR11X0_WIFI_SCAN_ALL (0x04UL << 0) // 7 0 all (802.11b first)
+
499 #define RADIOLIB_LR11X0_WIFI_ACQ_MODE_BEACON_ONLY (0x01UL << 0) // 7 0 Wi-Fi acquisition mode: beacon only
+
500 #define RADIOLIB_LR11X0_WIFI_ACQ_MODE_BEACON_PACKET (0x02UL << 0) // 7 0 beacon and packet
+
501 #define RADIOLIB_LR11X0_WIFI_ACQ_MODE_FULL_TRAFFIC (0x03UL << 0) // 7 0 full traffic
+
502 #define RADIOLIB_LR11X0_WIFI_ACQ_MODE_FULL_BEACON (0x04UL << 0) // 7 0 full beacon
+
503 #define RADIOLIB_LR11X0_WIFI_ACQ_MODE_SSID_BEACON (0x05UL << 0) // 7 0 SSID beacon
+
504 #define RADIOLIB_LR11X0_WIFI_ABORT_ON_TIMEOUT_ENABLED (0x01UL << 0) // 7 0 abort scanning on preamble timeout: enabled
+
505 #define RADIOLIB_LR11X0_WIFI_ABORT_ON_TIMEOUT_DISABLED (0x00UL << 0) // 7 0 disabled
+
506 #define RADIOLIB_LR11X0_WIFI_MAX_NUM_RESULTS (32) // 7 0 maximum possible number of Wi-Fi scan results
+
507 #define RADIOLIB_LR11X0_WIFI_ALL_CHANNELS (0x3FFFUL) // 16 0 scan all channels
+
508 
+
509 // RADIOLIB_LR11X0_CMD_WIFI_READ_RESULTS
+
510 #define RADIOLIB_LR11X0_WIFI_RESULT_TYPE_COMPLETE (0x01UL << 0) // 7 0 Wi-Fi scan result type: complete
+
511 #define RADIOLIB_LR11X0_WIFI_RESULT_TYPE_BASIC (0x04UL << 0) // 7 0 basic
+
512 #define RADIOLIB_LR11X0_WIFI_RESULT_MAX_LEN (79) // 7 0 maximum possible Wi-Fi scan size
+
513 #define RADIOLIB_LR11X0_WIFI_RESULT_MAC_LEN (6) // 7 0 MAC address length in bytes
+
514 #define RADIOLIB_LR11X0_WIFI_RESULT_SSID_LEN (32) // 7 0 SSID length in bytes
515 
-
516 // RADIOLIB_LR11X0_CMD_GNSS_SET_MODE
-
517 #define RADIOLIB_LR11X0_GNSS_MODE_SINGLE_SCAN (0x00UL << 0) // 7 0 GNSS scanning mode: single/legacy
-
518 #define RADIOLIB_LR11X0_GNSS_MODE_SINGLE_MULTIPLE (0x03UL << 1) // 7 0 multiple/advanced
+
516 // RADIOLIB_LR11X0_CMD_GNSS_SET_CONSTELLATION_TO_USE
+
517 #define RADIOLIB_LR11X0_GNSS_CONSTELLATION_GPS (0x01UL << 0) // 7 0 GNSS constellation to use: GPS
+
518 #define RADIOLIB_LR11X0_GNSS_CONSTELLATION_BEIDOU (0x01UL << 1) // 7 0 BeiDou
519 
-
520 // RADIOLIB_LR11X0_CMD_GNSS_AUTONOMOUS
-
521 #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)
-
522 #define RADIOLIB_LR11X0_GNSS_RES_PSEUDO_DOPPLER_DISABLED (0x00UL << 0) // 0 0 not included
-
523 #define RADIOLIB_LR11X0_GNSS_RES_DOPPLER_ENABLED (0x01UL << 1) // 1 1 Doppler information
-
524 #define RADIOLIB_LR11X0_GNSS_RES_DOPPLER_DISABLED (0x00UL << 1) // 1 1 not included
-
525 #define RADIOLIB_LR11X0_GNSS_NB_SV_ALL (0x00UL << 0) // 7 0 include all detected satellites
-
526 #define RADIOLIB_LR11X0_GNSS_AUTO_EFFORT_MODE (0x00UL << 0) // 7 0 reserved, always 0
-
527 
-
528 // RADIOLIB_LR11X0_CMD_GNSS_ASSISTED
-
529 #define RADIOLIB_LR11X0_GNSS_ASSIST_LOW_POWER (0x00UL << 0) // 7 0 effort mode: low power
-
530 #define RADIOLIB_LR11X0_GNSS_ASSIST_BEST_EFFORT (0x01UL << 0) // 7 0 best effort
+
520 // RADIOLIB_LR11X0_CMD_GNSS_SET_MODE
+
521 #define RADIOLIB_LR11X0_GNSS_MODE_SINGLE_SCAN (0x00UL << 0) // 7 0 GNSS scanning mode: single/legacy
+
522 #define RADIOLIB_LR11X0_GNSS_MODE_SINGLE_MULTIPLE (0x03UL << 1) // 7 0 multiple/advanced
+
523 
+
524 // RADIOLIB_LR11X0_CMD_GNSS_AUTONOMOUS
+
525 #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)
+
526 #define RADIOLIB_LR11X0_GNSS_RES_PSEUDO_DOPPLER_DISABLED (0x00UL << 0) // 0 0 not included
+
527 #define RADIOLIB_LR11X0_GNSS_RES_DOPPLER_ENABLED (0x01UL << 1) // 1 1 Doppler information
+
528 #define RADIOLIB_LR11X0_GNSS_RES_DOPPLER_DISABLED (0x00UL << 1) // 1 1 not included
+
529 #define RADIOLIB_LR11X0_GNSS_NB_SV_ALL (0x00UL << 0) // 7 0 include all detected satellites
+
530 #define RADIOLIB_LR11X0_GNSS_AUTO_EFFORT_MODE (0x00UL << 0) // 7 0 reserved, always 0
531 
-
532 // RADIOLIB_LR11X0_CMD_GNSS_GET_CONTEXT_STATUS
-
533 #define RADIOLIB_LR11X0_GNSS_CONTEXT_ERR_NONE (0x00UL << 0) // 7 4 error code: none
-
534 #define RADIOLIB_LR11X0_GNSS_CONTEXT_ERR_ALMANAC_OLD (0x01UL << 0) // 7 4 almanac too old
-
535 #define RADIOLIB_LR11X0_GNSS_CONTEXT_ERR_ALMANAC_CRC (0x02UL << 0) // 7 4 almanac CRC mismatch
-
536 #define RADIOLIB_LR11X0_GNSS_CONTEXT_ERR_FLASH (0x03UL << 0) // 7 4 flash integrity error
-
537 #define RADIOLIB_LR11X0_GNSS_CONTEXT_ERR_ALMANAC_UPD (0x04UL << 0) // 7 4 almanac update not allowed
-
538 #define RADIOLIB_LR11X0_GNSS_CONTEXT_FREQ_SPACE_250_HZ (0x00UL << 0) // 8 7 frequency search space: 250 Hz
-
539 #define RADIOLIB_LR11X0_GNSS_CONTEXT_FREQ_SPACE_500_HZ (0x01UL << 0) // 8 7 500 H
-
540 #define RADIOLIB_LR11X0_GNSS_CONTEXT_FREQ_SPACE_1000_HZ (0x02UL << 0) // 8 7 1000 Hz
-
541 #define RADIOLIB_LR11X0_GNSS_CONTEXT_FREQ_SPACE_2000_HZ (0x03UL << 0) // 8 7 2000 Hz
-
542 
-
543 // RADIOLIB_LR11X0_CMD_GNSS_GET_SV_VISIBLE
-
544 #define RADIOLIB_LR11X0_SV_CONSTELLATION_GPS (0x00UL << 0) // 7 0 GNSS constellation: GPS
-
545 #define RADIOLIB_LR11X0_SV_CONSTELLATION_BEIDOU (0x01UL << 0) // 7 0 BeiDou
+
532 // RADIOLIB_LR11X0_CMD_GNSS_ASSISTED
+
533 #define RADIOLIB_LR11X0_GNSS_ASSIST_LOW_POWER (0x00UL << 0) // 7 0 effort mode: low power
+
534 #define RADIOLIB_LR11X0_GNSS_ASSIST_BEST_EFFORT (0x01UL << 0) // 7 0 best effort
+
535 
+
536 // RADIOLIB_LR11X0_CMD_GNSS_GET_CONTEXT_STATUS
+
537 #define RADIOLIB_LR11X0_GNSS_CONTEXT_ERR_NONE (0x00UL << 0) // 7 4 error code: none
+
538 #define RADIOLIB_LR11X0_GNSS_CONTEXT_ERR_ALMANAC_OLD (0x01UL << 0) // 7 4 almanac too old
+
539 #define RADIOLIB_LR11X0_GNSS_CONTEXT_ERR_ALMANAC_CRC (0x02UL << 0) // 7 4 almanac CRC mismatch
+
540 #define RADIOLIB_LR11X0_GNSS_CONTEXT_ERR_FLASH (0x03UL << 0) // 7 4 flash integrity error
+
541 #define RADIOLIB_LR11X0_GNSS_CONTEXT_ERR_ALMANAC_UPD (0x04UL << 0) // 7 4 almanac update not allowed
+
542 #define RADIOLIB_LR11X0_GNSS_CONTEXT_FREQ_SPACE_250_HZ (0x00UL << 0) // 8 7 frequency search space: 250 Hz
+
543 #define RADIOLIB_LR11X0_GNSS_CONTEXT_FREQ_SPACE_500_HZ (0x01UL << 0) // 8 7 500 H
+
544 #define RADIOLIB_LR11X0_GNSS_CONTEXT_FREQ_SPACE_1000_HZ (0x02UL << 0) // 8 7 1000 Hz
+
545 #define RADIOLIB_LR11X0_GNSS_CONTEXT_FREQ_SPACE_2000_HZ (0x03UL << 0) // 8 7 2000 Hz
546 
-
547 // RADIOLIB_LR11X0_CMD_GNSS_ALMANAC_FULL_UPDATE
-
548 #define RADIOLIB_LR11X0_GNSS_ALMANAC_HEADER_ID (0x80UL << 0) // 7 0 starting byte of GNSS almanac header
-
549 #define RADIOLIB_LR11X0_GNSS_ALMANAC_BLOCK_SIZE (20)
+
547 // RADIOLIB_LR11X0_CMD_GNSS_GET_SV_VISIBLE
+
548 #define RADIOLIB_LR11X0_SV_CONSTELLATION_GPS (0x00UL << 0) // 7 0 GNSS constellation: GPS
+
549 #define RADIOLIB_LR11X0_SV_CONSTELLATION_BEIDOU (0x01UL << 0) // 7 0 BeiDou
550 
-
551 // RADIOLIB_LR11X0_CMD_CRYPTO_SET_KEY
-
552 #define RADIOLIB_LR11X0_CRYPTO_STATUS_SUCCESS (0x00UL << 0) // 7 0 crypto engine status: success
-
553 #define RADIOLIB_LR11X0_CRYPTO_STATUS_FAIL_CMAC (0x01UL << 0) // 7 0 MIC check failed
-
554 #define RADIOLIB_LR11X0_CRYPTO_STATUS_INV_KEY_ID (0x03UL << 0) // 7 0 key/parameter source or destination ID error
-
555 #define RADIOLIB_LR11X0_CRYPTO_STATUS_BUF_SIZE (0x05UL << 0) // 7 0 data buffer size invalid
-
556 #define RADIOLIB_LR11X0_CRYPTO_STATUS_ERROR (0x06UL << 0) // 7 0 generic error
-
557 
-
558 // RADIOLIB_LR11X0_CMD_CRYPTO_PROCESS_JOIN_ACCEPT
-
559 #define RADIOLIB_LR11X0_CRYPTO_LORAWAN_VERSION_1_0 (0x00UL << 0) // 7 0 LoRaWAN version: 1.0.x
-
560 #define RADIOLIB_LR11X0_CRYPTO_LORAWAN_VERSION_1_1 (0x01UL << 0) // 7 0 1.1
+
551 // RADIOLIB_LR11X0_CMD_GNSS_ALMANAC_FULL_UPDATE
+
552 #define RADIOLIB_LR11X0_GNSS_ALMANAC_HEADER_ID (0x80UL << 0) // 7 0 starting byte of GNSS almanac header
+
553 #define RADIOLIB_LR11X0_GNSS_ALMANAC_BLOCK_SIZE (20)
+
554 
+
555 // RADIOLIB_LR11X0_CMD_CRYPTO_SET_KEY
+
556 #define RADIOLIB_LR11X0_CRYPTO_STATUS_SUCCESS (0x00UL << 0) // 7 0 crypto engine status: success
+
557 #define RADIOLIB_LR11X0_CRYPTO_STATUS_FAIL_CMAC (0x01UL << 0) // 7 0 MIC check failed
+
558 #define RADIOLIB_LR11X0_CRYPTO_STATUS_INV_KEY_ID (0x03UL << 0) // 7 0 key/parameter source or destination ID error
+
559 #define RADIOLIB_LR11X0_CRYPTO_STATUS_BUF_SIZE (0x05UL << 0) // 7 0 data buffer size invalid
+
560 #define RADIOLIB_LR11X0_CRYPTO_STATUS_ERROR (0x06UL << 0) // 7 0 generic error
561 
-
562 // LR11X0 SPI register variables
-
563 
-
564 // RADIOLIB_LR11X0_REG_SF6_SX127X_COMPAT
-
565 #define RADIOLIB_LR11X0_SF6_SX126X (0x00UL << 18) // 18 18 SF6 mode: SX126x series
-
566 #define RADIOLIB_LR11X0_SF6_SX127X (0x01UL << 18) // 18 18 SX127x series
+
562 // RADIOLIB_LR11X0_CMD_CRYPTO_PROCESS_JOIN_ACCEPT
+
563 #define RADIOLIB_LR11X0_CRYPTO_LORAWAN_VERSION_1_0 (0x00UL << 0) // 7 0 LoRaWAN version: 1.0.x
+
564 #define RADIOLIB_LR11X0_CRYPTO_LORAWAN_VERSION_1_1 (0x01UL << 0) // 7 0 1.1
+
565 
+
566 // LR11X0 SPI register variables
567 
-
568 // RADIOLIB_LR11X0_REG_LORA_HIGH_POWER_FIX
-
569 #define RADIOLIB_LR11X0_LORA_HIGH_POWER_FIX (0x00UL << 30) // 30 30 fix for errata
-
570 
-
576 struct LR11x0WifiResult_t {
-
578  char type;
-
579 
-
581  uint8_t dataRateId;
-
582 
-
584  uint16_t channelFreq;
-
585 
-
587  uint8_t origin;
-
588 
-
590  bool ap;
-
591 
-
593  float rssi;
-
594 
-
596  uint8_t mac[RADIOLIB_LR11X0_WIFI_RESULT_MAC_LEN];
-
597 };
+
568 // RADIOLIB_LR11X0_REG_SF6_SX127X_COMPAT
+
569 #define RADIOLIB_LR11X0_SF6_SX126X (0x00UL << 18) // 18 18 SF6 mode: SX126x series
+
570 #define RADIOLIB_LR11X0_SF6_SX127X (0x01UL << 18) // 18 18 SX127x series
+
571 
+
572 // RADIOLIB_LR11X0_REG_LORA_HIGH_POWER_FIX
+
573 #define RADIOLIB_LR11X0_LORA_HIGH_POWER_FIX (0x00UL << 30) // 30 30 fix for errata
+
574 
+
580 struct LR11x0WifiResult_t {
+
582  char type;
+
583 
+
585  uint8_t dataRateId;
+
586 
+
588  uint16_t channelFreq;
+
589 
+
591  uint8_t origin;
+
592 
+
594  bool ap;
+
595 
+
597  float rssi;
598 
-
604 struct LR11x0WifiResultFull_t: public LR11x0WifiResult_t {
-
606  uint8_t frameType;
-
607 
-
609  uint8_t frameSubType;
-
610 
-
612  bool toDistributionSystem;
-
613 
-
615  bool fromDistributionSystem;
-
616 
-
618  uint16_t phiOffset;
-
619 
-
621  uint64_t timestamp;
-
622 
-
624  uint32_t periodBeacon;
-
625 };
+
600  uint8_t mac[RADIOLIB_LR11X0_WIFI_RESULT_MAC_LEN];
+
601 };
+
602 
+
608 struct LR11x0WifiResultFull_t: public LR11x0WifiResult_t {
+
610  uint8_t frameType;
+
611 
+
613  uint8_t frameSubType;
+
614 
+
616  bool toDistributionSystem;
+
617 
+
619  bool fromDistributionSystem;
+
620 
+
622  uint16_t phiOffset;
+
623 
+
625  uint64_t timestamp;
626 
-
634 struct LR11x0WifiResultExtended_t: public LR11x0WifiResultFull_t {
-
636  uint8_t rate;
-
637 
-
639  uint16_t service;
-
640 
-
642  uint16_t length;
-
643 
-
645  uint8_t mac0[RADIOLIB_LR11X0_WIFI_RESULT_MAC_LEN];
-
646 
-
648  uint8_t mac2[RADIOLIB_LR11X0_WIFI_RESULT_MAC_LEN];
-
649 
-
651  uint16_t seqCtrl;
-
652 
-
654  uint8_t ssid[RADIOLIB_LR11X0_WIFI_RESULT_SSID_LEN];
-
655 
-
657  uint8_t currentChannel;
-
658 
-
660  char countryCode[3];
-
661 
-
663  uint8_t ioReg;
-
664 
-
666  bool fcsCheckOk;
-
667 };
+
628  uint32_t periodBeacon;
+
629 };
+
630 
+
638 struct LR11x0WifiResultExtended_t: public LR11x0WifiResultFull_t {
+
640  uint8_t rate;
+
641 
+
643  uint16_t service;
+
644 
+
646  uint16_t length;
+
647 
+
649  uint8_t mac0[RADIOLIB_LR11X0_WIFI_RESULT_MAC_LEN];
+
650 
+
652  uint8_t mac2[RADIOLIB_LR11X0_WIFI_RESULT_MAC_LEN];
+
653 
+
655  uint16_t seqCtrl;
+
656 
+
658  uint8_t ssid[RADIOLIB_LR11X0_WIFI_RESULT_SSID_LEN];
+
659 
+
661  uint8_t currentChannel;
+
662 
+
664  char countryCode[3];
+
665 
+
667  uint8_t ioReg;
668 
-
673 struct LR11x0VersionInfo_t {
-
675  uint8_t hardware;
-
676 
-
678  uint8_t device;
-
679 
-
681  uint8_t fwMajor;
-
682 
-
684  uint8_t fwMinor;
-
685 
-
687  uint8_t fwMajorWiFi;
-
688 
-
690  uint8_t fwMinorWiFi;
-
691 
-
693  uint8_t fwGNSS;
-
694 
-
696  uint8_t almanacGNSS;
-
697 };
-
698 
-
704 class LR11x0: public PhysicalLayer {
-
705  public:
-
706  // introduce PhysicalLayer overloads
-
707  using PhysicalLayer::transmit;
-
708  using PhysicalLayer::receive;
-
709  using PhysicalLayer::startTransmit;
-
710  using PhysicalLayer::readData;
-
711 
-
716  explicit LR11x0(Module* mod);
-
717 
-
722  enum OpMode_t {
-
724  MODE_END_OF_TABLE = Module::MODE_END_OF_TABLE,
-
726  MODE_STBY = Module::MODE_IDLE,
-
728  MODE_RX = Module::MODE_RX,
-
730  MODE_TX = Module::MODE_TX,
-
732  MODE_TX_HP,
-
734  MODE_TX_HF,
-
736  MODE_GNSS,
-
738  MODE_WIFI,
-
739  };
-
740 
-
744  bool XTAL;
-
745 
-
757  int16_t begin(float bw, uint8_t sf, uint8_t cr, uint8_t syncWord, int8_t power, uint16_t preambleLength, float tcxoVoltage);
-
758 
-
769  int16_t beginGFSK(float br, float freqDev, float rxBw, int8_t power, uint16_t preambleLength, float tcxoVoltage);
-
770 
-
779  int16_t beginLRFHSS(uint8_t bw, uint8_t cr, int8_t power, float tcxoVoltage);
-
780 
-
785  int16_t reset();
-
786 
-
795  int16_t transmit(uint8_t* data, size_t len, uint8_t addr = 0) override;
-
796 
-
804  int16_t receive(uint8_t* data, size_t len) override;
-
805 
-
811  int16_t transmitDirect(uint32_t frf = 0) override;
-
812 
-
818  int16_t receiveDirect() override;
-
819 
-
824  int16_t scanChannel() override;
-
825 
-
833  int16_t scanChannel(uint8_t symbolNum, uint8_t detPeak, uint8_t detMin);
-
834 
-
839  int16_t standby() override;
-
840 
-
848  int16_t standby(uint8_t mode, bool wakeup = true);
-
849 
-
855  int16_t sleep() override;
-
856 
-
864  int16_t sleep(bool retainConfig, uint32_t sleepTime);
-
865 
-
866  // interrupt methods
-
867 
-
872  void setIrqAction(void (*func)(void));
-
873 
-
877  void clearIrqAction();
-
878 
-
883  void setPacketReceivedAction(void (*func)(void)) override;
-
884 
-
888  void clearPacketReceivedAction() override;
-
889 
-
894  void setPacketSentAction(void (*func)(void)) override;
-
895 
-
899  void clearPacketSentAction() override;
-
900 
-
909  int16_t startTransmit(uint8_t* data, size_t len, uint8_t addr = 0) override;
-
910 
-
915  int16_t finishTransmit() override;
-
916 
-
923  int16_t startReceive() override;
-
924 
-
937  int16_t startReceive(uint32_t timeout, uint32_t irqFlags = RADIOLIB_LR11X0_IRQ_RX_DONE, uint32_t irqMask = 0, size_t len = 0);
-
938 
-
943  uint32_t getIrqStatus();
-
944 
-
953  int16_t readData(uint8_t* data, size_t len) override;
-
954 
-
960  int16_t startChannelScan() override;
-
961 
-
970  int16_t startChannelScan(uint8_t symbolNum, uint8_t detPeak, uint8_t detMin);
-
971 
-
976  int16_t getChannelScanResult() override;
-
977 
-
978  // configuration methods
-
979 
-
985  int16_t setOutputPower(int8_t power) override;
-
986 
-
994  int16_t setOutputPower(int8_t power, bool forceHighPower);
-
995 
-
1003  int16_t checkOutputPower(int8_t power, int8_t* clipped) override;
-
1004 
-
1013  int16_t checkOutputPower(int8_t power, int8_t* clipped, bool forceHighPower);
-
1014 
-
1020  int16_t setBandwidth(float bw);
-
1021 
-
1028  int16_t setSpreadingFactor(uint8_t sf, bool legacy = false);
-
1029 
-
1037  int16_t setCodingRate(uint8_t cr, bool longInterleave = false);
-
1038 
-
1044  int16_t setSyncWord(uint32_t syncWord);
-
1045 
-
1051  int16_t setBitRate(float br) override;
-
1052 
-
1058  int16_t setFrequencyDeviation(float freqDev) override;
-
1059 
-
1066  int16_t setRxBandwidth(float rxBw);
-
1067 
-
1074  int16_t setSyncWord(uint8_t* syncWord, size_t len) override;
-
1075 
-
1083  int16_t setSyncBits(uint8_t *syncWord, uint8_t bitsLen);
-
1084 
-
1090  int16_t setNodeAddress(uint8_t nodeAddr);
-
1091 
-
1098  int16_t setBroadcastAddress(uint8_t broadAddr);
-
1099 
-
1104  int16_t disableAddressFiltering();
-
1105 
-
1113  int16_t setDataShaping(uint8_t sh) override;
-
1114 
-
1120  int16_t setEncoding(uint8_t encoding) override;
-
1121 
-
1127  int16_t fixedPacketLengthMode(uint8_t len = RADIOLIB_LR11X0_MAX_PACKET_LENGTH);
-
1128 
-
1134  int16_t variablePacketLengthMode(uint8_t maxLen = RADIOLIB_LR11X0_MAX_PACKET_LENGTH);
-
1135 
-
1143  int16_t setWhitening(bool enabled, uint16_t initial = 0x01FF);
-
1144 
-
1150  int16_t setDataRate(DataRate_t dr) override;
-
1151 
-
1157  int16_t checkDataRate(DataRate_t dr) override;
-
1158 
-
1164  int16_t setPreambleLength(size_t preambleLength) override;
-
1165 
-
1174  int16_t setTCXO(float voltage, uint32_t delay = 5000);
-
1175 
-
1184  int16_t setCRC(uint8_t len, uint32_t initial = 0x00001D0FUL, uint32_t polynomial = 0x00001021UL, bool inverted = true);
-
1185 
-
1191  int16_t invertIQ(bool enable) override;
-
1192 
-
1197  float getRSSI() override;
-
1198 
-
1203  float getSNR() override;
-
1204 
-
1209  float getFrequencyError();
-
1210 
-
1216  size_t getPacketLength(bool update = true) override;
-
1217 
-
1223  size_t getPacketLength(bool update, uint8_t* offset);
-
1224 
-
1230  RadioLibTime_t getTimeOnAir(size_t len) override;
-
1231 
-
1237  RadioLibTime_t calculateRxTimeout(RadioLibTime_t timeoutUs) override;
-
1238 
-
1245  int16_t irqRxDoneRxTimeout(uint32_t &irqFlags, uint32_t &irqMask) override;
-
1246 
-
1251  bool isRxTimeout() override;
-
1252 
-
1257  uint8_t randomByte() override;
-
1258 
-
1264  int16_t implicitHeader(size_t len);
-
1265 
-
1270  int16_t explicitHeader();
-
1271 
-
1276  float getDataRate() const;
-
1277 
-
1282  int16_t setRegulatorLDO();
-
1283 
-
1288  int16_t setRegulatorDCDC();
-
1289 
-
1295  int16_t setRxBoostedGainMode(bool en);
-
1296 
-
1298  void setRfSwitchTable(const uint32_t (&pins)[Module::RFSWITCH_MAX_PINS], const Module::RfSwitchMode_t table[]);
-
1299 
-
1308  int16_t setLrFhssConfig(uint8_t bw, uint8_t cr, uint8_t hdrCount = 3, uint16_t hopSeed = 0x13A);
-
1309 
-
1324  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);
-
1325 
-
1330  void setWiFiScanAction(void (*func)(void));
-
1331 
-
1335  void clearWiFiScanAction();
-
1336 
-
1342  int16_t getWifiScanResultsCount(uint8_t* count);
-
1343 
-
1353  int16_t getWifiScanResult(LR11x0WifiResult_t* result, uint8_t index, bool brief = false);
-
1354 
-
1371  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);
-
1372 
-
1378  int16_t getVersionInfo(LR11x0VersionInfo_t* info);
-
1379 
-
1390  int16_t updateFirmware(const uint32_t* image, size_t size, bool nonvolatile = true);
-
1391 
-
1392 #if !RADIOLIB_GODMODE && !RADIOLIB_LOW_LEVEL
-
1393  protected:
-
1394 #endif
-
1395  Module* getMod() override;
-
1396 
-
1397  // LR11x0 SPI command implementations
-
1398  int16_t writeRegMem32(uint32_t addr, uint32_t* data, size_t len);
-
1399  int16_t readRegMem32(uint32_t addr, uint32_t* data, size_t len);
-
1400  int16_t writeBuffer8(uint8_t* data, size_t len);
-
1401  int16_t readBuffer8(uint8_t* data, size_t len, size_t offset);
-
1402  int16_t clearRxBuffer(void);
-
1403  int16_t writeRegMemMask32(uint32_t addr, uint32_t mask, uint32_t data);
-
1404 
-
1405  int16_t getStatus(uint8_t* stat1, uint8_t* stat2, uint32_t* irq);
-
1406  int16_t getVersion(uint8_t* hw, uint8_t* device, uint8_t* major, uint8_t* minor);
-
1407  int16_t getErrors(uint16_t* err);
-
1408  int16_t clearErrors(void);
-
1409  int16_t calibrate(uint8_t params);
-
1410  int16_t setRegMode(uint8_t mode);
-
1411  int16_t calibImage(float freq1, float freq2);
-
1412  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);
-
1413  int16_t setDioIrqParams(uint32_t irq1, uint32_t irq2);
-
1414  int16_t clearIrq(uint32_t irq);
-
1415  int16_t configLfClock(uint8_t setup);
-
1416  int16_t setTcxoMode(uint8_t tune, uint32_t delay);
-
1417  int16_t reboot(bool stay);
-
1418  int16_t getVbat(float* vbat);
-
1419  int16_t getTemp(float* temp);
-
1420  int16_t setFs(void);
-
1421  int16_t getRandomNumber(uint32_t* rnd);
-
1422  int16_t eraseInfoPage(void);
-
1423  int16_t writeInfoPage(uint16_t addr, const uint32_t* data, size_t len);
-
1424  int16_t readInfoPage(uint16_t addr, uint32_t* data, size_t len);
-
1425  int16_t getChipEui(uint8_t* eui);
-
1426  int16_t getSemtechJoinEui(uint8_t* eui);
-
1427  int16_t deriveRootKeysAndGetPin(uint8_t* pin);
-
1428  int16_t enableSpiCrc(bool en);
-
1429  int16_t driveDiosInSleepMode(bool en);
-
1430 
-
1431  int16_t resetStats(void);
-
1432  int16_t getStats(uint16_t* nbPktReceived, uint16_t* nbPktCrcError, uint16_t* data1, uint16_t* data2);
-
1433  int16_t getPacketType(uint8_t* type);
-
1434  int16_t getRxBufferStatus(uint8_t* len, uint8_t* startOffset);
-
1435  int16_t getPacketStatusLoRa(float* rssiPkt, float* snrPkt, float* signalRssiPkt);
-
1436  int16_t getPacketStatusGFSK(float* rssiSync, float* rssiAvg, uint8_t* rxLen, uint8_t* stat);
-
1437  int16_t getRssiInst(float* rssi);
-
1438  int16_t setGfskSyncWord(uint8_t* sync);
-
1439  int16_t setLoRaPublicNetwork(bool pub);
-
1440  int16_t setRx(uint32_t timeout);
-
1441  int16_t setTx(uint32_t timeout);
-
1442  int16_t setRfFrequency(uint32_t rfFreq);
-
1443  int16_t autoTxRx(uint32_t delay, uint8_t intMode, uint32_t timeout);
-
1444  int16_t setCadParams(uint8_t symNum, uint8_t detPeak, uint8_t detMin, uint8_t cadExitMode, uint32_t timeout);
-
1445  int16_t setPacketType(uint8_t type);
-
1446  int16_t setModulationParamsLoRa(uint8_t sf, uint8_t bw, uint8_t cr, uint8_t ldro);
-
1447  int16_t setModulationParamsGFSK(uint32_t br, uint8_t sh, uint8_t rxBw, uint32_t freqDev);
-
1448  int16_t setModulationParamsLrFhss(uint32_t br, uint8_t sh);
-
1449  int16_t setModulationParamsSigfox(uint32_t br, uint8_t sh);
-
1450  int16_t setPacketParamsLoRa(uint16_t preambleLen, uint8_t hdrType, uint8_t payloadLen, uint8_t crcType, uint8_t invertIQ);
-
1451  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);
-
1452  int16_t setPacketParamsSigfox(uint8_t payloadLen, uint16_t rampUpDelay, uint16_t rampDownDelay, uint16_t bitNum);
-
1453  int16_t setTxParams(int8_t pwr, uint8_t ramp);
-
1454  int16_t setPacketAdrs(uint8_t node, uint8_t broadcast);
-
1455  int16_t setRxTxFallbackMode(uint8_t mode);
-
1456  int16_t setRxDutyCycle(uint32_t rxPeriod, uint32_t sleepPeriod, uint8_t mode);
-
1457  int16_t setPaConfig(uint8_t paSel, uint8_t regPaSupply, uint8_t paDutyCycle, uint8_t paHpSel);
-
1458  int16_t stopTimeoutOnPreamble(bool stop);
-
1459  int16_t setCad(void);
-
1460  int16_t setTxCw(void);
-
1461  int16_t setTxInfinitePreamble(void);
-
1462  int16_t setLoRaSynchTimeout(uint8_t symbolNum);
-
1463  int16_t setRangingAddr(uint32_t addr, uint8_t checkLen);
-
1464  int16_t setRangingReqAddr(uint32_t addr);
-
1465  int16_t getRangingResult(uint8_t type, float* res);
-
1466  int16_t setRangingTxRxDelay(uint32_t delay);
-
1467  int16_t setGfskCrcParams(uint32_t init, uint32_t poly);
-
1468  int16_t setGfskWhitParams(uint16_t seed);
-
1469  int16_t setRangingParameter(uint8_t symbolNum);
-
1470  int16_t setRssiCalibration(const int8_t* tune, int16_t gainOffset);
-
1471  int16_t setLoRaSyncWord(uint8_t sync);
-
1472  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);
-
1473  int16_t lrFhssSetSyncWord(uint32_t sync);
-
1474  int16_t configBleBeacon(uint8_t chan, uint8_t* payload, size_t len);
-
1475  int16_t getLoRaRxHeaderInfos(uint8_t* info);
-
1476  int16_t bleBeaconSend(uint8_t chan, uint8_t* payload, size_t len);
-
1477 
-
1478  int16_t wifiScan(uint8_t type, uint16_t mask, uint8_t acqMode, uint8_t nbMaxRes, uint8_t nbScanPerChan, uint16_t timeout, uint8_t abortOnTimeout);
-
1479  int16_t wifiScanTimeLimit(uint8_t type, uint16_t mask, uint8_t acqMode, uint8_t nbMaxRes, uint16_t timePerChan, uint16_t timeout);
-
1480  int16_t wifiCountryCode(uint16_t mask, uint8_t nbMaxRes, uint8_t nbScanPerChan, uint16_t timeout, uint8_t abortOnTimeout);
-
1481  int16_t wifiCountryCodeTimeLimit(uint16_t mask, uint8_t nbMaxRes, uint16_t timePerChan, uint16_t timeout);
-
1482  int16_t wifiGetNbResults(uint8_t* nbResults);
-
1483  int16_t wifiReadResults(uint8_t index, uint8_t nbResults, uint8_t format, uint8_t* results);
-
1484  int16_t wifiResetCumulTimings(void);
-
1485  int16_t wifiReadCumulTimings(uint32_t* detection, uint32_t* capture, uint32_t* demodulation);
-
1486  int16_t wifiGetNbCountryCodeResults(uint8_t* nbResults);
-
1487  int16_t wifiReadCountryCodeResults(uint8_t index, uint8_t nbResults, uint8_t* results);
-
1488  int16_t wifiCfgTimestampAPphone(uint32_t timestamp);
-
1489  int16_t wifiReadVersion(uint8_t* major, uint8_t* minor);
-
1490 
-
1491  int16_t gnssSetConstellationToUse(uint8_t mask);
-
1492  int16_t gnssReadConstellationToUse(uint8_t* mask);
-
1493  int16_t gnssSetAlmanacUpdate(uint8_t mask);
-
1494  int16_t gnssReadAlmanacUpdate(uint8_t* mask);
-
1495  int16_t gnssReadVersion(uint8_t* fw, uint8_t* almanac);
-
1496  int16_t gnssReadSupportedConstellations(uint8_t* mask);
-
1497  int16_t gnssSetMode(uint8_t mode);
-
1498  int16_t gnssAutonomous(uint32_t gpsTime, uint8_t resMask, uint8_t nbSvMask);
-
1499  int16_t gnssAssisted(uint32_t gpsTime, uint8_t effort, uint8_t resMask, uint8_t nbSvMask);
-
1500  int16_t gnssSetAssistancePosition(float lat, float lon);
-
1501  int16_t gnssReadAssistancePosition(float* lat, float* lon);
-
1502  int16_t gnssPushSolverMsg(uint8_t* payload, size_t len);
-
1503  int16_t gnssPushDmMsg(uint8_t* payload, size_t len);
-
1504  int16_t gnssGetContextStatus(uint8_t* fwVersion, uint32_t* almanacCrc, uint8_t* errCode, uint8_t* almUpdMask, uint8_t* freqSpace);
-
1505  int16_t gnssGetNbSvDetected(uint8_t* nbSv);
-
1506  int16_t gnssGetSvDetected(uint8_t* svId, uint8_t* snr, uint16_t* doppler, size_t nbSv);
-
1507  int16_t gnssGetConsumption(uint32_t* cpu, uint32_t* radio);
-
1508  int16_t gnssGetResultSize(uint16_t* size);
-
1509  int16_t gnssReadResults(uint8_t* result, uint16_t size);
-
1510  int16_t gnssAlmanacFullUpdateHeader(uint16_t date, uint32_t globalCrc);
-
1511  int16_t gnssAlmanacFullUpdateSV(uint8_t svn, uint8_t* svnAlmanac);
-
1512  int16_t gnssGetSvVisible(uint32_t time, float lat, float lon, uint8_t constellation, uint8_t* nbSv);
-
1513  int16_t gnssScan(uint8_t effort, uint8_t resMask, uint8_t nbSvMax);
-
1514  int16_t gnssReadLastScanModeLaunched(uint8_t* lastScanMode);
-
1515  int16_t gnssFetchTime(uint8_t effort, uint8_t opt);
-
1516  int16_t gnssReadTime(uint8_t* err, uint32_t* time, uint32_t* nbUs, uint32_t* timeAccuracy);
-
1517  int16_t gnssResetTime(void);
-
1518  int16_t gnssResetPosition(void);
-
1519  int16_t gnssReadDemodStatus(int8_t* status, uint8_t* info);
-
1520  int16_t gnssReadCumulTiming(uint32_t* timing, uint8_t* constDemod);
-
1521  int16_t gnssSetTime(uint32_t time, uint16_t accuracy);
-
1522  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);
-
1523  int16_t gnssReadDelayResetAP(uint32_t* delay);
-
1524  int16_t gnssAlmanacUpdateFromSat(uint8_t effort, uint8_t bitMask);
-
1525  int16_t gnssReadAlmanacStatus(uint8_t* status);
-
1526  int16_t gnssConfigAlmanacUpdatePeriod(uint8_t bitMask, uint8_t svType, uint16_t period);
-
1527  int16_t gnssReadAlmanacUpdatePeriod(uint8_t bitMask, uint8_t svType, uint16_t* period);
-
1528  int16_t gnssConfigDelayResetAP(uint32_t delay);
-
1529  int16_t gnssGetSvWarmStart(uint8_t bitMask, uint8_t* sv, uint8_t nbVisSat);
-
1530  int16_t gnssReadWNRollover(uint8_t* status, uint8_t* rollover);
-
1531  int16_t gnssReadWarmStartStatus(uint8_t bitMask, uint8_t* nbVisSat, uint32_t* timeElapsed);
-
1532  int16_t gnssWriteBitMaskSatActivated(uint8_t bitMask, uint32_t* bitMaskActivated0, uint32_t* bitMaskActivated1);
-
1533 
-
1534  int16_t cryptoSetKey(uint8_t keyId, uint8_t* key);
-
1535  int16_t cryptoDeriveKey(uint8_t srcKeyId, uint8_t dstKeyId, uint8_t* key);
-
1536  int16_t cryptoProcessJoinAccept(uint8_t decKeyId, uint8_t verKeyId, uint8_t lwVer, uint8_t* header, uint8_t* dataIn, size_t len, uint8_t* dataOut);
-
1537  int16_t cryptoComputeAesCmac(uint8_t keyId, uint8_t* data, size_t len, uint32_t* mic);
-
1538  int16_t cryptoVerifyAesCmac(uint8_t keyId, uint32_t micExp, uint8_t* data, size_t len, bool* result);
-
1539  int16_t cryptoAesEncrypt01(uint8_t keyId, uint8_t* dataIn, size_t len, uint8_t* dataOut);
-
1540  int16_t cryptoAesEncrypt(uint8_t keyId, uint8_t* dataIn, size_t len, uint8_t* dataOut);
-
1541  int16_t cryptoAesDecrypt(uint8_t keyId, uint8_t* dataIn, size_t len, uint8_t* dataOut);
-
1542  int16_t cryptoStoreToFlash(void);
-
1543  int16_t cryptoRestoreFromFlash(void);
-
1544  int16_t cryptoSetParam(uint8_t id, uint32_t value);
-
1545  int16_t cryptoGetParam(uint8_t id, uint32_t* value);
-
1546  int16_t cryptoCheckEncryptedFirmwareImage(uint32_t offset, uint32_t* data, size_t len, bool nonvolatile);
-
1547  int16_t cryptoCheckEncryptedFirmwareImageResult(bool* result);
-
1548 
-
1549  int16_t bootEraseFlash(void);
-
1550  int16_t bootWriteFlashEncrypted(uint32_t offset, uint32_t* data, size_t len, bool nonvolatile);
-
1551  int16_t bootReboot(bool stay);
-
1552  int16_t bootGetPin(uint8_t* pin);
-
1553  int16_t bootGetChipEui(uint8_t* eui);
-
1554  int16_t bootGetJoinEui(uint8_t* eui);
-
1555 
-
1556  int16_t SPIcommand(uint16_t cmd, bool write, uint8_t* data, size_t len, uint8_t* out = NULL, size_t outLen = 0);
-
1557 
-
1558 #if !RADIOLIB_GODMODE
-
1559  protected:
-
1560 #endif
-
1561  uint8_t chipType = 0;
-
1562 
-
1563 #if !RADIOLIB_GODMODE
-
1564  private:
-
1565 #endif
-
1566  Module* mod;
-
1567 
-
1568  // cached LoRa parameters
-
1569  uint8_t bandwidth = 0, spreadingFactor = 0, codingRate = 0, ldrOptimize = 0, crcTypeLoRa = 0, headerType = 0;
-
1570  uint16_t preambleLengthLoRa = 0;
-
1571  float bandwidthKhz = 0;
-
1572  bool ldroAuto = true;
-
1573  size_t implicitLen = 0;
-
1574  bool invertIQEnabled = false;
-
1575 
-
1576  // cached GFSK parameters
-
1577  uint32_t bitRate = 0, frequencyDev = 0;
-
1578  uint8_t preambleDetLength = 0, rxBandwidth = 0, pulseShape = 0, crcTypeGFSK = 0, syncWordLength = 0, addrComp = 0, whitening = 0, packetType = 0, node = 0;
-
1579  uint16_t preambleLengthGFSK = 0;
-
1580 
-
1581  // cached LR-FHSS parameters
-
1582  uint8_t lrFhssCr = 0, lrFhssBw = 0, lrFhssHdrCount = 0;
-
1583  uint16_t lrFhssHopSeq = 0;
+
670  bool fcsCheckOk;
+
671 };
+
672 
+
677 struct LR11x0VersionInfo_t {
+
679  uint8_t hardware;
+
680 
+
682  uint8_t device;
+
683 
+
685  uint8_t fwMajor;
+
686 
+
688  uint8_t fwMinor;
+
689 
+
691  uint8_t fwMajorWiFi;
+
692 
+
694  uint8_t fwMinorWiFi;
+
695 
+
697  uint8_t fwGNSS;
+
698 
+
700  uint8_t almanacGNSS;
+
701 };
+
702 
+
708 class LR11x0: public PhysicalLayer {
+
709  public:
+
710  // introduce PhysicalLayer overloads
+
711  using PhysicalLayer::transmit;
+
712  using PhysicalLayer::receive;
+
713  using PhysicalLayer::startTransmit;
+
714  using PhysicalLayer::readData;
+
715 
+
720  explicit LR11x0(Module* mod);
+
721 
+
726  enum OpMode_t {
+
728  MODE_END_OF_TABLE = Module::MODE_END_OF_TABLE,
+
730  MODE_STBY = Module::MODE_IDLE,
+
732  MODE_RX = Module::MODE_RX,
+
734  MODE_TX = Module::MODE_TX,
+
736  MODE_TX_HP,
+
738  MODE_TX_HF,
+
740  MODE_GNSS,
+
742  MODE_WIFI,
+
743  };
+
744 
+
748  bool XTAL;
+
749 
+
761  int16_t begin(float bw, uint8_t sf, uint8_t cr, uint8_t syncWord, int8_t power, uint16_t preambleLength, float tcxoVoltage);
+
762 
+
773  int16_t beginGFSK(float br, float freqDev, float rxBw, int8_t power, uint16_t preambleLength, float tcxoVoltage);
+
774 
+
783  int16_t beginLRFHSS(uint8_t bw, uint8_t cr, int8_t power, float tcxoVoltage);
+
784 
+
789  int16_t reset();
+
790 
+
799  int16_t transmit(uint8_t* data, size_t len, uint8_t addr = 0) override;
+
800 
+
808  int16_t receive(uint8_t* data, size_t len) override;
+
809 
+
815  int16_t transmitDirect(uint32_t frf = 0) override;
+
816 
+
822  int16_t receiveDirect() override;
+
823 
+
828  int16_t scanChannel() override;
+
829 
+
837  int16_t scanChannel(uint8_t symbolNum, uint8_t detPeak, uint8_t detMin);
+
838 
+
843  int16_t standby() override;
+
844 
+
852  int16_t standby(uint8_t mode, bool wakeup = true);
+
853 
+
859  int16_t sleep() override;
+
860 
+
868  int16_t sleep(bool retainConfig, uint32_t sleepTime);
+
869 
+
870  // interrupt methods
+
871 
+
876  void setIrqAction(void (*func)(void));
+
877 
+
881  void clearIrqAction();
+
882 
+
887  void setPacketReceivedAction(void (*func)(void)) override;
+
888 
+
892  void clearPacketReceivedAction() override;
+
893 
+
898  void setPacketSentAction(void (*func)(void)) override;
+
899 
+
903  void clearPacketSentAction() override;
+
904 
+
913  int16_t startTransmit(uint8_t* data, size_t len, uint8_t addr = 0) override;
+
914 
+
919  int16_t finishTransmit() override;
+
920 
+
927  int16_t startReceive() override;
+
928 
+
941  int16_t startReceive(uint32_t timeout, uint32_t irqFlags = RADIOLIB_LR11X0_IRQ_RX_DONE, uint32_t irqMask = 0, size_t len = 0);
+
942 
+
947  uint32_t getIrqStatus();
+
948 
+
957  int16_t readData(uint8_t* data, size_t len) override;
+
958 
+
964  int16_t startChannelScan() override;
+
965 
+
974  int16_t startChannelScan(uint8_t symbolNum, uint8_t detPeak, uint8_t detMin);
+
975 
+
980  int16_t getChannelScanResult() override;
+
981 
+
982  // configuration methods
+
983 
+
989  int16_t setOutputPower(int8_t power) override;
+
990 
+
998  int16_t setOutputPower(int8_t power, bool forceHighPower);
+
999 
+
1007  int16_t checkOutputPower(int8_t power, int8_t* clipped) override;
+
1008 
+
1017  int16_t checkOutputPower(int8_t power, int8_t* clipped, bool forceHighPower);
+
1018 
+
1024  int16_t setBandwidth(float bw);
+
1025 
+
1032  int16_t setSpreadingFactor(uint8_t sf, bool legacy = false);
+
1033 
+
1041  int16_t setCodingRate(uint8_t cr, bool longInterleave = false);
+
1042 
+
1048  int16_t setSyncWord(uint32_t syncWord);
+
1049 
+
1055  int16_t setBitRate(float br) override;
+
1056 
+
1062  int16_t setFrequencyDeviation(float freqDev) override;
+
1063 
+
1070  int16_t setRxBandwidth(float rxBw);
+
1071 
+
1078  int16_t setSyncWord(uint8_t* syncWord, size_t len) override;
+
1079 
+
1087  int16_t setSyncBits(uint8_t *syncWord, uint8_t bitsLen);
+
1088 
+
1094  int16_t setNodeAddress(uint8_t nodeAddr);
+
1095 
+
1102  int16_t setBroadcastAddress(uint8_t broadAddr);
+
1103 
+
1108  int16_t disableAddressFiltering();
+
1109 
+
1117  int16_t setDataShaping(uint8_t sh) override;
+
1118 
+
1124  int16_t setEncoding(uint8_t encoding) override;
+
1125 
+
1131  int16_t fixedPacketLengthMode(uint8_t len = RADIOLIB_LR11X0_MAX_PACKET_LENGTH);
+
1132 
+
1138  int16_t variablePacketLengthMode(uint8_t maxLen = RADIOLIB_LR11X0_MAX_PACKET_LENGTH);
+
1139 
+
1147  int16_t setWhitening(bool enabled, uint16_t initial = 0x01FF);
+
1148 
+
1154  int16_t setDataRate(DataRate_t dr) override;
+
1155 
+
1161  int16_t checkDataRate(DataRate_t dr) override;
+
1162 
+
1168  int16_t setPreambleLength(size_t preambleLength) override;
+
1169 
+
1178  int16_t setTCXO(float voltage, uint32_t delay = 5000);
+
1179 
+
1188  int16_t setCRC(uint8_t len, uint32_t initial = 0x00001D0FUL, uint32_t polynomial = 0x00001021UL, bool inverted = true);
+
1189 
+
1195  int16_t invertIQ(bool enable) override;
+
1196 
+
1201  float getRSSI() override;
+
1202 
+
1207  float getSNR() override;
+
1208 
+
1213  float getFrequencyError();
+
1214 
+
1220  size_t getPacketLength(bool update = true) override;
+
1221 
+
1227  size_t getPacketLength(bool update, uint8_t* offset);
+
1228 
+
1234  RadioLibTime_t getTimeOnAir(size_t len) override;
+
1235 
+
1241  RadioLibTime_t calculateRxTimeout(RadioLibTime_t timeoutUs) override;
+
1242 
+
1249  int16_t irqRxDoneRxTimeout(uint32_t &irqFlags, uint32_t &irqMask) override;
+
1250 
+
1255  bool isRxTimeout() override;
+
1256 
+
1261  uint8_t randomByte() override;
+
1262 
+
1268  int16_t implicitHeader(size_t len);
+
1269 
+
1274  int16_t explicitHeader();
+
1275 
+
1280  float getDataRate() const;
+
1281 
+
1286  int16_t setRegulatorLDO();
+
1287 
+
1292  int16_t setRegulatorDCDC();
+
1293 
+
1299  int16_t setRxBoostedGainMode(bool en);
+
1300 
+
1302  void setRfSwitchTable(const uint32_t (&pins)[Module::RFSWITCH_MAX_PINS], const Module::RfSwitchMode_t table[]);
+
1303 
+
1312  int16_t setLrFhssConfig(uint8_t bw, uint8_t cr, uint8_t hdrCount = 3, uint16_t hopSeed = 0x13A);
+
1313 
+
1328  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);
+
1329 
+
1334  void setWiFiScanAction(void (*func)(void));
+
1335 
+
1339  void clearWiFiScanAction();
+
1340 
+
1346  int16_t getWifiScanResultsCount(uint8_t* count);
+
1347 
+
1357  int16_t getWifiScanResult(LR11x0WifiResult_t* result, uint8_t index, bool brief = false);
+
1358 
+
1375  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);
+
1376 
+
1382  int16_t getVersionInfo(LR11x0VersionInfo_t* info);
+
1383 
+
1394  int16_t updateFirmware(const uint32_t* image, size_t size, bool nonvolatile = true);
+
1395 
+
1396 #if !RADIOLIB_GODMODE && !RADIOLIB_LOW_LEVEL
+
1397  protected:
+
1398 #endif
+
1399  Module* getMod() override;
+
1400 
+
1401  // LR11x0 SPI command implementations
+
1402  int16_t writeRegMem32(uint32_t addr, uint32_t* data, size_t len);
+
1403  int16_t readRegMem32(uint32_t addr, uint32_t* data, size_t len);
+
1404  int16_t writeBuffer8(uint8_t* data, size_t len);
+
1405  int16_t readBuffer8(uint8_t* data, size_t len, size_t offset);
+
1406  int16_t clearRxBuffer(void);
+
1407  int16_t writeRegMemMask32(uint32_t addr, uint32_t mask, uint32_t data);
+
1408 
+
1409  int16_t getStatus(uint8_t* stat1, uint8_t* stat2, uint32_t* irq);
+
1410  int16_t getVersion(uint8_t* hw, uint8_t* device, uint8_t* major, uint8_t* minor);
+
1411  int16_t getErrors(uint16_t* err);
+
1412  int16_t clearErrors(void);
+
1413  int16_t calibrate(uint8_t params);
+
1414  int16_t setRegMode(uint8_t mode);
+
1415  int16_t calibImage(float freq1, float freq2);
+
1416  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);
+
1417  int16_t setDioIrqParams(uint32_t irq1, uint32_t irq2);
+
1418  int16_t clearIrq(uint32_t irq);
+
1419  int16_t configLfClock(uint8_t setup);
+
1420  int16_t setTcxoMode(uint8_t tune, uint32_t delay);
+
1421  int16_t reboot(bool stay);
+
1422  int16_t getVbat(float* vbat);
+
1423  int16_t getTemp(float* temp);
+
1424  int16_t setFs(void);
+
1425  int16_t getRandomNumber(uint32_t* rnd);
+
1426  int16_t eraseInfoPage(void);
+
1427  int16_t writeInfoPage(uint16_t addr, const uint32_t* data, size_t len);
+
1428  int16_t readInfoPage(uint16_t addr, uint32_t* data, size_t len);
+
1429  int16_t getChipEui(uint8_t* eui);
+
1430  int16_t getSemtechJoinEui(uint8_t* eui);
+
1431  int16_t deriveRootKeysAndGetPin(uint8_t* pin);
+
1432  int16_t enableSpiCrc(bool en);
+
1433  int16_t driveDiosInSleepMode(bool en);
+
1434 
+
1435  int16_t resetStats(void);
+
1436  int16_t getStats(uint16_t* nbPktReceived, uint16_t* nbPktCrcError, uint16_t* data1, uint16_t* data2);
+
1437  int16_t getPacketType(uint8_t* type);
+
1438  int16_t getRxBufferStatus(uint8_t* len, uint8_t* startOffset);
+
1439  int16_t getPacketStatusLoRa(float* rssiPkt, float* snrPkt, float* signalRssiPkt);
+
1440  int16_t getPacketStatusGFSK(float* rssiSync, float* rssiAvg, uint8_t* rxLen, uint8_t* stat);
+
1441  int16_t getRssiInst(float* rssi);
+
1442  int16_t setGfskSyncWord(uint8_t* sync);
+
1443  int16_t setLoRaPublicNetwork(bool pub);
+
1444  int16_t setRx(uint32_t timeout);
+
1445  int16_t setTx(uint32_t timeout);
+
1446  int16_t setRfFrequency(uint32_t rfFreq);
+
1447  int16_t autoTxRx(uint32_t delay, uint8_t intMode, uint32_t timeout);
+
1448  int16_t setCadParams(uint8_t symNum, uint8_t detPeak, uint8_t detMin, uint8_t cadExitMode, uint32_t timeout);
+
1449  int16_t setPacketType(uint8_t type);
+
1450  int16_t setModulationParamsLoRa(uint8_t sf, uint8_t bw, uint8_t cr, uint8_t ldro);
+
1451  int16_t setModulationParamsGFSK(uint32_t br, uint8_t sh, uint8_t rxBw, uint32_t freqDev);
+
1452  int16_t setModulationParamsLrFhss(uint32_t br, uint8_t sh);
+
1453  int16_t setModulationParamsSigfox(uint32_t br, uint8_t sh);
+
1454  int16_t setPacketParamsLoRa(uint16_t preambleLen, uint8_t hdrType, uint8_t payloadLen, uint8_t crcType, uint8_t invertIQ);
+
1455  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);
+
1456  int16_t setPacketParamsSigfox(uint8_t payloadLen, uint16_t rampUpDelay, uint16_t rampDownDelay, uint16_t bitNum);
+
1457  int16_t setTxParams(int8_t pwr, uint8_t ramp);
+
1458  int16_t setPacketAdrs(uint8_t node, uint8_t broadcast);
+
1459  int16_t setRxTxFallbackMode(uint8_t mode);
+
1460  int16_t setRxDutyCycle(uint32_t rxPeriod, uint32_t sleepPeriod, uint8_t mode);
+
1461  int16_t setPaConfig(uint8_t paSel, uint8_t regPaSupply, uint8_t paDutyCycle, uint8_t paHpSel);
+
1462  int16_t stopTimeoutOnPreamble(bool stop);
+
1463  int16_t setCad(void);
+
1464  int16_t setTxCw(void);
+
1465  int16_t setTxInfinitePreamble(void);
+
1466  int16_t setLoRaSynchTimeout(uint8_t symbolNum);
+
1467  int16_t setRangingAddr(uint32_t addr, uint8_t checkLen);
+
1468  int16_t setRangingReqAddr(uint32_t addr);
+
1469  int16_t getRangingResult(uint8_t type, float* res);
+
1470  int16_t setRangingTxRxDelay(uint32_t delay);
+
1471  int16_t setGfskCrcParams(uint32_t init, uint32_t poly);
+
1472  int16_t setGfskWhitParams(uint16_t seed);
+
1473  int16_t setRangingParameter(uint8_t symbolNum);
+
1474  int16_t setRssiCalibration(const int8_t* tune, int16_t gainOffset);
+
1475  int16_t setLoRaSyncWord(uint8_t sync);
+
1476  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);
+
1477  int16_t lrFhssSetSyncWord(uint32_t sync);
+
1478  int16_t configBleBeacon(uint8_t chan, uint8_t* payload, size_t len);
+
1479  int16_t getLoRaRxHeaderInfos(uint8_t* info);
+
1480  int16_t bleBeaconSend(uint8_t chan, uint8_t* payload, size_t len);
+
1481 
+
1482  int16_t wifiScan(uint8_t type, uint16_t mask, uint8_t acqMode, uint8_t nbMaxRes, uint8_t nbScanPerChan, uint16_t timeout, uint8_t abortOnTimeout);
+
1483  int16_t wifiScanTimeLimit(uint8_t type, uint16_t mask, uint8_t acqMode, uint8_t nbMaxRes, uint16_t timePerChan, uint16_t timeout);
+
1484  int16_t wifiCountryCode(uint16_t mask, uint8_t nbMaxRes, uint8_t nbScanPerChan, uint16_t timeout, uint8_t abortOnTimeout);
+
1485  int16_t wifiCountryCodeTimeLimit(uint16_t mask, uint8_t nbMaxRes, uint16_t timePerChan, uint16_t timeout);
+
1486  int16_t wifiGetNbResults(uint8_t* nbResults);
+
1487  int16_t wifiReadResults(uint8_t index, uint8_t nbResults, uint8_t format, uint8_t* results);
+
1488  int16_t wifiResetCumulTimings(void);
+
1489  int16_t wifiReadCumulTimings(uint32_t* detection, uint32_t* capture, uint32_t* demodulation);
+
1490  int16_t wifiGetNbCountryCodeResults(uint8_t* nbResults);
+
1491  int16_t wifiReadCountryCodeResults(uint8_t index, uint8_t nbResults, uint8_t* results);
+
1492  int16_t wifiCfgTimestampAPphone(uint32_t timestamp);
+
1493  int16_t wifiReadVersion(uint8_t* major, uint8_t* minor);
+
1494 
+
1495  int16_t gnssSetConstellationToUse(uint8_t mask);
+
1496  int16_t gnssReadConstellationToUse(uint8_t* mask);
+
1497  int16_t gnssSetAlmanacUpdate(uint8_t mask);
+
1498  int16_t gnssReadAlmanacUpdate(uint8_t* mask);
+
1499  int16_t gnssReadVersion(uint8_t* fw, uint8_t* almanac);
+
1500  int16_t gnssReadSupportedConstellations(uint8_t* mask);
+
1501  int16_t gnssSetMode(uint8_t mode);
+
1502  int16_t gnssAutonomous(uint32_t gpsTime, uint8_t resMask, uint8_t nbSvMask);
+
1503  int16_t gnssAssisted(uint32_t gpsTime, uint8_t effort, uint8_t resMask, uint8_t nbSvMask);
+
1504  int16_t gnssSetAssistancePosition(float lat, float lon);
+
1505  int16_t gnssReadAssistancePosition(float* lat, float* lon);
+
1506  int16_t gnssPushSolverMsg(uint8_t* payload, size_t len);
+
1507  int16_t gnssPushDmMsg(uint8_t* payload, size_t len);
+
1508  int16_t gnssGetContextStatus(uint8_t* fwVersion, uint32_t* almanacCrc, uint8_t* errCode, uint8_t* almUpdMask, uint8_t* freqSpace);
+
1509  int16_t gnssGetNbSvDetected(uint8_t* nbSv);
+
1510  int16_t gnssGetSvDetected(uint8_t* svId, uint8_t* snr, uint16_t* doppler, size_t nbSv);
+
1511  int16_t gnssGetConsumption(uint32_t* cpu, uint32_t* radio);
+
1512  int16_t gnssGetResultSize(uint16_t* size);
+
1513  int16_t gnssReadResults(uint8_t* result, uint16_t size);
+
1514  int16_t gnssAlmanacFullUpdateHeader(uint16_t date, uint32_t globalCrc);
+
1515  int16_t gnssAlmanacFullUpdateSV(uint8_t svn, uint8_t* svnAlmanac);
+
1516  int16_t gnssGetSvVisible(uint32_t time, float lat, float lon, uint8_t constellation, uint8_t* nbSv);
+
1517  int16_t gnssScan(uint8_t effort, uint8_t resMask, uint8_t nbSvMax);
+
1518  int16_t gnssReadLastScanModeLaunched(uint8_t* lastScanMode);
+
1519  int16_t gnssFetchTime(uint8_t effort, uint8_t opt);
+
1520  int16_t gnssReadTime(uint8_t* err, uint32_t* time, uint32_t* nbUs, uint32_t* timeAccuracy);
+
1521  int16_t gnssResetTime(void);
+
1522  int16_t gnssResetPosition(void);
+
1523  int16_t gnssReadDemodStatus(int8_t* status, uint8_t* info);
+
1524  int16_t gnssReadCumulTiming(uint32_t* timing, uint8_t* constDemod);
+
1525  int16_t gnssSetTime(uint32_t time, uint16_t accuracy);
+
1526  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);
+
1527  int16_t gnssReadDelayResetAP(uint32_t* delay);
+
1528  int16_t gnssAlmanacUpdateFromSat(uint8_t effort, uint8_t bitMask);
+
1529  int16_t gnssReadAlmanacStatus(uint8_t* status);
+
1530  int16_t gnssConfigAlmanacUpdatePeriod(uint8_t bitMask, uint8_t svType, uint16_t period);
+
1531  int16_t gnssReadAlmanacUpdatePeriod(uint8_t bitMask, uint8_t svType, uint16_t* period);
+
1532  int16_t gnssConfigDelayResetAP(uint32_t delay);
+
1533  int16_t gnssGetSvWarmStart(uint8_t bitMask, uint8_t* sv, uint8_t nbVisSat);
+
1534  int16_t gnssReadWNRollover(uint8_t* status, uint8_t* rollover);
+
1535  int16_t gnssReadWarmStartStatus(uint8_t bitMask, uint8_t* nbVisSat, uint32_t* timeElapsed);
+
1536  int16_t gnssWriteBitMaskSatActivated(uint8_t bitMask, uint32_t* bitMaskActivated0, uint32_t* bitMaskActivated1);
+
1537 
+
1538  int16_t cryptoSetKey(uint8_t keyId, uint8_t* key);
+
1539  int16_t cryptoDeriveKey(uint8_t srcKeyId, uint8_t dstKeyId, uint8_t* key);
+
1540  int16_t cryptoProcessJoinAccept(uint8_t decKeyId, uint8_t verKeyId, uint8_t lwVer, uint8_t* header, uint8_t* dataIn, size_t len, uint8_t* dataOut);
+
1541  int16_t cryptoComputeAesCmac(uint8_t keyId, uint8_t* data, size_t len, uint32_t* mic);
+
1542  int16_t cryptoVerifyAesCmac(uint8_t keyId, uint32_t micExp, uint8_t* data, size_t len, bool* result);
+
1543  int16_t cryptoAesEncrypt01(uint8_t keyId, uint8_t* dataIn, size_t len, uint8_t* dataOut);
+
1544  int16_t cryptoAesEncrypt(uint8_t keyId, uint8_t* dataIn, size_t len, uint8_t* dataOut);
+
1545  int16_t cryptoAesDecrypt(uint8_t keyId, uint8_t* dataIn, size_t len, uint8_t* dataOut);
+
1546  int16_t cryptoStoreToFlash(void);
+
1547  int16_t cryptoRestoreFromFlash(void);
+
1548  int16_t cryptoSetParam(uint8_t id, uint32_t value);
+
1549  int16_t cryptoGetParam(uint8_t id, uint32_t* value);
+
1550  int16_t cryptoCheckEncryptedFirmwareImage(uint32_t offset, uint32_t* data, size_t len, bool nonvolatile);
+
1551  int16_t cryptoCheckEncryptedFirmwareImageResult(bool* result);
+
1552 
+
1553  int16_t bootEraseFlash(void);
+
1554  int16_t bootWriteFlashEncrypted(uint32_t offset, uint32_t* data, size_t len, bool nonvolatile);
+
1555  int16_t bootReboot(bool stay);
+
1556  int16_t bootGetPin(uint8_t* pin);
+
1557  int16_t bootGetChipEui(uint8_t* eui);
+
1558  int16_t bootGetJoinEui(uint8_t* eui);
+
1559 
+
1560  int16_t SPIcommand(uint16_t cmd, bool write, uint8_t* data, size_t len, uint8_t* out = NULL, size_t outLen = 0);
+
1561 
+
1562 #if !RADIOLIB_GODMODE
+
1563  protected:
+
1564 #endif
+
1565  uint8_t chipType = 0;
+
1566 
+
1567 #if !RADIOLIB_GODMODE
+
1568  private:
+
1569 #endif
+
1570  Module* mod;
+
1571 
+
1572  // cached LoRa parameters
+
1573  uint8_t bandwidth = 0, spreadingFactor = 0, codingRate = 0, ldrOptimize = 0, crcTypeLoRa = 0, headerType = 0;
+
1574  uint16_t preambleLengthLoRa = 0;
+
1575  float bandwidthKhz = 0;
+
1576  bool ldroAuto = true;
+
1577  size_t implicitLen = 0;
+
1578  bool invertIQEnabled = false;
+
1579 
+
1580  // cached GFSK parameters
+
1581  uint32_t bitRate = 0, frequencyDev = 0;
+
1582  uint8_t preambleDetLength = 0, rxBandwidth = 0, pulseShape = 0, crcTypeGFSK = 0, syncWordLength = 0, addrComp = 0, whitening = 0, packetType = 0, node = 0;
+
1583  uint16_t preambleLengthGFSK = 0;
1584 
-
1585  float dataRateMeasured = 0;
-
1586 
-
1587  uint8_t wifiScanMode = 0;
+
1585  // cached LR-FHSS parameters
+
1586  uint8_t lrFhssCr = 0, lrFhssBw = 0, lrFhssHdrCount = 0;
+
1587  uint16_t lrFhssHopSeq = 0;
1588 
-
1589  int16_t modSetup(float tcxoVoltage, uint8_t modem);
-
1590  static int16_t SPIparseStatus(uint8_t in);
-
1591  static int16_t SPIcheckStatus(Module* mod);
-
1592  bool findChip(uint8_t ver);
-
1593  int16_t config(uint8_t modem);
-
1594  int16_t setPacketMode(uint8_t mode, uint8_t len);
-
1595  int16_t startCad(uint8_t symbolNum, uint8_t detPeak, uint8_t detMin);
-
1596  int16_t setHeaderType(uint8_t hdrType, size_t len = 0xFF);
-
1597 
-
1598  // common methods to avoid some copy-paste
-
1599  int16_t bleBeaconCommon(uint16_t cmd, uint8_t chan, uint8_t* payload, size_t len);
-
1600  int16_t writeCommon(uint16_t cmd, uint32_t addrOffset, const uint32_t* data, size_t len, bool nonvolatile);
-
1601  int16_t cryptoCommon(uint16_t cmd, uint8_t keyId, uint8_t* dataIn, size_t len, uint8_t* dataOut);
-
1602 };
-
1603 
-
1604 #endif
-
1605 
-
1606 #endif
-
LR11x0
Base class for LR11x0 series. All derived classes for LR11x0 (e.g. LR1110 or LR1120) inherit from thi...
Definition: LR11x0.h:704
+
1589  float dataRateMeasured = 0;
+
1590 
+
1591  uint8_t wifiScanMode = 0;
+
1592 
+
1593  int16_t modSetup(float tcxoVoltage, uint8_t modem);
+
1594  static int16_t SPIparseStatus(uint8_t in);
+
1595  static int16_t SPIcheckStatus(Module* mod);
+
1596  bool findChip(uint8_t ver);
+
1597  int16_t config(uint8_t modem);
+
1598  int16_t setPacketMode(uint8_t mode, uint8_t len);
+
1599  int16_t startCad(uint8_t symbolNum, uint8_t detPeak, uint8_t detMin);
+
1600  int16_t setHeaderType(uint8_t hdrType, size_t len = 0xFF);
+
1601 
+
1602  // common methods to avoid some copy-paste
+
1603  int16_t bleBeaconCommon(uint16_t cmd, uint8_t chan, uint8_t* payload, size_t len);
+
1604  int16_t writeCommon(uint16_t cmd, uint32_t addrOffset, const uint32_t* data, size_t len, bool nonvolatile);
+
1605  int16_t cryptoCommon(uint16_t cmd, uint8_t keyId, uint8_t* dataIn, size_t len, uint8_t* dataOut);
+
1606 };
+
1607 
+
1608 #endif
+
1609 
+
1610 #endif
+
LR11x0
Base class for LR11x0 series. All derived classes for LR11x0 (e.g. LR1110 or LR1120) inherit from thi...
Definition: LR11x0.h:708
LR11x0::getSNR
float getSNR() override
Gets SNR (Signal to Noise Ratio) of the last received packet. Only available for LoRa modem.
Definition: LR11x0.cpp:1233
LR11x0::getIrqStatus
uint32_t getIrqStatus()
Reads the current IRQ status.
Definition: LR11x0.cpp:497
LR11x0::setDataRate
int16_t setDataRate(DataRate_t dr) override
Set data.
Definition: LR11x0.cpp:1035
@@ -1147,19 +1151,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:795
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:1367
LR11x0::reset
int16_t reset()
Reset method. Will reset the chip to the default state using RST pin.
Definition: LR11x0.cpp:119
-
LR11x0::OpMode_t
OpMode_t
Custom operation modes for LR11x0. Needed because LR11x0 has several modems (sub-GHz,...
Definition: LR11x0.h:722
-
LR11x0::MODE_TX_HP
@ MODE_TX_HP
Definition: LR11x0.h:732
-
LR11x0::MODE_END_OF_TABLE
@ MODE_END_OF_TABLE
Definition: LR11x0.h:724
-
LR11x0::MODE_WIFI
@ MODE_WIFI
Definition: LR11x0.h:738
-
LR11x0::MODE_GNSS
@ MODE_GNSS
Definition: LR11x0.h:736
-
LR11x0::MODE_TX
@ MODE_TX
Definition: LR11x0.h:730
-
LR11x0::MODE_RX
@ MODE_RX
Definition: LR11x0.h:728
-
LR11x0::MODE_STBY
@ MODE_STBY
Definition: LR11x0.h:726
-
LR11x0::MODE_TX_HF
@ MODE_TX_HF
Definition: LR11x0.h:734
+
LR11x0::OpMode_t
OpMode_t
Custom operation modes for LR11x0. Needed because LR11x0 has several modems (sub-GHz,...
Definition: LR11x0.h:726
+
LR11x0::MODE_TX_HP
@ MODE_TX_HP
Definition: LR11x0.h:736
+
LR11x0::MODE_END_OF_TABLE
@ MODE_END_OF_TABLE
Definition: LR11x0.h:728
+
LR11x0::MODE_WIFI
@ MODE_WIFI
Definition: LR11x0.h:742
+
LR11x0::MODE_GNSS
@ MODE_GNSS
Definition: LR11x0.h:740
+
LR11x0::MODE_TX
@ MODE_TX
Definition: LR11x0.h:734
+
LR11x0::MODE_RX
@ MODE_RX
Definition: LR11x0.h:732
+
LR11x0::MODE_STBY
@ MODE_STBY
Definition: LR11x0.h:730
+
LR11x0::MODE_TX_HF
@ MODE_TX_HF
Definition: LR11x0.h:738
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:1460
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:1396
-
LR11x0::XTAL
bool XTAL
Whether the module has an XTAL (true) or TCXO (false). Defaults to false.
Definition: LR11x0.h:744
+
LR11x0::XTAL
bool XTAL
Whether the module has an XTAL (true) or TCXO (false). Defaults to false.
Definition: LR11x0.h:748
LR11x0::beginLRFHSS
int16_t beginLRFHSS(uint8_t bw, uint8_t cr, int8_t power, float tcxoVoltage)
Initialization method for LR-FHSS modem.
Definition: LR11x0.cpp:97
LR11x0::begin
int16_t begin(float bw, uint8_t sf, uint8_t cr, uint8_t syncWord, int8_t power, uint16_t preambleLength, float tcxoVoltage)
Initialization method for LoRa modem.
Definition: LR11x0.cpp:16
LR11x0::getWifiScanResult
int16_t getWifiScanResult(LR11x0WifiResult_t *result, uint8_t index, bool brief=false)
Retrieve passive WiFi scan result.
Definition: LR11x0.cpp:1519
@@ -1233,43 +1237,43 @@ $(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:611
-
LR11x0VersionInfo_t
Structure to report information about versions of the LR11x0 hardware and firmware.
Definition: LR11x0.h:673
-
LR11x0VersionInfo_t::fwMajor
uint8_t fwMajor
Major revision of the base firmware.
Definition: LR11x0.h:681
-
LR11x0VersionInfo_t::fwMinorWiFi
uint8_t fwMinorWiFi
Minor revision of the WiFi firmware.
Definition: LR11x0.h:690
-
LR11x0VersionInfo_t::device
uint8_t device
Which device this is - one of RADIOLIB_LR11X0_DEVICE_* macros.
Definition: LR11x0.h:678
-
LR11x0VersionInfo_t::hardware
uint8_t hardware
Hardware revision.
Definition: LR11x0.h:675
-
LR11x0VersionInfo_t::fwMinor
uint8_t fwMinor
Minor revision of the base firmware.
Definition: LR11x0.h:684
-
LR11x0VersionInfo_t::fwGNSS
uint8_t fwGNSS
Revision of the GNSS firmware.
Definition: LR11x0.h:693
-
LR11x0VersionInfo_t::almanacGNSS
uint8_t almanacGNSS
Almanac revision of the GNSS firmware.
Definition: LR11x0.h:696
-
LR11x0VersionInfo_t::fwMajorWiFi
uint8_t fwMajorWiFi
Major revision of the WiFi firmware.
Definition: LR11x0.h:687
-
LR11x0WifiResult_t
Structure to save result of passive WiFi scan. This result only saves the basic information.
Definition: LR11x0.h:576
-
LR11x0WifiResult_t::ap
bool ap
Whether this signal was sent by an access point (true) or end device (false)
Definition: LR11x0.h:590
-
LR11x0WifiResult_t::channelFreq
uint16_t channelFreq
Channel frequency in MHz.
Definition: LR11x0.h:584
-
LR11x0WifiResult_t::type
char type
WiFi (802.11) signal type, 'b', 'n' or 'g'.
Definition: LR11x0.h:578
-
LR11x0WifiResult_t::mac
uint8_t mac[RADIOLIB_LR11X0_WIFI_RESULT_MAC_LEN]
MAC address.
Definition: LR11x0.h:596
-
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:581
-
LR11x0WifiResult_t::rssi
float rssi
RSSI in dBm.
Definition: LR11x0.h:593
-
LR11x0WifiResult_t::origin
uint8_t origin
MAC address origin: from gateway (1), phone (2) or undetermined (3)
Definition: LR11x0.h:587
-
LR11x0WifiResultExtended_t
Structure to save result of passive WiFi scan. This result saves additional information alongside tha...
Definition: LR11x0.h:634
-
LR11x0WifiResultExtended_t::rate
uint8_t rate
Data rate. See LR11x0 user manual for details.
Definition: LR11x0.h:636
-
LR11x0WifiResultExtended_t::length
uint16_t length
Refer to IEEE Std 802.11, 2016, Part 11: Wireless LAN MAC and PHY Spec.
Definition: LR11x0.h:642
-
LR11x0WifiResultExtended_t::fcsCheckOk
bool fcsCheckOk
True if frame check sequences is valid, false otherwise.
Definition: LR11x0.h:666
-
LR11x0WifiResultExtended_t::service
uint16_t service
Refer to IEEE Std 802.11, 2016, Part 11: Wireless LAN MAC and PHY Spec.
Definition: LR11x0.h:639
-
LR11x0WifiResultExtended_t::mac2
uint8_t mac2[RADIOLIB_LR11X0_WIFI_RESULT_MAC_LEN]
MAC address 2.
Definition: LR11x0.h:648
-
LR11x0WifiResultExtended_t::ssid
uint8_t ssid[RADIOLIB_LR11X0_WIFI_RESULT_SSID_LEN]
SSID.
Definition: LR11x0.h:654
-
LR11x0WifiResultExtended_t::currentChannel
uint8_t currentChannel
WiFi channel number.
Definition: LR11x0.h:657
-
LR11x0WifiResultExtended_t::seqCtrl
uint16_t seqCtrl
Refer to IEEE Std 802.11, 2016, Part 11: Wireless LAN MAC and PHY Spec.
Definition: LR11x0.h:651
-
LR11x0WifiResultExtended_t::mac0
uint8_t mac0[RADIOLIB_LR11X0_WIFI_RESULT_MAC_LEN]
MAC address 0.
Definition: LR11x0.h:645
-
LR11x0WifiResultExtended_t::countryCode
char countryCode[3]
Two-letter country code (null-terminated string).
Definition: LR11x0.h:660
-
LR11x0WifiResultExtended_t::ioReg
uint8_t ioReg
Refer to IEEE Std 802.11, 2016, Part 11: Wireless LAN MAC and PHY Spec.
Definition: LR11x0.h:663
-
LR11x0WifiResultFull_t
Structure to save result of passive WiFi scan. This result saves additional information alongside tha...
Definition: LR11x0.h:604
-
LR11x0WifiResultFull_t::periodBeacon
uint32_t periodBeacon
Beacon period in microseconds.
Definition: LR11x0.h:624
-
LR11x0WifiResultFull_t::phiOffset
uint16_t phiOffset
See LR11x0 user manual for details.
Definition: LR11x0.h:618
-
LR11x0WifiResultFull_t::fromDistributionSystem
bool fromDistributionSystem
Frame sent from distribution system to client station.
Definition: LR11x0.h:615
-
LR11x0WifiResultFull_t::timestamp
uint64_t timestamp
Number of microseconds the AP has been active.
Definition: LR11x0.h:621
-
LR11x0WifiResultFull_t::frameType
uint8_t frameType
Frame type. See LR11x0 user manual for details.
Definition: LR11x0.h:606
-
LR11x0WifiResultFull_t::frameSubType
uint8_t frameSubType
Frame sub type. See LR11x0 user manual for details.
Definition: LR11x0.h:609
-
LR11x0WifiResultFull_t::toDistributionSystem
bool toDistributionSystem
Frame sent from client station to distribution system.
Definition: LR11x0.h:612
+
LR11x0VersionInfo_t
Structure to report information about versions of the LR11x0 hardware and firmware.
Definition: LR11x0.h:677
+
LR11x0VersionInfo_t::fwMajor
uint8_t fwMajor
Major revision of the base firmware.
Definition: LR11x0.h:685
+
LR11x0VersionInfo_t::fwMinorWiFi
uint8_t fwMinorWiFi
Minor revision of the WiFi firmware.
Definition: LR11x0.h:694
+
LR11x0VersionInfo_t::device
uint8_t device
Which device this is - one of RADIOLIB_LR11X0_DEVICE_* macros.
Definition: LR11x0.h:682
+
LR11x0VersionInfo_t::hardware
uint8_t hardware
Hardware revision.
Definition: LR11x0.h:679
+
LR11x0VersionInfo_t::fwMinor
uint8_t fwMinor
Minor revision of the base firmware.
Definition: LR11x0.h:688
+
LR11x0VersionInfo_t::fwGNSS
uint8_t fwGNSS
Revision of the GNSS firmware.
Definition: LR11x0.h:697
+
LR11x0VersionInfo_t::almanacGNSS
uint8_t almanacGNSS
Almanac revision of the GNSS firmware.
Definition: LR11x0.h:700
+
LR11x0VersionInfo_t::fwMajorWiFi
uint8_t fwMajorWiFi
Major revision of the WiFi firmware.
Definition: LR11x0.h:691
+
LR11x0WifiResult_t
Structure to save result of passive WiFi scan. This result only saves the basic information.
Definition: LR11x0.h:580
+
LR11x0WifiResult_t::ap
bool ap
Whether this signal was sent by an access point (true) or end device (false)
Definition: LR11x0.h:594
+
LR11x0WifiResult_t::channelFreq
uint16_t channelFreq
Channel frequency in MHz.
Definition: LR11x0.h:588
+
LR11x0WifiResult_t::type
char type
WiFi (802.11) signal type, 'b', 'n' or 'g'.
Definition: LR11x0.h:582
+
LR11x0WifiResult_t::mac
uint8_t mac[RADIOLIB_LR11X0_WIFI_RESULT_MAC_LEN]
MAC address.
Definition: LR11x0.h:600
+
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:585
+
LR11x0WifiResult_t::rssi
float rssi
RSSI in dBm.
Definition: LR11x0.h:597
+
LR11x0WifiResult_t::origin
uint8_t origin
MAC address origin: from gateway (1), phone (2) or undetermined (3)
Definition: LR11x0.h:591
+
LR11x0WifiResultExtended_t
Structure to save result of passive WiFi scan. This result saves additional information alongside tha...
Definition: LR11x0.h:638
+
LR11x0WifiResultExtended_t::rate
uint8_t rate
Data rate. See LR11x0 user manual for details.
Definition: LR11x0.h:640
+
LR11x0WifiResultExtended_t::length
uint16_t length
Refer to IEEE Std 802.11, 2016, Part 11: Wireless LAN MAC and PHY Spec.
Definition: LR11x0.h:646
+
LR11x0WifiResultExtended_t::fcsCheckOk
bool fcsCheckOk
True if frame check sequences is valid, false otherwise.
Definition: LR11x0.h:670
+
LR11x0WifiResultExtended_t::service
uint16_t service
Refer to IEEE Std 802.11, 2016, Part 11: Wireless LAN MAC and PHY Spec.
Definition: LR11x0.h:643
+
LR11x0WifiResultExtended_t::mac2
uint8_t mac2[RADIOLIB_LR11X0_WIFI_RESULT_MAC_LEN]
MAC address 2.
Definition: LR11x0.h:652
+
LR11x0WifiResultExtended_t::ssid
uint8_t ssid[RADIOLIB_LR11X0_WIFI_RESULT_SSID_LEN]
SSID.
Definition: LR11x0.h:658
+
LR11x0WifiResultExtended_t::currentChannel
uint8_t currentChannel
WiFi channel number.
Definition: LR11x0.h:661
+
LR11x0WifiResultExtended_t::seqCtrl
uint16_t seqCtrl
Refer to IEEE Std 802.11, 2016, Part 11: Wireless LAN MAC and PHY Spec.
Definition: LR11x0.h:655
+
LR11x0WifiResultExtended_t::mac0
uint8_t mac0[RADIOLIB_LR11X0_WIFI_RESULT_MAC_LEN]
MAC address 0.
Definition: LR11x0.h:649
+
LR11x0WifiResultExtended_t::countryCode
char countryCode[3]
Two-letter country code (null-terminated string).
Definition: LR11x0.h:664
+
LR11x0WifiResultExtended_t::ioReg
uint8_t ioReg
Refer to IEEE Std 802.11, 2016, Part 11: Wireless LAN MAC and PHY Spec.
Definition: LR11x0.h:667
+
LR11x0WifiResultFull_t
Structure to save result of passive WiFi scan. This result saves additional information alongside tha...
Definition: LR11x0.h:608
+
LR11x0WifiResultFull_t::periodBeacon
uint32_t periodBeacon
Beacon period in microseconds.
Definition: LR11x0.h:628
+
LR11x0WifiResultFull_t::phiOffset
uint16_t phiOffset
See LR11x0 user manual for details.
Definition: LR11x0.h:622
+
LR11x0WifiResultFull_t::fromDistributionSystem
bool fromDistributionSystem
Frame sent from distribution system to client station.
Definition: LR11x0.h:619
+
LR11x0WifiResultFull_t::timestamp
uint64_t timestamp
Number of microseconds the AP has been active.
Definition: LR11x0.h:625
+
LR11x0WifiResultFull_t::frameType
uint8_t frameType
Frame type. See LR11x0 user manual for details.
Definition: LR11x0.h:610
+
LR11x0WifiResultFull_t::frameSubType
uint8_t frameSubType
Frame sub type. See LR11x0 user manual for details.
Definition: LR11x0.h:613
+
LR11x0WifiResultFull_t::toDistributionSystem
bool toDistributionSystem
Frame sent from client station to distribution system.
Definition: LR11x0.h:616
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