-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy path_regions_8cpp_source.html
More file actions
148 lines (146 loc) · 104 KB
/
Copy path_regions_8cpp_source.html
File metadata and controls
148 lines (146 loc) · 104 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.14"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>MiniMouse Stack: C:/GITEXT/githubdoc/LoRaWanMiniMouse.github.io/MMstack/MinimouseSrc/Regions.cpp Source File</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="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 style="height: 56px;">
<td id="projectlogo"><img alt="Logo" src="lora.bmp"/></td>
<td id="projectalign" style="padding-left: 0.5em;">
<div id="projectname">MiniMouse Stack
 <span id="projectnumber">V1.0.0</span>
</div>
</td>
</tr>
</tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.14 -->
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */
var searchBox = new SearchBox("searchBox", "search",false,'Search');
/* @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:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */
$(function() {
initMenu('',true,false,'search.php','Search');
$(document).ready(function() { init_search(); });
});
/* @license-end */</script>
<div id="main-nav"></div>
<!-- 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">
<iframe src="javascript:void(0)" frameborder="0"
name="MSearchResults" id="MSearchResults">
</iframe>
</div>
<div id="nav-path" class="navpath">
<ul>
<li class="navelem"><a class="el" href="dir_4479a50ac3338962579017839c6d11ac.html">GITEXT</a></li><li class="navelem"><a class="el" href="dir_313566ed96e2d68b7746be4483e9b217.html">githubdoc</a></li><li class="navelem"><a class="el" href="dir_a1fe12ccd40675146f9c8376113c041e.html">LoRaWanMiniMouse.github.io</a></li><li class="navelem"><a class="el" href="dir_502a2e6a450cda7c1e5931c413e42c70.html">MMstack</a></li><li class="navelem"><a class="el" href="dir_5b21abe8128a6a1751494d478df76c40.html">MinimouseSrc</a></li> </ul>
</div>
</div><!-- top -->
<div class="header">
<div class="headertitle">
<div class="title">Regions.cpp</div> </div>
</div><!--header-->
<div class="contents">
<a href="_regions_8cpp.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span> <span class="comment">/*</span></div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span> <span class="comment"></span></div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span> <span class="comment"> __ __ _ _ </span></div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span> <span class="comment"> | \/ ( _) ( _) </span></div><div class="line"><a name="l00005"></a><span class="lineno"> 5</span> <span class="comment"> | \ / |_ _ __ _ _ __ ___ ___ _ _ ___ ___ </span></div><div class="line"><a name="l00006"></a><span class="lineno"> 6</span> <span class="comment"> | |\/| | | '_ \| | '_ ` _ \ / _ \| | | / __|/ _ \</span></div><div class="line"><a name="l00007"></a><span class="lineno"> 7</span> <span class="comment"> | | | | | | | | | | | | | | ( _) | |_| \__ \ __/ </span></div><div class="line"><a name="l00008"></a><span class="lineno"> 8</span> <span class="comment"> |_| |_|_|_| |_|_|_| |_| |_|\___/ \__,_|___/\___| </span></div><div class="line"><a name="l00009"></a><span class="lineno"> 9</span> <span class="comment"> </span></div><div class="line"><a name="l00010"></a><span class="lineno"> 10</span> <span class="comment"> </span></div><div class="line"><a name="l00011"></a><span class="lineno"> 11</span> <span class="comment">Description : LoraWan Regions Specific objets. </span></div><div class="line"><a name="l00012"></a><span class="lineno"> 12</span> <span class="comment">License : Revised BSD License, see LICENSE.TXT file include in the project</span></div><div class="line"><a name="l00013"></a><span class="lineno"> 13</span> <span class="comment">Maintainer : Fabien Holin ( SEMTECH)</span></div><div class="line"><a name="l00014"></a><span class="lineno"> 14</span> <span class="comment"></span></div><div class="line"><a name="l00015"></a><span class="lineno"> 15</span> <span class="comment">*/</span></div><div class="line"><a name="l00016"></a><span class="lineno"> 16</span> </div><div class="line"><a name="l00017"></a><span class="lineno"> 17</span> <span class="preprocessor">#include "<a class="code" href="_regions_8h.html">Regions.h</a>"</span></div><div class="line"><a name="l00018"></a><span class="lineno"> 18</span> <span class="preprocessor">#include "<a class="code" href="_define_8h.html">Define.h</a>"</span></div><div class="line"><a name="l00019"></a><span class="lineno"> 19</span> <span class="preprocessor">#include "<a class="code" href="utilities_8h.html">utilities.h</a>"</span></div><div class="line"><a name="l00020"></a><span class="lineno"> 20</span> </div><div class="line"><a name="l00021"></a><span class="lineno"> 21</span> <span class="comment">/*************************************************/</span></div><div class="line"><a name="l00022"></a><span class="lineno"> 22</span> <span class="comment">/* Constructors */</span></div><div class="line"><a name="l00023"></a><span class="lineno"> 23</span> <span class="comment">/*************************************************/</span></div><div class="line"><a name="l00024"></a><span class="lineno"> 24</span> <span class="keyword">template</span> <span class="keyword">class </span><a class="code" href="class_lora_regions_e_u.html">LoraRegionsEU<SX1276></a>;</div><div class="line"><a name="l00025"></a><span class="lineno"> 25</span> <span class="keyword">template</span> <span class="keyword">class </span><a class="code" href="class_lora_regions_e_u.html">LoraRegionsEU<SX126x></a>;</div><div class="line"><a name="l00026"></a><span class="lineno"><a class="line" href="class_lora_regions_e_u.html#ae819c451aa7c913b67386705ed993645"> 26</a></span> <span class="keyword">template</span> < <span class="keyword">class</span> R > <a class="code" href="class_lora_regions_e_u.html#ae819c451aa7c913b67386705ed993645">LoraRegionsEU<R>::LoraRegionsEU</a> ( <a class="code" href="structs_lo_ra_wan_keys.html">sLoRaWanKeys</a> LoRaWanKeys, R * RadioUser, uint32_t FlashAdress) : <a class="code" href="class_lora_wan_container.html">LoraWanContainer</a><16,R> ( LoRaWanKeys, RadioUser, FlashAdress ){</div><div class="line"><a name="l00027"></a><span class="lineno"> 27</span>  </div><div class="line"><a name="l00028"></a><span class="lineno"> 28</span>  memset( this-><a class="code" href="class_lora_wan_container.html#acd49152da70498fc82299e77b2ede009">MacChannelIndexEnabled</a>, <a class="code" href="_define_8h.html#a726ca809ffd3d67ab4b8476646f26635ac53516a4abf151f572ef7a6ac3323c48">CHANNEL_DISABLED</a>, this-><a class="code" href="class_lora_wan_container.html#aa9219b0dc784ae044e3e1a0dcd305e53">NUMBER_OF_CHANNEL</a> );</div><div class="line"><a name="l00029"></a><span class="lineno"> 29</span>  memset( this-><a class="code" href="class_lora_wan_container.html#a2f32e42a487c751f736af790b98aece8">MacMinDataRateChannel</a>, 0, this-><a class="code" href="class_lora_wan_container.html#aa9219b0dc784ae044e3e1a0dcd305e53">NUMBER_OF_CHANNEL</a> );</div><div class="line"><a name="l00030"></a><span class="lineno"> 30</span>  <span class="keywordflow">for</span> (<span class="keywordtype">int</span> i = 0 ; i < this-><a class="code" href="class_lora_wan_container.html#aa9219b0dc784ae044e3e1a0dcd305e53">NUMBER_OF_CHANNEL</a> ; i ++ ) {</div><div class="line"><a name="l00031"></a><span class="lineno"> 31</span>  this-><a class="code" href="class_lora_wan_container.html#a4cae0887d6a3475147858cd713ab0784">MacTxFrequency</a> [i] = 0;</div><div class="line"><a name="l00032"></a><span class="lineno"> 32</span>  this-><a class="code" href="class_lora_wan_container.html#ad78558332c51d4dc8cc4fde0e85a9c71">MacRx1Frequency</a> [i] = 0;</div><div class="line"><a name="l00033"></a><span class="lineno"> 33</span>  }</div><div class="line"><a name="l00034"></a><span class="lineno"> 34</span>  this-><a class="code" href="class_lora_wan_container.html#acd49152da70498fc82299e77b2ede009">MacChannelIndexEnabled</a> [0] = <a class="code" href="_define_8h.html#a726ca809ffd3d67ab4b8476646f26635aa1a84b06e25f52f3eff608a2e1241e3f">CHANNEL_ENABLED</a>;</div><div class="line"><a name="l00035"></a><span class="lineno"> 35</span>  this-><a class="code" href="class_lora_wan_container.html#acd49152da70498fc82299e77b2ede009">MacChannelIndexEnabled</a> [1] = <a class="code" href="_define_8h.html#a726ca809ffd3d67ab4b8476646f26635aa1a84b06e25f52f3eff608a2e1241e3f">CHANNEL_ENABLED</a>;</div><div class="line"><a name="l00036"></a><span class="lineno"> 36</span>  this-><a class="code" href="class_lora_wan_container.html#acd49152da70498fc82299e77b2ede009">MacChannelIndexEnabled</a> [2] = <a class="code" href="_define_8h.html#a726ca809ffd3d67ab4b8476646f26635aa1a84b06e25f52f3eff608a2e1241e3f">CHANNEL_ENABLED</a>;</div><div class="line"><a name="l00037"></a><span class="lineno"> 37</span>  this-><a class="code" href="class_lora_wan_container.html#a2f32e42a487c751f736af790b98aece8">MacMinDataRateChannel</a> [0] = 0;</div><div class="line"><a name="l00038"></a><span class="lineno"> 38</span>  this-><a class="code" href="class_lora_wan_container.html#a2f32e42a487c751f736af790b98aece8">MacMinDataRateChannel</a> [1] = 0;</div><div class="line"><a name="l00039"></a><span class="lineno"> 39</span>  this-><a class="code" href="class_lora_wan_container.html#a2f32e42a487c751f736af790b98aece8">MacMinDataRateChannel</a> [2] = 0;</div><div class="line"><a name="l00040"></a><span class="lineno"> 40</span>  this-><a class="code" href="class_lora_wan_container.html#a7af736bad42311bdfba5a67fd2701140">MacMaxDataRateChannel</a> [0] = 5;</div><div class="line"><a name="l00041"></a><span class="lineno"> 41</span>  this-><a class="code" href="class_lora_wan_container.html#a7af736bad42311bdfba5a67fd2701140">MacMaxDataRateChannel</a> [1] = 5;</div><div class="line"><a name="l00042"></a><span class="lineno"> 42</span>  this-><a class="code" href="class_lora_wan_container.html#a7af736bad42311bdfba5a67fd2701140">MacMaxDataRateChannel</a> [2] = 5;</div><div class="line"><a name="l00043"></a><span class="lineno"> 43</span>  this-><a class="code" href="class_lora_wan_container.html#a4cae0887d6a3475147858cd713ab0784">MacTxFrequency</a>[0] = 868100000;</div><div class="line"><a name="l00044"></a><span class="lineno"> 44</span>  this-><a class="code" href="class_lora_wan_container.html#a4cae0887d6a3475147858cd713ab0784">MacTxFrequency</a>[1] = 868300000;</div><div class="line"><a name="l00045"></a><span class="lineno"> 45</span>  this-><a class="code" href="class_lora_wan_container.html#a4cae0887d6a3475147858cd713ab0784">MacTxFrequency</a>[2] = 868500000;</div><div class="line"><a name="l00046"></a><span class="lineno"> 46</span>  this-><a class="code" href="class_lora_wan_container.html#ad78558332c51d4dc8cc4fde0e85a9c71">MacRx1Frequency</a>[0] = 868100000;</div><div class="line"><a name="l00047"></a><span class="lineno"> 47</span>  this-><a class="code" href="class_lora_wan_container.html#ad78558332c51d4dc8cc4fde0e85a9c71">MacRx1Frequency</a>[1] = 868300000;</div><div class="line"><a name="l00048"></a><span class="lineno"> 48</span>  this-><a class="code" href="class_lora_wan_container.html#ad78558332c51d4dc8cc4fde0e85a9c71">MacRx1Frequency</a>[2] = 868500000;</div><div class="line"><a name="l00049"></a><span class="lineno"> 49</span>  this-><a class="code" href="class_lora_wan_container.html#af4018ef9a538f389d20f9c720fcf8ce1">MacRx2Frequency</a> = 869525000; </div><div class="line"><a name="l00050"></a><span class="lineno"> 50</span>  this-><a class="code" href="class_lora_wan_container.html#ae294fd8611d2487aeb9a8b1185daf8ea">MacTxPower</a> = <a class="code" href="class_lora_regions_e_u.html#a534cd22621dc34cf64c82e76f19ab86c">TX_POWER</a>;</div><div class="line"><a name="l00051"></a><span class="lineno"> 51</span>  this-><a class="code" href="class_lora_wan_container.html#a26d187a951c769d9419527583d70ee3c">MacRx1DataRateOffset</a> = 0;</div><div class="line"><a name="l00052"></a><span class="lineno"> 52</span>  this-><a class="code" href="class_lora_wan_container.html#aca87f947d0988768d234f64be6ad55b7">MacRx2DataRate</a> = <a class="code" href="class_lora_regions_e_u.html#aab1f4fd427de20da11c75a1bb187504f">RX2DR_INIT</a>;</div><div class="line"><a name="l00053"></a><span class="lineno"> 53</span>  this-><a class="code" href="class_lora_wan_container.html#af547f45dbe7cc0255396cfa85ba9533a">MacRx1Delay</a> = <a class="code" href="class_lora_regions_e_u.html#a2a3dacdfb28c15b378393a78b92e4dc0">RECEIVE_DELAY1</a>;</div><div class="line"><a name="l00054"></a><span class="lineno"> 54</span>  this-><a class="code" href="class_lora_wan_container.html#a90a66a8b7888673e0568c1202d1d3421">MacTxDataRateAdr</a> = 0 ;</div><div class="line"><a name="l00055"></a><span class="lineno"> 55</span>  memset(DistriDataRateInit,0,8);</div><div class="line"><a name="l00056"></a><span class="lineno"> 56</span> }</div><div class="line"><a name="l00057"></a><span class="lineno"> 57</span> </div><div class="line"><a name="l00058"></a><span class="lineno"> 58</span> <span class="comment">/***********************************************************************************************/</span></div><div class="line"><a name="l00059"></a><span class="lineno"> 59</span> <span class="comment">/* Protected Methods */</span></div><div class="line"><a name="l00060"></a><span class="lineno"> 60</span> <span class="comment">/***********************************************************************************************/</span></div><div class="line"><a name="l00061"></a><span class="lineno"> 61</span> </div><div class="line"><a name="l00062"></a><span class="lineno"> 62</span> </div><div class="line"><a name="l00063"></a><span class="lineno"> 63</span> <span class="comment">/********************************************************************/</span></div><div class="line"><a name="l00064"></a><span class="lineno"> 64</span> <span class="comment">/* Region Tx Power Configuration */</span></div><div class="line"><a name="l00065"></a><span class="lineno"> 65</span> <span class="comment">/* Chapter 7.1.3 LoRaWan 1.0.1 specification */</span></div><div class="line"><a name="l00066"></a><span class="lineno"> 66</span> <span class="comment">/* TXPower Configuration */</span></div><div class="line"><a name="l00067"></a><span class="lineno"> 67</span> <span class="comment">/* Max TX POwer is suppose = to 14 */</span></div><div class="line"><a name="l00068"></a><span class="lineno"> 68</span> <span class="comment">/* */</span></div><div class="line"><a name="l00069"></a><span class="lineno"> 69</span> <span class="comment">/********************************************************************/</span></div><div class="line"><a name="l00070"></a><span class="lineno"> 70</span> </div><div class="line"><a name="l00071"></a><span class="lineno"><a class="line" href="class_lora_regions_e_u.html#a322d0f9d2a00243ef01fe15c017ed288"> 71</a></span> <span class="keyword">template</span> < <span class="keyword">class</span> R ><span class="keywordtype">void</span> <a class="code" href="class_lora_regions_e_u.html#a322d0f9d2a00243ef01fe15c017ed288">LoraRegionsEU<R>::RegionSetPower</a> ( uint8_t PowerCmd ) {</div><div class="line"><a name="l00072"></a><span class="lineno"> 72</span> </div><div class="line"><a name="l00073"></a><span class="lineno"> 73</span>  uint8_t PowerTab [ 8 ] = { TX_POWER, TX_POWER-2, TX_POWER-4, TX_POWER-6, TX_POWER-8, TX_POWER-10, TX_POWER-12, TX_POWER-14 };</div><div class="line"><a name="l00074"></a><span class="lineno"> 74</span>  <span class="keywordflow">if</span> ( PowerCmd > 7 ) {</div><div class="line"><a name="l00075"></a><span class="lineno"> 75</span>  this->MacTxPower = 14 ;</div><div class="line"><a name="l00076"></a><span class="lineno"> 76</span>  <a class="code" href="_define_8h.html#af1206b4d3bda8c4c8c9257f369a9e9e1">DEBUG_MSG</a> (<span class="stringliteral">"INVALID POWER \n"</span>);</div><div class="line"><a name="l00077"></a><span class="lineno"> 77</span>  } <span class="keywordflow">else</span> {</div><div class="line"><a name="l00078"></a><span class="lineno"> 78</span>  this->MacTxPower = PowerTab [ PowerCmd ] ;</div><div class="line"><a name="l00079"></a><span class="lineno"> 79</span>  }</div><div class="line"><a name="l00080"></a><span class="lineno"> 80</span> }</div><div class="line"><a name="l00081"></a><span class="lineno"> 81</span> </div><div class="line"><a name="l00082"></a><span class="lineno"> 82</span> <span class="comment">/********************************************************************/</span></div><div class="line"><a name="l00083"></a><span class="lineno"> 83</span> <span class="comment">/* Region Get Cf List */</span></div><div class="line"><a name="l00084"></a><span class="lineno"> 84</span> <span class="comment">/* Chapter 7.1.4 LoRaWan 1.0.1 specification */</span></div><div class="line"><a name="l00085"></a><span class="lineno"> 85</span> <span class="comment">/********************************************************************/</span></div><div class="line"><a name="l00086"></a><span class="lineno"><a class="line" href="class_lora_regions_e_u.html#acdbe1d2f767912fac7edf295961dfb6b"> 86</a></span> <span class="keyword">template</span> < <span class="keyword">class</span> R ><span class="keywordtype">void</span> <a class="code" href="class_lora_regions_e_u.html#acdbe1d2f767912fac7edf295961dfb6b">LoraRegionsEU<R>::RegionGetCFList</a> ( <span class="keywordtype">void</span> ) {</div><div class="line"><a name="l00087"></a><span class="lineno"> 87</span>  <span class="keywordflow">for</span> ( <span class="keywordtype">int</span> i = 0 ; i < 5 ; i++ ) {</div><div class="line"><a name="l00088"></a><span class="lineno"> 88</span>  this->MacTxFrequency [3 + i] = 100 * ( ( this->CFList[0 + ( 3 * i )] ) + ( this->CFList[1 + ( 3 * i )] << 8 )+ ( this->CFList[2 + ( 3 * i )] << 16 ) );</div><div class="line"><a name="l00089"></a><span class="lineno"> 89</span>  this->MacRx1Frequency [3 + i] = 100 * ( ( this->CFList[0 + ( 3 * i )] ) + ( this->CFList[1 + ( 3 * i )] << 8 )+ ( this->CFList[2 + ( 3 * i )] << 16 ) );</div><div class="line"><a name="l00090"></a><span class="lineno"> 90</span>  <span class="keywordflow">if</span> ( ( this->MacTxFrequency [3 + i] >= ( FREQMIN * 100 ) ) && ( this->MacTxFrequency [3 + i] <=( FREQMAX * 100 ) ) ) {</div><div class="line"><a name="l00091"></a><span class="lineno"> 91</span>  this->MacMinDataRateChannel [3 + i] = 0;</div><div class="line"><a name="l00092"></a><span class="lineno"> 92</span>  this->MacMaxDataRateChannel [3 + i] = 5;</div><div class="line"><a name="l00093"></a><span class="lineno"> 93</span>  this->MacChannelIndexEnabled [3 + i] = <a class="code" href="_define_8h.html#a726ca809ffd3d67ab4b8476646f26635aa1a84b06e25f52f3eff608a2e1241e3f">CHANNEL_ENABLED</a> ;</div><div class="line"><a name="l00094"></a><span class="lineno"> 94</span>  <a class="code" href="_define_8h.html#a0be11ce2e33906806ac4e521781809c0">DEBUG_PRINTF</a>( <span class="stringliteral">" MacTxFrequency [%d] = %d \n"</span>,i,this->MacTxFrequency [3 + i]);</div><div class="line"><a name="l00095"></a><span class="lineno"> 95</span>  <a class="code" href="_define_8h.html#a0be11ce2e33906806ac4e521781809c0">DEBUG_PRINTF</a>( <span class="stringliteral">" MacMinDataRateChannel [%d] = %d \n"</span>,i,this->MacMinDataRateChannel [3 + i]);</div><div class="line"><a name="l00096"></a><span class="lineno"> 96</span>  <a class="code" href="_define_8h.html#a0be11ce2e33906806ac4e521781809c0">DEBUG_PRINTF</a>( <span class="stringliteral">" MacMaxDataRateChannel [%d] = %d \n"</span>,i,this->MacMaxDataRateChannel [3 + i]);</div><div class="line"><a name="l00097"></a><span class="lineno"> 97</span>  <a class="code" href="_define_8h.html#a0be11ce2e33906806ac4e521781809c0">DEBUG_PRINTF</a>( <span class="stringliteral">" MacChannelIndexEnabled [%d] = %d \n"</span>,i,this->MacChannelIndexEnabled [3 + i]);</div><div class="line"><a name="l00098"></a><span class="lineno"> 98</span>  } <span class="keywordflow">else</span> {</div><div class="line"><a name="l00099"></a><span class="lineno"> 99</span>  this->MacTxFrequency [3 + i] = 0;</div><div class="line"><a name="l00100"></a><span class="lineno"> 100</span>  this->MacRx1Frequency [3 + i] = 0;</div><div class="line"><a name="l00101"></a><span class="lineno"> 101</span>  <a class="code" href="_define_8h.html#af1206b4d3bda8c4c8c9257f369a9e9e1">DEBUG_MSG</a> (<span class="stringliteral">"INVALID TX FREQUENCY IN CFLIST \n"</span>);</div><div class="line"><a name="l00102"></a><span class="lineno"> 102</span>  }</div><div class="line"><a name="l00103"></a><span class="lineno"> 103</span>  }</div><div class="line"><a name="l00104"></a><span class="lineno"> 104</span> }</div><div class="line"><a name="l00105"></a><span class="lineno"> 105</span> </div><div class="line"><a name="l00106"></a><span class="lineno"> 106</span> <span class="comment">/********************************************************************/</span></div><div class="line"><a name="l00107"></a><span class="lineno"> 107</span> <span class="comment">/* Region Set Channel MAsk */</span></div><div class="line"><a name="l00108"></a><span class="lineno"> 108</span> <span class="comment">/* Chapter 7.1.5 LoRaWan 1.0.1 specification */</span></div><div class="line"><a name="l00109"></a><span class="lineno"> 109</span> <span class="comment">/********************************************************************/</span></div><div class="line"><a name="l00110"></a><span class="lineno"> 110</span> </div><div class="line"><a name="l00111"></a><span class="lineno"><a class="line" href="class_lora_regions_e_u.html#af19055a7f2df125b3937ebaf033f50af"> 111</a></span> <span class="keyword">template</span> < <span class="keyword">class</span> R ><a class="code" href="_define_8h.html#abbfbf157098d2505c0cf33877b128cc9">eStatusChannel</a> <a class="code" href="class_lora_regions_e_u.html#af19055a7f2df125b3937ebaf033f50af">LoraRegionsEU<R>::RegionBuildChannelMask</a> ( uint8_t ChMaskCntl, uint16_t ChMask ) {</div><div class="line"><a name="l00112"></a><span class="lineno"> 112</span>  <a class="code" href="_define_8h.html#abbfbf157098d2505c0cf33877b128cc9">eStatusChannel</a> status = <a class="code" href="_define_8h.html#abbfbf157098d2505c0cf33877b128cc9a3ed30409824cdd570e6e7914e0d6a91b">OKCHANNEL</a>;</div><div class="line"><a name="l00113"></a><span class="lineno"> 113</span>  <span class="keywordflow">switch</span> ( ChMaskCntl ) {</div><div class="line"><a name="l00114"></a><span class="lineno"> 114</span>  <span class="keywordflow">case</span> 0 :</div><div class="line"><a name="l00115"></a><span class="lineno"> 115</span>  UnwrappedChannelMask = UnwrappedChannelMask ^ ChMask; </div><div class="line"><a name="l00116"></a><span class="lineno"> 116</span>  <span class="keywordflow">for</span> ( <span class="keywordtype">int</span> i = 0 ; i < this->NUMBER_OF_CHANNEL ; i++) {</div><div class="line"><a name="l00117"></a><span class="lineno"> 117</span>  <span class="keywordflow">if</span> ( ( ( ( UnwrappedChannelMask >> i) & 0x1 ) == 1 ) && ( this->MacTxFrequency[i] == 0) ) { </div><div class="line"><a name="l00118"></a><span class="lineno"> 118</span>  status = <a class="code" href="_define_8h.html#abbfbf157098d2505c0cf33877b128cc9a0c0d8079276630d54f238d3fc4b594f7">ERROR_CHANNEL_MASK</a> ; <span class="comment">// this status is used only for the last multiple link adr req</span></div><div class="line"><a name="l00119"></a><span class="lineno"> 119</span>  }</div><div class="line"><a name="l00120"></a><span class="lineno"> 120</span>  }</div><div class="line"><a name="l00121"></a><span class="lineno"> 121</span>  <span class="keywordflow">break</span>;</div><div class="line"><a name="l00122"></a><span class="lineno"> 122</span>  <span class="keywordflow">case</span> 6 :</div><div class="line"><a name="l00123"></a><span class="lineno"> 123</span>  UnwrappedChannelMask = 0;</div><div class="line"><a name="l00124"></a><span class="lineno"> 124</span>  <span class="keywordflow">for</span> ( <span class="keywordtype">int</span> i = 0 ; i < this->NUMBER_OF_CHANNEL ; i++) {</div><div class="line"><a name="l00125"></a><span class="lineno"> 125</span>  <span class="keywordflow">if</span> ( this->MacTxFrequency[i] > 0 ) {</div><div class="line"><a name="l00126"></a><span class="lineno"> 126</span>  UnwrappedChannelMask = UnwrappedChannelMask ^ (1 << i ) ;</div><div class="line"><a name="l00127"></a><span class="lineno"> 127</span>  }</div><div class="line"><a name="l00128"></a><span class="lineno"> 128</span>  }</div><div class="line"><a name="l00129"></a><span class="lineno"> 129</span>  <span class="keywordflow">break</span>;</div><div class="line"><a name="l00130"></a><span class="lineno"> 130</span>  default : </div><div class="line"><a name="l00131"></a><span class="lineno"> 131</span>  status = <a class="code" href="_define_8h.html#abbfbf157098d2505c0cf33877b128cc9a10548013022903b1f4d2b96703b4a3fb">ERROR_CHANNEL_CNTL</a>;</div><div class="line"><a name="l00132"></a><span class="lineno"> 132</span>  }</div><div class="line"><a name="l00133"></a><span class="lineno"> 133</span>  <span class="keywordflow">if</span> ( UnwrappedChannelMask == 0 ) {</div><div class="line"><a name="l00134"></a><span class="lineno"> 134</span>  status = <a class="code" href="_define_8h.html#abbfbf157098d2505c0cf33877b128cc9a0c0d8079276630d54f238d3fc4b594f7">ERROR_CHANNEL_MASK</a> ; </div><div class="line"><a name="l00135"></a><span class="lineno"> 135</span>  } </div><div class="line"><a name="l00136"></a><span class="lineno"> 136</span>  <span class="keywordflow">return</span> ( status );</div><div class="line"><a name="l00137"></a><span class="lineno"> 137</span> };</div><div class="line"><a name="l00138"></a><span class="lineno"> 138</span> </div><div class="line"><a name="l00139"></a><span class="lineno"><a class="line" href="class_lora_regions_e_u.html#a3662471b098dc1e319ab386eaf0b3f52"> 139</a></span> <span class="keyword">template</span> < <span class="keyword">class</span> R ><span class="keywordtype">void</span> <a class="code" href="class_lora_regions_e_u.html#a3662471b098dc1e319ab386eaf0b3f52">LoraRegionsEU<R>::RegionInitChannelMask</a> ( <span class="keywordtype">void</span> ) {</div><div class="line"><a name="l00140"></a><span class="lineno"> 140</span>  UnwrappedChannelMask = 0;</div><div class="line"><a name="l00141"></a><span class="lineno"> 141</span> };</div><div class="line"><a name="l00142"></a><span class="lineno"><a class="line" href="class_lora_regions_e_u.html#a9aef35dea0d5101768696bed87fa8380"> 142</a></span> <span class="keyword">template</span> < <span class="keyword">class</span> R ><span class="keywordtype">void</span> <a class="code" href="class_lora_regions_e_u.html#a9aef35dea0d5101768696bed87fa8380">LoraRegionsEU<R>::RegionSetMask</a> ( <span class="keywordtype">void</span> ) {</div><div class="line"><a name="l00143"></a><span class="lineno"> 143</span>  <a class="code" href="_define_8h.html#af1206b4d3bda8c4c8c9257f369a9e9e1">DEBUG_MSG</a>(<span class="stringliteral">" \n Mask = "</span>);</div><div class="line"><a name="l00144"></a><span class="lineno"> 144</span>  <span class="keywordflow">for</span> (<span class="keywordtype">int</span> i = 0 ; i < this->NUMBER_OF_CHANNEL ; i ++ ) {</div><div class="line"><a name="l00145"></a><span class="lineno"> 145</span>  this->MacChannelIndexEnabled [i] = ( UnwrappedChannelMask >> i ) & 0x1; <span class="comment">// @note trade off between size and code simplification</span></div><div class="line"><a name="l00146"></a><span class="lineno"> 146</span>  <a class="code" href="_define_8h.html#a0be11ce2e33906806ac4e521781809c0">DEBUG_PRINTF</a>(<span class="stringliteral">" %d "</span>,this->MacChannelIndexEnabled [i]);</div><div class="line"><a name="l00147"></a><span class="lineno"> 147</span>  }</div><div class="line"><a name="l00148"></a><span class="lineno"> 148</span>  <a class="code" href="_define_8h.html#af1206b4d3bda8c4c8c9257f369a9e9e1">DEBUG_MSG</a>(<span class="stringliteral">" \n"</span>);</div><div class="line"><a name="l00149"></a><span class="lineno"> 149</span> };</div><div class="line"><a name="l00150"></a><span class="lineno"> 150</span> <span class="comment">/********************************************************************/</span></div><div class="line"><a name="l00151"></a><span class="lineno"> 151</span> <span class="comment">/* Region MAx Payload SIze Configuration */</span></div><div class="line"><a name="l00152"></a><span class="lineno"> 152</span> <span class="comment">/* Chapter 7.1.6 LoRaWan 1.0.1 specification */</span></div><div class="line"><a name="l00153"></a><span class="lineno"> 153</span> <span class="comment">/********************************************************************/</span></div><div class="line"><a name="l00154"></a><span class="lineno"><a class="line" href="class_lora_regions_e_u.html#aac8f3f20d2a79717a1c0d26f72e073ef"> 154</a></span> <span class="keyword">template</span> < <span class="keyword">class</span> R ><a class="code" href="_define_8h.html#a1cea710adbbf5b02bced8f79cd82f7b9">eStatusLoRaWan</a> <a class="code" href="class_lora_regions_e_u.html#aac8f3f20d2a79717a1c0d26f72e073ef">LoraRegionsEU<R>::RegionMaxPayloadSize</a> ( uint8_t sizeIn ) {</div><div class="line"><a name="l00155"></a><span class="lineno"> 155</span>  <a class="code" href="_define_8h.html#a1cea710adbbf5b02bced8f79cd82f7b9">eStatusLoRaWan</a> status ;</div><div class="line"><a name="l00156"></a><span class="lineno"> 156</span>  uint8_t M [ 8 ] = { 59, 59, 59, 123, 230, 230, 230, 230 };</div><div class="line"><a name="l00157"></a><span class="lineno"> 157</span>  status = ( sizeIn >= M [this->MacTxDataRate] ) ? <a class="code" href="_define_8h.html#a1cea710adbbf5b02bced8f79cd82f7b9a288c866323a148675d7b1ef7604ea96d">ERRORLORAWAN</a> : <a class="code" href="_define_8h.html#a1cea710adbbf5b02bced8f79cd82f7b9a400ceb20987c156a2f988a2fe4702fa0">OKLORAWAN</a> ;</div><div class="line"><a name="l00158"></a><span class="lineno"> 158</span>  <span class="keywordflow">return</span> ( status );</div><div class="line"><a name="l00159"></a><span class="lineno"> 159</span> }</div><div class="line"><a name="l00160"></a><span class="lineno"> 160</span> </div><div class="line"><a name="l00161"></a><span class="lineno"> 161</span> <span class="comment">/********************************************************************/</span></div><div class="line"><a name="l00162"></a><span class="lineno"> 162</span> <span class="comment">/* Region Rx Window Configuration */</span></div><div class="line"><a name="l00163"></a><span class="lineno"> 163</span> <span class="comment">/* Chapter 7.1.7 LoRaWan 1.0.1 specification */</span></div><div class="line"><a name="l00164"></a><span class="lineno"> 164</span> <span class="comment">/********************************************************************/</span></div><div class="line"><a name="l00165"></a><span class="lineno"> 165</span> <span class="comment">//@notereview return status</span></div><div class="line"><a name="l00166"></a><span class="lineno"><a class="line" href="class_lora_regions_e_u.html#a1222a9362e7ba3715d9848af850af3f0"> 166</a></span> <span class="keyword">template</span> < <span class="keyword">class</span> R ><span class="keywordtype">void</span> <a class="code" href="class_lora_regions_e_u.html#a1222a9362e7ba3715d9848af850af3f0">LoraRegionsEU<R>::RegionSetRxConfig</a> ( <a class="code" href="_define_8h.html#ab894a4c21b8aae9e9c68d8c426a66956">eRxWinType</a> type ) {</div><div class="line"><a name="l00167"></a><span class="lineno"> 167</span>  <span class="keywordflow">if</span> ( type == <a class="code" href="_define_8h.html#ab894a4c21b8aae9e9c68d8c426a66956a56a438ee3630fd80572b82bf5db6ef85">RX1</a> ) {</div><div class="line"><a name="l00168"></a><span class="lineno"> 168</span>  this->MacRx1SfCurrent = ( this->MacTxSfCurrent < 12 - this->MacRx1DataRateOffset) ? this->MacTxSfCurrent + this->MacRx1DataRateOffset : 12;</div><div class="line"><a name="l00169"></a><span class="lineno"> 169</span>  this->MacRx1BwCurrent = this->MacTxBwCurrent;</div><div class="line"><a name="l00170"></a><span class="lineno"> 170</span>  } <span class="keywordflow">else</span> <span class="keywordflow">if</span> ( type == <a class="code" href="_define_8h.html#ab894a4c21b8aae9e9c68d8c426a66956a16d23020bee85c2ada36491598054bab">RX2</a> ) {</div><div class="line"><a name="l00171"></a><span class="lineno"> 171</span>  Rx2DataRateToSfBw ( this->MacRx2DataRate );</div><div class="line"><a name="l00172"></a><span class="lineno"> 172</span>  } <span class="keywordflow">else</span> {</div><div class="line"><a name="l00173"></a><span class="lineno"> 173</span>  <a class="code" href="_define_8h.html#af1206b4d3bda8c4c8c9257f369a9e9e1">DEBUG_MSG</a> (<span class="stringliteral">"INVALID RX TYPE \n"</span>);</div><div class="line"><a name="l00174"></a><span class="lineno"> 174</span>  }</div><div class="line"><a name="l00175"></a><span class="lineno"> 175</span> }</div><div class="line"><a name="l00176"></a><span class="lineno"> 176</span> </div><div class="line"><a name="l00177"></a><span class="lineno"> 177</span> </div><div class="line"><a name="l00178"></a><span class="lineno"> 178</span> <span class="comment">/********************************************************************************/</span></div><div class="line"><a name="l00179"></a><span class="lineno"> 179</span> <span class="comment">/* Check parameter of received mac commands */</span></div><div class="line"><a name="l00180"></a><span class="lineno"> 180</span> <span class="comment">/********************************************************************************/</span></div><div class="line"><a name="l00181"></a><span class="lineno"><a class="line" href="class_lora_regions_e_u.html#a6dc681bc39f00825ed46e9636d9acf52"> 181</a></span> <span class="keyword">template</span> < <span class="keyword">class</span> R ><a class="code" href="_define_8h.html#a1cea710adbbf5b02bced8f79cd82f7b9">eStatusLoRaWan</a> <a class="code" href="class_lora_regions_e_u.html#a6dc681bc39f00825ed46e9636d9acf52">LoraRegionsEU<R>::RegionIsValidRx1DrOffset</a> ( uint8_t Rx1DataRateOffset ) {</div><div class="line"><a name="l00182"></a><span class="lineno"> 182</span>  <a class="code" href="_define_8h.html#a1cea710adbbf5b02bced8f79cd82f7b9">eStatusLoRaWan</a> status = <a class="code" href="_define_8h.html#a1cea710adbbf5b02bced8f79cd82f7b9a400ceb20987c156a2f988a2fe4702fa0">OKLORAWAN</a>;</div><div class="line"><a name="l00183"></a><span class="lineno"> 183</span>  <span class="keywordflow">if</span> (Rx1DataRateOffset > 5) {</div><div class="line"><a name="l00184"></a><span class="lineno"> 184</span>  status = <a class="code" href="_define_8h.html#a1cea710adbbf5b02bced8f79cd82f7b9a288c866323a148675d7b1ef7604ea96d">ERRORLORAWAN</a> ;</div><div class="line"><a name="l00185"></a><span class="lineno"> 185</span>  <a class="code" href="_define_8h.html#af1206b4d3bda8c4c8c9257f369a9e9e1">DEBUG_MSG</a> ( <span class="stringliteral">"RECEIVE AN INVALID RX1 DR OFFSET \n"</span>);</div><div class="line"><a name="l00186"></a><span class="lineno"> 186</span>  }</div><div class="line"><a name="l00187"></a><span class="lineno"> 187</span>  <span class="keywordflow">return</span> ( status );</div><div class="line"><a name="l00188"></a><span class="lineno"> 188</span> }</div><div class="line"><a name="l00189"></a><span class="lineno"> 189</span> </div><div class="line"><a name="l00190"></a><span class="lineno"><a class="line" href="class_lora_regions_e_u.html#aeb59fccca463d845279c448a6fa46548"> 190</a></span> <span class="keyword">template</span> < <span class="keyword">class</span> R ><a class="code" href="_define_8h.html#a1cea710adbbf5b02bced8f79cd82f7b9">eStatusLoRaWan</a> <a class="code" href="class_lora_regions_e_u.html#aeb59fccca463d845279c448a6fa46548">LoraRegionsEU<R>:: RegionIsValidDataRate</a> ( uint8_t temp ) {</div><div class="line"><a name="l00191"></a><span class="lineno"> 191</span>  <a class="code" href="_define_8h.html#a1cea710adbbf5b02bced8f79cd82f7b9">eStatusLoRaWan</a> status ;</div><div class="line"><a name="l00192"></a><span class="lineno"> 192</span>  status = ( temp > 7) ? <a class="code" href="_define_8h.html#a1cea710adbbf5b02bced8f79cd82f7b9a288c866323a148675d7b1ef7604ea96d">ERRORLORAWAN</a> : <a class="code" href="_define_8h.html#a1cea710adbbf5b02bced8f79cd82f7b9a400ceb20987c156a2f988a2fe4702fa0">OKLORAWAN</a>;</div><div class="line"><a name="l00193"></a><span class="lineno"> 193</span>  <span class="keywordflow">return</span> ( status );</div><div class="line"><a name="l00194"></a><span class="lineno"> 194</span> }</div><div class="line"><a name="l00195"></a><span class="lineno"> 195</span>  </div><div class="line"><a name="l00196"></a><span class="lineno"><a class="line" href="class_lora_regions_e_u.html#a367dcb126971269dce46511383696bad"> 196</a></span> <span class="keyword">template</span> < <span class="keyword">class</span> R ><a class="code" href="_define_8h.html#a1cea710adbbf5b02bced8f79cd82f7b9">eStatusLoRaWan</a> <a class="code" href="class_lora_regions_e_u.html#a367dcb126971269dce46511383696bad">LoraRegionsEU<R>::RegionIsAcceptableDataRate</a> ( uint8_t DataRate ) {</div><div class="line"><a name="l00197"></a><span class="lineno"> 197</span>  <a class="code" href="_define_8h.html#a1cea710adbbf5b02bced8f79cd82f7b9">eStatusLoRaWan</a> status = <a class="code" href="_define_8h.html#a1cea710adbbf5b02bced8f79cd82f7b9a288c866323a148675d7b1ef7604ea96d">ERRORLORAWAN</a>;</div><div class="line"><a name="l00198"></a><span class="lineno"> 198</span>  <span class="keywordflow">for</span> ( <span class="keywordtype">int</span> i = 0 ; i < this->NUMBER_OF_CHANNEL; i++) {</div><div class="line"><a name="l00199"></a><span class="lineno"> 199</span>  <span class="keywordflow">if</span> ( ( ( UnwrappedChannelMask >> i) & 0x1) == 1 ) {</div><div class="line"><a name="l00200"></a><span class="lineno"> 200</span>  <span class="keywordflow">if</span> ( ( DataRate >= this->MacMinDataRateChannel [i] ) && ( DataRate <= this->MacMaxDataRateChannel [i] ) ) {</div><div class="line"><a name="l00201"></a><span class="lineno"> 201</span>  <span class="keywordflow">return</span> ( <a class="code" href="_define_8h.html#a1cea710adbbf5b02bced8f79cd82f7b9a400ceb20987c156a2f988a2fe4702fa0">OKLORAWAN</a> );</div><div class="line"><a name="l00202"></a><span class="lineno"> 202</span>  }</div><div class="line"><a name="l00203"></a><span class="lineno"> 203</span>  }</div><div class="line"><a name="l00204"></a><span class="lineno"> 204</span>  }</div><div class="line"><a name="l00205"></a><span class="lineno"> 205</span>  <span class="keywordflow">return</span> ( status );</div><div class="line"><a name="l00206"></a><span class="lineno"> 206</span> }</div><div class="line"><a name="l00207"></a><span class="lineno"><a class="line" href="class_lora_regions_e_u.html#a192e8af5bcab83f1f7ff48b5d130206e"> 207</a></span> <span class="keyword">template</span> < <span class="keyword">class</span> R ><a class="code" href="_define_8h.html#a1cea710adbbf5b02bced8f79cd82f7b9">eStatusLoRaWan</a> <a class="code" href="class_lora_regions_e_u.html#a192e8af5bcab83f1f7ff48b5d130206e">LoraRegionsEU<R>::RegionIsValidMacFrequency</a> ( uint32_t Frequency) {</div><div class="line"><a name="l00208"></a><span class="lineno"> 208</span>  <a class="code" href="_define_8h.html#a1cea710adbbf5b02bced8f79cd82f7b9">eStatusLoRaWan</a> status = <a class="code" href="_define_8h.html#a1cea710adbbf5b02bced8f79cd82f7b9a400ceb20987c156a2f988a2fe4702fa0">OKLORAWAN</a>;</div><div class="line"><a name="l00209"></a><span class="lineno"> 209</span>  <span class="keywordflow">if</span> ( Frequency == 0) {</div><div class="line"><a name="l00210"></a><span class="lineno"> 210</span>  <span class="keywordflow">return</span> ( status );</div><div class="line"><a name="l00211"></a><span class="lineno"> 211</span>  }</div><div class="line"><a name="l00212"></a><span class="lineno"> 212</span>  <span class="keywordflow">if</span> ( ( Frequency > FREQMAX ) || ( Frequency < FREQMIN ) ) {</div><div class="line"><a name="l00213"></a><span class="lineno"> 213</span>  status = <a class="code" href="_define_8h.html#a1cea710adbbf5b02bced8f79cd82f7b9a288c866323a148675d7b1ef7604ea96d">ERRORLORAWAN</a> ;</div><div class="line"><a name="l00214"></a><span class="lineno"> 214</span>  <a class="code" href="_define_8h.html#a0be11ce2e33906806ac4e521781809c0">DEBUG_PRINTF</a> ( <span class="stringliteral">"RECEIVE AN INVALID FREQUENCY = %d\n"</span>, Frequency);</div><div class="line"><a name="l00215"></a><span class="lineno"> 215</span>  }</div><div class="line"><a name="l00216"></a><span class="lineno"> 216</span>  <span class="keywordflow">return</span> ( status );</div><div class="line"><a name="l00217"></a><span class="lineno"> 217</span> }</div><div class="line"><a name="l00218"></a><span class="lineno"><a class="line" href="class_lora_regions_e_u.html#ac28aa9ff150676c7f1dd7425dbb6fffa"> 218</a></span> <span class="keyword">template</span> < <span class="keyword">class</span> R ><a class="code" href="_define_8h.html#a1cea710adbbf5b02bced8f79cd82f7b9">eStatusLoRaWan</a> <a class="code" href="class_lora_regions_e_u.html#ac28aa9ff150676c7f1dd7425dbb6fffa">LoraRegionsEU<R>::RegionIsValidTxPower</a> ( uint8_t Power) {</div><div class="line"><a name="l00219"></a><span class="lineno"> 219</span>  <a class="code" href="_define_8h.html#a1cea710adbbf5b02bced8f79cd82f7b9">eStatusLoRaWan</a> status = <a class="code" href="_define_8h.html#a1cea710adbbf5b02bced8f79cd82f7b9a400ceb20987c156a2f988a2fe4702fa0">OKLORAWAN</a>;</div><div class="line"><a name="l00220"></a><span class="lineno"> 220</span>  <span class="keywordflow">if</span> ( ( Power > 7 ) ) {</div><div class="line"><a name="l00221"></a><span class="lineno"> 221</span>  status = <a class="code" href="_define_8h.html#a1cea710adbbf5b02bced8f79cd82f7b9a288c866323a148675d7b1ef7604ea96d">ERRORLORAWAN</a> ;</div><div class="line"><a name="l00222"></a><span class="lineno"> 222</span>  <a class="code" href="_define_8h.html#a0be11ce2e33906806ac4e521781809c0">DEBUG_PRINTF</a> ( <span class="stringliteral">"RECEIVE AN INVALID Power Cmd = %d\n"</span>, Power);</div><div class="line"><a name="l00223"></a><span class="lineno"> 223</span>  }</div><div class="line"><a name="l00224"></a><span class="lineno"> 224</span>  <span class="keywordflow">return</span> ( status );</div><div class="line"><a name="l00225"></a><span class="lineno"> 225</span> }</div><div class="line"><a name="l00226"></a><span class="lineno"><a class="line" href="class_lora_regions_e_u.html#a265374672b836ead15fe670d9207bf4e"> 226</a></span> <span class="keyword">template</span> < <span class="keyword">class</span> R ><a class="code" href="_define_8h.html#a1cea710adbbf5b02bced8f79cd82f7b9">eStatusLoRaWan</a> <a class="code" href="class_lora_regions_e_u.html#a265374672b836ead15fe670d9207bf4e">LoraRegionsEU<R>::RegionIsValidChannelIndex</a> ( uint8_t ChannelIndex) {</div><div class="line"><a name="l00227"></a><span class="lineno"> 227</span>  <a class="code" href="_define_8h.html#a1cea710adbbf5b02bced8f79cd82f7b9">eStatusLoRaWan</a> status = <a class="code" href="_define_8h.html#a1cea710adbbf5b02bced8f79cd82f7b9a400ceb20987c156a2f988a2fe4702fa0">OKLORAWAN</a>;</div><div class="line"><a name="l00228"></a><span class="lineno"> 228</span>  <span class="keywordflow">if</span> ( ( ChannelIndex < 3 ) || ( ChannelIndex > 15 ) ) {</div><div class="line"><a name="l00229"></a><span class="lineno"> 229</span>  status = <a class="code" href="_define_8h.html#a1cea710adbbf5b02bced8f79cd82f7b9a288c866323a148675d7b1ef7604ea96d">ERRORLORAWAN</a> ;</div><div class="line"><a name="l00230"></a><span class="lineno"> 230</span>  }</div><div class="line"><a name="l00231"></a><span class="lineno"> 231</span> </div><div class="line"><a name="l00232"></a><span class="lineno"> 232</span>  <span class="keywordflow">return</span> ( status );</div><div class="line"><a name="l00233"></a><span class="lineno"> 233</span> };</div><div class="line"><a name="l00234"></a><span class="lineno"> 234</span> </div><div class="line"><a name="l00235"></a><span class="lineno"> 235</span> </div><div class="line"><a name="l00236"></a><span class="lineno"> 236</span> <span class="comment">/********************************************************************************/</span></div><div class="line"><a name="l00237"></a><span class="lineno"> 237</span> <span class="comment">/* RegionGiveNextDataRate */</span></div><div class="line"><a name="l00238"></a><span class="lineno"> 238</span> <span class="comment">/* method to set the next data Rate in different mode */</span></div><div class="line"><a name="l00239"></a><span class="lineno"> 239</span> <span class="comment">/********************************************************************************/</span></div><div class="line"><a name="l00240"></a><span class="lineno"> 240</span> </div><div class="line"><a name="l00241"></a><span class="lineno"><a class="line" href="class_lora_regions_e_u.html#a94b24cf6b5b8059025cb4e12d03eb97f"> 241</a></span> <span class="keyword">template</span> < <span class="keyword">class</span> R ><span class="keywordtype">void</span> <a class="code" href="class_lora_regions_e_u.html#a94b24cf6b5b8059025cb4e12d03eb97f">LoraRegionsEU<R>::RegionSetDataRateDistribution</a>( uint8_t adrMode) {</div><div class="line"><a name="l00242"></a><span class="lineno"> 242</span>  memset(DistriDataRateInit,0 , 8);</div><div class="line"><a name="l00243"></a><span class="lineno"> 243</span>  <span class="keywordflow">switch</span> ( adrMode ) {</div><div class="line"><a name="l00244"></a><span class="lineno"> 244</span>  <span class="keywordflow">case</span> <a class="code" href="_define_8h.html#a1287040ce87452e6c780ec0917441aeaa0a9da77eac27035913822082f46da48c">MOBILE_LONGRANGE_DR_DISTRIBUTION</a>: <span class="comment">// in this example 4/7 dr0 2/7 dr1 and 1/7 dr2</span></div><div class="line"><a name="l00245"></a><span class="lineno"> 245</span>  DistriDataRateInit[7] = 0; </div><div class="line"><a name="l00246"></a><span class="lineno"> 246</span>  DistriDataRateInit[6] = 0; </div><div class="line"><a name="l00247"></a><span class="lineno"> 247</span>  DistriDataRateInit[5] = 0; </div><div class="line"><a name="l00248"></a><span class="lineno"> 248</span>  DistriDataRateInit[4] = 0;</div><div class="line"><a name="l00249"></a><span class="lineno"> 249</span>  DistriDataRateInit[3] = 0;</div><div class="line"><a name="l00250"></a><span class="lineno"> 250</span>  DistriDataRateInit[2] = 1; </div><div class="line"><a name="l00251"></a><span class="lineno"> 251</span>  DistriDataRateInit[1] = 2; </div><div class="line"><a name="l00252"></a><span class="lineno"> 252</span>  DistriDataRateInit[0] = 4; </div><div class="line"><a name="l00253"></a><span class="lineno"> 253</span>  this->MacNbTrans = 3; </div><div class="line"><a name="l00254"></a><span class="lineno"> 254</span>  <span class="keywordflow">break</span>;</div><div class="line"><a name="l00255"></a><span class="lineno"> 255</span>  <span class="keywordflow">case</span> <a class="code" href="_define_8h.html#a1287040ce87452e6c780ec0917441aeaa4ea2cc12f32e5f9dabb49d0a032339d6">MOBILE_LOWPER_DR_DISTRIBUTION</a>:<span class="comment">//in this example 5/10 dr5 4/10 dr4 and 1/10 dr0</span></div><div class="line"><a name="l00256"></a><span class="lineno"> 256</span>  DistriDataRateInit[7] = 0; </div><div class="line"><a name="l00257"></a><span class="lineno"> 257</span>  DistriDataRateInit[6] = 0; </div><div class="line"><a name="l00258"></a><span class="lineno"> 258</span>  DistriDataRateInit[5] = 5; </div><div class="line"><a name="l00259"></a><span class="lineno"> 259</span>  DistriDataRateInit[4] = 4;</div><div class="line"><a name="l00260"></a><span class="lineno"> 260</span>  DistriDataRateInit[3] = 0;</div><div class="line"><a name="l00261"></a><span class="lineno"> 261</span>  DistriDataRateInit[2] = 0; </div><div class="line"><a name="l00262"></a><span class="lineno"> 262</span>  DistriDataRateInit[1] = 0; </div><div class="line"><a name="l00263"></a><span class="lineno"> 263</span>  DistriDataRateInit[0] = 1; </div><div class="line"><a name="l00264"></a><span class="lineno"> 264</span>  this->MacNbTrans = 3;</div><div class="line"><a name="l00265"></a><span class="lineno"> 265</span>  <span class="keywordflow">break</span>;</div><div class="line"><a name="l00266"></a><span class="lineno"> 266</span>  <span class="keywordflow">case</span> <a class="code" href="_define_8h.html#a1287040ce87452e6c780ec0917441aeaa87bc2eb3b85f4eac3137dcf4b5403b0c">JOIN_DR_DISTRIBUTION</a>: <span class="comment">//in this example 1/3 dr5 1/3 dr4 and 1/3 dr0</span></div><div class="line"><a name="l00267"></a><span class="lineno"> 267</span>  DistriDataRateInit[7] = 0; </div><div class="line"><a name="l00268"></a><span class="lineno"> 268</span>  DistriDataRateInit[6] = 0;</div><div class="line"><a name="l00269"></a><span class="lineno"> 269</span>  DistriDataRateInit[5] = 1; </div><div class="line"><a name="l00270"></a><span class="lineno"> 270</span>  DistriDataRateInit[4] = 1; </div><div class="line"><a name="l00271"></a><span class="lineno"> 271</span>  DistriDataRateInit[3] = 0;</div><div class="line"><a name="l00272"></a><span class="lineno"> 272</span>  DistriDataRateInit[2] = 0; </div><div class="line"><a name="l00273"></a><span class="lineno"> 273</span>  DistriDataRateInit[1] = 0; </div><div class="line"><a name="l00274"></a><span class="lineno"> 274</span>  DistriDataRateInit[0] = 1; </div><div class="line"><a name="l00275"></a><span class="lineno"> 275</span>  this->MacNbTrans = 1;</div><div class="line"><a name="l00276"></a><span class="lineno"> 276</span>  <span class="keywordflow">break</span>;</div><div class="line"><a name="l00277"></a><span class="lineno"> 277</span>  <span class="keywordflow">case</span> <a class="code" href="_define_8h.html#a1287040ce87452e6c780ec0917441aeaaffaca9ba78ad465710d6b05ac2b93648">USER_DR_DISTRIBUTION</a>: <span class="comment">//in this example 1/3 dr5 1/3 dr4 and 1/3 dr0</span></div><div class="line"><a name="l00278"></a><span class="lineno"> 278</span>  DistriDataRateInit[7] = 0; </div><div class="line"><a name="l00279"></a><span class="lineno"> 279</span>  DistriDataRateInit[6] = ( ( <a class="code" href="_user_define_8h.html#adf3d7d6b7db31d5d169ead702de25c77">USER_DR_DISTRIBUTION_PARAMETERS</a> )& ( 0x000000F0 ) ) >> 4; <span class="comment">//fsk </span></div><div class="line"><a name="l00280"></a><span class="lineno"> 280</span>  DistriDataRateInit[5] = ( ( <a class="code" href="_user_define_8h.html#adf3d7d6b7db31d5d169ead702de25c77">USER_DR_DISTRIBUTION_PARAMETERS</a> )& ( 0x00000F00 ) ) >> 8; </div><div class="line"><a name="l00281"></a><span class="lineno"> 281</span>  DistriDataRateInit[4] = ( ( <a class="code" href="_user_define_8h.html#adf3d7d6b7db31d5d169ead702de25c77">USER_DR_DISTRIBUTION_PARAMETERS</a> )& ( 0x0000F000 ) ) >> 12; </div><div class="line"><a name="l00282"></a><span class="lineno"> 282</span>  DistriDataRateInit[3] = ( ( <a class="code" href="_user_define_8h.html#adf3d7d6b7db31d5d169ead702de25c77">USER_DR_DISTRIBUTION_PARAMETERS</a> )& ( 0x000F0000 ) ) >> 16; </div><div class="line"><a name="l00283"></a><span class="lineno"> 283</span>  DistriDataRateInit[2] = ( ( <a class="code" href="_user_define_8h.html#adf3d7d6b7db31d5d169ead702de25c77">USER_DR_DISTRIBUTION_PARAMETERS</a> )& ( 0x00F00000 ) ) >> 20; </div><div class="line"><a name="l00284"></a><span class="lineno"> 284</span>  DistriDataRateInit[1] = ( ( <a class="code" href="_user_define_8h.html#adf3d7d6b7db31d5d169ead702de25c77">USER_DR_DISTRIBUTION_PARAMETERS</a> )& ( 0x0F000000 ) ) >> 24; </div><div class="line"><a name="l00285"></a><span class="lineno"> 285</span>  DistriDataRateInit[0] = ( ( <a class="code" href="_user_define_8h.html#adf3d7d6b7db31d5d169ead702de25c77">USER_DR_DISTRIBUTION_PARAMETERS</a> )& ( 0xF0000000 ) ) >> 28; </div><div class="line"><a name="l00286"></a><span class="lineno"> 286</span>  this->MacNbTrans = ( ( <a class="code" href="_user_define_8h.html#adf3d7d6b7db31d5d169ead702de25c77">USER_DR_DISTRIBUTION_PARAMETERS</a> )& ( 0x0000000F ) );</div><div class="line"><a name="l00287"></a><span class="lineno"> 287</span>  </div><div class="line"><a name="l00288"></a><span class="lineno"> 288</span>  <span class="keywordflow">break</span>;</div><div class="line"><a name="l00289"></a><span class="lineno"> 289</span>  <span class="keywordflow">default</span>: </div><div class="line"><a name="l00290"></a><span class="lineno"> 290</span>  DistriDataRateInit[0] = 1; </div><div class="line"><a name="l00291"></a><span class="lineno"> 291</span>  DistriDataRateInit[1] = 0; </div><div class="line"><a name="l00292"></a><span class="lineno"> 292</span>  DistriDataRateInit[2] = 0; </div><div class="line"><a name="l00293"></a><span class="lineno"> 293</span>  DistriDataRateInit[3] = 0; </div><div class="line"><a name="l00294"></a><span class="lineno"> 294</span>  DistriDataRateInit[4] = 0; </div><div class="line"><a name="l00295"></a><span class="lineno"> 295</span>  DistriDataRateInit[5] = 0; </div><div class="line"><a name="l00296"></a><span class="lineno"> 296</span>  DistriDataRateInit[6] = 0; </div><div class="line"><a name="l00297"></a><span class="lineno"> 297</span>  DistriDataRateInit[7] = 0; </div><div class="line"><a name="l00298"></a><span class="lineno"> 298</span>  this->MacNbTrans = 1;</div><div class="line"><a name="l00299"></a><span class="lineno"> 299</span>  }</div><div class="line"><a name="l00300"></a><span class="lineno"> 300</span>  this->MacTxPower = 14;</div><div class="line"><a name="l00301"></a><span class="lineno"> 301</span>  this->MacChannelIndexEnabled [0] = <a class="code" href="_define_8h.html#a726ca809ffd3d67ab4b8476646f26635aa1a84b06e25f52f3eff608a2e1241e3f">CHANNEL_ENABLED</a>;</div><div class="line"><a name="l00302"></a><span class="lineno"> 302</span>  this->MacChannelIndexEnabled [1] = <a class="code" href="_define_8h.html#a726ca809ffd3d67ab4b8476646f26635aa1a84b06e25f52f3eff608a2e1241e3f">CHANNEL_ENABLED</a>;</div><div class="line"><a name="l00303"></a><span class="lineno"> 303</span>  this->MacChannelIndexEnabled [2] = <a class="code" href="_define_8h.html#a726ca809ffd3d67ab4b8476646f26635aa1a84b06e25f52f3eff608a2e1241e3f">CHANNEL_ENABLED</a>;</div><div class="line"><a name="l00304"></a><span class="lineno"> 304</span>  memcpy(DistriDataRate, DistriDataRateInit, 8);</div><div class="line"><a name="l00305"></a><span class="lineno"> 305</span> }</div><div class="line"><a name="l00306"></a><span class="lineno"> 306</span> </div><div class="line"><a name="l00307"></a><span class="lineno"><a class="line" href="class_lora_regions_e_u.html#a10897e9e39c1b1682596b9e55844724c"> 307</a></span> <span class="keyword">template</span> < <span class="keyword">class</span> R ><span class="keywordtype">void</span> <a class="code" href="class_lora_regions_e_u.html#a10897e9e39c1b1682596b9e55844724c">LoraRegionsEU<R>::RegionGiveNextDataRate</a>( <span class="keywordtype">void</span> ) {</div><div class="line"><a name="l00308"></a><span class="lineno"> 308</span>  <span class="keywordflow">if</span> ( this->AdrModeSelect == <a class="code" href="_define_8h.html#a1287040ce87452e6c780ec0917441aeaa91850405983bdf8c8f74f6aada3dd398">STATIC_ADR_MODE</a> ) {</div><div class="line"><a name="l00309"></a><span class="lineno"> 309</span>  this->MacTxDataRate = this->MacTxDataRateAdr;</div><div class="line"><a name="l00310"></a><span class="lineno"> 310</span>  this->AdrEnable = 1;</div><div class="line"><a name="l00311"></a><span class="lineno"> 311</span>  } <span class="keywordflow">else</span> {</div><div class="line"><a name="l00312"></a><span class="lineno"> 312</span>  <span class="keywordtype">int</span> i;</div><div class="line"><a name="l00313"></a><span class="lineno"> 313</span>  uint8_t DistriSum = 0;</div><div class="line"><a name="l00314"></a><span class="lineno"> 314</span>  <span class="keywordflow">for</span> ( i= 0 ; i < 8; i++ ){</div><div class="line"><a name="l00315"></a><span class="lineno"> 315</span>  DistriSum += DistriDataRate[i];</div><div class="line"><a name="l00316"></a><span class="lineno"> 316</span>  }</div><div class="line"><a name="l00317"></a><span class="lineno"> 317</span>  <span class="keywordflow">if</span> ( DistriSum == 0) {</div><div class="line"><a name="l00318"></a><span class="lineno"> 318</span>  memcpy(DistriDataRate,DistriDataRateInit,8);</div><div class="line"><a name="l00319"></a><span class="lineno"> 319</span>  }</div><div class="line"><a name="l00320"></a><span class="lineno"> 320</span>  uint8_t Newdr = <a class="code" href="utilities_8cpp.html#af5d8ad6dae489ac64821e7d4f004595d">randr</a>(0,7);</div><div class="line"><a name="l00321"></a><span class="lineno"> 321</span>  <span class="keywordflow">while</span> (DistriDataRate[Newdr] == 0) {</div><div class="line"><a name="l00322"></a><span class="lineno"> 322</span>  Newdr = <a class="code" href="utilities_8cpp.html#af5d8ad6dae489ac64821e7d4f004595d">randr</a>(0,7);</div><div class="line"><a name="l00323"></a><span class="lineno"> 323</span>  }</div><div class="line"><a name="l00324"></a><span class="lineno"> 324</span>  this->MacTxDataRate = Newdr;</div><div class="line"><a name="l00325"></a><span class="lineno"> 325</span>  DistriDataRate[Newdr] -- ;</div><div class="line"><a name="l00326"></a><span class="lineno"> 326</span>  this->AdrEnable = 0;</div><div class="line"><a name="l00327"></a><span class="lineno"> 327</span>  }</div><div class="line"><a name="l00328"></a><span class="lineno"> 328</span>  this->MacTxDataRate = ( this->MacTxDataRate > 7 ) ? 7 : this->MacTxDataRate;</div><div class="line"><a name="l00329"></a><span class="lineno"> 329</span>  TxDataRateToSfBw ( this->MacTxDataRate );</div><div class="line"><a name="l00330"></a><span class="lineno"> 330</span> }</div><div class="line"><a name="l00331"></a><span class="lineno"> 331</span> </div><div class="line"><a name="l00332"></a><span class="lineno"> 332</span> <span class="comment">/********************************************************************************/</span></div><div class="line"><a name="l00333"></a><span class="lineno"> 333</span> <span class="comment">/* RegionDecreaseDataRate */</span></div><div class="line"><a name="l00334"></a><span class="lineno"> 334</span> <span class="comment">/* method to update Datarate in ADR Mode */</span></div><div class="line"><a name="l00335"></a><span class="lineno"> 335</span> <span class="comment">/********************************************************************************/</span></div><div class="line"><a name="l00336"></a><span class="lineno"><a class="line" href="class_lora_regions_e_u.html#ad6bf116000ec083c6e7e0a7f930aa2c6"> 336</a></span> <span class="keyword">template</span> < <span class="keyword">class</span> R ><span class="keywordtype">void</span> <a class="code" href="class_lora_regions_e_u.html#ad6bf116000ec083c6e7e0a7f930aa2c6">LoraRegionsEU<R>::RegionDecreaseDataRate</a> ( <span class="keywordtype">void</span> ) {</div><div class="line"><a name="l00337"></a><span class="lineno"> 337</span>  uint8_t ValidTemp = 0;<span class="comment">//@notereview boolfjerrek</span></div><div class="line"><a name="l00338"></a><span class="lineno"> 338</span>  <span class="keywordflow">while</span> ( ( this->MacTxDataRateAdr > 0 ) && ( ValidTemp == 0 ) ) {</div><div class="line"><a name="l00339"></a><span class="lineno"> 339</span>  this->MacTxDataRateAdr --;</div><div class="line"><a name="l00340"></a><span class="lineno"> 340</span>  <span class="keywordflow">for</span> ( <span class="keywordtype">int</span> i = 0 ; i < this->NUMBER_OF_CHANNEL ; i ++ ) {</div><div class="line"><a name="l00341"></a><span class="lineno"> 341</span>  <span class="keywordflow">if</span> ( this->MacChannelIndexEnabled [i] == <a class="code" href="_define_8h.html#a726ca809ffd3d67ab4b8476646f26635aa1a84b06e25f52f3eff608a2e1241e3f">CHANNEL_ENABLED</a> ) {</div><div class="line"><a name="l00342"></a><span class="lineno"> 342</span>  <span class="keywordflow">if</span> ( ( this->MacTxDataRateAdr <= this->MacMaxDataRateChannel [i] ) && ( this->MacTxDataRateAdr >= this->MacMinDataRateChannel [i] ) ) {</div><div class="line"><a name="l00343"></a><span class="lineno"> 343</span>  ValidTemp ++;</div><div class="line"><a name="l00344"></a><span class="lineno"> 344</span>  }</div><div class="line"><a name="l00345"></a><span class="lineno"> 345</span>  }</div><div class="line"><a name="l00346"></a><span class="lineno"> 346</span>  }</div><div class="line"><a name="l00347"></a><span class="lineno"> 347</span>  }</div><div class="line"><a name="l00348"></a><span class="lineno"> 348</span>  <span class="comment">/* if adr DR = 0 enable the default channel*/</span></div><div class="line"><a name="l00349"></a><span class="lineno"> 349</span>  <span class="keywordflow">if</span> ( ( this->MacTxDataRateAdr == 0 ) && ( ValidTemp == 0) ) {</div><div class="line"><a name="l00350"></a><span class="lineno"> 350</span>  this->MacChannelIndexEnabled [0] = <a class="code" href="_define_8h.html#a726ca809ffd3d67ab4b8476646f26635aa1a84b06e25f52f3eff608a2e1241e3f">CHANNEL_ENABLED</a> ;</div><div class="line"><a name="l00351"></a><span class="lineno"> 351</span>  this->MacChannelIndexEnabled [1] = <a class="code" href="_define_8h.html#a726ca809ffd3d67ab4b8476646f26635aa1a84b06e25f52f3eff608a2e1241e3f">CHANNEL_ENABLED</a> ;</div><div class="line"><a name="l00352"></a><span class="lineno"> 352</span>  this->MacChannelIndexEnabled [2] = <a class="code" href="_define_8h.html#a726ca809ffd3d67ab4b8476646f26635aa1a84b06e25f52f3eff608a2e1241e3f">CHANNEL_ENABLED</a> ;;</div><div class="line"><a name="l00353"></a><span class="lineno"> 353</span>  }</div><div class="line"><a name="l00354"></a><span class="lineno"> 354</span> <span class="comment">//@notereview join continuer flag </span></div><div class="line"><a name="l00355"></a><span class="lineno"> 355</span> }</div><div class="line"><a name="l00356"></a><span class="lineno"> 356</span> </div><div class="line"><a name="l00357"></a><span class="lineno"> 357</span> </div><div class="line"><a name="l00358"></a><span class="lineno"> 358</span> <span class="comment">/********************************************************************************/</span></div><div class="line"><a name="l00359"></a><span class="lineno"> 359</span> <span class="comment">/* RegionGiveNextChannel */</span></div><div class="line"><a name="l00360"></a><span class="lineno"> 360</span> <span class="comment">/* method to set the next enable channel */</span></div><div class="line"><a name="l00361"></a><span class="lineno"> 361</span> <span class="comment">/********************************************************************************/</span></div><div class="line"><a name="l00362"></a><span class="lineno"><a class="line" href="class_lora_regions_e_u.html#adf5f39b2b13ad1dca0eccb80123c261d"> 362</a></span> <span class="keyword">template</span> < <span class="keyword">class</span> R ><span class="keywordtype">void</span> <a class="code" href="class_lora_regions_e_u.html#adf5f39b2b13ad1dca0eccb80123c261d">LoraRegionsEU<R>::RegionGiveNextChannel</a>( <span class="keywordtype">void</span> ) {</div><div class="line"><a name="l00363"></a><span class="lineno"> 363</span>  uint8_t NbOfActiveChannel = 0 ;</div><div class="line"><a name="l00364"></a><span class="lineno"> 364</span>  <span class="keywordflow">for</span> (<span class="keywordtype">int</span> i = 0 ; i < this->NUMBER_OF_CHANNEL ; i ++ ) {</div><div class="line"><a name="l00365"></a><span class="lineno"> 365</span>  <span class="keywordflow">if</span> ( this->MacChannelIndexEnabled [i] == <a class="code" href="_define_8h.html#a726ca809ffd3d67ab4b8476646f26635aa1a84b06e25f52f3eff608a2e1241e3f">CHANNEL_ENABLED</a> ) { </div><div class="line"><a name="l00366"></a><span class="lineno"> 366</span>  NbOfActiveChannel++;</div><div class="line"><a name="l00367"></a><span class="lineno"> 367</span>  }</div><div class="line"><a name="l00368"></a><span class="lineno"> 368</span>  }</div><div class="line"><a name="l00369"></a><span class="lineno"> 369</span>  uint8_t temp = <a class="code" href="utilities_8cpp.html#af5d8ad6dae489ac64821e7d4f004595d">randr</a> ( 0, ( NbOfActiveChannel - 1 ) );</div><div class="line"><a name="l00370"></a><span class="lineno"> 370</span>  <span class="keywordtype">int</span> ChannelIndex = 0;</div><div class="line"><a name="l00371"></a><span class="lineno"> 371</span>  ChannelIndex = this->FindEnabledChannel ( temp ); <span class="comment">// @note datarate valid not yett tested</span></div><div class="line"><a name="l00372"></a><span class="lineno"> 372</span>  <span class="keywordflow">if</span> ( ChannelIndex == -1 ) {</div><div class="line"><a name="l00373"></a><span class="lineno"> 373</span>  <a class="code" href="_define_8h.html#a0be11ce2e33906806ac4e521781809c0">DEBUG_PRINTF</a> (<span class="stringliteral">"INVALID CHANNEL active channel = %d and random channel = %d \n"</span>,NbOfActiveChannel,temp);</div><div class="line"><a name="l00374"></a><span class="lineno"> 374</span>  } <span class="keywordflow">else</span> {</div><div class="line"><a name="l00375"></a><span class="lineno"> 375</span>  this->MacTxFrequencyCurrent = this->MacTxFrequency[ChannelIndex];</div><div class="line"><a name="l00376"></a><span class="lineno"> 376</span>  this->MacRx1FrequencyCurrent = this->MacRx1Frequency[ChannelIndex];</div><div class="line"><a name="l00377"></a><span class="lineno"> 377</span>  }</div><div class="line"><a name="l00378"></a><span class="lineno"> 378</span> </div><div class="line"><a name="l00379"></a><span class="lineno"> 379</span> };</div><div class="line"><a name="l00380"></a><span class="lineno"> 380</span> </div><div class="line"><a name="l00381"></a><span class="lineno"><a class="line" href="class_lora_regions_e_u.html#aed553b79468100fb271bb2ac6a230c58"> 381</a></span> <span class="keyword">template</span> < <span class="keyword">class</span> R >uint8_t <a class="code" href="class_lora_regions_e_u.html#aed553b79468100fb271bb2ac6a230c58">LoraRegionsEU<R>::RegionGetAdrAckLimit</a>( <span class="keywordtype">void</span> ) {</div><div class="line"><a name="l00382"></a><span class="lineno"> 382</span>  <span class="keywordflow">return</span> ( ADR_ACK_LIMIT );</div><div class="line"><a name="l00383"></a><span class="lineno"> 383</span> }</div><div class="line"><a name="l00384"></a><span class="lineno"><a class="line" href="class_lora_regions_e_u.html#a4e27410febd49bfc58d3bf986177c1e7"> 384</a></span> <span class="keyword">template</span> < <span class="keyword">class</span> R >uint8_t <a class="code" href="class_lora_regions_e_u.html#a4e27410febd49bfc58d3bf986177c1e7">LoraRegionsEU<R>::RegionGetAdrAckDelay</a>( <span class="keywordtype">void</span> ) {</div><div class="line"><a name="l00385"></a><span class="lineno"> 385</span>  <span class="keywordflow">return</span> ( ADR_ACK_DELAY );</div><div class="line"><a name="l00386"></a><span class="lineno"> 386</span> }</div><div class="line"><a name="l00387"></a><span class="lineno"> 387</span> <span class="comment">/***********************************************************************************************/</span></div><div class="line"><a name="l00388"></a><span class="lineno"> 388</span> <span class="comment">/* Private Methods */</span></div><div class="line"><a name="l00389"></a><span class="lineno"> 389</span> <span class="comment">/***********************************************************************************************/</span></div><div class="line"><a name="l00390"></a><span class="lineno"> 390</span> <span class="comment">//@notereview function a commun</span></div><div class="line"><a name="l00391"></a><span class="lineno"> 391</span> <span class="keyword">template</span> < <span class="keyword">class</span> R ><span class="keywordtype">void</span> <a class="code" href="class_lora_regions_e_u.html">LoraRegionsEU<R>:: TxDataRateToSfBw</a> ( uint8_t dataRate ) {</div><div class="line"><a name="l00392"></a><span class="lineno"> 392</span>  this->MacTxModulationCurrent = <a class="code" href="_define_8h.html#a81bbaee3ae5a0ec0040b6faedbf80b2fa082b1eaa6386e5c3c0204226b4824c07">LORA</a> ;</div><div class="line"><a name="l00393"></a><span class="lineno"> 393</span>  <span class="keywordflow">if</span> ( dataRate < 6 ){ </div><div class="line"><a name="l00394"></a><span class="lineno"> 394</span>  this->MacTxSfCurrent = 12 - dataRate ;</div><div class="line"><a name="l00395"></a><span class="lineno"> 395</span>  this->MacTxBwCurrent = <a class="code" href="_define_8h.html#a6cbb491180e131f374cdbe63880c85e1a89b9f329085d2e8be80749ccfdd10580">BW125</a> ;</div><div class="line"><a name="l00396"></a><span class="lineno"> 396</span>  } <span class="keywordflow">else</span> <span class="keywordflow">if</span> ( dataRate == 6 ){ </div><div class="line"><a name="l00397"></a><span class="lineno"> 397</span>  this->MacTxSfCurrent = 7;</div><div class="line"><a name="l00398"></a><span class="lineno"> 398</span>  this->MacTxBwCurrent = <a class="code" href="_define_8h.html#a6cbb491180e131f374cdbe63880c85e1a21fbe80cfc7b4c2918a987da6ca6d6e9">BW250</a> ;}</div><div class="line"><a name="l00399"></a><span class="lineno"> 399</span>  <span class="keywordflow">else</span> <span class="keywordflow">if</span> ( dataRate == 7 ) {</div><div class="line"><a name="l00400"></a><span class="lineno"> 400</span>  this->MacTxModulationCurrent = <a class="code" href="_define_8h.html#a81bbaee3ae5a0ec0040b6faedbf80b2fa6688d5e854f831d70af179eec9f04e83">FSK</a> ;</div><div class="line"><a name="l00401"></a><span class="lineno"> 401</span>  } <span class="keywordflow">else</span> {</div><div class="line"><a name="l00402"></a><span class="lineno"> 402</span>  this->MacTxSfCurrent = 12 ;</div><div class="line"><a name="l00403"></a><span class="lineno"> 403</span>  this->MacTxBwCurrent = <a class="code" href="_define_8h.html#a6cbb491180e131f374cdbe63880c85e1a89b9f329085d2e8be80749ccfdd10580">BW125</a> ;</div><div class="line"><a name="l00404"></a><span class="lineno"> 404</span>  <a class="code" href="_define_8h.html#af1206b4d3bda8c4c8c9257f369a9e9e1">DEBUG_MSG</a>( <span class="stringliteral">" Invalid Datarate \n"</span> ) ; </div><div class="line"><a name="l00405"></a><span class="lineno"> 405</span>  }</div><div class="line"><a name="l00406"></a><span class="lineno"> 406</span> }</div><div class="line"><a name="l00407"></a><span class="lineno"> 407</span> <span class="keyword">template</span> < <span class="keyword">class</span> R ><span class="keywordtype">void</span> <a class="code" href="class_lora_regions_e_u.html">LoraRegionsEU<R>:: Rx2DataRateToSfBw</a> ( uint8_t dataRate ) {</div><div class="line"><a name="l00408"></a><span class="lineno"> 408</span>  <span class="keywordflow">if</span> ( dataRate < 6 ){ </div><div class="line"><a name="l00409"></a><span class="lineno"> 409</span>  this->MacRx2SfCurrent = 12 - dataRate ;</div><div class="line"><a name="l00410"></a><span class="lineno"> 410</span>  this->MacRx2BwCurrent = <a class="code" href="_define_8h.html#a6cbb491180e131f374cdbe63880c85e1a89b9f329085d2e8be80749ccfdd10580">BW125</a> ;</div><div class="line"><a name="l00411"></a><span class="lineno"> 411</span>  } <span class="keywordflow">else</span> <span class="keywordflow">if</span> ( dataRate== 6 ){ </div><div class="line"><a name="l00412"></a><span class="lineno"> 412</span>  this->MacRx2SfCurrent = 7;</div><div class="line"><a name="l00413"></a><span class="lineno"> 413</span>  this->MacRx2BwCurrent = <a class="code" href="_define_8h.html#a6cbb491180e131f374cdbe63880c85e1a21fbe80cfc7b4c2918a987da6ca6d6e9">BW250</a> ;}</div><div class="line"><a name="l00414"></a><span class="lineno"> 414</span>  <span class="keywordflow">else</span> <span class="keywordflow">if</span> ( dataRate == 7 ) {</div><div class="line"><a name="l00415"></a><span class="lineno"> 415</span>  <span class="comment">//@note tbd manage fsk case }</span></div><div class="line"><a name="l00416"></a><span class="lineno"> 416</span>  }</div><div class="line"><a name="l00417"></a><span class="lineno"> 417</span>  <span class="keywordflow">else</span> {</div><div class="line"><a name="l00418"></a><span class="lineno"> 418</span>  this->MacRx2SfCurrent = 12 ;</div><div class="line"><a name="l00419"></a><span class="lineno"> 419</span>  this->MacRx2BwCurrent = <a class="code" href="_define_8h.html#a6cbb491180e131f374cdbe63880c85e1a89b9f329085d2e8be80749ccfdd10580">BW125</a> ;</div><div class="line"><a name="l00420"></a><span class="lineno"> 420</span>  <a class="code" href="_define_8h.html#af1206b4d3bda8c4c8c9257f369a9e9e1">DEBUG_MSG</a>( <span class="stringliteral">" Invalid Datarate \n"</span> ) ; </div><div class="line"><a name="l00421"></a><span class="lineno"> 421</span>  }</div><div class="line"><a name="l00422"></a><span class="lineno"> 422</span> }</div><div class="line"><a name="l00423"></a><span class="lineno"> 423</span> </div><div class="ttc" id="structs_lo_ra_wan_keys_html"><div class="ttname"><a href="structs_lo_ra_wan_keys.html">sLoRaWanKeys</a></div><div class="ttdef"><b>Definition:</b> <a href="_define_8h_source.html#l00266">Define.h:266</a></div></div>
<div class="ttc" id="class_lora_regions_e_u_html_a2a3dacdfb28c15b378393a78b92e4dc0"><div class="ttname"><a href="class_lora_regions_e_u.html#a2a3dacdfb28c15b378393a78b92e4dc0">LoraRegionsEU::RECEIVE_DELAY1</a></div><div class="ttdeci">static const int RECEIVE_DELAY1</div><div class="ttdef"><b>Definition:</b> <a href="_regions_8h_source.html#l00048">Regions.h:48</a></div></div>
<div class="ttc" id="_define_8h_html_a1287040ce87452e6c780ec0917441aeaa91850405983bdf8c8f74f6aada3dd398"><div class="ttname"><a href="_define_8h.html#a1287040ce87452e6c780ec0917441aeaa91850405983bdf8c8f74f6aada3dd398">STATIC_ADR_MODE</a></div><div class="ttdef"><b>Definition:</b> <a href="_define_8h_source.html#l00204">Define.h:204</a></div></div>
<div class="ttc" id="class_lora_regions_e_u_html_a1222a9362e7ba3715d9848af850af3f0"><div class="ttname"><a href="class_lora_regions_e_u.html#a1222a9362e7ba3715d9848af850af3f0">LoraRegionsEU::RegionSetRxConfig</a></div><div class="ttdeci">virtual void RegionSetRxConfig(eRxWinType type)</div><div class="ttdef"><b>Definition:</b> <a href="_regions_8cpp_source.html#l00166">Regions.cpp:166</a></div></div>
<div class="ttc" id="_define_8h_html_af1206b4d3bda8c4c8c9257f369a9e9e1"><div class="ttname"><a href="_define_8h.html#af1206b4d3bda8c4c8c9257f369a9e9e1">DEBUG_MSG</a></div><div class="ttdeci">#define DEBUG_MSG(str)</div><div class="ttdef"><b>Definition:</b> <a href="_define_8h_source.html#l00043">Define.h:43</a></div></div>
<div class="ttc" id="class_lora_regions_e_u_html_a6dc681bc39f00825ed46e9636d9acf52"><div class="ttname"><a href="class_lora_regions_e_u.html#a6dc681bc39f00825ed46e9636d9acf52">LoraRegionsEU::RegionIsValidRx1DrOffset</a></div><div class="ttdeci">virtual eStatusLoRaWan RegionIsValidRx1DrOffset(uint8_t Rx1DataRateOffset)</div><div class="ttdef"><b>Definition:</b> <a href="_regions_8cpp_source.html#l00181">Regions.cpp:181</a></div></div>
<div class="ttc" id="class_lora_regions_e_u_html_a322d0f9d2a00243ef01fe15c017ed288"><div class="ttname"><a href="class_lora_regions_e_u.html#a322d0f9d2a00243ef01fe15c017ed288">LoraRegionsEU::RegionSetPower</a></div><div class="ttdeci">virtual void RegionSetPower(uint8_t PowerCmd)</div><div class="ttdef"><b>Definition:</b> <a href="_regions_8cpp_source.html#l00071">Regions.cpp:71</a></div></div>
<div class="ttc" id="_define_8h_html_ab894a4c21b8aae9e9c68d8c426a66956a16d23020bee85c2ada36491598054bab"><div class="ttname"><a href="_define_8h.html#ab894a4c21b8aae9e9c68d8c426a66956a16d23020bee85c2ada36491598054bab">RX2</a></div><div class="ttdef"><b>Definition:</b> <a href="_define_8h_source.html#l00229">Define.h:229</a></div></div>
<div class="ttc" id="_define_8h_html_a81bbaee3ae5a0ec0040b6faedbf80b2fa082b1eaa6386e5c3c0204226b4824c07"><div class="ttname"><a href="_define_8h.html#a81bbaee3ae5a0ec0040b6faedbf80b2fa082b1eaa6386e5c3c0204226b4824c07">LORA</a></div><div class="ttdef"><b>Definition:</b> <a href="_define_8h_source.html#l00252">Define.h:252</a></div></div>
<div class="ttc" id="class_lora_regions_e_u_html"><div class="ttname"><a href="class_lora_regions_e_u.html">LoraRegionsEU</a></div><div class="ttdef"><b>Definition:</b> <a href="_regions_8h_source.html#l00036">Regions.h:36</a></div></div>
<div class="ttc" id="_define_8h_html_a1cea710adbbf5b02bced8f79cd82f7b9"><div class="ttname"><a href="_define_8h.html#a1cea710adbbf5b02bced8f79cd82f7b9">eStatusLoRaWan</a></div><div class="ttdeci">eStatusLoRaWan</div><div class="ttdef"><b>Definition:</b> <a href="_define_8h_source.html#l00211">Define.h:211</a></div></div>
<div class="ttc" id="class_lora_wan_container_html_af4018ef9a538f389d20f9c720fcf8ce1"><div class="ttname"><a href="class_lora_wan_container.html#af4018ef9a538f389d20f9c720fcf8ce1">LoraWanContainer< 16, R >::MacRx2Frequency</a></div><div class="ttdeci">uint32_t MacRx2Frequency</div><div class="ttdef"><b>Definition:</b> <a href="_mac_layer_8h_source.html#l00070">MacLayer.h:70</a></div></div>
<div class="ttc" id="utilities_8h_html"><div class="ttname"><a href="utilities_8h.html">utilities.h</a></div></div>
<div class="ttc" id="_define_8h_html_a1cea710adbbf5b02bced8f79cd82f7b9a288c866323a148675d7b1ef7604ea96d"><div class="ttname"><a href="_define_8h.html#a1cea710adbbf5b02bced8f79cd82f7b9a288c866323a148675d7b1ef7604ea96d">ERRORLORAWAN</a></div><div class="ttdef"><b>Definition:</b> <a href="_define_8h_source.html#l00212">Define.h:212</a></div></div>
<div class="ttc" id="class_lora_regions_e_u_html_a192e8af5bcab83f1f7ff48b5d130206e"><div class="ttname"><a href="class_lora_regions_e_u.html#a192e8af5bcab83f1f7ff48b5d130206e">LoraRegionsEU::RegionIsValidMacFrequency</a></div><div class="ttdeci">virtual eStatusLoRaWan RegionIsValidMacFrequency(uint32_t Frequency)</div><div class="ttdef"><b>Definition:</b> <a href="_regions_8cpp_source.html#l00207">Regions.cpp:207</a></div></div>
<div class="ttc" id="class_lora_wan_container_html_a4cae0887d6a3475147858cd713ab0784"><div class="ttname"><a href="class_lora_wan_container.html#a4cae0887d6a3475147858cd713ab0784">LoraWanContainer< 16, R >::MacTxFrequency</a></div><div class="ttdeci">uint32_t MacTxFrequency[NBCHANNEL]</div><div class="ttdef"><b>Definition:</b> <a href="_mac_layer_8h_source.html#l00075">MacLayer.h:75</a></div></div>
<div class="ttc" id="_define_8h_html_a726ca809ffd3d67ab4b8476646f26635ac53516a4abf151f572ef7a6ac3323c48"><div class="ttname"><a href="_define_8h.html#a726ca809ffd3d67ab4b8476646f26635ac53516a4abf151f572ef7a6ac3323c48">CHANNEL_DISABLED</a></div><div class="ttdef"><b>Definition:</b> <a href="_define_8h_source.html#l00193">Define.h:193</a></div></div>
<div class="ttc" id="_define_8h_html_a1287040ce87452e6c780ec0917441aeaa0a9da77eac27035913822082f46da48c"><div class="ttname"><a href="_define_8h.html#a1287040ce87452e6c780ec0917441aeaa0a9da77eac27035913822082f46da48c">MOBILE_LONGRANGE_DR_DISTRIBUTION</a></div><div class="ttdef"><b>Definition:</b> <a href="_define_8h_source.html#l00205">Define.h:205</a></div></div>
<div class="ttc" id="class_lora_wan_container_html_ae294fd8611d2487aeb9a8b1185daf8ea"><div class="ttname"><a href="class_lora_wan_container.html#ae294fd8611d2487aeb9a8b1185daf8ea">LoraWanContainer< 16, R >::MacTxPower</a></div><div class="ttdeci">uint8_t MacTxPower</div><div class="ttdef"><b>Definition:</b> <a href="_mac_layer_8h_source.html#l00062">MacLayer.h:62</a></div></div>
<div class="ttc" id="_define_8h_html_a1287040ce87452e6c780ec0917441aeaa4ea2cc12f32e5f9dabb49d0a032339d6"><div class="ttname"><a href="_define_8h.html#a1287040ce87452e6c780ec0917441aeaa4ea2cc12f32e5f9dabb49d0a032339d6">MOBILE_LOWPER_DR_DISTRIBUTION</a></div><div class="ttdef"><b>Definition:</b> <a href="_define_8h_source.html#l00206">Define.h:206</a></div></div>
<div class="ttc" id="class_lora_wan_container_html_af547f45dbe7cc0255396cfa85ba9533a"><div class="ttname"><a href="class_lora_wan_container.html#af547f45dbe7cc0255396cfa85ba9533a">LoraWanContainer< 16, R >::MacRx1Delay</a></div><div class="ttdeci">int MacRx1Delay</div><div class="ttdef"><b>Definition:</b> <a href="_mac_layer_8h_source.html#l00085">MacLayer.h:85</a></div></div>
<div class="ttc" id="class_lora_regions_e_u_html_aab1f4fd427de20da11c75a1bb187504f"><div class="ttname"><a href="class_lora_regions_e_u.html#aab1f4fd427de20da11c75a1bb187504f">LoraRegionsEU::RX2DR_INIT</a></div><div class="ttdeci">static const int RX2DR_INIT</div><div class="ttdef"><b>Definition:</b> <a href="_regions_8h_source.html#l00055">Regions.h:55</a></div></div>
<div class="ttc" id="class_lora_regions_e_u_html_a94b24cf6b5b8059025cb4e12d03eb97f"><div class="ttname"><a href="class_lora_regions_e_u.html#a94b24cf6b5b8059025cb4e12d03eb97f">LoraRegionsEU::RegionSetDataRateDistribution</a></div><div class="ttdeci">void RegionSetDataRateDistribution(uint8_t adrMode)</div><div class="ttdef"><b>Definition:</b> <a href="_regions_8cpp_source.html#l00241">Regions.cpp:241</a></div></div>
<div class="ttc" id="_user_define_8h_html_adf3d7d6b7db31d5d169ead702de25c77"><div class="ttname"><a href="_user_define_8h.html#adf3d7d6b7db31d5d169ead702de25c77">USER_DR_DISTRIBUTION_PARAMETERS</a></div><div class="ttdeci">#define USER_DR_DISTRIBUTION_PARAMETERS</div><div class="ttdef"><b>Definition:</b> <a href="_user_define_8h_source.html#l00064">UserDefine.h:64</a></div></div>
<div class="ttc" id="class_lora_regions_e_u_html_aed553b79468100fb271bb2ac6a230c58"><div class="ttname"><a href="class_lora_regions_e_u.html#aed553b79468100fb271bb2ac6a230c58">LoraRegionsEU::RegionGetAdrAckLimit</a></div><div class="ttdeci">virtual uint8_t RegionGetAdrAckLimit(void)</div><div class="ttdef"><b>Definition:</b> <a href="_regions_8cpp_source.html#l00381">Regions.cpp:381</a></div></div>
<div class="ttc" id="class_lora_wan_container_html"><div class="ttname"><a href="class_lora_wan_container.html">LoraWanContainer</a></div><div class="ttdef"><b>Definition:</b> <a href="_mac_layer_8h_source.html#l00034">MacLayer.h:34</a></div></div>
<div class="ttc" id="class_lora_wan_container_html_aa9219b0dc784ae044e3e1a0dcd305e53"><div class="ttname"><a href="class_lora_wan_container.html#aa9219b0dc784ae044e3e1a0dcd305e53">LoraWanContainer< 16, R >::NUMBER_OF_CHANNEL</a></div><div class="ttdeci">static const uint8_t NUMBER_OF_CHANNEL</div><div class="ttdef"><b>Definition:</b> <a href="_mac_layer_8h_source.html#l00039">MacLayer.h:39</a></div></div>
<div class="ttc" id="_define_8h_html_a726ca809ffd3d67ab4b8476646f26635aa1a84b06e25f52f3eff608a2e1241e3f"><div class="ttname"><a href="_define_8h.html#a726ca809ffd3d67ab4b8476646f26635aa1a84b06e25f52f3eff608a2e1241e3f">CHANNEL_ENABLED</a></div><div class="ttdef"><b>Definition:</b> <a href="_define_8h_source.html#l00194">Define.h:194</a></div></div>
<div class="ttc" id="class_lora_regions_e_u_html_acdbe1d2f767912fac7edf295961dfb6b"><div class="ttname"><a href="class_lora_regions_e_u.html#acdbe1d2f767912fac7edf295961dfb6b">LoraRegionsEU::RegionGetCFList</a></div><div class="ttdeci">virtual void RegionGetCFList(void)</div><div class="ttdef"><b>Definition:</b> <a href="_regions_8cpp_source.html#l00086">Regions.cpp:86</a></div></div>
<div class="ttc" id="_define_8h_html_ab894a4c21b8aae9e9c68d8c426a66956a56a438ee3630fd80572b82bf5db6ef85"><div class="ttname"><a href="_define_8h.html#ab894a4c21b8aae9e9c68d8c426a66956a56a438ee3630fd80572b82bf5db6ef85">RX1</a></div><div class="ttdef"><b>Definition:</b> <a href="_define_8h_source.html#l00228">Define.h:228</a></div></div>
<div class="ttc" id="class_lora_regions_e_u_html_a367dcb126971269dce46511383696bad"><div class="ttname"><a href="class_lora_regions_e_u.html#a367dcb126971269dce46511383696bad">LoraRegionsEU::RegionIsAcceptableDataRate</a></div><div class="ttdeci">virtual eStatusLoRaWan RegionIsAcceptableDataRate(uint8_t DataRate)</div><div class="ttdef"><b>Definition:</b> <a href="_regions_8cpp_source.html#l00196">Regions.cpp:196</a></div></div>
<div class="ttc" id="_define_8h_html_a6cbb491180e131f374cdbe63880c85e1a89b9f329085d2e8be80749ccfdd10580"><div class="ttname"><a href="_define_8h.html#a6cbb491180e131f374cdbe63880c85e1a89b9f329085d2e8be80749ccfdd10580">BW125</a></div><div class="ttdef"><b>Definition:</b> <a href="_define_8h_source.html#l00187">Define.h:187</a></div></div>
<div class="ttc" id="class_lora_regions_e_u_html_ae819c451aa7c913b67386705ed993645"><div class="ttname"><a href="class_lora_regions_e_u.html#ae819c451aa7c913b67386705ed993645">LoraRegionsEU::LoraRegionsEU</a></div><div class="ttdeci">LoraRegionsEU(sLoRaWanKeys LoRaWanKeys, R *RadioUser, uint32_t FlashAdress)</div><div class="ttdef"><b>Definition:</b> <a href="_regions_8cpp_source.html#l00026">Regions.cpp:26</a></div></div>
<div class="ttc" id="_define_8h_html_ab894a4c21b8aae9e9c68d8c426a66956"><div class="ttname"><a href="_define_8h.html#ab894a4c21b8aae9e9c68d8c426a66956">eRxWinType</a></div><div class="ttdeci">eRxWinType</div><div class="ttdef"><b>Definition:</b> <a href="_define_8h_source.html#l00227">Define.h:227</a></div></div>
<div class="ttc" id="_define_8h_html_a1cea710adbbf5b02bced8f79cd82f7b9a400ceb20987c156a2f988a2fe4702fa0"><div class="ttname"><a href="_define_8h.html#a1cea710adbbf5b02bced8f79cd82f7b9a400ceb20987c156a2f988a2fe4702fa0">OKLORAWAN</a></div><div class="ttdef"><b>Definition:</b> <a href="_define_8h_source.html#l00213">Define.h:213</a></div></div>
<div class="ttc" id="class_lora_regions_e_u_html_aac8f3f20d2a79717a1c0d26f72e073ef"><div class="ttname"><a href="class_lora_regions_e_u.html#aac8f3f20d2a79717a1c0d26f72e073ef">LoraRegionsEU::RegionMaxPayloadSize</a></div><div class="ttdeci">eStatusLoRaWan RegionMaxPayloadSize(uint8_t sizeIn)</div><div class="ttdef"><b>Definition:</b> <a href="_regions_8cpp_source.html#l00154">Regions.cpp:154</a></div></div>
<div class="ttc" id="_define_8h_html_abbfbf157098d2505c0cf33877b128cc9a0c0d8079276630d54f238d3fc4b594f7"><div class="ttname"><a href="_define_8h.html#abbfbf157098d2505c0cf33877b128cc9a0c0d8079276630d54f238d3fc4b594f7">ERROR_CHANNEL_MASK</a></div><div class="ttdef"><b>Definition:</b> <a href="_define_8h_source.html#l00218">Define.h:218</a></div></div>
<div class="ttc" id="_define_8h_html_a1287040ce87452e6c780ec0917441aeaa87bc2eb3b85f4eac3137dcf4b5403b0c"><div class="ttname"><a href="_define_8h.html#a1287040ce87452e6c780ec0917441aeaa87bc2eb3b85f4eac3137dcf4b5403b0c">JOIN_DR_DISTRIBUTION</a></div><div class="ttdef"><b>Definition:</b> <a href="_define_8h_source.html#l00207">Define.h:207</a></div></div>
<div class="ttc" id="_define_8h_html_abbfbf157098d2505c0cf33877b128cc9a3ed30409824cdd570e6e7914e0d6a91b"><div class="ttname"><a href="_define_8h.html#abbfbf157098d2505c0cf33877b128cc9a3ed30409824cdd570e6e7914e0d6a91b">OKCHANNEL</a></div><div class="ttdef"><b>Definition:</b> <a href="_define_8h_source.html#l00219">Define.h:219</a></div></div>
<div class="ttc" id="_define_8h_html_a1287040ce87452e6c780ec0917441aeaaffaca9ba78ad465710d6b05ac2b93648"><div class="ttname"><a href="_define_8h.html#a1287040ce87452e6c780ec0917441aeaaffaca9ba78ad465710d6b05ac2b93648">USER_DR_DISTRIBUTION</a></div><div class="ttdef"><b>Definition:</b> <a href="_define_8h_source.html#l00208">Define.h:208</a></div></div>
<div class="ttc" id="_define_8h_html_a6cbb491180e131f374cdbe63880c85e1a21fbe80cfc7b4c2918a987da6ca6d6e9"><div class="ttname"><a href="_define_8h.html#a6cbb491180e131f374cdbe63880c85e1a21fbe80cfc7b4c2918a987da6ca6d6e9">BW250</a></div><div class="ttdef"><b>Definition:</b> <a href="_define_8h_source.html#l00188">Define.h:188</a></div></div>
<div class="ttc" id="class_lora_regions_e_u_html_a4e27410febd49bfc58d3bf986177c1e7"><div class="ttname"><a href="class_lora_regions_e_u.html#a4e27410febd49bfc58d3bf986177c1e7">LoraRegionsEU::RegionGetAdrAckDelay</a></div><div class="ttdeci">virtual uint8_t RegionGetAdrAckDelay(void)</div><div class="ttdef"><b>Definition:</b> <a href="_regions_8cpp_source.html#l00384">Regions.cpp:384</a></div></div>
<div class="ttc" id="_define_8h_html_a0be11ce2e33906806ac4e521781809c0"><div class="ttname"><a href="_define_8h.html#a0be11ce2e33906806ac4e521781809c0">DEBUG_PRINTF</a></div><div class="ttdeci">#define DEBUG_PRINTF(fmt, args...)</div><div class="ttdef"><b>Definition:</b> <a href="_define_8h_source.html#l00044">Define.h:44</a></div></div>
<div class="ttc" id="_define_8h_html"><div class="ttname"><a href="_define_8h.html">Define.h</a></div><div class="ttdoc">LoRaWan Mac parameters. </div></div>
<div class="ttc" id="class_lora_regions_e_u_html_aeb59fccca463d845279c448a6fa46548"><div class="ttname"><a href="class_lora_regions_e_u.html#aeb59fccca463d845279c448a6fa46548">LoraRegionsEU::RegionIsValidDataRate</a></div><div class="ttdeci">virtual eStatusLoRaWan RegionIsValidDataRate(uint8_t temp)</div><div class="ttdef"><b>Definition:</b> <a href="_regions_8cpp_source.html#l00190">Regions.cpp:190</a></div></div>
<div class="ttc" id="class_lora_regions_e_u_html_a3662471b098dc1e319ab386eaf0b3f52"><div class="ttname"><a href="class_lora_regions_e_u.html#a3662471b098dc1e319ab386eaf0b3f52">LoraRegionsEU::RegionInitChannelMask</a></div><div class="ttdeci">virtual void RegionInitChannelMask(void)</div><div class="ttdef"><b>Definition:</b> <a href="_regions_8cpp_source.html#l00139">Regions.cpp:139</a></div></div>
<div class="ttc" id="class_lora_regions_e_u_html_a265374672b836ead15fe670d9207bf4e"><div class="ttname"><a href="class_lora_regions_e_u.html#a265374672b836ead15fe670d9207bf4e">LoraRegionsEU::RegionIsValidChannelIndex</a></div><div class="ttdeci">virtual eStatusLoRaWan RegionIsValidChannelIndex(uint8_t ChannelIndex)</div><div class="ttdef"><b>Definition:</b> <a href="_regions_8cpp_source.html#l00226">Regions.cpp:226</a></div></div>
<div class="ttc" id="class_lora_wan_container_html_a26d187a951c769d9419527583d70ee3c"><div class="ttname"><a href="class_lora_wan_container.html#a26d187a951c769d9419527583d70ee3c">LoraWanContainer< 16, R >::MacRx1DataRateOffset</a></div><div class="ttdeci">uint8_t MacRx1DataRateOffset</div><div class="ttdef"><b>Definition:</b> <a href="_mac_layer_8h_source.html#l00071">MacLayer.h:71</a></div></div>
<div class="ttc" id="class_lora_wan_container_html_ad78558332c51d4dc8cc4fde0e85a9c71"><div class="ttname"><a href="class_lora_wan_container.html#ad78558332c51d4dc8cc4fde0e85a9c71">LoraWanContainer< 16, R >::MacRx1Frequency</a></div><div class="ttdeci">uint32_t MacRx1Frequency[NBCHANNEL]</div><div class="ttdef"><b>Definition:</b> <a href="_mac_layer_8h_source.html#l00076">MacLayer.h:76</a></div></div>
<div class="ttc" id="class_lora_regions_e_u_html_a9aef35dea0d5101768696bed87fa8380"><div class="ttname"><a href="class_lora_regions_e_u.html#a9aef35dea0d5101768696bed87fa8380">LoraRegionsEU::RegionSetMask</a></div><div class="ttdeci">virtual void RegionSetMask(void)</div><div class="ttdef"><b>Definition:</b> <a href="_regions_8cpp_source.html#l00142">Regions.cpp:142</a></div></div>
<div class="ttc" id="_define_8h_html_abbfbf157098d2505c0cf33877b128cc9a10548013022903b1f4d2b96703b4a3fb"><div class="ttname"><a href="_define_8h.html#abbfbf157098d2505c0cf33877b128cc9a10548013022903b1f4d2b96703b4a3fb">ERROR_CHANNEL_CNTL</a></div><div class="ttdef"><b>Definition:</b> <a href="_define_8h_source.html#l00217">Define.h:217</a></div></div>
<div class="ttc" id="class_lora_wan_container_html_a90a66a8b7888673e0568c1202d1d3421"><div class="ttname"><a href="class_lora_wan_container.html#a90a66a8b7888673e0568c1202d1d3421">LoraWanContainer< 16, R >::MacTxDataRateAdr</a></div><div class="ttdeci">uint8_t MacTxDataRateAdr</div><div class="ttdef"><b>Definition:</b> <a href="_mac_layer_8h_source.html#l00061">MacLayer.h:61</a></div></div>
<div class="ttc" id="class_lora_wan_container_html_a7af736bad42311bdfba5a67fd2701140"><div class="ttname"><a href="class_lora_wan_container.html#a7af736bad42311bdfba5a67fd2701140">LoraWanContainer< 16, R >::MacMaxDataRateChannel</a></div><div class="ttdeci">uint8_t MacMaxDataRateChannel[NBCHANNEL]</div><div class="ttdef"><b>Definition:</b> <a href="_mac_layer_8h_source.html#l00078">MacLayer.h:78</a></div></div>
<div class="ttc" id="class_lora_regions_e_u_html_ad6bf116000ec083c6e7e0a7f930aa2c6"><div class="ttname"><a href="class_lora_regions_e_u.html#ad6bf116000ec083c6e7e0a7f930aa2c6">LoraRegionsEU::RegionDecreaseDataRate</a></div><div class="ttdeci">virtual void RegionDecreaseDataRate(void)</div><div class="ttdef"><b>Definition:</b> <a href="_regions_8cpp_source.html#l00336">Regions.cpp:336</a></div></div>
<div class="ttc" id="class_lora_wan_container_html_acd49152da70498fc82299e77b2ede009"><div class="ttname"><a href="class_lora_wan_container.html#acd49152da70498fc82299e77b2ede009">LoraWanContainer< 16, R >::MacChannelIndexEnabled</a></div><div class="ttdeci">uint8_t MacChannelIndexEnabled[NBCHANNEL]</div><div class="ttdef"><b>Definition:</b> <a href="_mac_layer_8h_source.html#l00079">MacLayer.h:79</a></div></div>
<div class="ttc" id="utilities_8cpp_html_af5d8ad6dae489ac64821e7d4f004595d"><div class="ttname"><a href="utilities_8cpp.html#af5d8ad6dae489ac64821e7d4f004595d">randr</a></div><div class="ttdeci">int32_t randr(int32_t min, int32_t max)</div><div class="ttdoc">Computes a random number between min and max. </div><div class="ttdef"><b>Definition:</b> <a href="utilities_8cpp_source.html#l00041">utilities.cpp:41</a></div></div>
<div class="ttc" id="_define_8h_html_abbfbf157098d2505c0cf33877b128cc9"><div class="ttname"><a href="_define_8h.html#abbfbf157098d2505c0cf33877b128cc9">eStatusChannel</a></div><div class="ttdeci">eStatusChannel</div><div class="ttdef"><b>Definition:</b> <a href="_define_8h_source.html#l00216">Define.h:216</a></div></div>
<div class="ttc" id="_regions_8h_html"><div class="ttname"><a href="_regions_8h.html">Regions.h</a></div></div>
<div class="ttc" id="class_lora_regions_e_u_html_af19055a7f2df125b3937ebaf033f50af"><div class="ttname"><a href="class_lora_regions_e_u.html#af19055a7f2df125b3937ebaf033f50af">LoraRegionsEU::RegionBuildChannelMask</a></div><div class="ttdeci">virtual eStatusChannel RegionBuildChannelMask(uint8_t ChMaskCntl, uint16_t ChMask)</div><div class="ttdef"><b>Definition:</b> <a href="_regions_8cpp_source.html#l00111">Regions.cpp:111</a></div></div>
<div class="ttc" id="class_lora_regions_e_u_html_adf5f39b2b13ad1dca0eccb80123c261d"><div class="ttname"><a href="class_lora_regions_e_u.html#adf5f39b2b13ad1dca0eccb80123c261d">LoraRegionsEU::RegionGiveNextChannel</a></div><div class="ttdeci">virtual void RegionGiveNextChannel(void)</div><div class="ttdef"><b>Definition:</b> <a href="_regions_8cpp_source.html#l00362">Regions.cpp:362</a></div></div>
<div class="ttc" id="class_lora_wan_container_html_a2f32e42a487c751f736af790b98aece8"><div class="ttname"><a href="class_lora_wan_container.html#a2f32e42a487c751f736af790b98aece8">LoraWanContainer< 16, R >::MacMinDataRateChannel</a></div><div class="ttdeci">uint8_t MacMinDataRateChannel[NBCHANNEL]</div><div class="ttdef"><b>Definition:</b> <a href="_mac_layer_8h_source.html#l00077">MacLayer.h:77</a></div></div>
<div class="ttc" id="_define_8h_html_a81bbaee3ae5a0ec0040b6faedbf80b2fa6688d5e854f831d70af179eec9f04e83"><div class="ttname"><a href="_define_8h.html#a81bbaee3ae5a0ec0040b6faedbf80b2fa6688d5e854f831d70af179eec9f04e83">FSK</a></div><div class="ttdef"><b>Definition:</b> <a href="_define_8h_source.html#l00253">Define.h:253</a></div></div>
<div class="ttc" id="class_lora_wan_container_html_aca87f947d0988768d234f64be6ad55b7"><div class="ttname"><a href="class_lora_wan_container.html#aca87f947d0988768d234f64be6ad55b7">LoraWanContainer< 16, R >::MacRx2DataRate</a></div><div class="ttdeci">uint8_t MacRx2DataRate</div><div class="ttdef"><b>Definition:</b> <a href="_mac_layer_8h_source.html#l00069">MacLayer.h:69</a></div></div>
<div class="ttc" id="class_lora_regions_e_u_html_ac28aa9ff150676c7f1dd7425dbb6fffa"><div class="ttname"><a href="class_lora_regions_e_u.html#ac28aa9ff150676c7f1dd7425dbb6fffa">LoraRegionsEU::RegionIsValidTxPower</a></div><div class="ttdeci">virtual eStatusLoRaWan RegionIsValidTxPower(uint8_t Power)</div><div class="ttdef"><b>Definition:</b> <a href="_regions_8cpp_source.html#l00218">Regions.cpp:218</a></div></div>
<div class="ttc" id="class_lora_regions_e_u_html_a10897e9e39c1b1682596b9e55844724c"><div class="ttname"><a href="class_lora_regions_e_u.html#a10897e9e39c1b1682596b9e55844724c">LoraRegionsEU::RegionGiveNextDataRate</a></div><div class="ttdeci">virtual void RegionGiveNextDataRate(void)</div><div class="ttdef"><b>Definition:</b> <a href="_regions_8cpp_source.html#l00307">Regions.cpp:307</a></div></div>
<div class="ttc" id="class_lora_regions_e_u_html_a534cd22621dc34cf64c82e76f19ab86c"><div class="ttname"><a href="class_lora_regions_e_u.html#a534cd22621dc34cf64c82e76f19ab86c">LoraRegionsEU::TX_POWER</a></div><div class="ttdeci">static const int TX_POWER</div><div class="ttdef"><b>Definition:</b> <a href="_regions_8h_source.html#l00049">Regions.h:49</a></div></div>
</div><!-- fragment --></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated by  <a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.14
</small></address>
</body>
</html>