RadioLibSmol/_f_e_c_8h_source.html
2023-11-27 20:19:39 +00:00

151 lines
12 KiB
HTML
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<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.9.1"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>RadioLib: src/utils/FEC.h 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="navtree.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="resize.js"></script>
<script type="text/javascript" src="navtreedata.js"></script>
<script type="text/javascript" src="navtree.js"></script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
<td id="projectalign" style="padding-left: 0.5em;">
<div id="projectname">RadioLib
</div>
<div id="projectbrief">Universal wireless communication library for Arduino</div>
</td>
</tr>
</tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.9.1 -->
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
var searchBox = new SearchBox("searchBox", "search",false,'Search','.html');
/* @license-end */
</script>
<script type="text/javascript" src="menudata.js"></script>
<script type="text/javascript" src="menu.js"></script>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;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>
</div><!-- top -->
<div id="side-nav" class="ui-resizable side-nav-resizable">
<div id="nav-tree">
<div id="nav-tree-contents">
<div id="nav-sync" class="sync"></div>
</div>
</div>
<div id="splitbar" style="-moz-user-select:none;"
class="ui-resizable-handle">
</div>
</div>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
$(document).ready(function(){initNavTree('_f_e_c_8h_source.html',''); initResizable(); });
/* @license-end */
</script>
<div id="doc-content">
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
onmouseover="return searchBox.OnSearchSelectShow()"
onmouseout="return searchBox.OnSearchSelectHide()"
onkeydown="return searchBox.OnSearchSelectKey(event)">
</div>
<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<iframe src="javascript:void(0)" frameborder="0"
name="MSearchResults" id="MSearchResults">
</iframe>
</div>
<div class="header">
<div class="headertitle">
<div class="title">FEC.h</div> </div>
</div><!--header-->
<div class="contents">
<div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;<span class="preprocessor">#if !defined(_RADIOLIB_FEC_H)</span></div>
<div class="line"><a name="l00002"></a><span class="lineno"> 2</span>&#160;<span class="preprocessor">#define _RADIOLIB_FEC_H</span></div>
<div class="line"><a name="l00003"></a><span class="lineno"> 3</span>&#160; </div>
<div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160;<span class="preprocessor">#include &quot;../TypeDef.h&quot;</span></div>
<div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160;<span class="preprocessor">#include &quot;../Module.h&quot;</span></div>
<div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160;<span class="preprocessor">#if defined(RADIOLIB_BUILD_ARDUINO)</span></div>
<div class="line"><a name="l00007"></a><span class="lineno"> 7</span>&#160;<span class="preprocessor">#include &quot;../ArduinoHal.h&quot;</span></div>
<div class="line"><a name="l00008"></a><span class="lineno"> 8</span>&#160;<span class="preprocessor">#endif</span></div>
<div class="line"><a name="l00009"></a><span class="lineno"> 9</span>&#160; </div>
<div class="line"><a name="l00010"></a><span class="lineno"> 10</span>&#160;<span class="comment">// BCH(31, 21) code constants</span></div>
<div class="line"><a name="l00011"></a><span class="lineno"> 11</span>&#160;<span class="preprocessor">#define RADIOLIB_PAGER_BCH_N (31)</span></div>
<div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160;<span class="preprocessor">#define RADIOLIB_PAGER_BCH_K (21)</span></div>
<div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160;<span class="preprocessor">#define RADIOLIB_PAGER_BCH_PRIMITIVE_POLY (0x25)</span></div>
<div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160; </div>
<div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160;<span class="preprocessor">#if RADIOLIB_STATIC_ONLY</span></div>
<div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160;<span class="preprocessor">#define RADIOLIB_BCH_MAX_N (63)</span></div>
<div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160;<span class="preprocessor">#define RADIOLIB_BCH_MAX_K (31)</span></div>
<div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160;<span class="preprocessor">#endif</span></div>
<div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160; </div>
<div class="line"><a name="l00026"></a><span class="lineno"><a class="line" href="class_radio_lib_b_c_h.html"> 26</a></span>&#160;<span class="keyword">class </span><a class="code" href="class_radio_lib_b_c_h.html">RadioLibBCH</a> {</div>
<div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160; <span class="keyword">public</span>:</div>
<div class="line"><a name="l00031"></a><span class="lineno"> 31</span>&#160; <a class="code" href="class_radio_lib_b_c_h.html#a39d55c0292e4c9337ee0672cd5241118">RadioLibBCH</a>();</div>
<div class="line"><a name="l00032"></a><span class="lineno"> 32</span>&#160; </div>
<div class="line"><a name="l00039"></a><span class="lineno"> 39</span>&#160; <span class="keywordtype">void</span> <a class="code" href="class_radio_lib_b_c_h.html#aba6f10d4ac2d40eb2222d1081a34c88b">begin</a>(uint8_t n, uint8_t k, uint32_t poly);</div>
<div class="line"><a name="l00040"></a><span class="lineno"> 40</span>&#160; </div>
<div class="line"><a name="l00047"></a><span class="lineno"> 47</span>&#160; uint32_t <a class="code" href="class_radio_lib_b_c_h.html#afa0a2eb58245715536acb781cd351d8a">encode</a>(uint32_t dataword);</div>
<div class="line"><a name="l00048"></a><span class="lineno"> 48</span>&#160; </div>
<div class="line"><a name="l00049"></a><span class="lineno"> 49</span>&#160; <span class="keyword">private</span>:</div>
<div class="line"><a name="l00050"></a><span class="lineno"> 50</span>&#160; uint8_t n;</div>
<div class="line"><a name="l00051"></a><span class="lineno"> 51</span>&#160; uint8_t k;</div>
<div class="line"><a name="l00052"></a><span class="lineno"> 52</span>&#160; uint32_t poly;</div>
<div class="line"><a name="l00053"></a><span class="lineno"> 53</span>&#160; uint8_t m;</div>
<div class="line"><a name="l00054"></a><span class="lineno"> 54</span>&#160; </div>
<div class="line"><a name="l00055"></a><span class="lineno"> 55</span>&#160;<span class="preprocessor"> #if RADIOLIB_STATIC_ONLY</span></div>
<div class="line"><a name="l00056"></a><span class="lineno"> 56</span>&#160; int32_t alphaTo[RADIOLIB_BCH_MAX_N + 1];</div>
<div class="line"><a name="l00057"></a><span class="lineno"> 57</span>&#160; int32_t indexOf[RADIOLIB_BCH_MAX_N + 1];</div>
<div class="line"><a name="l00058"></a><span class="lineno"> 58</span>&#160; int32_t generator[RADIOLIB_BCH_MAX_N - RADIOLIB_BCH_MAX_K + 1];</div>
<div class="line"><a name="l00059"></a><span class="lineno"> 59</span>&#160;<span class="preprocessor"> #else</span></div>
<div class="line"><a name="l00060"></a><span class="lineno"> 60</span>&#160; int32_t* alphaTo;</div>
<div class="line"><a name="l00061"></a><span class="lineno"> 61</span>&#160; int32_t* indexOf;</div>
<div class="line"><a name="l00062"></a><span class="lineno"> 62</span>&#160; int32_t* generator;</div>
<div class="line"><a name="l00063"></a><span class="lineno"> 63</span>&#160;<span class="preprocessor"> #endif</span></div>
<div class="line"><a name="l00064"></a><span class="lineno"> 64</span>&#160;};</div>
<div class="line"><a name="l00065"></a><span class="lineno"> 65</span>&#160; </div>
<div class="line"><a name="l00066"></a><span class="lineno"> 66</span>&#160;<span class="comment">// the global singleton</span></div>
<div class="line"><a name="l00067"></a><span class="lineno"> 67</span>&#160;<span class="keyword">extern</span> <a class="code" href="class_radio_lib_b_c_h.html">RadioLibBCH</a> RadioLibBCHInstance;</div>
<div class="line"><a name="l00068"></a><span class="lineno"> 68</span>&#160; </div>
<div class="line"><a name="l00069"></a><span class="lineno"> 69</span>&#160;<span class="preprocessor">#endif</span></div>
<div class="ttc" id="aclass_radio_lib_b_c_h_html"><div class="ttname"><a href="class_radio_lib_b_c_h.html">RadioLibBCH</a></div><div class="ttdoc">Class to calculate BoseChaudhuriHocquenghem (BCH) class of forward error correction codes....</div><div class="ttdef"><b>Definition:</b> FEC.h:26</div></div>
<div class="ttc" id="aclass_radio_lib_b_c_h_html_a39d55c0292e4c9337ee0672cd5241118"><div class="ttname"><a href="class_radio_lib_b_c_h.html#a39d55c0292e4c9337ee0672cd5241118">RadioLibBCH::RadioLibBCH</a></div><div class="ttdeci">RadioLibBCH()</div><div class="ttdoc">Default constructor.</div><div class="ttdef"><b>Definition:</b> FEC.cpp:4</div></div>
<div class="ttc" id="aclass_radio_lib_b_c_h_html_aba6f10d4ac2d40eb2222d1081a34c88b"><div class="ttname"><a href="class_radio_lib_b_c_h.html#aba6f10d4ac2d40eb2222d1081a34c88b">RadioLibBCH::begin</a></div><div class="ttdeci">void begin(uint8_t n, uint8_t k, uint32_t poly)</div><div class="ttdoc">Initialization method.</div><div class="ttdef"><b>Definition:</b> FEC.cpp:13</div></div>
<div class="ttc" id="aclass_radio_lib_b_c_h_html_afa0a2eb58245715536acb781cd351d8a"><div class="ttname"><a href="class_radio_lib_b_c_h.html#afa0a2eb58245715536acb781cd351d8a">RadioLibBCH::encode</a></div><div class="ttdeci">uint32_t encode(uint32_t dataword)</div><div class="ttdoc">Encoding method - encodes one data word (without check bits) into a code word (with check bits).</div><div class="ttdef"><b>Definition:</b> FEC.cpp:186</div></div>
</div><!-- fragment --></div><!-- contents -->
</div><!-- doc-content -->
<!-- start footer part -->
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
<ul>
<li class="navelem"><a class="el" href="dir_68267d1309a1af8e8297ef4c3efbcdba.html">src</a></li><li class="navelem"><a class="el" href="dir_313caf1132e152dd9b58bea13a4052ca.html">utils</a></li><li class="navelem"><b>FEC.h</b></li>
<li class="footer">Generated by <a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.1 </li>
</ul>
</div>
</body>
</html>