1 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
2 <html xmlns="http://www.w3.org/1999/xhtml">
4 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
5 <meta http-equiv="X-UA-Compatible" content="IE=9"/>
6 <title>WiFi Management</title>
7 <title>CMSIS-Driver Validation: WiFi Management</title>
8 <link href="tabs.css" rel="stylesheet" type="text/css"/>
9 <link href="drv.css" rel="stylesheet" type="text/css" />
10 <script type="text/javascript" src="jquery.js"></script>
11 <script type="text/javascript" src="dynsections.js"></script>
12 <script type="text/javascript" src="printComponentTabs.js"></script>
13 <link href="navtree.css" rel="stylesheet" type="text/css"/>
14 <script type="text/javascript" src="resize.js"></script>
15 <script type="text/javascript" src="navtree.js"></script>
16 <script type="text/javascript">
17 $(document).ready(initResizable);
18 $(window).load(resizeHeight);
20 <link href="search/search.css" rel="stylesheet" type="text/css"/>
21 <script type="text/javascript" src="search/search.js"></script>
22 <script type="text/javascript">
23 $(document).ready(function() { searchBox.OnSelectItem(0); });
25 <link href="stylsheetf" rel="stylesheet" type="text/css" />
28 <div id="top"><!-- do not remove this div, it is closed by doxygen! -->
30 <table cellspacing="0" cellpadding="0">
32 <tr style="height: 46px;">
33 <td id="projectlogo"><img alt="Logo" src="keilarm.png"/></td>
34 <td style="padding-left: 0.5em;">
35 <div id="projectname">CMSIS-Driver Validation
36  <span id="projectnumber">Version 1.4.0</span>
38 <div id="projectbrief">Driver Validation</div>
44 <!-- end header part -->
45 <div id="DRVnav" class="tabs1">
47 <script type="text/javascript">
49 writeComponentTabs.call(this);
54 <!-- Generated by Doxygen 1.8.6 -->
55 <script type="text/javascript">
56 var searchBox = new SearchBox("searchBox", "search",false,'Search');
58 <div id="navrow1" class="tabs">
60 <li><a href="index.html"><span>Main Page</span></a></li>
61 <li><a href="pages.html"><span>Usage and Description</span></a></li>
62 <li><a href="modules.html"><span>Reference</span></a></li>
64 <div id="MSearchBox" class="MSearchBoxInactive">
66 <img id="MSearchSelect" src="search/mag_sel.png"
67 onmouseover="return searchBox.OnSearchSelectShow()"
68 onmouseout="return searchBox.OnSearchSelectHide()"
70 <input type="text" id="MSearchField" value="Search" accesskey="S"
71 onfocus="searchBox.OnSearchFieldFocus(true)"
72 onblur="searchBox.OnSearchFieldFocus(false)"
73 onkeyup="searchBox.OnSearchFieldChange(event)"/>
74 </span><span class="right">
75 <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
82 <div id="side-nav" class="ui-resizable side-nav-resizable">
84 <div id="nav-tree-contents">
85 <div id="nav-sync" class="sync"></div>
88 <div id="splitbar" style="-moz-user-select:none;"
89 class="ui-resizable-handle">
92 <script type="text/javascript">
93 $(document).ready(function(){initNavTree('group__wifi__mgmt.html','');});
95 <div id="doc-content">
96 <!-- window showing the filter options -->
97 <div id="MSearchSelectWindow"
98 onmouseover="return searchBox.OnSearchSelectShow()"
99 onmouseout="return searchBox.OnSearchSelectHide()"
100 onkeydown="return searchBox.OnSearchSelectKey(event)">
101 <a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark"> </span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark"> </span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark"> </span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark"> </span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark"> </span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark"> </span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark"> </span>Macros</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark"> </span>Groups</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark"> </span>Pages</a></div>
103 <!-- iframe showing the search results (closed by default) -->
104 <div id="MSearchResultsWindow">
105 <iframe src="javascript:void(0)" frameborder="0"
106 name="MSearchResults" id="MSearchResults">
111 <div class="summary">
112 <a href="#func-members">Functions</a> </div>
113 <div class="headertitle">
114 <div class="title">WiFi Management<div class="ingroups"><a class="el" href="group__wifi__funcs.html">WiFi Validation</a></div></div> </div>
116 <div class="contents">
117 <table class="memberdecls">
118 <tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
119 Functions</h2></td></tr>
120 <tr class="memitem:gab3e92900df96e1c48b068d2a4f7b04b9"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="group__wifi__mgmt.html#gab3e92900df96e1c48b068d2a4f7b04b9">WIFI_SetOption_GetOption</a> (void)</td></tr>
121 <tr class="memdesc:gab3e92900df96e1c48b068d2a4f7b04b9"><td class="mdescLeft"> </td><td class="mdescRight">Test case: WIFI_SetOption_GetOption. <a href="#gab3e92900df96e1c48b068d2a4f7b04b9">More...</a><br/></td></tr>
122 <tr class="separator:gab3e92900df96e1c48b068d2a4f7b04b9"><td class="memSeparator" colspan="2"> </td></tr>
123 <tr class="memitem:ga80774e115994cbc7936dc0e095f82d8a"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="group__wifi__mgmt.html#ga80774e115994cbc7936dc0e095f82d8a">WIFI_Scan</a> (void)</td></tr>
124 <tr class="memdesc:ga80774e115994cbc7936dc0e095f82d8a"><td class="mdescLeft"> </td><td class="mdescRight">Test case: WIFI_Scan. <a href="#ga80774e115994cbc7936dc0e095f82d8a">More...</a><br/></td></tr>
125 <tr class="separator:ga80774e115994cbc7936dc0e095f82d8a"><td class="memSeparator" colspan="2"> </td></tr>
126 <tr class="memitem:ga70d31d264d171b2dea9d4ddab1b7077b"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="group__wifi__mgmt.html#ga70d31d264d171b2dea9d4ddab1b7077b">WIFI_Activate_Deactivate</a> (void)</td></tr>
127 <tr class="memdesc:ga70d31d264d171b2dea9d4ddab1b7077b"><td class="mdescLeft"> </td><td class="mdescRight">Test case: WIFI_Activate_Deactivate. <a href="#ga70d31d264d171b2dea9d4ddab1b7077b">More...</a><br/></td></tr>
128 <tr class="separator:ga70d31d264d171b2dea9d4ddab1b7077b"><td class="memSeparator" colspan="2"> </td></tr>
129 <tr class="memitem:ga00d1e2f0a45e674d0ee01ec8a572dec5"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="group__wifi__mgmt.html#ga00d1e2f0a45e674d0ee01ec8a572dec5">WIFI_IsConnected</a> (void)</td></tr>
130 <tr class="memdesc:ga00d1e2f0a45e674d0ee01ec8a572dec5"><td class="mdescLeft"> </td><td class="mdescRight">Test case: WIFI_IsConnected. <a href="#ga00d1e2f0a45e674d0ee01ec8a572dec5">More...</a><br/></td></tr>
131 <tr class="separator:ga00d1e2f0a45e674d0ee01ec8a572dec5"><td class="memSeparator" colspan="2"> </td></tr>
132 <tr class="memitem:gaa2f22c021bf9695a0b542e46704f28c8"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="group__wifi__mgmt.html#gaa2f22c021bf9695a0b542e46704f28c8">WIFI_GetNetInfo</a> (void)</td></tr>
133 <tr class="memdesc:gaa2f22c021bf9695a0b542e46704f28c8"><td class="mdescLeft"> </td><td class="mdescRight">Test case: WIFI_GetNetInfo. <a href="#gaa2f22c021bf9695a0b542e46704f28c8">More...</a><br/></td></tr>
134 <tr class="separator:gaa2f22c021bf9695a0b542e46704f28c8"><td class="memSeparator" colspan="2"> </td></tr>
135 <tr class="memitem:ga5598b2b107b947e1d3060c48323c7f06"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="group__wifi__mgmt.html#ga5598b2b107b947e1d3060c48323c7f06">WIFI_Activate_AP</a> (void)</td></tr>
136 <tr class="memdesc:ga5598b2b107b947e1d3060c48323c7f06"><td class="mdescLeft"> </td><td class="mdescRight">Test case: WIFI_Activate_AP. <a href="#ga5598b2b107b947e1d3060c48323c7f06">More...</a><br/></td></tr>
137 <tr class="separator:ga5598b2b107b947e1d3060c48323c7f06"><td class="memSeparator" colspan="2"> </td></tr>
138 <tr class="memitem:ga248aa213a4b49ac0384feb9051829139"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="group__wifi__mgmt.html#ga248aa213a4b49ac0384feb9051829139">WIFI_Activate_Station_WPS_PBC</a> (void)</td></tr>
139 <tr class="memdesc:ga248aa213a4b49ac0384feb9051829139"><td class="mdescLeft"> </td><td class="mdescRight">Test case: WIFI_Activate_Station_WPS_PBC. <a href="#ga248aa213a4b49ac0384feb9051829139">More...</a><br/></td></tr>
140 <tr class="separator:ga248aa213a4b49ac0384feb9051829139"><td class="memSeparator" colspan="2"> </td></tr>
141 <tr class="memitem:ga20a27097854981b1538491cd57546cf7"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="group__wifi__mgmt.html#ga20a27097854981b1538491cd57546cf7">WIFI_Activate_Station_WPS_PIN</a> (void)</td></tr>
142 <tr class="memdesc:ga20a27097854981b1538491cd57546cf7"><td class="mdescLeft"> </td><td class="mdescRight">Test case: WIFI_Activate_Station_WPS_PIN. <a href="#ga20a27097854981b1538491cd57546cf7">More...</a><br/></td></tr>
143 <tr class="separator:ga20a27097854981b1538491cd57546cf7"><td class="memSeparator" colspan="2"> </td></tr>
144 <tr class="memitem:ga282423f64284804a460395bcbf33e98b"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="group__wifi__mgmt.html#ga282423f64284804a460395bcbf33e98b">WIFI_Activate_AP_WPS_PBC</a> (void)</td></tr>
145 <tr class="memdesc:ga282423f64284804a460395bcbf33e98b"><td class="mdescLeft"> </td><td class="mdescRight">Test case: WIFI_Activate_AP_WPS_PBC. <a href="#ga282423f64284804a460395bcbf33e98b">More...</a><br/></td></tr>
146 <tr class="separator:ga282423f64284804a460395bcbf33e98b"><td class="memSeparator" colspan="2"> </td></tr>
147 <tr class="memitem:gad4b541a11ee85b12340ef1f72fe7494b"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="group__wifi__mgmt.html#gad4b541a11ee85b12340ef1f72fe7494b">WIFI_Activate_AP_WPS_PIN</a> (void)</td></tr>
148 <tr class="memdesc:gad4b541a11ee85b12340ef1f72fe7494b"><td class="mdescLeft"> </td><td class="mdescRight">Test case: WIFI_Activate_AP_WPS_PIN. <a href="#gad4b541a11ee85b12340ef1f72fe7494b">More...</a><br/></td></tr>
149 <tr class="separator:gad4b541a11ee85b12340ef1f72fe7494b"><td class="memSeparator" colspan="2"> </td></tr>
151 <a name="details" id="details"></a><h2 class="groupheader">Description</h2>
152 <p>These tests verify API and operation of the WiFi management functions. </p>
153 <h2 class="groupheader">Function Documentation</h2>
154 <a class="anchor" id="ga5598b2b107b947e1d3060c48323c7f06"></a>
155 <div class="memitem">
156 <div class="memproto">
157 <table class="memname">
159 <td class="memname">void WIFI_Activate_AP </td>
161 <td class="paramtype">void </td>
162 <td class="paramname"></td><td>)</td>
166 </div><div class="memdoc">
167 <p>The test case <b>WIFI_Activate_AP</b> verifies the WiFi Driver <b>Activate</b> function AP operation. Test result is checked by connecting WiFi client to AP. </p>
171 <a class="anchor" id="ga282423f64284804a460395bcbf33e98b"></a>
172 <div class="memitem">
173 <div class="memproto">
174 <table class="memname">
176 <td class="memname">void WIFI_Activate_AP_WPS_PBC </td>
178 <td class="paramtype">void </td>
179 <td class="paramname"></td><td>)</td>
183 </div><div class="memdoc">
184 <p>The test case <b>WIFI_Activate_AP_WPS_PBC</b> verifies the WiFi Driver <b>Activate</b> function AP WPS and Push-Button Configuration method functionality. Test result is checked by connecting the WiFi client to AP with WPS Push-Button Configuration method. </p>
188 <a class="anchor" id="gad4b541a11ee85b12340ef1f72fe7494b"></a>
189 <div class="memitem">
190 <div class="memproto">
191 <table class="memname">
193 <td class="memname">void WIFI_Activate_AP_WPS_PIN </td>
195 <td class="paramtype">void </td>
196 <td class="paramname"></td><td>)</td>
200 </div><div class="memdoc">
201 <p>The test case <b>WIFI_Activate_AP_WPS_PIN</b> verifies the WiFi Driver <b>Activate</b> function AP WPS PIN method functionality. Test result is checked by connecting the WiFi client to AP with WPS PIN method. </p>
205 <a class="anchor" id="ga70d31d264d171b2dea9d4ddab1b7077b"></a>
206 <div class="memitem">
207 <div class="memproto">
208 <table class="memname">
210 <td class="memname">void WIFI_Activate_Deactivate </td>
212 <td class="paramtype">void </td>
213 <td class="paramname"></td><td>)</td>
217 </div><div class="memdoc">
218 <p>The test case <b>WIFI_Activate_Deactivate</b> verifies the WiFi Driver <b>Activate</b> and <b>Deactivate</b> functions. </p>
219 <div class="fragment"><div class="line">int32_t (*Activate) (uint32_t interface, <span class="keyword">const</span> ARM_WIFI_CONFIG_t *<a class="code" href="_d_v___w_i_f_i_8c.html#abd851433cffb636da62b2a37da823342">config</a>);</div>
220 </div><!-- fragment --><p> and </p>
221 <div class="fragment"><div class="line">int32_t (*Deactivate) (uint32_t interface);</div>
222 </div><!-- fragment --><p> Testing sequence (for Station and Access Point):</p>
224 <li>if not initialized and powered initialize and power on</li>
226 <li>Activate (with invalid parameters)</li>
227 <li>Activate (with valid parameters)</li>
229 <li>Activate (with invalid WPS parameters) </li>
234 <a class="anchor" id="ga248aa213a4b49ac0384feb9051829139"></a>
235 <div class="memitem">
236 <div class="memproto">
237 <table class="memname">
239 <td class="memname">void WIFI_Activate_Station_WPS_PBC </td>
241 <td class="paramtype">void </td>
242 <td class="paramname"></td><td>)</td>
246 </div><div class="memdoc">
247 <p>The test case <b>WIFI_Activate_Station_WPS_PBC</b> verifies the WiFi Driver <b>Activate</b> function Station connection with WPS and Push-Button Configuration method. This test case requires that test Access Point has active Push-button WPS method when test is started. Usually started on the WiFi AP (router) by pressing the WPS button. </p>
251 <a class="anchor" id="ga20a27097854981b1538491cd57546cf7"></a>
252 <div class="memitem">
253 <div class="memproto">
254 <table class="memname">
256 <td class="memname">void WIFI_Activate_Station_WPS_PIN </td>
258 <td class="paramtype">void </td>
259 <td class="paramname"></td><td>)</td>
263 </div><div class="memdoc">
264 <p>The test case <b>WIFI_Activate_Station_WPS_PIN</b> verifies the WiFi Driver <b>Activate</b> function Station connection with WPS and PIN method. This test case requires that test Access Point has active PIN WPS method when test is started. Usually needs to be configured on the WiFi AP (router). </p>
268 <a class="anchor" id="gaa2f22c021bf9695a0b542e46704f28c8"></a>
269 <div class="memitem">
270 <div class="memproto">
271 <table class="memname">
273 <td class="memname">void WIFI_GetNetInfo </td>
275 <td class="paramtype">void </td>
276 <td class="paramname"></td><td>)</td>
280 </div><div class="memdoc">
281 <p>The test case <b>WIFI_GetNetInfo</b> verifies the WiFi Driver <b>GetNetInfo</b> function. </p>
282 <div class="fragment"><div class="line">int32_t (*GetNetInfo) (ARM_WIFI_NET_INFO_t *<a class="code" href="_d_v___w_i_f_i_8c.html#a506da30f09d9291e191bbe329ee5244c">net_info</a>);</div>
283 </div><!-- fragment -->
286 <a class="anchor" id="ga00d1e2f0a45e674d0ee01ec8a572dec5"></a>
287 <div class="memitem">
288 <div class="memproto">
289 <table class="memname">
291 <td class="memname">void WIFI_IsConnected </td>
293 <td class="paramtype">void </td>
294 <td class="paramname"></td><td>)</td>
298 </div><div class="memdoc">
299 <p>The test case <b>WIFI_IsConnected</b> verifies the WiFi Driver <b>IsConnected</b> function. </p>
300 <div class="fragment"><div class="line">uint32_t (*IsConnected) (void);</div>
301 </div><!-- fragment -->
304 <a class="anchor" id="ga80774e115994cbc7936dc0e095f82d8a"></a>
305 <div class="memitem">
306 <div class="memproto">
307 <table class="memname">
309 <td class="memname">void WIFI_Scan </td>
311 <td class="paramtype">void </td>
312 <td class="paramname"></td><td>)</td>
316 </div><div class="memdoc">
317 <p>The test case <b>WIFI_Scan</b> verifies the WiFi Driver <b>Scan</b> function. </p>
318 <div class="fragment"><div class="line">int32_t (*Scan) (ARM_WIFI_SCAN_INFO_t <a class="code" href="_d_v___w_i_f_i_8c.html#af0d4978b7b321777eb53b50d06ed7f4d">scan_info</a>[], uint32_t max_num);</div>
319 </div><!-- fragment -->
322 <a class="anchor" id="gab3e92900df96e1c48b068d2a4f7b04b9"></a>
323 <div class="memitem">
324 <div class="memproto">
325 <table class="memname">
327 <td class="memname">void WIFI_SetOption_GetOption </td>
329 <td class="paramtype">void </td>
330 <td class="paramname"></td><td>)</td>
334 </div><div class="memdoc">
335 <p>The test case <b>WIFI_SetOption_GetOption</b> verifies the WiFi Driver <b>SetOption</b> and <b>GetOption</b> functions. (Options: ARM_WIFI_BSSID, ARM_WIFI_MAC, ARM_WIFI_IP, ARM_WIFI_IP_SUBNET_MASK, ARM_WIFI_IP_GATEWAY, ARM_WIFI_IP_DNS1, ARM_WIFI_IP_DNS2, ARM_WIFI_IP_DHCP_POOL_BEGIN, ARM_WIFI_IP_DHCP_POOL_END are checked with buffer not aligned to 4 bytes).<br/>
336 Tests for each option is conditionally executed depending on WIFI_SETGETOPTION_... settings in DV_Config.h file. </p>
337 <div class="fragment"><div class="line">int32_t (*SetOption) (uint32_t interface, uint32_t option, <span class="keyword">const</span> <span class="keywordtype">void</span> *data, uint32_t len);</div>
338 </div><!-- fragment --><p> and </p>
339 <div class="fragment"><div class="line">int32_t (*GetOption) (uint32_t interface, uint32_t option, <span class="keywordtype">void</span> *data, uint32_t *len);</div>
340 </div><!-- fragment --><p> Function <b>WIFI_SetOption_GetOption_BSSID</b> tests <b>ARM_WIFI_BSSID</b> option.<br/>
341 Function <b>WIFI_SetOption_GetOption_TX_POWER</b> tests <b>ARM_WIFI_TX_POWER</b> option.<br/>
342 Function <b>WIFI_SetOption_GetOption_LP_TIMER</b> tests <b>ARM_WIFI_LP_TIMER</b> option.<br/>
343 Function <b>WIFI_SetOption_GetOption_DTIM</b> tests <b>ARM_WIFI_DTIM</b> option.<br/>
344 Function <b>WIFI_SetOption_GetOption_BEACON</b> tests <b>ARM_WIFI_BEACON</b> option.<br/>
345 Function <b>WIFI_SetOption_GetOption_MAC</b> tests <b>ARM_WIFI_MAC</b> option.<br/>
346 Function <b>WIFI_SetOption_GetOption_IP</b> tests <b>ARM_WIFI_IP</b> option.<br/>
347 Function <b>WIFI_SetOption_GetOption_IP_SUBNET_MASK</b> tests <b>ARM_WIFI_IP_SUBNET_MASK</b> option.<br/>
348 Function <b>WIFI_SetOption_GetOption_IP_GATEWAY</b> tests <b>ARM_WIFI_IP_GATEWAY</b> option.<br/>
349 Function <b>WIFI_SetOption_GetOption_IP_DNS1</b> tests <b>ARM_WIFI_IP_DNS1</b> option.<br/>
350 Function <b>WIFI_SetOption_GetOption_IP_DNS2</b> tests <b>ARM_WIFI_IP_DNS2</b> option.<br/>
351 Function <b>WIFI_SetOption_GetOption_IP_DHCP</b> tests <b>ARM_WIFI_IP_DHCP</b> option.<br/>
352 Function <b>WIFI_SetOption_GetOption_IP_DHCP_POOL_BEGIN</b> tests <b>ARM_WIFI_IP_DHCP_POOL_BEGIN</b> option.<br/>
353 Function <b>WIFI_SetOption_GetOption_IP_DHCP_POOL_END</b> tests <b>ARM_WIFI_IP_DHCP_POOL_END</b> option.<br/>
354 Function <b>WIFI_SetOption_GetOption_IP_DHCP_LEASE_TIME</b> tests <b>ARM_WIFI_IP_DHCP_LEASE_TIME</b> option. </p>
358 </div><!-- contents -->
359 </div><!-- doc-content -->
360 <!-- start footer part -->
361 <div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
363 <li class="footer">Generated on Mon Dec 2 2019 12:02:23 for CMSIS-Driver Validation by ARM Ltd. All rights reserved.
365 <a href="http://www.doxygen.org/index.html">
366 <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.6