From 6f7147980a38e5fce319a51f634f28a0b2c36503 Mon Sep 17 00:00:00 2001
From: jgromes <jgromes@users.noreply.github.com>
Date: Sat, 18 Jan 2025 17:18:58 +0000
Subject: [PATCH] =?UTF-8?q?Deploying=20to=20gh-pages=20from=20=20@=2064f0f?=
 =?UTF-8?q?5028bc6e8eba07071f8d182bb0d54f027fb=20=F0=9F=9A=80?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

---
 _cryptography_8h_source.html          |  4 +--
 _hellschreiber_8h_source.html         | 17 +++++------
 _lo_ra_w_a_n_8h_source.html           | 42 +++++++++++++--------------
 _morse_8h_source.html                 | 13 ++++-----
 _print_8h_source.html                 |  4 +--
 class_radio_lib_a_e_s128-members.html |  2 +-
 class_radio_lib_a_e_s128.html         | 12 ++++----
 class_radio_lib_a_e_s128.js           |  2 +-
 functions_func_v.html                 |  2 +-
 functions_v.html                      |  2 +-
 navtreeindex2.js                      |  2 +-
 search/all_10.js                      |  2 +-
 search/all_13.js                      |  2 +-
 search/functions_12.js                |  2 +-
 search/functions_f.js                 |  2 +-
 15 files changed, 52 insertions(+), 58 deletions(-)

