Loading files
This file is pinned to the selected release. Download the original to open it in your design tool.
48241ad08This file is pinned to the selected release. Download the original to open it in your design tool.
<!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.13"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>IoT-MBBR (masterthesis): firmware/EFM32HG222F64_iot-mbbr/dbprint/dbprint_documentation.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>
<script type="text/javascript">
$(document).ready(initResizable);
</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">IoT-MBBR (masterthesis)
</div>
<div id="projectbrief">Masterthesis upgrading a Moving Bed BioReactor with extra sensors and cloud connectivity.</div>
</td>
</tr>
</tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.13 -->
<script type="text/javascript" src="menudata.js"></script>
<script type="text/javascript" src="menu.js"></script>
<script type="text/javascript">
$(function() {
initMenu('',false,false,'search.php','Search');
});
</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">
$(document).ready(function(){initNavTree('dbprint__documentation_8h_source.html','');});
</script>
<div id="doc-content">
<div class="header">
<div class="headertitle">
<div class="title">dbprint_documentation.h</div> </div>
</div><!--header-->
<div class="contents">
<a href="dbprint__documentation_8h.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><span class="comment">/**</span></div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span> <span class="comment"> * @file dbprint_documentation.h</span></div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span> <span class="comment"> * @brief This file contains useful documentation closely related to dbprint.</span></div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span> <span class="comment"> * @version 7.0</span></div><div class="line"><a name="l00005"></a><span class="lineno"> 5</span> <span class="comment"> * @author Brecht Van Eeckhoudt</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"> * @section DeBugPrint</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"> * DeBugPrint is a homebrew minimal low-level println/printf replacement.</span></div><div class="line"><a name="l00012"></a><span class="lineno"> 12</span> <span class="comment"> * It can be used to to print text/values to uart without a lot of external</span></div><div class="line"><a name="l00013"></a><span class="lineno"> 13</span> <span class="comment"> * libraries. The end goal was to use no external libraries (with methods</span></div><div class="line"><a name="l00014"></a><span class="lineno"> 14</span> <span class="comment"> * like `itoa`) apart from the ones specific to the microcontroller.</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> <span class="comment"> * ******************************************************************************</span></div><div class="line"><a name="l00017"></a><span class="lineno"> 17</span> <span class="comment"> *</span></div><div class="line"><a name="l00018"></a><span class="lineno"> 18</span> <span class="comment"> * @section Doxygen</span></div><div class="line"><a name="l00019"></a><span class="lineno"> 19</span> <span class="comment"> *</span></div><div class="line"><a name="l00020"></a><span class="lineno"> 20</span> <span class="comment"> * These files have been made with [**Doxygen**](www.doxygen.org) comments above</span></div><div class="line"><a name="l00021"></a><span class="lineno"> 21</span> <span class="comment"> * all methods to generate documentation. A combination of **Doxygen-specific tags**</span></div><div class="line"><a name="l00022"></a><span class="lineno"> 22</span> <span class="comment"> * (preceded with an `@` symbol) and **markdown syntax** are supported to generate,</span></div><div class="line"><a name="l00023"></a><span class="lineno"> 23</span> <span class="comment"> * for example, HTML-files.</span></div><div class="line"><a name="l00024"></a><span class="lineno"> 24</span> <span class="comment"> *</span></div><div class="line"><a name="l00025"></a><span class="lineno"> 25</span> <span class="comment"> * ******************************************************************************</span></div><div class="line"><a name="l00026"></a><span class="lineno"> 26</span> <span class="comment"> *</span></div><div class="line"><a name="l00027"></a><span class="lineno"> 27</span> <span class="comment"> * @section ENABLE Enable/disable dbprint using definition in `debug_dbprint.h`</span></div><div class="line"><a name="l00028"></a><span class="lineno"> 28</span> <span class="comment"> *</span></div><div class="line"><a name="l00029"></a><span class="lineno"> 29</span> <span class="comment"> * In the file `debug_dbprint.h` **dbprint UART functionality can be enabled/disabled**</span></div><div class="line"><a name="l00030"></a><span class="lineno"> 30</span> <span class="comment"> * with the definition `#define DEBUG_DBPRINT`. If it's value is `0`, all dbprint</span></div><div class="line"><a name="l00031"></a><span class="lineno"> 31</span> <span class="comment"> * functionality is disabled.</span></div><div class="line"><a name="l00032"></a><span class="lineno"> 32</span> <span class="comment"> *</span></div><div class="line"><a name="l00033"></a><span class="lineno"> 33</span> <span class="comment"> * @warning</span></div><div class="line"><a name="l00034"></a><span class="lineno"> 34</span> <span class="comment"> * This means that the **only header file to include in your projects** for</span></div><div class="line"><a name="l00035"></a><span class="lineno"> 35</span> <span class="comment"> * dbprint to work is@n</span></div><div class="line"><a name="l00036"></a><span class="lineno"> 36</span> <span class="comment"> * `#include debug_dbprint.h`</span></div><div class="line"><a name="l00037"></a><span class="lineno"> 37</span> <span class="comment"> *</span></div><div class="line"><a name="l00038"></a><span class="lineno"> 38</span> <span class="comment"> * @note</span></div><div class="line"><a name="l00039"></a><span class="lineno"> 39</span> <span class="comment"> * If you also want to use this definition to enable/disable dbprint statements</span></div><div class="line"><a name="l00040"></a><span class="lineno"> 40</span> <span class="comment"> * in your code, please use the following convention:@n</span></div><div class="line"><a name="l00041"></a><span class="lineno"> 41</span> <span class="comment"> * `#if DEBUG_DBPRINT == 1 // DEBUG_DBPRINT `@n</span></div><div class="line"><a name="l00042"></a><span class="lineno"> 42</span> <span class="comment"> * `<your source code dbprint statements go here>`@n</span></div><div class="line"><a name="l00043"></a><span class="lineno"> 43</span> <span class="comment"> * `#endif // DEBUG_DBPRINT`</span></div><div class="line"><a name="l00044"></a><span class="lineno"> 44</span> <span class="comment"> *</span></div><div class="line"><a name="l00045"></a><span class="lineno"> 45</span> <span class="comment"> * ******************************************************************************</span></div><div class="line"><a name="l00046"></a><span class="lineno"> 46</span> <span class="comment"> *</span></div><div class="line"><a name="l00047"></a><span class="lineno"> 47</span> <span class="comment"> * @section DBPRINT More info about dbprint (and VCOM)</span></div><div class="line"><a name="l00048"></a><span class="lineno"> 48</span> <span class="comment"> *</span></div><div class="line"><a name="l00049"></a><span class="lineno"> 49</span> <span class="comment"> * @note</span></div><div class="line"><a name="l00050"></a><span class="lineno"> 50</span> <span class="comment"> * When using `dbprint` functionality, the following settings are used and</span></div><div class="line"><a name="l00051"></a><span class="lineno"> 51</span> <span class="comment"> * can't be changed without editing the source code:@n</span></div><div class="line"><a name="l00052"></a><span class="lineno"> 52</span> <span class="comment"> * - Baudrate = 115200</span></div><div class="line"><a name="l00053"></a><span class="lineno"> 53</span> <span class="comment"> * - 8 databits</span></div><div class="line"><a name="l00054"></a><span class="lineno"> 54</span> <span class="comment"> * - 1 stopbit</span></div><div class="line"><a name="l00055"></a><span class="lineno"> 55</span> <span class="comment"> * - No parity</span></div><div class="line"><a name="l00056"></a><span class="lineno"> 56</span> <span class="comment"> *</span></div><div class="line"><a name="l00057"></a><span class="lineno"> 57</span> <span class="comment"> * VCOM is an on-board (SLSTK3400A) UART to USB converter alongside the Segger</span></div><div class="line"><a name="l00058"></a><span class="lineno"> 58</span> <span class="comment"> * J-Link debugger, connected with microcontroller pins `PA0` (RX) and `PF2` (TX).</span></div><div class="line"><a name="l00059"></a><span class="lineno"> 59</span> <span class="comment"> * This converter can then be used with Putty or another serial port program.</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> <span class="comment"> * @note</span></div><div class="line"><a name="l00062"></a><span class="lineno"> 62</span> <span class="comment"> * When you want to debug using VCOM with interrupt functionality disabled, you</span></div><div class="line"><a name="l00063"></a><span class="lineno"> 63</span> <span class="comment"> * can use the following initialization settings:@n</span></div><div class="line"><a name="l00064"></a><span class="lineno"> 64</span> <span class="comment"> * `dbprint_INIT(USART1, 4, true, false);`</span></div><div class="line"><a name="l00065"></a><span class="lineno"> 65</span> <span class="comment"> *</span></div><div class="line"><a name="l00066"></a><span class="lineno"> 66</span> <span class="comment"> * @warning</span></div><div class="line"><a name="l00067"></a><span class="lineno"> 67</span> <span class="comment"> * Setting the third argument to `true` indicates to the code that `PA9`</span></div><div class="line"><a name="l00068"></a><span class="lineno"> 68</span> <span class="comment"> * (`EFM_BC_EN`) should be set high to enable the isolation switch on the PCB</span></div><div class="line"><a name="l00069"></a><span class="lineno"> 69</span> <span class="comment"> * of the Happy Gecko to link `PA0` (RX) and `PF2` (TX) to the debugger. Don't</span></div><div class="line"><a name="l00070"></a><span class="lineno"> 70</span> <span class="comment"> * use this pin yourself if you want to make use of the on-board UART to USB converter!</span></div><div class="line"><a name="l00071"></a><span class="lineno"> 71</span> <span class="comment"> *</span></div><div class="line"><a name="l00072"></a><span class="lineno"> 72</span> <span class="comment"> * ******************************************************************************</span></div><div class="line"><a name="l00073"></a><span class="lineno"> 73</span> <span class="comment"> *</span></div><div class="line"><a name="l00074"></a><span class="lineno"> 74</span> <span class="comment"> * @section ENERGY Energy profiler and dbprint</span></div><div class="line"><a name="l00075"></a><span class="lineno"> 75</span> <span class="comment"> *</span></div><div class="line"><a name="l00076"></a><span class="lineno"> 76</span> <span class="comment"> * The Energy profiler in Simplicity Studio seems to use VCOM somehow, change</span></div><div class="line"><a name="l00077"></a><span class="lineno"> 77</span> <span class="comment"> * to using an external UART adapter if both the energy profiler and UART</span></div><div class="line"><a name="l00078"></a><span class="lineno"> 78</span> <span class="comment"> * debugging are necessary at the same time!</span></div><div class="line"><a name="l00079"></a><span class="lineno"> 79</span> <span class="comment"> *</span></div><div class="line"><a name="l00080"></a><span class="lineno"> 80</span> <span class="comment"> * If the energy profiler was used and the code functionality was switched,</span></div><div class="line"><a name="l00081"></a><span class="lineno"> 81</span> <span class="comment"> * physically re-plug the board to make sure VCOM UART starts working again!</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"> * ******************************************************************************</span></div><div class="line"><a name="l00084"></a><span class="lineno"> 84</span> <span class="comment"> *</span></div><div class="line"><a name="l00085"></a><span class="lineno"> 85</span> <span class="comment"> * @section UART Alternate UART Functionality Pinout</span></div><div class="line"><a name="l00086"></a><span class="lineno"> 86</span> <span class="comment"> *</span></div><div class="line"><a name="l00087"></a><span class="lineno"> 87</span> <span class="comment"> * | Location | `#0` | `#1` | `#2` | `#3` | `#4` | `#5` | `#6` |</span></div><div class="line"><a name="l00088"></a><span class="lineno"> 88</span> <span class="comment"> * | ---------- | ------ | ------ | ------ | ------ | ------ | ------ | ------ |</span></div><div class="line"><a name="l00089"></a><span class="lineno"> 89</span> <span class="comment"> * | `US0_RX` | `PE11` | | `PC10` | `PE12` | `PB08` | `PC01` | `PC01` |</span></div><div class="line"><a name="l00090"></a><span class="lineno"> 90</span> <span class="comment"> * | `US0_TX` | `PE10` | | | `PE13` | `PB07` | `PC00` | `PC00` |</span></div><div class="line"><a name="l00091"></a><span class="lineno"> 91</span> <span class="comment"> * | | | | | | | | |</span></div><div class="line"><a name="l00092"></a><span class="lineno"> 92</span> <span class="comment"> * | `US1_RX` | `PC01` | | `PD06` | `PD06` | `PA00` | `PC02` | |</span></div><div class="line"><a name="l00093"></a><span class="lineno"> 93</span> <span class="comment"> * | `US1_TX` | `PC00` | | `PD07` | `PD07` | `PF02` | `PC01` | |</span></div><div class="line"><a name="l00094"></a><span class="lineno"> 94</span> <span class="comment"> *</span></div><div class="line"><a name="l00095"></a><span class="lineno"> 95</span> <span class="comment"> * VCOM:</span></div><div class="line"><a name="l00096"></a><span class="lineno"> 96</span> <span class="comment"> * - USART1 #4 (USART0 can't be used)</span></div><div class="line"><a name="l00097"></a><span class="lineno"> 97</span> <span class="comment"> * - RX - `PA0`</span></div><div class="line"><a name="l00098"></a><span class="lineno"> 98</span> <span class="comment"> * - TX - `PF2`</span></div><div class="line"><a name="l00099"></a><span class="lineno"> 99</span> <span class="comment"> * - Isolation switch - `PA9` (`EFM_BC_EN`)</span></div><div class="line"><a name="l00100"></a><span class="lineno"> 100</span> <span class="comment"> * (don't use this pin yourself when using the on-board UART to USB converter)</span></div><div class="line"><a name="l00101"></a><span class="lineno"> 101</span> <span class="comment"> *</span></div><div class="line"><a name="l00102"></a><span class="lineno"> 102</span> <span class="comment"> * ******************************************************************************</span></div><div class="line"><a name="l00103"></a><span class="lineno"> 103</span> <span class="comment"> *</span></div><div class="line"><a name="l00104"></a><span class="lineno"> 104</span> <span class="comment"> * @section Keywords</span></div><div class="line"><a name="l00105"></a><span class="lineno"> 105</span> <span class="comment"> *</span></div><div class="line"><a name="l00106"></a><span class="lineno"> 106</span> <span class="comment"> * @subsection Volatile</span></div><div class="line"><a name="l00107"></a><span class="lineno"> 107</span> <span class="comment"> *</span></div><div class="line"><a name="l00108"></a><span class="lineno"> 108</span> <span class="comment"> * The `volatile` type indicates to the compiler that the data is not normal memory,</span></div><div class="line"><a name="l00109"></a><span class="lineno"> 109</span> <span class="comment"> * and could change at unexpected times. Hardware registers are often volatile,</span></div><div class="line"><a name="l00110"></a><span class="lineno"> 110</span> <span class="comment"> * and so are variables which get changed in interrupts.@n</span></div><div class="line"><a name="l00111"></a><span class="lineno"> 111</span> <span class="comment"> * Volatile variables are stored in *RAM*.</span></div><div class="line"><a name="l00112"></a><span class="lineno"> 112</span> <span class="comment"> *</span></div><div class="line"><a name="l00113"></a><span class="lineno"> 113</span> <span class="comment"> * @subsection Static</span></div><div class="line"><a name="l00114"></a><span class="lineno"> 114</span> <span class="comment"> *</span></div><div class="line"><a name="l00115"></a><span class="lineno"> 115</span> <span class="comment"> * @subsubsection VARIABLE Static variable</span></div><div class="line"><a name="l00116"></a><span class="lineno"> 116</span> <span class="comment"> *</span></div><div class="line"><a name="l00117"></a><span class="lineno"> 117</span> <span class="comment"> * During compile time (this is why we can't use variable length array's) memory</span></div><div class="line"><a name="l00118"></a><span class="lineno"> 118</span> <span class="comment"> * gets reserved for this variable. The data itself gets put in the *data* segment</span></div><div class="line"><a name="l00119"></a><span class="lineno"> 119</span> <span class="comment"> * of the memory (regular variables are put in the *stack* segment).@n</span></div><div class="line"><a name="l00120"></a><span class="lineno"> 120</span> <span class="comment"> * It's best to keep the use of `static` variables to a minimum. One should ask</span></div><div class="line"><a name="l00121"></a><span class="lineno"> 121</span> <span class="comment"> * himself the question if it's necessary to keep the variable constantly in the</span></div><div class="line"><a name="l00122"></a><span class="lineno"> 122</span> <span class="comment"> * memory. If the answer is yes, a `static` variable is acceptable.@n</span></div><div class="line"><a name="l00123"></a><span class="lineno"> 123</span> <span class="comment"> * A **static variable inside a function** keeps its value between invocations.</span></div><div class="line"><a name="l00124"></a><span class="lineno"> 124</span> <span class="comment"> *</span></div><div class="line"><a name="l00125"></a><span class="lineno"> 125</span> <span class="comment"> * @subsubsection FUNCTION Static global function</span></div><div class="line"><a name="l00126"></a><span class="lineno"> 126</span> <span class="comment"> *</span></div><div class="line"><a name="l00127"></a><span class="lineno"> 127</span> <span class="comment"> * The function is only "seen" in the file it's declared in. This means `static`</span></div><div class="line"><a name="l00128"></a><span class="lineno"> 128</span> <span class="comment"> * can be used for methods the same way `private` is used for certain methods in C++.</span></div><div class="line"><a name="l00129"></a><span class="lineno"> 129</span> <span class="comment"> *</span></div><div class="line"><a name="l00130"></a><span class="lineno"> 130</span> <span class="comment"> * ******************************************************************************</span></div><div class="line"><a name="l00131"></a><span class="lineno"> 131</span> <span class="comment"> *</span></div><div class="line"><a name="l00132"></a><span class="lineno"> 132</span> <span class="comment"> * @section DATA Bits, bytes, nibbles and unsigned/signed integer value ranges</span></div><div class="line"><a name="l00133"></a><span class="lineno"> 133</span> <span class="comment"> *</span></div><div class="line"><a name="l00134"></a><span class="lineno"> 134</span> <span class="comment"> * - 1 nibble = 4 bits (`0b1111` = `0xF` )</span></div><div class="line"><a name="l00135"></a><span class="lineno"> 135</span> <span class="comment"> * - 1 byte = 8 bits (`0b1111 1111` = `0xFF`)</span></div><div class="line"><a name="l00136"></a><span class="lineno"> 136</span> <span class="comment"> *</span></div><div class="line"><a name="l00137"></a><span class="lineno"> 137</span> <span class="comment"> * | Type | Alias | Size | Minimum value | Maximum value |</span></div><div class="line"><a name="l00138"></a><span class="lineno"> 138</span> <span class="comment"> * | ---------- | ---------------- | ------- | -------------- | ----------------------------- |</span></div><div class="line"><a name="l00139"></a><span class="lineno"> 139</span> <span class="comment"> * | `uint8_t` | `unsigned char` | 1 byte | 0 | 255 (`0xFF`) |</span></div><div class="line"><a name="l00140"></a><span class="lineno"> 140</span> <span class="comment"> * | `uint16_t` | `unsigned short` | 2 bytes | 0 | 65 535 (`0xFFFF`) |</span></div><div class="line"><a name="l00141"></a><span class="lineno"> 141</span> <span class="comment"> * | `uint32_t` | `unsigned int` | 4 bytes | 0 | 4 294 967 295 (`0xFFFF FFFF`) |</span></div><div class="line"><a name="l00142"></a><span class="lineno"> 142</span> <span class="comment"> * | | | | | |</span></div><div class="line"><a name="l00143"></a><span class="lineno"> 143</span> <span class="comment"> * | `int8_t` | `signed char` | 1 byte | -128 | 127 |</span></div><div class="line"><a name="l00144"></a><span class="lineno"> 144</span> <span class="comment"> * | `int16_t` | `signed short` | 2 bytes | -32 768 | 32 767 |</span></div><div class="line"><a name="l00145"></a><span class="lineno"> 145</span> <span class="comment"> * | `int32_t` | `signed int` | 4 bytes | -2 147 483 648 | 2 147 483 647 |</span></div><div class="line"><a name="l00146"></a><span class="lineno"> 146</span> <span class="comment"> *</span></div><div class="line"><a name="l00147"></a><span class="lineno"> 147</span> <span class="comment"> * - `-128` = `0x80` = `0b1000 0000` (If the left most bit is one, the sign of the number is negative)</span></div><div class="line"><a name="l00148"></a><span class="lineno"> 148</span> <span class="comment"> * - `127` = `0x7F` = `0b0111 1111`</span></div><div class="line"><a name="l00149"></a><span class="lineno"> 149</span> <span class="comment"> *</span></div><div class="line"><a name="l00150"></a><span class="lineno"> 150</span> <span class="comment"> ******************************************************************************/</span></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_d9edf6c004b4a7ff14fe9ae7a92214ee.html">firmware</a></li><li class="navelem"><a class="el" href="dir_9a5a365c58dea0dc152d55f461feaba5.html">EFM32HG222F64_iot-mbbr</a></li><li class="navelem"><a class="el" href="dir_94278571b66272a106537e099057d77d.html">dbprint</a></li><li class="navelem"><a class="el" href="dbprint__documentation_8h.html">dbprint_documentation.h</a></li>
<li class="footer">Generated on Thu Sep 3 2020 04:44:25 for IoT-MBBR (masterthesis) by
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.13 </li>
</ul>
</div>
</body>
</html>