Deploying to gh-pages from @ 27653e1cf7
🚀
This commit is contained in:
parent
92fb25ea6e
commit
f933b19a6f
1 changed files with 132 additions and 131 deletions
|
@ -810,155 +810,156 @@ $(document).ready(function(){initNavTree('_lo_ra_w_a_n_8h_source.html',''); init
|
|||
<div class="line"><a id="l01030" name="l01030"></a><span class="lineno"> 1030</span> </div>
|
||||
<div class="line"><a id="l01031" name="l01031"></a><span class="lineno"> 1031</span> <span class="comment">// get the length of a certain MAC command in a specific direction (up/down)</span></div>
|
||||
<div class="line"><a id="l01032" name="l01032"></a><span class="lineno"> 1032</span> <span class="comment">// if inclusive is true, add one for the CID byte</span></div>
|
||||
<div class="line"><a id="l01033" name="l01033"></a><span class="lineno"> 1033</span> int16_t getMacLen(uint8_t cid, uint8_t* len, uint8_t dir, <span class="keywordtype">bool</span> inclusive = <span class="keyword">false</span>);</div>
|
||||
<div class="line"><a id="l01034" name="l01034"></a><span class="lineno"> 1034</span> </div>
|
||||
<div class="line"><a id="l01035" name="l01035"></a><span class="lineno"> 1035</span> <span class="comment">// find out of a MAC command should persist destruction</span></div>
|
||||
<div class="line"><a id="l01036" name="l01036"></a><span class="lineno"> 1036</span> <span class="comment">// in uplink direction, some commands must persist if no downlink is received</span></div>
|
||||
<div class="line"><a id="l01037" name="l01037"></a><span class="lineno"> 1037</span> <span class="comment">// in downlink direction, the user-accessible MAC commands remain available for retrieval</span></div>
|
||||
<div class="line"><a id="l01038" name="l01038"></a><span class="lineno"> 1038</span> <span class="keywordtype">bool</span> isPersistentMacCommand(uint8_t cid, uint8_t dir);</div>
|
||||
<div class="line"><a id="l01039" name="l01039"></a><span class="lineno"> 1039</span> </div>
|
||||
<div class="line"><a id="l01040" name="l01040"></a><span class="lineno"> 1040</span> <span class="comment">// push MAC command to queue, done by copy</span></div>
|
||||
<div class="line"><a id="l01041" name="l01041"></a><span class="lineno"> 1041</span> int16_t pushMacCommand(uint8_t cid, <span class="keyword">const</span> uint8_t* cOcts, uint8_t* out, uint8_t* lenOut, uint8_t dir);</div>
|
||||
<div class="line"><a id="l01042" name="l01042"></a><span class="lineno"> 1042</span> </div>
|
||||
<div class="line"><a id="l01043" name="l01043"></a><span class="lineno"> 1043</span> <span class="comment">// retrieve the payload of a certain MAC command, if present in the buffer</span></div>
|
||||
<div class="line"><a id="l01044" name="l01044"></a><span class="lineno"> 1044</span> int16_t getMacPayload(uint8_t cid, <span class="keyword">const</span> uint8_t* in, uint8_t lenIn, uint8_t* out, uint8_t dir);</div>
|
||||
<div class="line"><a id="l01045" name="l01045"></a><span class="lineno"> 1045</span> </div>
|
||||
<div class="line"><a id="l01046" name="l01046"></a><span class="lineno"> 1046</span> <span class="comment">// delete a specific MAC command from queue, indicated by the command ID</span></div>
|
||||
<div class="line"><a id="l01047" name="l01047"></a><span class="lineno"> 1047</span> int16_t deleteMacCommand(uint8_t cid, uint8_t* inOut, uint8_t* lenInOut, uint8_t dir);</div>
|
||||
<div class="line"><a id="l01048" name="l01048"></a><span class="lineno"> 1048</span> </div>
|
||||
<div class="line"><a id="l01049" name="l01049"></a><span class="lineno"> 1049</span> <span class="comment">// clear a MAC buffer, possible retaining persistent MAC commands</span></div>
|
||||
<div class="line"><a id="l01050" name="l01050"></a><span class="lineno"> 1050</span> <span class="keywordtype">void</span> clearMacCommands(uint8_t* inOut, uint8_t* lenInOut, uint8_t dir);</div>
|
||||
<div class="line"><a id="l01051" name="l01051"></a><span class="lineno"> 1051</span> </div>
|
||||
<div class="line"><a id="l01052" name="l01052"></a><span class="lineno"> 1052</span> <span class="comment">// configure the common physical layer properties (frequency, sync word etc.)</span></div>
|
||||
<div class="line"><a id="l01053" name="l01053"></a><span class="lineno"> 1053</span> int16_t setPhyProperties(<span class="keyword">const</span> <a class="code hl_struct" href="struct_lo_ra_w_a_n_channel__t.html">LoRaWANChannel_t</a>* chnl, uint8_t dir, int8_t pwr, <span class="keywordtype">size_t</span> pre = 0);</div>
|
||||
<div class="line"><a id="l01054" name="l01054"></a><span class="lineno"> 1054</span> </div>
|
||||
<div class="line"><a id="l01055" name="l01055"></a><span class="lineno"> 1055</span> <span class="comment">// Performs CSMA as per LoRa Alliance Technical Recommendation 13 (TR-013).</span></div>
|
||||
<div class="line"><a id="l01056" name="l01056"></a><span class="lineno"> 1056</span> <span class="keywordtype">bool</span> csmaChannelClear(uint8_t difs, uint8_t numBackoff);</div>
|
||||
<div class="line"><a id="l01057" name="l01057"></a><span class="lineno"> 1057</span> </div>
|
||||
<div class="line"><a id="l01058" name="l01058"></a><span class="lineno"> 1058</span> <span class="comment">// perform a single CAD operation for the under SF/CH combination. Returns either busy or otherwise.</span></div>
|
||||
<div class="line"><a id="l01059" name="l01059"></a><span class="lineno"> 1059</span> <span class="keywordtype">bool</span> cadChannelClear();</div>
|
||||
<div class="line"><a id="l01060" name="l01060"></a><span class="lineno"> 1060</span> </div>
|
||||
<div class="line"><a id="l01061" name="l01061"></a><span class="lineno"> 1061</span> <span class="comment">// (dynamic bands:) get or (fixed bands:) create a complete 80-bit channel mask for current configuration</span></div>
|
||||
<div class="line"><a id="l01062" name="l01062"></a><span class="lineno"> 1062</span> <span class="keywordtype">void</span> getChannelPlanMask(uint64_t* chMaskGrp0123, uint32_t* chMaskGrp45);</div>
|
||||
<div class="line"><a id="l01063" name="l01063"></a><span class="lineno"> 1063</span> </div>
|
||||
<div class="line"><a id="l01064" name="l01064"></a><span class="lineno"> 1064</span> <span class="comment">// setup uplink/downlink channel data rates and frequencies</span></div>
|
||||
<div class="line"><a id="l01065" name="l01065"></a><span class="lineno"> 1065</span> <span class="comment">// for dynamic channels, there is a small set of predefined channels</span></div>
|
||||
<div class="line"><a id="l01066" name="l01066"></a><span class="lineno"> 1066</span> <span class="comment">// in case of JoinRequest, add some optional extra frequencies </span></div>
|
||||
<div class="line"><a id="l01067" name="l01067"></a><span class="lineno"> 1067</span> <span class="keywordtype">void</span> selectChannelPlanDyn();</div>
|
||||
<div class="line"><a id="l01068" name="l01068"></a><span class="lineno"> 1068</span> </div>
|
||||
<div class="line"><a id="l01069" name="l01069"></a><span class="lineno"> 1069</span> <span class="comment">// setup uplink/downlink channel data rates and frequencies</span></div>
|
||||
<div class="line"><a id="l01070" name="l01070"></a><span class="lineno"> 1070</span> <span class="comment">// for fixed bands, we only allow one sub-band at a time to be selected</span></div>
|
||||
<div class="line"><a id="l01071" name="l01071"></a><span class="lineno"> 1071</span> <span class="keywordtype">void</span> selectChannelPlanFix();</div>
|
||||
<div class="line"><a id="l01072" name="l01072"></a><span class="lineno"> 1072</span> </div>
|
||||
<div class="line"><a id="l01073" name="l01073"></a><span class="lineno"> 1073</span> <span class="comment">// get the number of available channels,</span></div>
|
||||
<div class="line"><a id="l01074" name="l01074"></a><span class="lineno"> 1074</span> <span class="comment">// along with a 16-bit mask indicating which channels can be used next for uplink/downlink</span></div>
|
||||
<div class="line"><a id="l01075" name="l01075"></a><span class="lineno"> 1075</span> uint8_t getAvailableChannels(uint16_t* mask);</div>
|
||||
<div class="line"><a id="l01076" name="l01076"></a><span class="lineno"> 1076</span> </div>
|
||||
<div class="line"><a id="l01077" name="l01077"></a><span class="lineno"> 1077</span> <span class="comment">// (re)set/restore which channels can be used next for uplink/downlink</span></div>
|
||||
<div class="line"><a id="l01078" name="l01078"></a><span class="lineno"> 1078</span> <span class="keywordtype">void</span> setAvailableChannels(uint16_t mask);</div>
|
||||
<div class="line"><a id="l01079" name="l01079"></a><span class="lineno"> 1079</span> </div>
|
||||
<div class="line"><a id="l01080" name="l01080"></a><span class="lineno"> 1080</span> <span class="comment">// select a set of random TX/RX channels for up- and downlink</span></div>
|
||||
<div class="line"><a id="l01081" name="l01081"></a><span class="lineno"> 1081</span> int16_t selectChannels();</div>
|
||||
<div class="line"><a id="l01082" name="l01082"></a><span class="lineno"> 1082</span> </div>
|
||||
<div class="line"><a id="l01083" name="l01083"></a><span class="lineno"> 1083</span> <span class="comment">// apply a 96-bit channel mask</span></div>
|
||||
<div class="line"><a id="l01084" name="l01084"></a><span class="lineno"> 1084</span> <span class="keywordtype">bool</span> applyChannelMask(uint64_t chMaskGrp0123, uint32_t chMaskGrp45);</div>
|
||||
<div class="line"><a id="l01085" name="l01085"></a><span class="lineno"> 1085</span> </div>
|
||||
<div class="line"><a id="l01086" name="l01086"></a><span class="lineno"> 1086</span><span class="preprocessor">#if RADIOLIB_DEBUG_PROTOCOL</span></div>
|
||||
<div class="line"><a id="l01087" name="l01087"></a><span class="lineno"> 1087</span> <span class="comment">// print the available channels through debug</span></div>
|
||||
<div class="line"><a id="l01088" name="l01088"></a><span class="lineno"> 1088</span> <span class="keywordtype">void</span> printChannels();</div>
|
||||
<div class="line"><a id="l01089" name="l01089"></a><span class="lineno"> 1089</span><span class="preprocessor">#endif</span></div>
|
||||
<div class="line"><a id="l01090" name="l01090"></a><span class="lineno"> 1090</span> </div>
|
||||
<div class="line"><a id="l01091" name="l01091"></a><span class="lineno"> 1091</span> <span class="comment">// method to generate message integrity code</span></div>
|
||||
<div class="line"><a id="l01092" name="l01092"></a><span class="lineno"> 1092</span> uint32_t generateMIC(<span class="keyword">const</span> uint8_t* msg, <span class="keywordtype">size_t</span> len, uint8_t* key);</div>
|
||||
<div class="line"><a id="l01093" name="l01093"></a><span class="lineno"> 1093</span> </div>
|
||||
<div class="line"><a id="l01094" name="l01094"></a><span class="lineno"> 1094</span> <span class="comment">// method to verify message integrity code</span></div>
|
||||
<div class="line"><a id="l01095" name="l01095"></a><span class="lineno"> 1095</span> <span class="comment">// it assumes that the MIC is the last 4 bytes of the message</span></div>
|
||||
<div class="line"><a id="l01096" name="l01096"></a><span class="lineno"> 1096</span> <span class="keywordtype">bool</span> verifyMIC(uint8_t* msg, <span class="keywordtype">size_t</span> len, uint8_t* key);</div>
|
||||
<div class="line"><a id="l01097" name="l01097"></a><span class="lineno"> 1097</span> </div>
|
||||
<div class="line"><a id="l01098" name="l01098"></a><span class="lineno"> 1098</span> <span class="comment">// find the first usable data rate for the given band</span></div>
|
||||
<div class="line"><a id="l01099" name="l01099"></a><span class="lineno"> 1099</span> int16_t findDataRate(uint8_t dr, <a class="code hl_union" href="union_data_rate__t.html">DataRate_t</a>* dataRate);</div>
|
||||
<div class="line"><a id="l01100" name="l01100"></a><span class="lineno"> 1100</span> </div>
|
||||
<div class="line"><a id="l01101" name="l01101"></a><span class="lineno"> 1101</span> <span class="comment">// function to encrypt and decrypt payloads (regular uplink/downlink)</span></div>
|
||||
<div class="line"><a id="l01102" name="l01102"></a><span class="lineno"> 1102</span> <span class="keywordtype">void</span> processAES(<span class="keyword">const</span> uint8_t* in, <span class="keywordtype">size_t</span> len, uint8_t* key, uint8_t* out, uint32_t fCnt, uint8_t dir, uint8_t ctrId, <span class="keywordtype">bool</span> counter);</div>
|
||||
<div class="line"><a id="l01103" name="l01103"></a><span class="lineno"> 1103</span> </div>
|
||||
<div class="line"><a id="l01104" name="l01104"></a><span class="lineno"> 1104</span> <span class="comment">// 16-bit checksum method that takes a uint8_t array of even length and calculates the checksum</span></div>
|
||||
<div class="line"><a id="l01105" name="l01105"></a><span class="lineno"> 1105</span> <span class="keyword">static</span> uint16_t checkSum16(<span class="keyword">const</span> uint8_t *key, uint16_t keyLen);</div>
|
||||
<div class="line"><a id="l01106" name="l01106"></a><span class="lineno"> 1106</span> </div>
|
||||
<div class="line"><a id="l01107" name="l01107"></a><span class="lineno"> 1107</span> <span class="comment">// check the integrity of a buffer using a 16-bit checksum located in the last two bytes of the buffer</span></div>
|
||||
<div class="line"><a id="l01108" name="l01108"></a><span class="lineno"> 1108</span> <span class="keyword">static</span> int16_t checkBufferCommon(<span class="keyword">const</span> uint8_t *buffer, uint16_t size);</div>
|
||||
<div class="line"><a id="l01109" name="l01109"></a><span class="lineno"> 1109</span> </div>
|
||||
<div class="line"><a id="l01110" name="l01110"></a><span class="lineno"> 1110</span> <span class="comment">// network-to-host conversion method - takes data from network packet and converts it to the host endians</span></div>
|
||||
<div class="line"><a id="l01111" name="l01111"></a><span class="lineno"> 1111</span> <span class="keyword">template</span><<span class="keyword">typename</span> T></div>
|
||||
<div class="line"><a id="l01112" name="l01112"></a><span class="lineno"> 1112</span> <span class="keyword">static</span> T ntoh(<span class="keyword">const</span> uint8_t* buff, <span class="keywordtype">size_t</span> size = 0);</div>
|
||||
<div class="line"><a id="l01113" name="l01113"></a><span class="lineno"> 1113</span> </div>
|
||||
<div class="line"><a id="l01114" name="l01114"></a><span class="lineno"> 1114</span> <span class="comment">// host-to-network conversion method - takes data from host variable and and converts it to network packet endians</span></div>
|
||||
<div class="line"><a id="l01115" name="l01115"></a><span class="lineno"> 1115</span> <span class="keyword">template</span><<span class="keyword">typename</span> T></div>
|
||||
<div class="line"><a id="l01116" name="l01116"></a><span class="lineno"> 1116</span> <span class="keyword">static</span> <span class="keywordtype">void</span> hton(uint8_t* buff, T val, <span class="keywordtype">size_t</span> size = 0);</div>
|
||||
<div class="line"><a id="l01117" name="l01117"></a><span class="lineno"> 1117</span>};</div>
|
||||
<div class="line"><a id="l01033" name="l01033"></a><span class="lineno"> 1033</span> <span class="comment">// include payload in case the MAC command has a dynamic length</span></div>
|
||||
<div class="line"><a id="l01034" name="l01034"></a><span class="lineno"> 1034</span> <span class="keyword">virtual</span> int16_t getMacLen(uint8_t cid, uint8_t* len, uint8_t dir, <span class="keywordtype">bool</span> inclusive = <span class="keyword">false</span>, uint8_t* payload = NULL);</div>
|
||||
<div class="line"><a id="l01035" name="l01035"></a><span class="lineno"> 1035</span> </div>
|
||||
<div class="line"><a id="l01036" name="l01036"></a><span class="lineno"> 1036</span> <span class="comment">// find out of a MAC command should persist destruction</span></div>
|
||||
<div class="line"><a id="l01037" name="l01037"></a><span class="lineno"> 1037</span> <span class="comment">// in uplink direction, some commands must persist if no downlink is received</span></div>
|
||||
<div class="line"><a id="l01038" name="l01038"></a><span class="lineno"> 1038</span> <span class="comment">// in downlink direction, the user-accessible MAC commands remain available for retrieval</span></div>
|
||||
<div class="line"><a id="l01039" name="l01039"></a><span class="lineno"> 1039</span> <span class="keywordtype">bool</span> isPersistentMacCommand(uint8_t cid, uint8_t dir);</div>
|
||||
<div class="line"><a id="l01040" name="l01040"></a><span class="lineno"> 1040</span> </div>
|
||||
<div class="line"><a id="l01041" name="l01041"></a><span class="lineno"> 1041</span> <span class="comment">// push MAC command to queue, done by copy</span></div>
|
||||
<div class="line"><a id="l01042" name="l01042"></a><span class="lineno"> 1042</span> int16_t pushMacCommand(uint8_t cid, <span class="keyword">const</span> uint8_t* cOcts, uint8_t* out, uint8_t* lenOut, uint8_t dir);</div>
|
||||
<div class="line"><a id="l01043" name="l01043"></a><span class="lineno"> 1043</span> </div>
|
||||
<div class="line"><a id="l01044" name="l01044"></a><span class="lineno"> 1044</span> <span class="comment">// retrieve the payload of a certain MAC command, if present in the buffer</span></div>
|
||||
<div class="line"><a id="l01045" name="l01045"></a><span class="lineno"> 1045</span> int16_t getMacPayload(uint8_t cid, <span class="keyword">const</span> uint8_t* in, uint8_t lenIn, uint8_t* out, uint8_t dir);</div>
|
||||
<div class="line"><a id="l01046" name="l01046"></a><span class="lineno"> 1046</span> </div>
|
||||
<div class="line"><a id="l01047" name="l01047"></a><span class="lineno"> 1047</span> <span class="comment">// delete a specific MAC command from queue, indicated by the command ID</span></div>
|
||||
<div class="line"><a id="l01048" name="l01048"></a><span class="lineno"> 1048</span> int16_t deleteMacCommand(uint8_t cid, uint8_t* inOut, uint8_t* lenInOut, uint8_t dir);</div>
|
||||
<div class="line"><a id="l01049" name="l01049"></a><span class="lineno"> 1049</span> </div>
|
||||
<div class="line"><a id="l01050" name="l01050"></a><span class="lineno"> 1050</span> <span class="comment">// clear a MAC buffer, possible retaining persistent MAC commands</span></div>
|
||||
<div class="line"><a id="l01051" name="l01051"></a><span class="lineno"> 1051</span> <span class="keywordtype">void</span> clearMacCommands(uint8_t* inOut, uint8_t* lenInOut, uint8_t dir);</div>
|
||||
<div class="line"><a id="l01052" name="l01052"></a><span class="lineno"> 1052</span> </div>
|
||||
<div class="line"><a id="l01053" name="l01053"></a><span class="lineno"> 1053</span> <span class="comment">// configure the common physical layer properties (frequency, sync word etc.)</span></div>
|
||||
<div class="line"><a id="l01054" name="l01054"></a><span class="lineno"> 1054</span> int16_t setPhyProperties(<span class="keyword">const</span> <a class="code hl_struct" href="struct_lo_ra_w_a_n_channel__t.html">LoRaWANChannel_t</a>* chnl, uint8_t dir, int8_t pwr, <span class="keywordtype">size_t</span> pre = 0);</div>
|
||||
<div class="line"><a id="l01055" name="l01055"></a><span class="lineno"> 1055</span> </div>
|
||||
<div class="line"><a id="l01056" name="l01056"></a><span class="lineno"> 1056</span> <span class="comment">// Performs CSMA as per LoRa Alliance Technical Recommendation 13 (TR-013).</span></div>
|
||||
<div class="line"><a id="l01057" name="l01057"></a><span class="lineno"> 1057</span> <span class="keywordtype">bool</span> csmaChannelClear(uint8_t difs, uint8_t numBackoff);</div>
|
||||
<div class="line"><a id="l01058" name="l01058"></a><span class="lineno"> 1058</span> </div>
|
||||
<div class="line"><a id="l01059" name="l01059"></a><span class="lineno"> 1059</span> <span class="comment">// perform a single CAD operation for the under SF/CH combination. Returns either busy or otherwise.</span></div>
|
||||
<div class="line"><a id="l01060" name="l01060"></a><span class="lineno"> 1060</span> <span class="keywordtype">bool</span> cadChannelClear();</div>
|
||||
<div class="line"><a id="l01061" name="l01061"></a><span class="lineno"> 1061</span> </div>
|
||||
<div class="line"><a id="l01062" name="l01062"></a><span class="lineno"> 1062</span> <span class="comment">// (dynamic bands:) get or (fixed bands:) create a complete 80-bit channel mask for current configuration</span></div>
|
||||
<div class="line"><a id="l01063" name="l01063"></a><span class="lineno"> 1063</span> <span class="keywordtype">void</span> getChannelPlanMask(uint64_t* chMaskGrp0123, uint32_t* chMaskGrp45);</div>
|
||||
<div class="line"><a id="l01064" name="l01064"></a><span class="lineno"> 1064</span> </div>
|
||||
<div class="line"><a id="l01065" name="l01065"></a><span class="lineno"> 1065</span> <span class="comment">// setup uplink/downlink channel data rates and frequencies</span></div>
|
||||
<div class="line"><a id="l01066" name="l01066"></a><span class="lineno"> 1066</span> <span class="comment">// for dynamic channels, there is a small set of predefined channels</span></div>
|
||||
<div class="line"><a id="l01067" name="l01067"></a><span class="lineno"> 1067</span> <span class="comment">// in case of JoinRequest, add some optional extra frequencies </span></div>
|
||||
<div class="line"><a id="l01068" name="l01068"></a><span class="lineno"> 1068</span> <span class="keywordtype">void</span> selectChannelPlanDyn();</div>
|
||||
<div class="line"><a id="l01069" name="l01069"></a><span class="lineno"> 1069</span> </div>
|
||||
<div class="line"><a id="l01070" name="l01070"></a><span class="lineno"> 1070</span> <span class="comment">// setup uplink/downlink channel data rates and frequencies</span></div>
|
||||
<div class="line"><a id="l01071" name="l01071"></a><span class="lineno"> 1071</span> <span class="comment">// for fixed bands, we only allow one sub-band at a time to be selected</span></div>
|
||||
<div class="line"><a id="l01072" name="l01072"></a><span class="lineno"> 1072</span> <span class="keywordtype">void</span> selectChannelPlanFix();</div>
|
||||
<div class="line"><a id="l01073" name="l01073"></a><span class="lineno"> 1073</span> </div>
|
||||
<div class="line"><a id="l01074" name="l01074"></a><span class="lineno"> 1074</span> <span class="comment">// get the number of available channels,</span></div>
|
||||
<div class="line"><a id="l01075" name="l01075"></a><span class="lineno"> 1075</span> <span class="comment">// along with a 16-bit mask indicating which channels can be used next for uplink/downlink</span></div>
|
||||
<div class="line"><a id="l01076" name="l01076"></a><span class="lineno"> 1076</span> uint8_t getAvailableChannels(uint16_t* mask);</div>
|
||||
<div class="line"><a id="l01077" name="l01077"></a><span class="lineno"> 1077</span> </div>
|
||||
<div class="line"><a id="l01078" name="l01078"></a><span class="lineno"> 1078</span> <span class="comment">// (re)set/restore which channels can be used next for uplink/downlink</span></div>
|
||||
<div class="line"><a id="l01079" name="l01079"></a><span class="lineno"> 1079</span> <span class="keywordtype">void</span> setAvailableChannels(uint16_t mask);</div>
|
||||
<div class="line"><a id="l01080" name="l01080"></a><span class="lineno"> 1080</span> </div>
|
||||
<div class="line"><a id="l01081" name="l01081"></a><span class="lineno"> 1081</span> <span class="comment">// select a set of random TX/RX channels for up- and downlink</span></div>
|
||||
<div class="line"><a id="l01082" name="l01082"></a><span class="lineno"> 1082</span> int16_t selectChannels();</div>
|
||||
<div class="line"><a id="l01083" name="l01083"></a><span class="lineno"> 1083</span> </div>
|
||||
<div class="line"><a id="l01084" name="l01084"></a><span class="lineno"> 1084</span> <span class="comment">// apply a 96-bit channel mask</span></div>
|
||||
<div class="line"><a id="l01085" name="l01085"></a><span class="lineno"> 1085</span> <span class="keywordtype">bool</span> applyChannelMask(uint64_t chMaskGrp0123, uint32_t chMaskGrp45);</div>
|
||||
<div class="line"><a id="l01086" name="l01086"></a><span class="lineno"> 1086</span> </div>
|
||||
<div class="line"><a id="l01087" name="l01087"></a><span class="lineno"> 1087</span><span class="preprocessor">#if RADIOLIB_DEBUG_PROTOCOL</span></div>
|
||||
<div class="line"><a id="l01088" name="l01088"></a><span class="lineno"> 1088</span> <span class="comment">// print the available channels through debug</span></div>
|
||||
<div class="line"><a id="l01089" name="l01089"></a><span class="lineno"> 1089</span> <span class="keywordtype">void</span> printChannels();</div>
|
||||
<div class="line"><a id="l01090" name="l01090"></a><span class="lineno"> 1090</span><span class="preprocessor">#endif</span></div>
|
||||
<div class="line"><a id="l01091" name="l01091"></a><span class="lineno"> 1091</span> </div>
|
||||
<div class="line"><a id="l01092" name="l01092"></a><span class="lineno"> 1092</span> <span class="comment">// method to generate message integrity code</span></div>
|
||||
<div class="line"><a id="l01093" name="l01093"></a><span class="lineno"> 1093</span> uint32_t generateMIC(<span class="keyword">const</span> uint8_t* msg, <span class="keywordtype">size_t</span> len, uint8_t* key);</div>
|
||||
<div class="line"><a id="l01094" name="l01094"></a><span class="lineno"> 1094</span> </div>
|
||||
<div class="line"><a id="l01095" name="l01095"></a><span class="lineno"> 1095</span> <span class="comment">// method to verify message integrity code</span></div>
|
||||
<div class="line"><a id="l01096" name="l01096"></a><span class="lineno"> 1096</span> <span class="comment">// it assumes that the MIC is the last 4 bytes of the message</span></div>
|
||||
<div class="line"><a id="l01097" name="l01097"></a><span class="lineno"> 1097</span> <span class="keywordtype">bool</span> verifyMIC(uint8_t* msg, <span class="keywordtype">size_t</span> len, uint8_t* key);</div>
|
||||
<div class="line"><a id="l01098" name="l01098"></a><span class="lineno"> 1098</span> </div>
|
||||
<div class="line"><a id="l01099" name="l01099"></a><span class="lineno"> 1099</span> <span class="comment">// find the first usable data rate for the given band</span></div>
|
||||
<div class="line"><a id="l01100" name="l01100"></a><span class="lineno"> 1100</span> int16_t findDataRate(uint8_t dr, <a class="code hl_union" href="union_data_rate__t.html">DataRate_t</a>* dataRate);</div>
|
||||
<div class="line"><a id="l01101" name="l01101"></a><span class="lineno"> 1101</span> </div>
|
||||
<div class="line"><a id="l01102" name="l01102"></a><span class="lineno"> 1102</span> <span class="comment">// function to encrypt and decrypt payloads (regular uplink/downlink)</span></div>
|
||||
<div class="line"><a id="l01103" name="l01103"></a><span class="lineno"> 1103</span> <span class="keywordtype">void</span> processAES(<span class="keyword">const</span> uint8_t* in, <span class="keywordtype">size_t</span> len, uint8_t* key, uint8_t* out, uint32_t fCnt, uint8_t dir, uint8_t ctrId, <span class="keywordtype">bool</span> counter);</div>
|
||||
<div class="line"><a id="l01104" name="l01104"></a><span class="lineno"> 1104</span> </div>
|
||||
<div class="line"><a id="l01105" name="l01105"></a><span class="lineno"> 1105</span> <span class="comment">// 16-bit checksum method that takes a uint8_t array of even length and calculates the checksum</span></div>
|
||||
<div class="line"><a id="l01106" name="l01106"></a><span class="lineno"> 1106</span> <span class="keyword">static</span> uint16_t checkSum16(<span class="keyword">const</span> uint8_t *key, uint16_t keyLen);</div>
|
||||
<div class="line"><a id="l01107" name="l01107"></a><span class="lineno"> 1107</span> </div>
|
||||
<div class="line"><a id="l01108" name="l01108"></a><span class="lineno"> 1108</span> <span class="comment">// check the integrity of a buffer using a 16-bit checksum located in the last two bytes of the buffer</span></div>
|
||||
<div class="line"><a id="l01109" name="l01109"></a><span class="lineno"> 1109</span> <span class="keyword">static</span> int16_t checkBufferCommon(<span class="keyword">const</span> uint8_t *buffer, uint16_t size);</div>
|
||||
<div class="line"><a id="l01110" name="l01110"></a><span class="lineno"> 1110</span> </div>
|
||||
<div class="line"><a id="l01111" name="l01111"></a><span class="lineno"> 1111</span> <span class="comment">// network-to-host conversion method - takes data from network packet and converts it to the host endians</span></div>
|
||||
<div class="line"><a id="l01112" name="l01112"></a><span class="lineno"> 1112</span> <span class="keyword">template</span><<span class="keyword">typename</span> T></div>
|
||||
<div class="line"><a id="l01113" name="l01113"></a><span class="lineno"> 1113</span> <span class="keyword">static</span> T ntoh(<span class="keyword">const</span> uint8_t* buff, <span class="keywordtype">size_t</span> size = 0);</div>
|
||||
<div class="line"><a id="l01114" name="l01114"></a><span class="lineno"> 1114</span> </div>
|
||||
<div class="line"><a id="l01115" name="l01115"></a><span class="lineno"> 1115</span> <span class="comment">// host-to-network conversion method - takes data from host variable and and converts it to network packet endians</span></div>
|
||||
<div class="line"><a id="l01116" name="l01116"></a><span class="lineno"> 1116</span> <span class="keyword">template</span><<span class="keyword">typename</span> T></div>
|
||||
<div class="line"><a id="l01117" name="l01117"></a><span class="lineno"> 1117</span> <span class="keyword">static</span> <span class="keywordtype">void</span> hton(uint8_t* buff, T val, <span class="keywordtype">size_t</span> size = 0);</div>
|
||||
<div class="line"><a id="l01118" name="l01118"></a><span class="lineno"> 1118</span>};</div>
|
||||
</div>
|
||||
<div class="line"><a id="l01118" name="l01118"></a><span class="lineno"> 1118</span> </div>
|
||||
<div class="line"><a id="l01119" name="l01119"></a><span class="lineno"> 1119</span><span class="keyword">template</span><<span class="keyword">typename</span> T></div>
|
||||
<div class="line"><a id="l01120" name="l01120"></a><span class="lineno"> 1120</span>T LoRaWANNode::ntoh(<span class="keyword">const</span> uint8_t* buff, <span class="keywordtype">size_t</span> size) {</div>
|
||||
<div class="line"><a id="l01121" name="l01121"></a><span class="lineno"> 1121</span> <span class="keyword">const</span> uint8_t* buffPtr = buff;</div>
|
||||
<div class="line"><a id="l01122" name="l01122"></a><span class="lineno"> 1122</span> <span class="keywordtype">size_t</span> targetSize = <span class="keyword">sizeof</span>(T);</div>
|
||||
<div class="line"><a id="l01123" name="l01123"></a><span class="lineno"> 1123</span> <span class="keywordflow">if</span>(size != 0) {</div>
|
||||
<div class="line"><a id="l01124" name="l01124"></a><span class="lineno"> 1124</span> targetSize = size;</div>
|
||||
<div class="line"><a id="l01125" name="l01125"></a><span class="lineno"> 1125</span> }</div>
|
||||
<div class="line"><a id="l01126" name="l01126"></a><span class="lineno"> 1126</span> T res = 0;</div>
|
||||
<div class="line"><a id="l01127" name="l01127"></a><span class="lineno"> 1127</span> <span class="keywordflow">for</span>(<span class="keywordtype">size_t</span> i = 0; i < targetSize; i++) {</div>
|
||||
<div class="line"><a id="l01128" name="l01128"></a><span class="lineno"> 1128</span> res |= (uint32_t)(*(buffPtr++)) << 8*i;</div>
|
||||
<div class="line"><a id="l01129" name="l01129"></a><span class="lineno"> 1129</span> }</div>
|
||||
<div class="line"><a id="l01130" name="l01130"></a><span class="lineno"> 1130</span> <span class="keywordflow">return</span>(res);</div>
|
||||
<div class="line"><a id="l01131" name="l01131"></a><span class="lineno"> 1131</span>}</div>
|
||||
<div class="line"><a id="l01132" name="l01132"></a><span class="lineno"> 1132</span> </div>
|
||||
<div class="line"><a id="l01133" name="l01133"></a><span class="lineno"> 1133</span><span class="keyword">template</span><<span class="keyword">typename</span> T></div>
|
||||
<div class="line"><a id="l01134" name="l01134"></a><span class="lineno"> 1134</span><span class="keywordtype">void</span> LoRaWANNode::hton(uint8_t* buff, T val, <span class="keywordtype">size_t</span> size) {</div>
|
||||
<div class="line"><a id="l01135" name="l01135"></a><span class="lineno"> 1135</span> uint8_t* buffPtr = buff;</div>
|
||||
<div class="line"><a id="l01136" name="l01136"></a><span class="lineno"> 1136</span> <span class="keywordtype">size_t</span> targetSize = <span class="keyword">sizeof</span>(T);</div>
|
||||
<div class="line"><a id="l01137" name="l01137"></a><span class="lineno"> 1137</span> <span class="keywordflow">if</span>(size != 0) {</div>
|
||||
<div class="line"><a id="l01138" name="l01138"></a><span class="lineno"> 1138</span> targetSize = size;</div>
|
||||
<div class="line"><a id="l01139" name="l01139"></a><span class="lineno"> 1139</span> }</div>
|
||||
<div class="line"><a id="l01140" name="l01140"></a><span class="lineno"> 1140</span> <span class="keywordflow">for</span>(<span class="keywordtype">size_t</span> i = 0; i < targetSize; i++) {</div>
|
||||
<div class="line"><a id="l01141" name="l01141"></a><span class="lineno"> 1141</span> *(buffPtr++) = val >> 8*i;</div>
|
||||
<div class="line"><a id="l01142" name="l01142"></a><span class="lineno"> 1142</span> }</div>
|
||||
<div class="line"><a id="l01119" name="l01119"></a><span class="lineno"> 1119</span> </div>
|
||||
<div class="line"><a id="l01120" name="l01120"></a><span class="lineno"> 1120</span><span class="keyword">template</span><<span class="keyword">typename</span> T></div>
|
||||
<div class="line"><a id="l01121" name="l01121"></a><span class="lineno"> 1121</span>T LoRaWANNode::ntoh(<span class="keyword">const</span> uint8_t* buff, <span class="keywordtype">size_t</span> size) {</div>
|
||||
<div class="line"><a id="l01122" name="l01122"></a><span class="lineno"> 1122</span> <span class="keyword">const</span> uint8_t* buffPtr = buff;</div>
|
||||
<div class="line"><a id="l01123" name="l01123"></a><span class="lineno"> 1123</span> <span class="keywordtype">size_t</span> targetSize = <span class="keyword">sizeof</span>(T);</div>
|
||||
<div class="line"><a id="l01124" name="l01124"></a><span class="lineno"> 1124</span> <span class="keywordflow">if</span>(size != 0) {</div>
|
||||
<div class="line"><a id="l01125" name="l01125"></a><span class="lineno"> 1125</span> targetSize = size;</div>
|
||||
<div class="line"><a id="l01126" name="l01126"></a><span class="lineno"> 1126</span> }</div>
|
||||
<div class="line"><a id="l01127" name="l01127"></a><span class="lineno"> 1127</span> T res = 0;</div>
|
||||
<div class="line"><a id="l01128" name="l01128"></a><span class="lineno"> 1128</span> <span class="keywordflow">for</span>(<span class="keywordtype">size_t</span> i = 0; i < targetSize; i++) {</div>
|
||||
<div class="line"><a id="l01129" name="l01129"></a><span class="lineno"> 1129</span> res |= (uint32_t)(*(buffPtr++)) << 8*i;</div>
|
||||
<div class="line"><a id="l01130" name="l01130"></a><span class="lineno"> 1130</span> }</div>
|
||||
<div class="line"><a id="l01131" name="l01131"></a><span class="lineno"> 1131</span> <span class="keywordflow">return</span>(res);</div>
|
||||
<div class="line"><a id="l01132" name="l01132"></a><span class="lineno"> 1132</span>}</div>
|
||||
<div class="line"><a id="l01133" name="l01133"></a><span class="lineno"> 1133</span> </div>
|
||||
<div class="line"><a id="l01134" name="l01134"></a><span class="lineno"> 1134</span><span class="keyword">template</span><<span class="keyword">typename</span> T></div>
|
||||
<div class="line"><a id="l01135" name="l01135"></a><span class="lineno"> 1135</span><span class="keywordtype">void</span> LoRaWANNode::hton(uint8_t* buff, T val, <span class="keywordtype">size_t</span> size) {</div>
|
||||
<div class="line"><a id="l01136" name="l01136"></a><span class="lineno"> 1136</span> uint8_t* buffPtr = buff;</div>
|
||||
<div class="line"><a id="l01137" name="l01137"></a><span class="lineno"> 1137</span> <span class="keywordtype">size_t</span> targetSize = <span class="keyword">sizeof</span>(T);</div>
|
||||
<div class="line"><a id="l01138" name="l01138"></a><span class="lineno"> 1138</span> <span class="keywordflow">if</span>(size != 0) {</div>
|
||||
<div class="line"><a id="l01139" name="l01139"></a><span class="lineno"> 1139</span> targetSize = size;</div>
|
||||
<div class="line"><a id="l01140" name="l01140"></a><span class="lineno"> 1140</span> }</div>
|
||||
<div class="line"><a id="l01141" name="l01141"></a><span class="lineno"> 1141</span> <span class="keywordflow">for</span>(<span class="keywordtype">size_t</span> i = 0; i < targetSize; i++) {</div>
|
||||
<div class="line"><a id="l01142" name="l01142"></a><span class="lineno"> 1142</span> *(buffPtr++) = val >> 8*i;</div>
|
||||
<div class="line"><a id="l01143" name="l01143"></a><span class="lineno"> 1143</span> }</div>
|
||||
<div class="line"><a id="l01144" name="l01144"></a><span class="lineno"> 1144</span> </div>
|
||||
<div class="line"><a id="l01145" name="l01145"></a><span class="lineno"> 1145</span><span class="preprocessor">#endif</span></div>
|
||||
<div class="line"><a id="l01144" name="l01144"></a><span class="lineno"> 1144</span>}</div>
|
||||
<div class="line"><a id="l01145" name="l01145"></a><span class="lineno"> 1145</span> </div>
|
||||
<div class="line"><a id="l01146" name="l01146"></a><span class="lineno"> 1146</span><span class="preprocessor">#endif</span></div>
|
||||
<div class="ttc" id="aclass_lo_ra_w_a_n_node_html"><div class="ttname"><a href="class_lo_ra_w_a_n_node.html">LoRaWANNode</a></div><div class="ttdoc">LoRaWAN-compatible node (class A device).</div><div class="ttdef"><b>Definition</b> LoRaWAN.h:524</div></div>
|
||||
<div class="ttc" id="aclass_lo_ra_w_a_n_node_html_a0feeaed200d8f94ad94c3ed49f404847"><div class="ttname"><a href="class_lo_ra_w_a_n_node.html#a0feeaed200d8f94ad94c3ed49f404847">LoRaWANNode::clearSession</a></div><div class="ttdeci">void clearSession()</div><div class="ttdoc">Clear an active session, so that the device will have to rejoin the network.</div><div class="ttdef"><b>Definition</b> LoRaWAN.cpp:278</div></div>
|
||||
<div class="ttc" id="aclass_lo_ra_w_a_n_node_html_a11c2fbe631063da69355f8d74f4bf3b8"><div class="ttname"><a href="class_lo_ra_w_a_n_node.html#a11c2fbe631063da69355f8d74f4bf3b8">LoRaWANNode::sendReceive</a></div><div class="ttdeci">virtual int16_t sendReceive(const char *strUp, uint8_t fPort, bool isConfirmed=false, LoRaWANEvent_t *eventUp=NULL, LoRaWANEvent_t *eventDown=NULL)</div><div class="ttdoc">Send a message to the server and wait for a downlink during Rx1 and/or Rx2 window.</div><div class="ttdef"><b>Definition</b> LoRaWAN.cpp:43</div></div>
|
||||
<div class="ttc" id="aclass_lo_ra_w_a_n_node_html_a14e8a8a098df28ff5ee294f235500499"><div class="ttname"><a href="class_lo_ra_w_a_n_node.html#a14e8a8a098df28ff5ee294f235500499">LoRaWANNode::setDatarate</a></div><div class="ttdeci">int16_t setDatarate(uint8_t drUp)</div><div class="ttdoc">Set uplink datarate. This should not be used when ADR is enabled.</div><div class="ttdef"><b>Definition</b> LoRaWAN.cpp:2619</div></div>
|
||||
<div class="ttc" id="aclass_lo_ra_w_a_n_node_html_a16c7ae2edfe324e11498b13aa042665f"><div class="ttname"><a href="class_lo_ra_w_a_n_node.html#a16c7ae2edfe324e11498b13aa042665f">LoRaWANNode::scheduleTransmission</a></div><div class="ttdeci">void scheduleTransmission(RadioLibTime_t tUplink)</div><div class="ttdoc">Set the exact time a transmission should occur. Note: this is the internal clock time....</div><div class="ttdef"><b>Definition</b> LoRaWAN.cpp:2752</div></div>
|
||||
<div class="ttc" id="aclass_lo_ra_w_a_n_node_html_a14e8a8a098df28ff5ee294f235500499"><div class="ttname"><a href="class_lo_ra_w_a_n_node.html#a14e8a8a098df28ff5ee294f235500499">LoRaWANNode::setDatarate</a></div><div class="ttdeci">int16_t setDatarate(uint8_t drUp)</div><div class="ttdoc">Set uplink datarate. This should not be used when ADR is enabled.</div><div class="ttdef"><b>Definition</b> LoRaWAN.cpp:2624</div></div>
|
||||
<div class="ttc" id="aclass_lo_ra_w_a_n_node_html_a16c7ae2edfe324e11498b13aa042665f"><div class="ttname"><a href="class_lo_ra_w_a_n_node.html#a16c7ae2edfe324e11498b13aa042665f">LoRaWANNode::scheduleTransmission</a></div><div class="ttdeci">void scheduleTransmission(RadioLibTime_t tUplink)</div><div class="ttdoc">Set the exact time a transmission should occur. Note: this is the internal clock time....</div><div class="ttdef"><b>Definition</b> LoRaWAN.cpp:2757</div></div>
|
||||
<div class="ttc" id="aclass_lo_ra_w_a_n_node_html_a2176aa3d546e6b00e870a7e1e310c403"><div class="ttname"><a href="class_lo_ra_w_a_n_node.html#a2176aa3d546e6b00e870a7e1e310c403">LoRaWANNode::scanGuard</a></div><div class="ttdeci">RadioLibTime_t scanGuard</div><div class="ttdoc">Rx window padding in milliseconds according to the spec, the Rx window must be at least enough time t...</div><div class="ttdef"><b>Definition</b> LoRaWAN.h:853</div></div>
|
||||
<div class="ttc" id="aclass_lo_ra_w_a_n_node_html_a2d9a53560ebfbaf006eefd9761424d80"><div class="ttname"><a href="class_lo_ra_w_a_n_node.html#a2d9a53560ebfbaf006eefd9761424d80">LoRaWANNode::setCSMA</a></div><div class="ttdeci">void setCSMA(bool csmaEnabled, uint8_t maxChanges=4, uint8_t backoffMax=0, uint8_t difsSlots=2)</div><div class="ttdoc">Configures CSMA for LoRaWAN as per TR013, LoRa Alliance.</div><div class="ttdef"><b>Definition</b> LoRaWAN.cpp:2734</div></div>
|
||||
<div class="ttc" id="aclass_lo_ra_w_a_n_node_html_a3d4bbd6d382496838954ab4ac1168b77"><div class="ttname"><a href="class_lo_ra_w_a_n_node.html#a3d4bbd6d382496838954ab4ac1168b77">LoRaWANNode::setDutyCycle</a></div><div class="ttdeci">void setDutyCycle(bool enable=true, RadioLibTime_t msPerHour=0)</div><div class="ttdoc">Toggle adherence to dutyCycle limits to on or off.</div><div class="ttdef"><b>Definition</b> LoRaWAN.cpp:2709</div></div>
|
||||
<div class="ttc" id="aclass_lo_ra_w_a_n_node_html_a2d9a53560ebfbaf006eefd9761424d80"><div class="ttname"><a href="class_lo_ra_w_a_n_node.html#a2d9a53560ebfbaf006eefd9761424d80">LoRaWANNode::setCSMA</a></div><div class="ttdeci">void setCSMA(bool csmaEnabled, uint8_t maxChanges=4, uint8_t backoffMax=0, uint8_t difsSlots=2)</div><div class="ttdoc">Configures CSMA for LoRaWAN as per TR013, LoRa Alliance.</div><div class="ttdef"><b>Definition</b> LoRaWAN.cpp:2739</div></div>
|
||||
<div class="ttc" id="aclass_lo_ra_w_a_n_node_html_a3d4bbd6d382496838954ab4ac1168b77"><div class="ttname"><a href="class_lo_ra_w_a_n_node.html#a3d4bbd6d382496838954ab4ac1168b77">LoRaWANNode::setDutyCycle</a></div><div class="ttdeci">void setDutyCycle(bool enable=true, RadioLibTime_t msPerHour=0)</div><div class="ttdoc">Toggle adherence to dutyCycle limits to on or off.</div><div class="ttdef"><b>Definition</b> LoRaWAN.cpp:2714</div></div>
|
||||
<div class="ttc" id="aclass_lo_ra_w_a_n_node_html_a43b259fd8804ef8d9d4922962e9ecae5"><div class="ttname"><a href="class_lo_ra_w_a_n_node.html#a43b259fd8804ef8d9d4922962e9ecae5">LoRaWANNode::beginABP</a></div><div class="ttdeci">int16_t beginABP(uint32_t addr, const uint8_t *fNwkSIntKey, const uint8_t *sNwkSIntKey, const uint8_t *nwkSEncKey, const uint8_t *appSKey)</div><div class="ttdoc">Set the device credentials and activation configuration.</div><div class="ttdef"><b>Definition</b> LoRaWAN.cpp:614</div></div>
|
||||
<div class="ttc" id="aclass_lo_ra_w_a_n_node_html_a49e690c14858b46692e4ce9aa5a2566a"><div class="ttname"><a href="class_lo_ra_w_a_n_node.html#a49e690c14858b46692e4ce9aa5a2566a">LoRaWANNode::timeUntilUplink</a></div><div class="ttdeci">RadioLibTime_t timeUntilUplink()</div><div class="ttdoc">Returns time in milliseconds until next uplink is available under dutyCycle limits.</div><div class="ttdef"><b>Definition</b> LoRaWAN.cpp:3260</div></div>
|
||||
<div class="ttc" id="aclass_lo_ra_w_a_n_node_html_a5449e301634dff1838a1b024b4067034"><div class="ttname"><a href="class_lo_ra_w_a_n_node.html#a5449e301634dff1838a1b024b4067034">LoRaWANNode::setDeviceStatus</a></div><div class="ttdeci">void setDeviceStatus(uint8_t battLevel)</div><div class="ttdoc">Set device status.</div><div class="ttdef"><b>Definition</b> LoRaWAN.cpp:2748</div></div>
|
||||
<div class="ttc" id="aclass_lo_ra_w_a_n_node_html_a5bb50904544f331806fd744ab5b99efa"><div class="ttname"><a href="class_lo_ra_w_a_n_node.html#a5bb50904544f331806fd744ab5b99efa">LoRaWANNode::dutyCycleInterval</a></div><div class="ttdeci">RadioLibTime_t dutyCycleInterval(RadioLibTime_t msPerHour, RadioLibTime_t airtime)</div><div class="ttdoc">Calculate the minimum interval to adhere to a certain dutyCycle. This interval is based on the ToA of...</div><div class="ttdef"><b>Definition</b> LoRaWAN.cpp:3250</div></div>
|
||||
<div class="ttc" id="aclass_lo_ra_w_a_n_node_html_a62bfe68f6fe63c2e408dccbff6a34a4f"><div class="ttname"><a href="class_lo_ra_w_a_n_node.html#a62bfe68f6fe63c2e408dccbff6a34a4f">LoRaWANNode::setDwellTime</a></div><div class="ttdeci">void setDwellTime(bool enable, RadioLibTime_t msPerUplink=0)</div><div class="ttdoc">Set or disable uplink dwell time limitation; enabled by default if mandatory.</div><div class="ttdef"><b>Definition</b> LoRaWAN.cpp:2721</div></div>
|
||||
<div class="ttc" id="aclass_lo_ra_w_a_n_node_html_a6785265f3311ff6bf296f82429c96701"><div class="ttname"><a href="class_lo_ra_w_a_n_node.html#a6785265f3311ff6bf296f82429c96701">LoRaWANNode::getAFCntDown</a></div><div class="ttdeci">uint32_t getAFCntDown()</div><div class="ttdoc">Returns the last application downlink's frame counter; also 0 if no application downlink occured yet.</div><div class="ttdef"><b>Definition</b> LoRaWAN.cpp:2768</div></div>
|
||||
<div class="ttc" id="aclass_lo_ra_w_a_n_node_html_a683b02b63867bb7de5df45c94d190305"><div class="ttname"><a href="class_lo_ra_w_a_n_node.html#a683b02b63867bb7de5df45c94d190305">LoRaWANNode::getLastToA</a></div><div class="ttdeci">RadioLibTime_t getLastToA()</div><div class="ttdoc">Get the Time-on-air of the last uplink message (in milliseconds).</div><div class="ttdef"><b>Definition</b> LoRaWAN.cpp:2781</div></div>
|
||||
<div class="ttc" id="aclass_lo_ra_w_a_n_node_html_a49e690c14858b46692e4ce9aa5a2566a"><div class="ttname"><a href="class_lo_ra_w_a_n_node.html#a49e690c14858b46692e4ce9aa5a2566a">LoRaWANNode::timeUntilUplink</a></div><div class="ttdeci">RadioLibTime_t timeUntilUplink()</div><div class="ttdoc">Returns time in milliseconds until next uplink is available under dutyCycle limits.</div><div class="ttdef"><b>Definition</b> LoRaWAN.cpp:3265</div></div>
|
||||
<div class="ttc" id="aclass_lo_ra_w_a_n_node_html_a5449e301634dff1838a1b024b4067034"><div class="ttname"><a href="class_lo_ra_w_a_n_node.html#a5449e301634dff1838a1b024b4067034">LoRaWANNode::setDeviceStatus</a></div><div class="ttdeci">void setDeviceStatus(uint8_t battLevel)</div><div class="ttdoc">Set device status.</div><div class="ttdef"><b>Definition</b> LoRaWAN.cpp:2753</div></div>
|
||||
<div class="ttc" id="aclass_lo_ra_w_a_n_node_html_a5bb50904544f331806fd744ab5b99efa"><div class="ttname"><a href="class_lo_ra_w_a_n_node.html#a5bb50904544f331806fd744ab5b99efa">LoRaWANNode::dutyCycleInterval</a></div><div class="ttdeci">RadioLibTime_t dutyCycleInterval(RadioLibTime_t msPerHour, RadioLibTime_t airtime)</div><div class="ttdoc">Calculate the minimum interval to adhere to a certain dutyCycle. This interval is based on the ToA of...</div><div class="ttdef"><b>Definition</b> LoRaWAN.cpp:3255</div></div>
|
||||
<div class="ttc" id="aclass_lo_ra_w_a_n_node_html_a62bfe68f6fe63c2e408dccbff6a34a4f"><div class="ttname"><a href="class_lo_ra_w_a_n_node.html#a62bfe68f6fe63c2e408dccbff6a34a4f">LoRaWANNode::setDwellTime</a></div><div class="ttdeci">void setDwellTime(bool enable, RadioLibTime_t msPerUplink=0)</div><div class="ttdoc">Set or disable uplink dwell time limitation; enabled by default if mandatory.</div><div class="ttdef"><b>Definition</b> LoRaWAN.cpp:2726</div></div>
|
||||
<div class="ttc" id="aclass_lo_ra_w_a_n_node_html_a6785265f3311ff6bf296f82429c96701"><div class="ttname"><a href="class_lo_ra_w_a_n_node.html#a6785265f3311ff6bf296f82429c96701">LoRaWANNode::getAFCntDown</a></div><div class="ttdeci">uint32_t getAFCntDown()</div><div class="ttdoc">Returns the last application downlink's frame counter; also 0 if no application downlink occured yet.</div><div class="ttdef"><b>Definition</b> LoRaWAN.cpp:2773</div></div>
|
||||
<div class="ttc" id="aclass_lo_ra_w_a_n_node_html_a683b02b63867bb7de5df45c94d190305"><div class="ttname"><a href="class_lo_ra_w_a_n_node.html#a683b02b63867bb7de5df45c94d190305">LoRaWANNode::getLastToA</a></div><div class="ttdeci">RadioLibTime_t getLastToA()</div><div class="ttdoc">Get the Time-on-air of the last uplink message (in milliseconds).</div><div class="ttdef"><b>Definition</b> LoRaWAN.cpp:2786</div></div>
|
||||
<div class="ttc" id="aclass_lo_ra_w_a_n_node_html_a77483c51548e48a5dff4b707f7770e86"><div class="ttname"><a href="class_lo_ra_w_a_n_node.html#a77483c51548e48a5dff4b707f7770e86">LoRaWANNode::activateABP</a></div><div class="ttdeci">virtual int16_t activateABP(uint8_t initialDr=RADIOLIB_LORAWAN_DATA_RATE_UNUSED)</div><div class="ttdoc">Join network by restoring ABP session or performing over-the-air activation. In this procedure,...</div><div class="ttdef"><b>Definition</b> LoRaWAN.cpp:959</div></div>
|
||||
<div class="ttc" id="aclass_lo_ra_w_a_n_node_html_a8226f4d0329d15da9ffc706e5781403a"><div class="ttname"><a href="class_lo_ra_w_a_n_node.html#a8226f4d0329d15da9ffc706e5781403a">LoRaWANNode::TS009</a></div><div class="ttdeci">bool TS009</div><div class="ttdoc">TS009 Protocol Specification Verification switch (allows FPort 224 and cuts off uplink payload instea...</div><div class="ttdef"><b>Definition</b> LoRaWAN.h:839</div></div>
|
||||
<div class="ttc" id="aclass_lo_ra_w_a_n_node_html_a84004883006b4a498d4899874952445b"><div class="ttname"><a href="class_lo_ra_w_a_n_node.html#a84004883006b4a498d4899874952445b">LoRaWANNode::getBufferNonces</a></div><div class="ttdeci">uint8_t * getBufferNonces()</div><div class="ttdoc">Returns the pointer to the internal buffer that holds the LW base parameters.</div><div class="ttdef"><b>Definition</b> LoRaWAN.cpp:227</div></div>
|
||||
<div class="ttc" id="aclass_lo_ra_w_a_n_node_html_a90369a4f2c4da11527872a7bbbf9ab06"><div class="ttname"><a href="class_lo_ra_w_a_n_node.html#a90369a4f2c4da11527872a7bbbf9ab06">LoRaWANNode::getBufferSession</a></div><div class="ttdeci">uint8_t * getBufferSession()</div><div class="ttdoc">Returns the pointer to the internal buffer that holds the LW session parameters.</div><div class="ttdef"><b>Definition</b> LoRaWAN.cpp:428</div></div>
|
||||
<div class="ttc" id="aclass_lo_ra_w_a_n_node_html_a9a44677a1ef7db1216bc482139d6be8d"><div class="ttname"><a href="class_lo_ra_w_a_n_node.html#a9a44677a1ef7db1216bc482139d6be8d">LoRaWANNode::isActivated</a></div><div class="ttdeci">bool isActivated()</div><div class="ttdoc">Whether there is an ongoing session active.</div><div class="ttdef"><b>Definition</b> LoRaWAN.cpp:1049</div></div>
|
||||
<div class="ttc" id="aclass_lo_ra_w_a_n_node_html_a9af613f7d923e7bdcfdbd020132c6d4b"><div class="ttname"><a href="class_lo_ra_w_a_n_node.html#a9af613f7d923e7bdcfdbd020132c6d4b">LoRaWANNode::setTxPower</a></div><div class="ttdeci">int16_t setTxPower(int8_t txPower)</div><div class="ttdoc">Configure TX power of the radio module.</div><div class="ttdef"><b>Definition</b> LoRaWAN.cpp:2652</div></div>
|
||||
<div class="ttc" id="aclass_lo_ra_w_a_n_node_html_a9af613f7d923e7bdcfdbd020132c6d4b"><div class="ttname"><a href="class_lo_ra_w_a_n_node.html#a9af613f7d923e7bdcfdbd020132c6d4b">LoRaWANNode::setTxPower</a></div><div class="ttdeci">int16_t setTxPower(int8_t txPower)</div><div class="ttdoc">Configure TX power of the radio module.</div><div class="ttdef"><b>Definition</b> LoRaWAN.cpp:2657</div></div>
|
||||
<div class="ttc" id="aclass_lo_ra_w_a_n_node_html_a9e6e1ce4296364606ff8b10fb5f971de"><div class="ttname"><a href="class_lo_ra_w_a_n_node.html#a9e6e1ce4296364606ff8b10fb5f971de">LoRaWANNode::getMacDeviceTimeAns</a></div><div class="ttdeci">int16_t getMacDeviceTimeAns(uint32_t *gpsEpoch, uint8_t *fraction, bool returnUnix=true)</div><div class="ttdoc">Returns the network time after requesting a DeviceTime MAC command. Returns 'true' if a network respo...</div><div class="ttdef"><b>Definition</b> LoRaWAN.cpp:2470</div></div>
|
||||
<div class="ttc" id="aclass_lo_ra_w_a_n_node_html_aa7fabaa6efe9978c3674b1ab187446a1"><div class="ttname"><a href="class_lo_ra_w_a_n_node.html#aa7fabaa6efe9978c3674b1ab187446a1">LoRaWANNode::getNFCntDown</a></div><div class="ttdeci">uint32_t getNFCntDown()</div><div class="ttdoc">Returns the last network downlink's frame counter; also 0 if no network downlink occured yet.</div><div class="ttdef"><b>Definition</b> LoRaWAN.cpp:2764</div></div>
|
||||
<div class="ttc" id="aclass_lo_ra_w_a_n_node_html_aa7fabaa6efe9978c3674b1ab187446a1"><div class="ttname"><a href="class_lo_ra_w_a_n_node.html#aa7fabaa6efe9978c3674b1ab187446a1">LoRaWANNode::getNFCntDown</a></div><div class="ttdeci">uint32_t getNFCntDown()</div><div class="ttdoc">Returns the last network downlink's frame counter; also 0 if no network downlink occured yet.</div><div class="ttdef"><b>Definition</b> LoRaWAN.cpp:2769</div></div>
|
||||
<div class="ttc" id="aclass_lo_ra_w_a_n_node_html_ab2df20a240812f184786dda5ace171ef"><div class="ttname"><a href="class_lo_ra_w_a_n_node.html#ab2df20a240812f184786dda5ace171ef">LoRaWANNode::beginOTAA</a></div><div class="ttdeci">int16_t beginOTAA(uint64_t joinEUI, uint64_t devEUI, const uint8_t *nwkKey, const uint8_t *appKey)</div><div class="ttdoc">Set the device credentials and activation configuration.</div><div class="ttdef"><b>Definition</b> LoRaWAN.cpp:585</div></div>
|
||||
<div class="ttc" id="aclass_lo_ra_w_a_n_node_html_ab723160aa317cd84550d0da3a0f52811"><div class="ttname"><a href="class_lo_ra_w_a_n_node.html#ab723160aa317cd84550d0da3a0f52811">LoRaWANNode::getMaxPayloadLen</a></div><div class="ttdeci">uint8_t getMaxPayloadLen()</div><div class="ttdoc">Returns the maximum allowed uplink payload size given the current MAC state. Most importantly,...</div><div class="ttdef"><b>Definition</b> LoRaWAN.cpp:3269</div></div>
|
||||
<div class="ttc" id="aclass_lo_ra_w_a_n_node_html_ab723160aa317cd84550d0da3a0f52811"><div class="ttname"><a href="class_lo_ra_w_a_n_node.html#ab723160aa317cd84550d0da3a0f52811">LoRaWANNode::getMaxPayloadLen</a></div><div class="ttdeci">uint8_t getMaxPayloadLen()</div><div class="ttdoc">Returns the maximum allowed uplink payload size given the current MAC state. Most importantly,...</div><div class="ttdef"><b>Definition</b> LoRaWAN.cpp:3274</div></div>
|
||||
<div class="ttc" id="aclass_lo_ra_w_a_n_node_html_abd9e976eec64a3bd1ddf3331f2bc93cd"><div class="ttname"><a href="class_lo_ra_w_a_n_node.html#abd9e976eec64a3bd1ddf3331f2bc93cd">LoRaWANNode::activateOTAA</a></div><div class="ttdeci">virtual int16_t activateOTAA(uint8_t initialDr=RADIOLIB_LORAWAN_DATA_RATE_UNUSED, LoRaWANJoinEvent_t *joinEvent=NULL)</div><div class="ttdoc">Join network by restoring OTAA session or performing over-the-air activation. By this procedure,...</div><div class="ttdef"><b>Definition</b> LoRaWAN.cpp:869</div></div>
|
||||
<div class="ttc" id="aclass_lo_ra_w_a_n_node_html_ad3217975ef9959ff83ce79dd80b0d777"><div class="ttname"><a href="class_lo_ra_w_a_n_node.html#ad3217975ef9959ff83ce79dd80b0d777">LoRaWANNode::getFCntUp</a></div><div class="ttdeci">uint32_t getFCntUp()</div><div class="ttdoc">Returns the last uplink's frame counter; also 0 if no uplink occured yet.</div><div class="ttdef"><b>Definition</b> LoRaWAN.cpp:2757</div></div>
|
||||
<div class="ttc" id="aclass_lo_ra_w_a_n_node_html_ad3217975ef9959ff83ce79dd80b0d777"><div class="ttname"><a href="class_lo_ra_w_a_n_node.html#ad3217975ef9959ff83ce79dd80b0d777">LoRaWANNode::getFCntUp</a></div><div class="ttdeci">uint32_t getFCntUp()</div><div class="ttdoc">Returns the last uplink's frame counter; also 0 if no uplink occured yet.</div><div class="ttdef"><b>Definition</b> LoRaWAN.cpp:2762</div></div>
|
||||
<div class="ttc" id="aclass_lo_ra_w_a_n_node_html_ad99e2fa4738648a6f3efe72ff785def2"><div class="ttname"><a href="class_lo_ra_w_a_n_node.html#ad99e2fa4738648a6f3efe72ff785def2">LoRaWANNode::setBufferNonces</a></div><div class="ttdeci">int16_t setBufferNonces(const uint8_t *persistentBuffer)</div><div class="ttdoc">Fill the internal buffer that holds the LW base parameters with a supplied buffer.</div><div class="ttdef"><b>Definition</b> LoRaWAN.cpp:242</div></div>
|
||||
<div class="ttc" id="aclass_lo_ra_w_a_n_node_html_addfd8ac3d0bfe5a273e9ba10e51f8025"><div class="ttname"><a href="class_lo_ra_w_a_n_node.html#addfd8ac3d0bfe5a273e9ba10e51f8025">LoRaWANNode::setRx2Dr</a></div><div class="ttdeci">int16_t setRx2Dr(uint8_t dr)</div><div class="ttdoc">Configure the Rx2 datarate for ABP mode. This should not be needed for LoRaWAN 1.1 as it is configure...</div><div class="ttdef"><b>Definition</b> LoRaWAN.cpp:2678</div></div>
|
||||
<div class="ttc" id="aclass_lo_ra_w_a_n_node_html_addfd8ac3d0bfe5a273e9ba10e51f8025"><div class="ttname"><a href="class_lo_ra_w_a_n_node.html#addfd8ac3d0bfe5a273e9ba10e51f8025">LoRaWANNode::setRx2Dr</a></div><div class="ttdeci">int16_t setRx2Dr(uint8_t dr)</div><div class="ttdoc">Configure the Rx2 datarate for ABP mode. This should not be needed for LoRaWAN 1.1 as it is configure...</div><div class="ttdef"><b>Definition</b> LoRaWAN.cpp:2683</div></div>
|
||||
<div class="ttc" id="aclass_lo_ra_w_a_n_node_html_adef05650cf4eb92042ca5e2688c1e164"><div class="ttname"><a href="class_lo_ra_w_a_n_node.html#adef05650cf4eb92042ca5e2688c1e164">LoRaWANNode::sendMacCommandReq</a></div><div class="ttdeci">int16_t sendMacCommandReq(uint8_t cid)</div><div class="ttdoc">Add a MAC command to the uplink queue. Only LinkCheck and DeviceTime are available to the user....</div><div class="ttdef"><b>Definition</b> LoRaWAN.cpp:2435</div></div>
|
||||
<div class="ttc" id="aclass_lo_ra_w_a_n_node_html_adf038f331c1dc954dafc2668e7a31ca0"><div class="ttname"><a href="class_lo_ra_w_a_n_node.html#adf038f331c1dc954dafc2668e7a31ca0">LoRaWANNode::getMacLinkCheckAns</a></div><div class="ttdeci">int16_t getMacLinkCheckAns(uint8_t *margin, uint8_t *gwCnt)</div><div class="ttdoc">Returns the quality of connectivity after requesting a LinkCheck MAC command. Returns 'true' if a net...</div><div class="ttdef"><b>Definition</b> LoRaWAN.cpp:2459</div></div>
|
||||
<div class="ttc" id="aclass_lo_ra_w_a_n_node_html_ae222275f807f472083ea6100c23c75ff"><div class="ttname"><a href="class_lo_ra_w_a_n_node.html#ae222275f807f472083ea6100c23c75ff">LoRaWANNode::setADR</a></div><div class="ttdeci">void setADR(bool enable=true)</div><div class="ttdoc">Toggle ADR to on or off.</div><div class="ttdef"><b>Definition</b> LoRaWAN.cpp:2705</div></div>
|
||||
<div class="ttc" id="aclass_lo_ra_w_a_n_node_html_ae222275f807f472083ea6100c23c75ff"><div class="ttname"><a href="class_lo_ra_w_a_n_node.html#ae222275f807f472083ea6100c23c75ff">LoRaWANNode::setADR</a></div><div class="ttdeci">void setADR(bool enable=true)</div><div class="ttdoc">Toggle ADR to on or off.</div><div class="ttdef"><b>Definition</b> LoRaWAN.cpp:2710</div></div>
|
||||
<div class="ttc" id="aclass_lo_ra_w_a_n_node_html_aedeb50c9ccb81e8092233d34e039cfa4"><div class="ttname"><a href="class_lo_ra_w_a_n_node.html#aedeb50c9ccb81e8092233d34e039cfa4">LoRaWANNode::setBufferSession</a></div><div class="ttdeci">int16_t setBufferSession(const uint8_t *persistentBuffer)</div><div class="ttdoc">Fill the internal buffer that holds the LW session parameters with a supplied buffer.</div><div class="ttdef"><b>Definition</b> LoRaWAN.cpp:460</div></div>
|
||||
<div class="ttc" id="aclass_lo_ra_w_a_n_node_html_aee0590cc9123ceac4c822eabed3150c6"><div class="ttname"><a href="class_lo_ra_w_a_n_node.html#aee0590cc9123ceac4c822eabed3150c6">LoRaWANNode::getDevAddr</a></div><div class="ttdeci">uint32_t getDevAddr()</div><div class="ttdoc">Returns the DevAddr of the device, regardless of OTAA or ABP mode.</div><div class="ttdef"><b>Definition</b> LoRaWAN.cpp:2777</div></div>
|
||||
<div class="ttc" id="aclass_lo_ra_w_a_n_node_html_af4b3d07cd9bf4178d627204bae18b648"><div class="ttname"><a href="class_lo_ra_w_a_n_node.html#af4b3d07cd9bf4178d627204bae18b648">LoRaWANNode::resetFCntDown</a></div><div class="ttdeci">void resetFCntDown()</div><div class="ttdoc">Reset the downlink frame counters (application and network) This is unsafe and can possibly allow rep...</div><div class="ttdef"><b>Definition</b> LoRaWAN.cpp:2772</div></div>
|
||||
<div class="ttc" id="aclass_lo_ra_w_a_n_node_html_aee0590cc9123ceac4c822eabed3150c6"><div class="ttname"><a href="class_lo_ra_w_a_n_node.html#aee0590cc9123ceac4c822eabed3150c6">LoRaWANNode::getDevAddr</a></div><div class="ttdeci">uint32_t getDevAddr()</div><div class="ttdoc">Returns the DevAddr of the device, regardless of OTAA or ABP mode.</div><div class="ttdef"><b>Definition</b> LoRaWAN.cpp:2782</div></div>
|
||||
<div class="ttc" id="aclass_lo_ra_w_a_n_node_html_af4b3d07cd9bf4178d627204bae18b648"><div class="ttname"><a href="class_lo_ra_w_a_n_node.html#af4b3d07cd9bf4178d627204bae18b648">LoRaWANNode::resetFCntDown</a></div><div class="ttdeci">void resetFCntDown()</div><div class="ttdoc">Reset the downlink frame counters (application and network) This is unsafe and can possibly allow rep...</div><div class="ttdef"><b>Definition</b> LoRaWAN.cpp:2777</div></div>
|
||||
<div class="ttc" id="aclass_physical_layer_html"><div class="ttname"><a href="class_physical_layer.html">PhysicalLayer</a></div><div class="ttdoc">Provides common interface for protocols that run on LoRa/FSK modules, such as RTTY or LoRaWAN....</div><div class="ttdef"><b>Definition</b> PhysicalLayer.h:151</div></div>
|
||||
<div class="ttc" id="agroup__typedefs_html_ga210f31dd2bff7fb80563275648a5bbbd"><div class="ttname"><a href="group__typedefs.html#ga210f31dd2bff7fb80563275648a5bbbd">RadioLibTime_t</a></div><div class="ttdeci">unsigned long RadioLibTime_t</div><div class="ttdoc">Type used for durations in RadioLib.</div><div class="ttdef"><b>Definition</b> TypeDef.h:642</div></div>
|
||||
<div class="ttc" id="astruct_lo_ra_w_a_n_band__t_html"><div class="ttname"><a href="struct_lo_ra_w_a_n_band__t.html">LoRaWANBand_t</a></div><div class="ttdoc">Structure to save information about LoRaWAN band.</div><div class="ttdef"><b>Definition</b> LoRaWAN.h:369</div></div>
|
||||
|
|
Loading…
Add table
Reference in a new issue