Initial commit
13
documentation.html
Normal file
@ -0,0 +1,13 @@
|
||||
<html>
|
||||
<head>
|
||||
<title>A web page that points a browser to a different page after 2 seconds</title>
|
||||
<meta http-equiv="refresh" content="0; URL=./test-bench/doxygen/output/html/index.html">
|
||||
<meta name="keywords" content="automatic redirection">
|
||||
</head>
|
||||
<body>
|
||||
If your browser doesn't automatically go there within a few seconds,
|
||||
you may want to go to
|
||||
<a href="./test-bench/doxygen/output/html/index.html">the destination</a>
|
||||
manually.
|
||||
</body>
|
||||
</html>
|
19
src/mdw/trace/config/trace-config.h
Normal file
@ -0,0 +1,19 @@
|
||||
#ifndef TRACE_CONFIG_H
|
||||
#define TRACE_CONFIG_H
|
||||
|
||||
/**
|
||||
* Trace config example. Copy this file into the 'config' folder
|
||||
* of your project and do your configuration there.
|
||||
* Be sure to set up your include path such that the config file in
|
||||
* your project is seen first.
|
||||
*
|
||||
* Do not perform changes in this file at this location. It may
|
||||
* cause other projects to no more build!
|
||||
*/
|
||||
|
||||
#warning "No project specific trace configuration found! Taking default configuration!"
|
||||
|
||||
#define USE_TRACE_EXAMPLE 0
|
||||
#define TRACE_ADD_CRLF_SEQU 0
|
||||
|
||||
#endif // TRACE_CONFIG_H
|
2667
src/mdw/trace/doxygen/Doxyfile
Normal file
79
src/mdw/trace/doxygen/output/html/annotated.html
Normal file
@ -0,0 +1,79 @@
|
||||
<!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=11"/>
|
||||
<meta name="generator" content="Doxygen 1.9.2"/>
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1"/>
|
||||
<title>Trace: Class List</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="projectalign" style="padding-left: 0.5em;">
|
||||
<div id="projectname">Trace<span id="projectnumber"> 3.3</span>
|
||||
</div>
|
||||
</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
<!-- end header part -->
|
||||
<!-- Generated by Doxygen 1.9.2 -->
|
||||
<script type="text/javascript">
|
||||
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&dn=expat.txt MIT */
|
||||
var searchBox = new SearchBox("searchBox", "search",'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:d3d9a9a6595521f9666a5e94cc830dab83b65699&dn=expat.txt MIT */
|
||||
$(function() {
|
||||
initMenu('',true,false,'search.php','Search');
|
||||
$(document).ready(function() { init_search(); });
|
||||
});
|
||||
/* @license-end */
|
||||
</script>
|
||||
<div id="main-nav"></div>
|
||||
</div><!-- top -->
|
||||
<!-- 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">Class List</div></div>
|
||||
</div><!--header-->
|
||||
<div class="contents">
|
||||
<div class="textblock">Here are the classes, structs, unions and interfaces with brief descriptions:</div><div class="directory">
|
||||
<table class="directory">
|
||||
<tr id="row_0_" class="even"><td class="entry"><span style="width:16px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="class_trace.html" target="_self">Trace</a></td><td class="desc"></td></tr>
|
||||
</table>
|
||||
</div><!-- directory -->
|
||||
</div><!-- contents -->
|
||||
<!-- start footer part -->
|
||||
<hr class="footer"/><address class="footer"><small>
|
||||
Generated on Tue Sep 19 2023 10:35:57 for Trace by <a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.2
|
||||
</small></address>
|
||||
</body>
|
||||
</html>
|
BIN
src/mdw/trace/doxygen/output/html/bc_s.png
Normal file
After Width: | Height: | Size: 676 B |
BIN
src/mdw/trace/doxygen/output/html/bdwn.png
Normal file
After Width: | Height: | Size: 147 B |
83
src/mdw/trace/doxygen/output/html/class_trace-members.html
Normal file
@ -0,0 +1,83 @@
|
||||
<!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=11"/>
|
||||
<meta name="generator" content="Doxygen 1.9.2"/>
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1"/>
|
||||
<title>Trace: Member List</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="projectalign" style="padding-left: 0.5em;">
|
||||
<div id="projectname">Trace<span id="projectnumber"> 3.3</span>
|
||||
</div>
|
||||
</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
<!-- end header part -->
|
||||
<!-- Generated by Doxygen 1.9.2 -->
|
||||
<script type="text/javascript">
|
||||
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&dn=expat.txt MIT */
|
||||
var searchBox = new SearchBox("searchBox", "search",'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:d3d9a9a6595521f9666a5e94cc830dab83b65699&dn=expat.txt MIT */
|
||||
$(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><!-- top -->
|
||||
<div class="header">
|
||||
<div class="headertitle"><div class="title">Trace Member List</div></div>
|
||||
</div><!--header-->
|
||||
<div class="contents">
|
||||
|
||||
<p>This is the complete list of members for <a class="el" href="class_trace.html">Trace</a>, including all inherited members.</p>
|
||||
<table class="directory">
|
||||
<tr class="even"><td class="entry"><a class="el" href="class_trace.html#a6a42778d9401b9e90605475ecffeb8a2">initialize</a>()</td><td class="entry"><a class="el" href="class_trace.html">Trace</a></td><td class="entry"><span class="mlabel">static</span></td></tr>
|
||||
<tr class="odd"><td class="entry"><a class="el" href="class_trace.html#a1de337a9e4820514c0839c1efb3ff936">lock</a>()</td><td class="entry"><a class="el" href="class_trace.html">Trace</a></td><td class="entry"><span class="mlabel">static</span></td></tr>
|
||||
<tr class="even"><td class="entry"><a class="el" href="class_trace.html#a602aec03cad6466d892034582794de33">out</a>(string str)</td><td class="entry"><a class="el" href="class_trace.html">Trace</a></td><td class="entry"><span class="mlabel">static</span></td></tr>
|
||||
<tr class="odd"><td class="entry"><a class="el" href="class_trace.html#a2c0dd29f5f94cfe01be01d414a2d18ba">out</a>(const char *format,...)</td><td class="entry"><a class="el" href="class_trace.html">Trace</a></td><td class="entry"><span class="mlabel">static</span></td></tr>
|
||||
<tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>Trace</b>() (defined in <a class="el" href="class_trace.html">Trace</a>)</td><td class="entry"><a class="el" href="class_trace.html">Trace</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">protected</span></td></tr>
|
||||
<tr class="odd"><td class="entry"><a class="el" href="class_trace.html#ae79ce0081ba22864700a87053bfbc5f6">unlock</a>()</td><td class="entry"><a class="el" href="class_trace.html">Trace</a></td><td class="entry"><span class="mlabel">static</span></td></tr>
|
||||
</table></div><!-- contents -->
|
||||
<!-- start footer part -->
|
||||
<hr class="footer"/><address class="footer"><small>
|
||||
Generated on Tue Sep 19 2023 10:35:57 for Trace by <a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.2
|
||||
</small></address>
|
||||
</body>
|
||||
</html>
|
210
src/mdw/trace/doxygen/output/html/class_trace.html
Normal file
@ -0,0 +1,210 @@
|
||||
<!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=11"/>
|
||||
<meta name="generator" content="Doxygen 1.9.2"/>
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1"/>
|
||||
<title>Trace: Trace Class Reference</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="projectalign" style="padding-left: 0.5em;">
|
||||
<div id="projectname">Trace<span id="projectnumber"> 3.3</span>
|
||||
</div>
|
||||
</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
<!-- end header part -->
|
||||
<!-- Generated by Doxygen 1.9.2 -->
|
||||
<script type="text/javascript">
|
||||
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&dn=expat.txt MIT */
|
||||
var searchBox = new SearchBox("searchBox", "search",'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:d3d9a9a6595521f9666a5e94cc830dab83b65699&dn=expat.txt MIT */
|
||||
$(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><!-- top -->
|
||||
<div class="header">
|
||||
<div class="summary">
|
||||
<a href="#pub-static-methods">Static Public Member Functions</a> |
|
||||
<a href="class_trace-members.html">List of all members</a> </div>
|
||||
<div class="headertitle"><div class="title">Trace Class Reference</div></div>
|
||||
</div><!--header-->
|
||||
<div class="contents">
|
||||
|
||||
<p><code>#include <<a class="el" href="trace_8h_source.html">trace.h</a>></code></p>
|
||||
<table class="memberdecls">
|
||||
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="pub-static-methods" name="pub-static-methods"></a>
|
||||
Static Public Member Functions</h2></td></tr>
|
||||
<tr class="memitem:a6a42778d9401b9e90605475ecffeb8a2"><td class="memItemLeft" align="right" valign="top">static void </td><td class="memItemRight" valign="bottom"><a class="el" href="class_trace.html#a6a42778d9401b9e90605475ecffeb8a2">initialize</a> ()</td></tr>
|
||||
<tr class="memdesc:a6a42778d9401b9e90605475ecffeb8a2"><td class="mdescLeft"> </td><td class="mdescRight">Initializes trace functionality. <a href="class_trace.html#a6a42778d9401b9e90605475ecffeb8a2">More...</a><br /></td></tr>
|
||||
<tr class="separator:a6a42778d9401b9e90605475ecffeb8a2"><td class="memSeparator" colspan="2"> </td></tr>
|
||||
<tr class="memitem:a602aec03cad6466d892034582794de33"><td class="memItemLeft" align="right" valign="top">static void </td><td class="memItemRight" valign="bottom"><a class="el" href="class_trace.html#a602aec03cad6466d892034582794de33">out</a> (string str)</td></tr>
|
||||
<tr class="separator:a602aec03cad6466d892034582794de33"><td class="memSeparator" colspan="2"> </td></tr>
|
||||
<tr class="memitem:a2c0dd29f5f94cfe01be01d414a2d18ba"><td class="memItemLeft" align="right" valign="top">static void </td><td class="memItemRight" valign="bottom"><a class="el" href="class_trace.html#a2c0dd29f5f94cfe01be01d414a2d18ba">out</a> (const char *format,...)</td></tr>
|
||||
<tr class="separator:a2c0dd29f5f94cfe01be01d414a2d18ba"><td class="memSeparator" colspan="2"> </td></tr>
|
||||
<tr class="memitem:a1de337a9e4820514c0839c1efb3ff936"><td class="memItemLeft" align="right" valign="top"><a id="a1de337a9e4820514c0839c1efb3ff936" name="a1de337a9e4820514c0839c1efb3ff936"></a>
|
||||
static void </td><td class="memItemRight" valign="bottom"><b>lock</b> ()</td></tr>
|
||||
<tr class="memdesc:a1de337a9e4820514c0839c1efb3ff936"><td class="mdescLeft"> </td><td class="mdescRight">Locks trace for other threads. <br /></td></tr>
|
||||
<tr class="separator:a1de337a9e4820514c0839c1efb3ff936"><td class="memSeparator" colspan="2"> </td></tr>
|
||||
<tr class="memitem:ae79ce0081ba22864700a87053bfbc5f6"><td class="memItemLeft" align="right" valign="top"><a id="ae79ce0081ba22864700a87053bfbc5f6" name="ae79ce0081ba22864700a87053bfbc5f6"></a>
|
||||
static void </td><td class="memItemRight" valign="bottom"><b>unlock</b> ()</td></tr>
|
||||
<tr class="memdesc:ae79ce0081ba22864700a87053bfbc5f6"><td class="mdescLeft"> </td><td class="mdescRight">Unlocks trace so other threads can access trace. <br /></td></tr>
|
||||
<tr class="separator:ae79ce0081ba22864700a87053bfbc5f6"><td class="memSeparator" colspan="2"> </td></tr>
|
||||
</table>
|
||||
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
|
||||
<div class="textblock"><p >Prints debug information to a predefined output (output window). </p>
|
||||
</div><h2 class="groupheader">Member Function Documentation</h2>
|
||||
<a id="a6a42778d9401b9e90605475ecffeb8a2" name="a6a42778d9401b9e90605475ecffeb8a2"></a>
|
||||
<h2 class="memtitle"><span class="permalink"><a href="#a6a42778d9401b9e90605475ecffeb8a2">◆ </a></span>initialize()</h2>
|
||||
|
||||
<div class="memitem">
|
||||
<div class="memproto">
|
||||
<table class="mlabels">
|
||||
<tr>
|
||||
<td class="mlabels-left">
|
||||
<table class="memname">
|
||||
<tr>
|
||||
<td class="memname">static void Trace::initialize </td>
|
||||
<td>(</td>
|
||||
<td class="paramname"></td><td>)</td>
|
||||
<td></td>
|
||||
</tr>
|
||||
</table>
|
||||
</td>
|
||||
<td class="mlabels-right">
|
||||
<span class="mlabels"><span class="mlabel">static</span></span> </td>
|
||||
</tr>
|
||||
</table>
|
||||
</div><div class="memdoc">
|
||||
|
||||
<p>Initializes trace functionality. </p>
|
||||
<p >Call this method prior to use trace functionality. </p>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<a id="a2c0dd29f5f94cfe01be01d414a2d18ba" name="a2c0dd29f5f94cfe01be01d414a2d18ba"></a>
|
||||
<h2 class="memtitle"><span class="permalink"><a href="#a2c0dd29f5f94cfe01be01d414a2d18ba">◆ </a></span>out() <span class="overload">[1/2]</span></h2>
|
||||
|
||||
<div class="memitem">
|
||||
<div class="memproto">
|
||||
<table class="mlabels">
|
||||
<tr>
|
||||
<td class="mlabels-left">
|
||||
<table class="memname">
|
||||
<tr>
|
||||
<td class="memname">static void Trace::out </td>
|
||||
<td>(</td>
|
||||
<td class="paramtype">const char * </td>
|
||||
<td class="paramname"><em>format</em>, </td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="paramkey"></td>
|
||||
<td></td>
|
||||
<td class="paramtype"> </td>
|
||||
<td class="paramname"><em>...</em> </td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td></td>
|
||||
<td>)</td>
|
||||
<td></td><td></td>
|
||||
</tr>
|
||||
</table>
|
||||
</td>
|
||||
<td class="mlabels-right">
|
||||
<span class="mlabels"><span class="mlabel">static</span></span> </td>
|
||||
</tr>
|
||||
</table>
|
||||
</div><div class="memdoc">
|
||||
<p >Outputs a sequence of data formatted as the fromat argument specifies. This method can be used the same way as the traditional printf. The method will automatically add a new line too.</p>
|
||||
<dl class="params"><dt>Parameters</dt><dd>
|
||||
<table class="params">
|
||||
<tr><td class="paramname">format</td><td>The string that contains the text to be printed. It can optionally contain embedded format specifiers that are replaced by the values specified in subsequent additional arguments and formatted as requested. </td></tr>
|
||||
</table>
|
||||
</dd>
|
||||
</dl>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<a id="a602aec03cad6466d892034582794de33" name="a602aec03cad6466d892034582794de33"></a>
|
||||
<h2 class="memtitle"><span class="permalink"><a href="#a602aec03cad6466d892034582794de33">◆ </a></span>out() <span class="overload">[2/2]</span></h2>
|
||||
|
||||
<div class="memitem">
|
||||
<div class="memproto">
|
||||
<table class="mlabels">
|
||||
<tr>
|
||||
<td class="mlabels-left">
|
||||
<table class="memname">
|
||||
<tr>
|
||||
<td class="memname">static void Trace::out </td>
|
||||
<td>(</td>
|
||||
<td class="paramtype">string </td>
|
||||
<td class="paramname"><em>str</em></td><td>)</td>
|
||||
<td></td>
|
||||
</tr>
|
||||
</table>
|
||||
</td>
|
||||
<td class="mlabels-right">
|
||||
<span class="mlabels"><span class="mlabel">static</span></span> </td>
|
||||
</tr>
|
||||
</table>
|
||||
</div><div class="memdoc">
|
||||
<p >Outputs an STL string to the output window. The method will automatically add a new line, so the next string will be put automatically on the next line in the output window.</p>
|
||||
<dl class="params"><dt>Parameters</dt><dd>
|
||||
<table class="params">
|
||||
<tr><td class="paramname">str</td><td>String to print to the output window. </td></tr>
|
||||
</table>
|
||||
</dd>
|
||||
</dl>
|
||||
<dl class="section examples"><dt>Examples</dt><dd><a class="el" href="trace-example01_8cpp-example.html#a0">trace-example01.cpp</a>.</dd>
|
||||
</dl>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<hr/>The documentation for this class was generated from the following file:<ul>
|
||||
<li>C:/Users/thomas.sterren/Desktop/PTR_XF_Release/03-release/work/src/mdw/trace/<a class="el" href="trace_8h_source.html">trace.h</a></li>
|
||||
</ul>
|
||||
</div><!-- contents -->
|
||||
<!-- start footer part -->
|
||||
<hr class="footer"/><address class="footer"><small>
|
||||
Generated on Tue Sep 19 2023 10:35:57 for Trace by <a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.2
|
||||
</small></address>
|
||||
</body>
|
||||
</html>
|
80
src/mdw/trace/doxygen/output/html/classes.html
Normal file
@ -0,0 +1,80 @@
|
||||
<!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=11"/>
|
||||
<meta name="generator" content="Doxygen 1.9.2"/>
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1"/>
|
||||
<title>Trace: Class Index</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="projectalign" style="padding-left: 0.5em;">
|
||||
<div id="projectname">Trace<span id="projectnumber"> 3.3</span>
|
||||
</div>
|
||||
</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
<!-- end header part -->
|
||||
<!-- Generated by Doxygen 1.9.2 -->
|
||||
<script type="text/javascript">
|
||||
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&dn=expat.txt MIT */
|
||||
var searchBox = new SearchBox("searchBox", "search",'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:d3d9a9a6595521f9666a5e94cc830dab83b65699&dn=expat.txt MIT */
|
||||
$(function() {
|
||||
initMenu('',true,false,'search.php','Search');
|
||||
$(document).ready(function() { init_search(); });
|
||||
});
|
||||
/* @license-end */
|
||||
</script>
|
||||
<div id="main-nav"></div>
|
||||
</div><!-- top -->
|
||||
<!-- 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">Class Index</div></div>
|
||||
</div><!--header-->
|
||||
<div class="contents">
|
||||
<div class="qindex"><a class="qindex" href="#letter_T">T</a></div>
|
||||
<div class="classindex">
|
||||
<dl class="classindex even">
|
||||
<dt class="alphachar"><a id="letter_T" name="letter_T">T</a></dt>
|
||||
<dd><a class="el" href="class_trace.html">Trace</a></dd></dl>
|
||||
</div>
|
||||
</div><!-- contents -->
|
||||
<!-- start footer part -->
|
||||
<hr class="footer"/><address class="footer"><small>
|
||||
Generated on Tue Sep 19 2023 10:35:57 for Trace by <a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.2
|
||||
</small></address>
|
||||
</body>
|
||||
</html>
|
BIN
src/mdw/trace/doxygen/output/html/closed.png
Normal file
After Width: | Height: | Size: 132 B |
BIN
src/mdw/trace/doxygen/output/html/doc.png
Normal file
After Width: | Height: | Size: 746 B |
1827
src/mdw/trace/doxygen/output/html/doxygen.css
Normal file
26
src/mdw/trace/doxygen/output/html/doxygen.svg
Normal file
After Width: | Height: | Size: 15 KiB |
121
src/mdw/trace/doxygen/output/html/dynsections.js
Normal file
@ -0,0 +1,121 @@
|
||||
/*
|
||||
@licstart The following is the entire license notice for the JavaScript code in this file.
|
||||
|
||||
The MIT License (MIT)
|
||||
|
||||
Copyright (C) 1997-2020 by Dimitri van Heesch
|
||||
|
||||
Permission is hereby granted, free of charge, to any person obtaining a copy of this software
|
||||
and associated documentation files (the "Software"), to deal in the Software without restriction,
|
||||
including without limitation the rights to use, copy, modify, merge, publish, distribute,
|
||||
sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is
|
||||
furnished to do so, subject to the following conditions:
|
||||
|
||||
The above copyright notice and this permission notice shall be included in all copies or
|
||||
substantial portions of the Software.
|
||||
|
||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING
|
||||
BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
|
||||
NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
|
||||
DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
||||
|
||||
@licend The above is the entire license notice for the JavaScript code in this file
|
||||
*/
|
||||
function toggleVisibility(linkObj)
|
||||
{
|
||||
var base = $(linkObj).attr('id');
|
||||
var summary = $('#'+base+'-summary');
|
||||
var content = $('#'+base+'-content');
|
||||
var trigger = $('#'+base+'-trigger');
|
||||
var src=$(trigger).attr('src');
|
||||
if (content.is(':visible')===true) {
|
||||
content.hide();
|
||||
summary.show();
|
||||
$(linkObj).addClass('closed').removeClass('opened');
|
||||
$(trigger).attr('src',src.substring(0,src.length-8)+'closed.png');
|
||||
} else {
|
||||
content.show();
|
||||
summary.hide();
|
||||
$(linkObj).removeClass('closed').addClass('opened');
|
||||
$(trigger).attr('src',src.substring(0,src.length-10)+'open.png');
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
function updateStripes()
|
||||
{
|
||||
$('table.directory tr').
|
||||
removeClass('even').filter(':visible:even').addClass('even');
|
||||
}
|
||||
|
||||
function toggleLevel(level)
|
||||
{
|
||||
$('table.directory tr').each(function() {
|
||||
var l = this.id.split('_').length-1;
|
||||
var i = $('#img'+this.id.substring(3));
|
||||
var a = $('#arr'+this.id.substring(3));
|
||||
if (l<level+1) {
|
||||
i.removeClass('iconfopen iconfclosed').addClass('iconfopen');
|
||||
a.html('▼');
|
||||
$(this).show();
|
||||
} else if (l==level+1) {
|
||||
i.removeClass('iconfclosed iconfopen').addClass('iconfclosed');
|
||||
a.html('►');
|
||||
$(this).show();
|
||||
} else {
|
||||
$(this).hide();
|
||||
}
|
||||
});
|
||||
updateStripes();
|
||||
}
|
||||
|
||||
function toggleFolder(id)
|
||||
{
|
||||
// the clicked row
|
||||
var currentRow = $('#row_'+id);
|
||||
|
||||
// all rows after the clicked row
|
||||
var rows = currentRow.nextAll("tr");
|
||||
|
||||
var re = new RegExp('^row_'+id+'\\d+_$', "i"); //only one sub
|
||||
|
||||
// only match elements AFTER this one (can't hide elements before)
|
||||
var childRows = rows.filter(function() { return this.id.match(re); });
|
||||
|
||||
// first row is visible we are HIDING
|
||||
if (childRows.filter(':first').is(':visible')===true) {
|
||||
// replace down arrow by right arrow for current row
|
||||
var currentRowSpans = currentRow.find("span");
|
||||
currentRowSpans.filter(".iconfopen").removeClass("iconfopen").addClass("iconfclosed");
|
||||
currentRowSpans.filter(".arrow").html('►');
|
||||
rows.filter("[id^=row_"+id+"]").hide(); // hide all children
|
||||
} else { // we are SHOWING
|
||||
// replace right arrow by down arrow for current row
|
||||
var currentRowSpans = currentRow.find("span");
|
||||
currentRowSpans.filter(".iconfclosed").removeClass("iconfclosed").addClass("iconfopen");
|
||||
currentRowSpans.filter(".arrow").html('▼');
|
||||
// replace down arrows by right arrows for child rows
|
||||
var childRowsSpans = childRows.find("span");
|
||||
childRowsSpans.filter(".iconfopen").removeClass("iconfopen").addClass("iconfclosed");
|
||||
childRowsSpans.filter(".arrow").html('►');
|
||||
childRows.show(); //show all children
|
||||
}
|
||||
updateStripes();
|
||||
}
|
||||
|
||||
|
||||
function toggleInherit(id)
|
||||
{
|
||||
var rows = $('tr.inherit.'+id);
|
||||
var img = $('tr.inherit_header.'+id+' img');
|
||||
var src = $(img).attr('src');
|
||||
if (rows.filter(':first').is(':visible')===true) {
|
||||
rows.css('display','none');
|
||||
$(img).attr('src',src.substring(0,src.length-8)+'closed.png');
|
||||
} else {
|
||||
rows.css('display','table-row'); // using show() causes jump in firefox
|
||||
$(img).attr('src',src.substring(0,src.length-10)+'open.png');
|
||||
}
|
||||
}
|
||||
/* @license-end */
|
77
src/mdw/trace/doxygen/output/html/examples.html
Normal file
@ -0,0 +1,77 @@
|
||||
<!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=11"/>
|
||||
<meta name="generator" content="Doxygen 1.9.2"/>
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1"/>
|
||||
<title>Trace: Examples</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="projectalign" style="padding-left: 0.5em;">
|
||||
<div id="projectname">Trace<span id="projectnumber"> 3.3</span>
|
||||
</div>
|
||||
</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
<!-- end header part -->
|
||||
<!-- Generated by Doxygen 1.9.2 -->
|
||||
<script type="text/javascript">
|
||||
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&dn=expat.txt MIT */
|
||||
var searchBox = new SearchBox("searchBox", "search",'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:d3d9a9a6595521f9666a5e94cc830dab83b65699&dn=expat.txt MIT */
|
||||
$(function() {
|
||||
initMenu('',true,false,'search.php','Search');
|
||||
$(document).ready(function() { init_search(); });
|
||||
});
|
||||
/* @license-end */
|
||||
</script>
|
||||
<div id="main-nav"></div>
|
||||
</div><!-- top -->
|
||||
<!-- 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">Examples</div></div>
|
||||
</div><!--header-->
|
||||
<div class="contents">
|
||||
<div class="textblock">Here is a list of all examples:</div><ul>
|
||||
<li><a class="el" href="trace-example01_8cpp-example.html">trace-example01.cpp</a></li>
|
||||
</ul>
|
||||
</div><!-- contents -->
|
||||
<!-- start footer part -->
|
||||
<hr class="footer"/><address class="footer"><small>
|
||||
Generated on Tue Sep 19 2023 10:35:57 for Trace by <a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.2
|
||||
</small></address>
|
||||
</body>
|
||||
</html>
|
79
src/mdw/trace/doxygen/output/html/files.html
Normal file
@ -0,0 +1,79 @@
|
||||
<!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=11"/>
|
||||
<meta name="generator" content="Doxygen 1.9.2"/>
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1"/>
|
||||
<title>Trace: File List</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="projectalign" style="padding-left: 0.5em;">
|
||||
<div id="projectname">Trace<span id="projectnumber"> 3.3</span>
|
||||
</div>
|
||||
</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
<!-- end header part -->
|
||||
<!-- Generated by Doxygen 1.9.2 -->
|
||||
<script type="text/javascript">
|
||||
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&dn=expat.txt MIT */
|
||||
var searchBox = new SearchBox("searchBox", "search",'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:d3d9a9a6595521f9666a5e94cc830dab83b65699&dn=expat.txt MIT */
|
||||
$(function() {
|
||||
initMenu('',true,false,'search.php','Search');
|
||||
$(document).ready(function() { init_search(); });
|
||||
});
|
||||
/* @license-end */
|
||||
</script>
|
||||
<div id="main-nav"></div>
|
||||
</div><!-- top -->
|
||||
<!-- 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">File List</div></div>
|
||||
</div><!--header-->
|
||||
<div class="contents">
|
||||
<div class="textblock">Here is a list of all documented files with brief descriptions:</div><div class="directory">
|
||||
<table class="directory">
|
||||
<tr id="row_0_" class="even"><td class="entry"><span style="width:16px;display:inline-block;"> </span><a href="trace_8h_source.html"><span class="icondoc"></span></a><b>trace.h</b></td><td class="desc"></td></tr>
|
||||
</table>
|
||||
</div><!-- directory -->
|
||||
</div><!-- contents -->
|
||||
<!-- start footer part -->
|
||||
<hr class="footer"/><address class="footer"><small>
|
||||
Generated on Tue Sep 19 2023 10:35:57 for Trace by <a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.2
|
||||
</small></address>
|
||||
</body>
|
||||
</html>
|
BIN
src/mdw/trace/doxygen/output/html/folderclosed.png
Normal file
After Width: | Height: | Size: 616 B |
BIN
src/mdw/trace/doxygen/output/html/folderopen.png
Normal file
After Width: | Height: | Size: 597 B |
77
src/mdw/trace/doxygen/output/html/functions.html
Normal file
@ -0,0 +1,77 @@
|
||||
<!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=11"/>
|
||||
<meta name="generator" content="Doxygen 1.9.2"/>
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1"/>
|
||||
<title>Trace: Class Members</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="projectalign" style="padding-left: 0.5em;">
|
||||
<div id="projectname">Trace<span id="projectnumber"> 3.3</span>
|
||||
</div>
|
||||
</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
<!-- end header part -->
|
||||
<!-- Generated by Doxygen 1.9.2 -->
|
||||
<script type="text/javascript">
|
||||
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&dn=expat.txt MIT */
|
||||
var searchBox = new SearchBox("searchBox", "search",'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:d3d9a9a6595521f9666a5e94cc830dab83b65699&dn=expat.txt MIT */
|
||||
$(function() {
|
||||
initMenu('',true,false,'search.php','Search');
|
||||
$(document).ready(function() { init_search(); });
|
||||
});
|
||||
/* @license-end */
|
||||
</script>
|
||||
<div id="main-nav"></div>
|
||||
</div><!-- top -->
|
||||
<!-- 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="contents">
|
||||
<div class="textblock">Here is a list of all documented class members with links to the class documentation for each member:</div><ul>
|
||||
<li>initialize() : <a class="el" href="class_trace.html#a6a42778d9401b9e90605475ecffeb8a2">Trace</a></li>
|
||||
<li>lock() : <a class="el" href="class_trace.html#a1de337a9e4820514c0839c1efb3ff936">Trace</a></li>
|
||||
<li>out() : <a class="el" href="class_trace.html#a602aec03cad6466d892034582794de33">Trace</a></li>
|
||||
<li>unlock() : <a class="el" href="class_trace.html#ae79ce0081ba22864700a87053bfbc5f6">Trace</a></li>
|
||||
</ul>
|
||||
</div><!-- contents -->
|
||||
<!-- start footer part -->
|
||||
<hr class="footer"/><address class="footer"><small>
|
||||
Generated on Tue Sep 19 2023 10:35:57 for Trace by <a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.2
|
||||
</small></address>
|
||||
</body>
|
||||
</html>
|
77
src/mdw/trace/doxygen/output/html/functions_func.html
Normal file
@ -0,0 +1,77 @@
|
||||
<!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=11"/>
|
||||
<meta name="generator" content="Doxygen 1.9.2"/>
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1"/>
|
||||
<title>Trace: Class Members - Functions</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="projectalign" style="padding-left: 0.5em;">
|
||||
<div id="projectname">Trace<span id="projectnumber"> 3.3</span>
|
||||
</div>
|
||||
</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
<!-- end header part -->
|
||||
<!-- Generated by Doxygen 1.9.2 -->
|
||||
<script type="text/javascript">
|
||||
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&dn=expat.txt MIT */
|
||||
var searchBox = new SearchBox("searchBox", "search",'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:d3d9a9a6595521f9666a5e94cc830dab83b65699&dn=expat.txt MIT */
|
||||
$(function() {
|
||||
initMenu('',true,false,'search.php','Search');
|
||||
$(document).ready(function() { init_search(); });
|
||||
});
|
||||
/* @license-end */
|
||||
</script>
|
||||
<div id="main-nav"></div>
|
||||
</div><!-- top -->
|
||||
<!-- 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="contents">
|
||||
 <ul>
|
||||
<li>initialize() : <a class="el" href="class_trace.html#a6a42778d9401b9e90605475ecffeb8a2">Trace</a></li>
|
||||
<li>lock() : <a class="el" href="class_trace.html#a1de337a9e4820514c0839c1efb3ff936">Trace</a></li>
|
||||
<li>out() : <a class="el" href="class_trace.html#a602aec03cad6466d892034582794de33">Trace</a></li>
|
||||
<li>unlock() : <a class="el" href="class_trace.html#ae79ce0081ba22864700a87053bfbc5f6">Trace</a></li>
|
||||
</ul>
|
||||
</div><!-- contents -->
|
||||
<!-- start footer part -->
|
||||
<hr class="footer"/><address class="footer"><small>
|
||||
Generated on Tue Sep 19 2023 10:35:57 for Trace by <a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.2
|
||||
</small></address>
|
||||
</body>
|
||||
</html>
|
134
src/mdw/trace/doxygen/output/html/graph_legend.html
Normal file
@ -0,0 +1,134 @@
|
||||
<!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=11"/>
|
||||
<meta name="generator" content="Doxygen 1.9.2"/>
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1"/>
|
||||
<title>Trace: Graph Legend</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="projectalign" style="padding-left: 0.5em;">
|
||||
<div id="projectname">Trace<span id="projectnumber"> 3.3</span>
|
||||
</div>
|
||||
</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
<!-- end header part -->
|
||||
<!-- Generated by Doxygen 1.9.2 -->
|
||||
<script type="text/javascript">
|
||||
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&dn=expat.txt MIT */
|
||||
var searchBox = new SearchBox("searchBox", "search",'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:d3d9a9a6595521f9666a5e94cc830dab83b65699&dn=expat.txt MIT */
|
||||
$(function() {
|
||||
initMenu('',true,false,'search.php','Search');
|
||||
$(document).ready(function() { init_search(); });
|
||||
});
|
||||
/* @license-end */
|
||||
</script>
|
||||
<div id="main-nav"></div>
|
||||
</div><!-- top -->
|
||||
<!-- 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">Graph Legend</div></div>
|
||||
</div><!--header-->
|
||||
<div class="contents">
|
||||
<p >This page explains how to interpret the graphs that are generated by doxygen.</p>
|
||||
<p >Consider the following example: </p><div class="fragment"><div class="line"><span class="comment">/*! Invisible class because of truncation */</span></div>
|
||||
<div class="line"><span class="keyword">class </span>Invisible { };</div>
|
||||
<div class="line"><span class="comment"></span> </div>
|
||||
<div class="line"><span class="comment">/*! Truncated class, inheritance relation is hidden */</span></div>
|
||||
<div class="line"><span class="keyword">class </span>Truncated : <span class="keyword">public</span> Invisible { };</div>
|
||||
<div class="line"> </div>
|
||||
<div class="line"><span class="comment">/* Class not documented with doxygen comments */</span></div>
|
||||
<div class="line"><span class="keyword">class </span>Undocumented { };</div>
|
||||
<div class="line"><span class="comment"></span> </div>
|
||||
<div class="line"><span class="comment">/*! Class that is inherited using public inheritance */</span></div>
|
||||
<div class="line"><span class="keyword">class </span>PublicBase : <span class="keyword">public</span> Truncated { };</div>
|
||||
<div class="line"><span class="comment"></span> </div>
|
||||
<div class="line"><span class="comment">/*! A template class */</span></div>
|
||||
<div class="line"><span class="keyword">template</span><<span class="keyword">class</span> T> <span class="keyword">class </span>Templ { };</div>
|
||||
<div class="line"><span class="comment"></span> </div>
|
||||
<div class="line"><span class="comment">/*! Class that is inherited using protected inheritance */</span></div>
|
||||
<div class="line"><span class="keyword">class </span>ProtectedBase { };</div>
|
||||
<div class="line"><span class="comment"></span> </div>
|
||||
<div class="line"><span class="comment">/*! Class that is inherited using private inheritance */</span></div>
|
||||
<div class="line"><span class="keyword">class </span>PrivateBase { };</div>
|
||||
<div class="line"><span class="comment"></span> </div>
|
||||
<div class="line"><span class="comment">/*! Class that is used by the Inherited class */</span></div>
|
||||
<div class="line"><span class="keyword">class </span>Used { };</div>
|
||||
<div class="line"><span class="comment"></span> </div>
|
||||
<div class="line"><span class="comment">/*! Super class that inherits a number of other classes */</span></div>
|
||||
<div class="line"><span class="keyword">class </span>Inherited : <span class="keyword">public</span> PublicBase,</div>
|
||||
<div class="line"> <span class="keyword">protected</span> ProtectedBase,</div>
|
||||
<div class="line"> <span class="keyword">private</span> PrivateBase,</div>
|
||||
<div class="line"> <span class="keyword">public</span> Undocumented,</div>
|
||||
<div class="line"> <span class="keyword">public</span> Templ<int></div>
|
||||
<div class="line">{</div>
|
||||
<div class="line"> <span class="keyword">private</span>:</div>
|
||||
<div class="line"> Used *m_usedClass;</div>
|
||||
<div class="line">};</div>
|
||||
</div><!-- fragment --><p> This will result in the following graph:</p>
|
||||
<center><img src="graph_legend.png" alt="" class="inline"/></center><p >The boxes in the above graph have the following meaning: </p>
|
||||
<ul>
|
||||
<li>
|
||||
A filled gray box represents the struct or class for which the graph is generated. </li>
|
||||
<li>
|
||||
A box with a black border denotes a documented struct or class. </li>
|
||||
<li>
|
||||
A box with a gray border denotes an undocumented struct or class. </li>
|
||||
<li>
|
||||
A box with a red border denotes a documented struct or class forwhich not all inheritance/containment relations are shown. A graph is truncated if it does not fit within the specified boundaries. </li>
|
||||
</ul>
|
||||
<p >The arrows have the following meaning: </p>
|
||||
<ul>
|
||||
<li>
|
||||
A dark blue arrow is used to visualize a public inheritance relation between two classes. </li>
|
||||
<li>
|
||||
A dark green arrow is used for protected inheritance. </li>
|
||||
<li>
|
||||
A dark red arrow is used for private inheritance. </li>
|
||||
<li>
|
||||
A purple dashed arrow is used if a class is contained or used by another class. The arrow is labelled with the variable(s) through which the pointed class or struct is accessible. </li>
|
||||
<li>
|
||||
A yellow dashed arrow denotes a relation between a template instance and the template class it was instantiated from. The arrow is labelled with the template parameters of the instance. </li>
|
||||
</ul>
|
||||
</div><!-- contents -->
|
||||
<!-- start footer part -->
|
||||
<hr class="footer"/><address class="footer"><small>
|
||||
Generated on Tue Sep 19 2023 10:35:57 for Trace by <a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.2
|
||||
</small></address>
|
||||
</body>
|
||||
</html>
|
1
src/mdw/trace/doxygen/output/html/graph_legend.md5
Normal file
@ -0,0 +1 @@
|
||||
96f7f490d6abe0548a4642b853a154bb
|
BIN
src/mdw/trace/doxygen/output/html/graph_legend.png
Normal file
After Width: | Height: | Size: 12 KiB |
99
src/mdw/trace/doxygen/output/html/index.html
Normal file
@ -0,0 +1,99 @@
|
||||
<!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=11"/>
|
||||
<meta name="generator" content="Doxygen 1.9.2"/>
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1"/>
|
||||
<title>Trace: Trace</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="projectalign" style="padding-left: 0.5em;">
|
||||
<div id="projectname">Trace<span id="projectnumber"> 3.3</span>
|
||||
</div>
|
||||
</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
<!-- end header part -->
|
||||
<!-- Generated by Doxygen 1.9.2 -->
|
||||
<script type="text/javascript">
|
||||
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&dn=expat.txt MIT */
|
||||
var searchBox = new SearchBox("searchBox", "search",'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:d3d9a9a6595521f9666a5e94cc830dab83b65699&dn=expat.txt MIT */
|
||||
$(function() {
|
||||
initMenu('',true,false,'search.php','Search');
|
||||
$(document).ready(function() { init_search(); });
|
||||
});
|
||||
/* @license-end */
|
||||
</script>
|
||||
<div id="main-nav"></div>
|
||||
</div><!-- top -->
|
||||
<!-- 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><div class="header">
|
||||
<div class="headertitle"><div class="title"><a class="el" href="class_trace.html">Trace</a> </div></div>
|
||||
</div><!--header-->
|
||||
<div class="contents">
|
||||
<div class="textblock"><h1><a class="anchor" id="sec_trace_intro"></a>
|
||||
Introduction</h1>
|
||||
<p >This small library is used to print debug information to an output. It serves as a general interface (LAL <b>L</b>ibrary <b>A</b>bstraction <b>L</b>ayer).</p>
|
||||
<p >The library consists of a single class named <a class="el" href="class_trace.html">Trace</a>. There is no need to make an instance of this class. Instead use the <a class="el" href="class_trace.html#a602aec03cad6466d892034582794de33">Trace::out()</a> methods to output the information needed.</p>
|
||||
<h1><a class="anchor" id="sec_trace_targets"></a>
|
||||
Targets</h1>
|
||||
<h2><a class="anchor" id="subsec_trace_f7_disco"></a>
|
||||
F7-DISCO Board</h2>
|
||||
<p >When working with the F7-DISCO board, <a class="el" href="class_trace.html">Trace</a> outputs the information using the USB-STLINK interface of the debugger USB cable to the Host. On Windows, the 'STLink Virtual COM' Port must be opened to see the trace output. During compilation time, the constant <em>USE_PLATFORM_F7_DISCO_GCC_TRACE</em> must be defined. </p>
|
||||
<h3><a class="anchor" id="subsubsec_trace_f7_disco_serial_config"></a>
|
||||
Serial Configuration</h3>
|
||||
<ul>
|
||||
<li>Baud: 115200</li>
|
||||
<li>Data Bits: 8</li>
|
||||
<li>Parity: none</li>
|
||||
<li>Stop Bits: 1</li>
|
||||
<li>Flow control: none</li>
|
||||
</ul>
|
||||
<h2><a class="anchor" id="subsec_trace_qt"></a>
|
||||
QT library</h2>
|
||||
<p >When working with the QT library, <a class="el" href="class_trace.html">Trace</a> outputs the information to the debuggers output window. During compilation time, the constant <em>TC_QTCREATOR</em> must be defined.</p>
|
||||
<h1><a class="anchor" id="sec_trace_external_links"></a>
|
||||
Links to related Documentation</h1>
|
||||
<p >- <a href="../../../../../../test-bench/doxygen/output/html/index.html">Test Bench Documentation</a> - <a href="../../../../../simplified/xf/doxygen/output/html/index.html">XF Documentation</a> </p>
|
||||
</div></div><!-- PageDoc -->
|
||||
</div><!-- contents -->
|
||||
<!-- start footer part -->
|
||||
<hr class="footer"/><address class="footer"><small>
|
||||
Generated on Tue Sep 19 2023 10:35:57 for Trace by <a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.2
|
||||
</small></address>
|
||||
</body>
|
||||
</html>
|
35
src/mdw/trace/doxygen/output/html/jquery.js
vendored
Normal file
127
src/mdw/trace/doxygen/output/html/menu.js
Normal file
@ -0,0 +1,127 @@
|
||||
/*
|
||||
@licstart The following is the entire license notice for the JavaScript code in this file.
|
||||
|
||||
The MIT License (MIT)
|
||||
|
||||
Copyright (C) 1997-2020 by Dimitri van Heesch
|
||||
|
||||
Permission is hereby granted, free of charge, to any person obtaining a copy of this software
|
||||
and associated documentation files (the "Software"), to deal in the Software without restriction,
|
||||
including without limitation the rights to use, copy, modify, merge, publish, distribute,
|
||||
sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is
|
||||
furnished to do so, subject to the following conditions:
|
||||
|
||||
The above copyright notice and this permission notice shall be included in all copies or
|
||||
substantial portions of the Software.
|
||||
|
||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING
|
||||
BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
|
||||
NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
|
||||
DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
||||
|
||||
@licend The above is the entire license notice for the JavaScript code in this file
|
||||
*/
|
||||
function initMenu(relPath,searchEnabled,serverSide,searchPage,search) {
|
||||
function makeTree(data,relPath) {
|
||||
var result='';
|
||||
if ('children' in data) {
|
||||
result+='<ul>';
|
||||
for (var i in data.children) {
|
||||
result+='<li><a href="'+relPath+data.children[i].url+'">'+
|
||||
data.children[i].text+'</a>'+
|
||||
makeTree(data.children[i],relPath)+'</li>';
|
||||
}
|
||||
result+='</ul>';
|
||||
}
|
||||
return result;
|
||||
}
|
||||
var searchBox;
|
||||
if (searchEnabled) {
|
||||
if (serverSide) {
|
||||
searchBox='<div id="MSearchBox" class="MSearchBoxInactive">'+
|
||||
'<div class="left">'+
|
||||
'<form id="FSearchBox" action="'+relPath+searchPage+
|
||||
'" method="get"><img id="MSearchSelect" src="'+
|
||||
relPath+'search/mag.svg" alt=""/>'+
|
||||
'<input type="text" id="MSearchField" name="query" value="'+search+
|
||||
'" size="20" accesskey="S" onfocus="searchBox.OnSearchFieldFocus(true)"'+
|
||||
' onblur="searchBox.OnSearchFieldFocus(false)">'+
|
||||
'</form>'+
|
||||
'</div>'+
|
||||
'<div class="right"></div>'+
|
||||
'</div>';
|
||||
} else {
|
||||
searchBox='<div id="MSearchBox" class="MSearchBoxInactive">'+
|
||||
'<span class="left">'+
|
||||
'<img id="MSearchSelect" src="'+relPath+
|
||||
'search/mag_sel.svg" onmouseover="return searchBox.OnSearchSelectShow()"'+
|
||||
' onmouseout="return searchBox.OnSearchSelectHide()" alt=""/>'+
|
||||
'<input type="text" id="MSearchField" value="'+search+
|
||||
'" accesskey="S" onfocus="searchBox.OnSearchFieldFocus(true)" '+
|
||||
'onblur="searchBox.OnSearchFieldFocus(false)" '+
|
||||
'onkeyup="searchBox.OnSearchFieldChange(event)"/>'+
|
||||
'</span>'+
|
||||
'<span class="right"><a id="MSearchClose" '+
|
||||
'href="javascript:searchBox.CloseResultsWindow()">'+
|
||||
'<img id="MSearchCloseImg" border="0" src="'+relPath+
|
||||
'search/close.svg" alt=""/></a>'
|
||||
'</span>'
|
||||
'</div>';
|
||||
}
|
||||
}
|
||||
|
||||
$('#main-nav').before('<div class="sm sm-dox"><input id="main-menu-state" type="checkbox"/>'+
|
||||
'<label class="main-menu-btn" for="main-menu-state">'+
|
||||
'<span class="main-menu-btn-icon"></span> '+
|
||||
'Toggle main menu visibility</label>'+
|
||||
'<span id="searchBoxPos1" style="position:absolute;right:8px;top:8px;height:36px;"></span>'+
|
||||
'</div>');
|
||||
$('#main-nav').append(makeTree(menudata,relPath));
|
||||
$('#main-nav').children(':first').addClass('sm sm-dox').attr('id','main-menu');
|
||||
if (searchBox) {
|
||||
$('#main-menu').append('<li id="searchBoxPos2" style="float:right"></li>');
|
||||
}
|
||||
var $mainMenuState = $('#main-menu-state');
|
||||
var prevWidth = 0;
|
||||
if ($mainMenuState.length) {
|
||||
function initResizableIfExists() {
|
||||
if (typeof initResizable==='function') initResizable();
|
||||
}
|
||||
// animate mobile menu
|
||||
$mainMenuState.change(function(e) {
|
||||
var $menu = $('#main-menu');
|
||||
var options = { duration: 250, step: initResizableIfExists };
|
||||
if (this.checked) {
|
||||
options['complete'] = function() { $menu.css('display', 'block') };
|
||||
$menu.hide().slideDown(options);
|
||||
} else {
|
||||
options['complete'] = function() { $menu.css('display', 'none') };
|
||||
$menu.show().slideUp(options);
|
||||
}
|
||||
});
|
||||
// set default menu visibility
|
||||
function resetState() {
|
||||
var $menu = $('#main-menu');
|
||||
var $mainMenuState = $('#main-menu-state');
|
||||
var newWidth = $(window).outerWidth();
|
||||
if (newWidth!=prevWidth) {
|
||||
if ($(window).outerWidth()<768) {
|
||||
$mainMenuState.prop('checked',false); $menu.hide();
|
||||
$('#searchBoxPos1').html(searchBox);
|
||||
$('#searchBoxPos2').hide();
|
||||
} else {
|
||||
$menu.show();
|
||||
$('#searchBoxPos1').empty();
|
||||
$('#searchBoxPos2').html(searchBox);
|
||||
$('#searchBoxPos2').show();
|
||||
}
|
||||
prevWidth = newWidth;
|
||||
}
|
||||
}
|
||||
$(window).ready(function() { resetState(); initResizableIfExists(); });
|
||||
$(window).resize(resetState);
|
||||
}
|
||||
$('#main-menu').smartmenus();
|
||||
}
|
||||
/* @license-end */
|
35
src/mdw/trace/doxygen/output/html/menudata.js
Normal file
@ -0,0 +1,35 @@
|
||||
/*
|
||||
@licstart The following is the entire license notice for the JavaScript code in this file.
|
||||
|
||||
The MIT License (MIT)
|
||||
|
||||
Copyright (C) 1997-2020 by Dimitri van Heesch
|
||||
|
||||
Permission is hereby granted, free of charge, to any person obtaining a copy of this software
|
||||
and associated documentation files (the "Software"), to deal in the Software without restriction,
|
||||
including without limitation the rights to use, copy, modify, merge, publish, distribute,
|
||||
sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is
|
||||
furnished to do so, subject to the following conditions:
|
||||
|
||||
The above copyright notice and this permission notice shall be included in all copies or
|
||||
substantial portions of the Software.
|
||||
|
||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING
|
||||
BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
|
||||
NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
|
||||
DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
||||
|
||||
@licend The above is the entire license notice for the JavaScript code in this file
|
||||
*/
|
||||
var menudata={children:[
|
||||
{text:"Main Page",url:"index.html"},
|
||||
{text:"Classes",url:"annotated.html",children:[
|
||||
{text:"Class List",url:"annotated.html"},
|
||||
{text:"Class Index",url:"classes.html"},
|
||||
{text:"Class Members",url:"functions.html",children:[
|
||||
{text:"All",url:"functions.html"},
|
||||
{text:"Functions",url:"functions_func.html"}]}]},
|
||||
{text:"Files",url:"files.html",children:[
|
||||
{text:"File List",url:"files.html"}]},
|
||||
{text:"Examples",url:"examples.html"}]}
|
BIN
src/mdw/trace/doxygen/output/html/nav_f.png
Normal file
After Width: | Height: | Size: 153 B |
BIN
src/mdw/trace/doxygen/output/html/nav_g.png
Normal file
After Width: | Height: | Size: 95 B |
BIN
src/mdw/trace/doxygen/output/html/nav_h.png
Normal file
After Width: | Height: | Size: 98 B |
BIN
src/mdw/trace/doxygen/output/html/open.png
Normal file
After Width: | Height: | Size: 123 B |
37
src/mdw/trace/doxygen/output/html/search/all_0.html
Normal file
@ -0,0 +1,37 @@
|
||||
<!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><title></title>
|
||||
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
|
||||
<meta name="generator" content="Doxygen 1.9.2"/>
|
||||
<link rel="stylesheet" type="text/css" href="search.css"/>
|
||||
<script type="text/javascript" src="all_0.js"></script>
|
||||
<script type="text/javascript" src="search.js"></script>
|
||||
</head>
|
||||
<body class="SRPage">
|
||||
<div id="SRIndex">
|
||||
<div class="SRStatus" id="Loading">Loading...</div>
|
||||
<div id="SRResults"></div>
|
||||
<script type="text/javascript">
|
||||
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&dn=expat.txt MIT */
|
||||
createResults();
|
||||
/* @license-end */
|
||||
</script>
|
||||
<div class="SRStatus" id="Searching">Searching...</div>
|
||||
<div class="SRStatus" id="NoMatches">No Matches</div>
|
||||
<script type="text/javascript">
|
||||
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&dn=expat.txt MIT */
|
||||
document.getElementById("Loading").style.display="none";
|
||||
document.getElementById("NoMatches").style.display="none";
|
||||
var searchResults = new SearchResults("searchResults");
|
||||
searchResults.Search();
|
||||
window.addEventListener("message", function(event) {
|
||||
if (event.data == "take_focus") {
|
||||
var elem = searchResults.NavNext(0);
|
||||
if (elem) elem.focus();
|
||||
}
|
||||
});
|
||||
/* @license-end */
|
||||
</script>
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
4
src/mdw/trace/doxygen/output/html/search/all_0.js
Normal file
@ -0,0 +1,4 @@
|
||||
var searchData=
|
||||
[
|
||||
['initialize_0',['initialize',['../class_trace.html#a6a42778d9401b9e90605475ecffeb8a2',1,'Trace']]]
|
||||
];
|
37
src/mdw/trace/doxygen/output/html/search/all_1.html
Normal file
@ -0,0 +1,37 @@
|
||||
<!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><title></title>
|
||||
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
|
||||
<meta name="generator" content="Doxygen 1.9.2"/>
|
||||
<link rel="stylesheet" type="text/css" href="search.css"/>
|
||||
<script type="text/javascript" src="all_1.js"></script>
|
||||
<script type="text/javascript" src="search.js"></script>
|
||||
</head>
|
||||
<body class="SRPage">
|
||||
<div id="SRIndex">
|
||||
<div class="SRStatus" id="Loading">Loading...</div>
|
||||
<div id="SRResults"></div>
|
||||
<script type="text/javascript">
|
||||
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&dn=expat.txt MIT */
|
||||
createResults();
|
||||
/* @license-end */
|
||||
</script>
|
||||
<div class="SRStatus" id="Searching">Searching...</div>
|
||||
<div class="SRStatus" id="NoMatches">No Matches</div>
|
||||
<script type="text/javascript">
|
||||
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&dn=expat.txt MIT */
|
||||
document.getElementById("Loading").style.display="none";
|
||||
document.getElementById("NoMatches").style.display="none";
|
||||
var searchResults = new SearchResults("searchResults");
|
||||
searchResults.Search();
|
||||
window.addEventListener("message", function(event) {
|
||||
if (event.data == "take_focus") {
|
||||
var elem = searchResults.NavNext(0);
|
||||
if (elem) elem.focus();
|
||||
}
|
||||
});
|
||||
/* @license-end */
|
||||
</script>
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
4
src/mdw/trace/doxygen/output/html/search/all_1.js
Normal file
@ -0,0 +1,4 @@
|
||||
var searchData=
|
||||
[
|
||||
['lock_0',['lock',['../class_trace.html#a1de337a9e4820514c0839c1efb3ff936',1,'Trace']]]
|
||||
];
|
37
src/mdw/trace/doxygen/output/html/search/all_2.html
Normal file
@ -0,0 +1,37 @@
|
||||
<!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><title></title>
|
||||
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
|
||||
<meta name="generator" content="Doxygen 1.9.2"/>
|
||||
<link rel="stylesheet" type="text/css" href="search.css"/>
|
||||
<script type="text/javascript" src="all_2.js"></script>
|
||||
<script type="text/javascript" src="search.js"></script>
|
||||
</head>
|
||||
<body class="SRPage">
|
||||
<div id="SRIndex">
|
||||
<div class="SRStatus" id="Loading">Loading...</div>
|
||||
<div id="SRResults"></div>
|
||||
<script type="text/javascript">
|
||||
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&dn=expat.txt MIT */
|
||||
createResults();
|
||||
/* @license-end */
|
||||
</script>
|
||||
<div class="SRStatus" id="Searching">Searching...</div>
|
||||
<div class="SRStatus" id="NoMatches">No Matches</div>
|
||||
<script type="text/javascript">
|
||||
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&dn=expat.txt MIT */
|
||||
document.getElementById("Loading").style.display="none";
|
||||
document.getElementById("NoMatches").style.display="none";
|
||||
var searchResults = new SearchResults("searchResults");
|
||||
searchResults.Search();
|
||||
window.addEventListener("message", function(event) {
|
||||
if (event.data == "take_focus") {
|
||||
var elem = searchResults.NavNext(0);
|
||||
if (elem) elem.focus();
|
||||
}
|
||||
});
|
||||
/* @license-end */
|
||||
</script>
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
4
src/mdw/trace/doxygen/output/html/search/all_2.js
Normal file
@ -0,0 +1,4 @@
|
||||
var searchData=
|
||||
[
|
||||
['out_0',['out',['../class_trace.html#a602aec03cad6466d892034582794de33',1,'Trace::out(string str)'],['../class_trace.html#a2c0dd29f5f94cfe01be01d414a2d18ba',1,'Trace::out(const char *format,...)']]]
|
||||
];
|
37
src/mdw/trace/doxygen/output/html/search/all_3.html
Normal file
@ -0,0 +1,37 @@
|
||||
<!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><title></title>
|
||||
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
|
||||
<meta name="generator" content="Doxygen 1.9.2"/>
|
||||
<link rel="stylesheet" type="text/css" href="search.css"/>
|
||||
<script type="text/javascript" src="all_3.js"></script>
|
||||
<script type="text/javascript" src="search.js"></script>
|
||||
</head>
|
||||
<body class="SRPage">
|
||||
<div id="SRIndex">
|
||||
<div class="SRStatus" id="Loading">Loading...</div>
|
||||
<div id="SRResults"></div>
|
||||
<script type="text/javascript">
|
||||
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&dn=expat.txt MIT */
|
||||
createResults();
|
||||
/* @license-end */
|
||||
</script>
|
||||
<div class="SRStatus" id="Searching">Searching...</div>
|
||||
<div class="SRStatus" id="NoMatches">No Matches</div>
|
||||
<script type="text/javascript">
|
||||
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&dn=expat.txt MIT */
|
||||
document.getElementById("Loading").style.display="none";
|
||||
document.getElementById("NoMatches").style.display="none";
|
||||
var searchResults = new SearchResults("searchResults");
|
||||
searchResults.Search();
|
||||
window.addEventListener("message", function(event) {
|
||||
if (event.data == "take_focus") {
|
||||
var elem = searchResults.NavNext(0);
|
||||
if (elem) elem.focus();
|
||||
}
|
||||
});
|
||||
/* @license-end */
|
||||
</script>
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
4
src/mdw/trace/doxygen/output/html/search/all_3.js
Normal file
@ -0,0 +1,4 @@
|
||||
var searchData=
|
||||
[
|
||||
['trace_0',['Trace',['../index.html',1,'(Global Namespace)'],['../class_trace.html',1,'Trace']]]
|
||||
];
|
37
src/mdw/trace/doxygen/output/html/search/all_4.html
Normal file
@ -0,0 +1,37 @@
|
||||
<!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><title></title>
|
||||
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
|
||||
<meta name="generator" content="Doxygen 1.9.2"/>
|
||||
<link rel="stylesheet" type="text/css" href="search.css"/>
|
||||
<script type="text/javascript" src="all_4.js"></script>
|
||||
<script type="text/javascript" src="search.js"></script>
|
||||
</head>
|
||||
<body class="SRPage">
|
||||
<div id="SRIndex">
|
||||
<div class="SRStatus" id="Loading">Loading...</div>
|
||||
<div id="SRResults"></div>
|
||||
<script type="text/javascript">
|
||||
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&dn=expat.txt MIT */
|
||||
createResults();
|
||||
/* @license-end */
|
||||
</script>
|
||||
<div class="SRStatus" id="Searching">Searching...</div>
|
||||
<div class="SRStatus" id="NoMatches">No Matches</div>
|
||||
<script type="text/javascript">
|
||||
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&dn=expat.txt MIT */
|
||||
document.getElementById("Loading").style.display="none";
|
||||
document.getElementById("NoMatches").style.display="none";
|
||||
var searchResults = new SearchResults("searchResults");
|
||||
searchResults.Search();
|
||||
window.addEventListener("message", function(event) {
|
||||
if (event.data == "take_focus") {
|
||||
var elem = searchResults.NavNext(0);
|
||||
if (elem) elem.focus();
|
||||
}
|
||||
});
|
||||
/* @license-end */
|
||||
</script>
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
4
src/mdw/trace/doxygen/output/html/search/all_4.js
Normal file
@ -0,0 +1,4 @@
|
||||
var searchData=
|
||||
[
|
||||
['unlock_0',['unlock',['../class_trace.html#ae79ce0081ba22864700a87053bfbc5f6',1,'Trace']]]
|
||||
];
|
37
src/mdw/trace/doxygen/output/html/search/classes_0.html
Normal file
@ -0,0 +1,37 @@
|
||||
<!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><title></title>
|
||||
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
|
||||
<meta name="generator" content="Doxygen 1.9.2"/>
|
||||
<link rel="stylesheet" type="text/css" href="search.css"/>
|
||||
<script type="text/javascript" src="classes_0.js"></script>
|
||||
<script type="text/javascript" src="search.js"></script>
|
||||
</head>
|
||||
<body class="SRPage">
|
||||
<div id="SRIndex">
|
||||
<div class="SRStatus" id="Loading">Loading...</div>
|
||||
<div id="SRResults"></div>
|
||||
<script type="text/javascript">
|
||||
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&dn=expat.txt MIT */
|
||||
createResults();
|
||||
/* @license-end */
|
||||
</script>
|
||||
<div class="SRStatus" id="Searching">Searching...</div>
|
||||
<div class="SRStatus" id="NoMatches">No Matches</div>
|
||||
<script type="text/javascript">
|
||||
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&dn=expat.txt MIT */
|
||||
document.getElementById("Loading").style.display="none";
|
||||
document.getElementById("NoMatches").style.display="none";
|
||||
var searchResults = new SearchResults("searchResults");
|
||||
searchResults.Search();
|
||||
window.addEventListener("message", function(event) {
|
||||
if (event.data == "take_focus") {
|
||||
var elem = searchResults.NavNext(0);
|
||||
if (elem) elem.focus();
|
||||
}
|
||||
});
|
||||
/* @license-end */
|
||||
</script>
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
4
src/mdw/trace/doxygen/output/html/search/classes_0.js
Normal file
@ -0,0 +1,4 @@
|
||||
var searchData=
|
||||
[
|
||||
['trace_0',['Trace',['../class_trace.html',1,'']]]
|
||||
];
|
31
src/mdw/trace/doxygen/output/html/search/close.svg
Normal file
@ -0,0 +1,31 @@
|
||||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<svg
|
||||
xmlns:dc="http://purl.org/dc/elements/1.1/"
|
||||
xmlns:cc="http://creativecommons.org/ns#"
|
||||
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
|
||||
xmlns:svg="http://www.w3.org/2000/svg"
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
viewBox="0 0 11 11"
|
||||
height="11"
|
||||
width="11"
|
||||
id="svg2"
|
||||
version="1.1">
|
||||
<metadata
|
||||
id="metadata8">
|
||||
<rdf:RDF>
|
||||
<cc:Work
|
||||
rdf:about="">
|
||||
<dc:format>image/svg+xml</dc:format>
|
||||
<dc:type
|
||||
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
|
||||
<dc:title></dc:title>
|
||||
</cc:Work>
|
||||
</rdf:RDF>
|
||||
</metadata>
|
||||
<defs
|
||||
id="defs6" />
|
||||
<path
|
||||
id="path12"
|
||||
d="M 5.5 0.5 A 5 5 0 0 0 0.5 5.5 A 5 5 0 0 0 5.5 10.5 A 5 5 0 0 0 10.5 5.5 A 5 5 0 0 0 5.5 0.5 z M 3.5820312 3 A 0.58291923 0.58291923 0 0 1 4 3.1757812 L 5.5 4.6757812 L 7 3.1757812 A 0.58291923 0.58291923 0 0 1 7.4003906 3 A 0.58291923 0.58291923 0 0 1 7.8242188 4 L 6.3242188 5.5 L 7.8242188 7 A 0.58291923 0.58291923 0 1 1 7 7.8242188 L 5.5 6.3242188 L 4 7.8242188 A 0.58291923 0.58291923 0 1 1 3.1757812 7 L 4.6757812 5.5 L 3.1757812 4 A 0.58291923 0.58291923 0 0 1 3.5820312 3 z "
|
||||
style="stroke-width:1.09870648;fill:#bababa;fill-opacity:1" />
|
||||
</svg>
|
After Width: | Height: | Size: 1.3 KiB |
37
src/mdw/trace/doxygen/output/html/search/functions_0.html
Normal file
@ -0,0 +1,37 @@
|
||||
<!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><title></title>
|
||||
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
|
||||
<meta name="generator" content="Doxygen 1.9.2"/>
|
||||
<link rel="stylesheet" type="text/css" href="search.css"/>
|
||||
<script type="text/javascript" src="functions_0.js"></script>
|
||||
<script type="text/javascript" src="search.js"></script>
|
||||
</head>
|
||||
<body class="SRPage">
|
||||
<div id="SRIndex">
|
||||
<div class="SRStatus" id="Loading">Loading...</div>
|
||||
<div id="SRResults"></div>
|
||||
<script type="text/javascript">
|
||||
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&dn=expat.txt MIT */
|
||||
createResults();
|
||||
/* @license-end */
|
||||
</script>
|
||||
<div class="SRStatus" id="Searching">Searching...</div>
|
||||
<div class="SRStatus" id="NoMatches">No Matches</div>
|
||||
<script type="text/javascript">
|
||||
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&dn=expat.txt MIT */
|
||||
document.getElementById("Loading").style.display="none";
|
||||
document.getElementById("NoMatches").style.display="none";
|
||||
var searchResults = new SearchResults("searchResults");
|
||||
searchResults.Search();
|
||||
window.addEventListener("message", function(event) {
|
||||
if (event.data == "take_focus") {
|
||||
var elem = searchResults.NavNext(0);
|
||||
if (elem) elem.focus();
|
||||
}
|
||||
});
|
||||
/* @license-end */
|
||||
</script>
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
4
src/mdw/trace/doxygen/output/html/search/functions_0.js
Normal file
@ -0,0 +1,4 @@
|
||||
var searchData=
|
||||
[
|
||||
['initialize_0',['initialize',['../class_trace.html#a6a42778d9401b9e90605475ecffeb8a2',1,'Trace']]]
|
||||
];
|
37
src/mdw/trace/doxygen/output/html/search/functions_1.html
Normal file
@ -0,0 +1,37 @@
|
||||
<!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><title></title>
|
||||
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
|
||||
<meta name="generator" content="Doxygen 1.9.2"/>
|
||||
<link rel="stylesheet" type="text/css" href="search.css"/>
|
||||
<script type="text/javascript" src="functions_1.js"></script>
|
||||
<script type="text/javascript" src="search.js"></script>
|
||||
</head>
|
||||
<body class="SRPage">
|
||||
<div id="SRIndex">
|
||||
<div class="SRStatus" id="Loading">Loading...</div>
|
||||
<div id="SRResults"></div>
|
||||
<script type="text/javascript">
|
||||
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&dn=expat.txt MIT */
|
||||
createResults();
|
||||
/* @license-end */
|
||||
</script>
|
||||
<div class="SRStatus" id="Searching">Searching...</div>
|
||||
<div class="SRStatus" id="NoMatches">No Matches</div>
|
||||
<script type="text/javascript">
|
||||
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&dn=expat.txt MIT */
|
||||
document.getElementById("Loading").style.display="none";
|
||||
document.getElementById("NoMatches").style.display="none";
|
||||
var searchResults = new SearchResults("searchResults");
|
||||
searchResults.Search();
|
||||
window.addEventListener("message", function(event) {
|
||||
if (event.data == "take_focus") {
|
||||
var elem = searchResults.NavNext(0);
|
||||
if (elem) elem.focus();
|
||||
}
|
||||
});
|
||||
/* @license-end */
|
||||
</script>
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
4
src/mdw/trace/doxygen/output/html/search/functions_1.js
Normal file
@ -0,0 +1,4 @@
|
||||
var searchData=
|
||||
[
|
||||
['lock_0',['lock',['../class_trace.html#a1de337a9e4820514c0839c1efb3ff936',1,'Trace']]]
|
||||
];
|
37
src/mdw/trace/doxygen/output/html/search/functions_2.html
Normal file
@ -0,0 +1,37 @@
|
||||
<!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><title></title>
|
||||
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
|
||||
<meta name="generator" content="Doxygen 1.9.2"/>
|
||||
<link rel="stylesheet" type="text/css" href="search.css"/>
|
||||
<script type="text/javascript" src="functions_2.js"></script>
|
||||
<script type="text/javascript" src="search.js"></script>
|
||||
</head>
|
||||
<body class="SRPage">
|
||||
<div id="SRIndex">
|
||||
<div class="SRStatus" id="Loading">Loading...</div>
|
||||
<div id="SRResults"></div>
|
||||
<script type="text/javascript">
|
||||
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&dn=expat.txt MIT */
|
||||
createResults();
|
||||
/* @license-end */
|
||||
</script>
|
||||
<div class="SRStatus" id="Searching">Searching...</div>
|
||||
<div class="SRStatus" id="NoMatches">No Matches</div>
|
||||
<script type="text/javascript">
|
||||
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&dn=expat.txt MIT */
|
||||
document.getElementById("Loading").style.display="none";
|
||||
document.getElementById("NoMatches").style.display="none";
|
||||
var searchResults = new SearchResults("searchResults");
|
||||
searchResults.Search();
|
||||
window.addEventListener("message", function(event) {
|
||||
if (event.data == "take_focus") {
|
||||
var elem = searchResults.NavNext(0);
|
||||
if (elem) elem.focus();
|
||||
}
|
||||
});
|
||||
/* @license-end */
|
||||
</script>
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
4
src/mdw/trace/doxygen/output/html/search/functions_2.js
Normal file
@ -0,0 +1,4 @@
|
||||
var searchData=
|
||||
[
|
||||
['out_0',['out',['../class_trace.html#a602aec03cad6466d892034582794de33',1,'Trace::out(string str)'],['../class_trace.html#a2c0dd29f5f94cfe01be01d414a2d18ba',1,'Trace::out(const char *format,...)']]]
|
||||
];
|
37
src/mdw/trace/doxygen/output/html/search/functions_3.html
Normal file
@ -0,0 +1,37 @@
|
||||
<!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><title></title>
|
||||
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
|
||||
<meta name="generator" content="Doxygen 1.9.2"/>
|
||||
<link rel="stylesheet" type="text/css" href="search.css"/>
|
||||
<script type="text/javascript" src="functions_3.js"></script>
|
||||
<script type="text/javascript" src="search.js"></script>
|
||||
</head>
|
||||
<body class="SRPage">
|
||||
<div id="SRIndex">
|
||||
<div class="SRStatus" id="Loading">Loading...</div>
|
||||
<div id="SRResults"></div>
|
||||
<script type="text/javascript">
|
||||
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&dn=expat.txt MIT */
|
||||
createResults();
|
||||
/* @license-end */
|
||||
</script>
|
||||
<div class="SRStatus" id="Searching">Searching...</div>
|
||||
<div class="SRStatus" id="NoMatches">No Matches</div>
|
||||
<script type="text/javascript">
|
||||
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&dn=expat.txt MIT */
|
||||
document.getElementById("Loading").style.display="none";
|
||||
document.getElementById("NoMatches").style.display="none";
|
||||
var searchResults = new SearchResults("searchResults");
|
||||
searchResults.Search();
|
||||
window.addEventListener("message", function(event) {
|
||||
if (event.data == "take_focus") {
|
||||
var elem = searchResults.NavNext(0);
|
||||
if (elem) elem.focus();
|
||||
}
|
||||
});
|
||||
/* @license-end */
|
||||
</script>
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
4
src/mdw/trace/doxygen/output/html/search/functions_3.js
Normal file
@ -0,0 +1,4 @@
|
||||
var searchData=
|
||||
[
|
||||
['unlock_0',['unlock',['../class_trace.html#ae79ce0081ba22864700a87053bfbc5f6',1,'Trace']]]
|
||||
];
|
74
src/mdw/trace/doxygen/output/html/search/mag_sel.svg
Normal file
@ -0,0 +1,74 @@
|
||||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<!-- Created with Inkscape (http://www.inkscape.org/) -->
|
||||
|
||||
<svg
|
||||
xmlns:dc="http://purl.org/dc/elements/1.1/"
|
||||
xmlns:cc="http://creativecommons.org/ns#"
|
||||
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
|
||||
xmlns:svg="http://www.w3.org/2000/svg"
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
|
||||
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
|
||||
version="1.1"
|
||||
id="svg2"
|
||||
width="20"
|
||||
height="19"
|
||||
viewBox="0 0 20 19"
|
||||
sodipodi:docname="mag_sel.svg"
|
||||
inkscape:version="0.92.5 (2060ec1f9f, 2020-04-08)">
|
||||
<metadata
|
||||
id="metadata8">
|
||||
<rdf:RDF>
|
||||
<cc:Work
|
||||
rdf:about="">
|
||||
<dc:format>image/svg+xml</dc:format>
|
||||
<dc:type
|
||||
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
|
||||
<dc:title></dc:title>
|
||||
</cc:Work>
|
||||
</rdf:RDF>
|
||||
</metadata>
|
||||
<defs
|
||||
id="defs6" />
|
||||
<sodipodi:namedview
|
||||
pagecolor="#ffffff"
|
||||
bordercolor="#666666"
|
||||
borderopacity="1"
|
||||
objecttolerance="10"
|
||||
gridtolerance="10"
|
||||
guidetolerance="10"
|
||||
inkscape:pageopacity="0"
|
||||
inkscape:pageshadow="2"
|
||||
inkscape:window-width="1920"
|
||||
inkscape:window-height="2096"
|
||||
id="namedview4"
|
||||
showgrid="false"
|
||||
fit-margin-top="0"
|
||||
fit-margin-left="0"
|
||||
fit-margin-right="0"
|
||||
fit-margin-bottom="0"
|
||||
inkscape:zoom="32"
|
||||
inkscape:cx="5.9792688"
|
||||
inkscape:cy="1.1436277"
|
||||
inkscape:window-x="1920"
|
||||
inkscape:window-y="27"
|
||||
inkscape:window-maximized="0"
|
||||
inkscape:current-layer="svg2" />
|
||||
<circle
|
||||
style="fill:#000000;fill-opacity:0;stroke:#656565;stroke-width:1.4;stroke-opacity:1;stroke-miterlimit:4;stroke-dasharray:none"
|
||||
id="path4611"
|
||||
cx="5.5"
|
||||
cy="8.5"
|
||||
r="3.5" />
|
||||
<path
|
||||
style="fill:#656565;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
|
||||
d="M 11,7 13.5,10 16,7 Z"
|
||||
id="path4609"
|
||||
inkscape:connector-curvature="0"
|
||||
sodipodi:nodetypes="cccc" />
|
||||
<path
|
||||
style="fill:none;stroke:#656565;stroke-width:1.4;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
|
||||
d="m 8.1085854,11.109059 2.7823556,2.782356"
|
||||
id="path4630"
|
||||
inkscape:connector-curvature="0" />
|
||||
</svg>
|
After Width: | Height: | Size: 2.3 KiB |
13
src/mdw/trace/doxygen/output/html/search/nomatches.html
Normal file
@ -0,0 +1,13 @@
|
||||
<!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><title></title>
|
||||
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
|
||||
<link rel="stylesheet" type="text/css" href="search.css"/>
|
||||
<script type="text/javascript" src="search.js"></script>
|
||||
</head>
|
||||
<body class="SRPage">
|
||||
<div id="SRIndex">
|
||||
<div class="SRStatus" id="NoMatches">No Matches</div>
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
37
src/mdw/trace/doxygen/output/html/search/pages_0.html
Normal file
@ -0,0 +1,37 @@
|
||||
<!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><title></title>
|
||||
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
|
||||
<meta name="generator" content="Doxygen 1.9.2"/>
|
||||
<link rel="stylesheet" type="text/css" href="search.css"/>
|
||||
<script type="text/javascript" src="pages_0.js"></script>
|
||||
<script type="text/javascript" src="search.js"></script>
|
||||
</head>
|
||||
<body class="SRPage">
|
||||
<div id="SRIndex">
|
||||
<div class="SRStatus" id="Loading">Loading...</div>
|
||||
<div id="SRResults"></div>
|
||||
<script type="text/javascript">
|
||||
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&dn=expat.txt MIT */
|
||||
createResults();
|
||||
/* @license-end */
|
||||
</script>
|
||||
<div class="SRStatus" id="Searching">Searching...</div>
|
||||
<div class="SRStatus" id="NoMatches">No Matches</div>
|
||||
<script type="text/javascript">
|
||||
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&dn=expat.txt MIT */
|
||||
document.getElementById("Loading").style.display="none";
|
||||
document.getElementById("NoMatches").style.display="none";
|
||||
var searchResults = new SearchResults("searchResults");
|
||||
searchResults.Search();
|
||||
window.addEventListener("message", function(event) {
|
||||
if (event.data == "take_focus") {
|
||||
var elem = searchResults.NavNext(0);
|
||||
if (elem) elem.focus();
|
||||
}
|
||||
});
|
||||
/* @license-end */
|
||||
</script>
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
4
src/mdw/trace/doxygen/output/html/search/pages_0.js
Normal file
@ -0,0 +1,4 @@
|
||||
var searchData=
|
||||
[
|
||||
['trace_0',['Trace',['../index.html',1,'']]]
|
||||
];
|
263
src/mdw/trace/doxygen/output/html/search/search.css
Normal file
@ -0,0 +1,263 @@
|
||||
/*---------------- Search Box */
|
||||
|
||||
#MSearchBox {
|
||||
white-space : nowrap;
|
||||
background: white;
|
||||
border-radius: 0.65em;
|
||||
box-shadow: inset 0.5px 0.5px 3px 0px #555;
|
||||
z-index: 102;
|
||||
}
|
||||
|
||||
#MSearchBox .left {
|
||||
display: inline-block;
|
||||
vertical-align: middle;
|
||||
height: 1.4em;
|
||||
}
|
||||
|
||||
#MSearchSelect {
|
||||
display: inline-block;
|
||||
vertical-align: middle;
|
||||
height: 19px;
|
||||
padding: 0 0 0 0.3em;
|
||||
margin: 0;
|
||||
}
|
||||
|
||||
#MSearchField {
|
||||
display: inline-block;
|
||||
vertical-align: middle;
|
||||
width: 7.5em;
|
||||
height: 19px;
|
||||
margin: 0 0.15em;
|
||||
padding: 0;
|
||||
line-height: 1em;
|
||||
border:none;
|
||||
color: #909090;
|
||||
outline: none;
|
||||
font-family: Arial, Verdana, sans-serif;
|
||||
-webkit-border-radius: 0px;
|
||||
border-radius: 0px;
|
||||
background: none;
|
||||
}
|
||||
|
||||
@media(hover: none) {
|
||||
/* to avoid zooming on iOS */
|
||||
#MSearchField {
|
||||
font-size: 16px;
|
||||
}
|
||||
}
|
||||
|
||||
#MSearchBox .right {
|
||||
display: inline-block;
|
||||
vertical-align: middle;
|
||||
width: 1.4em;
|
||||
height: 1.4em;
|
||||
}
|
||||
|
||||
#MSearchClose {
|
||||
display: none;
|
||||
font-size: inherit;
|
||||
background : none;
|
||||
border: none;
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
outline: none;
|
||||
|
||||
}
|
||||
|
||||
#MSearchCloseImg {
|
||||
height: 1.4em;
|
||||
padding: 0.3em;
|
||||
margin: 0;
|
||||
}
|
||||
|
||||
.MSearchBoxActive #MSearchField {
|
||||
color: #000000;
|
||||
}
|
||||
|
||||
#main-menu > li:last-child {
|
||||
/* This <li> object is the parent of the search bar */
|
||||
display: flex;
|
||||
justify-content: center;
|
||||
align-items: center;
|
||||
height: 36px;
|
||||
margin-right: 1em;
|
||||
}
|
||||
|
||||
/*---------------- Search filter selection */
|
||||
|
||||
#MSearchSelectWindow {
|
||||
display: none;
|
||||
position: absolute;
|
||||
left: 0; top: 0;
|
||||
border: 1px solid #90A5CE;
|
||||
background-color: #F9FAFC;
|
||||
z-index: 10001;
|
||||
padding-top: 4px;
|
||||
padding-bottom: 4px;
|
||||
-moz-border-radius: 4px;
|
||||
-webkit-border-top-left-radius: 4px;
|
||||
-webkit-border-top-right-radius: 4px;
|
||||
-webkit-border-bottom-left-radius: 4px;
|
||||
-webkit-border-bottom-right-radius: 4px;
|
||||
-webkit-box-shadow: 5px 5px 5px rgba(0, 0, 0, 0.15);
|
||||
}
|
||||
|
||||
.SelectItem {
|
||||
font: 8pt Arial, Verdana, sans-serif;
|
||||
padding-left: 2px;
|
||||
padding-right: 12px;
|
||||
border: 0px;
|
||||
}
|
||||
|
||||
span.SelectionMark {
|
||||
margin-right: 4px;
|
||||
font-family: monospace;
|
||||
outline-style: none;
|
||||
text-decoration: none;
|
||||
}
|
||||
|
||||
a.SelectItem {
|
||||
display: block;
|
||||
outline-style: none;
|
||||
color: #000000;
|
||||
text-decoration: none;
|
||||
padding-left: 6px;
|
||||
padding-right: 12px;
|
||||
}
|
||||
|
||||
a.SelectItem:focus,
|
||||
a.SelectItem:active {
|
||||
color: #000000;
|
||||
outline-style: none;
|
||||
text-decoration: none;
|
||||
}
|
||||
|
||||
a.SelectItem:hover {
|
||||
color: #FFFFFF;
|
||||
background-color: #3D578C;
|
||||
outline-style: none;
|
||||
text-decoration: none;
|
||||
cursor: pointer;
|
||||
display: block;
|
||||
}
|
||||
|
||||
/*---------------- Search results window */
|
||||
|
||||
iframe#MSearchResults {
|
||||
/*width: 60ex;*/
|
||||
height: 15em;
|
||||
}
|
||||
|
||||
#MSearchResultsWindow {
|
||||
display: none;
|
||||
position: absolute;
|
||||
left: 0; top: 0;
|
||||
border: 1px solid #000;
|
||||
background-color: #EEF1F7;
|
||||
z-index:10000;
|
||||
}
|
||||
|
||||
/* ----------------------------------- */
|
||||
|
||||
|
||||
#SRIndex {
|
||||
clear:both;
|
||||
padding-bottom: 15px;
|
||||
}
|
||||
|
||||
.SREntry {
|
||||
font-size: 10pt;
|
||||
padding-left: 1ex;
|
||||
}
|
||||
|
||||
.SRPage .SREntry {
|
||||
font-size: 8pt;
|
||||
padding: 1px 5px;
|
||||
}
|
||||
|
||||
body.SRPage {
|
||||
margin: 5px 2px;
|
||||
}
|
||||
|
||||
.SRChildren {
|
||||
padding-left: 3ex; padding-bottom: .5em
|
||||
}
|
||||
|
||||
.SRPage .SRChildren {
|
||||
display: none;
|
||||
}
|
||||
|
||||
.SRSymbol {
|
||||
font-weight: bold;
|
||||
color: #425E97;
|
||||
font-family: Arial, Verdana, sans-serif;
|
||||
text-decoration: none;
|
||||
outline: none;
|
||||
}
|
||||
|
||||
a.SRScope {
|
||||
display: block;
|
||||
color: #425E97;
|
||||
font-family: Arial, Verdana, sans-serif;
|
||||
text-decoration: none;
|
||||
outline: none;
|
||||
}
|
||||
|
||||
a.SRSymbol:focus, a.SRSymbol:active,
|
||||
a.SRScope:focus, a.SRScope:active {
|
||||
text-decoration: underline;
|
||||
}
|
||||
|
||||
span.SRScope {
|
||||
padding-left: 4px;
|
||||
font-family: Arial, Verdana, sans-serif;
|
||||
}
|
||||
|
||||
.SRPage .SRStatus {
|
||||
padding: 2px 5px;
|
||||
font-size: 8pt;
|
||||
font-style: italic;
|
||||
font-family: Arial, Verdana, sans-serif;
|
||||
}
|
||||
|
||||
.SRResult {
|
||||
display: none;
|
||||
}
|
||||
|
||||
div.searchresults {
|
||||
margin-left: 10px;
|
||||
margin-right: 10px;
|
||||
}
|
||||
|
||||
/*---------------- External search page results */
|
||||
|
||||
.searchresult {
|
||||
background-color: #F0F3F8;
|
||||
}
|
||||
|
||||
.pages b {
|
||||
color: white;
|
||||
padding: 5px 5px 3px 5px;
|
||||
background-image: url("../tab_a.png");
|
||||
background-repeat: repeat-x;
|
||||
text-shadow: 0 1px 1px #000000;
|
||||
}
|
||||
|
||||
.pages {
|
||||
line-height: 17px;
|
||||
margin-left: 4px;
|
||||
text-decoration: none;
|
||||
}
|
||||
|
||||
.hl {
|
||||
font-weight: bold;
|
||||
}
|
||||
|
||||
#searchresults {
|
||||
margin-bottom: 20px;
|
||||
}
|
||||
|
||||
.searchpages {
|
||||
margin-top: 10px;
|
||||
}
|
||||
|
794
src/mdw/trace/doxygen/output/html/search/search.js
Normal file
@ -0,0 +1,794 @@
|
||||
/*
|
||||
@licstart The following is the entire license notice for the JavaScript code in this file.
|
||||
|
||||
The MIT License (MIT)
|
||||
|
||||
Copyright (C) 1997-2020 by Dimitri van Heesch
|
||||
|
||||
Permission is hereby granted, free of charge, to any person obtaining a copy of this software
|
||||
and associated documentation files (the "Software"), to deal in the Software without restriction,
|
||||
including without limitation the rights to use, copy, modify, merge, publish, distribute,
|
||||
sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is
|
||||
furnished to do so, subject to the following conditions:
|
||||
|
||||
The above copyright notice and this permission notice shall be included in all copies or
|
||||
substantial portions of the Software.
|
||||
|
||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING
|
||||
BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
|
||||
NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
|
||||
DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
||||
|
||||
@licend The above is the entire license notice for the JavaScript code in this file
|
||||
*/
|
||||
function convertToId(search)
|
||||
{
|
||||
var result = '';
|
||||
for (i=0;i<search.length;i++)
|
||||
{
|
||||
var c = search.charAt(i);
|
||||
var cn = c.charCodeAt(0);
|
||||
if (c.match(/[a-z0-9\u0080-\uFFFF]/))
|
||||
{
|
||||
result+=c;
|
||||
}
|
||||
else if (cn<16)
|
||||
{
|
||||
result+="_0"+cn.toString(16);
|
||||
}
|
||||
else
|
||||
{
|
||||
result+="_"+cn.toString(16);
|
||||
}
|
||||
}
|
||||
return result;
|
||||
}
|
||||
|
||||
function getXPos(item)
|
||||
{
|
||||
var x = 0;
|
||||
if (item.offsetWidth)
|
||||
{
|
||||
while (item && item!=document.body)
|
||||
{
|
||||
x += item.offsetLeft;
|
||||
item = item.offsetParent;
|
||||
}
|
||||
}
|
||||
return x;
|
||||
}
|
||||
|
||||
function getYPos(item)
|
||||
{
|
||||
var y = 0;
|
||||
if (item.offsetWidth)
|
||||
{
|
||||
while (item && item!=document.body)
|
||||
{
|
||||
y += item.offsetTop;
|
||||
item = item.offsetParent;
|
||||
}
|
||||
}
|
||||
return y;
|
||||
}
|
||||
|
||||
/* A class handling everything associated with the search panel.
|
||||
|
||||
Parameters:
|
||||
name - The name of the global variable that will be
|
||||
storing this instance. Is needed to be able to set timeouts.
|
||||
resultPath - path to use for external files
|
||||
*/
|
||||
function SearchBox(name, resultsPath, label, extension)
|
||||
{
|
||||
if (!name || !resultsPath) { alert("Missing parameters to SearchBox."); }
|
||||
if (!extension || extension == "") { extension = ".html"; }
|
||||
|
||||
// ---------- Instance variables
|
||||
this.name = name;
|
||||
this.resultsPath = resultsPath;
|
||||
this.keyTimeout = 0;
|
||||
this.keyTimeoutLength = 500;
|
||||
this.closeSelectionTimeout = 300;
|
||||
this.lastSearchValue = "";
|
||||
this.lastResultsPage = "";
|
||||
this.hideTimeout = 0;
|
||||
this.searchIndex = 0;
|
||||
this.searchActive = false;
|
||||
this.searchLabel = label;
|
||||
this.extension = extension;
|
||||
|
||||
// ----------- DOM Elements
|
||||
|
||||
this.DOMSearchField = function()
|
||||
{ return document.getElementById("MSearchField"); }
|
||||
|
||||
this.DOMSearchSelect = function()
|
||||
{ return document.getElementById("MSearchSelect"); }
|
||||
|
||||
this.DOMSearchSelectWindow = function()
|
||||
{ return document.getElementById("MSearchSelectWindow"); }
|
||||
|
||||
this.DOMPopupSearchResults = function()
|
||||
{ return document.getElementById("MSearchResults"); }
|
||||
|
||||
this.DOMPopupSearchResultsWindow = function()
|
||||
{ return document.getElementById("MSearchResultsWindow"); }
|
||||
|
||||
this.DOMSearchClose = function()
|
||||
{ return document.getElementById("MSearchClose"); }
|
||||
|
||||
this.DOMSearchBox = function()
|
||||
{ return document.getElementById("MSearchBox"); }
|
||||
|
||||
// ------------ Event Handlers
|
||||
|
||||
// Called when focus is added or removed from the search field.
|
||||
this.OnSearchFieldFocus = function(isActive)
|
||||
{
|
||||
this.Activate(isActive);
|
||||
}
|
||||
|
||||
this.OnSearchSelectShow = function()
|
||||
{
|
||||
var searchSelectWindow = this.DOMSearchSelectWindow();
|
||||
var searchField = this.DOMSearchSelect();
|
||||
|
||||
var left = getXPos(searchField);
|
||||
var top = getYPos(searchField);
|
||||
top += searchField.offsetHeight;
|
||||
|
||||
// show search selection popup
|
||||
searchSelectWindow.style.display='block';
|
||||
searchSelectWindow.style.left = left + 'px';
|
||||
searchSelectWindow.style.top = top + 'px';
|
||||
|
||||
// stop selection hide timer
|
||||
if (this.hideTimeout)
|
||||
{
|
||||
clearTimeout(this.hideTimeout);
|
||||
this.hideTimeout=0;
|
||||
}
|
||||
return false; // to avoid "image drag" default event
|
||||
}
|
||||
|
||||
this.OnSearchSelectHide = function()
|
||||
{
|
||||
this.hideTimeout = setTimeout(this.name +".CloseSelectionWindow()",
|
||||
this.closeSelectionTimeout);
|
||||
}
|
||||
|
||||
// Called when the content of the search field is changed.
|
||||
this.OnSearchFieldChange = function(evt)
|
||||
{
|
||||
if (this.keyTimeout) // kill running timer
|
||||
{
|
||||
clearTimeout(this.keyTimeout);
|
||||
this.keyTimeout = 0;
|
||||
}
|
||||
|
||||
var e = (evt) ? evt : window.event; // for IE
|
||||
if (e.keyCode==40 || e.keyCode==13)
|
||||
{
|
||||
if (e.shiftKey==1)
|
||||
{
|
||||
this.OnSearchSelectShow();
|
||||
var win=this.DOMSearchSelectWindow();
|
||||
for (i=0;i<win.childNodes.length;i++)
|
||||
{
|
||||
var child = win.childNodes[i]; // get span within a
|
||||
if (child.className=='SelectItem')
|
||||
{
|
||||
child.focus();
|
||||
return;
|
||||
}
|
||||
}
|
||||
return;
|
||||
}
|
||||
else
|
||||
{
|
||||
window.frames.MSearchResults.postMessage("take_focus", "*");
|
||||
}
|
||||
}
|
||||
else if (e.keyCode==27) // Escape out of the search field
|
||||
{
|
||||
this.DOMSearchField().blur();
|
||||
this.DOMPopupSearchResultsWindow().style.display = 'none';
|
||||
this.DOMSearchClose().style.display = 'none';
|
||||
this.lastSearchValue = '';
|
||||
this.Activate(false);
|
||||
return;
|
||||
}
|
||||
|
||||
// strip whitespaces
|
||||
var searchValue = this.DOMSearchField().value.replace(/ +/g, "");
|
||||
|
||||
if (searchValue != this.lastSearchValue) // search value has changed
|
||||
{
|
||||
if (searchValue != "") // non-empty search
|
||||
{
|
||||
// set timer for search update
|
||||
this.keyTimeout = setTimeout(this.name + '.Search()',
|
||||
this.keyTimeoutLength);
|
||||
}
|
||||
else // empty search field
|
||||
{
|
||||
this.DOMPopupSearchResultsWindow().style.display = 'none';
|
||||
this.DOMSearchClose().style.display = 'none';
|
||||
this.lastSearchValue = '';
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
this.SelectItemCount = function(id)
|
||||
{
|
||||
var count=0;
|
||||
var win=this.DOMSearchSelectWindow();
|
||||
for (i=0;i<win.childNodes.length;i++)
|
||||
{
|
||||
var child = win.childNodes[i]; // get span within a
|
||||
if (child.className=='SelectItem')
|
||||
{
|
||||
count++;
|
||||
}
|
||||
}
|
||||
return count;
|
||||
}
|
||||
|
||||
this.SelectItemSet = function(id)
|
||||
{
|
||||
var i,j=0;
|
||||
var win=this.DOMSearchSelectWindow();
|
||||
for (i=0;i<win.childNodes.length;i++)
|
||||
{
|
||||
var child = win.childNodes[i]; // get span within a
|
||||
if (child.className=='SelectItem')
|
||||
{
|
||||
var node = child.firstChild;
|
||||
if (j==id)
|
||||
{
|
||||
node.innerHTML='•';
|
||||
}
|
||||
else
|
||||
{
|
||||
node.innerHTML=' ';
|
||||
}
|
||||
j++;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// Called when an search filter selection is made.
|
||||
// set item with index id as the active item
|
||||
this.OnSelectItem = function(id)
|
||||
{
|
||||
this.searchIndex = id;
|
||||
this.SelectItemSet(id);
|
||||
var searchValue = this.DOMSearchField().value.replace(/ +/g, "");
|
||||
if (searchValue!="" && this.searchActive) // something was found -> do a search
|
||||
{
|
||||
this.Search();
|
||||
}
|
||||
}
|
||||
|
||||
this.OnSearchSelectKey = function(evt)
|
||||
{
|
||||
var e = (evt) ? evt : window.event; // for IE
|
||||
if (e.keyCode==40 && this.searchIndex<this.SelectItemCount()) // Down
|
||||
{
|
||||
this.searchIndex++;
|
||||
this.OnSelectItem(this.searchIndex);
|
||||
}
|
||||
else if (e.keyCode==38 && this.searchIndex>0) // Up
|
||||
{
|
||||
this.searchIndex--;
|
||||
this.OnSelectItem(this.searchIndex);
|
||||
}
|
||||
else if (e.keyCode==13 || e.keyCode==27)
|
||||
{
|
||||
this.OnSelectItem(this.searchIndex);
|
||||
this.CloseSelectionWindow();
|
||||
this.DOMSearchField().focus();
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
// --------- Actions
|
||||
|
||||
// Closes the results window.
|
||||
this.CloseResultsWindow = function()
|
||||
{
|
||||
this.DOMPopupSearchResultsWindow().style.display = 'none';
|
||||
this.DOMSearchClose().style.display = 'none';
|
||||
this.Activate(false);
|
||||
}
|
||||
|
||||
this.CloseSelectionWindow = function()
|
||||
{
|
||||
this.DOMSearchSelectWindow().style.display = 'none';
|
||||
}
|
||||
|
||||
// Performs a search.
|
||||
this.Search = function()
|
||||
{
|
||||
this.keyTimeout = 0;
|
||||
|
||||
// strip leading whitespace
|
||||
var searchValue = this.DOMSearchField().value.replace(/^ +/, "");
|
||||
|
||||
var code = searchValue.toLowerCase().charCodeAt(0);
|
||||
var idxChar = searchValue.substr(0, 1).toLowerCase();
|
||||
if ( 0xD800 <= code && code <= 0xDBFF && searchValue > 1) // surrogate pair
|
||||
{
|
||||
idxChar = searchValue.substr(0, 2);
|
||||
}
|
||||
|
||||
var resultsPage;
|
||||
var resultsPageWithSearch;
|
||||
var hasResultsPage;
|
||||
|
||||
var idx = indexSectionsWithContent[this.searchIndex].indexOf(idxChar);
|
||||
if (idx!=-1)
|
||||
{
|
||||
var hexCode=idx.toString(16);
|
||||
resultsPage = this.resultsPath + '/' + indexSectionNames[this.searchIndex] + '_' + hexCode + this.extension;
|
||||
resultsPageWithSearch = resultsPage+'?'+escape(searchValue);
|
||||
hasResultsPage = true;
|
||||
}
|
||||
else // nothing available for this search term
|
||||
{
|
||||
resultsPage = this.resultsPath + '/nomatches' + this.extension;
|
||||
resultsPageWithSearch = resultsPage;
|
||||
hasResultsPage = false;
|
||||
}
|
||||
|
||||
window.frames.MSearchResults.location = resultsPageWithSearch;
|
||||
var domPopupSearchResultsWindow = this.DOMPopupSearchResultsWindow();
|
||||
|
||||
if (domPopupSearchResultsWindow.style.display!='block')
|
||||
{
|
||||
var domSearchBox = this.DOMSearchBox();
|
||||
this.DOMSearchClose().style.display = 'inline-block';
|
||||
var domPopupSearchResults = this.DOMPopupSearchResults();
|
||||
var left = getXPos(domSearchBox) + 150; // domSearchBox.offsetWidth;
|
||||
var top = getYPos(domSearchBox) + 20; // domSearchBox.offsetHeight + 1;
|
||||
domPopupSearchResultsWindow.style.display = 'block';
|
||||
left -= domPopupSearchResults.offsetWidth;
|
||||
var maxWidth = document.body.clientWidth;
|
||||
var width = 400;
|
||||
if (left<10) left=10;
|
||||
if (width+left+8>maxWidth) width=maxWidth-left-8;
|
||||
domPopupSearchResultsWindow.style.top = top + 'px';
|
||||
domPopupSearchResultsWindow.style.left = left + 'px';
|
||||
domPopupSearchResultsWindow.style.width = width + 'px';
|
||||
}
|
||||
|
||||
this.lastSearchValue = searchValue;
|
||||
this.lastResultsPage = resultsPage;
|
||||
}
|
||||
|
||||
// -------- Activation Functions
|
||||
|
||||
// Activates or deactivates the search panel, resetting things to
|
||||
// their default values if necessary.
|
||||
this.Activate = function(isActive)
|
||||
{
|
||||
if (isActive || // open it
|
||||
this.DOMPopupSearchResultsWindow().style.display == 'block'
|
||||
)
|
||||
{
|
||||
this.DOMSearchBox().className = 'MSearchBoxActive';
|
||||
|
||||
var searchField = this.DOMSearchField();
|
||||
|
||||
if (searchField.value == this.searchLabel) // clear "Search" term upon entry
|
||||
{
|
||||
searchField.value = '';
|
||||
this.searchActive = true;
|
||||
}
|
||||
}
|
||||
else if (!isActive) // directly remove the panel
|
||||
{
|
||||
this.DOMSearchBox().className = 'MSearchBoxInactive';
|
||||
this.DOMSearchField().value = this.searchLabel;
|
||||
this.searchActive = false;
|
||||
this.lastSearchValue = ''
|
||||
this.lastResultsPage = '';
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// -----------------------------------------------------------------------
|
||||
|
||||
// The class that handles everything on the search results page.
|
||||
function SearchResults(name)
|
||||
{
|
||||
// The number of matches from the last run of <Search()>.
|
||||
this.lastMatchCount = 0;
|
||||
this.lastKey = 0;
|
||||
this.repeatOn = false;
|
||||
|
||||
// Toggles the visibility of the passed element ID.
|
||||
this.FindChildElement = function(id)
|
||||
{
|
||||
var parentElement = document.getElementById(id);
|
||||
var element = parentElement.firstChild;
|
||||
|
||||
while (element && element!=parentElement)
|
||||
{
|
||||
if (element.nodeName.toLowerCase() == 'div' && element.className == 'SRChildren')
|
||||
{
|
||||
return element;
|
||||
}
|
||||
|
||||
if (element.nodeName.toLowerCase() == 'div' && element.hasChildNodes())
|
||||
{
|
||||
element = element.firstChild;
|
||||
}
|
||||
else if (element.nextSibling)
|
||||
{
|
||||
element = element.nextSibling;
|
||||
}
|
||||
else
|
||||
{
|
||||
do
|
||||
{
|
||||
element = element.parentNode;
|
||||
}
|
||||
while (element && element!=parentElement && !element.nextSibling);
|
||||
|
||||
if (element && element!=parentElement)
|
||||
{
|
||||
element = element.nextSibling;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
this.Toggle = function(id)
|
||||
{
|
||||
var element = this.FindChildElement(id);
|
||||
if (element)
|
||||
{
|
||||
if (element.style.display == 'block')
|
||||
{
|
||||
element.style.display = 'none';
|
||||
}
|
||||
else
|
||||
{
|
||||
element.style.display = 'block';
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// Searches for the passed string. If there is no parameter,
|
||||
// it takes it from the URL query.
|
||||
//
|
||||
// Always returns true, since other documents may try to call it
|
||||
// and that may or may not be possible.
|
||||
this.Search = function(search)
|
||||
{
|
||||
if (!search) // get search word from URL
|
||||
{
|
||||
search = window.location.search;
|
||||
search = search.substring(1); // Remove the leading '?'
|
||||
search = unescape(search);
|
||||
}
|
||||
|
||||
search = search.replace(/^ +/, ""); // strip leading spaces
|
||||
search = search.replace(/ +$/, ""); // strip trailing spaces
|
||||
search = search.toLowerCase();
|
||||
search = convertToId(search);
|
||||
|
||||
var resultRows = document.getElementsByTagName("div");
|
||||
var matches = 0;
|
||||
|
||||
var i = 0;
|
||||
while (i < resultRows.length)
|
||||
{
|
||||
var row = resultRows.item(i);
|
||||
if (row.className == "SRResult")
|
||||
{
|
||||
var rowMatchName = row.id.toLowerCase();
|
||||
rowMatchName = rowMatchName.replace(/^sr\d*_/, ''); // strip 'sr123_'
|
||||
|
||||
if (search.length<=rowMatchName.length &&
|
||||
rowMatchName.substr(0, search.length)==search)
|
||||
{
|
||||
row.style.display = 'block';
|
||||
matches++;
|
||||
}
|
||||
else
|
||||
{
|
||||
row.style.display = 'none';
|
||||
}
|
||||
}
|
||||
i++;
|
||||
}
|
||||
document.getElementById("Searching").style.display='none';
|
||||
if (matches == 0) // no results
|
||||
{
|
||||
document.getElementById("NoMatches").style.display='block';
|
||||
}
|
||||
else // at least one result
|
||||
{
|
||||
document.getElementById("NoMatches").style.display='none';
|
||||
}
|
||||
this.lastMatchCount = matches;
|
||||
return true;
|
||||
}
|
||||
|
||||
// return the first item with index index or higher that is visible
|
||||
this.NavNext = function(index)
|
||||
{
|
||||
var focusItem;
|
||||
while (1)
|
||||
{
|
||||
var focusName = 'Item'+index;
|
||||
focusItem = document.getElementById(focusName);
|
||||
if (focusItem && focusItem.parentNode.parentNode.style.display=='block')
|
||||
{
|
||||
break;
|
||||
}
|
||||
else if (!focusItem) // last element
|
||||
{
|
||||
break;
|
||||
}
|
||||
focusItem=null;
|
||||
index++;
|
||||
}
|
||||
return focusItem;
|
||||
}
|
||||
|
||||
this.NavPrev = function(index)
|
||||
{
|
||||
var focusItem;
|
||||
while (1)
|
||||
{
|
||||
var focusName = 'Item'+index;
|
||||
focusItem = document.getElementById(focusName);
|
||||
if (focusItem && focusItem.parentNode.parentNode.style.display=='block')
|
||||
{
|
||||
break;
|
||||
}
|
||||
else if (!focusItem) // last element
|
||||
{
|
||||
break;
|
||||
}
|
||||
focusItem=null;
|
||||
index--;
|
||||
}
|
||||
return focusItem;
|
||||
}
|
||||
|
||||
this.ProcessKeys = function(e)
|
||||
{
|
||||
if (e.type == "keydown")
|
||||
{
|
||||
this.repeatOn = false;
|
||||
this.lastKey = e.keyCode;
|
||||
}
|
||||
else if (e.type == "keypress")
|
||||
{
|
||||
if (!this.repeatOn)
|
||||
{
|
||||
if (this.lastKey) this.repeatOn = true;
|
||||
return false; // ignore first keypress after keydown
|
||||
}
|
||||
}
|
||||
else if (e.type == "keyup")
|
||||
{
|
||||
this.lastKey = 0;
|
||||
this.repeatOn = false;
|
||||
}
|
||||
return this.lastKey!=0;
|
||||
}
|
||||
|
||||
this.Nav = function(evt,itemIndex)
|
||||
{
|
||||
var e = (evt) ? evt : window.event; // for IE
|
||||
if (e.keyCode==13) return true;
|
||||
if (!this.ProcessKeys(e)) return false;
|
||||
|
||||
if (this.lastKey==38) // Up
|
||||
{
|
||||
var newIndex = itemIndex-1;
|
||||
var focusItem = this.NavPrev(newIndex);
|
||||
if (focusItem)
|
||||
{
|
||||
var child = this.FindChildElement(focusItem.parentNode.parentNode.id);
|
||||
if (child && child.style.display == 'block') // children visible
|
||||
{
|
||||
var n=0;
|
||||
var tmpElem;
|
||||
while (1) // search for last child
|
||||
{
|
||||
tmpElem = document.getElementById('Item'+newIndex+'_c'+n);
|
||||
if (tmpElem)
|
||||
{
|
||||
focusItem = tmpElem;
|
||||
}
|
||||
else // found it!
|
||||
{
|
||||
break;
|
||||
}
|
||||
n++;
|
||||
}
|
||||
}
|
||||
}
|
||||
if (focusItem)
|
||||
{
|
||||
focusItem.focus();
|
||||
}
|
||||
else // return focus to search field
|
||||
{
|
||||
parent.document.getElementById("MSearchField").focus();
|
||||
}
|
||||
}
|
||||
else if (this.lastKey==40) // Down
|
||||
{
|
||||
var newIndex = itemIndex+1;
|
||||
var focusItem;
|
||||
var item = document.getElementById('Item'+itemIndex);
|
||||
var elem = this.FindChildElement(item.parentNode.parentNode.id);
|
||||
if (elem && elem.style.display == 'block') // children visible
|
||||
{
|
||||
focusItem = document.getElementById('Item'+itemIndex+'_c0');
|
||||
}
|
||||
if (!focusItem) focusItem = this.NavNext(newIndex);
|
||||
if (focusItem) focusItem.focus();
|
||||
}
|
||||
else if (this.lastKey==39) // Right
|
||||
{
|
||||
var item = document.getElementById('Item'+itemIndex);
|
||||
var elem = this.FindChildElement(item.parentNode.parentNode.id);
|
||||
if (elem) elem.style.display = 'block';
|
||||
}
|
||||
else if (this.lastKey==37) // Left
|
||||
{
|
||||
var item = document.getElementById('Item'+itemIndex);
|
||||
var elem = this.FindChildElement(item.parentNode.parentNode.id);
|
||||
if (elem) elem.style.display = 'none';
|
||||
}
|
||||
else if (this.lastKey==27) // Escape
|
||||
{
|
||||
parent.searchBox.CloseResultsWindow();
|
||||
parent.document.getElementById("MSearchField").focus();
|
||||
}
|
||||
else if (this.lastKey==13) // Enter
|
||||
{
|
||||
return true;
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
this.NavChild = function(evt,itemIndex,childIndex)
|
||||
{
|
||||
var e = (evt) ? evt : window.event; // for IE
|
||||
if (e.keyCode==13) return true;
|
||||
if (!this.ProcessKeys(e)) return false;
|
||||
|
||||
if (this.lastKey==38) // Up
|
||||
{
|
||||
if (childIndex>0)
|
||||
{
|
||||
var newIndex = childIndex-1;
|
||||
document.getElementById('Item'+itemIndex+'_c'+newIndex).focus();
|
||||
}
|
||||
else // already at first child, jump to parent
|
||||
{
|
||||
document.getElementById('Item'+itemIndex).focus();
|
||||
}
|
||||
}
|
||||
else if (this.lastKey==40) // Down
|
||||
{
|
||||
var newIndex = childIndex+1;
|
||||
var elem = document.getElementById('Item'+itemIndex+'_c'+newIndex);
|
||||
if (!elem) // last child, jump to parent next parent
|
||||
{
|
||||
elem = this.NavNext(itemIndex+1);
|
||||
}
|
||||
if (elem)
|
||||
{
|
||||
elem.focus();
|
||||
}
|
||||
}
|
||||
else if (this.lastKey==27) // Escape
|
||||
{
|
||||
parent.searchBox.CloseResultsWindow();
|
||||
parent.document.getElementById("MSearchField").focus();
|
||||
}
|
||||
else if (this.lastKey==13) // Enter
|
||||
{
|
||||
return true;
|
||||
}
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
function setKeyActions(elem,action)
|
||||
{
|
||||
elem.setAttribute('onkeydown',action);
|
||||
elem.setAttribute('onkeypress',action);
|
||||
elem.setAttribute('onkeyup',action);
|
||||
}
|
||||
|
||||
function setClassAttr(elem,attr)
|
||||
{
|
||||
elem.setAttribute('class',attr);
|
||||
elem.setAttribute('className',attr);
|
||||
}
|
||||
|
||||
function createResults()
|
||||
{
|
||||
var results = document.getElementById("SRResults");
|
||||
for (var e=0; e<searchData.length; e++)
|
||||
{
|
||||
var id = searchData[e][0];
|
||||
var srResult = document.createElement('div');
|
||||
srResult.setAttribute('id','SR_'+id);
|
||||
setClassAttr(srResult,'SRResult');
|
||||
var srEntry = document.createElement('div');
|
||||
setClassAttr(srEntry,'SREntry');
|
||||
var srLink = document.createElement('a');
|
||||
srLink.setAttribute('id','Item'+e);
|
||||
setKeyActions(srLink,'return searchResults.Nav(event,'+e+')');
|
||||
setClassAttr(srLink,'SRSymbol');
|
||||
srLink.innerHTML = searchData[e][1][0];
|
||||
srEntry.appendChild(srLink);
|
||||
if (searchData[e][1].length==2) // single result
|
||||
{
|
||||
srLink.setAttribute('href',searchData[e][1][1][0]);
|
||||
srLink.setAttribute('onclick','parent.searchBox.CloseResultsWindow()');
|
||||
if (searchData[e][1][1][1])
|
||||
{
|
||||
srLink.setAttribute('target','_parent');
|
||||
}
|
||||
var srScope = document.createElement('span');
|
||||
setClassAttr(srScope,'SRScope');
|
||||
srScope.innerHTML = searchData[e][1][1][2];
|
||||
srEntry.appendChild(srScope);
|
||||
}
|
||||
else // multiple results
|
||||
{
|
||||
srLink.setAttribute('href','javascript:searchResults.Toggle("SR_'+id+'")');
|
||||
var srChildren = document.createElement('div');
|
||||
setClassAttr(srChildren,'SRChildren');
|
||||
for (var c=0; c<searchData[e][1].length-1; c++)
|
||||
{
|
||||
var srChild = document.createElement('a');
|
||||
srChild.setAttribute('id','Item'+e+'_c'+c);
|
||||
setKeyActions(srChild,'return searchResults.NavChild(event,'+e+','+c+')');
|
||||
setClassAttr(srChild,'SRScope');
|
||||
srChild.setAttribute('href',searchData[e][1][c+1][0]);
|
||||
srChild.setAttribute('onclick','parent.searchBox.CloseResultsWindow()');
|
||||
if (searchData[e][1][c+1][1])
|
||||
{
|
||||
srChild.setAttribute('target','_parent');
|
||||
}
|
||||
srChild.innerHTML = searchData[e][1][c+1][2];
|
||||
srChildren.appendChild(srChild);
|
||||
}
|
||||
srEntry.appendChild(srChildren);
|
||||
}
|
||||
srResult.appendChild(srEntry);
|
||||
results.appendChild(srResult);
|
||||
}
|
||||
}
|
||||
|
||||
function init_search()
|
||||
{
|
||||
var results = document.getElementById("MSearchSelectWindow");
|
||||
for (var key in indexSectionLabels)
|
||||
{
|
||||
var link = document.createElement('a');
|
||||
link.setAttribute('class','SelectItem');
|
||||
link.setAttribute('onclick','searchBox.OnSelectItem('+key+')');
|
||||
link.href='javascript:void(0)';
|
||||
link.innerHTML='<span class="SelectionMark"> </span>'+indexSectionLabels[key];
|
||||
results.appendChild(link);
|
||||
}
|
||||
searchBox.OnSelectItem(0);
|
||||
}
|
||||
/* @license-end */
|
BIN
src/mdw/trace/doxygen/output/html/search/search_l.png
Normal file
After Width: | Height: | Size: 567 B |
BIN
src/mdw/trace/doxygen/output/html/search/search_m.png
Normal file
After Width: | Height: | Size: 158 B |
BIN
src/mdw/trace/doxygen/output/html/search/search_r.png
Normal file
After Width: | Height: | Size: 553 B |
24
src/mdw/trace/doxygen/output/html/search/searchdata.js
Normal file
@ -0,0 +1,24 @@
|
||||
var indexSectionsWithContent =
|
||||
{
|
||||
0: "ilotu",
|
||||
1: "t",
|
||||
2: "ilou",
|
||||
3: "t"
|
||||
};
|
||||
|
||||
var indexSectionNames =
|
||||
{
|
||||
0: "all",
|
||||
1: "classes",
|
||||
2: "functions",
|
||||
3: "pages"
|
||||
};
|
||||
|
||||
var indexSectionLabels =
|
||||
{
|
||||
0: "All",
|
||||
1: "Classes",
|
||||
2: "Functions",
|
||||
3: "Pages"
|
||||
};
|
||||
|
BIN
src/mdw/trace/doxygen/output/html/splitbar.png
Normal file
After Width: | Height: | Size: 314 B |
BIN
src/mdw/trace/doxygen/output/html/sync_off.png
Normal file
After Width: | Height: | Size: 853 B |
BIN
src/mdw/trace/doxygen/output/html/sync_on.png
Normal file
After Width: | Height: | Size: 845 B |
BIN
src/mdw/trace/doxygen/output/html/tab_a.png
Normal file
After Width: | Height: | Size: 142 B |
BIN
src/mdw/trace/doxygen/output/html/tab_b.png
Normal file
After Width: | Height: | Size: 169 B |
BIN
src/mdw/trace/doxygen/output/html/tab_h.png
Normal file
After Width: | Height: | Size: 177 B |
BIN
src/mdw/trace/doxygen/output/html/tab_s.png
Normal file
After Width: | Height: | Size: 184 B |
1
src/mdw/trace/doxygen/output/html/tabs.css
Normal file
@ -0,0 +1,90 @@
|
||||
<!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=11"/>
|
||||
<meta name="generator" content="Doxygen 1.9.2"/>
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1"/>
|
||||
<title>Trace: trace-example01.cpp</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="projectalign" style="padding-left: 0.5em;">
|
||||
<div id="projectname">Trace<span id="projectnumber"> 3.3</span>
|
||||
</div>
|
||||
</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
<!-- end header part -->
|
||||
<!-- Generated by Doxygen 1.9.2 -->
|
||||
<script type="text/javascript">
|
||||
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&dn=expat.txt MIT */
|
||||
var searchBox = new SearchBox("searchBox", "search",'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:d3d9a9a6595521f9666a5e94cc830dab83b65699&dn=expat.txt MIT */
|
||||
$(function() {
|
||||
initMenu('',true,false,'search.php','Search');
|
||||
$(document).ready(function() { init_search(); });
|
||||
});
|
||||
/* @license-end */
|
||||
</script>
|
||||
<div id="main-nav"></div>
|
||||
</div><!-- top -->
|
||||
<!-- 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">trace-example01.cpp</div></div>
|
||||
</div><!--header-->
|
||||
<div class="contents">
|
||||
<div class="fragment"><div class="line"><span class="preprocessor">#include "config/trace-config.h"</span></div>
|
||||
<div class="line"><span class="preprocessor">#include "trace/trace.h"</span></div>
|
||||
<div class="line"> </div>
|
||||
<div class="line"><span class="preprocessor">#if (USE_TRACE_EXAMPLE != 0)</span></div>
|
||||
<div class="line"> </div>
|
||||
<div class="line"><span class="keywordtype">int</span> main()</div>
|
||||
<div class="line">{</div>
|
||||
<div class="line"> <a id="a0" name="a0"></a><a class="code hl_function" href="class_trace.html#a602aec03cad6466d892034582794de33">Trace::out</a>(<span class="stringliteral">"Hello World"</span>);</div>
|
||||
<div class="line"> </div>
|
||||
<div class="line"> <a class="code hl_function" href="class_trace.html#a602aec03cad6466d892034582794de33">Trace::out</a>(<span class="stringliteral">"My name is %s and a am %d years old."</span>, <span class="stringliteral">"Sarah Walker"</span>, 28);</div>
|
||||
<div class="line"> </div>
|
||||
<div class="line"> <span class="keywordflow">return</span> 0;</div>
|
||||
<div class="line">}</div>
|
||||
<div class="line"> </div>
|
||||
<div class="line"><span class="preprocessor">#endif </span><span class="comment">// USE_TRACE_EXAMPLE</span></div>
|
||||
<div class="ttc" id="aclass_trace_html_a602aec03cad6466d892034582794de33"><div class="ttname"><a href="class_trace.html#a602aec03cad6466d892034582794de33">Trace::out</a></div><div class="ttdeci">static void out(string str)</div></div>
|
||||
</div><!-- fragment --> </div><!-- contents -->
|
||||
<!-- start footer part -->
|
||||
<hr class="footer"/><address class="footer"><small>
|
||||
Generated on Tue Sep 19 2023 10:35:57 for Trace by <a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.2
|
||||
</small></address>
|
||||
</body>
|
||||
</html>
|
123
src/mdw/trace/doxygen/output/html/trace_8h_source.html
Normal file
@ -0,0 +1,123 @@
|
||||
<!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=11"/>
|
||||
<meta name="generator" content="Doxygen 1.9.2"/>
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1"/>
|
||||
<title>Trace: C:/Users/thomas.sterren/Desktop/PTR_XF_Release/03-release/work/src/mdw/trace/trace.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="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">Trace<span id="projectnumber"> 3.3</span>
|
||||
</div>
|
||||
</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
<!-- end header part -->
|
||||
<!-- Generated by Doxygen 1.9.2 -->
|
||||
<script type="text/javascript">
|
||||
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&dn=expat.txt MIT */
|
||||
var searchBox = new SearchBox("searchBox", "search",'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:d3d9a9a6595521f9666a5e94cc830dab83b65699&dn=expat.txt MIT */
|
||||
$(function() {
|
||||
initMenu('',true,false,'search.php','Search');
|
||||
$(document).ready(function() { init_search(); });
|
||||
});
|
||||
/* @license-end */
|
||||
</script>
|
||||
<div id="main-nav"></div>
|
||||
</div><!-- top -->
|
||||
<!-- 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">C:/Users/thomas.sterren/Desktop/PTR_XF_Release/03-release/work/src/mdw/trace/trace.h</div></div>
|
||||
</div><!--header-->
|
||||
<div class="contents">
|
||||
<div class="fragment"><div class="line"><a id="l00001" name="l00001"></a><span class="lineno"> 1</span><span class="preprocessor">#ifndef TRACE_H</span></div>
|
||||
<div class="line"><a id="l00002" name="l00002"></a><span class="lineno"> 2</span><span class="preprocessor">#define TRACE_H</span></div>
|
||||
<div class="line"><a id="l00003" name="l00003"></a><span class="lineno"> 3</span> </div>
|
||||
<div class="line"><a id="l00004" name="l00004"></a><span class="lineno"> 4</span><span class="preprocessor">#include <stddef.h></span></div>
|
||||
<div class="line"><a id="l00005" name="l00005"></a><span class="lineno"> 5</span><span class="preprocessor">#include <stdint.h></span></div>
|
||||
<div class="line"><a id="l00006" name="l00006"></a><span class="lineno"> 6</span><span class="preprocessor">#include <config/trace-config.h></span> <span class="comment">// angle brackets important here!</span></div>
|
||||
<div class="line"><a id="l00007" name="l00007"></a><span class="lineno"> 7</span> </div>
|
||||
<div class="line"><a id="l00008" name="l00008"></a><span class="lineno"> 8</span><span class="preprocessor">#ifdef __cplusplus</span></div>
|
||||
<div class="line"><a id="l00009" name="l00009"></a><span class="lineno"> 9</span><span class="keyword">extern</span> <span class="stringliteral">"C"</span> {</div>
|
||||
<div class="line"><a id="l00010" name="l00010"></a><span class="lineno"> 10</span><span class="preprocessor">#endif</span></div>
|
||||
<div class="line"><a id="l00011" name="l00011"></a><span class="lineno"> 11</span> </div>
|
||||
<div class="line"><a id="l00012" name="l00012"></a><span class="lineno"> 12</span><span class="keywordtype">void</span> trace_initialize();</div>
|
||||
<div class="line"><a id="l00013" name="l00013"></a><span class="lineno"> 13</span><span class="keywordtype">void</span> trace_out(<span class="keyword">const</span> <span class="keywordtype">char</span> * <span class="keyword">const</span> format , ...);</div>
|
||||
<div class="line"><a id="l00014" name="l00014"></a><span class="lineno"> 14</span> </div>
|
||||
<div class="line"><a id="l00015" name="l00015"></a><span class="lineno"> 15</span><span class="preprocessor">#ifdef __cplusplus</span></div>
|
||||
<div class="line"><a id="l00016" name="l00016"></a><span class="lineno"> 16</span>} <span class="comment">// extern "C"</span></div>
|
||||
<div class="line"><a id="l00017" name="l00017"></a><span class="lineno"> 17</span><span class="preprocessor">#endif</span></div>
|
||||
<div class="line"><a id="l00018" name="l00018"></a><span class="lineno"> 18</span> </div>
|
||||
<div class="line"><a id="l00019" name="l00019"></a><span class="lineno"> 19</span><span class="preprocessor">#ifdef __cplusplus</span></div>
|
||||
<div class="line"><a id="l00020" name="l00020"></a><span class="lineno"> 20</span> </div>
|
||||
<div class="line"><a id="l00021" name="l00021"></a><span class="lineno"> 21</span><span class="preprocessor">#include <string></span></div>
|
||||
<div class="line"><a id="l00022" name="l00022"></a><span class="lineno"> 22</span> </div>
|
||||
<div class="line"><a id="l00023" name="l00023"></a><span class="lineno"> 23</span><span class="keyword">using namespace </span>std;</div>
|
||||
<div class="line"><a id="l00024" name="l00024"></a><span class="lineno"> 24</span> </div>
|
||||
<div class="line"><a id="l00066" name="l00066"></a><span class="lineno"><a class="line" href="class_trace.html"> 66</a></span><span class="keyword">class </span><a class="code hl_class" href="class_trace.html">Trace</a></div>
|
||||
<div class="line"><a id="l00067" name="l00067"></a><span class="lineno"> 67</span>{</div>
|
||||
<div class="line"><a id="l00068" name="l00068"></a><span class="lineno"> 68</span><span class="keyword">public</span>:</div>
|
||||
<div class="line"><a id="l00069" name="l00069"></a><span class="lineno"> 69</span> </div>
|
||||
<div class="line"><a id="l00075" name="l00075"></a><span class="lineno"><a class="line" href="class_trace.html#a6a42778d9401b9e90605475ecffeb8a2"> 75</a></span> <span class="keyword">static</span> <span class="keywordtype">void</span> <a class="code hl_function" href="class_trace.html#a6a42778d9401b9e90605475ecffeb8a2">initialize</a>();</div>
|
||||
<div class="line"><a id="l00076" name="l00076"></a><span class="lineno"> 76</span> </div>
|
||||
<div class="line"><a id="l00083" name="l00083"></a><span class="lineno"><a class="line" href="class_trace.html#a602aec03cad6466d892034582794de33"> 83</a></span> <span class="keyword">static</span> <span class="keywordtype">void</span> <a class="code hl_function" href="class_trace.html#a602aec03cad6466d892034582794de33">out</a>(<span class="keywordtype">string</span> str);</div>
|
||||
<div class="line"><a id="l00084" name="l00084"></a><span class="lineno"> 84</span> </div>
|
||||
<div class="line"><a id="l00095" name="l00095"></a><span class="lineno"><a class="line" href="class_trace.html#a2c0dd29f5f94cfe01be01d414a2d18ba"> 95</a></span> <span class="keyword">static</span> <span class="keywordtype">void</span> <a class="code hl_function" href="class_trace.html#a2c0dd29f5f94cfe01be01d414a2d18ba">out</a>(<span class="keyword">const</span> <span class="keywordtype">char</span> * format, ...);</div>
|
||||
<div class="line"><a id="l00096" name="l00096"></a><span class="lineno"> 96</span> </div>
|
||||
<div class="line"><a id="l00097" name="l00097"></a><span class="lineno"> 97</span><span class="keyword">public</span>:</div>
|
||||
<div class="line"><a id="l00098" name="l00098"></a><span class="lineno"><a class="line" href="class_trace.html#a1de337a9e4820514c0839c1efb3ff936"> 98</a></span> <span class="keyword">static</span> <span class="keywordtype">void</span> <a class="code hl_function" href="class_trace.html#a1de337a9e4820514c0839c1efb3ff936">lock</a>(); </div>
|
||||
<div class="line"><a id="l00099" name="l00099"></a><span class="lineno"><a class="line" href="class_trace.html#ae79ce0081ba22864700a87053bfbc5f6"> 99</a></span> <span class="keyword">static</span> <span class="keywordtype">void</span> <a class="code hl_function" href="class_trace.html#ae79ce0081ba22864700a87053bfbc5f6">unlock</a>(); </div>
|
||||
<div class="line"><a id="l00100" name="l00100"></a><span class="lineno"> 100</span> </div>
|
||||
<div class="line"><a id="l00101" name="l00101"></a><span class="lineno"> 101</span><span class="keyword">protected</span>:</div>
|
||||
<div class="line"><a id="l00102" name="l00102"></a><span class="lineno"> 102</span> <a class="code hl_class" href="class_trace.html">Trace</a>() {}</div>
|
||||
<div class="line"><a id="l00103" name="l00103"></a><span class="lineno"> 103</span>};</div>
|
||||
<div class="line"><a id="l00104" name="l00104"></a><span class="lineno"> 104</span><span class="preprocessor">#endif </span><span class="comment">// __cplusplus</span></div>
|
||||
<div class="line"><a id="l00105" name="l00105"></a><span class="lineno"> 105</span><span class="preprocessor">#endif </span><span class="comment">// TRACE_H</span></div>
|
||||
<div class="ttc" id="aclass_trace_html"><div class="ttname"><a href="class_trace.html">Trace</a></div><div class="ttdef"><b>Definition:</b> trace.h:67</div></div>
|
||||
<div class="ttc" id="aclass_trace_html_a1de337a9e4820514c0839c1efb3ff936"><div class="ttname"><a href="class_trace.html#a1de337a9e4820514c0839c1efb3ff936">Trace::lock</a></div><div class="ttdeci">static void lock()</div><div class="ttdoc">Locks trace for other threads.</div></div>
|
||||
<div class="ttc" id="aclass_trace_html_a2c0dd29f5f94cfe01be01d414a2d18ba"><div class="ttname"><a href="class_trace.html#a2c0dd29f5f94cfe01be01d414a2d18ba">Trace::out</a></div><div class="ttdeci">static void out(const char *format,...)</div></div>
|
||||
<div class="ttc" id="aclass_trace_html_a602aec03cad6466d892034582794de33"><div class="ttname"><a href="class_trace.html#a602aec03cad6466d892034582794de33">Trace::out</a></div><div class="ttdeci">static void out(string str)</div></div>
|
||||
<div class="ttc" id="aclass_trace_html_a6a42778d9401b9e90605475ecffeb8a2"><div class="ttname"><a href="class_trace.html#a6a42778d9401b9e90605475ecffeb8a2">Trace::initialize</a></div><div class="ttdeci">static void initialize()</div><div class="ttdoc">Initializes trace functionality.</div></div>
|
||||
<div class="ttc" id="aclass_trace_html_ae79ce0081ba22864700a87053bfbc5f6"><div class="ttname"><a href="class_trace.html#ae79ce0081ba22864700a87053bfbc5f6">Trace::unlock</a></div><div class="ttdeci">static void unlock()</div><div class="ttdoc">Unlocks trace so other threads can access trace.</div></div>
|
||||
</div><!-- fragment --></div><!-- contents -->
|
||||
<!-- start footer part -->
|
||||
<hr class="footer"/><address class="footer"><small>
|
||||
Generated on Tue Sep 19 2023 10:35:57 for Trace by <a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.2
|
||||
</small></address>
|
||||
</body>
|
||||
</html>
|
53
src/mdw/trace/doxygen/trace.tag
Normal file
@ -0,0 +1,53 @@
|
||||
<?xml version='1.0' encoding='UTF-8' standalone='yes' ?>
|
||||
<tagfile doxygen_version="1.9.2" doxygen_gitid="caa4e3de211fbbef2c3adf58a6bd4c86d0eb7cb8">
|
||||
<compound kind="class">
|
||||
<name>Trace</name>
|
||||
<filename>class_trace.html</filename>
|
||||
<member kind="function" static="yes">
|
||||
<type>static void</type>
|
||||
<name>initialize</name>
|
||||
<anchorfile>class_trace.html</anchorfile>
|
||||
<anchor>a6a42778d9401b9e90605475ecffeb8a2</anchor>
|
||||
<arglist>()</arglist>
|
||||
</member>
|
||||
<member kind="function" static="yes">
|
||||
<type>static void</type>
|
||||
<name>out</name>
|
||||
<anchorfile>class_trace.html</anchorfile>
|
||||
<anchor>a602aec03cad6466d892034582794de33</anchor>
|
||||
<arglist>(string str)</arglist>
|
||||
</member>
|
||||
<member kind="function" static="yes">
|
||||
<type>static void</type>
|
||||
<name>out</name>
|
||||
<anchorfile>class_trace.html</anchorfile>
|
||||
<anchor>a2c0dd29f5f94cfe01be01d414a2d18ba</anchor>
|
||||
<arglist>(const char *format,...)</arglist>
|
||||
</member>
|
||||
<member kind="function" static="yes">
|
||||
<type>static void</type>
|
||||
<name>lock</name>
|
||||
<anchorfile>class_trace.html</anchorfile>
|
||||
<anchor>a1de337a9e4820514c0839c1efb3ff936</anchor>
|
||||
<arglist>()</arglist>
|
||||
</member>
|
||||
<member kind="function" static="yes">
|
||||
<type>static void</type>
|
||||
<name>unlock</name>
|
||||
<anchorfile>class_trace.html</anchorfile>
|
||||
<anchor>ae79ce0081ba22864700a87053bfbc5f6</anchor>
|
||||
<arglist>()</arglist>
|
||||
</member>
|
||||
</compound>
|
||||
<compound kind="page">
|
||||
<name>index</name>
|
||||
<title>Trace</title>
|
||||
<filename>index.html</filename>
|
||||
<docanchor file="index.html" title="Introduction">sec_trace_intro</docanchor>
|
||||
<docanchor file="index.html" title="Targets">sec_trace_targets</docanchor>
|
||||
<docanchor file="index.html" title="F7-DISCO Board">subsec_trace_f7_disco</docanchor>
|
||||
<docanchor file="index.html" title="Serial Configuration">subsubsec_trace_f7_disco_serial_config</docanchor>
|
||||
<docanchor file="index.html" title="QT library">subsec_trace_qt</docanchor>
|
||||
<docanchor file="index.html" title="Links to related Documentation">sec_trace_external_links</docanchor>
|
||||
</compound>
|
||||
</tagfile>
|
15
src/mdw/trace/examples/trace-example01.cpp
Normal file
@ -0,0 +1,15 @@
|
||||
#include "config/trace-config.h"
|
||||
#include "trace/trace.h"
|
||||
|
||||
#if (USE_TRACE_EXAMPLE != 0)
|
||||
|
||||
int main()
|
||||
{
|
||||
Trace::out("Hello World");
|
||||
|
||||
Trace::out("My name is %s and a am %d years old.", "Sarah Walker", 28);
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
#endif // USE_TRACE_EXAMPLE
|
105
src/mdw/trace/trace.h
Normal file
@ -0,0 +1,105 @@
|
||||
#ifndef TRACE_H
|
||||
#define TRACE_H
|
||||
|
||||
#include <stddef.h>
|
||||
#include <stdint.h>
|
||||
#include <config/trace-config.h> // angle brackets important here!
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
void trace_initialize();
|
||||
void trace_out(const char * const format , ...);
|
||||
|
||||
#ifdef __cplusplus
|
||||
} // extern "C"
|
||||
#endif
|
||||
|
||||
#ifdef __cplusplus
|
||||
|
||||
#include <string>
|
||||
|
||||
using namespace std;
|
||||
|
||||
/** \mainpage Trace
|
||||
*
|
||||
* \section sec_trace_intro Introduction
|
||||
*
|
||||
* This small library is used to print debug information to an output.
|
||||
* It serves as a general interface (LAL <b>L</b>ibrary <b>A</b>bstraction <b>L</b>ayer).
|
||||
*
|
||||
* The library consists of a single class named Trace. There is no need to make an instance
|
||||
* of this class. Instead use the #Trace::out() methods to output the information needed.
|
||||
*
|
||||
* \section sec_trace_targets Targets
|
||||
* \subsection subsec_trace_f7_disco F7-DISCO Board
|
||||
* When working with the F7-DISCO board, Trace outputs the information using the USB-STLINK interface
|
||||
* of the debugger USB cable to the Host. On Windows, the 'STLink Virtual COM' Port must be opened to
|
||||
* see the trace output.
|
||||
* During compilation time, the constant \a USE_PLATFORM_F7_DISCO_GCC_TRACE must be defined.
|
||||
* \subsubsection subsubsec_trace_f7_disco_serial_config Serial Configuration
|
||||
* - Baud: 115200
|
||||
* - Data Bits: 8
|
||||
* - Parity: none
|
||||
* - Stop Bits: 1
|
||||
* - Flow control: none
|
||||
*
|
||||
* \subsection subsec_trace_qt QT library
|
||||
* When working with the QT library, Trace outputs the information to the debuggers output window.
|
||||
* During compilation time, the constant \a TC_QTCREATOR must be defined.
|
||||
*
|
||||
* \section sec_trace_external_links Links to related Documentation
|
||||
* \if DOC_WITH_TESTBENCH
|
||||
* - <a href="../../../../../../test-bench/doxygen/output/html/index.html">Test Bench Documentation</a>
|
||||
* \endif
|
||||
* - <a href="../../../../../simplified/xf/doxygen/output/html/index.html">XF Documentation</a>
|
||||
*/
|
||||
|
||||
/**
|
||||
* \example trace-example01.cpp
|
||||
*/
|
||||
|
||||
/**
|
||||
* Prints debug information to a predefined output (output window).
|
||||
*/
|
||||
class Trace
|
||||
{
|
||||
public:
|
||||
|
||||
/**
|
||||
* @brief Initializes trace functionality.
|
||||
*
|
||||
* Call this method prior to use trace functionality.
|
||||
*/
|
||||
static void initialize();
|
||||
|
||||
/**
|
||||
* Outputs an STL string to the output window. The method will automatically add a new line, so
|
||||
* the next string will be put automatically on the next line in the output window.
|
||||
*
|
||||
* \param str String to print to the output window.
|
||||
*/
|
||||
static void out(string str);
|
||||
|
||||
/**
|
||||
* Outputs a sequence of data formatted as the fromat argument specifies.
|
||||
* This method can be used the same way as the traditional printf.
|
||||
* The method will automatically add a new line too.
|
||||
*
|
||||
* \param format The string that contains the text to be printed. It
|
||||
* can optionally contain embedded format specifiers that
|
||||
* are replaced by the values specified in subsequent additional
|
||||
* arguments and formatted as requested.
|
||||
*/
|
||||
static void out(const char * format, ...);
|
||||
|
||||
public:
|
||||
static void lock(); ///< Locks trace for other threads.
|
||||
static void unlock(); ///< Unlocks trace so other threads can access trace.
|
||||
|
||||
protected:
|
||||
Trace() {}
|
||||
};
|
||||
#endif // __cplusplus
|
||||
#endif // TRACE_H
|
146
src/platform/f7-disco-gcc/board/ledcontroller.cpp
Normal file
@ -0,0 +1,146 @@
|
||||
#include "mcu/mcu.h"
|
||||
#include "config/ledcontroller-config.h"
|
||||
#if (LEDCONTROLLER_TRACE_ENABLE != 0)
|
||||
#include "trace/trace.h"
|
||||
#endif // LEDCONTROLLER_TRACE_ENABLE
|
||||
#include "ledcontroller.h"
|
||||
|
||||
LedController * LedController::pInstance_ = nullptr;
|
||||
|
||||
LedController::LedController()
|
||||
{
|
||||
assert(!pInstance_); // Only one instance of this class allowed!
|
||||
pInstance_ = this;
|
||||
|
||||
// Initialize the method array with the right methods.
|
||||
ledOperation_[0] = &LedController::setLed0;
|
||||
ledOperation_[1] = &LedController::setLed1;
|
||||
ledOperation_[2] = &LedController::setLed2;
|
||||
ledOperation_[3] = &LedController::setLed3;
|
||||
|
||||
/*
|
||||
* F7-DISCO LED GPIOs (Extension Board):
|
||||
* LED0: PA15
|
||||
* LED1: PH6
|
||||
* LED2: PA8
|
||||
* LED3: PB4
|
||||
*/
|
||||
}
|
||||
|
||||
LedController::~LedController()
|
||||
{
|
||||
}
|
||||
|
||||
void LedController::setLed(uint8_t index, bool bOn)
|
||||
{
|
||||
setLeds(0x01 << index, bOn);
|
||||
}
|
||||
|
||||
void LedController::setLeds(uint8_t ledMask, bool bOn)
|
||||
{
|
||||
uint8_t mask = 0x01;
|
||||
|
||||
for (uint8_t i = 0; i < ledCount(); i++, mask <<= 1)
|
||||
{
|
||||
if ((ledMask & mask) == mask && ledOperation_[i])
|
||||
{
|
||||
(this->*ledOperation_[i])(bOn);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void LedController::setLed0(bool bOn /* = true */)
|
||||
{
|
||||
if (bOn)
|
||||
{
|
||||
HAL_GPIO_WritePin(LED0_GPIO_Port, LED0_Pin, GPIO_PIN_SET);
|
||||
}
|
||||
else
|
||||
{
|
||||
HAL_GPIO_WritePin(LED0_GPIO_Port, LED0_Pin, GPIO_PIN_RESET);
|
||||
}
|
||||
|
||||
#if (LEDCONTROLLER_TRACE_ENABLE != 0)
|
||||
if (bOn)
|
||||
{
|
||||
// Not using "%s" here (bug in gcc c-library!)
|
||||
Trace::out(" LED0: on");
|
||||
}
|
||||
else
|
||||
{
|
||||
Trace::out(" LED0: off");
|
||||
}
|
||||
#endif // LEDCONTROLLER_TRACE_ENABLE
|
||||
}
|
||||
|
||||
void LedController::setLed1(bool bOn /* = true */)
|
||||
{
|
||||
if (bOn)
|
||||
{
|
||||
HAL_GPIO_WritePin(LED1_GPIO_Port, LED1_Pin, GPIO_PIN_SET);
|
||||
|
||||
}
|
||||
else
|
||||
{
|
||||
HAL_GPIO_WritePin(LED1_GPIO_Port, LED1_Pin, GPIO_PIN_RESET);
|
||||
}
|
||||
|
||||
#if (LEDCONTROLLER_TRACE_ENABLE != 0)
|
||||
if (bOn)
|
||||
{
|
||||
Trace::out(" LED1: on");
|
||||
}
|
||||
else
|
||||
{
|
||||
Trace::out(" LED1: off");
|
||||
}
|
||||
#endif // LEDCONTROLLER_TRACE_ENABLE
|
||||
}
|
||||
|
||||
void LedController::setLed2(bool bOn /* = true */)
|
||||
{
|
||||
if (bOn)
|
||||
{
|
||||
HAL_GPIO_WritePin(LED2_GPIO_Port, LED2_Pin, GPIO_PIN_SET);
|
||||
|
||||
}
|
||||
else
|
||||
{
|
||||
HAL_GPIO_WritePin(LED2_GPIO_Port, LED2_Pin, GPIO_PIN_RESET);
|
||||
}
|
||||
|
||||
#if (LEDCONTROLLER_TRACE_ENABLE != 0)
|
||||
if (bOn)
|
||||
{
|
||||
Trace::out(" LED2: on");
|
||||
}
|
||||
else
|
||||
{
|
||||
Trace::out(" LED2: off");
|
||||
}
|
||||
#endif // LEDCONTROLLER_TRACE_ENABLE
|
||||
}
|
||||
|
||||
void LedController::setLed3(bool bOn /* = true */)
|
||||
{
|
||||
if (bOn)
|
||||
{
|
||||
HAL_GPIO_WritePin(LED3_GPIO_Port, LED3_Pin, GPIO_PIN_SET);
|
||||
|
||||
}
|
||||
else
|
||||
{
|
||||
HAL_GPIO_WritePin(LED3_GPIO_Port, LED3_Pin, GPIO_PIN_RESET);
|
||||
}
|
||||
|
||||
#if (LEDCONTROLLER_TRACE_ENABLE != 0)
|
||||
if (bOn)
|
||||
{
|
||||
Trace::out(" LED3: on");
|
||||
}
|
||||
else
|
||||
{
|
||||
Trace::out(" LED3: off");
|
||||
}
|
||||
#endif // LEDCONTROLLER_TRACE_ENABLE
|
||||
}
|
37
src/platform/f7-disco-gcc/board/ledcontroller.h
Normal file
@ -0,0 +1,37 @@
|
||||
#ifndef BOARD_LEDCONTROLLER_H
|
||||
#define BOARD_LEDCONTROLLER_H
|
||||
|
||||
#include <cassert>
|
||||
#include <stdint.h>
|
||||
|
||||
class LedController
|
||||
{
|
||||
public:
|
||||
#define LED_COUNT 4
|
||||
|
||||
public:
|
||||
LedController();
|
||||
virtual ~LedController();
|
||||
|
||||
inline static LedController & getInstance() { assert(pInstance_); return *pInstance_; }
|
||||
|
||||
void setLed(uint8_t index, bool bOn = true);
|
||||
void setLeds(uint8_t ledMask, bool bOn = true);
|
||||
|
||||
inline uint8_t ledCount() const { return LED_COUNT; }
|
||||
|
||||
void setLed0(bool bOn = true);
|
||||
void setLed1(bool bOn = true);
|
||||
void setLed2(bool bOn = true);
|
||||
void setLed3(bool bOn = true);
|
||||
|
||||
protected:
|
||||
typedef void (LedController::*ledMethod)(bool bOn); ///< Function prototype to led operation. Used for fast access to LED operation.
|
||||
|
||||
protected:
|
||||
static LedController * pInstance_;
|
||||
|
||||
ledMethod ledOperation_[LED_COUNT]; ///< Array of pointers to led functions.
|
||||
};
|
||||
|
||||
#endif // BOARD_LEDCONTROLLER_H
|
149
src/platform/f7-disco-gcc/board/trace.cpp
Normal file
@ -0,0 +1,149 @@
|
||||
#include <config/trace-config.h>
|
||||
|
||||
#if (USE_PLATFORM_F7_DISCO_GCC_TRACE != 0)
|
||||
|
||||
#include <stdio.h>
|
||||
#include <stdarg.h>
|
||||
#include <string.h>
|
||||
|
||||
#include "hal/uart.h"
|
||||
#include "trace/trace.h" // Include the general trace.h file (common for many projects)
|
||||
#include "xf/interface/mutex.h"
|
||||
|
||||
#ifndef TRACE_ADD_CRLF_SEQU
|
||||
#define TRACE_ADD_CRLF_SEQU 0
|
||||
#endif
|
||||
|
||||
using interface::XFMutex;
|
||||
|
||||
static Uart traceUart(TRACE_UART_CONSTRUCTOR_PARAMETERS);
|
||||
static char strTrace[255];
|
||||
|
||||
static int32_t checkStringEnding(char * str, uint32_t len);
|
||||
|
||||
static XFMutex * mutex = XFMutex::create();
|
||||
|
||||
static interface::XFMutex & traceMutex()
|
||||
{
|
||||
return *mutex;
|
||||
}
|
||||
|
||||
static void traceMutexLock()
|
||||
{
|
||||
traceMutex().lock();
|
||||
}
|
||||
|
||||
static void traceMutexUnlock()
|
||||
{
|
||||
traceMutex().unlock();
|
||||
}
|
||||
|
||||
void trace_initialize()
|
||||
{
|
||||
Trace::initialize();
|
||||
}
|
||||
|
||||
void trace_out(const char * const format , ...)
|
||||
{
|
||||
va_list args;
|
||||
|
||||
// Format string
|
||||
va_start(args, format);
|
||||
vsprintf(strTrace, format, args);
|
||||
va_end(args);
|
||||
|
||||
checkStringEnding(strTrace, strlen(strTrace));
|
||||
|
||||
traceUart.write(strTrace);
|
||||
}
|
||||
|
||||
//static
|
||||
void Trace::initialize()
|
||||
{
|
||||
traceUart.initialize(TRACE_UART_BAUD_RATE);
|
||||
}
|
||||
|
||||
static int32_t checkStringEnding(char * str, uint32_t len)
|
||||
{
|
||||
if (!len)
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
|
||||
if (str[len-1] != '\n')
|
||||
{
|
||||
#if (TRACE_ADD_CRLF_SEQU != 0)
|
||||
// Add "\r\n" at the end of the string
|
||||
str[len] = '\r';
|
||||
str[len+1] = '\n';
|
||||
str[len+2] = '\0';
|
||||
#else
|
||||
// Add "\n" at the end of the string
|
||||
str[len] = '\n';
|
||||
str[len+1] = '\0';
|
||||
#endif // TRACE_ADD_CRLF_SEQU
|
||||
}
|
||||
#if (TRACE_ADD_CRLF_SEQU != 0)
|
||||
// Check string finishing with "\r\n"
|
||||
else if (str[len-1] == '\n')
|
||||
{
|
||||
// Check if second last char is an '\r'
|
||||
if (len == 1 ||
|
||||
(len >= 2 && str[len-2] != '\r'))
|
||||
{
|
||||
// Squeeze a '\r'
|
||||
memmove(&str[len], &str[len-1], 2);
|
||||
str[len-1] = '\r';
|
||||
}
|
||||
}
|
||||
#endif // TRACE_ADD_CRLF_SEQU
|
||||
return strlen(str);
|
||||
}
|
||||
|
||||
void Trace::out(string str)
|
||||
{
|
||||
traceMutexLock();
|
||||
if (str[str.length()-1] != '\n')
|
||||
{
|
||||
str += '\n';
|
||||
}
|
||||
|
||||
#if defined(TRACE_ADD_CRLF_SEQU) && (TRACE_ADD_CRLF_SEQU != 0)
|
||||
if(str[str.length()-2] != '\r'){
|
||||
str.insert(str.length()-1, "\r");
|
||||
}
|
||||
#endif // TRACE_ADD_CRLF_SEQU
|
||||
|
||||
traceUart.write(str.data(), str.length());
|
||||
traceMutexUnlock();
|
||||
}
|
||||
|
||||
void Trace::out(const char * format, ...)
|
||||
{
|
||||
traceMutexLock();
|
||||
va_list args;
|
||||
|
||||
// Format string
|
||||
va_start(args, format);
|
||||
vsprintf(strTrace, format, args);
|
||||
va_end(args);
|
||||
|
||||
checkStringEnding(strTrace, strlen(strTrace));
|
||||
|
||||
traceUart.write(strTrace);
|
||||
traceMutexUnlock();
|
||||
}
|
||||
|
||||
//static
|
||||
void Trace::lock()
|
||||
{
|
||||
traceMutexLock();
|
||||
}
|
||||
|
||||
//static
|
||||
void Trace::unlock()
|
||||
{
|
||||
traceMutexUnlock();
|
||||
}
|
||||
|
||||
#endif // USE_PLATFORM_F7_DISCO_GCC_TRACE
|
24
src/platform/f7-disco-gcc/config/ledcontroller-config.h
Normal file
@ -0,0 +1,24 @@
|
||||
#ifndef BOARD_LEDCONTROLLER_CONFIG_H
|
||||
#define BOARD_LEDCONTROLLER_CONFIG_H
|
||||
|
||||
/**
|
||||
* Do NOT edit this file!
|
||||
*
|
||||
* This is the default LedController config file.
|
||||
* You may provide your own implementation at project level.
|
||||
*
|
||||
* For this:
|
||||
* - Copy/paste this file into a folder named 'config' in
|
||||
* you projects include/source directory.
|
||||
* - Add a compiler include path so that your file is seen
|
||||
* before the default config file provided in the platform
|
||||
* package.
|
||||
* - Adjust the content of your config file to your needs.
|
||||
* - Remove this comment in your config file.
|
||||
*/
|
||||
|
||||
#include "main.h" // To get GPIO user labels (LED0, LED1, etc.)
|
||||
|
||||
#define LEDCONTROLLER_TRACE_ENABLE 1
|
||||
|
||||
#endif // BOARD_LEDCONTROLLER_CONFIG_H
|
34
src/platform/f7-disco-gcc/config/trace-config.h
Normal file
@ -0,0 +1,34 @@
|
||||
#ifndef TRACE_CONFIG_H
|
||||
#define TRACE_CONFIG_H
|
||||
|
||||
/**
|
||||
* Do NOT edit this file!
|
||||
*
|
||||
* This is the default TRACE config file.
|
||||
* You may provide your own implementation at project level.
|
||||
*
|
||||
* For this:
|
||||
* - Copy/paste this file into a folder named 'config' in
|
||||
* you projects include/source directory.
|
||||
* - Add a compiler include path so that your file is seen
|
||||
* before the default config file provided in the platform
|
||||
* package.
|
||||
* - Adjust the content of your config file to your needs.
|
||||
* - Remove this comment in your config file.
|
||||
*/
|
||||
|
||||
#include "stm32f7xx_hal.h" // Do not use "mcu/mcu.h" here!
|
||||
|
||||
extern "C" UART_HandleTypeDef huart1; // Defined in main.c
|
||||
|
||||
#define USE_PLATFORM_F7_DISCO_GCC_TRACE 1
|
||||
|
||||
#define TRACE_UART_NUMBER 0
|
||||
#define TRACE_UART_HANDLE huart1
|
||||
#define TRACE_UART_BAUD_RATE /* 115200, but given by STM32CubeMX tool configuration */
|
||||
#define TRACE_UART_USE_TX_DMA false
|
||||
#define TRACE_UART_CONSTRUCTOR_PARAMETERS TRACE_UART_NUMBER, &TRACE_UART_HANDLE, TRACE_UART_USE_TX_DMA
|
||||
|
||||
#define TRACE_ADD_CRLF_SEQU 0
|
||||
|
||||
#endif // TRACE_CONFIG_H
|
22
src/platform/f7-disco-gcc/config/uart-config.h
Normal file
@ -0,0 +1,22 @@
|
||||
#ifndef HAL_UART_CONFIG_H
|
||||
#define HAL_UART_CONFIG_H
|
||||
|
||||
/**
|
||||
* Do NOT edit this file!
|
||||
*
|
||||
* This is the default UART config file.
|
||||
* You may provide your own implementation at project level.
|
||||
*
|
||||
* For this:
|
||||
* - Copy/paste this file into a folder named 'config' in
|
||||
* you projects include/source directory.
|
||||
* - Add a compiler include path so that your file is seen
|
||||
* before the default config file provided in the platform
|
||||
* package.
|
||||
* - Adjust the content of your config file to your needs.
|
||||
* - Remove this comment in your config file.
|
||||
*/
|
||||
|
||||
#include "mcu/mcu.h"
|
||||
|
||||
#endif // HAL_UART_CONFIG_H
|
41
src/platform/f7-disco-gcc/mcu/critical/critical.cpp
Normal file
@ -0,0 +1,41 @@
|
||||
#include "mcu/mcu.h"
|
||||
#include "critical.h"
|
||||
|
||||
volatile int bInISR = 0;
|
||||
volatile int bOMEnterCriticalRegionNested = 0;
|
||||
|
||||
int inISR()
|
||||
{
|
||||
// Variable must be put to TRUE in every ISR to indicate execution
|
||||
// of an ISR and need to put back to FALSE before leaving ISR.
|
||||
return bInISR;
|
||||
}
|
||||
|
||||
void enterCritical()
|
||||
{
|
||||
// Only disable interrupts when not calling from an ISR
|
||||
if (!inISR())
|
||||
{
|
||||
if (!bOMEnterCriticalRegionNested)
|
||||
{
|
||||
// Turn off the priority configurable interrupts
|
||||
__disable_irq();
|
||||
}
|
||||
bOMEnterCriticalRegionNested++;
|
||||
}
|
||||
}
|
||||
|
||||
void exitCritical()
|
||||
{
|
||||
// Only enable interrupts when not calling from an ISR
|
||||
if (!inISR())
|
||||
{
|
||||
bOMEnterCriticalRegionNested--;
|
||||
|
||||
if (!bOMEnterCriticalRegionNested)
|
||||
{
|
||||
// Turn on the interrupts with configurable priority
|
||||
__enable_irq();
|
||||
}
|
||||
}
|
||||
}
|
17
src/platform/f7-disco-gcc/mcu/critical/critical.h
Normal file
@ -0,0 +1,17 @@
|
||||
#ifndef CRITICAL_H
|
||||
#define CRITICAL_H
|
||||
|
||||
extern volatile int bInISR;
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" void ARMEnableInt();
|
||||
extern "C" void ARMDisableInt();
|
||||
#endif // __cplusplus
|
||||
|
||||
|
||||
int inISR();
|
||||
void enterCritical();
|
||||
void exitCritical();
|
||||
|
||||
|
||||
#endif /* CRITICAL_H */
|
93
src/platform/f7-disco-gcc/mcu/hal/uart.cpp
Normal file
@ -0,0 +1,93 @@
|
||||
#include <string.h>
|
||||
#include "mcu/mcu.h"
|
||||
#include "uart.h"
|
||||
|
||||
#ifndef TRACE_UART_PREEMPTION_PRIO
|
||||
#define TRACE_UART_PREEMPTION_PRIO 0
|
||||
#endif
|
||||
|
||||
Uart * Uart::_sUart[Uart::UART_COUNT]; // Comment: Startup script should initialize pointers to zero (.bss section)
|
||||
bool Uart::_sInitialized[Uart::UART_COUNT]; // Same for other arrays
|
||||
|
||||
Uart::Uart(const unsigned char uartNbr, UART_HandleTypeDef * uartHandle, bool bTxDMA /* = false */)
|
||||
: _uartNbr(-1),
|
||||
_pUartHandle(NULL),
|
||||
_bTxDMA(bTxDMA)
|
||||
{
|
||||
assert(uartNbr < UART_COUNT);
|
||||
|
||||
if (uartNbr < UART_COUNT)
|
||||
{
|
||||
if (!_sUart[uartNbr])
|
||||
{
|
||||
// Register instance
|
||||
_sUart[uartNbr] = this;
|
||||
_uartNbr = uartNbr;
|
||||
|
||||
_pUartHandle = uartHandle;
|
||||
}
|
||||
else
|
||||
{
|
||||
assert(false); // Error: Instance for specified UART already exists.
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Uart::~Uart()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
bool Uart::initialize()
|
||||
{
|
||||
return true;
|
||||
}
|
||||
|
||||
bool Uart::enable()
|
||||
{
|
||||
// Enable the USART
|
||||
__HAL_UART_ENABLE(_pUartHandle);
|
||||
return true;
|
||||
}
|
||||
|
||||
bool Uart::disable()
|
||||
{
|
||||
// enable the USART
|
||||
__HAL_UART_DISABLE(_pUartHandle);
|
||||
return true;
|
||||
}
|
||||
|
||||
void Uart::write(const char * str, unsigned int length /* = 0 */)
|
||||
{
|
||||
if (!length)
|
||||
{
|
||||
length = strlen(str);
|
||||
}
|
||||
|
||||
if (!_bTxDMA)
|
||||
{ // Transmit without DMA
|
||||
// Send next character
|
||||
HAL_UART_Transmit(_pUartHandle, (uint8_t *)str, length, 50);
|
||||
}
|
||||
else
|
||||
{ // TX DMA enabled
|
||||
writeUsingDMA((const uint8_t *)str, length);
|
||||
}
|
||||
}
|
||||
|
||||
void Uart::writeUsingDMA(const uint8_t * str, uint32_t length)
|
||||
{
|
||||
assert(length <= sizeof(_pTxDmaBuffer));
|
||||
|
||||
// Copy data to TX DMA buffer
|
||||
::memcpy(_pTxDmaBuffer, str, length);
|
||||
|
||||
// Check that a Tx process is not already ongoing
|
||||
// (should never happen, but who knows!)
|
||||
while (_pUartHandle->gState != HAL_UART_STATE_READY)
|
||||
{ continue; }
|
||||
|
||||
// Give data to TX DMA
|
||||
HAL_UART_Transmit_DMA(_pUartHandle, _pTxDmaBuffer, length);
|
||||
}
|
||||
|
66
src/platform/f7-disco-gcc/mcu/hal/uart.h
Normal file
@ -0,0 +1,66 @@
|
||||
#ifndef HAL_UART_H
|
||||
#define HAL_UART_H
|
||||
|
||||
#include "config/uart-config.h"
|
||||
#include "cassert"
|
||||
|
||||
#ifndef UART_TX_DMA_BUFFER_SIZE
|
||||
#define UART_TX_DMA_BUFFER_SIZE 128
|
||||
#endif
|
||||
|
||||
/**
|
||||
* @brief Provides general access to the microcontrollers UART peripheral.
|
||||
*/
|
||||
class Uart
|
||||
{
|
||||
friend class Factory;
|
||||
|
||||
public:
|
||||
Uart(const unsigned char uartNbr, UART_HandleTypeDef * uartHandle, bool bTxDMA = false);
|
||||
virtual ~Uart();
|
||||
|
||||
bool initialize();
|
||||
|
||||
bool enable();
|
||||
bool disable();
|
||||
|
||||
void write(const char * str, unsigned int length = 0);
|
||||
|
||||
|
||||
/**
|
||||
* Static accessor to the instances of UART. Used by the factory.
|
||||
* You should not use this method directly. Use the factory to
|
||||
* access an UART instead.
|
||||
*/
|
||||
static inline Uart & uart(const unsigned char uartNbr)
|
||||
{
|
||||
assert(uartNbr < UART_COUNT);
|
||||
return *_sUart[uartNbr];
|
||||
}
|
||||
|
||||
/**
|
||||
* Checks if UART is present and initialized
|
||||
*/
|
||||
static inline bool present(const unsigned char uartNbr)
|
||||
{
|
||||
return (uartNbr < UART_COUNT &&
|
||||
_sInitialized[uartNbr]) ? true : false;
|
||||
}
|
||||
|
||||
protected:
|
||||
void writeUsingDMA(const uint8_t * str, uint32_t length);
|
||||
|
||||
protected:
|
||||
static const unsigned char UART_COUNT = 3; ///< Constant indicating how many USART the MCU has
|
||||
|
||||
unsigned char _uartNbr; ///< Number of UART. Index starting at 0
|
||||
UART_HandleTypeDef * _pUartHandle; ///< Reference to the USART structure
|
||||
|
||||
static Uart * _sUart[UART_COUNT]; ///< Array to check if USB device was created already
|
||||
static bool _sInitialized[UART_COUNT]; ///< Indicates if the UART has been initialized
|
||||
|
||||
const bool _bTxDMA; ///< Use DMA for transmission
|
||||
uint8_t _pTxDmaBuffer[UART_TX_DMA_BUFFER_SIZE]; ///< Buffer used by DMA for transmission
|
||||
};
|
||||
|
||||
#endif // HAL_UART_H
|
21
src/platform/f7-disco-gcc/mcu/mcu.h
Normal file
@ -0,0 +1,21 @@
|
||||
#ifndef MCU_STM32F7_MCU_H
|
||||
#define MCU_STM32F7_MCU_H
|
||||
|
||||
#include "stm32f7xx_hal.h"
|
||||
#include "trace/trace.h"
|
||||
|
||||
class Mcu
|
||||
{
|
||||
public:
|
||||
inline static void msleep(uint32_t msecs) { HAL_Delay(msecs); }
|
||||
inline static void wait() { for (uint32_t i = 1000000; i > 0; i--) continue; }
|
||||
static void reset()
|
||||
{
|
||||
Trace::out("Mcu: Reset");
|
||||
Trace::out("----------------------------------------------------");
|
||||
wait();
|
||||
NVIC_SystemReset();
|
||||
}
|
||||
};
|
||||
|
||||
#endif // MCU_STM32F7_MCU_H
|
10
src/platform/qt/board/board.cpp
Normal file
@ -0,0 +1,10 @@
|
||||
#include "board.h"
|
||||
|
||||
namespace board {
|
||||
|
||||
void initialize()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
} // namespace board
|
12
src/platform/qt/board/board.h
Normal file
@ -0,0 +1,12 @@
|
||||
#ifndef BOARD_BOARD_H
|
||||
#define BOARD_BOARD_H
|
||||
|
||||
#include <QCoreApplication>
|
||||
|
||||
namespace board {
|
||||
|
||||
void initialize();
|
||||
|
||||
}
|
||||
|
||||
#endif // BOARD_BOARD_H
|
78
src/platform/qt/board/ledcontroller.cpp
Normal file
@ -0,0 +1,78 @@
|
||||
#include <QtGlobal>
|
||||
#include "config/ledcontroller-config.h"
|
||||
#if (LEDCONTROLLER_TRACE_ENABLE != 0)
|
||||
#include "trace/trace.h"
|
||||
#endif // LEDCONTROLLER_TRACE_ENABLE
|
||||
#include "ledcontroller.h"
|
||||
|
||||
LedController * LedController::pInstance_ = nullptr;
|
||||
|
||||
LedController::LedController()
|
||||
{
|
||||
assert(!pInstance_); // Only one instance of this class allowed!
|
||||
pInstance_ = this;
|
||||
|
||||
// Initialize the method array with the right methods.
|
||||
ledOperation_[0] = &LedController::setLed0;
|
||||
ledOperation_[1] = &LedController::setLed1;
|
||||
ledOperation_[2] = &LedController::setLed2;
|
||||
ledOperation_[3] = &LedController::setLed3;
|
||||
}
|
||||
|
||||
LedController::~LedController()
|
||||
{
|
||||
}
|
||||
|
||||
void LedController::setLed(uint8_t index, bool bOn)
|
||||
{
|
||||
setLeds(0x01 << index, bOn);
|
||||
}
|
||||
|
||||
void LedController::setLeds(uint8_t ledMask, bool bOn)
|
||||
{
|
||||
uint8_t mask = 0x01;
|
||||
|
||||
for (uint8_t i = 0; i < ledCount(); i++, mask <<= 1)
|
||||
{
|
||||
if ((ledMask & mask) == mask && ledOperation_[i])
|
||||
{
|
||||
(this->*ledOperation_[i])(bOn);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void LedController::setLed0(bool bOn /* = true */)
|
||||
{
|
||||
Q_UNUSED(bOn);
|
||||
|
||||
#if (LEDCONTROLLER_TRACE_ENABLE != 0)
|
||||
Trace::out(" LED0: %s", bOn ? "on" : "off");
|
||||
#endif // LEDCONTROLLER_TRACE_ENABLE
|
||||
}
|
||||
|
||||
void LedController::setLed1(bool bOn /* = true */)
|
||||
{
|
||||
Q_UNUSED(bOn);
|
||||
|
||||
#if (LEDCONTROLLER_TRACE_ENABLE != 0)
|
||||
Trace::out(" LED1: %s", bOn ? "on" : "off");
|
||||
#endif // LEDCONTROLLER_TRACE_ENABLE
|
||||
}
|
||||
|
||||
void LedController::setLed2(bool bOn /* = true */)
|
||||
{
|
||||
Q_UNUSED(bOn);
|
||||
|
||||
#if (LEDCONTROLLER_TRACE_ENABLE != 0)
|
||||
Trace::out(" LED2: %s", bOn ? "on" : "off");
|
||||
#endif // LEDCONTROLLER_TRACE_ENABLE
|
||||
}
|
||||
|
||||
void LedController::setLed3(bool bOn /* = true */)
|
||||
{
|
||||
Q_UNUSED(bOn);
|
||||
|
||||
#if (LEDCONTROLLER_TRACE_ENABLE != 0)
|
||||
Trace::out(" LED3: %s", bOn ? "on" : "off");
|
||||
#endif // LEDCONTROLLER_TRACE_ENABLE
|
||||
}
|
37
src/platform/qt/board/ledcontroller.h
Normal file
@ -0,0 +1,37 @@
|
||||
#ifndef BOARD_LEDCONTROLLER_H
|
||||
#define BOARD_LEDCONTROLLER_H
|
||||
|
||||
#include <cassert>
|
||||
#include <stdint.h>
|
||||
|
||||
class LedController
|
||||
{
|
||||
public:
|
||||
#define LED_COUNT 4
|
||||
|
||||
public:
|
||||
LedController();
|
||||
virtual ~LedController();
|
||||
|
||||
inline static LedController & getInstance() { assert(pInstance_); return *pInstance_; }
|
||||
|
||||
void setLed(uint8_t index, bool bOn = true);
|
||||
void setLeds(uint8_t ledMask, bool bOn = true);
|
||||
|
||||
inline uint8_t ledCount() const { return LED_COUNT; }
|
||||
|
||||
void setLed0(bool bOn = true);
|
||||
void setLed1(bool bOn = true);
|
||||
void setLed2(bool bOn = true);
|
||||
void setLed3(bool bOn = true);
|
||||
|
||||
protected:
|
||||
typedef void (LedController::*ledMethod)(bool bOn); ///< Function prototype to led operation. Used for fast access to LED operation.
|
||||
|
||||
protected:
|
||||
static LedController * pInstance_;
|
||||
|
||||
ledMethod ledOperation_[LED_COUNT]; ///< Array of pointers to led functions.
|
||||
};
|
||||
|
||||
#endif // BOARD_LEDCONTROLLER_H
|
53
src/platform/qt/board/trace.cpp
Normal file
@ -0,0 +1,53 @@
|
||||
#include <config/trace-config.h>
|
||||
|
||||
#if (USE_PLATFORM_QT_TRACE != 0)
|
||||
|
||||
#include <QDebug>
|
||||
#include <QTime>
|
||||
#include "trace/trace.h"
|
||||
|
||||
#define ADD_CRLF_SEQU 0
|
||||
|
||||
static QString getTimeStampString()
|
||||
{
|
||||
return QTime::currentTime().toString("hh:mm:ss.zzz");
|
||||
}
|
||||
|
||||
//static
|
||||
void Trace::initialize()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
void Trace::out(string str)
|
||||
{
|
||||
QString output;
|
||||
#ifdef TRACE_ENABLE_TIMESTAMP
|
||||
output = getTimeStampString() + ": ";
|
||||
#endif // TRACE_ENABLE_TIMESTAMP
|
||||
output.append(str.c_str());
|
||||
|
||||
qDebug(output.toLatin1());
|
||||
}
|
||||
|
||||
void Trace::out(const char * format, ...)
|
||||
{
|
||||
char str[255];
|
||||
|
||||
va_list args;
|
||||
|
||||
va_start(args, format);
|
||||
vsprintf(str, format, args);
|
||||
va_end(args);
|
||||
|
||||
QString output;
|
||||
|
||||
#ifdef TRACE_ENABLE_TIMESTAMP
|
||||
output = getTimeStampString() + ": ";
|
||||
#endif // TRACE_ENABLE_TIMESTAMP
|
||||
output.append(str);
|
||||
|
||||
qDebug(output.toLatin1());
|
||||
}
|
||||
|
||||
#endif // USE_PLATFORM_QT_TRACE
|
6
src/platform/qt/config/ledcontroller-config.h
Normal file
@ -0,0 +1,6 @@
|
||||
#ifndef BOARD_LEDCONTROLLER_DEFAULT_CONFIG_H
|
||||
#define BOARD_LEDCONTROLLER_DEFAULT_CONFIG_H
|
||||
|
||||
#define LEDCONTROLLER_TRACE_ENABLE 1
|
||||
|
||||
#endif // BOARD_LEDCONTROLLER_DEFAULT_CONFIG_H
|
13
src/platform/qt/platform-qt.pri
Normal file
@ -0,0 +1,13 @@
|
||||
|
||||
DEFINES += USE_PLATFORM_QT_TRACE
|
||||
|
||||
INCLUDEPATH += $$PWD
|
||||
|
||||
SOURCES += \
|
||||
$$PWD/board/trace.cpp \
|
||||
$$PWD/board/board.cpp \
|
||||
$$PWD/board/ledcontroller.cpp
|
||||
|
||||
HEADERS += \
|
||||
$$PWD/board/board.h \
|
||||
$$PWD/board/ledcontroller.h
|
10
src/simplified/xf/config/xf-config.h
Normal file
@ -0,0 +1,10 @@
|
||||
#ifndef XF_CONFIG_DEFAULT_H
|
||||
#define XF_CONFIG_DEFAULT_H
|
||||
|
||||
#warning "You should provide your own 'xf-config.h' file in your project!"
|
||||
|
||||
// If you need some inspiration on what to provide in the 'xf-config.h' file
|
||||
// please have a look onto the 'xf-config.h' files provided in the
|
||||
// XF test-bench tests.
|
||||
|
||||
#endif // XF_CONFIG_DEFAULT_H
|
6
src/simplified/xf/core/behavior.cpp
Normal file
@ -0,0 +1,6 @@
|
||||
#include <cassert>
|
||||
#include "xf/timeout.h"
|
||||
#include "xf/initialevent.h"
|
||||
#include "xf/behavior.h"
|
||||
|
||||
// TODO: Implement code for XFBehavior class
|
3
src/simplified/xf/core/customevent.cpp
Normal file
@ -0,0 +1,3 @@
|
||||
#include "xf/customevent.h"
|
||||
|
||||
// TODO: Implement code for XFCustomEvent class
|
3
src/simplified/xf/core/defaulttransition.cpp
Normal file
@ -0,0 +1,3 @@
|
||||
#include "xf/defaulttransition.h"
|
||||
|
||||
// TODO: Implement code for XFDefaultTransition class
|
3
src/simplified/xf/core/initialevent.cpp
Normal file
@ -0,0 +1,3 @@
|
||||
#include "xf/initialevent.h"
|
||||
|
||||
// TODO: Implement code for XFInitialEvent class
|
3
src/simplified/xf/core/timeout.cpp
Normal file
@ -0,0 +1,3 @@
|
||||
#include "xf/timeout.h"
|
||||
|
||||
// TODO: Implement code for XFTimeout class
|