From f933b19a6fadc89b5ea8907b0a469f7bbaf2719f Mon Sep 17 00:00:00 2001 From: StevenCellist <47155822+StevenCellist@users.noreply.github.com> Date: Thu, 30 Jan 2025 21:46:30 +0000 Subject: [PATCH] =?UTF-8?q?Deploying=20to=20gh-pages=20from=20=20@=2027653?= =?UTF-8?q?e1cf7292d643e996028c1a40931e7867143=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 | 263 ++++++++++++++++++------------------ 1 file changed, 132 insertions(+), 131 deletions(-) diff --git a/_lo_ra_w_a_n_8h_source.html b/_lo_ra_w_a_n_8h_source.html index 0f3dc701..da23a610 100644 --- a/_lo_ra_w_a_n_8h_source.html +++ b/_lo_ra_w_a_n_8h_source.html @@ -810,155 +810,156 @@ $(document).ready(function(){initNavTree('_lo_ra_w_a_n_8h_source.html',''); init
1030
1031 // get the length of a certain MAC command in a specific direction (up/down)
1032 // if inclusive is true, add one for the CID byte
-
1033 int16_t getMacLen(uint8_t cid, uint8_t* len, uint8_t dir, bool inclusive = false);
-
1034
-
1035 // find out of a MAC command should persist destruction
-
1036 // in uplink direction, some commands must persist if no downlink is received
-
1037 // in downlink direction, the user-accessible MAC commands remain available for retrieval
-
1038 bool isPersistentMacCommand(uint8_t cid, uint8_t dir);
-
1039
-
1040 // push MAC command to queue, done by copy
-
1041 int16_t pushMacCommand(uint8_t cid, const uint8_t* cOcts, uint8_t* out, uint8_t* lenOut, uint8_t dir);
-
1042
-
1043 // retrieve the payload of a certain MAC command, if present in the buffer
-
1044 int16_t getMacPayload(uint8_t cid, const uint8_t* in, uint8_t lenIn, uint8_t* out, uint8_t dir);
-
1045
-
1046 // delete a specific MAC command from queue, indicated by the command ID
-
1047 int16_t deleteMacCommand(uint8_t cid, uint8_t* inOut, uint8_t* lenInOut, uint8_t dir);
-
1048
-
1049 // clear a MAC buffer, possible retaining persistent MAC commands
-
1050 void clearMacCommands(uint8_t* inOut, uint8_t* lenInOut, uint8_t dir);
-
1051
-
1052 // configure the common physical layer properties (frequency, sync word etc.)
-
1053 int16_t setPhyProperties(const LoRaWANChannel_t* chnl, uint8_t dir, int8_t pwr, size_t pre = 0);
-
1054
-
1055 // Performs CSMA as per LoRa Alliance Technical Recommendation 13 (TR-013).
-
1056 bool csmaChannelClear(uint8_t difs, uint8_t numBackoff);
-
1057
-
1058 // perform a single CAD operation for the under SF/CH combination. Returns either busy or otherwise.
-
1059 bool cadChannelClear();
-
1060
-
1061 // (dynamic bands:) get or (fixed bands:) create a complete 80-bit channel mask for current configuration
-
1062 void getChannelPlanMask(uint64_t* chMaskGrp0123, uint32_t* chMaskGrp45);
-
1063
-
1064 // setup uplink/downlink channel data rates and frequencies
-
1065 // for dynamic channels, there is a small set of predefined channels
-
1066 // in case of JoinRequest, add some optional extra frequencies
-
1067 void selectChannelPlanDyn();
-
1068
-
1069 // setup uplink/downlink channel data rates and frequencies
-
1070 // for fixed bands, we only allow one sub-band at a time to be selected
-
1071 void selectChannelPlanFix();
-
1072
-
1073 // get the number of available channels,
-
1074 // along with a 16-bit mask indicating which channels can be used next for uplink/downlink
-
1075 uint8_t getAvailableChannels(uint16_t* mask);
-
1076
-
1077 // (re)set/restore which channels can be used next for uplink/downlink
-
1078 void setAvailableChannels(uint16_t mask);
-
1079
-
1080 // select a set of random TX/RX channels for up- and downlink
-
1081 int16_t selectChannels();
-
1082
-
1083 // apply a 96-bit channel mask
-
1084 bool applyChannelMask(uint64_t chMaskGrp0123, uint32_t chMaskGrp45);
-
1085
-
1086#if RADIOLIB_DEBUG_PROTOCOL
-
1087 // print the available channels through debug
-
1088 void printChannels();
-
1089#endif
-
1090
-
1091 // method to generate message integrity code
-
1092 uint32_t generateMIC(const uint8_t* msg, size_t len, uint8_t* key);
-
1093
-
1094 // method to verify message integrity code
-
1095 // it assumes that the MIC is the last 4 bytes of the message
-
1096 bool verifyMIC(uint8_t* msg, size_t len, uint8_t* key);
-
1097
-
1098 // find the first usable data rate for the given band
-
1099 int16_t findDataRate(uint8_t dr, DataRate_t* dataRate);
-
1100
-
1101 // function to encrypt and decrypt payloads (regular uplink/downlink)
-
1102 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
-
1104 // 16-bit checksum method that takes a uint8_t array of even length and calculates the checksum
-
1105 static uint16_t checkSum16(const uint8_t *key, uint16_t keyLen);
-
1106
-
1107 // check the integrity of a buffer using a 16-bit checksum located in the last two bytes of the buffer
-
1108 static int16_t checkBufferCommon(const uint8_t *buffer, uint16_t size);
-
1109
-
1110 // network-to-host conversion method - takes data from network packet and converts it to the host endians
-
1111 template<typename T>
-
1112 static T ntoh(const uint8_t* buff, size_t size = 0);
-
1113
-
1114 // host-to-network conversion method - takes data from host variable and and converts it to network packet endians
-
1115 template<typename T>
-
1116 static void hton(uint8_t* buff, T val, size_t size = 0);
-
1117};
+
1033 // include payload in case the MAC command has a dynamic length
+
1034 virtual int16_t getMacLen(uint8_t cid, uint8_t* len, uint8_t dir, bool inclusive = false, uint8_t* payload = NULL);
+
1035
+
1036 // find out of a MAC command should persist destruction
+
1037 // in uplink direction, some commands must persist if no downlink is received
+
1038 // in downlink direction, the user-accessible MAC commands remain available for retrieval
+
1039 bool isPersistentMacCommand(uint8_t cid, uint8_t dir);
+
1040
+
1041 // push MAC command to queue, done by copy
+
1042 int16_t pushMacCommand(uint8_t cid, const uint8_t* cOcts, uint8_t* out, uint8_t* lenOut, uint8_t dir);
+
1043
+
1044 // retrieve the payload of a certain MAC command, if present in the buffer
+
1045 int16_t getMacPayload(uint8_t cid, const uint8_t* in, uint8_t lenIn, uint8_t* out, uint8_t dir);
+
1046
+
1047 // delete a specific MAC command from queue, indicated by the command ID
+
1048 int16_t deleteMacCommand(uint8_t cid, uint8_t* inOut, uint8_t* lenInOut, uint8_t dir);
+
1049
+
1050 // clear a MAC buffer, possible retaining persistent MAC commands
+
1051 void clearMacCommands(uint8_t* inOut, uint8_t* lenInOut, uint8_t dir);
+
1052
+
1053 // configure the common physical layer properties (frequency, sync word etc.)
+
1054 int16_t setPhyProperties(const LoRaWANChannel_t* chnl, uint8_t dir, int8_t pwr, size_t pre = 0);
+
1055
+
1056 // Performs CSMA as per LoRa Alliance Technical Recommendation 13 (TR-013).
+
1057 bool csmaChannelClear(uint8_t difs, uint8_t numBackoff);
+
1058
+
1059 // perform a single CAD operation for the under SF/CH combination. Returns either busy or otherwise.
+
1060 bool cadChannelClear();
+
1061
+
1062 // (dynamic bands:) get or (fixed bands:) create a complete 80-bit channel mask for current configuration
+
1063 void getChannelPlanMask(uint64_t* chMaskGrp0123, uint32_t* chMaskGrp45);
+
1064
+
1065 // setup uplink/downlink channel data rates and frequencies
+
1066 // for dynamic channels, there is a small set of predefined channels
+
1067 // in case of JoinRequest, add some optional extra frequencies
+
1068 void selectChannelPlanDyn();
+
1069
+
1070 // setup uplink/downlink channel data rates and frequencies
+
1071 // for fixed bands, we only allow one sub-band at a time to be selected
+
1072 void selectChannelPlanFix();
+
1073
+
1074 // get the number of available channels,
+
1075 // along with a 16-bit mask indicating which channels can be used next for uplink/downlink
+
1076 uint8_t getAvailableChannels(uint16_t* mask);
+
1077
+
1078 // (re)set/restore which channels can be used next for uplink/downlink
+
1079 void setAvailableChannels(uint16_t mask);
+
1080
+
1081 // select a set of random TX/RX channels for up- and downlink
+
1082 int16_t selectChannels();
+
1083
+
1084 // apply a 96-bit channel mask
+
1085 bool applyChannelMask(uint64_t chMaskGrp0123, uint32_t chMaskGrp45);
+
1086
+
1087#if RADIOLIB_DEBUG_PROTOCOL
+
1088 // print the available channels through debug
+
1089 void printChannels();
+
1090#endif
+
1091
+
1092 // method to generate message integrity code
+
1093 uint32_t generateMIC(const uint8_t* msg, size_t len, uint8_t* key);
+
1094
+
1095 // method to verify message integrity code
+
1096 // it assumes that the MIC is the last 4 bytes of the message
+
1097 bool verifyMIC(uint8_t* msg, size_t len, uint8_t* key);
+
1098
+
1099 // find the first usable data rate for the given band
+
1100 int16_t findDataRate(uint8_t dr, DataRate_t* dataRate);
+
1101
+
1102 // function to encrypt and decrypt payloads (regular uplink/downlink)
+
1103 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);
+
1104
+
1105 // 16-bit checksum method that takes a uint8_t array of even length and calculates the checksum
+
1106 static uint16_t checkSum16(const uint8_t *key, uint16_t keyLen);
+
1107
+
1108 // check the integrity of a buffer using a 16-bit checksum located in the last two bytes of the buffer
+
1109 static int16_t checkBufferCommon(const uint8_t *buffer, uint16_t size);
+
1110
+
1111 // network-to-host conversion method - takes data from network packet and converts it to the host endians
+
1112 template<typename T>
+
1113 static T ntoh(const uint8_t* buff, size_t size = 0);
+
1114
+
1115 // host-to-network conversion method - takes data from host variable and and converts it to network packet endians
+
1116 template<typename T>
+
1117 static void hton(uint8_t* buff, T val, size_t size = 0);
+
1118};
-
1118
-
1119template<typename T>
-
1120T LoRaWANNode::ntoh(const uint8_t* buff, size_t size) {
-
1121 const uint8_t* buffPtr = buff;
-
1122 size_t targetSize = sizeof(T);
-
1123 if(size != 0) {
-
1124 targetSize = size;
-
1125 }
-
1126 T res = 0;
-
1127 for(size_t i = 0; i < targetSize; i++) {
-
1128 res |= (uint32_t)(*(buffPtr++)) << 8*i;
-
1129 }
-
1130 return(res);
-
1131}
-
1132
-
1133template<typename T>
-
1134void LoRaWANNode::hton(uint8_t* buff, T val, size_t size) {
-
1135 uint8_t* buffPtr = buff;
-
1136 size_t targetSize = sizeof(T);
-
1137 if(size != 0) {
-
1138 targetSize = size;
-
1139 }
-
1140 for(size_t i = 0; i < targetSize; i++) {
-
1141 *(buffPtr++) = val >> 8*i;
-
1142 }
-
1143}
-
1144
-
1145#endif
+
1119
+
1120template<typename T>
+
1121T LoRaWANNode::ntoh(const uint8_t* buff, size_t size) {
+
1122 const uint8_t* buffPtr = buff;
+
1123 size_t targetSize = sizeof(T);
+
1124 if(size != 0) {
+
1125 targetSize = size;
+
1126 }
+
1127 T res = 0;
+
1128 for(size_t i = 0; i < targetSize; i++) {
+
1129 res |= (uint32_t)(*(buffPtr++)) << 8*i;
+
1130 }
+
1131 return(res);
+
1132}
+
1133
+
1134template<typename T>
+
1135void LoRaWANNode::hton(uint8_t* buff, T val, size_t size) {
+
1136 uint8_t* buffPtr = buff;
+
1137 size_t targetSize = sizeof(T);
+
1138 if(size != 0) {
+
1139 targetSize = size;
+
1140 }
+
1141 for(size_t i = 0; i < targetSize; i++) {
+
1142 *(buffPtr++) = val >> 8*i;
+
1143 }
+
1144}
+
1145
+
1146#endif
LoRaWANNode
LoRaWAN-compatible node (class A device).
Definition LoRaWAN.h:524
LoRaWANNode::clearSession
void clearSession()
Clear an active session, so that the device will have to rejoin the network.
Definition LoRaWAN.cpp:278
LoRaWANNode::sendReceive
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
-
LoRaWANNode::setDatarate
int16_t setDatarate(uint8_t drUp)
Set uplink datarate. This should not be used when ADR is enabled.
Definition LoRaWAN.cpp:2619
-
LoRaWANNode::scheduleTransmission
void scheduleTransmission(RadioLibTime_t tUplink)
Set the exact time a transmission should occur. Note: this is the internal clock time....
Definition LoRaWAN.cpp:2752
+
LoRaWANNode::setDatarate
int16_t setDatarate(uint8_t drUp)
Set uplink datarate. This should not be used when ADR is enabled.
Definition LoRaWAN.cpp:2624
+
LoRaWANNode::scheduleTransmission
void scheduleTransmission(RadioLibTime_t tUplink)
Set the exact time a transmission should occur. Note: this is the internal clock time....
Definition LoRaWAN.cpp:2757
LoRaWANNode::scanGuard
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:853
-
LoRaWANNode::setCSMA
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:2734
-
LoRaWANNode::setDutyCycle
void setDutyCycle(bool enable=true, RadioLibTime_t msPerHour=0)
Toggle adherence to dutyCycle limits to on or off.
Definition LoRaWAN.cpp:2709
+
LoRaWANNode::setCSMA
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:2739
+
LoRaWANNode::setDutyCycle
void setDutyCycle(bool enable=true, RadioLibTime_t msPerHour=0)
Toggle adherence to dutyCycle limits to on or off.
Definition LoRaWAN.cpp:2714
LoRaWANNode::beginABP
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:614
-
LoRaWANNode::timeUntilUplink
RadioLibTime_t timeUntilUplink()
Returns time in milliseconds until next uplink is available under dutyCycle limits.
Definition LoRaWAN.cpp:3260
-
LoRaWANNode::setDeviceStatus
void setDeviceStatus(uint8_t battLevel)
Set device status.
Definition LoRaWAN.cpp:2748
-
LoRaWANNode::dutyCycleInterval
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:3250
-
LoRaWANNode::setDwellTime
void setDwellTime(bool enable, RadioLibTime_t msPerUplink=0)
Set or disable uplink dwell time limitation; enabled by default if mandatory.
Definition LoRaWAN.cpp:2721
-
LoRaWANNode::getAFCntDown
uint32_t getAFCntDown()
Returns the last application downlink's frame counter; also 0 if no application downlink occured yet.
Definition LoRaWAN.cpp:2768
-
LoRaWANNode::getLastToA
RadioLibTime_t getLastToA()
Get the Time-on-air of the last uplink message (in milliseconds).
Definition LoRaWAN.cpp:2781
+
LoRaWANNode::timeUntilUplink
RadioLibTime_t timeUntilUplink()
Returns time in milliseconds until next uplink is available under dutyCycle limits.
Definition LoRaWAN.cpp:3265
+
LoRaWANNode::setDeviceStatus
void setDeviceStatus(uint8_t battLevel)
Set device status.
Definition LoRaWAN.cpp:2753
+
LoRaWANNode::dutyCycleInterval
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:3255
+
LoRaWANNode::setDwellTime
void setDwellTime(bool enable, RadioLibTime_t msPerUplink=0)
Set or disable uplink dwell time limitation; enabled by default if mandatory.
Definition LoRaWAN.cpp:2726
+
LoRaWANNode::getAFCntDown
uint32_t getAFCntDown()
Returns the last application downlink's frame counter; also 0 if no application downlink occured yet.
Definition LoRaWAN.cpp:2773
+
LoRaWANNode::getLastToA
RadioLibTime_t getLastToA()
Get the Time-on-air of the last uplink message (in milliseconds).
Definition LoRaWAN.cpp:2786
LoRaWANNode::activateABP
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:959
LoRaWANNode::TS009
bool TS009
TS009 Protocol Specification Verification switch (allows FPort 224 and cuts off uplink payload instea...
Definition LoRaWAN.h:839
LoRaWANNode::getBufferNonces
uint8_t * getBufferNonces()
Returns the pointer to the internal buffer that holds the LW base parameters.
Definition LoRaWAN.cpp:227
LoRaWANNode::getBufferSession
uint8_t * getBufferSession()
Returns the pointer to the internal buffer that holds the LW session parameters.
Definition LoRaWAN.cpp:428
LoRaWANNode::isActivated
bool isActivated()
Whether there is an ongoing session active.
Definition LoRaWAN.cpp:1049
-
LoRaWANNode::setTxPower
int16_t setTxPower(int8_t txPower)
Configure TX power of the radio module.
Definition LoRaWAN.cpp:2652
+
LoRaWANNode::setTxPower
int16_t setTxPower(int8_t txPower)
Configure TX power of the radio module.
Definition LoRaWAN.cpp:2657
LoRaWANNode::getMacDeviceTimeAns
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:2470
-
LoRaWANNode::getNFCntDown
uint32_t getNFCntDown()
Returns the last network downlink's frame counter; also 0 if no network downlink occured yet.
Definition LoRaWAN.cpp:2764
+
LoRaWANNode::getNFCntDown
uint32_t getNFCntDown()
Returns the last network downlink's frame counter; also 0 if no network downlink occured yet.
Definition LoRaWAN.cpp:2769
LoRaWANNode::beginOTAA
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:585
-
LoRaWANNode::getMaxPayloadLen
uint8_t getMaxPayloadLen()
Returns the maximum allowed uplink payload size given the current MAC state. Most importantly,...
Definition LoRaWAN.cpp:3269
+
LoRaWANNode::getMaxPayloadLen
uint8_t getMaxPayloadLen()
Returns the maximum allowed uplink payload size given the current MAC state. Most importantly,...
Definition LoRaWAN.cpp:3274
LoRaWANNode::activateOTAA
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:869
-
LoRaWANNode::getFCntUp
uint32_t getFCntUp()
Returns the last uplink's frame counter; also 0 if no uplink occured yet.
Definition LoRaWAN.cpp:2757
+
LoRaWANNode::getFCntUp
uint32_t getFCntUp()
Returns the last uplink's frame counter; also 0 if no uplink occured yet.
Definition LoRaWAN.cpp:2762
LoRaWANNode::setBufferNonces
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
-
LoRaWANNode::setRx2Dr
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:2678
+
LoRaWANNode::setRx2Dr
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:2683
LoRaWANNode::sendMacCommandReq
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:2435
LoRaWANNode::getMacLinkCheckAns
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:2459
-
LoRaWANNode::setADR
void setADR(bool enable=true)
Toggle ADR to on or off.
Definition LoRaWAN.cpp:2705
+
LoRaWANNode::setADR
void setADR(bool enable=true)
Toggle ADR to on or off.
Definition LoRaWAN.cpp:2710
LoRaWANNode::setBufferSession
int16_t setBufferSession(const uint8_t *persistentBuffer)
Fill the internal buffer that holds the LW session parameters with a supplied buffer.
Definition LoRaWAN.cpp:460
-
LoRaWANNode::getDevAddr
uint32_t getDevAddr()
Returns the DevAddr of the device, regardless of OTAA or ABP mode.
Definition LoRaWAN.cpp:2777
-
LoRaWANNode::resetFCntDown
void resetFCntDown()
Reset the downlink frame counters (application and network) This is unsafe and can possibly allow rep...
Definition LoRaWAN.cpp:2772
+
LoRaWANNode::getDevAddr
uint32_t getDevAddr()
Returns the DevAddr of the device, regardless of OTAA or ABP mode.
Definition LoRaWAN.cpp:2782
+
LoRaWANNode::resetFCntDown
void resetFCntDown()
Reset the downlink frame counters (application and network) This is unsafe and can possibly allow rep...
Definition LoRaWAN.cpp:2777
PhysicalLayer
Provides common interface for protocols that run on LoRa/FSK modules, such as RTTY or LoRaWAN....
Definition PhysicalLayer.h:151
RadioLibTime_t
unsigned long RadioLibTime_t
Type used for durations in RadioLib.
Definition TypeDef.h:642
LoRaWANBand_t
Structure to save information about LoRaWAN band.
Definition LoRaWAN.h:369