diff --git a/_cryptography_8h_source.html b/_cryptography_8h_source.html
index 468225ab..556c1e12 100644
--- a/_cryptography_8h_source.html
+++ b/_cryptography_8h_source.html
@@ -201,7 +201,7 @@ $(document).ready(function(){initNavTree('_cryptography_8h_source.html',''); ini
 <div class="line"><a id="l00129" name="l00129"></a><span class="lineno">  129</span> </div>
 <div class="line"><a id="l00136" name="l00136"></a><span class="lineno">  136</span>    <span class="keywordtype">void</span> <a class="code hl_function" href="class_radio_lib_a_e_s128.html#a1330c5668c22e5f0b65681cf875f5fe3">generateCMAC</a>(<span class="keyword">const</span> uint8_t* in, <span class="keywordtype">size_t</span> len, uint8_t* cmac);</div>
 <div class="line"><a id="l00137" name="l00137"></a><span class="lineno">  137</span> </div>
-<div class="line"><a id="l00145" name="l00145"></a><span class="lineno">  145</span>    <span class="keywordtype">bool</span> <a class="code hl_function" href="class_radio_lib_a_e_s128.html#a235daad00bd77a406d7fc187bcb2192e">verifyCMAC</a>(uint8_t* in, <span class="keywordtype">size_t</span> len, <span class="keyword">const</span> uint8_t* cmac);</div>
+<div class="line"><a id="l00145" name="l00145"></a><span class="lineno">  145</span>    <span class="keywordtype">bool</span> <a class="code hl_function" href="class_radio_lib_a_e_s128.html#a793795f82f27abd34409a5c0e0e7c455">verifyCMAC</a>(<span class="keyword">const</span> uint8_t* in, <span class="keywordtype">size_t</span> len, <span class="keyword">const</span> uint8_t* cmac);</div>
 <div class="line"><a id="l00146" name="l00146"></a><span class="lineno">  146</span>  </div>
 <div class="line"><a id="l00147" name="l00147"></a><span class="lineno">  147</span>  <span class="keyword">private</span>:</div>
 <div class="line"><a id="l00148" name="l00148"></a><span class="lineno">  148</span>    uint8_t* keyPtr = <span class="keyword">nullptr</span>;</div>
@@ -235,9 +235,9 @@ $(document).ready(function(){initNavTree('_cryptography_8h_source.html',''); ini
 <div class="ttc" id="aclass_radio_lib_a_e_s128_html"><div class="ttname"><a href="class_radio_lib_a_e_s128.html">RadioLibAES128</a></div><div class="ttdoc">Class to perform AES encryption, decryption and CMAC.</div><div class="ttdef"><b>Definition</b> Cryptography.h:97</div></div>
 <div class="ttc" id="aclass_radio_lib_a_e_s128_html_a11f816221d1c06432ff80f2678ef46fe"><div class="ttname"><a href="class_radio_lib_a_e_s128.html#a11f816221d1c06432ff80f2678ef46fe">RadioLibAES128::RadioLibAES128</a></div><div class="ttdeci">RadioLibAES128()</div><div class="ttdoc">Default constructor.</div><div class="ttdef"><b>Definition</b> Cryptography.cpp:5</div></div>
 <div class="ttc" id="aclass_radio_lib_a_e_s128_html_a1330c5668c22e5f0b65681cf875f5fe3"><div class="ttname"><a href="class_radio_lib_a_e_s128.html#a1330c5668c22e5f0b65681cf875f5fe3">RadioLibAES128::generateCMAC</a></div><div class="ttdeci">void generateCMAC(const uint8_t *in, size_t len, uint8_t *cmac)</div><div class="ttdoc">Calculate message authentication code according to RFC4493.</div><div class="ttdef"><b>Definition</b> Cryptography.cpp:46</div></div>
-<div class="ttc" id="aclass_radio_lib_a_e_s128_html_a235daad00bd77a406d7fc187bcb2192e"><div class="ttname"><a href="class_radio_lib_a_e_s128.html#a235daad00bd77a406d7fc187bcb2192e">RadioLibAES128::verifyCMAC</a></div><div class="ttdeci">bool verifyCMAC(uint8_t *in, size_t len, const uint8_t *cmac)</div><div class="ttdoc">Verify the received CMAC. This just calculates the CMAC again and compares the results.</div><div class="ttdef"><b>Definition</b> Cryptography.cpp:85</div></div>
 <div class="ttc" id="aclass_radio_lib_a_e_s128_html_a2f688dbdf2b0506c077ca4501e40e22e"><div class="ttname"><a href="class_radio_lib_a_e_s128.html#a2f688dbdf2b0506c077ca4501e40e22e">RadioLibAES128::init</a></div><div class="ttdeci">void init(uint8_t *key)</div><div class="ttdoc">Initialize the AES.</div><div class="ttdef"><b>Definition</b> Cryptography.cpp:9</div></div>
 <div class="ttc" id="aclass_radio_lib_a_e_s128_html_a6d05efec834b1ae7c5e46f9ef80f1464"><div class="ttname"><a href="class_radio_lib_a_e_s128.html#a6d05efec834b1ae7c5e46f9ef80f1464">RadioLibAES128::encryptECB</a></div><div class="ttdeci">size_t encryptECB(const uint8_t *in, size_t len, uint8_t *out)</div><div class="ttdoc">Perform ECB-type AES encryption.</div><div class="ttdef"><b>Definition</b> Cryptography.cpp:14</div></div>
+<div class="ttc" id="aclass_radio_lib_a_e_s128_html_a793795f82f27abd34409a5c0e0e7c455"><div class="ttname"><a href="class_radio_lib_a_e_s128.html#a793795f82f27abd34409a5c0e0e7c455">RadioLibAES128::verifyCMAC</a></div><div class="ttdeci">bool verifyCMAC(const uint8_t *in, size_t len, const uint8_t *cmac)</div><div class="ttdoc">Verify the received CMAC. This just calculates the CMAC again and compares the results.</div><div class="ttdef"><b>Definition</b> Cryptography.cpp:85</div></div>
 <div class="ttc" id="aclass_radio_lib_a_e_s128_html_ace646a86f293a791008212ac8bcbc01c"><div class="ttname"><a href="class_radio_lib_a_e_s128.html#ace646a86f293a791008212ac8bcbc01c">RadioLibAES128::decryptECB</a></div><div class="ttdeci">size_t decryptECB(const uint8_t *in, size_t len, uint8_t *out)</div><div class="ttdoc">Perform ECB-type AES decryption.</div><div class="ttdef"><b>Definition</b> Cryptography.cpp:30</div></div>
 </div><!-- fragment --></div><!-- contents -->
 </div><!-- doc-content -->
diff --git a/_hellschreiber_8h_source.html b/_hellschreiber_8h_source.html
index a0db8bb3..f09850e0 100644
--- a/_hellschreiber_8h_source.html
+++ b/_hellschreiber_8h_source.html
@@ -214,17 +214,14 @@ $(document).ready(function(){initNavTree('_hellschreiber_8h_source.html',''); in
 <div class="line"><a id="l00144" name="l00144"></a><span class="lineno">  144</span>    uint32_t pixelDuration = 0;</div>
 <div class="line"><a id="l00145" name="l00145"></a><span class="lineno">  145</span>    <span class="keywordtype">bool</span> invert = <span class="keyword">false</span>;</div>
 <div class="line"><a id="l00146" name="l00146"></a><span class="lineno">  146</span> </div>
-<div class="line"><a id="l00147" name="l00147"></a><span class="lineno">  147</span>    <span class="keywordtype">size_t</span> printNumber(<span class="keywordtype">unsigned</span> <span class="keywordtype">long</span>, uint8_t) <span class="keyword">override</span>;</div>
-<div class="line"><a id="l00148" name="l00148"></a><span class="lineno">  148</span>    <span class="keywordtype">size_t</span> printFloat(<span class="keywordtype">double</span>, uint8_t) <span class="keyword">override</span>;</div>
-<div class="line"><a id="l00149" name="l00149"></a><span class="lineno">  149</span> </div>
-<div class="line"><a id="l00150" name="l00150"></a><span class="lineno">  150</span>    int16_t transmitDirect(uint32_t freq = 0, uint32_t freqHz = 0);</div>
-<div class="line"><a id="l00151" name="l00151"></a><span class="lineno">  151</span>    int16_t standby();</div>
-<div class="line"><a id="l00152" name="l00152"></a><span class="lineno">  152</span>};</div>
+<div class="line"><a id="l00147" name="l00147"></a><span class="lineno">  147</span>    int16_t transmitDirect(uint32_t freq = 0, uint32_t freqHz = 0);</div>
+<div class="line"><a id="l00148" name="l00148"></a><span class="lineno">  148</span>    int16_t standby();</div>
+<div class="line"><a id="l00149" name="l00149"></a><span class="lineno">  149</span>};</div>
 </div>
-<div class="line"><a id="l00153" name="l00153"></a><span class="lineno">  153</span> </div>
-<div class="line"><a id="l00154" name="l00154"></a><span class="lineno">  154</span><span class="preprocessor">#endif</span></div>
-<div class="line"><a id="l00155" name="l00155"></a><span class="lineno">  155</span> </div>
-<div class="line"><a id="l00156" name="l00156"></a><span class="lineno">  156</span><span class="preprocessor">#endif</span></div>
+<div class="line"><a id="l00150" name="l00150"></a><span class="lineno">  150</span> </div>
+<div class="line"><a id="l00151" name="l00151"></a><span class="lineno">  151</span><span class="preprocessor">#endif</span></div>
+<div class="line"><a id="l00152" name="l00152"></a><span class="lineno">  152</span> </div>
+<div class="line"><a id="l00153" name="l00153"></a><span class="lineno">  153</span><span class="preprocessor">#endif</span></div>
 <div class="ttc" id="aclass_a_f_s_k_client_html"><div class="ttname"><a href="class_a_f_s_k_client.html">AFSKClient</a></div><div class="ttdoc">Client for audio-based transmissions. Requires Arduino tone() function, and a module capable of direc...</div><div class="ttdef"><b>Definition</b> AFSK.h:16</div></div>
 <div class="ttc" id="aclass_hell_client_html"><div class="ttname"><a href="class_hell_client.html">HellClient</a></div><div class="ttdoc">Client for Hellschreiber transmissions.</div><div class="ttdef"><b>Definition</b> Hellschreiber.h:90</div></div>
 <div class="ttc" id="aclass_hell_client_html_a225775fe87f9ed3c3a04142697641242"><div class="ttname"><a href="class_hell_client.html#a225775fe87f9ed3c3a04142697641242">HellClient::begin</a></div><div class="ttdeci">int16_t begin(float base, float rate=122.5)</div><div class="ttdoc">Initialization method.</div><div class="ttdef"><b>Definition</b> Hellschreiber.cpp:21</div></div>
diff --git a/_lo_ra_w_a_n_8h_source.html b/_lo_ra_w_a_n_8h_source.html
index 0f3dc701..d6e04275 100644
--- a/_lo_ra_w_a_n_8h_source.html
+++ b/_lo_ra_w_a_n_8h_source.html
@@ -927,38 +927,38 @@ $(document).ready(function(){initNavTree('_lo_ra_w_a_n_8h_source.html',''); init
 <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:2620</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:2753</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:2735</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:2710</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:3261</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:2749</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:3251</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:2722</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:2769</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:2782</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_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_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:2653</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:2471</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:2765</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:3270</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:2758</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_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_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:2679</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:2436</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:2460</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:2706</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:2778</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:2773</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>
diff --git a/_morse_8h_source.html b/_morse_8h_source.html
index 68f56e89..c37cf888 100644
--- a/_morse_8h_source.html
+++ b/_morse_8h_source.html
@@ -231,15 +231,12 @@ $(document).ready(function(){initNavTree('_morse_8h_source.html',''); initResiza
 <div class="line"><a id="l00172" name="l00172"></a><span class="lineno">  172</span>    uint32_t pauseCounter = 0;</div>
 <div class="line"><a id="l00173" name="l00173"></a><span class="lineno">  173</span>    <a class="code hl_typedef" href="group__typedefs.html#ga210f31dd2bff7fb80563275648a5bbbd">RadioLibTime_t</a> pauseStart = 0;</div>
 <div class="line"><a id="l00174" name="l00174"></a><span class="lineno">  174</span> </div>
-<div class="line"><a id="l00175" name="l00175"></a><span class="lineno">  175</span>    <span class="keywordtype">size_t</span> printNumber(<span class="keywordtype">unsigned</span> <span class="keywordtype">long</span>, uint8_t) <span class="keyword">override</span>;</div>
-<div class="line"><a id="l00176" name="l00176"></a><span class="lineno">  176</span>    <span class="keywordtype">size_t</span> printFloat(<span class="keywordtype">double</span>, uint8_t) <span class="keyword">override</span>;</div>
-<div class="line"><a id="l00177" name="l00177"></a><span class="lineno">  177</span> </div>
-<div class="line"><a id="l00178" name="l00178"></a><span class="lineno">  178</span>    int16_t transmitDirect(uint32_t freq = 0, uint32_t freqHz = 0);</div>
-<div class="line"><a id="l00179" name="l00179"></a><span class="lineno">  179</span>    int16_t standby();</div>
-<div class="line"><a id="l00180" name="l00180"></a><span class="lineno">  180</span>};</div>
+<div class="line"><a id="l00175" name="l00175"></a><span class="lineno">  175</span>    int16_t transmitDirect(uint32_t freq = 0, uint32_t freqHz = 0);</div>
+<div class="line"><a id="l00176" name="l00176"></a><span class="lineno">  176</span>    int16_t standby();</div>
+<div class="line"><a id="l00177" name="l00177"></a><span class="lineno">  177</span>};</div>
 </div>
-<div class="line"><a id="l00181" name="l00181"></a><span class="lineno">  181</span> </div>
-<div class="line"><a id="l00182" name="l00182"></a><span class="lineno">  182</span><span class="preprocessor">#endif</span></div>
+<div class="line"><a id="l00178" name="l00178"></a><span class="lineno">  178</span> </div>
+<div class="line"><a id="l00179" name="l00179"></a><span class="lineno">  179</span><span class="preprocessor">#endif</span></div>
 <div class="ttc" id="aclass_a_f_s_k_client_html"><div class="ttname"><a href="class_a_f_s_k_client.html">AFSKClient</a></div><div class="ttdoc">Client for audio-based transmissions. Requires Arduino tone() function, and a module capable of direc...</div><div class="ttdef"><b>Definition</b> AFSK.h:16</div></div>
 <div class="ttc" id="aclass_morse_client_html"><div class="ttname"><a href="class_morse_client.html">MorseClient</a></div><div class="ttdoc">Client for Morse Code communication. The public interface is the same as Arduino Serial.</div><div class="ttdef"><b>Definition</b> Morse.h:94</div></div>
 <div class="ttc" id="aclass_morse_client_html_a3c718208786f8fe55f30eee990ec28e3"><div class="ttname"><a href="class_morse_client.html#a3c718208786f8fe55f30eee990ec28e3">MorseClient::startSignal</a></div><div class="ttdeci">size_t startSignal()</div><div class="ttdoc">Send start signal.</div><div class="ttdef"><b>Definition</b> Morse.cpp:41</div></div>
diff --git a/_print_8h_source.html b/_print_8h_source.html
index 0a1f594b..f4f85326 100644
--- a/_print_8h_source.html
+++ b/_print_8h_source.html
@@ -159,8 +159,8 @@ $(document).ready(function(){initNavTree('_print_8h_source.html',''); initResiza
 <div class="line"><a id="l00062" name="l00062"></a><span class="lineno">   62</span>    uint8_t encoding = RADIOLIB_ASCII_EXTENDED;</div>
 <div class="line"><a id="l00063" name="l00063"></a><span class="lineno">   63</span>    <span class="keyword">const</span> <span class="keywordtype">char</span>* lineFeed = <span class="stringliteral">&quot;\r\n&quot;</span>;</div>
 <div class="line"><a id="l00064" name="l00064"></a><span class="lineno">   64</span> </div>
-<div class="line"><a id="l00065" name="l00065"></a><span class="lineno">   65</span>    <span class="keyword">virtual</span> <span class="keywordtype">size_t</span> printNumber(<span class="keywordtype">unsigned</span> <span class="keywordtype">long</span>, uint8_t);</div>
-<div class="line"><a id="l00066" name="l00066"></a><span class="lineno">   66</span>    <span class="keyword">virtual</span> <span class="keywordtype">size_t</span> printFloat(<span class="keywordtype">double</span>, uint8_t);</div>
+<div class="line"><a id="l00065" name="l00065"></a><span class="lineno">   65</span>    <span class="keywordtype">size_t</span> printNumber(<span class="keywordtype">unsigned</span> <span class="keywordtype">long</span>, uint8_t);</div>
+<div class="line"><a id="l00066" name="l00066"></a><span class="lineno">   66</span>    <span class="keywordtype">size_t</span> printFloat(<span class="keywordtype">double</span>, uint8_t);</div>
 <div class="line"><a id="l00067" name="l00067"></a><span class="lineno">   67</span> </div>
 <div class="line"><a id="l00068" name="l00068"></a><span class="lineno">   68</span>};</div>
 </div>
diff --git a/class_radio_lib_a_e_s128-members.html b/class_radio_lib_a_e_s128-members.html
index 878267de..3b722276 100644
--- a/class_radio_lib_a_e_s128-members.html
+++ b/class_radio_lib_a_e_s128-members.html
@@ -101,7 +101,7 @@ $(document).ready(function(){initNavTree('class_radio_lib_a_e_s128.html',''); in
   <tr class="even"><td class="entry"><a class="el" href="class_radio_lib_a_e_s128.html#a1330c5668c22e5f0b65681cf875f5fe3">generateCMAC</a>(const uint8_t *in, size_t len, uint8_t *cmac)</td><td class="entry"><a class="el" href="class_radio_lib_a_e_s128.html">RadioLibAES128</a></td><td class="entry"></td></tr>
   <tr class="odd"><td class="entry"><a class="el" href="class_radio_lib_a_e_s128.html#a2f688dbdf2b0506c077ca4501e40e22e">init</a>(uint8_t *key)</td><td class="entry"><a class="el" href="class_radio_lib_a_e_s128.html">RadioLibAES128</a></td><td class="entry"></td></tr>
   <tr class="even"><td class="entry"><a class="el" href="class_radio_lib_a_e_s128.html#a11f816221d1c06432ff80f2678ef46fe">RadioLibAES128</a>()</td><td class="entry"><a class="el" href="class_radio_lib_a_e_s128.html">RadioLibAES128</a></td><td class="entry"></td></tr>
-  <tr class="odd"><td class="entry"><a class="el" href="class_radio_lib_a_e_s128.html#a235daad00bd77a406d7fc187bcb2192e">verifyCMAC</a>(uint8_t *in, size_t len, const uint8_t *cmac)</td><td class="entry"><a class="el" href="class_radio_lib_a_e_s128.html">RadioLibAES128</a></td><td class="entry"></td></tr>
+  <tr class="odd"><td class="entry"><a class="el" href="class_radio_lib_a_e_s128.html#a793795f82f27abd34409a5c0e0e7c455">verifyCMAC</a>(const uint8_t *in, size_t len, const uint8_t *cmac)</td><td class="entry"><a class="el" href="class_radio_lib_a_e_s128.html">RadioLibAES128</a></td><td class="entry"></td></tr>
 </table></div><!-- contents -->
 </div><!-- doc-content -->
 <!-- start footer part -->
diff --git a/class_radio_lib_a_e_s128.html b/class_radio_lib_a_e_s128.html
index b688218c..fb972810 100644
--- a/class_radio_lib_a_e_s128.html
+++ b/class_radio_lib_a_e_s128.html
@@ -120,9 +120,9 @@ Public Member Functions</h2></td></tr>
 <tr class="memitem:a1330c5668c22e5f0b65681cf875f5fe3" id="r_a1330c5668c22e5f0b65681cf875f5fe3"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_radio_lib_a_e_s128.html#a1330c5668c22e5f0b65681cf875f5fe3">generateCMAC</a> (const uint8_t *in, size_t len, uint8_t *cmac)</td></tr>
 <tr class="memdesc:a1330c5668c22e5f0b65681cf875f5fe3"><td class="mdescLeft">&#160;</td><td class="mdescRight">Calculate message authentication code according to RFC4493.  <br /></td></tr>
 <tr class="separator:a1330c5668c22e5f0b65681cf875f5fe3"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a235daad00bd77a406d7fc187bcb2192e" id="r_a235daad00bd77a406d7fc187bcb2192e"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_radio_lib_a_e_s128.html#a235daad00bd77a406d7fc187bcb2192e">verifyCMAC</a> (uint8_t *in, size_t len, const uint8_t *cmac)</td></tr>
-<tr class="memdesc:a235daad00bd77a406d7fc187bcb2192e"><td class="mdescLeft">&#160;</td><td class="mdescRight">Verify the received CMAC. This just calculates the CMAC again and compares the results.  <br /></td></tr>
-<tr class="separator:a235daad00bd77a406d7fc187bcb2192e"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a793795f82f27abd34409a5c0e0e7c455" id="r_a793795f82f27abd34409a5c0e0e7c455"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_radio_lib_a_e_s128.html#a793795f82f27abd34409a5c0e0e7c455">verifyCMAC</a> (const uint8_t *in, size_t len, const uint8_t *cmac)</td></tr>
+<tr class="memdesc:a793795f82f27abd34409a5c0e0e7c455"><td class="mdescLeft">&#160;</td><td class="mdescRight">Verify the received CMAC. This just calculates the CMAC again and compares the results.  <br /></td></tr>
+<tr class="separator:a793795f82f27abd34409a5c0e0e7c455"><td class="memSeparator" colspan="2">&#160;</td></tr>
 </table>
 <a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
 <div class="textblock"><p>Class to perform AES encryption, decryption and CMAC. </p>
@@ -288,8 +288,8 @@ Public Member Functions</h2></td></tr>
 
 </div>
 </div>
-<a id="a235daad00bd77a406d7fc187bcb2192e" name="a235daad00bd77a406d7fc187bcb2192e"></a>
-<h2 class="memtitle"><span class="permalink"><a href="#a235daad00bd77a406d7fc187bcb2192e">&#9670;&#160;</a></span>verifyCMAC()</h2>
+<a id="a793795f82f27abd34409a5c0e0e7c455" name="a793795f82f27abd34409a5c0e0e7c455"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a793795f82f27abd34409a5c0e0e7c455">&#9670;&#160;</a></span>verifyCMAC()</h2>
 
 <div class="memitem">
 <div class="memproto">
@@ -297,7 +297,7 @@ Public Member Functions</h2></td></tr>
         <tr>
           <td class="memname">bool RadioLibAES128::verifyCMAC </td>
           <td>(</td>
-          <td class="paramtype">uint8_t *&#160;</td>
+          <td class="paramtype">const uint8_t *&#160;</td>
           <td class="paramname"><em>in</em>, </td>
         </tr>
         <tr>
diff --git a/class_radio_lib_a_e_s128.js b/class_radio_lib_a_e_s128.js
index b1a4747e..93c54be0 100644
--- a/class_radio_lib_a_e_s128.js
+++ b/class_radio_lib_a_e_s128.js
@@ -5,5 +5,5 @@ var class_radio_lib_a_e_s128 =
     [ "encryptECB", "class_radio_lib_a_e_s128.html#a6d05efec834b1ae7c5e46f9ef80f1464", null ],
     [ "generateCMAC", "class_radio_lib_a_e_s128.html#a1330c5668c22e5f0b65681cf875f5fe3", null ],
     [ "init", "class_radio_lib_a_e_s128.html#a2f688dbdf2b0506c077ca4501e40e22e", null ],
-    [ "verifyCMAC", "class_radio_lib_a_e_s128.html#a235daad00bd77a406d7fc187bcb2192e", null ]
+    [ "verifyCMAC", "class_radio_lib_a_e_s128.html#a793795f82f27abd34409a5c0e0e7c455", null ]
 ];
\ No newline at end of file
diff --git a/functions_func_v.html b/functions_func_v.html
index 9710366d..474c5f78 100644
--- a/functions_func_v.html
+++ b/functions_func_v.html
@@ -94,7 +94,7 @@ $(document).ready(function(){initNavTree('functions_func_v.html',''); initResiza
 
 <h3><a id="index_v" name="index_v"></a>- v -</h3><ul>
 <li>variablePacketLengthMode()&#160;:&#160;<a class="el" href="class_c_c1101.html#a50b9e73d2d82a4cd03841f465825b73f">CC1101</a>, <a class="el" href="class_l_r11x0.html#adcd56cf63e91449b6cd03782a69c3451">LR11x0</a>, <a class="el" href="class_r_f69.html#af434c67aabe02258ee6696a59973617b">RF69</a>, <a class="el" href="class_si443x.html#abcca8ab4a1229efb5e7c6b09e564a48a">Si443x</a>, <a class="el" href="class_s_x126x.html#a92c157efe751b4ae73d22ff44115285d">SX126x</a>, <a class="el" href="class_s_x127x.html#a1d39296b40e7282ef44d8f376065e92c">SX127x</a></li>
-<li>verifyCMAC()&#160;:&#160;<a class="el" href="class_radio_lib_a_e_s128.html#a235daad00bd77a406d7fc187bcb2192e">RadioLibAES128</a></li>
+<li>verifyCMAC()&#160;:&#160;<a class="el" href="class_radio_lib_a_e_s128.html#a793795f82f27abd34409a5c0e0e7c455">RadioLibAES128</a></li>
 </ul>
 </div><!-- contents -->
 </div><!-- doc-content -->
diff --git a/functions_v.html b/functions_v.html
index 57c3feda..9ab77adc 100644
--- a/functions_v.html
+++ b/functions_v.html
@@ -95,7 +95,7 @@ $(document).ready(function(){initNavTree('functions_v.html',''); initResizable()
 <h3><a id="index_v" name="index_v"></a>- v -</h3><ul>
 <li>values&#160;:&#160;<a class="el" href="struct_module_1_1_rf_switch_mode__t.html#a694fecae172f868d8ca400319920ed66">Module::RfSwitchMode_t</a></li>
 <li>variablePacketLengthMode()&#160;:&#160;<a class="el" href="class_c_c1101.html#a50b9e73d2d82a4cd03841f465825b73f">CC1101</a>, <a class="el" href="class_l_r11x0.html#adcd56cf63e91449b6cd03782a69c3451">LR11x0</a>, <a class="el" href="class_r_f69.html#af434c67aabe02258ee6696a59973617b">RF69</a>, <a class="el" href="class_si443x.html#abcca8ab4a1229efb5e7c6b09e564a48a">Si443x</a>, <a class="el" href="class_s_x126x.html#a92c157efe751b4ae73d22ff44115285d">SX126x</a>, <a class="el" href="class_s_x127x.html#a1d39296b40e7282ef44d8f376065e92c">SX127x</a></li>
-<li>verifyCMAC()&#160;:&#160;<a class="el" href="class_radio_lib_a_e_s128.html#a235daad00bd77a406d7fc187bcb2192e">RadioLibAES128</a></li>
+<li>verifyCMAC()&#160;:&#160;<a class="el" href="class_radio_lib_a_e_s128.html#a793795f82f27abd34409a5c0e0e7c455">RadioLibAES128</a></li>
 <li>visCode&#160;:&#160;<a class="el" href="struct_s_s_t_v_mode__t.html#a4033deed34e2703ab7f9a95cc32e5820">SSTVMode_t</a></li>
 </ul>
 </div><!-- contents -->
diff --git a/navtreeindex2.js b/navtreeindex2.js
index da8f052c..c5093380 100644
--- a/navtreeindex2.js
+++ b/navtreeindex2.js
@@ -161,9 +161,9 @@ var NAVTREEINDEX2 =
 "class_radio_lib_a_e_s128.html":[3,0,46],
 "class_radio_lib_a_e_s128.html#a11f816221d1c06432ff80f2678ef46fe":[3,0,46,0],
 "class_radio_lib_a_e_s128.html#a1330c5668c22e5f0b65681cf875f5fe3":[3,0,46,3],
-"class_radio_lib_a_e_s128.html#a235daad00bd77a406d7fc187bcb2192e":[3,0,46,5],
 "class_radio_lib_a_e_s128.html#a2f688dbdf2b0506c077ca4501e40e22e":[3,0,46,4],
 "class_radio_lib_a_e_s128.html#a6d05efec834b1ae7c5e46f9ef80f1464":[3,0,46,2],
+"class_radio_lib_a_e_s128.html#a793795f82f27abd34409a5c0e0e7c455":[3,0,46,5],
 "class_radio_lib_a_e_s128.html#ace646a86f293a791008212ac8bcbc01c":[3,0,46,1],
 "class_radio_lib_b_c_h.html":[3,0,47],
 "class_radio_lib_b_c_h.html#a39d55c0292e4c9337ee0672cd5241118":[3,0,47,0],
diff --git a/search/all_10.js b/search/all_10.js
index 1eaabd76..91aa95b5 100644
--- a/search/all_10.js
+++ b/search/all_10.js
@@ -131,7 +131,7 @@ var searchData=
   ['spireadregisterburst_128',['SPIreadRegisterBurst',['../class_module.html#ac993ab8e2ea0f5aa93339d1f6ffb54ee',1,'Module']]],
   ['spireadstream_129',['spireadstream',['../class_module.html#adacceb57ecfecb09150c135b2b44436f',1,'Module::SPIreadStream(uint16_t cmd, uint8_t *data, size_t numBytes, bool waitForGpio=true, bool verify=true)'],['../class_module.html#ad4af5fc5fd60e0aadb8a69606e511946',1,'Module::SPIreadStream(const uint8_t *cmd, uint8_t cmdLen, uint8_t *data, size_t numBytes, bool waitForGpio=true, bool verify=true)']]],
   ['spisetregvalue_130',['SPIsetRegValue',['../class_module.html#aed95fba2ee72d7a2a21f98dd63ae4ad1',1,'Module']]],
-  ['spitransfer_131',['spitransfer',['../class_module.html#a2bfbddb1ff044f8b1865aac89246445d',1,'Module::SPItransfer()'],['../class_radio_lib_hal.html#aebcaaf0cefdaaf5b572d4261e472ac8a',1,'RadioLibHal::spiTransfer()'],['../class_pi_hal.html#a96a0f36efd8e23893add3242bdef8be4',1,'PiHal::spiTransfer()'],['../class_pico_hal.html#acc961bf30af621d0dfec2b3f7e25cf5c',1,'PicoHal::spiTransfer()']]],
+  ['spitransfer_131',['spitransfer',['../class_radio_lib_hal.html#aebcaaf0cefdaaf5b572d4261e472ac8a',1,'RadioLibHal::spiTransfer()'],['../class_pi_hal.html#a96a0f36efd8e23893add3242bdef8be4',1,'PiHal::spiTransfer()'],['../class_pico_hal.html#acc961bf30af621d0dfec2b3f7e25cf5c',1,'PicoHal::spiTransfer()'],['../class_module.html#a2bfbddb1ff044f8b1865aac89246445d',1,'Module::SPItransfer(uint16_t cmd, uint32_t reg, const uint8_t *dataOut, uint8_t *dataIn, size_t numBytes)']]],
   ['spitransferstream_132',['SPItransferStream',['../class_module.html#a2b3f89fc63a82eb5fd55a7ddd72318fe',1,'Module']]],
   ['spiwriteregister_133',['SPIwriteRegister',['../class_module.html#a60ca6b4cae98f7d935191a569d519913',1,'Module']]],
   ['spiwriteregisterburst_134',['SPIwriteRegisterBurst',['../class_module.html#a10809e942c686b4e605269e58bd637b9',1,'Module']]],
diff --git a/search/all_13.js b/search/all_13.js
index f1492ab0..f33f0ed2 100644
--- a/search/all_13.js
+++ b/search/all_13.js
@@ -3,6 +3,6 @@ var searchData=
   ['values_0',['values',['../struct_module_1_1_rf_switch_mode__t.html#a694fecae172f868d8ca400319920ed66',1,'Module::RfSwitchMode_t']]],
   ['values_20aliases_1',['Data shaping filter values aliases.',['../group__config__shaping.html',1,'']]],
   ['variablepacketlengthmode_2',['variablepacketlengthmode',['../class_c_c1101.html#a50b9e73d2d82a4cd03841f465825b73f',1,'CC1101::variablePacketLengthMode()'],['../class_l_r11x0.html#adcd56cf63e91449b6cd03782a69c3451',1,'LR11x0::variablePacketLengthMode()'],['../class_r_f69.html#af434c67aabe02258ee6696a59973617b',1,'RF69::variablePacketLengthMode()'],['../class_si443x.html#abcca8ab4a1229efb5e7c6b09e564a48a',1,'Si443x::variablePacketLengthMode()'],['../class_s_x126x.html#a92c157efe751b4ae73d22ff44115285d',1,'SX126x::variablePacketLengthMode()'],['../class_s_x127x.html#a1d39296b40e7282ef44d8f376065e92c',1,'SX127x::variablePacketLengthMode()']]],
-  ['verifycmac_3',['verifyCMAC',['../class_radio_lib_a_e_s128.html#a235daad00bd77a406d7fc187bcb2192e',1,'RadioLibAES128']]],
+  ['verifycmac_3',['verifyCMAC',['../class_radio_lib_a_e_s128.html#a793795f82f27abd34409a5c0e0e7c455',1,'RadioLibAES128']]],
   ['viscode_4',['visCode',['../struct_s_s_t_v_mode__t.html#a4033deed34e2703ab7f9a95cc32e5820',1,'SSTVMode_t']]]
 ];
diff --git a/search/functions_12.js b/search/functions_12.js
index 1ea6fa7c..0b64a10f 100644
--- a/search/functions_12.js
+++ b/search/functions_12.js
@@ -1,5 +1,5 @@
 var searchData=
 [
   ['variablepacketlengthmode_0',['variablepacketlengthmode',['../class_c_c1101.html#a50b9e73d2d82a4cd03841f465825b73f',1,'CC1101::variablePacketLengthMode()'],['../class_l_r11x0.html#adcd56cf63e91449b6cd03782a69c3451',1,'LR11x0::variablePacketLengthMode()'],['../class_r_f69.html#af434c67aabe02258ee6696a59973617b',1,'RF69::variablePacketLengthMode()'],['../class_si443x.html#abcca8ab4a1229efb5e7c6b09e564a48a',1,'Si443x::variablePacketLengthMode()'],['../class_s_x126x.html#a92c157efe751b4ae73d22ff44115285d',1,'SX126x::variablePacketLengthMode()'],['../class_s_x127x.html#a1d39296b40e7282ef44d8f376065e92c',1,'SX127x::variablePacketLengthMode()']]],
-  ['verifycmac_1',['verifyCMAC',['../class_radio_lib_a_e_s128.html#a235daad00bd77a406d7fc187bcb2192e',1,'RadioLibAES128']]]
+  ['verifycmac_1',['verifyCMAC',['../class_radio_lib_a_e_s128.html#a793795f82f27abd34409a5c0e0e7c455',1,'RadioLibAES128']]]
 ];
diff --git a/search/functions_f.js b/search/functions_f.js
index 1959f8cd..8d80e0af 100644
--- a/search/functions_f.js
+++ b/search/functions_f.js
@@ -120,7 +120,7 @@ var searchData=
   ['spireadregisterburst_117',['SPIreadRegisterBurst',['../class_module.html#ac993ab8e2ea0f5aa93339d1f6ffb54ee',1,'Module']]],
   ['spireadstream_118',['spireadstream',['../class_module.html#adacceb57ecfecb09150c135b2b44436f',1,'Module::SPIreadStream(uint16_t cmd, uint8_t *data, size_t numBytes, bool waitForGpio=true, bool verify=true)'],['../class_module.html#ad4af5fc5fd60e0aadb8a69606e511946',1,'Module::SPIreadStream(const uint8_t *cmd, uint8_t cmdLen, uint8_t *data, size_t numBytes, bool waitForGpio=true, bool verify=true)']]],
   ['spisetregvalue_119',['SPIsetRegValue',['../class_module.html#aed95fba2ee72d7a2a21f98dd63ae4ad1',1,'Module']]],
-  ['spitransfer_120',['spitransfer',['../class_module.html#a2bfbddb1ff044f8b1865aac89246445d',1,'Module::SPItransfer()'],['../class_radio_lib_hal.html#aebcaaf0cefdaaf5b572d4261e472ac8a',1,'RadioLibHal::spiTransfer()'],['../class_pi_hal.html#a96a0f36efd8e23893add3242bdef8be4',1,'PiHal::spiTransfer()'],['../class_pico_hal.html#acc961bf30af621d0dfec2b3f7e25cf5c',1,'PicoHal::spiTransfer()']]],
+  ['spitransfer_120',['spitransfer',['../class_radio_lib_hal.html#aebcaaf0cefdaaf5b572d4261e472ac8a',1,'RadioLibHal::spiTransfer()'],['../class_pi_hal.html#a96a0f36efd8e23893add3242bdef8be4',1,'PiHal::spiTransfer()'],['../class_pico_hal.html#acc961bf30af621d0dfec2b3f7e25cf5c',1,'PicoHal::spiTransfer()'],['../class_module.html#a2bfbddb1ff044f8b1865aac89246445d',1,'Module::SPItransfer(uint16_t cmd, uint32_t reg, const uint8_t *dataOut, uint8_t *dataIn, size_t numBytes)']]],
   ['spitransferstream_121',['SPItransferStream',['../class_module.html#a2b3f89fc63a82eb5fd55a7ddd72318fe',1,'Module']]],
   ['spiwriteregister_122',['SPIwriteRegister',['../class_module.html#a60ca6b4cae98f7d935191a569d519913',1,'Module']]],
   ['spiwriteregisterburst_123',['SPIwriteRegisterBurst',['../class_module.html#a10809e942c686b4e605269e58bd637b9',1,'Module']]],