You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 

399 lines
20 KiB

<!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"/>
<title>ArduPilot Libraries: APM_PerfMon Class Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<link href="doxygen.css" rel="stylesheet" type="text/css"/>
</head>
<body>
<!-- Generated by Doxygen 1.7.1 -->
<div class="navigation" id="top">
<div class="tabs">
<ul class="tablist">
<li><a href="main.html"><span>Main&nbsp;Page</span></a></li>
<li><a href="namespaces.html"><span>Namespaces</span></a></li>
<li class="current"><a href="annotated.html"><span>Classes</span></a></li>
<li><a href="files.html"><span>Files</span></a></li>
</ul>
</div>
<div class="tabs2">
<ul class="tablist">
<li><a href="annotated.html"><span>Class&nbsp;List</span></a></li>
<li><a href="classes.html"><span>Class&nbsp;Index</span></a></li>
<li><a href="hierarchy.html"><span>Class&nbsp;Hierarchy</span></a></li>
<li><a href="functions.html"><span>Class&nbsp;Members</span></a></li>
</ul>
</div>
</div>
<div class="header">
<div class="summary">
<a href="#pub-methods">Public Member Functions</a> &#124;
<a href="#pub-static-methods">Static Public Member Functions</a> &#124;
<a href="#pub-attribs">Public Attributes</a> &#124;
<a href="#pub-static-attribs">Static Public Attributes</a> </div>
<div class="headertitle">
<h1>APM_PerfMon Class Reference</h1> </div>
</div>
<div class="contents">
<!-- doxytag: class="APM_PerfMon" -->
<p><code>#include &lt;<a class="el" href="_a_p_m___perf_mon_8h_source.html">APM_PerfMon.h</a>&gt;</code></p>
<div class="dynheader">
Collaboration diagram for APM_PerfMon:</div>
<div class="dyncontent">
<div class="center"><img src="class_a_p_m___perf_mon__coll__graph.png" border="0" usemap="#_a_p_m___perf_mon_coll__map" alt="Collaboration graph"/></div>
<map name="_a_p_m___perf_mon_coll__map" id="_a_p_m___perf_mon_coll__map">
</map>
<center><span class="legend">[<a target="top" href="graph_legend.html">legend</a>]</span></center></div>
<p><a href="class_a_p_m___perf_mon-members.html">List of all members.</a></p>
<table class="memberdecls">
<tr><td colspan="2"><h2><a name="pub-methods"></a>
Public Member Functions</h2></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_a_p_m___perf_mon.html#a5855a23305d89caa865e882343405272">APM_PerfMon</a> (int funcNum)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_a_p_m___perf_mon.html#a03a91ed07f988a97ba99eadfc285e91c">~APM_PerfMon</a> ()</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_a_p_m___perf_mon.html#a856eee2637c3b06222b3588b628c6831">stop</a> ()</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_a_p_m___perf_mon.html#a0eaf0bb85252710f3eabbe977a48e3ac">start</a> ()</td></tr>
<tr><td colspan="2"><h2><a name="pub-static-methods"></a>
Static Public Member Functions</h2></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">static int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_a_p_m___perf_mon.html#a1fa1e426f5e3773e62789646ed13a21c">recordFunctionName</a> (const char funcName[])</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">static void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_a_p_m___perf_mon.html#a8d00f3e92db8b8dddcb3bd3449fd6ba6">DisplayResults</a> (HardwareSerial *aSerial)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">static void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_a_p_m___perf_mon.html#abca4b21dbfcdb3455e57252708492e79">ClearAll</a> ()</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">static int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_a_p_m___perf_mon.html#a1dee2b80f6e30b92758a1f9857477803">strLen</a> (char *str)</td></tr>
<tr><td colspan="2"><h2><a name="pub-attribs"></a>
Public Attributes</h2></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_a_p_m___perf_mon.html#ae8d02e258b77e8a2204d3606a8069de2">_funcNum</a></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">unsigned long&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_a_p_m___perf_mon.html#aada2ed8640edf4a654fdbb1c23612771">_startTime</a></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="class_a_p_m___perf_mon.html">APM_PerfMon</a> *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_a_p_m___perf_mon.html#af4f734e6ee4b576b36c841329eac2bbc">_parent</a></td></tr>
<tr><td colspan="2"><h2><a name="pub-static-attribs"></a>
Static Public Attributes</h2></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">static int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_a_p_m___perf_mon.html#a548a78a57a67f9459b3675bedea0e363">nextFuncNum</a></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">static char&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_a_p_m___perf_mon.html#af0be721184f5bf0e44f687dbd2816c7a">functionNames</a> [PERFMON_MAX_FUNCTIONS][PERFMON_FUNCTION_NAME_LENGTH]</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">static unsigned long&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_a_p_m___perf_mon.html#a329ffebc4f13a7a8240bfa380d2cbf01">time</a> [PERFMON_MAX_FUNCTIONS]</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">static unsigned long&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_a_p_m___perf_mon.html#a316ec8b09f722a9f34a5638456a7ff1b">numCalls</a> [PERFMON_MAX_FUNCTIONS]</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">static unsigned long&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_a_p_m___perf_mon.html#a22d016885f1a0c61cde42db0b90bb856">allStartTime</a></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">static unsigned long&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_a_p_m___perf_mon.html#aed53fcaafc9793d204f89c9b18dd1a1d">allEndTime</a></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">static <a class="el" href="class_a_p_m___perf_mon.html">APM_PerfMon</a> *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_a_p_m___perf_mon.html#af75d9b2287bc5f820af61e90a30cac1a">lastCreated</a> = NULL</td></tr>
</table>
<hr/><a name="_details"></a><h2>Detailed Description</h2>
<p>Definition at line <a class="el" href="_a_p_m___perf_mon_8h_source.html#l00019">19</a> of file <a class="el" href="_a_p_m___perf_mon_8h_source.html">APM_PerfMon.h</a>.</p>
<hr/><h2>Constructor &amp; Destructor Documentation</h2>
<a class="anchor" id="a5855a23305d89caa865e882343405272"></a><!-- doxytag: member="APM_PerfMon::APM_PerfMon" ref="a5855a23305d89caa865e882343405272" args="(int funcNum)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">APM_PerfMon::APM_PerfMon </td>
<td>(</td>
<td class="paramtype">int&nbsp;</td>
<td class="paramname"> <em>funcNum</em></td>
<td>&nbsp;)&nbsp;</td>
<td></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>Definition at line <a class="el" href="_a_p_m___perf_mon_8cpp_source.html#l00025">25</a> of file <a class="el" href="_a_p_m___perf_mon_8cpp_source.html">APM_PerfMon.cpp</a>.</p>
</div>
</div>
<a class="anchor" id="a03a91ed07f988a97ba99eadfc285e91c"></a><!-- doxytag: member="APM_PerfMon::~APM_PerfMon" ref="a03a91ed07f988a97ba99eadfc285e91c" args="()" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">APM_PerfMon::~APM_PerfMon </td>
<td>(</td>
<td class="paramname"></td>
<td>&nbsp;)&nbsp;</td>
<td></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>Definition at line <a class="el" href="_a_p_m___perf_mon_8cpp_source.html#l00044">44</a> of file <a class="el" href="_a_p_m___perf_mon_8cpp_source.html">APM_PerfMon.cpp</a>.</p>
</div>
</div>
<hr/><h2>Member Function Documentation</h2>
<a class="anchor" id="abca4b21dbfcdb3455e57252708492e79"></a><!-- doxytag: member="APM_PerfMon::ClearAll" ref="abca4b21dbfcdb3455e57252708492e79" args="()" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void APM_PerfMon::ClearAll </td>
<td>(</td>
<td class="paramname"></td>
<td>&nbsp;)&nbsp;</td>
<td><code> [static]</code></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>Definition at line <a class="el" href="_a_p_m___perf_mon_8cpp_source.html#l00086">86</a> of file <a class="el" href="_a_p_m___perf_mon_8cpp_source.html">APM_PerfMon.cpp</a>.</p>
</div>
</div>
<a class="anchor" id="a8d00f3e92db8b8dddcb3bd3449fd6ba6"></a><!-- doxytag: member="APM_PerfMon::DisplayResults" ref="a8d00f3e92db8b8dddcb3bd3449fd6ba6" args="(HardwareSerial *aSerial)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void APM_PerfMon::DisplayResults </td>
<td>(</td>
<td class="paramtype">HardwareSerial *&nbsp;</td>
<td class="paramname"> <em>aSerial</em></td>
<td>&nbsp;)&nbsp;</td>
<td><code> [static]</code></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>Definition at line <a class="el" href="_a_p_m___perf_mon_8cpp_source.html#l00109">109</a> of file <a class="el" href="_a_p_m___perf_mon_8cpp_source.html">APM_PerfMon.cpp</a>.</p>
</div>
</div>
<a class="anchor" id="a1fa1e426f5e3773e62789646ed13a21c"></a><!-- doxytag: member="APM_PerfMon::recordFunctionName" ref="a1fa1e426f5e3773e62789646ed13a21c" args="(const char funcName[])" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">int APM_PerfMon::recordFunctionName </td>
<td>(</td>
<td class="paramtype">const char&nbsp;</td>
<td class="paramname"> <em>funcName</em>[]</td>
<td>&nbsp;)&nbsp;</td>
<td><code> [static]</code></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>Definition at line <a class="el" href="_a_p_m___perf_mon_8cpp_source.html#l00067">67</a> of file <a class="el" href="_a_p_m___perf_mon_8cpp_source.html">APM_PerfMon.cpp</a>.</p>
</div>
</div>
<a class="anchor" id="a0eaf0bb85252710f3eabbe977a48e3ac"></a><!-- doxytag: member="APM_PerfMon::start" ref="a0eaf0bb85252710f3eabbe977a48e3ac" args="()" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void APM_PerfMon::start </td>
<td>(</td>
<td class="paramname"></td>
<td>&nbsp;)&nbsp;</td>
<td></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>Definition at line <a class="el" href="_a_p_m___perf_mon_8cpp_source.html#l00061">61</a> of file <a class="el" href="_a_p_m___perf_mon_8cpp_source.html">APM_PerfMon.cpp</a>.</p>
</div>
</div>
<a class="anchor" id="a856eee2637c3b06222b3588b628c6831"></a><!-- doxytag: member="APM_PerfMon::stop" ref="a856eee2637c3b06222b3588b628c6831" args="()" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void APM_PerfMon::stop </td>
<td>(</td>
<td class="paramname"></td>
<td>&nbsp;)&nbsp;</td>
<td></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>Definition at line <a class="el" href="_a_p_m___perf_mon_8cpp_source.html#l00055">55</a> of file <a class="el" href="_a_p_m___perf_mon_8cpp_source.html">APM_PerfMon.cpp</a>.</p>
</div>
</div>
<a class="anchor" id="a1dee2b80f6e30b92758a1f9857477803"></a><!-- doxytag: member="APM_PerfMon::strLen" ref="a1dee2b80f6e30b92758a1f9857477803" args="(char *str)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">int APM_PerfMon::strLen </td>
<td>(</td>
<td class="paramtype">char *&nbsp;</td>
<td class="paramname"> <em>str</em></td>
<td>&nbsp;)&nbsp;</td>
<td><code> [static]</code></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>Definition at line <a class="el" href="_a_p_m___perf_mon_8cpp_source.html#l00195">195</a> of file <a class="el" href="_a_p_m___perf_mon_8cpp_source.html">APM_PerfMon.cpp</a>.</p>
</div>
</div>
<hr/><h2>Member Data Documentation</h2>
<a class="anchor" id="ae8d02e258b77e8a2204d3606a8069de2"></a><!-- doxytag: member="APM_PerfMon::_funcNum" ref="ae8d02e258b77e8a2204d3606a8069de2" args="" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">int <a class="el" href="class_a_p_m___perf_mon.html#ae8d02e258b77e8a2204d3606a8069de2">APM_PerfMon::_funcNum</a></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>Definition at line <a class="el" href="_a_p_m___perf_mon_8h_source.html#l00038">38</a> of file <a class="el" href="_a_p_m___perf_mon_8h_source.html">APM_PerfMon.h</a>.</p>
</div>
</div>
<a class="anchor" id="af4f734e6ee4b576b36c841329eac2bbc"></a><!-- doxytag: member="APM_PerfMon::_parent" ref="af4f734e6ee4b576b36c841329eac2bbc" args="" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="class_a_p_m___perf_mon.html">APM_PerfMon</a>* <a class="el" href="class_a_p_m___perf_mon.html#af4f734e6ee4b576b36c841329eac2bbc">APM_PerfMon::_parent</a></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>Definition at line <a class="el" href="_a_p_m___perf_mon_8h_source.html#l00040">40</a> of file <a class="el" href="_a_p_m___perf_mon_8h_source.html">APM_PerfMon.h</a>.</p>
</div>
</div>
<a class="anchor" id="aada2ed8640edf4a654fdbb1c23612771"></a><!-- doxytag: member="APM_PerfMon::_startTime" ref="aada2ed8640edf4a654fdbb1c23612771" args="" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">unsigned long <a class="el" href="class_a_p_m___perf_mon.html#aada2ed8640edf4a654fdbb1c23612771">APM_PerfMon::_startTime</a></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>Definition at line <a class="el" href="_a_p_m___perf_mon_8h_source.html#l00039">39</a> of file <a class="el" href="_a_p_m___perf_mon_8h_source.html">APM_PerfMon.h</a>.</p>
</div>
</div>
<a class="anchor" id="aed53fcaafc9793d204f89c9b18dd1a1d"></a><!-- doxytag: member="APM_PerfMon::allEndTime" ref="aed53fcaafc9793d204f89c9b18dd1a1d" args="" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">unsigned long <a class="el" href="class_a_p_m___perf_mon.html#aed53fcaafc9793d204f89c9b18dd1a1d">APM_PerfMon::allEndTime</a><code> [static]</code></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>Definition at line <a class="el" href="_a_p_m___perf_mon_8h_source.html#l00028">28</a> of file <a class="el" href="_a_p_m___perf_mon_8h_source.html">APM_PerfMon.h</a>.</p>
</div>
</div>
<a class="anchor" id="a22d016885f1a0c61cde42db0b90bb856"></a><!-- doxytag: member="APM_PerfMon::allStartTime" ref="a22d016885f1a0c61cde42db0b90bb856" args="" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">unsigned long <a class="el" href="class_a_p_m___perf_mon.html#a22d016885f1a0c61cde42db0b90bb856">APM_PerfMon::allStartTime</a><code> [static]</code></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>Definition at line <a class="el" href="_a_p_m___perf_mon_8h_source.html#l00027">27</a> of file <a class="el" href="_a_p_m___perf_mon_8h_source.html">APM_PerfMon.h</a>.</p>
</div>
</div>
<a class="anchor" id="af0be721184f5bf0e44f687dbd2816c7a"></a><!-- doxytag: member="APM_PerfMon::functionNames" ref="af0be721184f5bf0e44f687dbd2816c7a" args="[PERFMON_MAX_FUNCTIONS][PERFMON_FUNCTION_NAME_LENGTH]" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">char <a class="el" href="class_a_p_m___perf_mon.html#af0be721184f5bf0e44f687dbd2816c7a">APM_PerfMon::functionNames</a><code> [static]</code></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>Definition at line <a class="el" href="_a_p_m___perf_mon_8h_source.html#l00024">24</a> of file <a class="el" href="_a_p_m___perf_mon_8h_source.html">APM_PerfMon.h</a>.</p>
</div>
</div>
<a class="anchor" id="af75d9b2287bc5f820af61e90a30cac1a"></a><!-- doxytag: member="APM_PerfMon::lastCreated" ref="af75d9b2287bc5f820af61e90a30cac1a" args="" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="class_a_p_m___perf_mon.html">APM_PerfMon</a> * <a class="el" href="class_a_p_m___perf_mon.html#af75d9b2287bc5f820af61e90a30cac1a">APM_PerfMon::lastCreated</a> = NULL<code> [static]</code></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>Definition at line <a class="el" href="_a_p_m___perf_mon_8h_source.html#l00029">29</a> of file <a class="el" href="_a_p_m___perf_mon_8h_source.html">APM_PerfMon.h</a>.</p>
</div>
</div>
<a class="anchor" id="a548a78a57a67f9459b3675bedea0e363"></a><!-- doxytag: member="APM_PerfMon::nextFuncNum" ref="a548a78a57a67f9459b3675bedea0e363" args="" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">int <a class="el" href="class_a_p_m___perf_mon.html#a548a78a57a67f9459b3675bedea0e363">APM_PerfMon::nextFuncNum</a><code> [static]</code></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>Definition at line <a class="el" href="_a_p_m___perf_mon_8h_source.html#l00023">23</a> of file <a class="el" href="_a_p_m___perf_mon_8h_source.html">APM_PerfMon.h</a>.</p>
</div>
</div>
<a class="anchor" id="a316ec8b09f722a9f34a5638456a7ff1b"></a><!-- doxytag: member="APM_PerfMon::numCalls" ref="a316ec8b09f722a9f34a5638456a7ff1b" args="[PERFMON_MAX_FUNCTIONS]" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">unsigned long <a class="el" href="class_a_p_m___perf_mon.html#a316ec8b09f722a9f34a5638456a7ff1b">APM_PerfMon::numCalls</a><code> [static]</code></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>Definition at line <a class="el" href="_a_p_m___perf_mon_8h_source.html#l00026">26</a> of file <a class="el" href="_a_p_m___perf_mon_8h_source.html">APM_PerfMon.h</a>.</p>
</div>
</div>
<a class="anchor" id="a329ffebc4f13a7a8240bfa380d2cbf01"></a><!-- doxytag: member="APM_PerfMon::time" ref="a329ffebc4f13a7a8240bfa380d2cbf01" args="[PERFMON_MAX_FUNCTIONS]" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">unsigned long <a class="el" href="class_a_p_m___perf_mon.html#a329ffebc4f13a7a8240bfa380d2cbf01">APM_PerfMon::time</a><code> [static]</code></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>Definition at line <a class="el" href="_a_p_m___perf_mon_8h_source.html#l00025">25</a> of file <a class="el" href="_a_p_m___perf_mon_8h_source.html">APM_PerfMon.h</a>.</p>
</div>
</div>
<hr/>The documentation for this class was generated from the following files:<ul>
<li>/home/jgoppert/Projects/ap/libraries/APM_PerfMon/<a class="el" href="_a_p_m___perf_mon_8h_source.html">APM_PerfMon.h</a></li>
<li>/home/jgoppert/Projects/ap/libraries/APM_PerfMon/<a class="el" href="_a_p_m___perf_mon_8cpp_source.html">APM_PerfMon.cpp</a></li>
</ul>
</div>
<hr class="footer"/><address class="footer"><small>Generated on Sun Dec 26 2010 21:58:35 for ArduPilot Libraries by&nbsp;
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.7.1 </small></address>
</body>
</html>