diff --git a/_lo_ra_w_a_n_8h_source.html b/_lo_ra_w_a_n_8h_source.html
index c3dbf516..71f4184e 100644
--- a/_lo_ra_w_a_n_8h_source.html
+++ b/_lo_ra_w_a_n_8h_source.html
@@ -360,254 +360,256 @@ $(document).ready(function(){initNavTree('_lo_ra_w_a_n_8h_source.html',''); init
-
-
+
+
-
+
-
+
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
-
-
+
+
-
-
- 362 #if !defined(RADIOLIB_EEPROM_UNSUPPORTED)
-
-
-
-
-
- 388 int16_t
beginOTAA(uint64_t joinEUI, uint64_t devEUI, uint8_t* nwkKey, uint8_t* appKey, uint8_t joinDr = RADIOLIB_LORAWAN_DATA_RATE_UNUSED,
bool force =
false);
-
- 401 int16_t
beginABP(uint32_t addr, uint8_t* nwkSKey, uint8_t* appSKey, uint8_t* fNwkSIntKey = NULL, uint8_t* sNwkSIntKey = NULL,
bool force =
false);
-
-
+
+
+
+
+
+ 365 #if !defined(RADIOLIB_EEPROM_UNSUPPORTED)
+
+
+
+
+
+ 391 int16_t
beginOTAA(uint64_t joinEUI, uint64_t devEUI, uint8_t* nwkKey, uint8_t* appKey, uint8_t joinDr = RADIOLIB_LORAWAN_DATA_RATE_UNUSED,
bool force =
false);
+
+ 404 int16_t
beginABP(uint32_t addr, uint8_t* nwkSKey, uint8_t* appSKey, uint8_t* fNwkSIntKey = NULL, uint8_t* sNwkSIntKey = NULL,
bool force =
false);
-
-
- 413 #if defined(RADIOLIB_BUILD_ARDUINO)
- 423 int16_t
uplink(String& str, uint8_t port,
bool isConfirmed =
false,
LoRaWANEvent_t* event = NULL);
-
-
- 435 int16_t
uplink(
const char* str, uint8_t port,
bool isConfirmed =
false,
LoRaWANEvent_t* event = NULL);
-
- 447 int16_t
uplink(uint8_t* data,
size_t len, uint8_t port,
bool isConfirmed =
false,
LoRaWANEvent_t* event = NULL);
-
- 449 #if defined(RADIOLIB_BUILD_ARDUINO)
-
-
-
-
-
- 470 #if defined(RADIOLIB_BUILD_ARDUINO)
-
-
-
-
-
- 515 int16_t
sendReceive(uint8_t* dataUp,
size_t lenUp, uint8_t port, uint8_t* dataDown,
size_t* lenDown,
bool isConfirmed =
false,
LoRaWANEvent_t* eventUp = NULL,
LoRaWANEvent_t* eventDown = NULL);
-
-
-
-
+
+
+
+
+ 416 #if defined(RADIOLIB_BUILD_ARDUINO)
+ 426 int16_t
uplink(String& str, uint8_t port,
bool isConfirmed =
false,
LoRaWANEvent_t* event = NULL);
+
+
+ 438 int16_t
uplink(
const char* str, uint8_t port,
bool isConfirmed =
false,
LoRaWANEvent_t* event = NULL);
+
+ 450 int16_t
uplink(uint8_t* data,
size_t len, uint8_t port,
bool isConfirmed =
false,
LoRaWANEvent_t* event = NULL);
+
+ 452 #if defined(RADIOLIB_BUILD_ARDUINO)
+
+
+
+
+
+ 473 #if defined(RADIOLIB_BUILD_ARDUINO)
+
+
+
+
+
+ 518 int16_t
sendReceive(uint8_t* dataUp,
size_t lenUp, uint8_t port, uint8_t* dataDown,
size_t* lenDown,
bool isConfirmed =
false,
LoRaWANEvent_t* eventUp = NULL,
LoRaWANEvent_t* eventDown = NULL);
+
+
-
-
- 538 void setADR(
bool enable =
true);
-
-
-
-
-
- 562 int16_t
selectSubband(uint8_t startChannel, uint8_t endChannel);
-
- 570 void setCSMA(uint8_t backoffMax, uint8_t difsSlots,
bool enableCSMA =
false);
-
- 572 #if !defined(RADIOLIB_GODMODE)
-
-
-
-
-
-
-
-
- 581 .commands = { { .cid = 0, .payload = { 0 }, .len = 0, .repeat = 0, } },
-
-
-
-
- 586 .commands = { { .cid = 0, .payload = { 0 }, .len = 0, .repeat = 0, } },
-
-
-
-
- 591 uint32_t devAddr = 0;
- 592 uint8_t appSKey[RADIOLIB_AES128_KEY_SIZE] = { 0 };
- 593 uint8_t fNwkSIntKey[RADIOLIB_AES128_KEY_SIZE] = { 0 };
- 594 uint8_t sNwkSIntKey[RADIOLIB_AES128_KEY_SIZE] = { 0 };
- 595 uint8_t nwkSEncKey[RADIOLIB_AES128_KEY_SIZE] = { 0 };
- 596 uint8_t jSIntKey[RADIOLIB_AES128_KEY_SIZE] = { 0 };
-
-
- 599 uint16_t devNonce = 0;
- 600 uint32_t joinNonce = 0;
-
-
- 603 uint32_t homeNetId = 0;
- 604 uint8_t adrLimitExp = RADIOLIB_LORAWAN_ADR_ACK_LIMIT_EXP;
- 605 uint8_t adrDelayExp = RADIOLIB_LORAWAN_ADR_ACK_DELAY_EXP;
-
- 607 uint8_t txPwrCur = 0;
-
- 609 uint32_t aFcntDown = 0;
- 610 uint32_t nFcntDown = 0;
- 611 uint32_t confFcntUp = RADIOLIB_LORAWAN_FCNT_NONE;
- 612 uint32_t confFcntDown = RADIOLIB_LORAWAN_FCNT_NONE;
- 613 uint32_t adrFcnt = 0;
-
-
-
+
+
+
+
+ 541 void setADR(
bool enable =
true);
+
+
+
+
+
+ 565 int16_t
selectSubband(uint8_t startChannel, uint8_t endChannel);
+
+ 573 void setCSMA(uint8_t backoffMax, uint8_t difsSlots,
bool enableCSMA =
false);
+
+ 575 #if !defined(RADIOLIB_GODMODE)
+
+
+
+
+
+
+
+
+ 584 .commands = { { .cid = 0, .payload = { 0 }, .len = 0, .repeat = 0, } },
+
+
+
+
+ 589 .commands = { { .cid = 0, .payload = { 0 }, .len = 0, .repeat = 0, } },
+
+
+
+
+ 594 uint32_t devAddr = 0;
+ 595 uint8_t appSKey[RADIOLIB_AES128_KEY_SIZE] = { 0 };
+ 596 uint8_t fNwkSIntKey[RADIOLIB_AES128_KEY_SIZE] = { 0 };
+ 597 uint8_t sNwkSIntKey[RADIOLIB_AES128_KEY_SIZE] = { 0 };
+ 598 uint8_t nwkSEncKey[RADIOLIB_AES128_KEY_SIZE] = { 0 };
+ 599 uint8_t jSIntKey[RADIOLIB_AES128_KEY_SIZE] = { 0 };
+
+
+ 602 uint16_t devNonce = 0;
+ 603 uint32_t joinNonce = 0;
+
+
+ 606 uint32_t homeNetId = 0;
+ 607 uint8_t adrLimitExp = RADIOLIB_LORAWAN_ADR_ACK_LIMIT_EXP;
+ 608 uint8_t adrDelayExp = RADIOLIB_LORAWAN_ADR_ACK_DELAY_EXP;
+
+ 610 uint8_t txPwrCur = 0;
+
+ 612 uint32_t aFcntDown = 0;
+ 613 uint32_t nFcntDown = 0;
+ 614 uint32_t confFcntUp = RADIOLIB_LORAWAN_FCNT_NONE;
+ 615 uint32_t confFcntDown = RADIOLIB_LORAWAN_FCNT_NONE;
+ 616 uint32_t adrFcnt = 0;
-
- 619 bool isJoinedFlag =
false;
+
+
-
- 622 bool adrEnabled =
true;
-
-
-
-
-
-
-
-
-
-
-
-
-
- 636 LoRaWANChannel_t availableChannels[2][RADIOLIB_LORAWAN_NUM_AVAILABLE_CHANNELS];
+
+ 622 bool isJoinedFlag =
false;
+
+
+ 625 bool adrEnabled =
true;
+
+
+
+
+
+
+
+
+
+
+
-
- 639 LoRaWANChannel_t currentChannels[2] = { RADIOLIB_LORAWAN_CHANNEL_NONE, RADIOLIB_LORAWAN_CHANNEL_NONE };
+
+ 639 LoRaWANChannel_t availableChannels[2][RADIOLIB_LORAWAN_NUM_AVAILABLE_CHANNELS];
-
- 642 uint8_t dataRates[2] = { RADIOLIB_LORAWAN_DATA_RATE_UNUSED, RADIOLIB_LORAWAN_DATA_RATE_UNUSED };
+
+ 642 LoRaWANChannel_t currentChannels[2] = { RADIOLIB_LORAWAN_CHANNEL_NONE, RADIOLIB_LORAWAN_CHANNEL_NONE };
-
-
+
+ 645 uint8_t dataRates[2] = { RADIOLIB_LORAWAN_DATA_RATE_UNUSED, RADIOLIB_LORAWAN_DATA_RATE_UNUSED };
-
- 648 uint32_t rxDelayStart = 0;
+
+
-
- 651 uint32_t rxDelayEnd = 0;
+
+ 651 uint32_t rxDelayStart = 0;
-
- 654 uint32_t rxDelays[2] = { RADIOLIB_LORAWAN_RECEIVE_DELAY_1_MS, RADIOLIB_LORAWAN_RECEIVE_DELAY_2_MS };
+
+ 654 uint32_t rxDelayEnd = 0;
-
- 657 uint8_t battLevel = 0xFF;
+
+ 657 uint32_t rxDelays[2] = { RADIOLIB_LORAWAN_RECEIVE_DELAY_1_MS, RADIOLIB_LORAWAN_RECEIVE_DELAY_2_MS };
-
- 660 bool isMACPayload =
false;
+
+ 660 uint8_t battLevel = 0xFF;
- 662 #if !defined(RADIOLIB_EEPROM_UNSUPPORTED)
- 668 int16_t saveFcntUp();
-
- 675 int16_t restoreFcntUp();
-
-
-
- 679 int16_t downlinkCommon();
+
+ 663 bool isMACPayload =
false;
+
+ 665 #if !defined(RADIOLIB_EEPROM_UNSUPPORTED)
+ 671 int16_t saveFcntUp();
+
+ 678 int16_t restoreFcntUp();
+
-
- 682 uint32_t generateMIC(uint8_t* msg,
size_t len, uint8_t* key);
+
+ 682 int16_t downlinkCommon();
-
-
- 686 bool verifyMIC(uint8_t* msg,
size_t len, uint8_t* key);
-
-
-
- 690 int16_t setPhyProperties();
-
-
-
- 694 int16_t setupChannels(uint8_t* cfList);
-
-
- 697 int16_t selectChannelsJR(uint16_t devNonce, uint8_t drJoinSubband);
+
+ 685 uint32_t generateMIC(uint8_t* msg,
size_t len, uint8_t* key);
+
+
+
+ 689 bool verifyMIC(uint8_t* msg,
size_t len, uint8_t* key);
+
+
+
+ 693 int16_t setPhyProperties();
+
+
+
+ 697 int16_t setupChannels(uint8_t* cfList);
-
- 700 int16_t selectChannels();
+
+ 700 int16_t selectChannelsJR(uint16_t devNonce, uint8_t drJoinSubband);
-
- 703 int16_t findDataRate(uint8_t dr,
DataRate_t* dataRate);
+
+ 703 int16_t selectChannels();
-
- 706 int16_t configureChannel(uint8_t dir);
+
+ 706 int16_t findDataRate(uint8_t dr,
DataRate_t* dataRate);
-
- 709 int16_t saveChannels();
+
+ 709 int16_t configureChannel(uint8_t dir);
-
- 712 int16_t restoreChannels();
+
+ 712 int16_t saveChannels();
-
-
+
+ 715 int16_t restoreChannels();
-
-
+
+
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
-
- 730 void processAES(uint8_t* in,
size_t len, uint8_t* key, uint8_t* out, uint32_t fcnt, uint8_t dir, uint8_t ctrId,
bool counter);
+
+
-
-
- 734 static T ntoh(uint8_t* buff,
size_t size = 0);
-
-
-
- 738 static void hton(uint8_t* buff, T val,
size_t size = 0);
-
-
-
-LoRaWAN-compatible node (class A device).
Definition: LoRaWAN.h:346
+
+ 733 void processAES(uint8_t* in,
size_t len, uint8_t* key, uint8_t* out, uint32_t fcnt, uint8_t dir, uint8_t ctrId,
bool counter);
+
+
+
+ 737 static T ntoh(uint8_t* buff,
size_t size = 0);
+
+
+
+ 741 static void hton(uint8_t* buff, T val,
size_t size = 0);
+
+
+
+LoRaWAN-compatible node (class A device).
Definition: LoRaWAN.h:349
int16_t uplink(const char *str, uint8_t port, bool isConfirmed=false, LoRaWANEvent_t *event=NULL)
Send a message to the server.
Definition: LoRaWAN.cpp:674
-int16_t setDatarate(uint8_t drUp)
Set uplink datarate. This should not be used when ADR is enabled.
Definition: LoRaWAN.cpp:1657
-int16_t sendReceive(const char *strUp, uint8_t port, uint8_t *dataDown, size_t *lenDown, bool isConfirmed=false, LoRaWANEvent_t *eventUp=NULL, LoRaWANEvent_t *eventDown=NULL)
Send a message to the server and wait for a downlink during Rx1 and/or Rx2 window.
Definition: LoRaWAN.cpp:1308
-uint32_t getFcntUp()
Returns the last uplink's frame counter.
Definition: LoRaWAN.cpp:1332
-void setDeviceStatus(uint8_t battLevel)
Set device status.
Definition: LoRaWAN.cpp:1328
+int16_t setDatarate(uint8_t drUp)
Set uplink datarate. This should not be used when ADR is enabled.
Definition: LoRaWAN.cpp:1659
+int16_t sendReceive(const char *strUp, uint8_t port, uint8_t *dataDown, size_t *lenDown, bool isConfirmed=false, LoRaWANEvent_t *eventUp=NULL, LoRaWANEvent_t *eventDown=NULL)
Send a message to the server and wait for a downlink during Rx1 and/or Rx2 window.
Definition: LoRaWAN.cpp:1310
+uint32_t getFcntUp()
Returns the last uplink's frame counter.
Definition: LoRaWAN.cpp:1334
+void setDeviceStatus(uint8_t battLevel)
Set device status.
Definition: LoRaWAN.cpp:1330
int16_t saveSession()
Save the current state of the session. All variables are compared to what is saved and only the diffe...
Definition: LoRaWAN.cpp:518
void wipe()
Wipe internal persistent parameters. This will reset all counters and saved variables,...
Definition: LoRaWAN.cpp:47
int16_t beginABP(uint32_t addr, uint8_t *nwkSKey, uint8_t *appSKey, uint8_t *fNwkSIntKey=NULL, uint8_t *sNwkSIntKey=NULL, bool force=false)
Join network by performing activation by personalization. In this procedure, all necessary configurat...
Definition: LoRaWAN.cpp:457
-int16_t setTxPower(int8_t txPower)
Configure TX power of the radio module.
Definition: LoRaWAN.cpp:1682
-int16_t downlink(uint8_t *data, size_t *len, LoRaWANEvent_t *event=NULL)
Wait for downlink from the server in either RX1 or RX2 window.
Definition: LoRaWAN.cpp:1044
-int16_t selectSubband(uint8_t idx)
Select a single subband (8 channels) for fixed bands such as US915. Only available before joining a n...
Definition: LoRaWAN.cpp:1466
+int16_t setTxPower(int8_t txPower)
Configure TX power of the radio module.
Definition: LoRaWAN.cpp:1684
+int16_t downlink(uint8_t *data, size_t *len, LoRaWANEvent_t *event=NULL)
Wait for downlink from the server in either RX1 or RX2 window.
Definition: LoRaWAN.cpp:1045
+int16_t selectSubband(uint8_t idx)
Select a single subband (8 channels) for fixed bands such as US915. Only available before joining a n...
Definition: LoRaWAN.cpp:1468
LoRaWANNode(PhysicalLayer *phy, const LoRaWANBand_t *band)
Default constructor.
Definition: LoRaWAN.cpp:31
void setCSMA(uint8_t backoffMax, uint8_t difsSlots, bool enableCSMA=false)
Configures CSMA for LoRaWAN as per TR-13, LoRa Alliance.
Definition: LoRaWAN.cpp:40
-void setADR(bool enable=true)
Toggle ADR to on or off.
Definition: LoRaWAN.cpp:1678
+void setADR(bool enable=true)
Toggle ADR to on or off.
Definition: LoRaWAN.cpp:1680
int16_t restore()
Restore session by loading information from persistent storage.
Definition: LoRaWAN.cpp:52
int16_t beginOTAA(uint64_t joinEUI, uint64_t devEUI, uint8_t *nwkKey, uint8_t *appKey, uint8_t joinDr=RADIOLIB_LORAWAN_DATA_RATE_UNUSED, bool force=false)
Join network by performing over-the-air activation. By this procedure, the device will perform an exc...
Definition: LoRaWAN.cpp:215
bool isJoined()
Whether there is an ongoing session active.
Definition: LoRaWAN.cpp:513
@@ -639,13 +641,14 @@ $(document).ready(function(){initNavTree('_lo_ra_w_a_n_8h_source.html',''); init
float freqStep
Frequency step between adjacent channels.
Definition: LoRaWAN.h:222
uint8_t drMin
Minimum allowed datarate for all channels in this span.
Definition: LoRaWAN.h:225
Structure to save extra information about uplink/downlink event.
Definition: LoRaWAN.h:318
-float freq
Frequency in MHz.
Definition: LoRaWAN.h:330
+float freq
Frequency in MHz.
Definition: LoRaWAN.h:333
bool confirmed
Whether the event is confirmed or not (e.g., confirmed uplink sent by user application)
Definition: LoRaWAN.h:323
-int16_t power
Transmit power in dBm for uplink, or RSSI for downlink.
Definition: LoRaWAN.h:333
+int16_t power
Transmit power in dBm for uplink, or RSSI for downlink.
Definition: LoRaWAN.h:336
bool confirming
Whether the event is confirming a previous request (e.g., server downlink reply to confirmed uplink s...
Definition: LoRaWAN.h:327
+uint8_t datarate
Datarate.
Definition: LoRaWAN.h:330
uint8_t dir
Event direction, one of RADIOLIB_LORAWAN_CHANNEL_DIR_*.
Definition: LoRaWAN.h:320
-uint32_t fcnt
The appropriate frame counter - for different events, different frame counters will be reported!
Definition: LoRaWAN.h:336
-uint8_t port
Port number.
Definition: LoRaWAN.h:339
+uint32_t fcnt
The appropriate frame counter - for different events, different frame counters will be reported!
Definition: LoRaWAN.h:339
+uint8_t port
Port number.
Definition: LoRaWAN.h:342
Structure to save information about MAC command.
Definition: LoRaWAN.h:294
uint8_t len
Length of the payload.
Definition: LoRaWAN.h:302
uint8_t cid
The command ID.
Definition: LoRaWAN.h:296
diff --git a/_physical_layer_8h_source.html b/_physical_layer_8h_source.html
index b85e0057..683d4c40 100644
--- a/_physical_layer_8h_source.html
+++ b/_physical_layer_8h_source.html
@@ -299,7 +299,7 @@ $(document).ready(function(){initNavTree('_physical_layer_8h_source.html',''); i
Client for Bell modem communication. The public interface is the same as Arduino Serial.
Definition: BellModem.h:57
Client for FSK-4 communication. The public interface is the same as Arduino Serial.
Definition: FSK4.h:15
Client for Hellschreiber transmissions.
Definition: Hellschreiber.h:90
-LoRaWAN-compatible node (class A device).
Definition: LoRaWAN.h:346
+LoRaWAN-compatible node (class A device).
Definition: LoRaWAN.h:349
Implements all common low-level methods to control the wireless module. Every module class contains o...
Definition: Module.h:31
Client for Morse Code communication. The public interface is the same as Arduino Serial.
Definition: Morse.h:93
diff --git a/functions_d.html b/functions_d.html
index 50f93ef9..0bf15c02 100644
--- a/functions_d.html
+++ b/functions_d.html
@@ -85,6 +85,9 @@ $(document).ready(function(){initNavTree('functions_d.html',''); initResizable()
Here is a list of all documented class members with links to the class documentation for each member:
- d -
+- datarate
+: LoRaWANEvent_t
+
- dataRates
: LoRaWANBand_t
diff --git a/functions_vars.html b/functions_vars.html
index 42cce96e..20c095d8 100644
--- a/functions_vars.html
+++ b/functions_vars.html
@@ -111,6 +111,9 @@ $(document).ready(function(){initNavTree('functions_vars.html',''); initResizabl
- d -