From 01dc46f51a58bb8bc64c356fa90df68b648ab8c5 Mon Sep 17 00:00:00 2001
From: StevenCellist <47155822+StevenCellist@users.noreply.github.com>
Date: Sat, 4 Jan 2025 15:04:41 +0000
Subject: [PATCH] =?UTF-8?q?Deploying=20to=20gh-pages=20from=20=20@=20283bf?=
=?UTF-8?q?b43fed1d229c3b5e8ae2fe0f5611575537d=20=F0=9F=9A=80?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
_lo_ra_w_a_n_8h_source.html | 672 ++++++++++++++--------------
class_lo_ra_w_a_n_node-members.html | 2 +-
class_lo_ra_w_a_n_node.html | 27 +-
class_lo_ra_w_a_n_node.js | 2 +-
functions_func_s.html | 2 +-
functions_s.html | 2 +-
navtreeindex1.js | 2 +-
search/all_10.js | 2 +-
search/functions_f.js | 2 +-
9 files changed, 362 insertions(+), 351 deletions(-)
diff --git a/_lo_ra_w_a_n_8h_source.html b/_lo_ra_w_a_n_8h_source.html
index 49de0df7..7dfed464 100644
--- a/_lo_ra_w_a_n_8h_source.html
+++ b/_lo_ra_w_a_n_8h_source.html
@@ -575,363 +575,363 @@ $(document).ready(function(){initNavTree('_lo_ra_w_a_n_8h_source.html',''); init
-
-
- 759 void setCSMA(
bool csmaEnabled, uint8_t maxChanges = 4, uint8_t backoffMax = 0, uint8_t difsSlots = 2);
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- 852 #if !RADIOLIB_GODMODE
-
-
-
-
-
-
- 859 uint8_t bufferNonces[RADIOLIB_LORAWAN_NONCES_BUF_SIZE] = { 0 };
-
-
- 862 uint8_t bufferSession[RADIOLIB_LORAWAN_SESSION_BUF_SIZE] = { 0 };
-
- 864 uint8_t fOptsUp[RADIOLIB_LORAWAN_FHDR_FOPTS_MAX_LEN] = { 0 };
- 865 uint8_t fOptsDown[RADIOLIB_LORAWAN_FHDR_FOPTS_MAX_LEN] = { 0 };
- 866 uint8_t fOptsUpLen = 0;
- 867 uint8_t fOptsDownLen = 0;
-
- 869 uint16_t lwMode = RADIOLIB_LORAWAN_MODE_NONE;
- 870 uint8_t lwClass = RADIOLIB_LORAWAN_CLASS_A;
- 871 bool isActive =
false;
-
- 873 uint64_t joinEUI = 0;
-
- 875 uint8_t nwkKey[RADIOLIB_AES128_KEY_SIZE] = { 0 };
- 876 uint8_t appKey[RADIOLIB_AES128_KEY_SIZE] = { 0 };
-
-
-
- 880 uint32_t devAddr = 0;
- 881 uint8_t appSKey[RADIOLIB_AES128_KEY_SIZE] = { 0 };
- 882 uint8_t fNwkSIntKey[RADIOLIB_AES128_KEY_SIZE] = { 0 };
- 883 uint8_t sNwkSIntKey[RADIOLIB_AES128_KEY_SIZE] = { 0 };
- 884 uint8_t nwkSEncKey[RADIOLIB_AES128_KEY_SIZE] = { 0 };
- 885 uint8_t jSIntKey[RADIOLIB_AES128_KEY_SIZE] = { 0 };
-
- 887 uint16_t keyCheckSum = 0;
-
-
- 890 uint16_t devNonce = 0;
- 891 uint32_t joinNonce = 0;
-
-
- 894 uint32_t homeNetId = 0;
- 895 uint8_t adrLimitExp = RADIOLIB_LORAWAN_ADR_ACK_LIMIT_EXP;
- 896 uint8_t adrDelayExp = RADIOLIB_LORAWAN_ADR_ACK_DELAY_EXP;
-
- 898 uint8_t txPowerSteps = 0;
- 899 uint8_t txPowerMax = 0;
-
- 901 uint32_t aFCntDown = 0;
- 902 uint32_t nFCntDown = 0;
- 903 uint32_t confFCntUp = RADIOLIB_LORAWAN_FCNT_NONE;
- 904 uint32_t confFCntDown = RADIOLIB_LORAWAN_FCNT_NONE;
- 905 uint32_t adrFCnt = 0;
-
-
- 908 bool adrEnabled =
true;
-
-
- 911 bool dutyCycleEnabled =
false;
- 912 uint32_t dutyCycle = 0;
-
-
- 915 uint16_t dwellTimeUp = 0;
- 916 uint16_t dwellTimeDn = 0;
-
-
-
-
-
- 922 bool csmaEnabled =
false;
-
-
- 925 uint8_t maxChanges = RADIOLIB_LORAWAN_MAX_CHANGES_DEFAULT;
-
-
-
-
- 930 uint8_t backoffMax = RADIOLIB_LORAWAN_BACKOFF_MAX_DEFAULT;
-
-
- 933 uint8_t difsSlots = RADIOLIB_LORAWAN_DIFS_DEFAULT;
-
-
-
-
-
- 939 LoRaWANChannel_t channels[3] = { RADIOLIB_LORAWAN_CHANNEL_NONE, RADIOLIB_LORAWAN_CHANNEL_NONE,
- 940 RADIOLIB_LORAWAN_CHANNEL_NONE };
-
-
-
- 944 RadioLibTime_t rxDelays[3] = { 0, RADIOLIB_LORAWAN_RECEIVE_DELAY_1_MS, RADIOLIB_LORAWAN_RECEIVE_DELAY_2_MS };
-
-
- 947 uint8_t rx1DrOffset = 0;
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- 962 uint8_t battLevel = 0xFF;
-
-
- 965 bool isMACPayload =
false;
-
-
-
-
-
-
-
-
-
-
-
- 977 void createSession(uint16_t lwMode, uint8_t initialDr);
-
-
- 980 void composeJoinRequest(uint8_t* joinRequestMsg);
-
-
-
-
-
- 986 void processCFList(uint8_t* cfList);
-
-
- 989 int16_t isValidUplink(uint8_t* len, uint8_t fPort);
-
-
-
-
-
- 995 void composeUplink(
const uint8_t* in, uint8_t lenIn, uint8_t* out, uint8_t fPort,
bool isConfirmed);
-
-
- 998 void micUplink(uint8_t* inOut, uint8_t lenInOut);
-
-
- 1001 int16_t transmitUplink(
LoRaWANChannel_t* chnl, uint8_t* in, uint8_t len,
bool retrans);
-
-
-
-
-
- 1007 int16_t parseDownlink(uint8_t* data,
size_t* len,
LoRaWANEvent_t* event = NULL);
-
-
- 1010 bool execMacCommand(uint8_t cid, uint8_t* optIn, uint8_t lenIn);
- 1011 bool execMacCommand(uint8_t cid, uint8_t* optIn, uint8_t lenIn, uint8_t* optOut);
-
-
- 1014 virtual bool derivedMacHandler(uint8_t cid, uint8_t* optIn, uint8_t lenIn, uint8_t* optOut);
-
-
- 1017 void preprocessMacLinkAdr(uint8_t* mPtr, uint8_t cLen, uint8_t* mAdrOpt);
-
-
- 1020 void postprocessMacLinkAdr(uint8_t* ack, uint8_t cLen);
-
-
-
-
-
-
-
-
-
- 1030 int16_t getMacLen(uint8_t cid, uint8_t* len, uint8_t dir,
bool inclusive =
false);
-
-
-
-
- 1035 bool isPersistentMacCommand(uint8_t cid, uint8_t dir);
-
-
- 1038 int16_t pushMacCommand(uint8_t cid, uint8_t* cOcts, uint8_t* out, uint8_t* lenOut, uint8_t dir);
-
-
- 1041 int16_t getMacPayload(uint8_t cid, uint8_t* in, uint8_t lenIn, uint8_t* out, uint8_t dir);
-
-
- 1044 int16_t deleteMacCommand(uint8_t cid, uint8_t* inOut, uint8_t* lenInOut, uint8_t dir);
-
-
- 1047 void clearMacCommands(uint8_t* inOut, uint8_t* lenInOut, uint8_t dir);
-
-
- 1050 int16_t setPhyProperties(
const LoRaWANChannel_t* chnl, uint8_t dir, int8_t pwr,
size_t pre = 0);
-
-
- 1053 bool csmaChannelClear(uint8_t difs, uint8_t numBackoff);
-
-
- 1056 bool cadChannelClear();
-
-
- 1059 void getChannelPlanMask(uint64_t* chMaskGrp0123, uint32_t* chMaskGrp45);
-
-
-
-
- 1064 void selectChannelPlanDyn();
-
-
-
- 1068 void selectChannelPlanFix();
-
-
-
- 1072 uint8_t getAvailableChannels(uint16_t* mask);
-
-
- 1075 void setAvailableChannels(uint16_t mask);
-
-
- 1078 int16_t selectChannels();
-
-
- 1081 bool applyChannelMask(uint64_t chMaskGrp0123, uint32_t chMaskGrp45);
-
- 1083 #if RADIOLIB_DEBUG_PROTOCOL
-
- 1085 void printChannels();
-
-
-
- 1089 uint32_t generateMIC(uint8_t* msg,
size_t len, uint8_t* key);
-
-
-
- 1093 bool verifyMIC(uint8_t* msg,
size_t len, uint8_t* key);
-
-
- 1096 int16_t findDataRate(uint8_t dr,
DataRate_t* dataRate);
-
-
- 1099 void processAES(
const uint8_t* in,
size_t len, uint8_t* key, uint8_t* out, uint32_t fCnt, uint8_t dir, uint8_t ctrId,
bool counter);
-
-
- 1102 static uint16_t checkSum16(
const uint8_t *key, uint16_t keyLen);
-
-
- 1105 static int16_t checkBufferCommon(
const uint8_t *buffer, uint16_t size);
-
-
- 1108 template<
typename T>
- 1109 static T ntoh(
const uint8_t* buff,
size_t size = 0);
-
-
- 1112 template<
typename T>
- 1113 static void hton(uint8_t* buff, T val,
size_t size = 0);
-
-
- 1116 template<
typename T>
- 1117 T LoRaWANNode::ntoh(
const uint8_t* buff,
size_t size) {
- 1118 const uint8_t* buffPtr = buff;
- 1119 size_t targetSize =
sizeof(T);
-
-
-
-
- 1124 for(
size_t i = 0; i < targetSize; i++) {
- 1125 res |= (uint32_t)(*(buffPtr++)) << 8*i;
-
-
-
-
- 1130 template<
typename T>
- 1131 void LoRaWANNode::hton(uint8_t* buff, T val,
size_t size) {
- 1132 uint8_t* buffPtr = buff;
- 1133 size_t targetSize =
sizeof(T);
-
-
-
- 1137 for(
size_t i = 0; i < targetSize; i++) {
- 1138 *(buffPtr++) = val >> 8*i;
-
-
-
-
+
+
+ 760 void setCSMA(
bool csmaEnabled, uint8_t maxChanges = 4, uint8_t backoffMax = 0, uint8_t difsSlots = 2);
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 853 #if !RADIOLIB_GODMODE
+
+
+
+
+
+
+ 860 uint8_t bufferNonces[RADIOLIB_LORAWAN_NONCES_BUF_SIZE] = { 0 };
+
+
+ 863 uint8_t bufferSession[RADIOLIB_LORAWAN_SESSION_BUF_SIZE] = { 0 };
+
+ 865 uint8_t fOptsUp[RADIOLIB_LORAWAN_FHDR_FOPTS_MAX_LEN] = { 0 };
+ 866 uint8_t fOptsDown[RADIOLIB_LORAWAN_FHDR_FOPTS_MAX_LEN] = { 0 };
+ 867 uint8_t fOptsUpLen = 0;
+ 868 uint8_t fOptsDownLen = 0;
+
+ 870 uint16_t lwMode = RADIOLIB_LORAWAN_MODE_NONE;
+ 871 uint8_t lwClass = RADIOLIB_LORAWAN_CLASS_A;
+ 872 bool isActive =
false;
+
+ 874 uint64_t joinEUI = 0;
+
+ 876 uint8_t nwkKey[RADIOLIB_AES128_KEY_SIZE] = { 0 };
+ 877 uint8_t appKey[RADIOLIB_AES128_KEY_SIZE] = { 0 };
+
+
+
+ 881 uint32_t devAddr = 0;
+ 882 uint8_t appSKey[RADIOLIB_AES128_KEY_SIZE] = { 0 };
+ 883 uint8_t fNwkSIntKey[RADIOLIB_AES128_KEY_SIZE] = { 0 };
+ 884 uint8_t sNwkSIntKey[RADIOLIB_AES128_KEY_SIZE] = { 0 };
+ 885 uint8_t nwkSEncKey[RADIOLIB_AES128_KEY_SIZE] = { 0 };
+ 886 uint8_t jSIntKey[RADIOLIB_AES128_KEY_SIZE] = { 0 };
+
+ 888 uint16_t keyCheckSum = 0;
+
+
+ 891 uint16_t devNonce = 0;
+ 892 uint32_t joinNonce = 0;
+
+
+ 895 uint32_t homeNetId = 0;
+ 896 uint8_t adrLimitExp = RADIOLIB_LORAWAN_ADR_ACK_LIMIT_EXP;
+ 897 uint8_t adrDelayExp = RADIOLIB_LORAWAN_ADR_ACK_DELAY_EXP;
+
+ 899 uint8_t txPowerSteps = 0;
+ 900 uint8_t txPowerMax = 0;
+
+ 902 uint32_t aFCntDown = 0;
+ 903 uint32_t nFCntDown = 0;
+ 904 uint32_t confFCntUp = RADIOLIB_LORAWAN_FCNT_NONE;
+ 905 uint32_t confFCntDown = RADIOLIB_LORAWAN_FCNT_NONE;
+ 906 uint32_t adrFCnt = 0;
+
+
+ 909 bool adrEnabled =
true;
+
+
+ 912 bool dutyCycleEnabled =
false;
+ 913 uint32_t dutyCycle = 0;
+
+
+ 916 uint16_t dwellTimeUp = 0;
+ 917 uint16_t dwellTimeDn = 0;
+
+
+
+
+
+ 923 bool csmaEnabled =
false;
+
+
+ 926 uint8_t maxChanges = RADIOLIB_LORAWAN_MAX_CHANGES_DEFAULT;
+
+
+
+
+ 931 uint8_t backoffMax = RADIOLIB_LORAWAN_BACKOFF_MAX_DEFAULT;
+
+
+ 934 uint8_t difsSlots = RADIOLIB_LORAWAN_DIFS_DEFAULT;
+
+
+
+
+
+ 940 LoRaWANChannel_t channels[3] = { RADIOLIB_LORAWAN_CHANNEL_NONE, RADIOLIB_LORAWAN_CHANNEL_NONE,
+ 941 RADIOLIB_LORAWAN_CHANNEL_NONE };
+
+
+
+ 945 RadioLibTime_t rxDelays[3] = { 0, RADIOLIB_LORAWAN_RECEIVE_DELAY_1_MS, RADIOLIB_LORAWAN_RECEIVE_DELAY_2_MS };
+
+
+ 948 uint8_t rx1DrOffset = 0;
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 963 uint8_t battLevel = 0xFF;
+
+
+ 966 bool isMACPayload =
false;
+
+
+
+
+
+
+
+
+
+
+
+ 978 void createSession(uint16_t lwMode, uint8_t initialDr);
+
+
+ 981 void composeJoinRequest(uint8_t* joinRequestMsg);
+
+
+
+
+
+ 987 void processCFList(uint8_t* cfList);
+
+
+ 990 int16_t isValidUplink(uint8_t* len, uint8_t fPort);
+
+
+
+
+
+ 996 void composeUplink(
const uint8_t* in, uint8_t lenIn, uint8_t* out, uint8_t fPort,
bool isConfirmed);
+
+
+ 999 void micUplink(uint8_t* inOut, uint8_t lenInOut);
+
+
+ 1002 int16_t transmitUplink(
LoRaWANChannel_t* chnl, uint8_t* in, uint8_t len,
bool retrans);
+
+
+
+
+
+ 1008 int16_t parseDownlink(uint8_t* data,
size_t* len,
LoRaWANEvent_t* event = NULL);
+
+
+ 1011 bool execMacCommand(uint8_t cid, uint8_t* optIn, uint8_t lenIn);
+ 1012 bool execMacCommand(uint8_t cid, uint8_t* optIn, uint8_t lenIn, uint8_t* optOut);
+
+
+ 1015 virtual bool derivedMacHandler(uint8_t cid, uint8_t* optIn, uint8_t lenIn, uint8_t* optOut);
+
+
+ 1018 void preprocessMacLinkAdr(uint8_t* mPtr, uint8_t cLen, uint8_t* mAdrOpt);
+
+
+ 1021 void postprocessMacLinkAdr(uint8_t* ack, uint8_t cLen);
+
+
+
+
+
+
+
+
+
+ 1031 int16_t getMacLen(uint8_t cid, uint8_t* len, uint8_t dir,
bool inclusive =
false);
+
+
+
+
+ 1036 bool isPersistentMacCommand(uint8_t cid, uint8_t dir);
+
+
+ 1039 int16_t pushMacCommand(uint8_t cid, uint8_t* cOcts, uint8_t* out, uint8_t* lenOut, uint8_t dir);
+
+
+ 1042 int16_t getMacPayload(uint8_t cid, uint8_t* in, uint8_t lenIn, uint8_t* out, uint8_t dir);
+
+
+ 1045 int16_t deleteMacCommand(uint8_t cid, uint8_t* inOut, uint8_t* lenInOut, uint8_t dir);
+
+
+ 1048 void clearMacCommands(uint8_t* inOut, uint8_t* lenInOut, uint8_t dir);
+
+
+ 1051 int16_t setPhyProperties(
const LoRaWANChannel_t* chnl, uint8_t dir, int8_t pwr,
size_t pre = 0);
+
+
+ 1054 bool csmaChannelClear(uint8_t difs, uint8_t numBackoff);
+
+
+ 1057 bool cadChannelClear();
+
+
+ 1060 void getChannelPlanMask(uint64_t* chMaskGrp0123, uint32_t* chMaskGrp45);
+
+
+
+
+ 1065 void selectChannelPlanDyn();
+
+
+
+ 1069 void selectChannelPlanFix();
+
+
+
+ 1073 uint8_t getAvailableChannels(uint16_t* mask);
+
+
+ 1076 void setAvailableChannels(uint16_t mask);
+
+
+ 1079 int16_t selectChannels();
+
+
+ 1082 bool applyChannelMask(uint64_t chMaskGrp0123, uint32_t chMaskGrp45);
+
+ 1084 #if RADIOLIB_DEBUG_PROTOCOL
+
+ 1086 void printChannels();
+
+
+
+ 1090 uint32_t generateMIC(uint8_t* msg,
size_t len, uint8_t* key);
+
+
+
+ 1094 bool verifyMIC(uint8_t* msg,
size_t len, uint8_t* key);
+
+
+ 1097 int16_t findDataRate(uint8_t dr,
DataRate_t* dataRate);
+
+
+ 1100 void processAES(
const uint8_t* in,
size_t len, uint8_t* key, uint8_t* out, uint32_t fCnt, uint8_t dir, uint8_t ctrId,
bool counter);
+
+
+ 1103 static uint16_t checkSum16(
const uint8_t *key, uint16_t keyLen);
+
+
+ 1106 static int16_t checkBufferCommon(
const uint8_t *buffer, uint16_t size);
+
+
+ 1109 template<
typename T>
+ 1110 static T ntoh(
const uint8_t* buff,
size_t size = 0);
+
+
+ 1113 template<
typename T>
+ 1114 static void hton(uint8_t* buff, T val,
size_t size = 0);
+
+
+ 1117 template<
typename T>
+ 1118 T LoRaWANNode::ntoh(
const uint8_t* buff,
size_t size) {
+ 1119 const uint8_t* buffPtr = buff;
+ 1120 size_t targetSize =
sizeof(T);
+
+
+
+
+ 1125 for(
size_t i = 0; i < targetSize; i++) {
+ 1126 res |= (uint32_t)(*(buffPtr++)) << 8*i;
+
+
+
+
+ 1131 template<
typename T>
+ 1132 void LoRaWANNode::hton(uint8_t* buff, T val,
size_t size) {
+ 1133 uint8_t* buffPtr = buff;
+ 1134 size_t targetSize =
sizeof(T);
+
+
+
+ 1138 for(
size_t i = 0; i < targetSize; i++) {
+ 1139 *(buffPtr++) = val >> 8*i;
+
+
+
+
LoRaWAN-compatible node (class A device).
Definition: LoRaWAN.h:522
void clearSession()
Clear an active session, so that the device will have to rejoin the network.
Definition: LoRaWAN.cpp:278
virtual int16_t sendReceive(const char *strUp, uint8_t fPort, 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:43
int16_t setDatarate(uint8_t drUp)
Set uplink datarate. This should not be used when ADR is enabled.
Definition: LoRaWAN.cpp:2597
-void scheduleTransmission(RadioLibTime_t tUplink)
Set the exact time a transmission should occur. Note: this is the internal clock time....
Definition: LoRaWAN.cpp:2723
-RadioLibTime_t scanGuard
Rx window padding in milliseconds according to the spec, the Rx window must be at least enough time t...
Definition: LoRaWAN.h:850
-void setDwellTime(RadioLibTime_t msPerUplink)
Set or disable uplink dwell time limitation; enabled by default if mandatory.
Definition: LoRaWAN.cpp:2699
-void setCSMA(bool csmaEnabled, uint8_t maxChanges=4, uint8_t backoffMax=0, uint8_t difsSlots=2)
Configures CSMA for LoRaWAN as per TR013, LoRa Alliance.
Definition: LoRaWAN.cpp:2705
+void scheduleTransmission(RadioLibTime_t tUplink)
Set the exact time a transmission should occur. Note: this is the internal clock time....
Definition: LoRaWAN.cpp:2730
+RadioLibTime_t scanGuard
Rx window padding in milliseconds according to the spec, the Rx window must be at least enough time t...
Definition: LoRaWAN.h:851
+void setCSMA(bool csmaEnabled, uint8_t maxChanges=4, uint8_t backoffMax=0, uint8_t difsSlots=2)
Configures CSMA for LoRaWAN as per TR013, LoRa Alliance.
Definition: LoRaWAN.cpp:2712
void setDutyCycle(bool enable=true, RadioLibTime_t msPerHour=0)
Toggle adherence to dutyCycle limits to on or off.
Definition: LoRaWAN.cpp:2687
int16_t beginABP(uint32_t addr, const uint8_t *fNwkSIntKey, const uint8_t *sNwkSIntKey, const uint8_t *nwkSEncKey, const uint8_t *appSKey)
Set the device credentials and activation configuration.
Definition: LoRaWAN.cpp:612
-RadioLibTime_t timeUntilUplink()
Returns time in milliseconds until next uplink is available under dutyCycle limits.
Definition: LoRaWAN.cpp:3231
-void setDeviceStatus(uint8_t battLevel)
Set device status.
Definition: LoRaWAN.cpp:2719
-RadioLibTime_t dutyCycleInterval(RadioLibTime_t msPerHour, RadioLibTime_t airtime)
Calculate the minimum interval to adhere to a certain dutyCycle. This interval is based on the ToA of...
Definition: LoRaWAN.cpp:3221
-uint32_t getAFCntDown()
Returns the last application downlink's frame counter; also 0 if no application downlink occured yet.
Definition: LoRaWAN.cpp:2739
-RadioLibTime_t getLastToA()
Get the Time-on-air of the last uplink message (in milliseconds).
Definition: LoRaWAN.cpp:2752
+RadioLibTime_t timeUntilUplink()
Returns time in milliseconds until next uplink is available under dutyCycle limits.
Definition: LoRaWAN.cpp:3238
+void setDeviceStatus(uint8_t battLevel)
Set device status.
Definition: LoRaWAN.cpp:2726
+RadioLibTime_t dutyCycleInterval(RadioLibTime_t msPerHour, RadioLibTime_t airtime)
Calculate the minimum interval to adhere to a certain dutyCycle. This interval is based on the ToA of...
Definition: LoRaWAN.cpp:3228
+void setDwellTime(bool enable, RadioLibTime_t msPerUplink=0)
Set or disable uplink dwell time limitation; enabled by default if mandatory.
Definition: LoRaWAN.cpp:2699
+uint32_t getAFCntDown()
Returns the last application downlink's frame counter; also 0 if no application downlink occured yet.
Definition: LoRaWAN.cpp:2746
+RadioLibTime_t getLastToA()
Get the Time-on-air of the last uplink message (in milliseconds).
Definition: LoRaWAN.cpp:2759
virtual int16_t activateABP(uint8_t initialDr=RADIOLIB_LORAWAN_DATA_RATE_UNUSED)
Join network by restoring ABP session or performing over-the-air activation. In this procedure,...
Definition: LoRaWAN.cpp:957
-bool TS009
TS009 Protocol Specification Verification switch (allows FPort 224 and cuts off uplink payload instea...
Definition: LoRaWAN.h:836
+bool TS009
TS009 Protocol Specification Verification switch (allows FPort 224 and cuts off uplink payload instea...
Definition: LoRaWAN.h:837
uint8_t * getBufferNonces()
Returns the pointer to the internal buffer that holds the LW base parameters.
Definition: LoRaWAN.cpp:227
uint8_t * getBufferSession()
Returns the pointer to the internal buffer that holds the LW session parameters.
Definition: LoRaWAN.cpp:427
bool isActivated()
Whether there is an ongoing session active.
Definition: LoRaWAN.cpp:1047
int16_t setTxPower(int8_t txPower)
Configure TX power of the radio module.
Definition: LoRaWAN.cpp:2630
int16_t getMacDeviceTimeAns(uint32_t *gpsEpoch, uint8_t *fraction, bool returnUnix=true)
Returns the network time after requesting a DeviceTime MAC command. Returns 'true' if a network respo...
Definition: LoRaWAN.cpp:2448
-uint32_t getNFCntDown()
Returns the last network downlink's frame counter; also 0 if no network downlink occured yet.
Definition: LoRaWAN.cpp:2735
+uint32_t getNFCntDown()
Returns the last network downlink's frame counter; also 0 if no network downlink occured yet.
Definition: LoRaWAN.cpp:2742
LoRaWANNode(PhysicalLayer *phy, const LoRaWANBand_t *band, uint8_t subBand=0)
Default constructor.
Definition: LoRaWAN.cpp:9
int16_t beginOTAA(uint64_t joinEUI, uint64_t devEUI, const uint8_t *nwkKey, const uint8_t *appKey)
Set the device credentials and activation configuration.
Definition: LoRaWAN.cpp:583
-uint8_t getMaxPayloadLen()
Returns the maximum allowed uplink payload size given the current MAC state. Most importantly,...
Definition: LoRaWAN.cpp:3240
+uint8_t getMaxPayloadLen()
Returns the maximum allowed uplink payload size given the current MAC state. Most importantly,...
Definition: LoRaWAN.cpp:3247
virtual int16_t activateOTAA(uint8_t initialDr=RADIOLIB_LORAWAN_DATA_RATE_UNUSED, LoRaWANJoinEvent_t *joinEvent=NULL)
Join network by restoring OTAA session or performing over-the-air activation. By this procedure,...
Definition: LoRaWAN.cpp:867
-uint32_t getFCntUp()
Returns the last uplink's frame counter; also 0 if no uplink occured yet.
Definition: LoRaWAN.cpp:2728
+uint32_t getFCntUp()
Returns the last uplink's frame counter; also 0 if no uplink occured yet.
Definition: LoRaWAN.cpp:2735
int16_t setBufferNonces(const uint8_t *persistentBuffer)
Fill the internal buffer that holds the LW base parameters with a supplied buffer.
Definition: LoRaWAN.cpp:242
int16_t setRx2Dr(uint8_t dr)
Configure the Rx2 datarate for ABP mode. This should not be needed for LoRaWAN 1.1 as it is configure...
Definition: LoRaWAN.cpp:2656
int16_t sendMacCommandReq(uint8_t cid)
Add a MAC command to the uplink queue. Only LinkCheck and DeviceTime are available to the user....
Definition: LoRaWAN.cpp:2413
int16_t getMacLinkCheckAns(uint8_t *margin, uint8_t *gwCnt)
Returns the quality of connectivity after requesting a LinkCheck MAC command. Returns 'true' if a net...
Definition: LoRaWAN.cpp:2437
void setADR(bool enable=true)
Toggle ADR to on or off.
Definition: LoRaWAN.cpp:2683
int16_t setBufferSession(const uint8_t *persistentBuffer)
Fill the internal buffer that holds the LW session parameters with a supplied buffer.
Definition: LoRaWAN.cpp:459
-uint32_t getDevAddr()
Returns the DevAddr of the device, regardless of OTAA or ABP mode.
Definition: LoRaWAN.cpp:2748
-void resetFCntDown()
Reset the downlink frame counters (application and network) This is unsafe and can possibly allow rep...
Definition: LoRaWAN.cpp:2743
+uint32_t getDevAddr()
Returns the DevAddr of the device, regardless of OTAA or ABP mode.
Definition: LoRaWAN.cpp:2755
+void resetFCntDown()
Reset the downlink frame counters (application and network) This is unsafe and can possibly allow rep...
Definition: LoRaWAN.cpp:2750
Provides common interface for protocols that run on LoRa/FSK modules, such as RTTY or LoRaWAN....
Definition: PhysicalLayer.h:151
unsigned long RadioLibTime_t
Type used for durations in RadioLib.
Definition: TypeDef.h:642
Structure to save information about LoRaWAN band.
Definition: LoRaWAN.h:367
diff --git a/class_lo_ra_w_a_n_node-members.html b/class_lo_ra_w_a_n_node-members.html
index 26080dfa..58460da6 100644
--- a/class_lo_ra_w_a_n_node-members.html
+++ b/class_lo_ra_w_a_n_node-members.html
@@ -122,7 +122,7 @@ $(document).ready(function(){initNavTree('class_lo_ra_w_a_n_node.html',''); init
setDatarate(uint8_t drUp) | LoRaWANNode | |
setDeviceStatus(uint8_t battLevel) | LoRaWANNode | |
setDutyCycle(bool enable=true, RadioLibTime_t msPerHour=0) | LoRaWANNode | |
- setDwellTime(RadioLibTime_t msPerUplink) | LoRaWANNode | |
+ setDwellTime(bool enable, RadioLibTime_t msPerUplink=0) | LoRaWANNode | |
setRx2Dr(uint8_t dr) | LoRaWANNode | |
setTxPower(int8_t txPower) | LoRaWANNode | |
timeUntilUplink() | LoRaWANNode | |
diff --git a/class_lo_ra_w_a_n_node.html b/class_lo_ra_w_a_n_node.html
index ebc74cfc..e7d90970 100644
--- a/class_lo_ra_w_a_n_node.html
+++ b/class_lo_ra_w_a_n_node.html
@@ -169,9 +169,9 @@ bool | void | setDutyCycle (bool enable=true, RadioLibTime_t msPerHour=0) |
| Toggle adherence to dutyCycle limits to on or off. More...
|
|
-void | setDwellTime (RadioLibTime_t msPerUplink) |
- | Set or disable uplink dwell time limitation; enabled by default if mandatory. More...
|
- |
+void | setDwellTime (bool enable, RadioLibTime_t msPerUplink=0) |
+ | Set or disable uplink dwell time limitation; enabled by default if mandatory. More...
|
+ |
void | setCSMA (bool csmaEnabled, uint8_t maxChanges=4, uint8_t backoffMax=0, uint8_t difsSlots=2) |
| Configures CSMA for LoRaWAN as per TR013, LoRa Alliance. More...
|
|
@@ -1249,8 +1249,8 @@ bool
-◆ setDwellTime()
+
+◆ setDwellTime()
@@ -1258,9 +1258,19 @@ bool | void LoRaWANNode::setDwellTime |
( |
- RadioLibTime_t |
- msPerUplink | ) |
+ bool |
+ enable, |
+
+
+ |
|
+ RadioLibTime_t |
+ msPerUplink = 0 |
+
+
+ |
+ ) |
+ | |
@@ -1268,7 +1278,8 @@ bool
Parameters
- msPerUplink | The maximum allowed Time-on-Air per uplink in milliseconds (0 = no dwell time limitation, make sure you follow regulations/law!). |
+ enable | Whether to adhere to dwellTime limits or not (default true). |
+ msPerUplink | The maximum allowed Time-on-Air per uplink in milliseconds (default 0 = band default value); make sure you follow regulations/law! |
diff --git a/class_lo_ra_w_a_n_node.js b/class_lo_ra_w_a_n_node.js
index ced42c45..0e72da42 100644
--- a/class_lo_ra_w_a_n_node.js
+++ b/class_lo_ra_w_a_n_node.js
@@ -32,7 +32,7 @@ var class_lo_ra_w_a_n_node =
[ "setDatarate", "class_lo_ra_w_a_n_node.html#a14e8a8a098df28ff5ee294f235500499", null ],
[ "setDeviceStatus", "class_lo_ra_w_a_n_node.html#a5449e301634dff1838a1b024b4067034", null ],
[ "setDutyCycle", "class_lo_ra_w_a_n_node.html#a3d4bbd6d382496838954ab4ac1168b77", null ],
- [ "setDwellTime", "class_lo_ra_w_a_n_node.html#a288a86771bd40ac25f8f064c3a5b7f9d", null ],
+ [ "setDwellTime", "class_lo_ra_w_a_n_node.html#a62bfe68f6fe63c2e408dccbff6a34a4f", null ],
[ "setRx2Dr", "class_lo_ra_w_a_n_node.html#addfd8ac3d0bfe5a273e9ba10e51f8025", null ],
[ "setTxPower", "class_lo_ra_w_a_n_node.html#a9af613f7d923e7bdcfdbd020132c6d4b", null ],
[ "timeUntilUplink", "class_lo_ra_w_a_n_node.html#a49e690c14858b46692e4ce9aa5a2566a", null ],
diff --git a/functions_func_s.html b/functions_func_s.html
index 87098af6..d7706409 100644
--- a/functions_func_s.html
+++ b/functions_func_s.html
@@ -297,7 +297,7 @@ $(document).ready(function(){initNavTree('functions_func_s.html',''); initResiza
: LoRaWANNode
setDwellTime()
-: LoRaWANNode
+: LoRaWANNode
setEncoding()
: CC1101
diff --git a/functions_s.html b/functions_s.html
index 5e7162b2..6f261804 100644
--- a/functions_s.html
+++ b/functions_s.html
@@ -312,7 +312,7 @@ $(document).ready(function(){initNavTree('functions_s.html',''); initResizable()
: LoRaWANNode
setDwellTime()
-: LoRaWANNode
+: LoRaWANNode
setEncoding()
: CC1101
diff --git a/navtreeindex1.js b/navtreeindex1.js
index de22db7d..02a787bc 100644
--- a/navtreeindex1.js
+++ b/navtreeindex1.js
@@ -129,13 +129,13 @@ var NAVTREEINDEX1 =
"class_lo_ra_w_a_n_node.html#a14e8a8a098df28ff5ee294f235500499":[3,0,24,29],
"class_lo_ra_w_a_n_node.html#a16c7ae2edfe324e11498b13aa042665f":[3,0,24,19],
"class_lo_ra_w_a_n_node.html#a2176aa3d546e6b00e870a7e1e310c403":[3,0,24,36],
-"class_lo_ra_w_a_n_node.html#a288a86771bd40ac25f8f064c3a5b7f9d":[3,0,24,32],
"class_lo_ra_w_a_n_node.html#a2d9a53560ebfbaf006eefd9761424d80":[3,0,24,28],
"class_lo_ra_w_a_n_node.html#a3d4bbd6d382496838954ab4ac1168b77":[3,0,24,31],
"class_lo_ra_w_a_n_node.html#a43b259fd8804ef8d9d4922962e9ecae5":[3,0,24,3],
"class_lo_ra_w_a_n_node.html#a49e690c14858b46692e4ce9aa5a2566a":[3,0,24,35],
"class_lo_ra_w_a_n_node.html#a5449e301634dff1838a1b024b4067034":[3,0,24,30],
"class_lo_ra_w_a_n_node.html#a5bb50904544f331806fd744ab5b99efa":[3,0,24,6],
+"class_lo_ra_w_a_n_node.html#a62bfe68f6fe63c2e408dccbff6a34a4f":[3,0,24,32],
"class_lo_ra_w_a_n_node.html#a6785265f3311ff6bf296f82429c96701":[3,0,24,7],
"class_lo_ra_w_a_n_node.html#a683b02b63867bb7de5df45c94d190305":[3,0,24,12],
"class_lo_ra_w_a_n_node.html#a77483c51548e48a5dff4b707f7770e86":[3,0,24,1],
diff --git a/search/all_10.js b/search/all_10.js
index a4a54f07..6a34cfe5 100644
--- a/search/all_10.js
+++ b/search/all_10.js
@@ -51,7 +51,7 @@ var searchData=
['setdirectaction_537',['setDirectAction',['../class_r_f69.html#a9852fe520aec018d2bb4aff0cd17de77',1,'RF69::setDirectAction()'],['../class_physical_layer.html#abf96cf4f3cb4c82d44be581dbe615966',1,'PhysicalLayer::setDirectAction()'],['../class_s_x128x.html#a2326cf28c385b8dd709cb62c9f665000',1,'SX128x::setDirectAction()'],['../class_s_x127x.html#ae4b99d1bc67ac2c81eeb11dd6793a8c5',1,'SX127x::setDirectAction()'],['../class_s_x126x.html#a4f514b341b8982650526c6d8e20fd1a4',1,'SX126x::setDirectAction()'],['../class_si443x.html#a48a59ff1ddc7c8ec820328174955de43',1,'Si443x::setDirectAction()'],['../class_c_c1101.html#a24f4b059cc56238499c6117b88cd5505',1,'CC1101::setDirectAction()']]],
['setdirectsyncword_538',['setDirectSyncWord',['../class_physical_layer.html#a8e378fe136a498ea485a9c10f5e15aab',1,'PhysicalLayer']]],
['setdutycycle_539',['setDutyCycle',['../class_lo_ra_w_a_n_node.html#a3d4bbd6d382496838954ab4ac1168b77',1,'LoRaWANNode']]],
- ['setdwelltime_540',['setDwellTime',['../class_lo_ra_w_a_n_node.html#a288a86771bd40ac25f8f064c3a5b7f9d',1,'LoRaWANNode']]],
+ ['setdwelltime_540',['setDwellTime',['../class_lo_ra_w_a_n_node.html#a62bfe68f6fe63c2e408dccbff6a34a4f',1,'LoRaWANNode']]],
['setencoding_541',['setEncoding',['../class_c_c1101.html#ab4b98eb6af33d006306bb7514ed216ea',1,'CC1101::setEncoding()'],['../class_l_r11x0.html#a8ae178a17f6e41b545b79cfffd3e2864',1,'LR11x0::setEncoding()'],['../classn_r_f24.html#a0429a9d6524005065e6fac21aaebdcbf',1,'nRF24::setEncoding()'],['../class_r_f69.html#aae828ce8dda16da4e54d2f18b1fb8af2',1,'RF69::setEncoding()'],['../class_si443x.html#a1382fc3b68f447e381613e6670747128',1,'Si443x::setEncoding()'],['../class_s_x127x.html#abad2d455012bd28d304589c8164390eb',1,'SX127x::setEncoding()'],['../class_s_x128x.html#a8720a388d2cd10fac3112b89f4a80947',1,'SX128x::setEncoding()'],['../class_external_radio.html#ae619f011daea49a97098d2897e5a3c2c',1,'ExternalRadio::setEncoding()'],['../class_physical_layer.html#acb45b2342400a03a914a91d2ac7fb488',1,'PhysicalLayer::setEncoding()'],['../class_s_x126x.html#a2b3eb51117558c58384b03de4b7bfe60',1,'SX126x::setEncoding()']]],
['setfhsshoppingperiod_542',['setFHSSHoppingPeriod',['../class_s_x127x.html#a7f04a7e883057908df18f06c7f74c7e1',1,'SX127x']]],
['setfifoemptyaction_543',['setFifoEmptyAction',['../class_r_f69.html#a788023a0de9d6b43cb4079d12ca90b8d',1,'RF69::setFifoEmptyAction()'],['../class_s_x127x.html#a6fbdfd8e2a2ad1eb7e59a73385847acb',1,'SX127x::setFifoEmptyAction(void(*func)(void))']]],
diff --git a/search/functions_f.js b/search/functions_f.js
index 2126d0c2..2a36a5dc 100644
--- a/search/functions_f.js
+++ b/search/functions_f.js
@@ -46,7 +46,7 @@ var searchData=
['setdirectaction_1029',['setDirectAction',['../class_physical_layer.html#abf96cf4f3cb4c82d44be581dbe615966',1,'PhysicalLayer::setDirectAction()'],['../class_s_x128x.html#a2326cf28c385b8dd709cb62c9f665000',1,'SX128x::setDirectAction()'],['../class_s_x127x.html#ae4b99d1bc67ac2c81eeb11dd6793a8c5',1,'SX127x::setDirectAction()'],['../class_si443x.html#a48a59ff1ddc7c8ec820328174955de43',1,'Si443x::setDirectAction()'],['../class_s_x126x.html#a4f514b341b8982650526c6d8e20fd1a4',1,'SX126x::setDirectAction()'],['../class_c_c1101.html#a24f4b059cc56238499c6117b88cd5505',1,'CC1101::setDirectAction()'],['../class_r_f69.html#a9852fe520aec018d2bb4aff0cd17de77',1,'RF69::setDirectAction()']]],
['setdirectsyncword_1030',['setDirectSyncWord',['../class_physical_layer.html#a8e378fe136a498ea485a9c10f5e15aab',1,'PhysicalLayer']]],
['setdutycycle_1031',['setDutyCycle',['../class_lo_ra_w_a_n_node.html#a3d4bbd6d382496838954ab4ac1168b77',1,'LoRaWANNode']]],
- ['setdwelltime_1032',['setDwellTime',['../class_lo_ra_w_a_n_node.html#a288a86771bd40ac25f8f064c3a5b7f9d',1,'LoRaWANNode']]],
+ ['setdwelltime_1032',['setDwellTime',['../class_lo_ra_w_a_n_node.html#a62bfe68f6fe63c2e408dccbff6a34a4f',1,'LoRaWANNode']]],
['setencoding_1033',['setEncoding',['../class_c_c1101.html#ab4b98eb6af33d006306bb7514ed216ea',1,'CC1101::setEncoding()'],['../class_l_r11x0.html#a8ae178a17f6e41b545b79cfffd3e2864',1,'LR11x0::setEncoding()'],['../classn_r_f24.html#a0429a9d6524005065e6fac21aaebdcbf',1,'nRF24::setEncoding()'],['../class_r_f69.html#aae828ce8dda16da4e54d2f18b1fb8af2',1,'RF69::setEncoding()'],['../class_si443x.html#a1382fc3b68f447e381613e6670747128',1,'Si443x::setEncoding()'],['../class_s_x126x.html#a2b3eb51117558c58384b03de4b7bfe60',1,'SX126x::setEncoding()'],['../class_s_x127x.html#abad2d455012bd28d304589c8164390eb',1,'SX127x::setEncoding()'],['../class_s_x128x.html#a8720a388d2cd10fac3112b89f4a80947',1,'SX128x::setEncoding()'],['../class_external_radio.html#ae619f011daea49a97098d2897e5a3c2c',1,'ExternalRadio::setEncoding()'],['../class_physical_layer.html#acb45b2342400a03a914a91d2ac7fb488',1,'PhysicalLayer::setEncoding()']]],
['setfhsshoppingperiod_1034',['setFHSSHoppingPeriod',['../class_s_x127x.html#a7f04a7e883057908df18f06c7f74c7e1',1,'SX127x']]],
['setfifoemptyaction_1035',['setFifoEmptyAction',['../class_s_x127x.html#a6fbdfd8e2a2ad1eb7e59a73385847acb',1,'SX127x::setFifoEmptyAction()'],['../class_r_f69.html#a788023a0de9d6b43cb4079d12ca90b8d',1,'RF69::setFifoEmptyAction(void(*func)(void))']]],
|