1394 lines
80 KiB
HTML
1394 lines
80 KiB
HTML
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
|
<html xmlns="http://www.w3.org/1999/xhtml" lang="en-US">
|
|
<head>
|
|
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
|
|
<meta http-equiv="X-UA-Compatible" content="IE=11"/>
|
|
<meta name="generator" content="Doxygen 1.9.8"/>
|
|
<meta name="viewport" content="width=device-width, initial-scale=1"/>
|
|
<title>RadioLib: LoRaWANNode Class Reference</title>
|
|
<link href="tabs.css" rel="stylesheet" type="text/css"/>
|
|
<script type="text/javascript" src="jquery.js"></script>
|
|
<script type="text/javascript" src="dynsections.js"></script>
|
|
<link href="navtree.css" rel="stylesheet" type="text/css"/>
|
|
<script type="text/javascript" src="resize.js"></script>
|
|
<script type="text/javascript" src="navtreedata.js"></script>
|
|
<script type="text/javascript" src="navtree.js"></script>
|
|
<link href="search/search.css" rel="stylesheet" type="text/css"/>
|
|
<script type="text/javascript" src="search/searchdata.js"></script>
|
|
<script type="text/javascript" src="search/search.js"></script>
|
|
<link href="doxygen.css" rel="stylesheet" type="text/css" />
|
|
</head>
|
|
<body>
|
|
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
|
|
<div id="titlearea">
|
|
<table cellspacing="0" cellpadding="0">
|
|
<tbody>
|
|
<tr id="projectrow">
|
|
<td id="projectalign">
|
|
<div id="projectname">RadioLib
|
|
</div>
|
|
<div id="projectbrief">Universal wireless communication library for Arduino</div>
|
|
</td>
|
|
</tr>
|
|
</tbody>
|
|
</table>
|
|
</div>
|
|
<!-- end header part -->
|
|
<!-- Generated by Doxygen 1.9.8 -->
|
|
<script type="text/javascript">
|
|
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&dn=expat.txt MIT */
|
|
var searchBox = new SearchBox("searchBox", "search/",'.html');
|
|
/* @license-end */
|
|
</script>
|
|
<script type="text/javascript" src="menudata.js"></script>
|
|
<script type="text/javascript" src="menu.js"></script>
|
|
<script type="text/javascript">
|
|
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&dn=expat.txt MIT */
|
|
$(function() {
|
|
initMenu('',true,false,'search.php','Search');
|
|
$(document).ready(function() { init_search(); });
|
|
});
|
|
/* @license-end */
|
|
</script>
|
|
<div id="main-nav"></div>
|
|
</div><!-- top -->
|
|
<div id="side-nav" class="ui-resizable side-nav-resizable">
|
|
<div id="nav-tree">
|
|
<div id="nav-tree-contents">
|
|
<div id="nav-sync" class="sync"></div>
|
|
</div>
|
|
</div>
|
|
<div id="splitbar" style="-moz-user-select:none;"
|
|
class="ui-resizable-handle">
|
|
</div>
|
|
</div>
|
|
<script type="text/javascript">
|
|
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&dn=expat.txt MIT */
|
|
$(document).ready(function(){initNavTree('class_lo_ra_w_a_n_node.html',''); initResizable(); });
|
|
/* @license-end */
|
|
</script>
|
|
<div id="doc-content">
|
|
<!-- window showing the filter options -->
|
|
<div id="MSearchSelectWindow"
|
|
onmouseover="return searchBox.OnSearchSelectShow()"
|
|
onmouseout="return searchBox.OnSearchSelectHide()"
|
|
onkeydown="return searchBox.OnSearchSelectKey(event)">
|
|
</div>
|
|
|
|
<!-- iframe showing the search results (closed by default) -->
|
|
<div id="MSearchResultsWindow">
|
|
<div id="MSearchResults">
|
|
<div class="SRPage">
|
|
<div id="SRIndex">
|
|
<div id="SRResults"></div>
|
|
<div class="SRStatus" id="Loading">Loading...</div>
|
|
<div class="SRStatus" id="Searching">Searching...</div>
|
|
<div class="SRStatus" id="NoMatches">No Matches</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
<div class="header">
|
|
<div class="summary">
|
|
<a href="#pub-types">Public Types</a> |
|
|
<a href="#pub-methods">Public Member Functions</a> |
|
|
<a href="#pub-attribs">Public Attributes</a> |
|
|
<a href="class_lo_ra_w_a_n_node-members.html">List of all members</a> </div>
|
|
<div class="headertitle"><div class="title">LoRaWANNode Class Reference</div></div>
|
|
</div><!--header-->
|
|
<div class="contents">
|
|
|
|
<p>LoRaWAN-compatible node (class A device).
|
|
<a href="class_lo_ra_w_a_n_node.html#details">More...</a></p>
|
|
|
|
<p><code>#include <<a class="el" href="_lo_ra_w_a_n_8h_source.html">LoRaWAN.h</a>></code></p>
|
|
<table class="memberdecls">
|
|
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="pub-types" name="pub-types"></a>
|
|
Public Types</h2></td></tr>
|
|
<tr class="memitem:a3aec67bd3fa7ec0f6e4bf6b86d971e9e" id="r_a3aec67bd3fa7ec0f6e4bf6b86d971e9e"><td class="memItemLeft" align="right" valign="top"><a id="a3aec67bd3fa7ec0f6e4bf6b86d971e9e" name="a3aec67bd3fa7ec0f6e4bf6b86d971e9e"></a>
|
|
typedef void(* </td><td class="memItemRight" valign="bottom"><b>SleepCb_t</b>) (<a class="el" href="group__typedefs.html#ga210f31dd2bff7fb80563275648a5bbbd">RadioLibTime_t</a> ms)</td></tr>
|
|
<tr class="memdesc:a3aec67bd3fa7ec0f6e4bf6b86d971e9e"><td class="mdescLeft"> </td><td class="mdescRight">Callback to a user-provided sleep function. <br /></td></tr>
|
|
<tr class="separator:a3aec67bd3fa7ec0f6e4bf6b86d971e9e"><td class="memSeparator" colspan="2"> </td></tr>
|
|
</table><table class="memberdecls">
|
|
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="pub-methods" name="pub-methods"></a>
|
|
Public Member Functions</h2></td></tr>
|
|
<tr class="memitem:aae05de563f765f14fe267e4d65844f76" id="r_aae05de563f765f14fe267e4d65844f76"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="class_lo_ra_w_a_n_node.html#aae05de563f765f14fe267e4d65844f76">LoRaWANNode</a> (<a class="el" href="class_physical_layer.html">PhysicalLayer</a> *phy, const <a class="el" href="struct_lo_ra_w_a_n_band__t.html">LoRaWANBand_t</a> *band, uint8_t subBand=0)</td></tr>
|
|
<tr class="memdesc:aae05de563f765f14fe267e4d65844f76"><td class="mdescLeft"> </td><td class="mdescRight">Default constructor. <br /></td></tr>
|
|
<tr class="separator:aae05de563f765f14fe267e4d65844f76"><td class="memSeparator" colspan="2"> </td></tr>
|
|
<tr class="memitem:a84004883006b4a498d4899874952445b" id="r_a84004883006b4a498d4899874952445b"><td class="memItemLeft" align="right" valign="top">uint8_t * </td><td class="memItemRight" valign="bottom"><a class="el" href="class_lo_ra_w_a_n_node.html#a84004883006b4a498d4899874952445b">getBufferNonces</a> ()</td></tr>
|
|
<tr class="memdesc:a84004883006b4a498d4899874952445b"><td class="mdescLeft"> </td><td class="mdescRight">Returns the pointer to the internal buffer that holds the LW base parameters. <br /></td></tr>
|
|
<tr class="separator:a84004883006b4a498d4899874952445b"><td class="memSeparator" colspan="2"> </td></tr>
|
|
<tr class="memitem:ad99e2fa4738648a6f3efe72ff785def2" id="r_ad99e2fa4738648a6f3efe72ff785def2"><td class="memItemLeft" align="right" valign="top">int16_t </td><td class="memItemRight" valign="bottom"><a class="el" href="class_lo_ra_w_a_n_node.html#ad99e2fa4738648a6f3efe72ff785def2">setBufferNonces</a> (const uint8_t *persistentBuffer)</td></tr>
|
|
<tr class="memdesc:ad99e2fa4738648a6f3efe72ff785def2"><td class="mdescLeft"> </td><td class="mdescRight">Fill the internal buffer that holds the LW base parameters with a supplied buffer. <br /></td></tr>
|
|
<tr class="separator:ad99e2fa4738648a6f3efe72ff785def2"><td class="memSeparator" colspan="2"> </td></tr>
|
|
<tr class="memitem:a0feeaed200d8f94ad94c3ed49f404847" id="r_a0feeaed200d8f94ad94c3ed49f404847"><td class="memItemLeft" align="right" valign="top"><a id="a0feeaed200d8f94ad94c3ed49f404847" name="a0feeaed200d8f94ad94c3ed49f404847"></a>
|
|
void </td><td class="memItemRight" valign="bottom"><b>clearSession</b> ()</td></tr>
|
|
<tr class="memdesc:a0feeaed200d8f94ad94c3ed49f404847"><td class="mdescLeft"> </td><td class="mdescRight">Clear an active session, so that the device will have to rejoin the network. <br /></td></tr>
|
|
<tr class="separator:a0feeaed200d8f94ad94c3ed49f404847"><td class="memSeparator" colspan="2"> </td></tr>
|
|
<tr class="memitem:a90369a4f2c4da11527872a7bbbf9ab06" id="r_a90369a4f2c4da11527872a7bbbf9ab06"><td class="memItemLeft" align="right" valign="top">uint8_t * </td><td class="memItemRight" valign="bottom"><a class="el" href="class_lo_ra_w_a_n_node.html#a90369a4f2c4da11527872a7bbbf9ab06">getBufferSession</a> ()</td></tr>
|
|
<tr class="memdesc:a90369a4f2c4da11527872a7bbbf9ab06"><td class="mdescLeft"> </td><td class="mdescRight">Returns the pointer to the internal buffer that holds the LW session parameters. <br /></td></tr>
|
|
<tr class="separator:a90369a4f2c4da11527872a7bbbf9ab06"><td class="memSeparator" colspan="2"> </td></tr>
|
|
<tr class="memitem:aedeb50c9ccb81e8092233d34e039cfa4" id="r_aedeb50c9ccb81e8092233d34e039cfa4"><td class="memItemLeft" align="right" valign="top">int16_t </td><td class="memItemRight" valign="bottom"><a class="el" href="class_lo_ra_w_a_n_node.html#aedeb50c9ccb81e8092233d34e039cfa4">setBufferSession</a> (const uint8_t *persistentBuffer)</td></tr>
|
|
<tr class="memdesc:aedeb50c9ccb81e8092233d34e039cfa4"><td class="mdescLeft"> </td><td class="mdescRight">Fill the internal buffer that holds the LW session parameters with a supplied buffer. <br /></td></tr>
|
|
<tr class="separator:aedeb50c9ccb81e8092233d34e039cfa4"><td class="memSeparator" colspan="2"> </td></tr>
|
|
<tr class="memitem:ab2df20a240812f184786dda5ace171ef" id="r_ab2df20a240812f184786dda5ace171ef"><td class="memItemLeft" align="right" valign="top">int16_t </td><td class="memItemRight" valign="bottom"><a class="el" href="class_lo_ra_w_a_n_node.html#ab2df20a240812f184786dda5ace171ef">beginOTAA</a> (uint64_t joinEUI, uint64_t devEUI, const uint8_t *nwkKey, const uint8_t *appKey)</td></tr>
|
|
<tr class="memdesc:ab2df20a240812f184786dda5ace171ef"><td class="mdescLeft"> </td><td class="mdescRight">Set the device credentials and activation configuration. <br /></td></tr>
|
|
<tr class="separator:ab2df20a240812f184786dda5ace171ef"><td class="memSeparator" colspan="2"> </td></tr>
|
|
<tr class="memitem:a43b259fd8804ef8d9d4922962e9ecae5" id="r_a43b259fd8804ef8d9d4922962e9ecae5"><td class="memItemLeft" align="right" valign="top">int16_t </td><td class="memItemRight" valign="bottom"><a class="el" href="class_lo_ra_w_a_n_node.html#a43b259fd8804ef8d9d4922962e9ecae5">beginABP</a> (uint32_t addr, const uint8_t *fNwkSIntKey, const uint8_t *sNwkSIntKey, const uint8_t *nwkSEncKey, const uint8_t *appSKey)</td></tr>
|
|
<tr class="memdesc:a43b259fd8804ef8d9d4922962e9ecae5"><td class="mdescLeft"> </td><td class="mdescRight">Set the device credentials and activation configuration. <br /></td></tr>
|
|
<tr class="separator:a43b259fd8804ef8d9d4922962e9ecae5"><td class="memSeparator" colspan="2"> </td></tr>
|
|
<tr class="memitem:abd9e976eec64a3bd1ddf3331f2bc93cd" id="r_abd9e976eec64a3bd1ddf3331f2bc93cd"><td class="memItemLeft" align="right" valign="top">virtual int16_t </td><td class="memItemRight" valign="bottom"><a class="el" href="class_lo_ra_w_a_n_node.html#abd9e976eec64a3bd1ddf3331f2bc93cd">activateOTAA</a> (uint8_t initialDr=RADIOLIB_LORAWAN_DATA_RATE_UNUSED, <a class="el" href="struct_lo_ra_w_a_n_join_event__t.html">LoRaWANJoinEvent_t</a> *joinEvent=NULL)</td></tr>
|
|
<tr class="memdesc:abd9e976eec64a3bd1ddf3331f2bc93cd"><td class="mdescLeft"> </td><td class="mdescRight">Join network by restoring OTAA session or performing over-the-air activation. By this procedure, the device will perform an exchange with the network server and set all necessary configuration. <br /></td></tr>
|
|
<tr class="separator:abd9e976eec64a3bd1ddf3331f2bc93cd"><td class="memSeparator" colspan="2"> </td></tr>
|
|
<tr class="memitem:a77483c51548e48a5dff4b707f7770e86" id="r_a77483c51548e48a5dff4b707f7770e86"><td class="memItemLeft" align="right" valign="top">virtual int16_t </td><td class="memItemRight" valign="bottom"><a class="el" href="class_lo_ra_w_a_n_node.html#a77483c51548e48a5dff4b707f7770e86">activateABP</a> (uint8_t initialDr=RADIOLIB_LORAWAN_DATA_RATE_UNUSED)</td></tr>
|
|
<tr class="memdesc:a77483c51548e48a5dff4b707f7770e86"><td class="mdescLeft"> </td><td class="mdescRight">Join network by restoring ABP session or performing over-the-air activation. In this procedure, all necessary configuration must be provided by the user. <br /></td></tr>
|
|
<tr class="separator:a77483c51548e48a5dff4b707f7770e86"><td class="memSeparator" colspan="2"> </td></tr>
|
|
<tr class="memitem:a9a44677a1ef7db1216bc482139d6be8d" id="r_a9a44677a1ef7db1216bc482139d6be8d"><td class="memItemLeft" align="right" valign="top"><a id="a9a44677a1ef7db1216bc482139d6be8d" name="a9a44677a1ef7db1216bc482139d6be8d"></a>
|
|
bool </td><td class="memItemRight" valign="bottom"><b>isActivated</b> ()</td></tr>
|
|
<tr class="memdesc:a9a44677a1ef7db1216bc482139d6be8d"><td class="mdescLeft"> </td><td class="mdescRight">Whether there is an ongoing session active. <br /></td></tr>
|
|
<tr class="separator:a9a44677a1ef7db1216bc482139d6be8d"><td class="memSeparator" colspan="2"> </td></tr>
|
|
<tr class="memitem:a11c2fbe631063da69355f8d74f4bf3b8" id="r_a11c2fbe631063da69355f8d74f4bf3b8"><td class="memItemLeft" align="right" valign="top">virtual int16_t </td><td class="memItemRight" valign="bottom"><a class="el" href="class_lo_ra_w_a_n_node.html#a11c2fbe631063da69355f8d74f4bf3b8">sendReceive</a> (const char *strUp, uint8_t fPort, bool isConfirmed=false, <a class="el" href="struct_lo_ra_w_a_n_event__t.html">LoRaWANEvent_t</a> *eventUp=NULL, <a class="el" href="struct_lo_ra_w_a_n_event__t.html">LoRaWANEvent_t</a> *eventDown=NULL)</td></tr>
|
|
<tr class="memdesc:a11c2fbe631063da69355f8d74f4bf3b8"><td class="mdescLeft"> </td><td class="mdescRight">Send a message to the server and wait for a downlink during Rx1 and/or Rx2 window. <br /></td></tr>
|
|
<tr class="separator:a11c2fbe631063da69355f8d74f4bf3b8"><td class="memSeparator" colspan="2"> </td></tr>
|
|
<tr class="memitem:a85cf006ffd97ece3b2d2974b715540cb" id="r_a85cf006ffd97ece3b2d2974b715540cb"><td class="memItemLeft" align="right" valign="top">virtual int16_t </td><td class="memItemRight" valign="bottom"><a class="el" href="class_lo_ra_w_a_n_node.html#a85cf006ffd97ece3b2d2974b715540cb">sendReceive</a> (const char *strUp, uint8_t fPort, uint8_t *dataDown, size_t *lenDown, bool isConfirmed=false, <a class="el" href="struct_lo_ra_w_a_n_event__t.html">LoRaWANEvent_t</a> *eventUp=NULL, <a class="el" href="struct_lo_ra_w_a_n_event__t.html">LoRaWANEvent_t</a> *eventDown=NULL)</td></tr>
|
|
<tr class="memdesc:a85cf006ffd97ece3b2d2974b715540cb"><td class="mdescLeft"> </td><td class="mdescRight">Send a message to the server and wait for a downlink during Rx1 and/or Rx2 window. <br /></td></tr>
|
|
<tr class="separator:a85cf006ffd97ece3b2d2974b715540cb"><td class="memSeparator" colspan="2"> </td></tr>
|
|
<tr class="memitem:af9d5fcdbbb4fa357beedb820e395ae37" id="r_af9d5fcdbbb4fa357beedb820e395ae37"><td class="memItemLeft" align="right" valign="top">virtual int16_t </td><td class="memItemRight" valign="bottom"><a class="el" href="class_lo_ra_w_a_n_node.html#af9d5fcdbbb4fa357beedb820e395ae37">sendReceive</a> (const uint8_t *dataUp, size_t lenUp, uint8_t fPort=1, bool isConfirmed=false, <a class="el" href="struct_lo_ra_w_a_n_event__t.html">LoRaWANEvent_t</a> *eventUp=NULL, <a class="el" href="struct_lo_ra_w_a_n_event__t.html">LoRaWANEvent_t</a> *eventDown=NULL)</td></tr>
|
|
<tr class="memdesc:af9d5fcdbbb4fa357beedb820e395ae37"><td class="mdescLeft"> </td><td class="mdescRight">Send a message to the server and wait for a downlink but don't bother the user with downlink contents. <br /></td></tr>
|
|
<tr class="separator:af9d5fcdbbb4fa357beedb820e395ae37"><td class="memSeparator" colspan="2"> </td></tr>
|
|
<tr class="memitem:aafb2006b8d75549f667608156b5f8a5a" id="r_aafb2006b8d75549f667608156b5f8a5a"><td class="memItemLeft" align="right" valign="top">virtual int16_t </td><td class="memItemRight" valign="bottom"><a class="el" href="class_lo_ra_w_a_n_node.html#aafb2006b8d75549f667608156b5f8a5a">sendReceive</a> (const uint8_t *dataUp, size_t lenUp, uint8_t fPort, uint8_t *dataDown, size_t *lenDown, bool isConfirmed=false, <a class="el" href="struct_lo_ra_w_a_n_event__t.html">LoRaWANEvent_t</a> *eventUp=NULL, <a class="el" href="struct_lo_ra_w_a_n_event__t.html">LoRaWANEvent_t</a> *eventDown=NULL)</td></tr>
|
|
<tr class="memdesc:aafb2006b8d75549f667608156b5f8a5a"><td class="mdescLeft"> </td><td class="mdescRight">Send a message to the server and wait for a downlink during Rx1 and/or Rx2 window. <br /></td></tr>
|
|
<tr class="separator:aafb2006b8d75549f667608156b5f8a5a"><td class="memSeparator" colspan="2"> </td></tr>
|
|
<tr class="memitem:adef05650cf4eb92042ca5e2688c1e164" id="r_adef05650cf4eb92042ca5e2688c1e164"><td class="memItemLeft" align="right" valign="top">int16_t </td><td class="memItemRight" valign="bottom"><a class="el" href="class_lo_ra_w_a_n_node.html#adef05650cf4eb92042ca5e2688c1e164">sendMacCommandReq</a> (uint8_t cid)</td></tr>
|
|
<tr class="memdesc:adef05650cf4eb92042ca5e2688c1e164"><td class="mdescLeft"> </td><td class="mdescRight">Add a MAC command to the uplink queue. Only LinkCheck and DeviceTime are available to the user. Other commands are ignored; duplicate MAC commands are discarded. <br /></td></tr>
|
|
<tr class="separator:adef05650cf4eb92042ca5e2688c1e164"><td class="memSeparator" colspan="2"> </td></tr>
|
|
<tr class="memitem:adf038f331c1dc954dafc2668e7a31ca0" id="r_adf038f331c1dc954dafc2668e7a31ca0"><td class="memItemLeft" align="right" valign="top">int16_t </td><td class="memItemRight" valign="bottom"><a class="el" href="class_lo_ra_w_a_n_node.html#adf038f331c1dc954dafc2668e7a31ca0">getMacLinkCheckAns</a> (uint8_t *margin, uint8_t *gwCnt)</td></tr>
|
|
<tr class="memdesc:adf038f331c1dc954dafc2668e7a31ca0"><td class="mdescLeft"> </td><td class="mdescRight">Returns the quality of connectivity after requesting a LinkCheck MAC command. Returns 'true' if a network response was successfully parsed. Returns 'false' if there was no network response / parsing failed. <br /></td></tr>
|
|
<tr class="separator:adf038f331c1dc954dafc2668e7a31ca0"><td class="memSeparator" colspan="2"> </td></tr>
|
|
<tr class="memitem:a9e6e1ce4296364606ff8b10fb5f971de" id="r_a9e6e1ce4296364606ff8b10fb5f971de"><td class="memItemLeft" align="right" valign="top">int16_t </td><td class="memItemRight" valign="bottom"><a class="el" href="class_lo_ra_w_a_n_node.html#a9e6e1ce4296364606ff8b10fb5f971de">getMacDeviceTimeAns</a> (uint32_t *gpsEpoch, uint8_t *fraction, bool returnUnix=true)</td></tr>
|
|
<tr class="memdesc:a9e6e1ce4296364606ff8b10fb5f971de"><td class="mdescLeft"> </td><td class="mdescRight">Returns the network time after requesting a DeviceTime MAC command. Returns 'true' if a network response was successfully parsed. Returns 'false' if there was no network response / parsing failed. <br /></td></tr>
|
|
<tr class="separator:a9e6e1ce4296364606ff8b10fb5f971de"><td class="memSeparator" colspan="2"> </td></tr>
|
|
<tr class="memitem:a14e8a8a098df28ff5ee294f235500499" id="r_a14e8a8a098df28ff5ee294f235500499"><td class="memItemLeft" align="right" valign="top">int16_t </td><td class="memItemRight" valign="bottom"><a class="el" href="class_lo_ra_w_a_n_node.html#a14e8a8a098df28ff5ee294f235500499">setDatarate</a> (uint8_t drUp)</td></tr>
|
|
<tr class="memdesc:a14e8a8a098df28ff5ee294f235500499"><td class="mdescLeft"> </td><td class="mdescRight">Set uplink datarate. This should not be used when ADR is enabled. <br /></td></tr>
|
|
<tr class="separator:a14e8a8a098df28ff5ee294f235500499"><td class="memSeparator" colspan="2"> </td></tr>
|
|
<tr class="memitem:a9af613f7d923e7bdcfdbd020132c6d4b" id="r_a9af613f7d923e7bdcfdbd020132c6d4b"><td class="memItemLeft" align="right" valign="top">int16_t </td><td class="memItemRight" valign="bottom"><a class="el" href="class_lo_ra_w_a_n_node.html#a9af613f7d923e7bdcfdbd020132c6d4b">setTxPower</a> (int8_t txPower)</td></tr>
|
|
<tr class="memdesc:a9af613f7d923e7bdcfdbd020132c6d4b"><td class="mdescLeft"> </td><td class="mdescRight">Configure TX power of the radio module. <br /></td></tr>
|
|
<tr class="separator:a9af613f7d923e7bdcfdbd020132c6d4b"><td class="memSeparator" colspan="2"> </td></tr>
|
|
<tr class="memitem:addfd8ac3d0bfe5a273e9ba10e51f8025" id="r_addfd8ac3d0bfe5a273e9ba10e51f8025"><td class="memItemLeft" align="right" valign="top">int16_t </td><td class="memItemRight" valign="bottom"><a class="el" href="class_lo_ra_w_a_n_node.html#addfd8ac3d0bfe5a273e9ba10e51f8025">setRx2Dr</a> (uint8_t dr)</td></tr>
|
|
<tr class="memdesc:addfd8ac3d0bfe5a273e9ba10e51f8025"><td class="mdescLeft"> </td><td class="mdescRight">Configure the Rx2 datarate for ABP mode. This should not be needed for LoRaWAN 1.1 as it is configured through the first downlink. <br /></td></tr>
|
|
<tr class="separator:addfd8ac3d0bfe5a273e9ba10e51f8025"><td class="memSeparator" colspan="2"> </td></tr>
|
|
<tr class="memitem:ae222275f807f472083ea6100c23c75ff" id="r_ae222275f807f472083ea6100c23c75ff"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="class_lo_ra_w_a_n_node.html#ae222275f807f472083ea6100c23c75ff">setADR</a> (bool enable=true)</td></tr>
|
|
<tr class="memdesc:ae222275f807f472083ea6100c23c75ff"><td class="mdescLeft"> </td><td class="mdescRight">Toggle ADR to on or off. <br /></td></tr>
|
|
<tr class="separator:ae222275f807f472083ea6100c23c75ff"><td class="memSeparator" colspan="2"> </td></tr>
|
|
<tr class="memitem:a3d4bbd6d382496838954ab4ac1168b77" id="r_a3d4bbd6d382496838954ab4ac1168b77"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="class_lo_ra_w_a_n_node.html#a3d4bbd6d382496838954ab4ac1168b77">setDutyCycle</a> (bool enable=true, <a class="el" href="group__typedefs.html#ga210f31dd2bff7fb80563275648a5bbbd">RadioLibTime_t</a> msPerHour=0)</td></tr>
|
|
<tr class="memdesc:a3d4bbd6d382496838954ab4ac1168b77"><td class="mdescLeft"> </td><td class="mdescRight">Toggle adherence to dutyCycle limits to on or off. <br /></td></tr>
|
|
<tr class="separator:a3d4bbd6d382496838954ab4ac1168b77"><td class="memSeparator" colspan="2"> </td></tr>
|
|
<tr class="memitem:a62bfe68f6fe63c2e408dccbff6a34a4f" id="r_a62bfe68f6fe63c2e408dccbff6a34a4f"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="class_lo_ra_w_a_n_node.html#a62bfe68f6fe63c2e408dccbff6a34a4f">setDwellTime</a> (bool enable, <a class="el" href="group__typedefs.html#ga210f31dd2bff7fb80563275648a5bbbd">RadioLibTime_t</a> msPerUplink=0)</td></tr>
|
|
<tr class="memdesc:a62bfe68f6fe63c2e408dccbff6a34a4f"><td class="mdescLeft"> </td><td class="mdescRight">Set or disable uplink dwell time limitation; enabled by default if mandatory. <br /></td></tr>
|
|
<tr class="separator:a62bfe68f6fe63c2e408dccbff6a34a4f"><td class="memSeparator" colspan="2"> </td></tr>
|
|
<tr class="memitem:a2d9a53560ebfbaf006eefd9761424d80" id="r_a2d9a53560ebfbaf006eefd9761424d80"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="class_lo_ra_w_a_n_node.html#a2d9a53560ebfbaf006eefd9761424d80">setCSMA</a> (bool csmaEnabled, uint8_t maxChanges=4, uint8_t backoffMax=0, uint8_t difsSlots=2)</td></tr>
|
|
<tr class="memdesc:a2d9a53560ebfbaf006eefd9761424d80"><td class="mdescLeft"> </td><td class="mdescRight">Configures CSMA for LoRaWAN as per TR013, LoRa Alliance. <br /></td></tr>
|
|
<tr class="separator:a2d9a53560ebfbaf006eefd9761424d80"><td class="memSeparator" colspan="2"> </td></tr>
|
|
<tr class="memitem:a5449e301634dff1838a1b024b4067034" id="r_a5449e301634dff1838a1b024b4067034"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="class_lo_ra_w_a_n_node.html#a5449e301634dff1838a1b024b4067034">setDeviceStatus</a> (uint8_t battLevel)</td></tr>
|
|
<tr class="memdesc:a5449e301634dff1838a1b024b4067034"><td class="mdescLeft"> </td><td class="mdescRight">Set device status. <br /></td></tr>
|
|
<tr class="separator:a5449e301634dff1838a1b024b4067034"><td class="memSeparator" colspan="2"> </td></tr>
|
|
<tr class="memitem:a16c7ae2edfe324e11498b13aa042665f" id="r_a16c7ae2edfe324e11498b13aa042665f"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="class_lo_ra_w_a_n_node.html#a16c7ae2edfe324e11498b13aa042665f">scheduleTransmission</a> (<a class="el" href="group__typedefs.html#ga210f31dd2bff7fb80563275648a5bbbd">RadioLibTime_t</a> tUplink)</td></tr>
|
|
<tr class="memdesc:a16c7ae2edfe324e11498b13aa042665f"><td class="mdescLeft"> </td><td class="mdescRight">Set the exact time a transmission should occur. Note: this is the internal clock time. On Arduino platforms, this is the usual time supplied by millis(). If the supplied time is larger than the current time, <a class="el" href="class_lo_ra_w_a_n_node.html#a11c2fbe631063da69355f8d74f4bf3b8" title="Send a message to the server and wait for a downlink during Rx1 and/or Rx2 window.">sendReceive()</a> or uplink() will delay until the scheduled time. <br /></td></tr>
|
|
<tr class="separator:a16c7ae2edfe324e11498b13aa042665f"><td class="memSeparator" colspan="2"> </td></tr>
|
|
<tr class="memitem:ad3217975ef9959ff83ce79dd80b0d777" id="r_ad3217975ef9959ff83ce79dd80b0d777"><td class="memItemLeft" align="right" valign="top"><a id="ad3217975ef9959ff83ce79dd80b0d777" name="ad3217975ef9959ff83ce79dd80b0d777"></a>
|
|
uint32_t </td><td class="memItemRight" valign="bottom"><b>getFCntUp</b> ()</td></tr>
|
|
<tr class="memdesc:ad3217975ef9959ff83ce79dd80b0d777"><td class="mdescLeft"> </td><td class="mdescRight">Returns the last uplink's frame counter; also 0 if no uplink occured yet. <br /></td></tr>
|
|
<tr class="separator:ad3217975ef9959ff83ce79dd80b0d777"><td class="memSeparator" colspan="2"> </td></tr>
|
|
<tr class="memitem:aa7fabaa6efe9978c3674b1ab187446a1" id="r_aa7fabaa6efe9978c3674b1ab187446a1"><td class="memItemLeft" align="right" valign="top"><a id="aa7fabaa6efe9978c3674b1ab187446a1" name="aa7fabaa6efe9978c3674b1ab187446a1"></a>
|
|
uint32_t </td><td class="memItemRight" valign="bottom"><b>getNFCntDown</b> ()</td></tr>
|
|
<tr class="memdesc:aa7fabaa6efe9978c3674b1ab187446a1"><td class="mdescLeft"> </td><td class="mdescRight">Returns the last network downlink's frame counter; also 0 if no network downlink occured yet. <br /></td></tr>
|
|
<tr class="separator:aa7fabaa6efe9978c3674b1ab187446a1"><td class="memSeparator" colspan="2"> </td></tr>
|
|
<tr class="memitem:a6785265f3311ff6bf296f82429c96701" id="r_a6785265f3311ff6bf296f82429c96701"><td class="memItemLeft" align="right" valign="top"><a id="a6785265f3311ff6bf296f82429c96701" name="a6785265f3311ff6bf296f82429c96701"></a>
|
|
uint32_t </td><td class="memItemRight" valign="bottom"><b>getAFCntDown</b> ()</td></tr>
|
|
<tr class="memdesc:a6785265f3311ff6bf296f82429c96701"><td class="mdescLeft"> </td><td class="mdescRight">Returns the last application downlink's frame counter; also 0 if no application downlink occured yet. <br /></td></tr>
|
|
<tr class="separator:a6785265f3311ff6bf296f82429c96701"><td class="memSeparator" colspan="2"> </td></tr>
|
|
<tr class="memitem:af4b3d07cd9bf4178d627204bae18b648" id="r_af4b3d07cd9bf4178d627204bae18b648"><td class="memItemLeft" align="right" valign="top"><a id="af4b3d07cd9bf4178d627204bae18b648" name="af4b3d07cd9bf4178d627204bae18b648"></a>
|
|
void </td><td class="memItemRight" valign="bottom"><b>resetFCntDown</b> ()</td></tr>
|
|
<tr class="memdesc:af4b3d07cd9bf4178d627204bae18b648"><td class="mdescLeft"> </td><td class="mdescRight">Reset the downlink frame counters (application and network) This is unsafe and can possibly allow replay attacks using downlinks. It mainly exists as part of the TS009 Specification Verification protocol. <br /></td></tr>
|
|
<tr class="separator:af4b3d07cd9bf4178d627204bae18b648"><td class="memSeparator" colspan="2"> </td></tr>
|
|
<tr class="memitem:aee0590cc9123ceac4c822eabed3150c6" id="r_aee0590cc9123ceac4c822eabed3150c6"><td class="memItemLeft" align="right" valign="top">uint32_t </td><td class="memItemRight" valign="bottom"><a class="el" href="class_lo_ra_w_a_n_node.html#aee0590cc9123ceac4c822eabed3150c6">getDevAddr</a> ()</td></tr>
|
|
<tr class="memdesc:aee0590cc9123ceac4c822eabed3150c6"><td class="mdescLeft"> </td><td class="mdescRight">Returns the DevAddr of the device, regardless of OTAA or ABP mode. <br /></td></tr>
|
|
<tr class="separator:aee0590cc9123ceac4c822eabed3150c6"><td class="memSeparator" colspan="2"> </td></tr>
|
|
<tr class="memitem:a683b02b63867bb7de5df45c94d190305" id="r_a683b02b63867bb7de5df45c94d190305"><td class="memItemLeft" align="right" valign="top"><a class="el" href="group__typedefs.html#ga210f31dd2bff7fb80563275648a5bbbd">RadioLibTime_t</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="class_lo_ra_w_a_n_node.html#a683b02b63867bb7de5df45c94d190305">getLastToA</a> ()</td></tr>
|
|
<tr class="memdesc:a683b02b63867bb7de5df45c94d190305"><td class="mdescLeft"> </td><td class="mdescRight">Get the Time-on-air of the last uplink message (in milliseconds). <br /></td></tr>
|
|
<tr class="separator:a683b02b63867bb7de5df45c94d190305"><td class="memSeparator" colspan="2"> </td></tr>
|
|
<tr class="memitem:a5bb50904544f331806fd744ab5b99efa" id="r_a5bb50904544f331806fd744ab5b99efa"><td class="memItemLeft" align="right" valign="top"><a class="el" href="group__typedefs.html#ga210f31dd2bff7fb80563275648a5bbbd">RadioLibTime_t</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="class_lo_ra_w_a_n_node.html#a5bb50904544f331806fd744ab5b99efa">dutyCycleInterval</a> (<a class="el" href="group__typedefs.html#ga210f31dd2bff7fb80563275648a5bbbd">RadioLibTime_t</a> msPerHour, <a class="el" href="group__typedefs.html#ga210f31dd2bff7fb80563275648a5bbbd">RadioLibTime_t</a> airtime)</td></tr>
|
|
<tr class="memdesc:a5bb50904544f331806fd744ab5b99efa"><td class="mdescLeft"> </td><td class="mdescRight">Calculate the minimum interval to adhere to a certain dutyCycle. This interval is based on the ToA of one uplink and does not actually keep track of total airtime. <br /></td></tr>
|
|
<tr class="separator:a5bb50904544f331806fd744ab5b99efa"><td class="memSeparator" colspan="2"> </td></tr>
|
|
<tr class="memitem:a49e690c14858b46692e4ce9aa5a2566a" id="r_a49e690c14858b46692e4ce9aa5a2566a"><td class="memItemLeft" align="right" valign="top"><a id="a49e690c14858b46692e4ce9aa5a2566a" name="a49e690c14858b46692e4ce9aa5a2566a"></a>
|
|
<a class="el" href="group__typedefs.html#ga210f31dd2bff7fb80563275648a5bbbd">RadioLibTime_t</a> </td><td class="memItemRight" valign="bottom"><b>timeUntilUplink</b> ()</td></tr>
|
|
<tr class="memdesc:a49e690c14858b46692e4ce9aa5a2566a"><td class="mdescLeft"> </td><td class="mdescRight">Returns time in milliseconds until next uplink is available under dutyCycle limits. <br /></td></tr>
|
|
<tr class="separator:a49e690c14858b46692e4ce9aa5a2566a"><td class="memSeparator" colspan="2"> </td></tr>
|
|
<tr class="memitem:ab723160aa317cd84550d0da3a0f52811" id="r_ab723160aa317cd84550d0da3a0f52811"><td class="memItemLeft" align="right" valign="top"><a id="ab723160aa317cd84550d0da3a0f52811" name="ab723160aa317cd84550d0da3a0f52811"></a>
|
|
uint8_t </td><td class="memItemRight" valign="bottom"><b>getMaxPayloadLen</b> ()</td></tr>
|
|
<tr class="memdesc:ab723160aa317cd84550d0da3a0f52811"><td class="mdescLeft"> </td><td class="mdescRight">Returns the maximum allowed uplink payload size given the current MAC state. Most importantly, this includes dwell time limitations and ADR. <br /></td></tr>
|
|
<tr class="separator:ab723160aa317cd84550d0da3a0f52811"><td class="memSeparator" colspan="2"> </td></tr>
|
|
<tr class="memitem:a11c5f0867a9a8d731e980f865caebd99" id="r_a11c5f0867a9a8d731e980f865caebd99"><td class="memItemLeft" align="right" valign="top"><a id="a11c5f0867a9a8d731e980f865caebd99" name="a11c5f0867a9a8d731e980f865caebd99"></a>
|
|
void </td><td class="memItemRight" valign="bottom"><b>setSleepFunction</b> (<a class="el" href="class_lo_ra_w_a_n_node.html#a3aec67bd3fa7ec0f6e4bf6b86d971e9e">SleepCb_t</a> cb)</td></tr>
|
|
<tr class="memdesc:a11c5f0867a9a8d731e980f865caebd99"><td class="mdescLeft"> </td><td class="mdescRight">Set custom delay/sleep function callback. If set, LoRaWAN node will call this function to wait for periods of time longer than RADIOLIB_LORAWAN_DELAY_SLEEP_THRESHOLD. This can be used to lower the power consumption by putting the host microcontroller to sleep. NOTE: Since this method will call a user-provided function, it is up to the user to ensure that the time duration spent in that sleep function is accurate to at least 1 ms! <br /></td></tr>
|
|
<tr class="separator:a11c5f0867a9a8d731e980f865caebd99"><td class="memSeparator" colspan="2"> </td></tr>
|
|
</table><table class="memberdecls">
|
|
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="pub-attribs" name="pub-attribs"></a>
|
|
Public Attributes</h2></td></tr>
|
|
<tr class="memitem:a8226f4d0329d15da9ffc706e5781403a" id="r_a8226f4d0329d15da9ffc706e5781403a"><td class="memItemLeft" align="right" valign="top"><a id="a8226f4d0329d15da9ffc706e5781403a" name="a8226f4d0329d15da9ffc706e5781403a"></a>
|
|
bool </td><td class="memItemRight" valign="bottom"><b>TS009</b> = false</td></tr>
|
|
<tr class="memdesc:a8226f4d0329d15da9ffc706e5781403a"><td class="mdescLeft"> </td><td class="mdescRight">TS009 Protocol Specification Verification switch (allows FPort 224 and cuts off uplink payload instead of rejecting if maximum length exceeded). <br /></td></tr>
|
|
<tr class="separator:a8226f4d0329d15da9ffc706e5781403a"><td class="memSeparator" colspan="2"> </td></tr>
|
|
<tr class="memitem:a2176aa3d546e6b00e870a7e1e310c403" id="r_a2176aa3d546e6b00e870a7e1e310c403"><td class="memItemLeft" align="right" valign="top"><a class="el" href="group__typedefs.html#ga210f31dd2bff7fb80563275648a5bbbd">RadioLibTime_t</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="class_lo_ra_w_a_n_node.html#a2176aa3d546e6b00e870a7e1e310c403">scanGuard</a> = 5</td></tr>
|
|
<tr class="memdesc:a2176aa3d546e6b00e870a7e1e310c403"><td class="mdescLeft"> </td><td class="mdescRight">Rx window padding in milliseconds according to the spec, the Rx window must be at least enough time to effectively detect a preamble but we pad it a bit on both sides (start and end) to make sure it is wide enough The larger this number the more power will be consumed! So be careful about changing it. For debugging purposes 50 is a reasonable start, but for production devices it should be as low as possible. 0 is a valid time. <br /></td></tr>
|
|
<tr class="separator:a2176aa3d546e6b00e870a7e1e310c403"><td class="memSeparator" colspan="2"> </td></tr>
|
|
</table>
|
|
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
|
|
<div class="textblock"><p>LoRaWAN-compatible node (class A device). </p>
|
|
</div><h2 class="groupheader">Constructor & Destructor Documentation</h2>
|
|
<a id="aae05de563f765f14fe267e4d65844f76" name="aae05de563f765f14fe267e4d65844f76"></a>
|
|
<h2 class="memtitle"><span class="permalink"><a href="#aae05de563f765f14fe267e4d65844f76">◆ </a></span>LoRaWANNode()</h2>
|
|
|
|
<div class="memitem">
|
|
<div class="memproto">
|
|
<table class="memname">
|
|
<tr>
|
|
<td class="memname">LoRaWANNode::LoRaWANNode </td>
|
|
<td>(</td>
|
|
<td class="paramtype"><a class="el" href="class_physical_layer.html">PhysicalLayer</a> * </td>
|
|
<td class="paramname"><em>phy</em>, </td>
|
|
</tr>
|
|
<tr>
|
|
<td class="paramkey"></td>
|
|
<td></td>
|
|
<td class="paramtype">const <a class="el" href="struct_lo_ra_w_a_n_band__t.html">LoRaWANBand_t</a> * </td>
|
|
<td class="paramname"><em>band</em>, </td>
|
|
</tr>
|
|
<tr>
|
|
<td class="paramkey"></td>
|
|
<td></td>
|
|
<td class="paramtype">uint8_t </td>
|
|
<td class="paramname"><em>subBand</em> = <code>0</code> </td>
|
|
</tr>
|
|
<tr>
|
|
<td></td>
|
|
<td>)</td>
|
|
<td></td><td></td>
|
|
</tr>
|
|
</table>
|
|
</div><div class="memdoc">
|
|
|
|
<p>Default constructor. </p>
|
|
<dl class="params"><dt>Parameters</dt><dd>
|
|
<table class="params">
|
|
<tr><td class="paramname">phy</td><td>Pointer to the <a class="el" href="class_physical_layer.html" title="Provides common interface for protocols that run on LoRa/FSK modules, such as RTTY or LoRaWAN....">PhysicalLayer</a> radio module. </td></tr>
|
|
<tr><td class="paramname">band</td><td>Pointer to the LoRaWAN band to use. </td></tr>
|
|
<tr><td class="paramname">subBand</td><td>The sub-band to be used (starting from 1!) </td></tr>
|
|
</table>
|
|
</dd>
|
|
</dl>
|
|
|
|
</div>
|
|
</div>
|
|
<h2 class="groupheader">Member Function Documentation</h2>
|
|
<a id="a77483c51548e48a5dff4b707f7770e86" name="a77483c51548e48a5dff4b707f7770e86"></a>
|
|
<h2 class="memtitle"><span class="permalink"><a href="#a77483c51548e48a5dff4b707f7770e86">◆ </a></span>activateABP()</h2>
|
|
|
|
<div class="memitem">
|
|
<div class="memproto">
|
|
<table class="mlabels">
|
|
<tr>
|
|
<td class="mlabels-left">
|
|
<table class="memname">
|
|
<tr>
|
|
<td class="memname">int16_t LoRaWANNode::activateABP </td>
|
|
<td>(</td>
|
|
<td class="paramtype">uint8_t </td>
|
|
<td class="paramname"><em>initialDr</em> = <code>RADIOLIB_LORAWAN_DATA_RATE_UNUSED</code></td><td>)</td>
|
|
<td></td>
|
|
</tr>
|
|
</table>
|
|
</td>
|
|
<td class="mlabels-right">
|
|
<span class="mlabels"><span class="mlabel">virtual</span></span> </td>
|
|
</tr>
|
|
</table>
|
|
</div><div class="memdoc">
|
|
|
|
<p>Join network by restoring ABP session or performing over-the-air activation. In this procedure, all necessary configuration must be provided by the user. </p>
|
|
<dl class="params"><dt>Parameters</dt><dd>
|
|
<table class="params">
|
|
<tr><td class="paramname">initialDr</td><td>The datarate at which to send the first uplink and any subsequent uplinks (unless ADR is enabled). </td></tr>
|
|
</table>
|
|
</dd>
|
|
</dl>
|
|
<dl class="section return"><dt>Returns</dt><dd><a class="el" href="group__status__codes.html">Status Codes</a> </dd></dl>
|
|
|
|
</div>
|
|
</div>
|
|
<a id="abd9e976eec64a3bd1ddf3331f2bc93cd" name="abd9e976eec64a3bd1ddf3331f2bc93cd"></a>
|
|
<h2 class="memtitle"><span class="permalink"><a href="#abd9e976eec64a3bd1ddf3331f2bc93cd">◆ </a></span>activateOTAA()</h2>
|
|
|
|
<div class="memitem">
|
|
<div class="memproto">
|
|
<table class="mlabels">
|
|
<tr>
|
|
<td class="mlabels-left">
|
|
<table class="memname">
|
|
<tr>
|
|
<td class="memname">int16_t LoRaWANNode::activateOTAA </td>
|
|
<td>(</td>
|
|
<td class="paramtype">uint8_t </td>
|
|
<td class="paramname"><em>initialDr</em> = <code>RADIOLIB_LORAWAN_DATA_RATE_UNUSED</code>, </td>
|
|
</tr>
|
|
<tr>
|
|
<td class="paramkey"></td>
|
|
<td></td>
|
|
<td class="paramtype"><a class="el" href="struct_lo_ra_w_a_n_join_event__t.html">LoRaWANJoinEvent_t</a> * </td>
|
|
<td class="paramname"><em>joinEvent</em> = <code>NULL</code> </td>
|
|
</tr>
|
|
<tr>
|
|
<td></td>
|
|
<td>)</td>
|
|
<td></td><td></td>
|
|
</tr>
|
|
</table>
|
|
</td>
|
|
<td class="mlabels-right">
|
|
<span class="mlabels"><span class="mlabel">virtual</span></span> </td>
|
|
</tr>
|
|
</table>
|
|
</div><div class="memdoc">
|
|
|
|
<p>Join network by restoring OTAA session or performing over-the-air activation. By this procedure, the device will perform an exchange with the network server and set all necessary configuration. </p>
|
|
<dl class="params"><dt>Parameters</dt><dd>
|
|
<table class="params">
|
|
<tr><td class="paramname">joinDr</td><td>The datarate at which to send the join-request and any subsequent uplinks (unless ADR is enabled) </td></tr>
|
|
</table>
|
|
</dd>
|
|
</dl>
|
|
<dl class="section return"><dt>Returns</dt><dd><a class="el" href="group__status__codes.html">Status Codes</a> </dd></dl>
|
|
|
|
</div>
|
|
</div>
|
|
<a id="a43b259fd8804ef8d9d4922962e9ecae5" name="a43b259fd8804ef8d9d4922962e9ecae5"></a>
|
|
<h2 class="memtitle"><span class="permalink"><a href="#a43b259fd8804ef8d9d4922962e9ecae5">◆ </a></span>beginABP()</h2>
|
|
|
|
<div class="memitem">
|
|
<div class="memproto">
|
|
<table class="memname">
|
|
<tr>
|
|
<td class="memname">int16_t LoRaWANNode::beginABP </td>
|
|
<td>(</td>
|
|
<td class="paramtype">uint32_t </td>
|
|
<td class="paramname"><em>addr</em>, </td>
|
|
</tr>
|
|
<tr>
|
|
<td class="paramkey"></td>
|
|
<td></td>
|
|
<td class="paramtype">const uint8_t * </td>
|
|
<td class="paramname"><em>fNwkSIntKey</em>, </td>
|
|
</tr>
|
|
<tr>
|
|
<td class="paramkey"></td>
|
|
<td></td>
|
|
<td class="paramtype">const uint8_t * </td>
|
|
<td class="paramname"><em>sNwkSIntKey</em>, </td>
|
|
</tr>
|
|
<tr>
|
|
<td class="paramkey"></td>
|
|
<td></td>
|
|
<td class="paramtype">const uint8_t * </td>
|
|
<td class="paramname"><em>nwkSEncKey</em>, </td>
|
|
</tr>
|
|
<tr>
|
|
<td class="paramkey"></td>
|
|
<td></td>
|
|
<td class="paramtype">const uint8_t * </td>
|
|
<td class="paramname"><em>appSKey</em> </td>
|
|
</tr>
|
|
<tr>
|
|
<td></td>
|
|
<td>)</td>
|
|
<td></td><td></td>
|
|
</tr>
|
|
</table>
|
|
</div><div class="memdoc">
|
|
|
|
<p>Set the device credentials and activation configuration. </p>
|
|
<dl class="params"><dt>Parameters</dt><dd>
|
|
<table class="params">
|
|
<tr><td class="paramname">addr</td><td>Device address. </td></tr>
|
|
<tr><td class="paramname">fNwkSIntKey</td><td>Pointer to the Forwarding network session (LoRaWAN 1.1), NULL for LoRaWAN 1.0. </td></tr>
|
|
<tr><td class="paramname">sNwkSIntKey</td><td>Pointer to the Serving network session (LoRaWAN 1.1), NULL for LoRaWAN 1.0. </td></tr>
|
|
<tr><td class="paramname">nwkSEncKey</td><td>Pointer to the MAC command network session key [NwkSEncKey] (LoRaWAN 1.1) or network session AES-128 key [NwkSKey] (LoRaWAN 1.0). </td></tr>
|
|
<tr><td class="paramname">appSKey</td><td>Pointer to the application session AES-128 key. </td></tr>
|
|
</table>
|
|
</dd>
|
|
</dl>
|
|
<dl class="section return"><dt>Returns</dt><dd><a class="el" href="group__status__codes.html">Status Codes</a> </dd></dl>
|
|
|
|
</div>
|
|
</div>
|
|
<a id="ab2df20a240812f184786dda5ace171ef" name="ab2df20a240812f184786dda5ace171ef"></a>
|
|
<h2 class="memtitle"><span class="permalink"><a href="#ab2df20a240812f184786dda5ace171ef">◆ </a></span>beginOTAA()</h2>
|
|
|
|
<div class="memitem">
|
|
<div class="memproto">
|
|
<table class="memname">
|
|
<tr>
|
|
<td class="memname">int16_t LoRaWANNode::beginOTAA </td>
|
|
<td>(</td>
|
|
<td class="paramtype">uint64_t </td>
|
|
<td class="paramname"><em>joinEUI</em>, </td>
|
|
</tr>
|
|
<tr>
|
|
<td class="paramkey"></td>
|
|
<td></td>
|
|
<td class="paramtype">uint64_t </td>
|
|
<td class="paramname"><em>devEUI</em>, </td>
|
|
</tr>
|
|
<tr>
|
|
<td class="paramkey"></td>
|
|
<td></td>
|
|
<td class="paramtype">const uint8_t * </td>
|
|
<td class="paramname"><em>nwkKey</em>, </td>
|
|
</tr>
|
|
<tr>
|
|
<td class="paramkey"></td>
|
|
<td></td>
|
|
<td class="paramtype">const uint8_t * </td>
|
|
<td class="paramname"><em>appKey</em> </td>
|
|
</tr>
|
|
<tr>
|
|
<td></td>
|
|
<td>)</td>
|
|
<td></td><td></td>
|
|
</tr>
|
|
</table>
|
|
</div><div class="memdoc">
|
|
|
|
<p>Set the device credentials and activation configuration. </p>
|
|
<dl class="params"><dt>Parameters</dt><dd>
|
|
<table class="params">
|
|
<tr><td class="paramname">joinEUI</td><td>8-byte application identifier. </td></tr>
|
|
<tr><td class="paramname">devEUI</td><td>8-byte device identifier. </td></tr>
|
|
<tr><td class="paramname">nwkKey</td><td>Pointer to the network AES-128 key. </td></tr>
|
|
<tr><td class="paramname">appKey</td><td>Pointer to the application AES-128 key. </td></tr>
|
|
</table>
|
|
</dd>
|
|
</dl>
|
|
<dl class="section return"><dt>Returns</dt><dd><a class="el" href="group__status__codes.html">Status Codes</a> </dd></dl>
|
|
|
|
</div>
|
|
</div>
|
|
<a id="a5bb50904544f331806fd744ab5b99efa" name="a5bb50904544f331806fd744ab5b99efa"></a>
|
|
<h2 class="memtitle"><span class="permalink"><a href="#a5bb50904544f331806fd744ab5b99efa">◆ </a></span>dutyCycleInterval()</h2>
|
|
|
|
<div class="memitem">
|
|
<div class="memproto">
|
|
<table class="memname">
|
|
<tr>
|
|
<td class="memname"><a class="el" href="group__typedefs.html#ga210f31dd2bff7fb80563275648a5bbbd">RadioLibTime_t</a> LoRaWANNode::dutyCycleInterval </td>
|
|
<td>(</td>
|
|
<td class="paramtype"><a class="el" href="group__typedefs.html#ga210f31dd2bff7fb80563275648a5bbbd">RadioLibTime_t</a> </td>
|
|
<td class="paramname"><em>msPerHour</em>, </td>
|
|
</tr>
|
|
<tr>
|
|
<td class="paramkey"></td>
|
|
<td></td>
|
|
<td class="paramtype"><a class="el" href="group__typedefs.html#ga210f31dd2bff7fb80563275648a5bbbd">RadioLibTime_t</a> </td>
|
|
<td class="paramname"><em>airtime</em> </td>
|
|
</tr>
|
|
<tr>
|
|
<td></td>
|
|
<td>)</td>
|
|
<td></td><td></td>
|
|
</tr>
|
|
</table>
|
|
</div><div class="memdoc">
|
|
|
|
<p>Calculate the minimum interval to adhere to a certain dutyCycle. This interval is based on the ToA of one uplink and does not actually keep track of total airtime. </p>
|
|
<dl class="params"><dt>Parameters</dt><dd>
|
|
<table class="params">
|
|
<tr><td class="paramname">msPerHour</td><td>The maximum allowed duty cycle (in milliseconds per hour). </td></tr>
|
|
<tr><td class="paramname">airtime</td><td>The airtime of the uplink. </td></tr>
|
|
</table>
|
|
</dd>
|
|
</dl>
|
|
<dl class="section return"><dt>Returns</dt><dd>Required interval (delay) in milliseconds between consecutive uplinks. </dd></dl>
|
|
|
|
</div>
|
|
</div>
|
|
<a id="a84004883006b4a498d4899874952445b" name="a84004883006b4a498d4899874952445b"></a>
|
|
<h2 class="memtitle"><span class="permalink"><a href="#a84004883006b4a498d4899874952445b">◆ </a></span>getBufferNonces()</h2>
|
|
|
|
<div class="memitem">
|
|
<div class="memproto">
|
|
<table class="memname">
|
|
<tr>
|
|
<td class="memname">uint8_t * LoRaWANNode::getBufferNonces </td>
|
|
<td>(</td>
|
|
<td class="paramname"></td><td>)</td>
|
|
<td></td>
|
|
</tr>
|
|
</table>
|
|
</div><div class="memdoc">
|
|
|
|
<p>Returns the pointer to the internal buffer that holds the LW base parameters. </p>
|
|
<dl class="section return"><dt>Returns</dt><dd>Pointer to uint8_t array of size RADIOLIB_LORAWAN_NONCES_BUF_SIZE </dd></dl>
|
|
|
|
</div>
|
|
</div>
|
|
<a id="a90369a4f2c4da11527872a7bbbf9ab06" name="a90369a4f2c4da11527872a7bbbf9ab06"></a>
|
|
<h2 class="memtitle"><span class="permalink"><a href="#a90369a4f2c4da11527872a7bbbf9ab06">◆ </a></span>getBufferSession()</h2>
|
|
|
|
<div class="memitem">
|
|
<div class="memproto">
|
|
<table class="memname">
|
|
<tr>
|
|
<td class="memname">uint8_t * LoRaWANNode::getBufferSession </td>
|
|
<td>(</td>
|
|
<td class="paramname"></td><td>)</td>
|
|
<td></td>
|
|
</tr>
|
|
</table>
|
|
</div><div class="memdoc">
|
|
|
|
<p>Returns the pointer to the internal buffer that holds the LW session parameters. </p>
|
|
<dl class="section return"><dt>Returns</dt><dd>Pointer to uint8_t array of size RADIOLIB_LORAWAN_SESSION_BUF_SIZE </dd></dl>
|
|
|
|
</div>
|
|
</div>
|
|
<a id="aee0590cc9123ceac4c822eabed3150c6" name="aee0590cc9123ceac4c822eabed3150c6"></a>
|
|
<h2 class="memtitle"><span class="permalink"><a href="#aee0590cc9123ceac4c822eabed3150c6">◆ </a></span>getDevAddr()</h2>
|
|
|
|
<div class="memitem">
|
|
<div class="memproto">
|
|
<table class="memname">
|
|
<tr>
|
|
<td class="memname">uint32_t LoRaWANNode::getDevAddr </td>
|
|
<td>(</td>
|
|
<td class="paramname"></td><td>)</td>
|
|
<td></td>
|
|
</tr>
|
|
</table>
|
|
</div><div class="memdoc">
|
|
|
|
<p>Returns the DevAddr of the device, regardless of OTAA or ABP mode. </p>
|
|
<dl class="section return"><dt>Returns</dt><dd>4-byte DevAddr </dd></dl>
|
|
|
|
</div>
|
|
</div>
|
|
<a id="a683b02b63867bb7de5df45c94d190305" name="a683b02b63867bb7de5df45c94d190305"></a>
|
|
<h2 class="memtitle"><span class="permalink"><a href="#a683b02b63867bb7de5df45c94d190305">◆ </a></span>getLastToA()</h2>
|
|
|
|
<div class="memitem">
|
|
<div class="memproto">
|
|
<table class="memname">
|
|
<tr>
|
|
<td class="memname"><a class="el" href="group__typedefs.html#ga210f31dd2bff7fb80563275648a5bbbd">RadioLibTime_t</a> LoRaWANNode::getLastToA </td>
|
|
<td>(</td>
|
|
<td class="paramname"></td><td>)</td>
|
|
<td></td>
|
|
</tr>
|
|
</table>
|
|
</div><div class="memdoc">
|
|
|
|
<p>Get the Time-on-air of the last uplink message (in milliseconds). </p>
|
|
<dl class="section return"><dt>Returns</dt><dd>(RadioLibTime_t) time-on-air (ToA) of last uplink message (in milliseconds). </dd></dl>
|
|
|
|
</div>
|
|
</div>
|
|
<a id="a9e6e1ce4296364606ff8b10fb5f971de" name="a9e6e1ce4296364606ff8b10fb5f971de"></a>
|
|
<h2 class="memtitle"><span class="permalink"><a href="#a9e6e1ce4296364606ff8b10fb5f971de">◆ </a></span>getMacDeviceTimeAns()</h2>
|
|
|
|
<div class="memitem">
|
|
<div class="memproto">
|
|
<table class="memname">
|
|
<tr>
|
|
<td class="memname">int16_t LoRaWANNode::getMacDeviceTimeAns </td>
|
|
<td>(</td>
|
|
<td class="paramtype">uint32_t * </td>
|
|
<td class="paramname"><em>gpsEpoch</em>, </td>
|
|
</tr>
|
|
<tr>
|
|
<td class="paramkey"></td>
|
|
<td></td>
|
|
<td class="paramtype">uint8_t * </td>
|
|
<td class="paramname"><em>fraction</em>, </td>
|
|
</tr>
|
|
<tr>
|
|
<td class="paramkey"></td>
|
|
<td></td>
|
|
<td class="paramtype">bool </td>
|
|
<td class="paramname"><em>returnUnix</em> = <code>true</code> </td>
|
|
</tr>
|
|
<tr>
|
|
<td></td>
|
|
<td>)</td>
|
|
<td></td><td></td>
|
|
</tr>
|
|
</table>
|
|
</div><div class="memdoc">
|
|
|
|
<p>Returns the network time after requesting a DeviceTime MAC command. Returns 'true' if a network response was successfully parsed. Returns 'false' if there was no network response / parsing failed. </p>
|
|
<dl class="params"><dt>Parameters</dt><dd>
|
|
<table class="params">
|
|
<tr><td class="paramname">gpsEpoch</td><td>Number of seconds since GPS epoch (Jan. 6th 1980) </td></tr>
|
|
<tr><td class="paramname">fraction</td><td>Fractional-second, in 1/256-second steps </td></tr>
|
|
<tr><td class="paramname">returnUnix</td><td>If true, returns Unix timestamp instead of GPS (default true) </td></tr>
|
|
</table>
|
|
</dd>
|
|
</dl>
|
|
<dl class="section return"><dt>Returns</dt><dd><a class="el" href="group__status__codes.html">Status Codes</a> </dd></dl>
|
|
|
|
</div>
|
|
</div>
|
|
<a id="adf038f331c1dc954dafc2668e7a31ca0" name="adf038f331c1dc954dafc2668e7a31ca0"></a>
|
|
<h2 class="memtitle"><span class="permalink"><a href="#adf038f331c1dc954dafc2668e7a31ca0">◆ </a></span>getMacLinkCheckAns()</h2>
|
|
|
|
<div class="memitem">
|
|
<div class="memproto">
|
|
<table class="memname">
|
|
<tr>
|
|
<td class="memname">int16_t LoRaWANNode::getMacLinkCheckAns </td>
|
|
<td>(</td>
|
|
<td class="paramtype">uint8_t * </td>
|
|
<td class="paramname"><em>margin</em>, </td>
|
|
</tr>
|
|
<tr>
|
|
<td class="paramkey"></td>
|
|
<td></td>
|
|
<td class="paramtype">uint8_t * </td>
|
|
<td class="paramname"><em>gwCnt</em> </td>
|
|
</tr>
|
|
<tr>
|
|
<td></td>
|
|
<td>)</td>
|
|
<td></td><td></td>
|
|
</tr>
|
|
</table>
|
|
</div><div class="memdoc">
|
|
|
|
<p>Returns the quality of connectivity after requesting a LinkCheck MAC command. Returns 'true' if a network response was successfully parsed. Returns 'false' if there was no network response / parsing failed. </p>
|
|
<dl class="params"><dt>Parameters</dt><dd>
|
|
<table class="params">
|
|
<tr><td class="paramname">margin</td><td>Link margin in dB of LinkCheckReq demodulation at gateway side. </td></tr>
|
|
<tr><td class="paramname">gwCnt</td><td>Number of gateways that received the LinkCheckReq. </td></tr>
|
|
</table>
|
|
</dd>
|
|
</dl>
|
|
<dl class="section return"><dt>Returns</dt><dd><a class="el" href="group__status__codes.html">Status Codes</a> </dd></dl>
|
|
|
|
</div>
|
|
</div>
|
|
<a id="a16c7ae2edfe324e11498b13aa042665f" name="a16c7ae2edfe324e11498b13aa042665f"></a>
|
|
<h2 class="memtitle"><span class="permalink"><a href="#a16c7ae2edfe324e11498b13aa042665f">◆ </a></span>scheduleTransmission()</h2>
|
|
|
|
<div class="memitem">
|
|
<div class="memproto">
|
|
<table class="memname">
|
|
<tr>
|
|
<td class="memname">void LoRaWANNode::scheduleTransmission </td>
|
|
<td>(</td>
|
|
<td class="paramtype"><a class="el" href="group__typedefs.html#ga210f31dd2bff7fb80563275648a5bbbd">RadioLibTime_t</a> </td>
|
|
<td class="paramname"><em>tUplink</em></td><td>)</td>
|
|
<td></td>
|
|
</tr>
|
|
</table>
|
|
</div><div class="memdoc">
|
|
|
|
<p>Set the exact time a transmission should occur. Note: this is the internal clock time. On Arduino platforms, this is the usual time supplied by millis(). If the supplied time is larger than the current time, <a class="el" href="class_lo_ra_w_a_n_node.html#a11c2fbe631063da69355f8d74f4bf3b8" title="Send a message to the server and wait for a downlink during Rx1 and/or Rx2 window.">sendReceive()</a> or uplink() will delay until the scheduled time. </p>
|
|
<dl class="params"><dt>Parameters</dt><dd>
|
|
<table class="params">
|
|
<tr><td class="paramname">tUplink</td><td>Transmission time in milliseconds, based on internal clock. </td></tr>
|
|
</table>
|
|
</dd>
|
|
</dl>
|
|
|
|
</div>
|
|
</div>
|
|
<a id="adef05650cf4eb92042ca5e2688c1e164" name="adef05650cf4eb92042ca5e2688c1e164"></a>
|
|
<h2 class="memtitle"><span class="permalink"><a href="#adef05650cf4eb92042ca5e2688c1e164">◆ </a></span>sendMacCommandReq()</h2>
|
|
|
|
<div class="memitem">
|
|
<div class="memproto">
|
|
<table class="memname">
|
|
<tr>
|
|
<td class="memname">int16_t LoRaWANNode::sendMacCommandReq </td>
|
|
<td>(</td>
|
|
<td class="paramtype">uint8_t </td>
|
|
<td class="paramname"><em>cid</em></td><td>)</td>
|
|
<td></td>
|
|
</tr>
|
|
</table>
|
|
</div><div class="memdoc">
|
|
|
|
<p>Add a MAC command to the uplink queue. Only LinkCheck and DeviceTime are available to the user. Other commands are ignored; duplicate MAC commands are discarded. </p>
|
|
<dl class="params"><dt>Parameters</dt><dd>
|
|
<table class="params">
|
|
<tr><td class="paramname">cid</td><td>ID of the MAC command </td></tr>
|
|
</table>
|
|
</dd>
|
|
</dl>
|
|
<dl class="section return"><dt>Returns</dt><dd><a class="el" href="group__status__codes.html">Status Codes</a> </dd></dl>
|
|
|
|
</div>
|
|
</div>
|
|
<a id="a11c2fbe631063da69355f8d74f4bf3b8" name="a11c2fbe631063da69355f8d74f4bf3b8"></a>
|
|
<h2 class="memtitle"><span class="permalink"><a href="#a11c2fbe631063da69355f8d74f4bf3b8">◆ </a></span>sendReceive() <span class="overload">[1/4]</span></h2>
|
|
|
|
<div class="memitem">
|
|
<div class="memproto">
|
|
<table class="mlabels">
|
|
<tr>
|
|
<td class="mlabels-left">
|
|
<table class="memname">
|
|
<tr>
|
|
<td class="memname">int16_t LoRaWANNode::sendReceive </td>
|
|
<td>(</td>
|
|
<td class="paramtype">const char * </td>
|
|
<td class="paramname"><em>strUp</em>, </td>
|
|
</tr>
|
|
<tr>
|
|
<td class="paramkey"></td>
|
|
<td></td>
|
|
<td class="paramtype">uint8_t </td>
|
|
<td class="paramname"><em>fPort</em>, </td>
|
|
</tr>
|
|
<tr>
|
|
<td class="paramkey"></td>
|
|
<td></td>
|
|
<td class="paramtype">bool </td>
|
|
<td class="paramname"><em>isConfirmed</em> = <code>false</code>, </td>
|
|
</tr>
|
|
<tr>
|
|
<td class="paramkey"></td>
|
|
<td></td>
|
|
<td class="paramtype"><a class="el" href="struct_lo_ra_w_a_n_event__t.html">LoRaWANEvent_t</a> * </td>
|
|
<td class="paramname"><em>eventUp</em> = <code>NULL</code>, </td>
|
|
</tr>
|
|
<tr>
|
|
<td class="paramkey"></td>
|
|
<td></td>
|
|
<td class="paramtype"><a class="el" href="struct_lo_ra_w_a_n_event__t.html">LoRaWANEvent_t</a> * </td>
|
|
<td class="paramname"><em>eventDown</em> = <code>NULL</code> </td>
|
|
</tr>
|
|
<tr>
|
|
<td></td>
|
|
<td>)</td>
|
|
<td></td><td></td>
|
|
</tr>
|
|
</table>
|
|
</td>
|
|
<td class="mlabels-right">
|
|
<span class="mlabels"><span class="mlabel">virtual</span></span> </td>
|
|
</tr>
|
|
</table>
|
|
</div><div class="memdoc">
|
|
|
|
<p>Send a message to the server and wait for a downlink during Rx1 and/or Rx2 window. </p>
|
|
<dl class="params"><dt>Parameters</dt><dd>
|
|
<table class="params">
|
|
<tr><td class="paramname">strUp</td><td>C-string that will be transmitted. </td></tr>
|
|
<tr><td class="paramname">fPort</td><td>Port number to send the message to. </td></tr>
|
|
<tr><td class="paramname">isConfirmed</td><td>Whether to send a confirmed uplink or not. </td></tr>
|
|
<tr><td class="paramname">eventUp</td><td>Pointer to a structure to store extra information about the uplink event (fPort, frame counter, etc.). If set to NULL, no extra information will be passed to the user. </td></tr>
|
|
<tr><td class="paramname">eventDown</td><td>Pointer to a structure to store extra information about the downlink event (fPort, frame counter, etc.). If set to NULL, no extra information will be passed to the user. </td></tr>
|
|
</table>
|
|
</dd>
|
|
</dl>
|
|
<dl class="section return"><dt>Returns</dt><dd>Window number > 0 if downlink was received, 0 is no downlink was received, otherwise <a class="el" href="group__status__codes.html">Status Codes</a> </dd></dl>
|
|
|
|
</div>
|
|
</div>
|
|
<a id="a85cf006ffd97ece3b2d2974b715540cb" name="a85cf006ffd97ece3b2d2974b715540cb"></a>
|
|
<h2 class="memtitle"><span class="permalink"><a href="#a85cf006ffd97ece3b2d2974b715540cb">◆ </a></span>sendReceive() <span class="overload">[2/4]</span></h2>
|
|
|
|
<div class="memitem">
|
|
<div class="memproto">
|
|
<table class="mlabels">
|
|
<tr>
|
|
<td class="mlabels-left">
|
|
<table class="memname">
|
|
<tr>
|
|
<td class="memname">int16_t LoRaWANNode::sendReceive </td>
|
|
<td>(</td>
|
|
<td class="paramtype">const char * </td>
|
|
<td class="paramname"><em>strUp</em>, </td>
|
|
</tr>
|
|
<tr>
|
|
<td class="paramkey"></td>
|
|
<td></td>
|
|
<td class="paramtype">uint8_t </td>
|
|
<td class="paramname"><em>fPort</em>, </td>
|
|
</tr>
|
|
<tr>
|
|
<td class="paramkey"></td>
|
|
<td></td>
|
|
<td class="paramtype">uint8_t * </td>
|
|
<td class="paramname"><em>dataDown</em>, </td>
|
|
</tr>
|
|
<tr>
|
|
<td class="paramkey"></td>
|
|
<td></td>
|
|
<td class="paramtype">size_t * </td>
|
|
<td class="paramname"><em>lenDown</em>, </td>
|
|
</tr>
|
|
<tr>
|
|
<td class="paramkey"></td>
|
|
<td></td>
|
|
<td class="paramtype">bool </td>
|
|
<td class="paramname"><em>isConfirmed</em> = <code>false</code>, </td>
|
|
</tr>
|
|
<tr>
|
|
<td class="paramkey"></td>
|
|
<td></td>
|
|
<td class="paramtype"><a class="el" href="struct_lo_ra_w_a_n_event__t.html">LoRaWANEvent_t</a> * </td>
|
|
<td class="paramname"><em>eventUp</em> = <code>NULL</code>, </td>
|
|
</tr>
|
|
<tr>
|
|
<td class="paramkey"></td>
|
|
<td></td>
|
|
<td class="paramtype"><a class="el" href="struct_lo_ra_w_a_n_event__t.html">LoRaWANEvent_t</a> * </td>
|
|
<td class="paramname"><em>eventDown</em> = <code>NULL</code> </td>
|
|
</tr>
|
|
<tr>
|
|
<td></td>
|
|
<td>)</td>
|
|
<td></td><td></td>
|
|
</tr>
|
|
</table>
|
|
</td>
|
|
<td class="mlabels-right">
|
|
<span class="mlabels"><span class="mlabel">virtual</span></span> </td>
|
|
</tr>
|
|
</table>
|
|
</div><div class="memdoc">
|
|
|
|
<p>Send a message to the server and wait for a downlink during Rx1 and/or Rx2 window. </p>
|
|
<dl class="params"><dt>Parameters</dt><dd>
|
|
<table class="params">
|
|
<tr><td class="paramname">strUp</td><td>C-string that will be transmitted. </td></tr>
|
|
<tr><td class="paramname">fPort</td><td>Port number to send the message to. </td></tr>
|
|
<tr><td class="paramname">dataDown</td><td>Buffer to save received data into. </td></tr>
|
|
<tr><td class="paramname">lenDown</td><td>Pointer to variable that will be used to save the number of received bytes. </td></tr>
|
|
<tr><td class="paramname">isConfirmed</td><td>Whether to send a confirmed uplink or not. </td></tr>
|
|
<tr><td class="paramname">eventUp</td><td>Pointer to a structure to store extra information about the uplink event (fPort, frame counter, etc.). If set to NULL, no extra information will be passed to the user. </td></tr>
|
|
<tr><td class="paramname">eventDown</td><td>Pointer to a structure to store extra information about the downlink event (fPort, frame counter, etc.). If set to NULL, no extra information will be passed to the user. </td></tr>
|
|
</table>
|
|
</dd>
|
|
</dl>
|
|
<dl class="section return"><dt>Returns</dt><dd>Window number > 0 if downlink was received, 0 is no downlink was received, otherwise <a class="el" href="group__status__codes.html">Status Codes</a> </dd></dl>
|
|
|
|
</div>
|
|
</div>
|
|
<a id="aafb2006b8d75549f667608156b5f8a5a" name="aafb2006b8d75549f667608156b5f8a5a"></a>
|
|
<h2 class="memtitle"><span class="permalink"><a href="#aafb2006b8d75549f667608156b5f8a5a">◆ </a></span>sendReceive() <span class="overload">[3/4]</span></h2>
|
|
|
|
<div class="memitem">
|
|
<div class="memproto">
|
|
<table class="mlabels">
|
|
<tr>
|
|
<td class="mlabels-left">
|
|
<table class="memname">
|
|
<tr>
|
|
<td class="memname">int16_t LoRaWANNode::sendReceive </td>
|
|
<td>(</td>
|
|
<td class="paramtype">const uint8_t * </td>
|
|
<td class="paramname"><em>dataUp</em>, </td>
|
|
</tr>
|
|
<tr>
|
|
<td class="paramkey"></td>
|
|
<td></td>
|
|
<td class="paramtype">size_t </td>
|
|
<td class="paramname"><em>lenUp</em>, </td>
|
|
</tr>
|
|
<tr>
|
|
<td class="paramkey"></td>
|
|
<td></td>
|
|
<td class="paramtype">uint8_t </td>
|
|
<td class="paramname"><em>fPort</em>, </td>
|
|
</tr>
|
|
<tr>
|
|
<td class="paramkey"></td>
|
|
<td></td>
|
|
<td class="paramtype">uint8_t * </td>
|
|
<td class="paramname"><em>dataDown</em>, </td>
|
|
</tr>
|
|
<tr>
|
|
<td class="paramkey"></td>
|
|
<td></td>
|
|
<td class="paramtype">size_t * </td>
|
|
<td class="paramname"><em>lenDown</em>, </td>
|
|
</tr>
|
|
<tr>
|
|
<td class="paramkey"></td>
|
|
<td></td>
|
|
<td class="paramtype">bool </td>
|
|
<td class="paramname"><em>isConfirmed</em> = <code>false</code>, </td>
|
|
</tr>
|
|
<tr>
|
|
<td class="paramkey"></td>
|
|
<td></td>
|
|
<td class="paramtype"><a class="el" href="struct_lo_ra_w_a_n_event__t.html">LoRaWANEvent_t</a> * </td>
|
|
<td class="paramname"><em>eventUp</em> = <code>NULL</code>, </td>
|
|
</tr>
|
|
<tr>
|
|
<td class="paramkey"></td>
|
|
<td></td>
|
|
<td class="paramtype"><a class="el" href="struct_lo_ra_w_a_n_event__t.html">LoRaWANEvent_t</a> * </td>
|
|
<td class="paramname"><em>eventDown</em> = <code>NULL</code> </td>
|
|
</tr>
|
|
<tr>
|
|
<td></td>
|
|
<td>)</td>
|
|
<td></td><td></td>
|
|
</tr>
|
|
</table>
|
|
</td>
|
|
<td class="mlabels-right">
|
|
<span class="mlabels"><span class="mlabel">virtual</span></span> </td>
|
|
</tr>
|
|
</table>
|
|
</div><div class="memdoc">
|
|
|
|
<p>Send a message to the server and wait for a downlink during Rx1 and/or Rx2 window. </p>
|
|
<dl class="params"><dt>Parameters</dt><dd>
|
|
<table class="params">
|
|
<tr><td class="paramname">dataUp</td><td>Data to send. </td></tr>
|
|
<tr><td class="paramname">lenUp</td><td>Length of the data. </td></tr>
|
|
<tr><td class="paramname">fPort</td><td>Port number to send the message to. </td></tr>
|
|
<tr><td class="paramname">dataDown</td><td>Buffer to save received data into. </td></tr>
|
|
<tr><td class="paramname">lenDown</td><td>Pointer to variable that will be used to save the number of received bytes. </td></tr>
|
|
<tr><td class="paramname">isConfirmed</td><td>Whether to send a confirmed uplink or not. </td></tr>
|
|
<tr><td class="paramname">eventUp</td><td>Pointer to a structure to store extra information about the uplink event (fPort, frame counter, etc.). If set to NULL, no extra information will be passed to the user. </td></tr>
|
|
<tr><td class="paramname">eventDown</td><td>Pointer to a structure to store extra information about the downlink event (fPort, frame counter, etc.). If set to NULL, no extra information will be passed to the user. </td></tr>
|
|
</table>
|
|
</dd>
|
|
</dl>
|
|
<dl class="section return"><dt>Returns</dt><dd>Window number > 0 if downlink was received, 0 is no downlink was received, otherwise <a class="el" href="group__status__codes.html">Status Codes</a> </dd></dl>
|
|
|
|
</div>
|
|
</div>
|
|
<a id="af9d5fcdbbb4fa357beedb820e395ae37" name="af9d5fcdbbb4fa357beedb820e395ae37"></a>
|
|
<h2 class="memtitle"><span class="permalink"><a href="#af9d5fcdbbb4fa357beedb820e395ae37">◆ </a></span>sendReceive() <span class="overload">[4/4]</span></h2>
|
|
|
|
<div class="memitem">
|
|
<div class="memproto">
|
|
<table class="mlabels">
|
|
<tr>
|
|
<td class="mlabels-left">
|
|
<table class="memname">
|
|
<tr>
|
|
<td class="memname">int16_t LoRaWANNode::sendReceive </td>
|
|
<td>(</td>
|
|
<td class="paramtype">const uint8_t * </td>
|
|
<td class="paramname"><em>dataUp</em>, </td>
|
|
</tr>
|
|
<tr>
|
|
<td class="paramkey"></td>
|
|
<td></td>
|
|
<td class="paramtype">size_t </td>
|
|
<td class="paramname"><em>lenUp</em>, </td>
|
|
</tr>
|
|
<tr>
|
|
<td class="paramkey"></td>
|
|
<td></td>
|
|
<td class="paramtype">uint8_t </td>
|
|
<td class="paramname"><em>fPort</em> = <code>1</code>, </td>
|
|
</tr>
|
|
<tr>
|
|
<td class="paramkey"></td>
|
|
<td></td>
|
|
<td class="paramtype">bool </td>
|
|
<td class="paramname"><em>isConfirmed</em> = <code>false</code>, </td>
|
|
</tr>
|
|
<tr>
|
|
<td class="paramkey"></td>
|
|
<td></td>
|
|
<td class="paramtype"><a class="el" href="struct_lo_ra_w_a_n_event__t.html">LoRaWANEvent_t</a> * </td>
|
|
<td class="paramname"><em>eventUp</em> = <code>NULL</code>, </td>
|
|
</tr>
|
|
<tr>
|
|
<td class="paramkey"></td>
|
|
<td></td>
|
|
<td class="paramtype"><a class="el" href="struct_lo_ra_w_a_n_event__t.html">LoRaWANEvent_t</a> * </td>
|
|
<td class="paramname"><em>eventDown</em> = <code>NULL</code> </td>
|
|
</tr>
|
|
<tr>
|
|
<td></td>
|
|
<td>)</td>
|
|
<td></td><td></td>
|
|
</tr>
|
|
</table>
|
|
</td>
|
|
<td class="mlabels-right">
|
|
<span class="mlabels"><span class="mlabel">virtual</span></span> </td>
|
|
</tr>
|
|
</table>
|
|
</div><div class="memdoc">
|
|
|
|
<p>Send a message to the server and wait for a downlink but don't bother the user with downlink contents. </p>
|
|
<dl class="params"><dt>Parameters</dt><dd>
|
|
<table class="params">
|
|
<tr><td class="paramname">dataUp</td><td>Data to send. </td></tr>
|
|
<tr><td class="paramname">lenUp</td><td>Length of the data. </td></tr>
|
|
<tr><td class="paramname">fPort</td><td>Port number to send the message to. </td></tr>
|
|
<tr><td class="paramname">isConfirmed</td><td>Whether to send a confirmed uplink or not. </td></tr>
|
|
<tr><td class="paramname">eventUp</td><td>Pointer to a structure to store extra information about the uplink event (fPort, frame counter, etc.). If set to NULL, no extra information will be passed to the user. </td></tr>
|
|
<tr><td class="paramname">eventDown</td><td>Pointer to a structure to store extra information about the downlink event (fPort, frame counter, etc.). If set to NULL, no extra information will be passed to the user. </td></tr>
|
|
</table>
|
|
</dd>
|
|
</dl>
|
|
<dl class="section return"><dt>Returns</dt><dd>Window number > 0 if downlink was received, 0 is no downlink was received, otherwise <a class="el" href="group__status__codes.html">Status Codes</a> </dd></dl>
|
|
|
|
</div>
|
|
</div>
|
|
<a id="ae222275f807f472083ea6100c23c75ff" name="ae222275f807f472083ea6100c23c75ff"></a>
|
|
<h2 class="memtitle"><span class="permalink"><a href="#ae222275f807f472083ea6100c23c75ff">◆ </a></span>setADR()</h2>
|
|
|
|
<div class="memitem">
|
|
<div class="memproto">
|
|
<table class="memname">
|
|
<tr>
|
|
<td class="memname">void LoRaWANNode::setADR </td>
|
|
<td>(</td>
|
|
<td class="paramtype">bool </td>
|
|
<td class="paramname"><em>enable</em> = <code>true</code></td><td>)</td>
|
|
<td></td>
|
|
</tr>
|
|
</table>
|
|
</div><div class="memdoc">
|
|
|
|
<p>Toggle ADR to on or off. </p>
|
|
<dl class="params"><dt>Parameters</dt><dd>
|
|
<table class="params">
|
|
<tr><td class="paramname">enable</td><td>Whether to disable ADR or not. </td></tr>
|
|
</table>
|
|
</dd>
|
|
</dl>
|
|
|
|
</div>
|
|
</div>
|
|
<a id="ad99e2fa4738648a6f3efe72ff785def2" name="ad99e2fa4738648a6f3efe72ff785def2"></a>
|
|
<h2 class="memtitle"><span class="permalink"><a href="#ad99e2fa4738648a6f3efe72ff785def2">◆ </a></span>setBufferNonces()</h2>
|
|
|
|
<div class="memitem">
|
|
<div class="memproto">
|
|
<table class="memname">
|
|
<tr>
|
|
<td class="memname">int16_t LoRaWANNode::setBufferNonces </td>
|
|
<td>(</td>
|
|
<td class="paramtype">const uint8_t * </td>
|
|
<td class="paramname"><em>persistentBuffer</em></td><td>)</td>
|
|
<td></td>
|
|
</tr>
|
|
</table>
|
|
</div><div class="memdoc">
|
|
|
|
<p>Fill the internal buffer that holds the LW base parameters with a supplied buffer. </p>
|
|
<dl class="params"><dt>Parameters</dt><dd>
|
|
<table class="params">
|
|
<tr><td class="paramname">persistentBuffer</td><td>Buffer that should match the internal format (previously extracted using getBufferNonces) </td></tr>
|
|
</table>
|
|
</dd>
|
|
</dl>
|
|
<dl class="section return"><dt>Returns</dt><dd><a class="el" href="group__status__codes.html">Status Codes</a> </dd></dl>
|
|
|
|
</div>
|
|
</div>
|
|
<a id="aedeb50c9ccb81e8092233d34e039cfa4" name="aedeb50c9ccb81e8092233d34e039cfa4"></a>
|
|
<h2 class="memtitle"><span class="permalink"><a href="#aedeb50c9ccb81e8092233d34e039cfa4">◆ </a></span>setBufferSession()</h2>
|
|
|
|
<div class="memitem">
|
|
<div class="memproto">
|
|
<table class="memname">
|
|
<tr>
|
|
<td class="memname">int16_t LoRaWANNode::setBufferSession </td>
|
|
<td>(</td>
|
|
<td class="paramtype">const uint8_t * </td>
|
|
<td class="paramname"><em>persistentBuffer</em></td><td>)</td>
|
|
<td></td>
|
|
</tr>
|
|
</table>
|
|
</div><div class="memdoc">
|
|
|
|
<p>Fill the internal buffer that holds the LW session parameters with a supplied buffer. </p>
|
|
<dl class="params"><dt>Parameters</dt><dd>
|
|
<table class="params">
|
|
<tr><td class="paramname">persistentBuffer</td><td>Buffer that should match the internal format (previously extracted using getBufferSession) </td></tr>
|
|
</table>
|
|
</dd>
|
|
</dl>
|
|
<dl class="section return"><dt>Returns</dt><dd><a class="el" href="group__status__codes.html">Status Codes</a> </dd></dl>
|
|
|
|
</div>
|
|
</div>
|
|
<a id="a2d9a53560ebfbaf006eefd9761424d80" name="a2d9a53560ebfbaf006eefd9761424d80"></a>
|
|
<h2 class="memtitle"><span class="permalink"><a href="#a2d9a53560ebfbaf006eefd9761424d80">◆ </a></span>setCSMA()</h2>
|
|
|
|
<div class="memitem">
|
|
<div class="memproto">
|
|
<table class="memname">
|
|
<tr>
|
|
<td class="memname">void LoRaWANNode::setCSMA </td>
|
|
<td>(</td>
|
|
<td class="paramtype">bool </td>
|
|
<td class="paramname"><em>csmaEnabled</em>, </td>
|
|
</tr>
|
|
<tr>
|
|
<td class="paramkey"></td>
|
|
<td></td>
|
|
<td class="paramtype">uint8_t </td>
|
|
<td class="paramname"><em>maxChanges</em> = <code>4</code>, </td>
|
|
</tr>
|
|
<tr>
|
|
<td class="paramkey"></td>
|
|
<td></td>
|
|
<td class="paramtype">uint8_t </td>
|
|
<td class="paramname"><em>backoffMax</em> = <code>0</code>, </td>
|
|
</tr>
|
|
<tr>
|
|
<td class="paramkey"></td>
|
|
<td></td>
|
|
<td class="paramtype">uint8_t </td>
|
|
<td class="paramname"><em>difsSlots</em> = <code>2</code> </td>
|
|
</tr>
|
|
<tr>
|
|
<td></td>
|
|
<td>)</td>
|
|
<td></td><td></td>
|
|
</tr>
|
|
</table>
|
|
</div><div class="memdoc">
|
|
|
|
<p>Configures CSMA for LoRaWAN as per TR013, LoRa Alliance. </p>
|
|
<dl class="params"><dt>Parameters</dt><dd>
|
|
<table class="params">
|
|
<tr><td class="paramname">csmaEnabled</td><td>Enable/disable CSMA for LoRaWAN. </td></tr>
|
|
<tr><td class="paramname">maxChanges</td><td>Maximum number of channel hops if channel is used (default 4). </td></tr>
|
|
<tr><td class="paramname">backoffMax</td><td>Num of BO slots to be decremented after DIFS phase. 0 to disable BO (default). </td></tr>
|
|
<tr><td class="paramname">difsSlots</td><td>Num of CADs to estimate a clear CH (default 2). </td></tr>
|
|
</table>
|
|
</dd>
|
|
</dl>
|
|
|
|
</div>
|
|
</div>
|
|
<a id="a14e8a8a098df28ff5ee294f235500499" name="a14e8a8a098df28ff5ee294f235500499"></a>
|
|
<h2 class="memtitle"><span class="permalink"><a href="#a14e8a8a098df28ff5ee294f235500499">◆ </a></span>setDatarate()</h2>
|
|
|
|
<div class="memitem">
|
|
<div class="memproto">
|
|
<table class="memname">
|
|
<tr>
|
|
<td class="memname">int16_t LoRaWANNode::setDatarate </td>
|
|
<td>(</td>
|
|
<td class="paramtype">uint8_t </td>
|
|
<td class="paramname"><em>drUp</em></td><td>)</td>
|
|
<td></td>
|
|
</tr>
|
|
</table>
|
|
</div><div class="memdoc">
|
|
|
|
<p>Set uplink datarate. This should not be used when ADR is enabled. </p>
|
|
<dl class="params"><dt>Parameters</dt><dd>
|
|
<table class="params">
|
|
<tr><td class="paramname">drUp</td><td>Datarate to use for uplinks. </td></tr>
|
|
</table>
|
|
</dd>
|
|
</dl>
|
|
<dl class="section return"><dt>Returns</dt><dd><a class="el" href="group__status__codes.html">Status Codes</a> </dd></dl>
|
|
|
|
</div>
|
|
</div>
|
|
<a id="a5449e301634dff1838a1b024b4067034" name="a5449e301634dff1838a1b024b4067034"></a>
|
|
<h2 class="memtitle"><span class="permalink"><a href="#a5449e301634dff1838a1b024b4067034">◆ </a></span>setDeviceStatus()</h2>
|
|
|
|
<div class="memitem">
|
|
<div class="memproto">
|
|
<table class="memname">
|
|
<tr>
|
|
<td class="memname">void LoRaWANNode::setDeviceStatus </td>
|
|
<td>(</td>
|
|
<td class="paramtype">uint8_t </td>
|
|
<td class="paramname"><em>battLevel</em></td><td>)</td>
|
|
<td></td>
|
|
</tr>
|
|
</table>
|
|
</div><div class="memdoc">
|
|
|
|
<p>Set device status. </p>
|
|
<dl class="params"><dt>Parameters</dt><dd>
|
|
<table class="params">
|
|
<tr><td class="paramname">battLevel</td><td>Battery level to set. 0 for external power source, 1 for lowest battery, 254 for highest battery, 255 for unable to measure. </td></tr>
|
|
</table>
|
|
</dd>
|
|
</dl>
|
|
|
|
</div>
|
|
</div>
|
|
<a id="a3d4bbd6d382496838954ab4ac1168b77" name="a3d4bbd6d382496838954ab4ac1168b77"></a>
|
|
<h2 class="memtitle"><span class="permalink"><a href="#a3d4bbd6d382496838954ab4ac1168b77">◆ </a></span>setDutyCycle()</h2>
|
|
|
|
<div class="memitem">
|
|
<div class="memproto">
|
|
<table class="memname">
|
|
<tr>
|
|
<td class="memname">void LoRaWANNode::setDutyCycle </td>
|
|
<td>(</td>
|
|
<td class="paramtype">bool </td>
|
|
<td class="paramname"><em>enable</em> = <code>true</code>, </td>
|
|
</tr>
|
|
<tr>
|
|
<td class="paramkey"></td>
|
|
<td></td>
|
|
<td class="paramtype"><a class="el" href="group__typedefs.html#ga210f31dd2bff7fb80563275648a5bbbd">RadioLibTime_t</a> </td>
|
|
<td class="paramname"><em>msPerHour</em> = <code>0</code> </td>
|
|
</tr>
|
|
<tr>
|
|
<td></td>
|
|
<td>)</td>
|
|
<td></td><td></td>
|
|
</tr>
|
|
</table>
|
|
</div><div class="memdoc">
|
|
|
|
<p>Toggle adherence to dutyCycle limits to on or off. </p>
|
|
<dl class="params"><dt>Parameters</dt><dd>
|
|
<table class="params">
|
|
<tr><td class="paramname">enable</td><td>Whether to adhere to dutyCycle limits or not (default true). </td></tr>
|
|
<tr><td class="paramname">msPerHour</td><td>The maximum allowed Time-on-Air per hour in milliseconds (default 0 = maximum allowed for configured band). </td></tr>
|
|
</table>
|
|
</dd>
|
|
</dl>
|
|
|
|
</div>
|
|
</div>
|
|
<a id="a62bfe68f6fe63c2e408dccbff6a34a4f" name="a62bfe68f6fe63c2e408dccbff6a34a4f"></a>
|
|
<h2 class="memtitle"><span class="permalink"><a href="#a62bfe68f6fe63c2e408dccbff6a34a4f">◆ </a></span>setDwellTime()</h2>
|
|
|
|
<div class="memitem">
|
|
<div class="memproto">
|
|
<table class="memname">
|
|
<tr>
|
|
<td class="memname">void LoRaWANNode::setDwellTime </td>
|
|
<td>(</td>
|
|
<td class="paramtype">bool </td>
|
|
<td class="paramname"><em>enable</em>, </td>
|
|
</tr>
|
|
<tr>
|
|
<td class="paramkey"></td>
|
|
<td></td>
|
|
<td class="paramtype"><a class="el" href="group__typedefs.html#ga210f31dd2bff7fb80563275648a5bbbd">RadioLibTime_t</a> </td>
|
|
<td class="paramname"><em>msPerUplink</em> = <code>0</code> </td>
|
|
</tr>
|
|
<tr>
|
|
<td></td>
|
|
<td>)</td>
|
|
<td></td><td></td>
|
|
</tr>
|
|
</table>
|
|
</div><div class="memdoc">
|
|
|
|
<p>Set or disable uplink dwell time limitation; enabled by default if mandatory. </p>
|
|
<dl class="params"><dt>Parameters</dt><dd>
|
|
<table class="params">
|
|
<tr><td class="paramname">enable</td><td>Whether to adhere to dwellTime limits or not (default true). </td></tr>
|
|
<tr><td class="paramname">msPerUplink</td><td>The maximum allowed Time-on-Air per uplink in milliseconds (default 0 = band default value); make sure you follow regulations/law! </td></tr>
|
|
</table>
|
|
</dd>
|
|
</dl>
|
|
|
|
</div>
|
|
</div>
|
|
<a id="addfd8ac3d0bfe5a273e9ba10e51f8025" name="addfd8ac3d0bfe5a273e9ba10e51f8025"></a>
|
|
<h2 class="memtitle"><span class="permalink"><a href="#addfd8ac3d0bfe5a273e9ba10e51f8025">◆ </a></span>setRx2Dr()</h2>
|
|
|
|
<div class="memitem">
|
|
<div class="memproto">
|
|
<table class="memname">
|
|
<tr>
|
|
<td class="memname">int16_t LoRaWANNode::setRx2Dr </td>
|
|
<td>(</td>
|
|
<td class="paramtype">uint8_t </td>
|
|
<td class="paramname"><em>dr</em></td><td>)</td>
|
|
<td></td>
|
|
</tr>
|
|
</table>
|
|
</div><div class="memdoc">
|
|
|
|
<p>Configure the Rx2 datarate for ABP mode. This should not be needed for LoRaWAN 1.1 as it is configured through the first downlink. </p>
|
|
<dl class="params"><dt>Parameters</dt><dd>
|
|
<table class="params">
|
|
<tr><td class="paramname">dr</td><td>The datarate to be used for listening for downlinks in Rx2. </td></tr>
|
|
</table>
|
|
</dd>
|
|
</dl>
|
|
<dl class="section return"><dt>Returns</dt><dd><a class="el" href="group__status__codes.html">Status Codes</a> </dd></dl>
|
|
|
|
</div>
|
|
</div>
|
|
<a id="a9af613f7d923e7bdcfdbd020132c6d4b" name="a9af613f7d923e7bdcfdbd020132c6d4b"></a>
|
|
<h2 class="memtitle"><span class="permalink"><a href="#a9af613f7d923e7bdcfdbd020132c6d4b">◆ </a></span>setTxPower()</h2>
|
|
|
|
<div class="memitem">
|
|
<div class="memproto">
|
|
<table class="memname">
|
|
<tr>
|
|
<td class="memname">int16_t LoRaWANNode::setTxPower </td>
|
|
<td>(</td>
|
|
<td class="paramtype">int8_t </td>
|
|
<td class="paramname"><em>txPower</em></td><td>)</td>
|
|
<td></td>
|
|
</tr>
|
|
</table>
|
|
</div><div class="memdoc">
|
|
|
|
<p>Configure TX power of the radio module. </p>
|
|
<dl class="params"><dt>Parameters</dt><dd>
|
|
<table class="params">
|
|
<tr><td class="paramname">txPower</td><td>Output power during TX mode to be set in dBm. </td></tr>
|
|
</table>
|
|
</dd>
|
|
</dl>
|
|
<dl class="section return"><dt>Returns</dt><dd><a class="el" href="group__status__codes.html">Status Codes</a> </dd></dl>
|
|
|
|
</div>
|
|
</div>
|
|
<h2 class="groupheader">Member Data Documentation</h2>
|
|
<a id="a2176aa3d546e6b00e870a7e1e310c403" name="a2176aa3d546e6b00e870a7e1e310c403"></a>
|
|
<h2 class="memtitle"><span class="permalink"><a href="#a2176aa3d546e6b00e870a7e1e310c403">◆ </a></span>scanGuard</h2>
|
|
|
|
<div class="memitem">
|
|
<div class="memproto">
|
|
<table class="memname">
|
|
<tr>
|
|
<td class="memname"><a class="el" href="group__typedefs.html#ga210f31dd2bff7fb80563275648a5bbbd">RadioLibTime_t</a> LoRaWANNode::scanGuard = 5</td>
|
|
</tr>
|
|
</table>
|
|
</div><div class="memdoc">
|
|
|
|
<p>Rx window padding in milliseconds according to the spec, the Rx window must be at least enough time to effectively detect a preamble but we pad it a bit on both sides (start and end) to make sure it is wide enough The larger this number the more power will be consumed! So be careful about changing it. For debugging purposes 50 is a reasonable start, but for production devices it should be as low as possible. 0 is a valid time. </p>
|
|
<p>500 is the <b>maximum</b> value, but it is not a good idea to go anywhere near that. If you have to go above 50 you probably have a bug somewhere. Check your device timing. </p>
|
|
|
|
</div>
|
|
</div>
|
|
<hr/>The documentation for this class was generated from the following files:<ul>
|
|
<li>src/protocols/LoRaWAN/<a class="el" href="_lo_ra_w_a_n_8h_source.html">LoRaWAN.h</a></li>
|
|
<li>src/protocols/LoRaWAN/<b>LoRaWAN.cpp</b></li>
|
|
</ul>
|
|
</div><!-- contents -->
|
|
</div><!-- doc-content -->
|
|
<!-- start footer part -->
|
|
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
|
|
<ul>
|
|
<li class="navelem"><a class="el" href="class_lo_ra_w_a_n_node.html">LoRaWANNode</a></li>
|
|
<li class="footer">Generated by <a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.8 </li>
|
|
</ul>
|
|
</div>
|
|
</body>
|
|
</html>
|