diff --git a/docs/html/annotated.html b/docs/html/annotated.html
deleted file mode 100644
index 6735f3b..0000000
--- a/docs/html/annotated.html
+++ /dev/null
@@ -1,93 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml">
-<head>
-<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
-<meta http-equiv="X-UA-Compatible" content="IE=9"/>
-<meta name="generator" content="Doxygen 1.8.16"/>
-<meta name="viewport" content="width=device-width, initial-scale=1"/>
-<title>B15F: 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">B15F
-   </div>
-   <div id="projectbrief">Board 15 Famulus Edition</div>
-  </td>
- </tr>
- </tbody>
-</table>
-</div>
-<!-- end header part -->
-<!-- Generated by Doxygen 1.8.16 -->
-<script type="text/javascript">
-/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
-var searchBox = new SearchBox("searchBox", "search",false,'Search');
-/* @license-end */
-</script>
-<script type="text/javascript" src="menudata.js"></script>
-<script type="text/javascript" src="menu.js"></script>
-<script type="text/javascript">
-/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
-$(function() {
-  initMenu('',true,false,'search.php','Search');
-  $(document).ready(function() { init_search(); });
-});
-/* @license-end */</script>
-<div id="main-nav"></div>
-</div><!-- top -->
-<!-- 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;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classB15F.html" target="_self">B15F</a></td><td class="desc"></td></tr>
-<tr id="row_1_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classDot.html" target="_self">Dot</a></td><td class="desc"></td></tr>
-<tr id="row_2_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classDriverException.html" target="_self">DriverException</a></td><td class="desc"></td></tr>
-<tr id="row_3_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classPlottyFile.html" target="_self">PlottyFile</a></td><td class="desc"></td></tr>
-<tr id="row_4_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classTimeoutException.html" target="_self">TimeoutException</a></td><td class="desc"></td></tr>
-<tr id="row_5_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classUSART.html" target="_self">USART</a></td><td class="desc"></td></tr>
-<tr id="row_6_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classUSARTException.html" target="_self">USARTException</a></td><td class="desc"></td></tr>
-<tr id="row_7_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classView.html" target="_self">View</a></td><td class="desc"></td></tr>
-<tr id="row_8_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classViewInfo.html" target="_self">ViewInfo</a></td><td class="desc"></td></tr>
-<tr id="row_9_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classViewMonitor.html" target="_self">ViewMonitor</a></td><td class="desc"></td></tr>
-<tr id="row_10_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classViewPromt.html" target="_self">ViewPromt</a></td><td class="desc"></td></tr>
-<tr id="row_11_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classViewSelection.html" target="_self">ViewSelection</a></td><td class="desc"></td></tr>
-</table>
-</div><!-- directory -->
-</div><!-- contents -->
-<!-- start footer part -->
-<hr class="footer"/><address class="footer"><small>
-Generated on Fri Jun 7 2019 14:50:45 for B15F by &#160;<a href="http://www.doxygen.org/index.html">
-<img class="footer" src="doxygen.png" alt="doxygen"/>
-</a> 1.8.16
-</small></address>
-</body>
-</html>
diff --git a/docs/html/b15f_8cpp_source.html b/docs/html/b15f_8cpp_source.html
deleted file mode 100644
index 3f2079d..0000000
--- a/docs/html/b15f_8cpp_source.html
+++ /dev/null
@@ -1,120 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml">
-<head>
-<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
-<meta http-equiv="X-UA-Compatible" content="IE=9"/>
-<meta name="generator" content="Doxygen 1.8.16"/>
-<meta name="viewport" content="width=device-width, initial-scale=1"/>
-<title>B15F: drv/b15f.cpp 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">B15F
-   </div>
-   <div id="projectbrief">Board 15 Famulus Edition</div>
-  </td>
- </tr>
- </tbody>
-</table>
-</div>
-<!-- end header part -->
-<!-- Generated by Doxygen 1.8.16 -->
-<script type="text/javascript">
-/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
-var searchBox = new SearchBox("searchBox", "search",false,'Search');
-/* @license-end */
-</script>
-<script type="text/javascript" src="menudata.js"></script>
-<script type="text/javascript" src="menu.js"></script>
-<script type="text/javascript">
-/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
-$(function() {
-  initMenu('',true,false,'search.php','Search');
-  $(document).ready(function() { init_search(); });
-});
-/* @license-end */</script>
-<div id="main-nav"></div>
-<!-- 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 id="nav-path" class="navpath">
-  <ul>
-<li class="navelem"><a class="el" href="dir_587c94d866dbb2f408f78cf41f9b2f8d.html">drv</a></li>  </ul>
-</div>
-</div><!-- top -->
-<div class="header">
-  <div class="headertitle">
-<div class="title">b15f.cpp</div>  </div>
-</div><!--header-->
-<div class="contents">
-<div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno">    1</span>&#160;<span class="preprocessor">#include &quot;b15f.h&quot;</span></div><div class="line"><a name="l00002"></a><span class="lineno">    2</span>&#160; </div><div class="line"><a name="l00003"></a><span class="lineno">    3</span>&#160;<a class="code" href="classB15F.html">B15F</a> *B15F::instance = <span class="keyword">nullptr</span>;</div><div class="line"><a name="l00004"></a><span class="lineno">    4</span>&#160;errorhandler_t B15F::errorhandler = <span class="keyword">nullptr</span>;</div><div class="line"><a name="l00005"></a><span class="lineno">    5</span>&#160; </div><div class="line"><a name="l00006"></a><span class="lineno">    6</span>&#160;B15F::B15F()</div><div class="line"><a name="l00007"></a><span class="lineno">    7</span>&#160;{</div><div class="line"><a name="l00008"></a><span class="lineno">    8</span>&#160;    init();</div><div class="line"><a name="l00009"></a><span class="lineno">    9</span>&#160;}</div><div class="line"><a name="l00010"></a><span class="lineno">   10</span>&#160; </div><div class="line"><a name="l00011"></a><span class="lineno">   11</span>&#160;<span class="keywordtype">void</span> B15F::init()</div><div class="line"><a name="l00012"></a><span class="lineno">   12</span>&#160;{</div><div class="line"><a name="l00013"></a><span class="lineno">   13</span>&#160; </div><div class="line"><a name="l00014"></a><span class="lineno">   14</span>&#160;    std::string device = <a class="code" href="classB15F.html#a1a7ac52984ed7ecac008a3e4060eee3a">exec</a>(<span class="stringliteral">&quot;bash -c &#39;ls /dev/ttyUSB*&#39;&quot;</span>);</div><div class="line"><a name="l00015"></a><span class="lineno">   15</span>&#160;    <span class="keywordflow">while</span> (device.find(<span class="charliteral">&#39; &#39;</span>) != std::string::npos || device.find(<span class="charliteral">&#39;\n&#39;</span>) != std::string::npos ||</div><div class="line"><a name="l00016"></a><span class="lineno">   16</span>&#160;            device.find(<span class="charliteral">&#39;\t&#39;</span>) != std::string::npos)</div><div class="line"><a name="l00017"></a><span class="lineno">   17</span>&#160;        device.pop_back();</div><div class="line"><a name="l00018"></a><span class="lineno">   18</span>&#160; </div><div class="line"><a name="l00019"></a><span class="lineno">   19</span>&#160;    <span class="keywordflow">if</span> (device.length() == 0)</div><div class="line"><a name="l00020"></a><span class="lineno">   20</span>&#160;        <a class="code" href="classB15F.html#a3f09a418f9e3be5d1d750e4515c96f1e">abort</a>(<span class="stringliteral">&quot;Adapter nicht gefunden&quot;</span>);</div><div class="line"><a name="l00021"></a><span class="lineno">   21</span>&#160; </div><div class="line"><a name="l00022"></a><span class="lineno">   22</span>&#160;    std::cout &lt;&lt; <a class="code" href="classB15F.html#a3b0fc1f85954b2d9c145af4a3af5b1ec">PRE</a> &lt;&lt; <span class="stringliteral">&quot;Verwende Adapter: &quot;</span> &lt;&lt; device &lt;&lt; std::endl;</div><div class="line"><a name="l00023"></a><span class="lineno">   23</span>&#160; </div><div class="line"><a name="l00024"></a><span class="lineno">   24</span>&#160; </div><div class="line"><a name="l00025"></a><span class="lineno">   25</span>&#160;    std::cout &lt;&lt; <a class="code" href="classB15F.html#a3b0fc1f85954b2d9c145af4a3af5b1ec">PRE</a> &lt;&lt; <span class="stringliteral">&quot;Stelle Verbindung mit Adapter her... &quot;</span> &lt;&lt; std::flush;</div><div class="line"><a name="l00026"></a><span class="lineno">   26</span>&#160;    usart.<a class="code" href="classUSART.html#aac63918a8b97ae63ee607cfa39e6d88d">setBaudrate</a>(<a class="code" href="classB15F.html#a7d548d6861cfc69753161bf9cda14f87">BAUDRATE</a>);</div><div class="line"><a name="l00027"></a><span class="lineno">   27</span>&#160;    usart.<a class="code" href="classUSART.html#a5f7e2abda2ec4a68a5fdb8ee2f8a940a">openDevice</a>(device);</div><div class="line"><a name="l00028"></a><span class="lineno">   28</span>&#160;    std::cout &lt;&lt; <span class="stringliteral">&quot;OK&quot;</span> &lt;&lt; std::endl;</div><div class="line"><a name="l00029"></a><span class="lineno">   29</span>&#160; </div><div class="line"><a name="l00030"></a><span class="lineno">   30</span>&#160; </div><div class="line"><a name="l00031"></a><span class="lineno">   31</span>&#160;    std::cout &lt;&lt; <a class="code" href="classB15F.html#a3b0fc1f85954b2d9c145af4a3af5b1ec">PRE</a> &lt;&lt; <span class="stringliteral">&quot;Teste Verbindung... &quot;</span> &lt;&lt; std::flush;</div><div class="line"><a name="l00032"></a><span class="lineno">   32</span>&#160;    uint8_t tries = 3;</div><div class="line"><a name="l00033"></a><span class="lineno">   33</span>&#160;    <span class="keywordflow">while</span> (tries--)</div><div class="line"><a name="l00034"></a><span class="lineno">   34</span>&#160;    {</div><div class="line"><a name="l00035"></a><span class="lineno">   35</span>&#160;        <span class="comment">// verwerfe Daten, die µC noch hat</span></div><div class="line"><a name="l00036"></a><span class="lineno">   36</span>&#160;        <span class="comment">//discard();</span></div><div class="line"><a name="l00037"></a><span class="lineno">   37</span>&#160; </div><div class="line"><a name="l00038"></a><span class="lineno">   38</span>&#160;        <span class="keywordflow">if</span> (!<a class="code" href="classB15F.html#af01983594f2af98ab2b1e514aa036a5d">testConnection</a>())</div><div class="line"><a name="l00039"></a><span class="lineno">   39</span>&#160;            <span class="keywordflow">continue</span>;</div><div class="line"><a name="l00040"></a><span class="lineno">   40</span>&#160; </div><div class="line"><a name="l00041"></a><span class="lineno">   41</span>&#160;        <span class="keywordflow">if</span> (!<a class="code" href="classB15F.html#a7b8a0e2a9156f7dcb05d097f23666a78">testIntConv</a>())</div><div class="line"><a name="l00042"></a><span class="lineno">   42</span>&#160;            <span class="keywordflow">continue</span>;</div><div class="line"><a name="l00043"></a><span class="lineno">   43</span>&#160; </div><div class="line"><a name="l00044"></a><span class="lineno">   44</span>&#160;        <span class="keywordflow">break</span>;</div><div class="line"><a name="l00045"></a><span class="lineno">   45</span>&#160;    }</div><div class="line"><a name="l00046"></a><span class="lineno">   46</span>&#160;    <span class="keywordflow">if</span> (tries == 0)</div><div class="line"><a name="l00047"></a><span class="lineno">   47</span>&#160;        <a class="code" href="classB15F.html#a3f09a418f9e3be5d1d750e4515c96f1e">abort</a>(<span class="stringliteral">&quot;Verbindungstest fehlgeschlagen. Neueste Version im Einsatz?&quot;</span>);</div><div class="line"><a name="l00048"></a><span class="lineno">   48</span>&#160;    std::cout &lt;&lt; <span class="stringliteral">&quot;OK&quot;</span> &lt;&lt; std::endl;</div><div class="line"><a name="l00049"></a><span class="lineno">   49</span>&#160; </div><div class="line"><a name="l00050"></a><span class="lineno">   50</span>&#160; </div><div class="line"><a name="l00051"></a><span class="lineno">   51</span>&#160;    <span class="comment">// Gib board info aus</span></div><div class="line"><a name="l00052"></a><span class="lineno">   52</span>&#160;    std::vector&lt;std::string&gt; info = <a class="code" href="classB15F.html#a4f01677e73d6d172a2c1cae9427a591b">getBoardInfo</a>();</div><div class="line"><a name="l00053"></a><span class="lineno">   53</span>&#160;    std::cout &lt;&lt; <a class="code" href="classB15F.html#a3b0fc1f85954b2d9c145af4a3af5b1ec">PRE</a> &lt;&lt; <span class="stringliteral">&quot;AVR Firmware Version: &quot;</span> &lt;&lt; info[0] &lt;&lt; <span class="stringliteral">&quot; um &quot;</span> &lt;&lt; info[1] &lt;&lt; <span class="stringliteral">&quot; Uhr (&quot;</span> &lt;&lt; info[2] &lt;&lt; <span class="stringliteral">&quot;)&quot;</span></div><div class="line"><a name="l00054"></a><span class="lineno">   54</span>&#160;              &lt;&lt; std::endl;</div><div class="line"><a name="l00055"></a><span class="lineno">   55</span>&#160;}</div><div class="line"><a name="l00056"></a><span class="lineno">   56</span>&#160; </div><div class="line"><a name="l00057"></a><span class="lineno"><a class="line" href="classB15F.html#a52557b375443c180a044e7d4e80a1ae7">   57</a></span>&#160;<span class="keywordtype">void</span> <a class="code" href="classB15F.html#a52557b375443c180a044e7d4e80a1ae7">B15F::reconnect</a>()</div><div class="line"><a name="l00058"></a><span class="lineno">   58</span>&#160;{</div><div class="line"><a name="l00059"></a><span class="lineno">   59</span>&#160;    uint8_t tries = <a class="code" href="classB15F.html#a6c4895bdbcd71ff6743becf97985c2dc">RECONNECT_TRIES</a>;</div><div class="line"><a name="l00060"></a><span class="lineno">   60</span>&#160;    <span class="keywordflow">while</span> (tries--)</div><div class="line"><a name="l00061"></a><span class="lineno">   61</span>&#160;    {</div><div class="line"><a name="l00062"></a><span class="lineno">   62</span>&#160;        <a class="code" href="classB15F.html#aaffce20afb9f06bc4b7556c70ce76416">delay_ms</a>(<a class="code" href="classB15F.html#a040951746fbfd632e12bd1ad14578816">RECONNECT_TIMEOUT</a>);</div><div class="line"><a name="l00063"></a><span class="lineno">   63</span>&#160;        <a class="code" href="classB15F.html#ae4740cd473f40a1a4121dfa66b25e1d5">discard</a>();</div><div class="line"><a name="l00064"></a><span class="lineno">   64</span>&#160; </div><div class="line"><a name="l00065"></a><span class="lineno">   65</span>&#160;        <span class="keywordflow">if</span> (<a class="code" href="classB15F.html#af01983594f2af98ab2b1e514aa036a5d">testConnection</a>())</div><div class="line"><a name="l00066"></a><span class="lineno">   66</span>&#160;            <span class="keywordflow">return</span>;</div><div class="line"><a name="l00067"></a><span class="lineno">   67</span>&#160;    }</div><div class="line"><a name="l00068"></a><span class="lineno">   68</span>&#160; </div><div class="line"><a name="l00069"></a><span class="lineno">   69</span>&#160;    <a class="code" href="classB15F.html#a3f09a418f9e3be5d1d750e4515c96f1e">abort</a>(<span class="stringliteral">&quot;Verbindung kann nicht repariert werden&quot;</span>);</div><div class="line"><a name="l00070"></a><span class="lineno">   70</span>&#160;}</div><div class="line"><a name="l00071"></a><span class="lineno">   71</span>&#160; </div><div class="line"><a name="l00072"></a><span class="lineno"><a class="line" href="classB15F.html#ae4740cd473f40a1a4121dfa66b25e1d5">   72</a></span>&#160;<span class="keywordtype">void</span> <a class="code" href="classB15F.html#ae4740cd473f40a1a4121dfa66b25e1d5">B15F::discard</a>(<span class="keywordtype">void</span>)</div><div class="line"><a name="l00073"></a><span class="lineno">   73</span>&#160;{</div><div class="line"><a name="l00074"></a><span class="lineno">   74</span>&#160;    <span class="keywordflow">try</span></div><div class="line"><a name="l00075"></a><span class="lineno">   75</span>&#160;    {</div><div class="line"><a name="l00076"></a><span class="lineno">   76</span>&#160;        uint8_t rq[] =</div><div class="line"><a name="l00077"></a><span class="lineno">   77</span>&#160;        {</div><div class="line"><a name="l00078"></a><span class="lineno">   78</span>&#160;            RQ_DISC</div><div class="line"><a name="l00079"></a><span class="lineno">   79</span>&#160;        };</div><div class="line"><a name="l00080"></a><span class="lineno">   80</span>&#160; </div><div class="line"><a name="l00081"></a><span class="lineno">   81</span>&#160;        usart.<a class="code" href="classUSART.html#a756d268a8762c316f91ca3238972b0c1">clearOutputBuffer</a>();</div><div class="line"><a name="l00082"></a><span class="lineno">   82</span>&#160;        <span class="keywordflow">for</span> (uint8_t i = 0; i &lt; 16; i++)</div><div class="line"><a name="l00083"></a><span class="lineno">   83</span>&#160;        {</div><div class="line"><a name="l00084"></a><span class="lineno">   84</span>&#160;            usart.<a class="code" href="classUSART.html#a41b19dd58f307015b73e154048cd74ca">transmit</a>(&amp;rq[0], 0, <span class="keyword">sizeof</span>(rq)); <span class="comment">// sende discard Befehl (verwerfe input)</span></div><div class="line"><a name="l00085"></a><span class="lineno">   85</span>&#160;            <a class="code" href="classB15F.html#aaffce20afb9f06bc4b7556c70ce76416">delay_ms</a>(4);</div><div class="line"><a name="l00086"></a><span class="lineno">   86</span>&#160;        }</div><div class="line"><a name="l00087"></a><span class="lineno">   87</span>&#160;        usart.<a class="code" href="classUSART.html#a28a2b4c5ed66b2c3a81196f76884f156">clearInputBuffer</a>();</div><div class="line"><a name="l00088"></a><span class="lineno">   88</span>&#160;    }</div><div class="line"><a name="l00089"></a><span class="lineno">   89</span>&#160;    <span class="keywordflow">catch</span> (std::exception &amp;ex)</div><div class="line"><a name="l00090"></a><span class="lineno">   90</span>&#160;    {</div><div class="line"><a name="l00091"></a><span class="lineno">   91</span>&#160;        <a class="code" href="classB15F.html#a3f09a418f9e3be5d1d750e4515c96f1e">abort</a>(ex);</div><div class="line"><a name="l00092"></a><span class="lineno">   92</span>&#160;    }</div><div class="line"><a name="l00093"></a><span class="lineno">   93</span>&#160;}</div><div class="line"><a name="l00094"></a><span class="lineno">   94</span>&#160; </div><div class="line"><a name="l00095"></a><span class="lineno"><a class="line" href="classB15F.html#af01983594f2af98ab2b1e514aa036a5d">   95</a></span>&#160;<span class="keywordtype">bool</span> <a class="code" href="classB15F.html#af01983594f2af98ab2b1e514aa036a5d">B15F::testConnection</a>()</div><div class="line"><a name="l00096"></a><span class="lineno">   96</span>&#160;{</div><div class="line"><a name="l00097"></a><span class="lineno">   97</span>&#160;    <span class="comment">// erzeuge zufälliges Byte</span></div><div class="line"><a name="l00098"></a><span class="lineno">   98</span>&#160;    srand(time(NULL));</div><div class="line"><a name="l00099"></a><span class="lineno">   99</span>&#160;    uint8_t dummy = rand() % 256;</div><div class="line"><a name="l00100"></a><span class="lineno">  100</span>&#160; </div><div class="line"><a name="l00101"></a><span class="lineno">  101</span>&#160;    uint8_t rq[] =</div><div class="line"><a name="l00102"></a><span class="lineno">  102</span>&#160;    {</div><div class="line"><a name="l00103"></a><span class="lineno">  103</span>&#160;        RQ_TEST,</div><div class="line"><a name="l00104"></a><span class="lineno">  104</span>&#160;        dummy</div><div class="line"><a name="l00105"></a><span class="lineno">  105</span>&#160;    };</div><div class="line"><a name="l00106"></a><span class="lineno">  106</span>&#160;    usart.<a class="code" href="classUSART.html#a41b19dd58f307015b73e154048cd74ca">transmit</a>(&amp;rq[0], 0, <span class="keyword">sizeof</span>(rq));</div><div class="line"><a name="l00107"></a><span class="lineno">  107</span>&#160; </div><div class="line"><a name="l00108"></a><span class="lineno">  108</span>&#160;    uint8_t aw[2];</div><div class="line"><a name="l00109"></a><span class="lineno">  109</span>&#160;    usart.<a class="code" href="classUSART.html#a0fdc238203852f00bd750127602b2a6a">receive</a>(&amp;aw[0], 0, <span class="keyword">sizeof</span>(aw));</div><div class="line"><a name="l00110"></a><span class="lineno">  110</span>&#160; </div><div class="line"><a name="l00111"></a><span class="lineno">  111</span>&#160;    <span class="keywordflow">return</span> aw[0] == <a class="code" href="classB15F.html#ab01299858f74a6cec598688562e0ad02">MSG_OK</a> &amp;&amp; aw[1] == dummy;</div><div class="line"><a name="l00112"></a><span class="lineno">  112</span>&#160;}</div><div class="line"><a name="l00113"></a><span class="lineno">  113</span>&#160; </div><div class="line"><a name="l00114"></a><span class="lineno"><a class="line" href="classB15F.html#a7b8a0e2a9156f7dcb05d097f23666a78">  114</a></span>&#160;<span class="keywordtype">bool</span> <a class="code" href="classB15F.html#a7b8a0e2a9156f7dcb05d097f23666a78">B15F::testIntConv</a>()</div><div class="line"><a name="l00115"></a><span class="lineno">  115</span>&#160;{</div><div class="line"><a name="l00116"></a><span class="lineno">  116</span>&#160;    srand(time(NULL));</div><div class="line"><a name="l00117"></a><span class="lineno">  117</span>&#160;    uint16_t dummy = rand() % (0xFFFF / 3);</div><div class="line"><a name="l00118"></a><span class="lineno">  118</span>&#160; </div><div class="line"><a name="l00119"></a><span class="lineno">  119</span>&#160;    uint8_t rq[] =</div><div class="line"><a name="l00120"></a><span class="lineno">  120</span>&#160;    {</div><div class="line"><a name="l00121"></a><span class="lineno">  121</span>&#160;        RQ_INT,</div><div class="line"><a name="l00122"></a><span class="lineno">  122</span>&#160;        static_cast&lt;uint8_t &gt;(dummy &amp; 0xFF),</div><div class="line"><a name="l00123"></a><span class="lineno">  123</span>&#160;        static_cast&lt;uint8_t &gt;(dummy &gt;&gt; 8)</div><div class="line"><a name="l00124"></a><span class="lineno">  124</span>&#160;    };</div><div class="line"><a name="l00125"></a><span class="lineno">  125</span>&#160;    usart.<a class="code" href="classUSART.html#a41b19dd58f307015b73e154048cd74ca">transmit</a>(&amp;rq[0], 0, <span class="keyword">sizeof</span>(rq));</div><div class="line"><a name="l00126"></a><span class="lineno">  126</span>&#160; </div><div class="line"><a name="l00127"></a><span class="lineno">  127</span>&#160;    uint16_t aw;</div><div class="line"><a name="l00128"></a><span class="lineno">  128</span>&#160;    usart.<a class="code" href="classUSART.html#a0fdc238203852f00bd750127602b2a6a">receive</a>(reinterpret_cast&lt;uint8_t *&gt;(&amp;aw), 0, <span class="keyword">sizeof</span>(aw));</div><div class="line"><a name="l00129"></a><span class="lineno">  129</span>&#160; </div><div class="line"><a name="l00130"></a><span class="lineno">  130</span>&#160;    <span class="keywordflow">return</span> aw == dummy * 3;</div><div class="line"><a name="l00131"></a><span class="lineno">  131</span>&#160;}</div><div class="line"><a name="l00132"></a><span class="lineno">  132</span>&#160; </div><div class="line"><a name="l00133"></a><span class="lineno">  133</span>&#160; </div><div class="line"><a name="l00134"></a><span class="lineno"><a class="line" href="classB15F.html#a4f01677e73d6d172a2c1cae9427a591b">  134</a></span>&#160;std::vector&lt;std::string&gt; <a class="code" href="classB15F.html#a4f01677e73d6d172a2c1cae9427a591b">B15F::getBoardInfo</a>(<span class="keywordtype">void</span>)</div><div class="line"><a name="l00135"></a><span class="lineno">  135</span>&#160;{</div><div class="line"><a name="l00136"></a><span class="lineno">  136</span>&#160;    std::vector&lt;std::string&gt; info;</div><div class="line"><a name="l00137"></a><span class="lineno">  137</span>&#160; </div><div class="line"><a name="l00138"></a><span class="lineno">  138</span>&#160;    uint8_t rq[] =</div><div class="line"><a name="l00139"></a><span class="lineno">  139</span>&#160;    {</div><div class="line"><a name="l00140"></a><span class="lineno">  140</span>&#160;        RQ_INFO</div><div class="line"><a name="l00141"></a><span class="lineno">  141</span>&#160;    };</div><div class="line"><a name="l00142"></a><span class="lineno">  142</span>&#160;    usart.<a class="code" href="classUSART.html#a41b19dd58f307015b73e154048cd74ca">transmit</a>(&amp;rq[0], 0, <span class="keyword">sizeof</span>(rq));</div><div class="line"><a name="l00143"></a><span class="lineno">  143</span>&#160; </div><div class="line"><a name="l00144"></a><span class="lineno">  144</span>&#160;    uint8_t n;</div><div class="line"><a name="l00145"></a><span class="lineno">  145</span>&#160;    usart.<a class="code" href="classUSART.html#a0fdc238203852f00bd750127602b2a6a">receive</a>(&amp;n, 0, <span class="keyword">sizeof</span>(n));</div><div class="line"><a name="l00146"></a><span class="lineno">  146</span>&#160;    <span class="keywordflow">while</span> (n--)</div><div class="line"><a name="l00147"></a><span class="lineno">  147</span>&#160;    {</div><div class="line"><a name="l00148"></a><span class="lineno">  148</span>&#160;        uint8_t len;</div><div class="line"><a name="l00149"></a><span class="lineno">  149</span>&#160;        usart.<a class="code" href="classUSART.html#a0fdc238203852f00bd750127602b2a6a">receive</a>(&amp;len, 0, <span class="keyword">sizeof</span>(len));</div><div class="line"><a name="l00150"></a><span class="lineno">  150</span>&#160; </div><div class="line"><a name="l00151"></a><span class="lineno">  151</span>&#160;        <span class="keywordtype">char</span> str[len + 1];</div><div class="line"><a name="l00152"></a><span class="lineno">  152</span>&#160;        str[len] = <span class="charliteral">&#39;\0&#39;</span>;</div><div class="line"><a name="l00153"></a><span class="lineno">  153</span>&#160;        usart.<a class="code" href="classUSART.html#a0fdc238203852f00bd750127602b2a6a">receive</a>(reinterpret_cast&lt;uint8_t *&gt;(&amp;str[0]), 0, len);</div><div class="line"><a name="l00154"></a><span class="lineno">  154</span>&#160; </div><div class="line"><a name="l00155"></a><span class="lineno">  155</span>&#160;        info.push_back(std::string(str));</div><div class="line"><a name="l00156"></a><span class="lineno">  156</span>&#160;    }</div><div class="line"><a name="l00157"></a><span class="lineno">  157</span>&#160; </div><div class="line"><a name="l00158"></a><span class="lineno">  158</span>&#160;    uint8_t aw;</div><div class="line"><a name="l00159"></a><span class="lineno">  159</span>&#160;    usart.<a class="code" href="classUSART.html#a0fdc238203852f00bd750127602b2a6a">receive</a>(&amp;aw, 0, <span class="keyword">sizeof</span>(aw));</div><div class="line"><a name="l00160"></a><span class="lineno">  160</span>&#160;    <span class="keywordflow">if</span> (aw != <a class="code" href="classB15F.html#ab01299858f74a6cec598688562e0ad02">MSG_OK</a>)</div><div class="line"><a name="l00161"></a><span class="lineno">  161</span>&#160;        <a class="code" href="classB15F.html#a3f09a418f9e3be5d1d750e4515c96f1e">abort</a>(<span class="stringliteral">&quot;Board Info fehlerhalft: code &quot;</span> + std::to_string((<span class="keywordtype">int</span>) aw));</div><div class="line"><a name="l00162"></a><span class="lineno">  162</span>&#160; </div><div class="line"><a name="l00163"></a><span class="lineno">  163</span>&#160;    <span class="keywordflow">return</span> info;</div><div class="line"><a name="l00164"></a><span class="lineno">  164</span>&#160;}</div><div class="line"><a name="l00165"></a><span class="lineno">  165</span>&#160; </div><div class="line"><a name="l00166"></a><span class="lineno"><a class="line" href="classB15F.html#ad9bf80ee2485fb5aac9926c6ef0731f1">  166</a></span>&#160;<span class="keywordtype">bool</span> <a class="code" href="classB15F.html#ad9bf80ee2485fb5aac9926c6ef0731f1">B15F::activateSelfTestMode</a>()</div><div class="line"><a name="l00167"></a><span class="lineno">  167</span>&#160;{</div><div class="line"><a name="l00168"></a><span class="lineno">  168</span>&#160;    uint8_t rq[] =</div><div class="line"><a name="l00169"></a><span class="lineno">  169</span>&#160;    {</div><div class="line"><a name="l00170"></a><span class="lineno">  170</span>&#160;        RQ_ST</div><div class="line"><a name="l00171"></a><span class="lineno">  171</span>&#160;    };</div><div class="line"><a name="l00172"></a><span class="lineno">  172</span>&#160;    usart.<a class="code" href="classUSART.html#a41b19dd58f307015b73e154048cd74ca">transmit</a>(&amp;rq[0], 0, <span class="keyword">sizeof</span>(rq));</div><div class="line"><a name="l00173"></a><span class="lineno">  173</span>&#160; </div><div class="line"><a name="l00174"></a><span class="lineno">  174</span>&#160;    uint8_t aw;</div><div class="line"><a name="l00175"></a><span class="lineno">  175</span>&#160;    usart.<a class="code" href="classUSART.html#a0fdc238203852f00bd750127602b2a6a">receive</a>(&amp;aw, 0, <span class="keyword">sizeof</span>(aw));</div><div class="line"><a name="l00176"></a><span class="lineno">  176</span>&#160;    <span class="keywordflow">return</span> aw == <a class="code" href="classB15F.html#ab01299858f74a6cec598688562e0ad02">MSG_OK</a>;</div><div class="line"><a name="l00177"></a><span class="lineno">  177</span>&#160;}</div><div class="line"><a name="l00178"></a><span class="lineno">  178</span>&#160; </div><div class="line"><a name="l00179"></a><span class="lineno"><a class="line" href="classB15F.html#a13797edea1c50278988373acbd110064">  179</a></span>&#160;<span class="keywordtype">bool</span> <a class="code" href="classB15F.html#a13797edea1c50278988373acbd110064">B15F::digitalWrite0</a>(uint8_t port)</div><div class="line"><a name="l00180"></a><span class="lineno">  180</span>&#160;{</div><div class="line"><a name="l00181"></a><span class="lineno">  181</span>&#160;    uint8_t rq[] =</div><div class="line"><a name="l00182"></a><span class="lineno">  182</span>&#160;    {</div><div class="line"><a name="l00183"></a><span class="lineno">  183</span>&#160;        RQ_BA0,</div><div class="line"><a name="l00184"></a><span class="lineno">  184</span>&#160;        port</div><div class="line"><a name="l00185"></a><span class="lineno">  185</span>&#160;    };</div><div class="line"><a name="l00186"></a><span class="lineno">  186</span>&#160;    usart.<a class="code" href="classUSART.html#a41b19dd58f307015b73e154048cd74ca">transmit</a>(&amp;rq[0], 0, <span class="keyword">sizeof</span>(rq));</div><div class="line"><a name="l00187"></a><span class="lineno">  187</span>&#160; </div><div class="line"><a name="l00188"></a><span class="lineno">  188</span>&#160;    uint8_t aw;</div><div class="line"><a name="l00189"></a><span class="lineno">  189</span>&#160;    usart.<a class="code" href="classUSART.html#a0fdc238203852f00bd750127602b2a6a">receive</a>(&amp;aw, 0, <span class="keyword">sizeof</span>(aw));</div><div class="line"><a name="l00190"></a><span class="lineno">  190</span>&#160;    <span class="keywordflow">return</span> aw == <a class="code" href="classB15F.html#ab01299858f74a6cec598688562e0ad02">MSG_OK</a>;</div><div class="line"><a name="l00191"></a><span class="lineno">  191</span>&#160;}</div><div class="line"><a name="l00192"></a><span class="lineno">  192</span>&#160; </div><div class="line"><a name="l00193"></a><span class="lineno"><a class="line" href="classB15F.html#aa225e7fc813849634063e071ef25db1b">  193</a></span>&#160;<span class="keywordtype">bool</span> <a class="code" href="classB15F.html#aa225e7fc813849634063e071ef25db1b">B15F::digitalWrite1</a>(uint8_t port)</div><div class="line"><a name="l00194"></a><span class="lineno">  194</span>&#160;{</div><div class="line"><a name="l00195"></a><span class="lineno">  195</span>&#160;    uint8_t rq[] =</div><div class="line"><a name="l00196"></a><span class="lineno">  196</span>&#160;    {</div><div class="line"><a name="l00197"></a><span class="lineno">  197</span>&#160;        RQ_BA1,</div><div class="line"><a name="l00198"></a><span class="lineno">  198</span>&#160;        port</div><div class="line"><a name="l00199"></a><span class="lineno">  199</span>&#160;    };</div><div class="line"><a name="l00200"></a><span class="lineno">  200</span>&#160;    usart.<a class="code" href="classUSART.html#a41b19dd58f307015b73e154048cd74ca">transmit</a>(&amp;rq[0], 0, <span class="keyword">sizeof</span>(rq));</div><div class="line"><a name="l00201"></a><span class="lineno">  201</span>&#160; </div><div class="line"><a name="l00202"></a><span class="lineno">  202</span>&#160;    uint8_t aw;</div><div class="line"><a name="l00203"></a><span class="lineno">  203</span>&#160;    usart.<a class="code" href="classUSART.html#a0fdc238203852f00bd750127602b2a6a">receive</a>(&amp;aw, 0, <span class="keyword">sizeof</span>(aw));</div><div class="line"><a name="l00204"></a><span class="lineno">  204</span>&#160;    <span class="keywordflow">return</span> aw == <a class="code" href="classB15F.html#ab01299858f74a6cec598688562e0ad02">MSG_OK</a>;</div><div class="line"><a name="l00205"></a><span class="lineno">  205</span>&#160;}</div><div class="line"><a name="l00206"></a><span class="lineno">  206</span>&#160; </div><div class="line"><a name="l00207"></a><span class="lineno"><a class="line" href="classB15F.html#ae0df6d423deeb2fd610968bd1c72060e">  207</a></span>&#160;uint8_t <a class="code" href="classB15F.html#ae0df6d423deeb2fd610968bd1c72060e">B15F::digitalRead0</a>()</div><div class="line"><a name="l00208"></a><span class="lineno">  208</span>&#160;{</div><div class="line"><a name="l00209"></a><span class="lineno">  209</span>&#160;    usart.<a class="code" href="classUSART.html#a28a2b4c5ed66b2c3a81196f76884f156">clearInputBuffer</a>();</div><div class="line"><a name="l00210"></a><span class="lineno">  210</span>&#160;    uint8_t rq[] =</div><div class="line"><a name="l00211"></a><span class="lineno">  211</span>&#160;    {</div><div class="line"><a name="l00212"></a><span class="lineno">  212</span>&#160;        RQ_BE0</div><div class="line"><a name="l00213"></a><span class="lineno">  213</span>&#160;    };</div><div class="line"><a name="l00214"></a><span class="lineno">  214</span>&#160;    usart.<a class="code" href="classUSART.html#a41b19dd58f307015b73e154048cd74ca">transmit</a>(&amp;rq[0], 0, <span class="keyword">sizeof</span>(rq));</div><div class="line"><a name="l00215"></a><span class="lineno">  215</span>&#160; </div><div class="line"><a name="l00216"></a><span class="lineno">  216</span>&#160;    uint8_t aw;</div><div class="line"><a name="l00217"></a><span class="lineno">  217</span>&#160;    usart.<a class="code" href="classUSART.html#a0fdc238203852f00bd750127602b2a6a">receive</a>(&amp;aw, 0, <span class="keyword">sizeof</span>(aw));</div><div class="line"><a name="l00218"></a><span class="lineno">  218</span>&#160;    <span class="keywordflow">return</span> aw;</div><div class="line"><a name="l00219"></a><span class="lineno">  219</span>&#160;}</div><div class="line"><a name="l00220"></a><span class="lineno">  220</span>&#160; </div><div class="line"><a name="l00221"></a><span class="lineno"><a class="line" href="classB15F.html#afc76b612dd4faeee0ac02a66b65af5f2">  221</a></span>&#160;uint8_t <a class="code" href="classB15F.html#afc76b612dd4faeee0ac02a66b65af5f2">B15F::digitalRead1</a>()</div><div class="line"><a name="l00222"></a><span class="lineno">  222</span>&#160;{</div><div class="line"><a name="l00223"></a><span class="lineno">  223</span>&#160;    usart.<a class="code" href="classUSART.html#a28a2b4c5ed66b2c3a81196f76884f156">clearInputBuffer</a>();</div><div class="line"><a name="l00224"></a><span class="lineno">  224</span>&#160;    uint8_t rq[] =</div><div class="line"><a name="l00225"></a><span class="lineno">  225</span>&#160;    {</div><div class="line"><a name="l00226"></a><span class="lineno">  226</span>&#160;        RQ_BE1</div><div class="line"><a name="l00227"></a><span class="lineno">  227</span>&#160;    };</div><div class="line"><a name="l00228"></a><span class="lineno">  228</span>&#160;    usart.<a class="code" href="classUSART.html#a41b19dd58f307015b73e154048cd74ca">transmit</a>(&amp;rq[0], 0, <span class="keyword">sizeof</span>(rq));</div><div class="line"><a name="l00229"></a><span class="lineno">  229</span>&#160; </div><div class="line"><a name="l00230"></a><span class="lineno">  230</span>&#160;    uint8_t aw;</div><div class="line"><a name="l00231"></a><span class="lineno">  231</span>&#160;    usart.<a class="code" href="classUSART.html#a0fdc238203852f00bd750127602b2a6a">receive</a>(&amp;aw, 0, <span class="keyword">sizeof</span>(aw));</div><div class="line"><a name="l00232"></a><span class="lineno">  232</span>&#160;    <span class="keywordflow">return</span> aw;</div><div class="line"><a name="l00233"></a><span class="lineno">  233</span>&#160;}</div><div class="line"><a name="l00234"></a><span class="lineno">  234</span>&#160; </div><div class="line"><a name="l00235"></a><span class="lineno"><a class="line" href="classB15F.html#a6f858f21ea81d491b5031b3644a2239a">  235</a></span>&#160;uint8_t <a class="code" href="classB15F.html#a6f858f21ea81d491b5031b3644a2239a">B15F::readDipSwitch</a>()</div><div class="line"><a name="l00236"></a><span class="lineno">  236</span>&#160;{</div><div class="line"><a name="l00237"></a><span class="lineno">  237</span>&#160;    usart.<a class="code" href="classUSART.html#a28a2b4c5ed66b2c3a81196f76884f156">clearInputBuffer</a>();</div><div class="line"><a name="l00238"></a><span class="lineno">  238</span>&#160;    uint8_t rq[] =</div><div class="line"><a name="l00239"></a><span class="lineno">  239</span>&#160;    {</div><div class="line"><a name="l00240"></a><span class="lineno">  240</span>&#160;        RQ_DSW</div><div class="line"><a name="l00241"></a><span class="lineno">  241</span>&#160;    };</div><div class="line"><a name="l00242"></a><span class="lineno">  242</span>&#160;    usart.<a class="code" href="classUSART.html#a41b19dd58f307015b73e154048cd74ca">transmit</a>(&amp;rq[0], 0, <span class="keyword">sizeof</span>(rq));</div><div class="line"><a name="l00243"></a><span class="lineno">  243</span>&#160; </div><div class="line"><a name="l00244"></a><span class="lineno">  244</span>&#160;    uint8_t aw;</div><div class="line"><a name="l00245"></a><span class="lineno">  245</span>&#160;    usart.<a class="code" href="classUSART.html#a0fdc238203852f00bd750127602b2a6a">receive</a>(&amp;aw, 0, <span class="keyword">sizeof</span>(aw));</div><div class="line"><a name="l00246"></a><span class="lineno">  246</span>&#160;    <span class="keywordflow">return</span> aw;</div><div class="line"><a name="l00247"></a><span class="lineno">  247</span>&#160;}</div><div class="line"><a name="l00248"></a><span class="lineno">  248</span>&#160; </div><div class="line"><a name="l00249"></a><span class="lineno"><a class="line" href="classB15F.html#afc55fd590c7fa5c942d100cb60c4b0d3">  249</a></span>&#160;<span class="keywordtype">bool</span> <a class="code" href="classB15F.html#afc55fd590c7fa5c942d100cb60c4b0d3">B15F::analogWrite0</a>(uint16_t value)</div><div class="line"><a name="l00250"></a><span class="lineno">  250</span>&#160;{</div><div class="line"><a name="l00251"></a><span class="lineno">  251</span>&#160;    uint8_t rq[] =</div><div class="line"><a name="l00252"></a><span class="lineno">  252</span>&#160;    {</div><div class="line"><a name="l00253"></a><span class="lineno">  253</span>&#160;        RQ_AA0,</div><div class="line"><a name="l00254"></a><span class="lineno">  254</span>&#160;        static_cast&lt;uint8_t &gt;(value &amp; 0xFF),</div><div class="line"><a name="l00255"></a><span class="lineno">  255</span>&#160;        static_cast&lt;uint8_t &gt;(value &gt;&gt; 8)</div><div class="line"><a name="l00256"></a><span class="lineno">  256</span>&#160;    };</div><div class="line"><a name="l00257"></a><span class="lineno">  257</span>&#160;    usart.<a class="code" href="classUSART.html#a41b19dd58f307015b73e154048cd74ca">transmit</a>(&amp;rq[0], 0, <span class="keyword">sizeof</span>(rq));</div><div class="line"><a name="l00258"></a><span class="lineno">  258</span>&#160; </div><div class="line"><a name="l00259"></a><span class="lineno">  259</span>&#160;    uint8_t aw;</div><div class="line"><a name="l00260"></a><span class="lineno">  260</span>&#160;    usart.<a class="code" href="classUSART.html#a0fdc238203852f00bd750127602b2a6a">receive</a>(&amp;aw, 0, <span class="keyword">sizeof</span>(aw));</div><div class="line"><a name="l00261"></a><span class="lineno">  261</span>&#160;    <span class="keywordflow">return</span> aw == <a class="code" href="classB15F.html#ab01299858f74a6cec598688562e0ad02">MSG_OK</a>;</div><div class="line"><a name="l00262"></a><span class="lineno">  262</span>&#160;}</div><div class="line"><a name="l00263"></a><span class="lineno">  263</span>&#160; </div><div class="line"><a name="l00264"></a><span class="lineno"><a class="line" href="classB15F.html#a7f1becceac744f5cd2ad529748fd836f">  264</a></span>&#160;<span class="keywordtype">bool</span> <a class="code" href="classB15F.html#a7f1becceac744f5cd2ad529748fd836f">B15F::analogWrite1</a>(uint16_t value)</div><div class="line"><a name="l00265"></a><span class="lineno">  265</span>&#160;{</div><div class="line"><a name="l00266"></a><span class="lineno">  266</span>&#160;    uint8_t rq[] =</div><div class="line"><a name="l00267"></a><span class="lineno">  267</span>&#160;    {</div><div class="line"><a name="l00268"></a><span class="lineno">  268</span>&#160;        RQ_AA1,</div><div class="line"><a name="l00269"></a><span class="lineno">  269</span>&#160;        static_cast&lt;uint8_t &gt;(value &amp; 0xFF),</div><div class="line"><a name="l00270"></a><span class="lineno">  270</span>&#160;        static_cast&lt;uint8_t &gt;(value &gt;&gt; 8)</div><div class="line"><a name="l00271"></a><span class="lineno">  271</span>&#160;    };</div><div class="line"><a name="l00272"></a><span class="lineno">  272</span>&#160;    usart.<a class="code" href="classUSART.html#a41b19dd58f307015b73e154048cd74ca">transmit</a>(&amp;rq[0], 0, <span class="keyword">sizeof</span>(rq));</div><div class="line"><a name="l00273"></a><span class="lineno">  273</span>&#160; </div><div class="line"><a name="l00274"></a><span class="lineno">  274</span>&#160;    uint8_t aw;</div><div class="line"><a name="l00275"></a><span class="lineno">  275</span>&#160;    usart.<a class="code" href="classUSART.html#a0fdc238203852f00bd750127602b2a6a">receive</a>(&amp;aw, 0, <span class="keyword">sizeof</span>(aw));</div><div class="line"><a name="l00276"></a><span class="lineno">  276</span>&#160;    <span class="keywordflow">return</span> aw == <a class="code" href="classB15F.html#ab01299858f74a6cec598688562e0ad02">MSG_OK</a>;</div><div class="line"><a name="l00277"></a><span class="lineno">  277</span>&#160;}</div><div class="line"><a name="l00278"></a><span class="lineno">  278</span>&#160; </div><div class="line"><a name="l00279"></a><span class="lineno"><a class="line" href="classB15F.html#ae0bd1f69751e2dc3c462db9213fc4627">  279</a></span>&#160;uint16_t <a class="code" href="classB15F.html#ae0bd1f69751e2dc3c462db9213fc4627">B15F::analogRead</a>(uint8_t channel)</div><div class="line"><a name="l00280"></a><span class="lineno">  280</span>&#160;{</div><div class="line"><a name="l00281"></a><span class="lineno">  281</span>&#160;    usart.<a class="code" href="classUSART.html#a28a2b4c5ed66b2c3a81196f76884f156">clearInputBuffer</a>();</div><div class="line"><a name="l00282"></a><span class="lineno">  282</span>&#160;    <span class="keywordflow">if</span> (channel &gt; 7)</div><div class="line"><a name="l00283"></a><span class="lineno">  283</span>&#160;        <a class="code" href="classB15F.html#a3f09a418f9e3be5d1d750e4515c96f1e">abort</a>(<span class="stringliteral">&quot;Bad ADC channel: &quot;</span> + std::to_string(channel));</div><div class="line"><a name="l00284"></a><span class="lineno">  284</span>&#160; </div><div class="line"><a name="l00285"></a><span class="lineno">  285</span>&#160;    uint8_t rq[] =</div><div class="line"><a name="l00286"></a><span class="lineno">  286</span>&#160;    {</div><div class="line"><a name="l00287"></a><span class="lineno">  287</span>&#160;        RQ_ADC,</div><div class="line"><a name="l00288"></a><span class="lineno">  288</span>&#160;        channel</div><div class="line"><a name="l00289"></a><span class="lineno">  289</span>&#160;    };</div><div class="line"><a name="l00290"></a><span class="lineno">  290</span>&#160; </div><div class="line"><a name="l00291"></a><span class="lineno">  291</span>&#160;    usart.<a class="code" href="classUSART.html#a41b19dd58f307015b73e154048cd74ca">transmit</a>(&amp;rq[0], 0, <span class="keyword">sizeof</span>(rq));</div><div class="line"><a name="l00292"></a><span class="lineno">  292</span>&#160; </div><div class="line"><a name="l00293"></a><span class="lineno">  293</span>&#160;    uint16_t aw;</div><div class="line"><a name="l00294"></a><span class="lineno">  294</span>&#160;    usart.<a class="code" href="classUSART.html#a0fdc238203852f00bd750127602b2a6a">receive</a>(reinterpret_cast&lt;uint8_t *&gt;(&amp;aw), 0, <span class="keyword">sizeof</span>(aw));</div><div class="line"><a name="l00295"></a><span class="lineno">  295</span>&#160; </div><div class="line"><a name="l00296"></a><span class="lineno">  296</span>&#160;    <span class="keywordflow">if</span> (aw &gt; 1023)</div><div class="line"><a name="l00297"></a><span class="lineno">  297</span>&#160;        <a class="code" href="classB15F.html#a3f09a418f9e3be5d1d750e4515c96f1e">abort</a>(<span class="stringliteral">&quot;Bad ADC data detected (1)&quot;</span>);</div><div class="line"><a name="l00298"></a><span class="lineno">  298</span>&#160;    <span class="keywordflow">return</span> aw;</div><div class="line"><a name="l00299"></a><span class="lineno">  299</span>&#160;}</div><div class="line"><a name="l00300"></a><span class="lineno">  300</span>&#160; </div><div class="line"><a name="l00301"></a><span class="lineno">  301</span>&#160;<span class="keywordtype">void</span></div><div class="line"><a name="l00302"></a><span class="lineno"><a class="line" href="classB15F.html#ab82a324426c3063318c6cafb3089ae02">  302</a></span>&#160;<a class="code" href="classB15F.html#ab82a324426c3063318c6cafb3089ae02">B15F::analogSequence</a>(uint8_t channel_a, uint16_t *buffer_a, uint32_t offset_a, uint8_t channel_b, uint16_t *buffer_b,</div><div class="line"><a name="l00303"></a><span class="lineno">  303</span>&#160;                     uint32_t offset_b, uint16_t start, int16_t delta, uint16_t count)</div><div class="line"><a name="l00304"></a><span class="lineno">  304</span>&#160;{</div><div class="line"><a name="l00305"></a><span class="lineno">  305</span>&#160;    <span class="comment">// prepare pointers</span></div><div class="line"><a name="l00306"></a><span class="lineno">  306</span>&#160;    buffer_a += offset_a;</div><div class="line"><a name="l00307"></a><span class="lineno">  307</span>&#160;    buffer_b += offset_b;</div><div class="line"><a name="l00308"></a><span class="lineno">  308</span>&#160; </div><div class="line"><a name="l00309"></a><span class="lineno">  309</span>&#160; </div><div class="line"><a name="l00310"></a><span class="lineno">  310</span>&#160;    usart.<a class="code" href="classUSART.html#a28a2b4c5ed66b2c3a81196f76884f156">clearInputBuffer</a>();</div><div class="line"><a name="l00311"></a><span class="lineno">  311</span>&#160;    uint8_t rq[] =</div><div class="line"><a name="l00312"></a><span class="lineno">  312</span>&#160;    {</div><div class="line"><a name="l00313"></a><span class="lineno">  313</span>&#160;        RQ_ADC_DAC_STROKE,</div><div class="line"><a name="l00314"></a><span class="lineno">  314</span>&#160;        channel_a,</div><div class="line"><a name="l00315"></a><span class="lineno">  315</span>&#160;        channel_b,</div><div class="line"><a name="l00316"></a><span class="lineno">  316</span>&#160;        static_cast&lt;uint8_t &gt;(start &amp; 0xFF),</div><div class="line"><a name="l00317"></a><span class="lineno">  317</span>&#160;        static_cast&lt;uint8_t &gt;(start &gt;&gt; 8),</div><div class="line"><a name="l00318"></a><span class="lineno">  318</span>&#160;        static_cast&lt;uint8_t &gt;(delta &amp; 0xFF),</div><div class="line"><a name="l00319"></a><span class="lineno">  319</span>&#160;        static_cast&lt;uint8_t &gt;(delta &gt;&gt; 8),</div><div class="line"><a name="l00320"></a><span class="lineno">  320</span>&#160;        static_cast&lt;uint8_t &gt;(count &amp; 0xFF),</div><div class="line"><a name="l00321"></a><span class="lineno">  321</span>&#160;        static_cast&lt;uint8_t &gt;(count &gt;&gt; 8)</div><div class="line"><a name="l00322"></a><span class="lineno">  322</span>&#160;    };</div><div class="line"><a name="l00323"></a><span class="lineno">  323</span>&#160; </div><div class="line"><a name="l00324"></a><span class="lineno">  324</span>&#160;    usart.<a class="code" href="classUSART.html#a41b19dd58f307015b73e154048cd74ca">transmit</a>(&amp;rq[0], 0, <span class="keyword">sizeof</span>(rq));</div><div class="line"><a name="l00325"></a><span class="lineno">  325</span>&#160; </div><div class="line"><a name="l00326"></a><span class="lineno">  326</span>&#160;    <span class="keywordflow">for</span> (uint16_t i = 0; i &lt; count; i++)</div><div class="line"><a name="l00327"></a><span class="lineno">  327</span>&#160;    {</div><div class="line"><a name="l00328"></a><span class="lineno">  328</span>&#160;        <span class="keywordflow">if</span> (buffer_a)</div><div class="line"><a name="l00329"></a><span class="lineno">  329</span>&#160;        {</div><div class="line"><a name="l00330"></a><span class="lineno">  330</span>&#160;            usart.<a class="code" href="classUSART.html#a0fdc238203852f00bd750127602b2a6a">receive</a>(reinterpret_cast&lt;uint8_t *&gt;(&amp;buffer_a[i]), 0, 2);</div><div class="line"><a name="l00331"></a><span class="lineno">  331</span>&#160; </div><div class="line"><a name="l00332"></a><span class="lineno">  332</span>&#160;            <span class="keywordflow">if</span> (buffer_a[i] &gt; 1023) <span class="comment">// check for broken usart connection</span></div><div class="line"><a name="l00333"></a><span class="lineno">  333</span>&#160;                <a class="code" href="classB15F.html#a3f09a418f9e3be5d1d750e4515c96f1e">abort</a>(<span class="stringliteral">&quot;Bad ADC data detected (2)&quot;</span>);</div><div class="line"><a name="l00334"></a><span class="lineno">  334</span>&#160;        }</div><div class="line"><a name="l00335"></a><span class="lineno">  335</span>&#160;        <span class="keywordflow">else</span></div><div class="line"><a name="l00336"></a><span class="lineno">  336</span>&#160;        {</div><div class="line"><a name="l00337"></a><span class="lineno">  337</span>&#160;            usart.<a class="code" href="classUSART.html#a038d00c0b3d8c0c13c3e7eae5dad7813">drop</a>(2);</div><div class="line"><a name="l00338"></a><span class="lineno">  338</span>&#160;        }</div><div class="line"><a name="l00339"></a><span class="lineno">  339</span>&#160; </div><div class="line"><a name="l00340"></a><span class="lineno">  340</span>&#160;        <span class="keywordflow">if</span> (buffer_b)</div><div class="line"><a name="l00341"></a><span class="lineno">  341</span>&#160;        {</div><div class="line"><a name="l00342"></a><span class="lineno">  342</span>&#160;            usart.<a class="code" href="classUSART.html#a0fdc238203852f00bd750127602b2a6a">receive</a>(reinterpret_cast&lt;uint8_t *&gt;(&amp;buffer_b[i]), 0, 2);</div><div class="line"><a name="l00343"></a><span class="lineno">  343</span>&#160; </div><div class="line"><a name="l00344"></a><span class="lineno">  344</span>&#160;            <span class="keywordflow">if</span> (buffer_b[i] &gt; 1023) <span class="comment">// check for broken usart connection</span></div><div class="line"><a name="l00345"></a><span class="lineno">  345</span>&#160;                <a class="code" href="classB15F.html#a3f09a418f9e3be5d1d750e4515c96f1e">abort</a>(<span class="stringliteral">&quot;Bad ADC data detected (3)&quot;</span>);</div><div class="line"><a name="l00346"></a><span class="lineno">  346</span>&#160;        }</div><div class="line"><a name="l00347"></a><span class="lineno">  347</span>&#160;        <span class="keywordflow">else</span></div><div class="line"><a name="l00348"></a><span class="lineno">  348</span>&#160;        {</div><div class="line"><a name="l00349"></a><span class="lineno">  349</span>&#160;            usart.<a class="code" href="classUSART.html#a038d00c0b3d8c0c13c3e7eae5dad7813">drop</a>(2);</div><div class="line"><a name="l00350"></a><span class="lineno">  350</span>&#160;        }</div><div class="line"><a name="l00351"></a><span class="lineno">  351</span>&#160;    }</div><div class="line"><a name="l00352"></a><span class="lineno">  352</span>&#160; </div><div class="line"><a name="l00353"></a><span class="lineno">  353</span>&#160;    uint8_t aw;</div><div class="line"><a name="l00354"></a><span class="lineno">  354</span>&#160;    usart.<a class="code" href="classUSART.html#a0fdc238203852f00bd750127602b2a6a">receive</a>(&amp;aw, 0, <span class="keyword">sizeof</span>(aw));</div><div class="line"><a name="l00355"></a><span class="lineno">  355</span>&#160;    <span class="keywordflow">if</span>(aw != <a class="code" href="classB15F.html#ab01299858f74a6cec598688562e0ad02">MSG_OK</a>)</div><div class="line"><a name="l00356"></a><span class="lineno">  356</span>&#160;        <a class="code" href="classB15F.html#a3f09a418f9e3be5d1d750e4515c96f1e">abort</a>(<span class="stringliteral">&quot;Sequenz unterbrochen&quot;</span>);</div><div class="line"><a name="l00357"></a><span class="lineno">  357</span>&#160;}</div><div class="line"><a name="l00358"></a><span class="lineno">  358</span>&#160; </div><div class="line"><a name="l00359"></a><span class="lineno"><a class="line" href="classB15F.html#ac6f6532bb9550a0632c28b98c157d0a1">  359</a></span>&#160;uint8_t <a class="code" href="classB15F.html#ac6f6532bb9550a0632c28b98c157d0a1">B15F::pwmSetFrequency</a>(uint32_t freq)</div><div class="line"><a name="l00360"></a><span class="lineno">  360</span>&#160;{</div><div class="line"><a name="l00361"></a><span class="lineno">  361</span>&#160;    usart.<a class="code" href="classUSART.html#a28a2b4c5ed66b2c3a81196f76884f156">clearInputBuffer</a>();</div><div class="line"><a name="l00362"></a><span class="lineno">  362</span>&#160; </div><div class="line"><a name="l00363"></a><span class="lineno">  363</span>&#160;    uint8_t rq[] =</div><div class="line"><a name="l00364"></a><span class="lineno">  364</span>&#160;    {</div><div class="line"><a name="l00365"></a><span class="lineno">  365</span>&#160;        RQ_PWM_SET_FREQ,</div><div class="line"><a name="l00366"></a><span class="lineno">  366</span>&#160;        static_cast&lt;uint8_t&gt;((freq &gt;&gt; 0) &amp; 0xFF),</div><div class="line"><a name="l00367"></a><span class="lineno">  367</span>&#160;        static_cast&lt;uint8_t&gt;((freq &gt;&gt; 8) &amp; 0xFF),</div><div class="line"><a name="l00368"></a><span class="lineno">  368</span>&#160;        static_cast&lt;uint8_t&gt;((freq &gt;&gt; 16) &amp; 0xFF),</div><div class="line"><a name="l00369"></a><span class="lineno">  369</span>&#160;        static_cast&lt;uint8_t&gt;((freq &gt;&gt; 24) &amp; 0xFF)</div><div class="line"><a name="l00370"></a><span class="lineno">  370</span>&#160;    };</div><div class="line"><a name="l00371"></a><span class="lineno">  371</span>&#160; </div><div class="line"><a name="l00372"></a><span class="lineno">  372</span>&#160;    usart.<a class="code" href="classUSART.html#a41b19dd58f307015b73e154048cd74ca">transmit</a>(&amp;rq[0], 0, <span class="keyword">sizeof</span>(rq));</div><div class="line"><a name="l00373"></a><span class="lineno">  373</span>&#160; </div><div class="line"><a name="l00374"></a><span class="lineno">  374</span>&#160;    uint8_t aw;</div><div class="line"><a name="l00375"></a><span class="lineno">  375</span>&#160;    usart.<a class="code" href="classUSART.html#a0fdc238203852f00bd750127602b2a6a">receive</a>(&amp;aw, 0, <span class="keyword">sizeof</span>(aw));</div><div class="line"><a name="l00376"></a><span class="lineno">  376</span>&#160;    <span class="keywordflow">return</span> aw;</div><div class="line"><a name="l00377"></a><span class="lineno">  377</span>&#160;}</div><div class="line"><a name="l00378"></a><span class="lineno">  378</span>&#160; </div><div class="line"><a name="l00379"></a><span class="lineno"><a class="line" href="classB15F.html#af9aad3c0db5d5a8b37219d713e1977ee">  379</a></span>&#160;<span class="keywordtype">bool</span> <a class="code" href="classB15F.html#af9aad3c0db5d5a8b37219d713e1977ee">B15F::pwmSetValue</a>(uint8_t value)</div><div class="line"><a name="l00380"></a><span class="lineno">  380</span>&#160;{</div><div class="line"><a name="l00381"></a><span class="lineno">  381</span>&#160;    usart.<a class="code" href="classUSART.html#a28a2b4c5ed66b2c3a81196f76884f156">clearInputBuffer</a>();</div><div class="line"><a name="l00382"></a><span class="lineno">  382</span>&#160; </div><div class="line"><a name="l00383"></a><span class="lineno">  383</span>&#160;    uint8_t rq[] =</div><div class="line"><a name="l00384"></a><span class="lineno">  384</span>&#160;    {</div><div class="line"><a name="l00385"></a><span class="lineno">  385</span>&#160;        RQ_PWM_SET_VALUE,</div><div class="line"><a name="l00386"></a><span class="lineno">  386</span>&#160;        value</div><div class="line"><a name="l00387"></a><span class="lineno">  387</span>&#160;    };</div><div class="line"><a name="l00388"></a><span class="lineno">  388</span>&#160; </div><div class="line"><a name="l00389"></a><span class="lineno">  389</span>&#160;    usart.<a class="code" href="classUSART.html#a41b19dd58f307015b73e154048cd74ca">transmit</a>(&amp;rq[0], 0, <span class="keyword">sizeof</span>(rq));</div><div class="line"><a name="l00390"></a><span class="lineno">  390</span>&#160; </div><div class="line"><a name="l00391"></a><span class="lineno">  391</span>&#160;    uint8_t aw;</div><div class="line"><a name="l00392"></a><span class="lineno">  392</span>&#160;    usart.<a class="code" href="classUSART.html#a0fdc238203852f00bd750127602b2a6a">receive</a>(&amp;aw, 0, <span class="keyword">sizeof</span>(aw));</div><div class="line"><a name="l00393"></a><span class="lineno">  393</span>&#160;    <span class="keywordflow">return</span> aw == <a class="code" href="classB15F.html#ab01299858f74a6cec598688562e0ad02">MSG_OK</a>;</div><div class="line"><a name="l00394"></a><span class="lineno">  394</span>&#160;}</div><div class="line"><a name="l00395"></a><span class="lineno">  395</span>&#160; </div><div class="line"><a name="l00396"></a><span class="lineno"><a class="line" href="classB15F.html#ab446ecffab28d4515dfade79a8efc93d">  396</a></span>&#160;<span class="keywordtype">bool</span> <a class="code" href="classB15F.html#ab446ecffab28d4515dfade79a8efc93d">B15F::setRegister</a>(<span class="keyword">volatile</span> uint8_t* adr, uint8_t val)</div><div class="line"><a name="l00397"></a><span class="lineno">  397</span>&#160;{</div><div class="line"><a name="l00398"></a><span class="lineno">  398</span>&#160;    usart.<a class="code" href="classUSART.html#a28a2b4c5ed66b2c3a81196f76884f156">clearInputBuffer</a>();</div><div class="line"><a name="l00399"></a><span class="lineno">  399</span>&#160; </div><div class="line"><a name="l00400"></a><span class="lineno">  400</span>&#160;    uint8_t rq[] =</div><div class="line"><a name="l00401"></a><span class="lineno">  401</span>&#160;    {</div><div class="line"><a name="l00402"></a><span class="lineno">  402</span>&#160;        RQ_SET_REG,</div><div class="line"><a name="l00403"></a><span class="lineno">  403</span>&#160;        static_cast&lt;uint8_t&gt;(reinterpret_cast&lt;size_t&gt;(adr)),</div><div class="line"><a name="l00404"></a><span class="lineno">  404</span>&#160;        val</div><div class="line"><a name="l00405"></a><span class="lineno">  405</span>&#160;    };</div><div class="line"><a name="l00406"></a><span class="lineno">  406</span>&#160; </div><div class="line"><a name="l00407"></a><span class="lineno">  407</span>&#160;    usart.<a class="code" href="classUSART.html#a41b19dd58f307015b73e154048cd74ca">transmit</a>(&amp;rq[0], 0, <span class="keyword">sizeof</span>(rq));</div><div class="line"><a name="l00408"></a><span class="lineno">  408</span>&#160; </div><div class="line"><a name="l00409"></a><span class="lineno">  409</span>&#160;    uint8_t aw;</div><div class="line"><a name="l00410"></a><span class="lineno">  410</span>&#160;    usart.<a class="code" href="classUSART.html#a0fdc238203852f00bd750127602b2a6a">receive</a>(&amp;aw, 0, <span class="keyword">sizeof</span>(aw));</div><div class="line"><a name="l00411"></a><span class="lineno">  411</span>&#160;    <span class="keywordflow">return</span> aw == val;</div><div class="line"><a name="l00412"></a><span class="lineno">  412</span>&#160;}</div><div class="line"><a name="l00413"></a><span class="lineno">  413</span>&#160; </div><div class="line"><a name="l00414"></a><span class="lineno"><a class="line" href="classB15F.html#a9bd47da39928af6f51075bdc3fe73ddc">  414</a></span>&#160;uint8_t <a class="code" href="classB15F.html#a9bd47da39928af6f51075bdc3fe73ddc">B15F::getRegister</a>(<span class="keyword">volatile</span> uint8_t* adr)</div><div class="line"><a name="l00415"></a><span class="lineno">  415</span>&#160;{</div><div class="line"><a name="l00416"></a><span class="lineno">  416</span>&#160;    usart.<a class="code" href="classUSART.html#a28a2b4c5ed66b2c3a81196f76884f156">clearInputBuffer</a>();</div><div class="line"><a name="l00417"></a><span class="lineno">  417</span>&#160; </div><div class="line"><a name="l00418"></a><span class="lineno">  418</span>&#160;    uint8_t rq[] =</div><div class="line"><a name="l00419"></a><span class="lineno">  419</span>&#160;    {</div><div class="line"><a name="l00420"></a><span class="lineno">  420</span>&#160;        RQ_GET_REG,</div><div class="line"><a name="l00421"></a><span class="lineno">  421</span>&#160;        static_cast&lt;uint8_t&gt;(reinterpret_cast&lt;size_t&gt;(adr))</div><div class="line"><a name="l00422"></a><span class="lineno">  422</span>&#160;    };</div><div class="line"><a name="l00423"></a><span class="lineno">  423</span>&#160; </div><div class="line"><a name="l00424"></a><span class="lineno">  424</span>&#160;    usart.<a class="code" href="classUSART.html#a41b19dd58f307015b73e154048cd74ca">transmit</a>(&amp;rq[0], 0, <span class="keyword">sizeof</span>(rq));</div><div class="line"><a name="l00425"></a><span class="lineno">  425</span>&#160; </div><div class="line"><a name="l00426"></a><span class="lineno">  426</span>&#160;    uint8_t aw;</div><div class="line"><a name="l00427"></a><span class="lineno">  427</span>&#160;    usart.<a class="code" href="classUSART.html#a0fdc238203852f00bd750127602b2a6a">receive</a>(&amp;aw, 0, <span class="keyword">sizeof</span>(aw));</div><div class="line"><a name="l00428"></a><span class="lineno">  428</span>&#160;    <span class="keywordflow">return</span> aw;</div><div class="line"><a name="l00429"></a><span class="lineno">  429</span>&#160;}</div><div class="line"><a name="l00430"></a><span class="lineno">  430</span>&#160; </div><div class="line"><a name="l00431"></a><span class="lineno">  431</span>&#160; </div><div class="line"><a name="l00432"></a><span class="lineno"><a class="line" href="classB15F.html#aaffce20afb9f06bc4b7556c70ce76416">  432</a></span>&#160;<span class="keywordtype">void</span> <a class="code" href="classB15F.html#aaffce20afb9f06bc4b7556c70ce76416">B15F::delay_ms</a>(uint16_t ms)</div><div class="line"><a name="l00433"></a><span class="lineno">  433</span>&#160;{</div><div class="line"><a name="l00434"></a><span class="lineno">  434</span>&#160;    std::this_thread::sleep_for(std::chrono::milliseconds(ms));</div><div class="line"><a name="l00435"></a><span class="lineno">  435</span>&#160;}</div><div class="line"><a name="l00436"></a><span class="lineno">  436</span>&#160; </div><div class="line"><a name="l00437"></a><span class="lineno"><a class="line" href="classB15F.html#adcaac8ae8db3c28eccb499fbd720361f">  437</a></span>&#160;<span class="keywordtype">void</span> <a class="code" href="classB15F.html#adcaac8ae8db3c28eccb499fbd720361f">B15F::delay_us</a>(uint16_t us)</div><div class="line"><a name="l00438"></a><span class="lineno">  438</span>&#160;{</div><div class="line"><a name="l00439"></a><span class="lineno">  439</span>&#160;    std::this_thread::sleep_for(std::chrono::microseconds(us));</div><div class="line"><a name="l00440"></a><span class="lineno">  440</span>&#160;}</div><div class="line"><a name="l00441"></a><span class="lineno">  441</span>&#160; </div><div class="line"><a name="l00442"></a><span class="lineno"><a class="line" href="classB15F.html#a8b4533d232c55ef2aa967e39e2d23380">  442</a></span>&#160;<a class="code" href="classB15F.html">B15F</a> &amp;<a class="code" href="classB15F.html#a8b4533d232c55ef2aa967e39e2d23380">B15F::getInstance</a>(<span class="keywordtype">void</span>)</div><div class="line"><a name="l00443"></a><span class="lineno">  443</span>&#160;{</div><div class="line"><a name="l00444"></a><span class="lineno">  444</span>&#160;    <span class="keywordflow">if</span> (!instance)</div><div class="line"><a name="l00445"></a><span class="lineno">  445</span>&#160;        instance = <span class="keyword">new</span> <a class="code" href="classB15F.html">B15F</a>();</div><div class="line"><a name="l00446"></a><span class="lineno">  446</span>&#160; </div><div class="line"><a name="l00447"></a><span class="lineno">  447</span>&#160;    <span class="keywordflow">return</span> *instance;</div><div class="line"><a name="l00448"></a><span class="lineno">  448</span>&#160;}</div><div class="line"><a name="l00449"></a><span class="lineno">  449</span>&#160; </div><div class="line"><a name="l00450"></a><span class="lineno">  450</span>&#160;<span class="comment">// https://stackoverflow.com/a/478960</span></div><div class="line"><a name="l00451"></a><span class="lineno"><a class="line" href="classB15F.html#a1a7ac52984ed7ecac008a3e4060eee3a">  451</a></span>&#160;std::string <a class="code" href="classB15F.html#a1a7ac52984ed7ecac008a3e4060eee3a">B15F::exec</a>(std::string cmd)</div><div class="line"><a name="l00452"></a><span class="lineno">  452</span>&#160;{</div><div class="line"><a name="l00453"></a><span class="lineno">  453</span>&#160;    std::array&lt;char, 128&gt; buffer;</div><div class="line"><a name="l00454"></a><span class="lineno">  454</span>&#160;    std::string result;</div><div class="line"><a name="l00455"></a><span class="lineno">  455</span>&#160;    std::unique_ptr&lt;FILE, decltype(&amp;pclose)&gt; pipe(popen(cmd.c_str(), <span class="stringliteral">&quot;r&quot;</span>), pclose);</div><div class="line"><a name="l00456"></a><span class="lineno">  456</span>&#160;    <span class="keywordflow">if</span> (!pipe)</div><div class="line"><a name="l00457"></a><span class="lineno">  457</span>&#160;    {</div><div class="line"><a name="l00458"></a><span class="lineno">  458</span>&#160;        <span class="keywordflow">throw</span> std::runtime_error(<span class="stringliteral">&quot;popen() failed!&quot;</span>);</div><div class="line"><a name="l00459"></a><span class="lineno">  459</span>&#160;    }</div><div class="line"><a name="l00460"></a><span class="lineno">  460</span>&#160;    <span class="keywordflow">while</span> (fgets(buffer.data(), buffer.size(), pipe.get()) != <span class="keyword">nullptr</span>)</div><div class="line"><a name="l00461"></a><span class="lineno">  461</span>&#160;    {</div><div class="line"><a name="l00462"></a><span class="lineno">  462</span>&#160;        result += buffer.data();</div><div class="line"><a name="l00463"></a><span class="lineno">  463</span>&#160;    }</div><div class="line"><a name="l00464"></a><span class="lineno">  464</span>&#160;    <span class="keywordflow">return</span> result;</div><div class="line"><a name="l00465"></a><span class="lineno">  465</span>&#160;}</div><div class="line"><a name="l00466"></a><span class="lineno">  466</span>&#160; </div><div class="line"><a name="l00467"></a><span class="lineno"><a class="line" href="classB15F.html#a3f09a418f9e3be5d1d750e4515c96f1e">  467</a></span>&#160;<span class="keywordtype">void</span> <a class="code" href="classB15F.html#a3f09a418f9e3be5d1d750e4515c96f1e">B15F::abort</a>(std::string msg)</div><div class="line"><a name="l00468"></a><span class="lineno">  468</span>&#160;{</div><div class="line"><a name="l00469"></a><span class="lineno">  469</span>&#160;    <a class="code" href="classDriverException.html">DriverException</a> ex(msg);</div><div class="line"><a name="l00470"></a><span class="lineno">  470</span>&#160;    <a class="code" href="classB15F.html#a3f09a418f9e3be5d1d750e4515c96f1e">abort</a>(ex);</div><div class="line"><a name="l00471"></a><span class="lineno">  471</span>&#160;}</div><div class="line"><a name="l00472"></a><span class="lineno">  472</span>&#160; </div><div class="line"><a name="l00473"></a><span class="lineno"><a class="line" href="classB15F.html#ac962a6a49bddd0e261a8c7d3aded23f8">  473</a></span>&#160;<span class="keywordtype">void</span> <a class="code" href="classB15F.html#a3f09a418f9e3be5d1d750e4515c96f1e">B15F::abort</a>(std::exception &amp;ex)</div><div class="line"><a name="l00474"></a><span class="lineno">  474</span>&#160;{</div><div class="line"><a name="l00475"></a><span class="lineno">  475</span>&#160;    <span class="keywordflow">if</span> (errorhandler)</div><div class="line"><a name="l00476"></a><span class="lineno">  476</span>&#160;        errorhandler(ex);</div><div class="line"><a name="l00477"></a><span class="lineno">  477</span>&#160;    <span class="keywordflow">else</span></div><div class="line"><a name="l00478"></a><span class="lineno">  478</span>&#160;    {</div><div class="line"><a name="l00479"></a><span class="lineno">  479</span>&#160;        std::cerr &lt;&lt; <span class="stringliteral">&quot;NOTICE: B15F::errorhandler not set&quot;</span> &lt;&lt; std::endl;</div><div class="line"><a name="l00480"></a><span class="lineno">  480</span>&#160;        std::cout &lt;&lt; ex.what() &lt;&lt; std::endl;</div><div class="line"><a name="l00481"></a><span class="lineno">  481</span>&#160;        <span class="keywordflow">throw</span> <a class="code" href="classDriverException.html">DriverException</a>(ex.what());</div><div class="line"><a name="l00482"></a><span class="lineno">  482</span>&#160;    }</div><div class="line"><a name="l00483"></a><span class="lineno">  483</span>&#160;}</div><div class="line"><a name="l00484"></a><span class="lineno">  484</span>&#160; </div><div class="line"><a name="l00485"></a><span class="lineno"><a class="line" href="classB15F.html#a55b0cd1ea582bda53d6979442640f8e9">  485</a></span>&#160;<span class="keywordtype">void</span> <a class="code" href="classB15F.html#a55b0cd1ea582bda53d6979442640f8e9">B15F::setAbortHandler</a>(errorhandler_t func)</div><div class="line"><a name="l00486"></a><span class="lineno">  486</span>&#160;{</div><div class="line"><a name="l00487"></a><span class="lineno">  487</span>&#160;    errorhandler = func;</div><div class="line"><a name="l00488"></a><span class="lineno">  488</span>&#160;}</div></div><!-- fragment --></div><!-- contents -->
-<div class="ttc" id="aclassB15F_html_a1a7ac52984ed7ecac008a3e4060eee3a"><div class="ttname"><a href="classB15F.html#a1a7ac52984ed7ecac008a3e4060eee3a">B15F::exec</a></div><div class="ttdeci">static std::string exec(std::string cmd)</div><div class="ttdef"><b>Definition:</b> <a href="b15f_8cpp_source.html#l00451">b15f.cpp:451</a></div></div>
-<div class="ttc" id="aclassB15F_html_adcaac8ae8db3c28eccb499fbd720361f"><div class="ttname"><a href="classB15F.html#adcaac8ae8db3c28eccb499fbd720361f">B15F::delay_us</a></div><div class="ttdeci">void delay_us(uint16_t us)</div><div class="ttdef"><b>Definition:</b> <a href="b15f_8cpp_source.html#l00437">b15f.cpp:437</a></div></div>
-<div class="ttc" id="aclassB15F_html_ae0df6d423deeb2fd610968bd1c72060e"><div class="ttname"><a href="classB15F.html#ae0df6d423deeb2fd610968bd1c72060e">B15F::digitalRead0</a></div><div class="ttdeci">uint8_t digitalRead0(void)</div><div class="ttdef"><b>Definition:</b> <a href="b15f_8cpp_source.html#l00207">b15f.cpp:207</a></div></div>
-<div class="ttc" id="aclassB15F_html_ac6f6532bb9550a0632c28b98c157d0a1"><div class="ttname"><a href="classB15F.html#ac6f6532bb9550a0632c28b98c157d0a1">B15F::pwmSetFrequency</a></div><div class="ttdeci">uint8_t pwmSetFrequency(uint32_t freq)</div><div class="ttdef"><b>Definition:</b> <a href="b15f_8cpp_source.html#l00359">b15f.cpp:359</a></div></div>
-<div class="ttc" id="aclassB15F_html_ab82a324426c3063318c6cafb3089ae02"><div class="ttname"><a href="classB15F.html#ab82a324426c3063318c6cafb3089ae02">B15F::analogSequence</a></div><div class="ttdeci">void analogSequence(uint8_t channel_a, uint16_t *buffer_a, uint32_t offset_a, uint8_t channel_b, uint16_t *buffer_b, uint32_t offset_b, uint16_t start, int16_t delta, uint16_t count)</div><div class="ttdef"><b>Definition:</b> <a href="b15f_8cpp_source.html#l00302">b15f.cpp:302</a></div></div>
-<div class="ttc" id="aclassB15F_html_af01983594f2af98ab2b1e514aa036a5d"><div class="ttname"><a href="classB15F.html#af01983594f2af98ab2b1e514aa036a5d">B15F::testConnection</a></div><div class="ttdeci">bool testConnection(void)</div><div class="ttdef"><b>Definition:</b> <a href="b15f_8cpp_source.html#l00095">b15f.cpp:95</a></div></div>
-<div class="ttc" id="aclassB15F_html_a6f858f21ea81d491b5031b3644a2239a"><div class="ttname"><a href="classB15F.html#a6f858f21ea81d491b5031b3644a2239a">B15F::readDipSwitch</a></div><div class="ttdeci">uint8_t readDipSwitch(void)</div><div class="ttdef"><b>Definition:</b> <a href="b15f_8cpp_source.html#l00235">b15f.cpp:235</a></div></div>
-<div class="ttc" id="aclassB15F_html_a9bd47da39928af6f51075bdc3fe73ddc"><div class="ttname"><a href="classB15F.html#a9bd47da39928af6f51075bdc3fe73ddc">B15F::getRegister</a></div><div class="ttdeci">uint8_t getRegister(volatile uint8_t *adr)</div><div class="ttdef"><b>Definition:</b> <a href="b15f_8cpp_source.html#l00414">b15f.cpp:414</a></div></div>
-<div class="ttc" id="aclassB15F_html_aaffce20afb9f06bc4b7556c70ce76416"><div class="ttname"><a href="classB15F.html#aaffce20afb9f06bc4b7556c70ce76416">B15F::delay_ms</a></div><div class="ttdeci">void delay_ms(uint16_t ms)</div><div class="ttdef"><b>Definition:</b> <a href="b15f_8cpp_source.html#l00432">b15f.cpp:432</a></div></div>
-<div class="ttc" id="aclassB15F_html_a8b4533d232c55ef2aa967e39e2d23380"><div class="ttname"><a href="classB15F.html#a8b4533d232c55ef2aa967e39e2d23380">B15F::getInstance</a></div><div class="ttdeci">static B15F &amp; getInstance(void)</div><div class="ttdef"><b>Definition:</b> <a href="b15f_8cpp_source.html#l00442">b15f.cpp:442</a></div></div>
-<div class="ttc" id="aclassB15F_html"><div class="ttname"><a href="classB15F.html">B15F</a></div><div class="ttdef"><b>Definition:</b> <a href="b15f_8h_source.html#l00031">b15f.h:31</a></div></div>
-<div class="ttc" id="aclassUSART_html_a41b19dd58f307015b73e154048cd74ca"><div class="ttname"><a href="classUSART.html#a41b19dd58f307015b73e154048cd74ca">USART::transmit</a></div><div class="ttdeci">void transmit(uint8_t *buffer, uint16_t offset, uint8_t len)</div><div class="ttdef"><b>Definition:</b> <a href="usart_8cpp_source.html#l00075">usart.cpp:75</a></div></div>
-<div class="ttc" id="aclassB15F_html_a3f09a418f9e3be5d1d750e4515c96f1e"><div class="ttname"><a href="classB15F.html#a3f09a418f9e3be5d1d750e4515c96f1e">B15F::abort</a></div><div class="ttdeci">static void abort(std::string msg)</div><div class="ttdef"><b>Definition:</b> <a href="b15f_8cpp_source.html#l00467">b15f.cpp:467</a></div></div>
-<div class="ttc" id="aclassUSART_html_a0fdc238203852f00bd750127602b2a6a"><div class="ttname"><a href="classUSART.html#a0fdc238203852f00bd750127602b2a6a">USART::receive</a></div><div class="ttdeci">void receive(uint8_t *buffer, uint16_t offset, uint8_t len)</div><div class="ttdef"><b>Definition:</b> <a href="usart_8cpp_source.html#l00084">usart.cpp:84</a></div></div>
-<div class="ttc" id="aclassUSART_html_a28a2b4c5ed66b2c3a81196f76884f156"><div class="ttname"><a href="classUSART.html#a28a2b4c5ed66b2c3a81196f76884f156">USART::clearInputBuffer</a></div><div class="ttdeci">void clearInputBuffer(void)</div><div class="ttdef"><b>Definition:</b> <a href="usart_8cpp_source.html#l00054">usart.cpp:54</a></div></div>
-<div class="ttc" id="aclassUSART_html_a756d268a8762c316f91ca3238972b0c1"><div class="ttname"><a href="classUSART.html#a756d268a8762c316f91ca3238972b0c1">USART::clearOutputBuffer</a></div><div class="ttdeci">void clearOutputBuffer(void)</div><div class="ttdef"><b>Definition:</b> <a href="usart_8cpp_source.html#l00061">usart.cpp:61</a></div></div>
-<div class="ttc" id="aclassB15F_html_ae0bd1f69751e2dc3c462db9213fc4627"><div class="ttname"><a href="classB15F.html#ae0bd1f69751e2dc3c462db9213fc4627">B15F::analogRead</a></div><div class="ttdeci">uint16_t analogRead(uint8_t channel)</div><div class="ttdef"><b>Definition:</b> <a href="b15f_8cpp_source.html#l00279">b15f.cpp:279</a></div></div>
-<div class="ttc" id="aclassB15F_html_a13797edea1c50278988373acbd110064"><div class="ttname"><a href="classB15F.html#a13797edea1c50278988373acbd110064">B15F::digitalWrite0</a></div><div class="ttdeci">bool digitalWrite0(uint8_t)</div><div class="ttdef"><b>Definition:</b> <a href="b15f_8cpp_source.html#l00179">b15f.cpp:179</a></div></div>
-<div class="ttc" id="aclassB15F_html_a3b0fc1f85954b2d9c145af4a3af5b1ec"><div class="ttname"><a href="classB15F.html#a3b0fc1f85954b2d9c145af4a3af5b1ec">B15F::PRE</a></div><div class="ttdeci">const std::string PRE</div><div class="ttdoc">B15F stdout prefix.</div><div class="ttdef"><b>Definition:</b> <a href="b15f_8h_source.html#l00237">b15f.h:237</a></div></div>
-<div class="ttc" id="aclassUSART_html_aac63918a8b97ae63ee607cfa39e6d88d"><div class="ttname"><a href="classUSART.html#aac63918a8b97ae63ee607cfa39e6d88d">USART::setBaudrate</a></div><div class="ttdeci">void setBaudrate(uint32_t baudrate)</div><div class="ttdef"><b>Definition:</b> <a href="usart_8cpp_source.html#l00131">usart.cpp:131</a></div></div>
-<div class="ttc" id="aclassB15F_html_ad9bf80ee2485fb5aac9926c6ef0731f1"><div class="ttname"><a href="classB15F.html#ad9bf80ee2485fb5aac9926c6ef0731f1">B15F::activateSelfTestMode</a></div><div class="ttdeci">bool activateSelfTestMode(void)</div><div class="ttdef"><b>Definition:</b> <a href="b15f_8cpp_source.html#l00166">b15f.cpp:166</a></div></div>
-<div class="ttc" id="aclassB15F_html_a4f01677e73d6d172a2c1cae9427a591b"><div class="ttname"><a href="classB15F.html#a4f01677e73d6d172a2c1cae9427a591b">B15F::getBoardInfo</a></div><div class="ttdeci">std::vector&lt; std::string &gt; getBoardInfo(void)</div><div class="ttdef"><b>Definition:</b> <a href="b15f_8cpp_source.html#l00134">b15f.cpp:134</a></div></div>
-<div class="ttc" id="aclassB15F_html_a040951746fbfd632e12bd1ad14578816"><div class="ttname"><a href="classB15F.html#a040951746fbfd632e12bd1ad14578816">B15F::RECONNECT_TIMEOUT</a></div><div class="ttdeci">constexpr static uint16_t RECONNECT_TIMEOUT</div><div class="ttdoc">Time in ms after which a reconnect attempt aborts.</div><div class="ttdef"><b>Definition:</b> <a href="b15f_8h_source.html#l00240">b15f.h:240</a></div></div>
-<div class="ttc" id="aclassB15F_html_a7f1becceac744f5cd2ad529748fd836f"><div class="ttname"><a href="classB15F.html#a7f1becceac744f5cd2ad529748fd836f">B15F::analogWrite1</a></div><div class="ttdeci">bool analogWrite1(uint16_t port)</div><div class="ttdef"><b>Definition:</b> <a href="b15f_8cpp_source.html#l00264">b15f.cpp:264</a></div></div>
-<div class="ttc" id="aclassB15F_html_aa225e7fc813849634063e071ef25db1b"><div class="ttname"><a href="classB15F.html#aa225e7fc813849634063e071ef25db1b">B15F::digitalWrite1</a></div><div class="ttdeci">bool digitalWrite1(uint8_t)</div><div class="ttdef"><b>Definition:</b> <a href="b15f_8cpp_source.html#l00193">b15f.cpp:193</a></div></div>
-<div class="ttc" id="aclassB15F_html_af9aad3c0db5d5a8b37219d713e1977ee"><div class="ttname"><a href="classB15F.html#af9aad3c0db5d5a8b37219d713e1977ee">B15F::pwmSetValue</a></div><div class="ttdeci">bool pwmSetValue(uint8_t value)</div><div class="ttdef"><b>Definition:</b> <a href="b15f_8cpp_source.html#l00379">b15f.cpp:379</a></div></div>
-<div class="ttc" id="aclassB15F_html_ae4740cd473f40a1a4121dfa66b25e1d5"><div class="ttname"><a href="classB15F.html#ae4740cd473f40a1a4121dfa66b25e1d5">B15F::discard</a></div><div class="ttdeci">void discard(void)</div><div class="ttdef"><b>Definition:</b> <a href="b15f_8cpp_source.html#l00072">b15f.cpp:72</a></div></div>
-<div class="ttc" id="aclassB15F_html_ab446ecffab28d4515dfade79a8efc93d"><div class="ttname"><a href="classB15F.html#ab446ecffab28d4515dfade79a8efc93d">B15F::setRegister</a></div><div class="ttdeci">bool setRegister(volatile uint8_t *adr, uint8_t val)</div><div class="ttdef"><b>Definition:</b> <a href="b15f_8cpp_source.html#l00396">b15f.cpp:396</a></div></div>
-<div class="ttc" id="aclassB15F_html_ab01299858f74a6cec598688562e0ad02"><div class="ttname"><a href="classB15F.html#ab01299858f74a6cec598688562e0ad02">B15F::MSG_OK</a></div><div class="ttdeci">constexpr static uint8_t MSG_OK</div><div class="ttdoc">Value to acknowledge a received command.</div><div class="ttdef"><b>Definition:</b> <a href="b15f_8h_source.html#l00238">b15f.h:238</a></div></div>
-<div class="ttc" id="aclassUSART_html_a5f7e2abda2ec4a68a5fdb8ee2f8a940a"><div class="ttname"><a href="classUSART.html#a5f7e2abda2ec4a68a5fdb8ee2f8a940a">USART::openDevice</a></div><div class="ttdeci">void openDevice(std::string device)</div><div class="ttdef"><b>Definition:</b> <a href="usart_8cpp_source.html#l00009">usart.cpp:9</a></div></div>
-<div class="ttc" id="aclassB15F_html_afc76b612dd4faeee0ac02a66b65af5f2"><div class="ttname"><a href="classB15F.html#afc76b612dd4faeee0ac02a66b65af5f2">B15F::digitalRead1</a></div><div class="ttdeci">uint8_t digitalRead1(void)</div><div class="ttdef"><b>Definition:</b> <a href="b15f_8cpp_source.html#l00221">b15f.cpp:221</a></div></div>
-<div class="ttc" id="aclassB15F_html_a52557b375443c180a044e7d4e80a1ae7"><div class="ttname"><a href="classB15F.html#a52557b375443c180a044e7d4e80a1ae7">B15F::reconnect</a></div><div class="ttdeci">void reconnect(void)</div><div class="ttdef"><b>Definition:</b> <a href="b15f_8cpp_source.html#l00057">b15f.cpp:57</a></div></div>
-<div class="ttc" id="aclassB15F_html_a7d548d6861cfc69753161bf9cda14f87"><div class="ttname"><a href="classB15F.html#a7d548d6861cfc69753161bf9cda14f87">B15F::BAUDRATE</a></div><div class="ttdeci">constexpr static uint32_t BAUDRATE</div><div class="ttdoc">USART baudrate for communication with the MCU.</div><div class="ttdef"><b>Definition:</b> <a href="b15f_8h_source.html#l00243">b15f.h:243</a></div></div>
-<div class="ttc" id="aclassB15F_html_a55b0cd1ea582bda53d6979442640f8e9"><div class="ttname"><a href="classB15F.html#a55b0cd1ea582bda53d6979442640f8e9">B15F::setAbortHandler</a></div><div class="ttdeci">static void setAbortHandler(errorhandler_t func)</div><div class="ttdef"><b>Definition:</b> <a href="b15f_8cpp_source.html#l00485">b15f.cpp:485</a></div></div>
-<div class="ttc" id="aclassUSART_html_a038d00c0b3d8c0c13c3e7eae5dad7813"><div class="ttname"><a href="classUSART.html#a038d00c0b3d8c0c13c3e7eae5dad7813">USART::drop</a></div><div class="ttdeci">void drop(uint8_t len)</div><div class="ttdef"><b>Definition:</b> <a href="usart_8cpp_source.html#l00114">usart.cpp:114</a></div></div>
-<div class="ttc" id="aclassB15F_html_afc55fd590c7fa5c942d100cb60c4b0d3"><div class="ttname"><a href="classB15F.html#afc55fd590c7fa5c942d100cb60c4b0d3">B15F::analogWrite0</a></div><div class="ttdeci">bool analogWrite0(uint16_t port)</div><div class="ttdef"><b>Definition:</b> <a href="b15f_8cpp_source.html#l00249">b15f.cpp:249</a></div></div>
-<div class="ttc" id="aclassB15F_html_a6c4895bdbcd71ff6743becf97985c2dc"><div class="ttname"><a href="classB15F.html#a6c4895bdbcd71ff6743becf97985c2dc">B15F::RECONNECT_TRIES</a></div><div class="ttdeci">constexpr static uint8_t RECONNECT_TRIES</div><div class="ttdoc">Maximum count of reconnect attempts after which the driver stops.</div><div class="ttdef"><b>Definition:</b> <a href="b15f_8h_source.html#l00242">b15f.h:242</a></div></div>
-<div class="ttc" id="aclassB15F_html_a7b8a0e2a9156f7dcb05d097f23666a78"><div class="ttname"><a href="classB15F.html#a7b8a0e2a9156f7dcb05d097f23666a78">B15F::testIntConv</a></div><div class="ttdeci">bool testIntConv(void)</div><div class="ttdef"><b>Definition:</b> <a href="b15f_8cpp_source.html#l00114">b15f.cpp:114</a></div></div>
-<div class="ttc" id="aclassDriverException_html"><div class="ttname"><a href="classDriverException.html">DriverException</a></div><div class="ttdef"><b>Definition:</b> <a href="driverexception_8h_source.html#l00010">driverexception.h:10</a></div></div>
-<!-- start footer part -->
-<hr class="footer"/><address class="footer"><small>
-Generated on Fri Jun 7 2019 14:50:45 for B15F by &#160;<a href="http://www.doxygen.org/index.html">
-<img class="footer" src="doxygen.png" alt="doxygen"/>
-</a> 1.8.16
-</small></address>
-</body>
-</html>
diff --git a/docs/html/b15f_8h_source.html b/docs/html/b15f_8h_source.html
deleted file mode 100644
index ddcbeea..0000000
--- a/docs/html/b15f_8h_source.html
+++ /dev/null
@@ -1,115 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml">
-<head>
-<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
-<meta http-equiv="X-UA-Compatible" content="IE=9"/>
-<meta name="generator" content="Doxygen 1.8.16"/>
-<meta name="viewport" content="width=device-width, initial-scale=1"/>
-<title>B15F: drv/b15f.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">B15F
-   </div>
-   <div id="projectbrief">Board 15 Famulus Edition</div>
-  </td>
- </tr>
- </tbody>
-</table>
-</div>
-<!-- end header part -->
-<!-- Generated by Doxygen 1.8.16 -->
-<script type="text/javascript">
-/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
-var searchBox = new SearchBox("searchBox", "search",false,'Search');
-/* @license-end */
-</script>
-<script type="text/javascript" src="menudata.js"></script>
-<script type="text/javascript" src="menu.js"></script>
-<script type="text/javascript">
-/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
-$(function() {
-  initMenu('',true,false,'search.php','Search');
-  $(document).ready(function() { init_search(); });
-});
-/* @license-end */</script>
-<div id="main-nav"></div>
-<!-- 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 id="nav-path" class="navpath">
-  <ul>
-<li class="navelem"><a class="el" href="dir_587c94d866dbb2f408f78cf41f9b2f8d.html">drv</a></li>  </ul>
-</div>
-</div><!-- top -->
-<div class="header">
-  <div class="headertitle">
-<div class="title">b15f.h</div>  </div>
-</div><!--header-->
-<div class="contents">
-<div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno">    1</span>&#160;<span class="preprocessor">#ifndef B15F_H</span></div><div class="line"><a name="l00002"></a><span class="lineno">    2</span>&#160;<span class="preprocessor">#define B15F_H</span></div><div class="line"><a name="l00003"></a><span class="lineno">    3</span>&#160; </div><div class="line"><a name="l00004"></a><span class="lineno">    4</span>&#160;<span class="preprocessor">#include &lt;iostream&gt;</span></div><div class="line"><a name="l00005"></a><span class="lineno">    5</span>&#160;<span class="preprocessor">#include &lt;bits/stdc++.h&gt;</span></div><div class="line"><a name="l00006"></a><span class="lineno">    6</span>&#160;<span class="preprocessor">#include &lt;string&gt;</span></div><div class="line"><a name="l00007"></a><span class="lineno">    7</span>&#160;<span class="preprocessor">#include &lt;fstream&gt;</span></div><div class="line"><a name="l00008"></a><span class="lineno">    8</span>&#160;<span class="preprocessor">#include &lt;cstdlib&gt;</span></div><div class="line"><a name="l00009"></a><span class="lineno">    9</span>&#160;<span class="preprocessor">#include &lt;chrono&gt;</span></div><div class="line"><a name="l00010"></a><span class="lineno">   10</span>&#160;<span class="preprocessor">#include &lt;cstdint&gt;</span></div><div class="line"><a name="l00011"></a><span class="lineno">   11</span>&#160;<span class="preprocessor">#include &lt;vector&gt;</span></div><div class="line"><a name="l00012"></a><span class="lineno">   12</span>&#160; </div><div class="line"><a name="l00013"></a><span class="lineno">   13</span>&#160;<span class="preprocessor">#include &lt;unistd.h&gt;</span></div><div class="line"><a name="l00014"></a><span class="lineno">   14</span>&#160;<span class="preprocessor">#include &lt;fcntl.h&gt;</span></div><div class="line"><a name="l00015"></a><span class="lineno">   15</span>&#160;<span class="preprocessor">#include &lt;sys/ioctl.h&gt;</span></div><div class="line"><a name="l00016"></a><span class="lineno">   16</span>&#160;<span class="preprocessor">#include &lt;termios.h&gt;</span></div><div class="line"><a name="l00017"></a><span class="lineno">   17</span>&#160;<span class="preprocessor">#include &quot;usart.h&quot;</span></div><div class="line"><a name="l00018"></a><span class="lineno">   18</span>&#160;<span class="preprocessor">#include &quot;driverexception.h&quot;</span></div><div class="line"><a name="l00019"></a><span class="lineno">   19</span>&#160;<span class="preprocessor">#include &quot;timeoutexception.h&quot;</span></div><div class="line"><a name="l00020"></a><span class="lineno">   20</span>&#160; </div><div class="line"><a name="l00021"></a><span class="lineno">   21</span>&#160;<span class="comment">// wichtig für die Register-Zugriffe</span></div><div class="line"><a name="l00022"></a><span class="lineno">   22</span>&#160;<span class="preprocessor">#define _AVR_IO_H_ 1 // Erzwinge die Inklusion</span></div><div class="line"><a name="l00023"></a><span class="lineno">   23</span>&#160;<span class="preprocessor">#include &quot;/usr/lib/avr/include/avr/sfr_defs.h&quot;</span></div><div class="line"><a name="l00024"></a><span class="lineno">   24</span>&#160;<span class="preprocessor">#include &quot;/usr/lib/avr/include/avr/iom1284p.h&quot;</span></div><div class="line"><a name="l00025"></a><span class="lineno">   25</span>&#160; </div><div class="line"><a name="l00026"></a><span class="lineno">   26</span>&#160;<span class="keyword">typedef</span> std::function&lt;void(std::exception&amp;)&gt; errorhandler_t;</div><div class="line"><a name="l00027"></a><span class="lineno">   27</span>&#160; </div><div class="line"><a name="l00028"></a><span class="lineno">   28</span>&#160; </div><div class="line"><a name="l00031"></a><span class="lineno"><a class="line" href="classB15F.html">   31</a></span>&#160;<span class="keyword">class </span><a class="code" href="classB15F.html">B15F</a></div><div class="line"><a name="l00032"></a><span class="lineno">   32</span>&#160;{</div><div class="line"><a name="l00033"></a><span class="lineno">   33</span>&#160;<span class="keyword">private</span>:</div><div class="line"><a name="l00034"></a><span class="lineno">   34</span>&#160;    <span class="comment">// privater Konstruktor</span></div><div class="line"><a name="l00035"></a><span class="lineno">   35</span>&#160;    <a class="code" href="classB15F.html">B15F</a>(<span class="keywordtype">void</span>);</div><div class="line"><a name="l00036"></a><span class="lineno">   36</span>&#160;<span class="keyword">public</span>:</div><div class="line"><a name="l00037"></a><span class="lineno">   37</span>&#160; </div><div class="line"><a name="l00038"></a><span class="lineno">   38</span>&#160;<span class="comment">    /*************************************</span></div><div class="line"><a name="l00039"></a><span class="lineno">   39</span>&#160;<span class="comment">     * Grundfunktionen des B15F Treibers *</span></div><div class="line"><a name="l00040"></a><span class="lineno">   40</span>&#160;<span class="comment">     *************************************/</span></div><div class="line"><a name="l00041"></a><span class="lineno">   41</span>&#160; </div><div class="line"><a name="l00046"></a><span class="lineno">   46</span>&#160;    <span class="keywordtype">void</span> <a class="code" href="classB15F.html#a52557b375443c180a044e7d4e80a1ae7">reconnect</a>(<span class="keywordtype">void</span>);</div><div class="line"><a name="l00047"></a><span class="lineno">   47</span>&#160; </div><div class="line"><a name="l00052"></a><span class="lineno">   52</span>&#160;    <span class="keywordtype">void</span> <a class="code" href="classB15F.html#ae4740cd473f40a1a4121dfa66b25e1d5">discard</a>(<span class="keywordtype">void</span>);</div><div class="line"><a name="l00053"></a><span class="lineno">   53</span>&#160; </div><div class="line"><a name="l00058"></a><span class="lineno">   58</span>&#160;    <span class="keywordtype">bool</span> <a class="code" href="classB15F.html#af01983594f2af98ab2b1e514aa036a5d">testConnection</a>(<span class="keywordtype">void</span>);</div><div class="line"><a name="l00059"></a><span class="lineno">   59</span>&#160; </div><div class="line"><a name="l00064"></a><span class="lineno">   64</span>&#160;    <span class="keywordtype">bool</span> <a class="code" href="classB15F.html#a7b8a0e2a9156f7dcb05d097f23666a78">testIntConv</a>(<span class="keywordtype">void</span>);</div><div class="line"><a name="l00065"></a><span class="lineno">   65</span>&#160; </div><div class="line"><a name="l00070"></a><span class="lineno">   70</span>&#160;    std::vector&lt;std::string&gt; <a class="code" href="classB15F.html#a4f01677e73d6d172a2c1cae9427a591b">getBoardInfo</a>(<span class="keywordtype">void</span>);</div><div class="line"><a name="l00071"></a><span class="lineno">   71</span>&#160; </div><div class="line"><a name="l00076"></a><span class="lineno">   76</span>&#160;    <span class="keywordtype">void</span> <a class="code" href="classB15F.html#aaffce20afb9f06bc4b7556c70ce76416">delay_ms</a>(uint16_t ms);</div><div class="line"><a name="l00077"></a><span class="lineno">   77</span>&#160; </div><div class="line"><a name="l00082"></a><span class="lineno">   82</span>&#160;    <span class="keywordtype">void</span> <a class="code" href="classB15F.html#adcaac8ae8db3c28eccb499fbd720361f">delay_us</a>(uint16_t us);</div><div class="line"><a name="l00083"></a><span class="lineno">   83</span>&#160; </div><div class="line"><a name="l00088"></a><span class="lineno">   88</span>&#160;    <span class="keyword">static</span> <a class="code" href="classB15F.html">B15F</a>&amp; <a class="code" href="classB15F.html#a8b4533d232c55ef2aa967e39e2d23380">getInstance</a>(<span class="keywordtype">void</span>);</div><div class="line"><a name="l00089"></a><span class="lineno">   89</span>&#160; </div><div class="line"><a name="l00094"></a><span class="lineno">   94</span>&#160;    <span class="keyword">static</span> std::string <a class="code" href="classB15F.html#a1a7ac52984ed7ecac008a3e4060eee3a">exec</a>(std::string cmd);</div><div class="line"><a name="l00095"></a><span class="lineno">   95</span>&#160; </div><div class="line"><a name="l00100"></a><span class="lineno">  100</span>&#160;    <span class="keyword">static</span> <span class="keywordtype">void</span> <a class="code" href="classB15F.html#a3f09a418f9e3be5d1d750e4515c96f1e">abort</a>(std::string msg);</div><div class="line"><a name="l00101"></a><span class="lineno">  101</span>&#160; </div><div class="line"><a name="l00106"></a><span class="lineno">  106</span>&#160;    <span class="keyword">static</span> <span class="keywordtype">void</span> <a class="code" href="classB15F.html#a3f09a418f9e3be5d1d750e4515c96f1e">abort</a>(std::exception&amp; ex);</div><div class="line"><a name="l00107"></a><span class="lineno">  107</span>&#160; </div><div class="line"><a name="l00112"></a><span class="lineno">  112</span>&#160;    <span class="keyword">static</span> <span class="keywordtype">void</span> <a class="code" href="classB15F.html#a55b0cd1ea582bda53d6979442640f8e9">setAbortHandler</a>(errorhandler_t func);</div><div class="line"><a name="l00113"></a><span class="lineno">  113</span>&#160; </div><div class="line"><a name="l00114"></a><span class="lineno">  114</span>&#160;<span class="comment">    /*************************************/</span></div><div class="line"><a name="l00115"></a><span class="lineno">  115</span>&#160; </div><div class="line"><a name="l00116"></a><span class="lineno">  116</span>&#160; </div><div class="line"><a name="l00117"></a><span class="lineno">  117</span>&#160; </div><div class="line"><a name="l00118"></a><span class="lineno">  118</span>&#160;<span class="comment">    /*************************</span></div><div class="line"><a name="l00119"></a><span class="lineno">  119</span>&#160;<span class="comment">     * Steuerbefehle für B15 *</span></div><div class="line"><a name="l00120"></a><span class="lineno">  120</span>&#160;<span class="comment">     *************************/</span></div><div class="line"><a name="l00121"></a><span class="lineno">  121</span>&#160; </div><div class="line"><a name="l00127"></a><span class="lineno">  127</span>&#160;    <span class="keywordtype">bool</span> <a class="code" href="classB15F.html#ad9bf80ee2485fb5aac9926c6ef0731f1">activateSelfTestMode</a>(<span class="keywordtype">void</span>);</div><div class="line"><a name="l00128"></a><span class="lineno">  128</span>&#160; </div><div class="line"><a name="l00134"></a><span class="lineno">  134</span>&#160;    <span class="keywordtype">bool</span> <a class="code" href="classB15F.html#a13797edea1c50278988373acbd110064">digitalWrite0</a>(uint8_t);</div><div class="line"><a name="l00135"></a><span class="lineno">  135</span>&#160; </div><div class="line"><a name="l00141"></a><span class="lineno">  141</span>&#160;    <span class="keywordtype">bool</span> <a class="code" href="classB15F.html#aa225e7fc813849634063e071ef25db1b">digitalWrite1</a>(uint8_t);</div><div class="line"><a name="l00142"></a><span class="lineno">  142</span>&#160; </div><div class="line"><a name="l00148"></a><span class="lineno">  148</span>&#160;    uint8_t <a class="code" href="classB15F.html#ae0df6d423deeb2fd610968bd1c72060e">digitalRead0</a>(<span class="keywordtype">void</span>);</div><div class="line"><a name="l00149"></a><span class="lineno">  149</span>&#160; </div><div class="line"><a name="l00155"></a><span class="lineno">  155</span>&#160;    uint8_t <a class="code" href="classB15F.html#afc76b612dd4faeee0ac02a66b65af5f2">digitalRead1</a>(<span class="keywordtype">void</span>);</div><div class="line"><a name="l00156"></a><span class="lineno">  156</span>&#160; </div><div class="line"><a name="l00162"></a><span class="lineno">  162</span>&#160;    uint8_t <a class="code" href="classB15F.html#a6f858f21ea81d491b5031b3644a2239a">readDipSwitch</a>(<span class="keywordtype">void</span>);</div><div class="line"><a name="l00163"></a><span class="lineno">  163</span>&#160; </div><div class="line"><a name="l00169"></a><span class="lineno">  169</span>&#160;    <span class="keywordtype">bool</span> <a class="code" href="classB15F.html#afc55fd590c7fa5c942d100cb60c4b0d3">analogWrite0</a>(uint16_t port);</div><div class="line"><a name="l00170"></a><span class="lineno">  170</span>&#160; </div><div class="line"><a name="l00176"></a><span class="lineno">  176</span>&#160;    <span class="keywordtype">bool</span> <a class="code" href="classB15F.html#a7f1becceac744f5cd2ad529748fd836f">analogWrite1</a>(uint16_t port);</div><div class="line"><a name="l00177"></a><span class="lineno">  177</span>&#160; </div><div class="line"><a name="l00183"></a><span class="lineno">  183</span>&#160;    uint16_t <a class="code" href="classB15F.html#ae0bd1f69751e2dc3c462db9213fc4627">analogRead</a>(uint8_t channel);</div><div class="line"><a name="l00184"></a><span class="lineno">  184</span>&#160; </div><div class="line"><a name="l00200"></a><span class="lineno">  200</span>&#160;    <span class="keywordtype">void</span> <a class="code" href="classB15F.html#ab82a324426c3063318c6cafb3089ae02">analogSequence</a>(uint8_t channel_a, uint16_t* buffer_a, uint32_t offset_a, uint8_t channel_b, uint16_t* buffer_b, uint32_t offset_b, uint16_t start, int16_t delta, uint16_t count);</div><div class="line"><a name="l00201"></a><span class="lineno">  201</span>&#160; </div><div class="line"><a name="l00210"></a><span class="lineno">  210</span>&#160;    uint8_t <a class="code" href="classB15F.html#ac6f6532bb9550a0632c28b98c157d0a1">pwmSetFrequency</a>(uint32_t freq);</div><div class="line"><a name="l00211"></a><span class="lineno">  211</span>&#160; </div><div class="line"><a name="l00217"></a><span class="lineno">  217</span>&#160;    <span class="keywordtype">bool</span> <a class="code" href="classB15F.html#af9aad3c0db5d5a8b37219d713e1977ee">pwmSetValue</a>(uint8_t value);</div><div class="line"><a name="l00218"></a><span class="lineno">  218</span>&#160; </div><div class="line"><a name="l00226"></a><span class="lineno">  226</span>&#160;    <span class="keywordtype">bool</span> <a class="code" href="classB15F.html#ab446ecffab28d4515dfade79a8efc93d">setRegister</a>(<span class="keyword">volatile</span> uint8_t* adr, uint8_t val);</div><div class="line"><a name="l00227"></a><span class="lineno">  227</span>&#160; </div><div class="line"><a name="l00233"></a><span class="lineno">  233</span>&#160;    uint8_t <a class="code" href="classB15F.html#a9bd47da39928af6f51075bdc3fe73ddc">getRegister</a>(<span class="keyword">volatile</span> uint8_t* adr);</div><div class="line"><a name="l00234"></a><span class="lineno">  234</span>&#160; </div><div class="line"><a name="l00235"></a><span class="lineno">  235</span>&#160;<span class="comment">    /*************************/</span></div><div class="line"><a name="l00236"></a><span class="lineno">  236</span>&#160; </div><div class="line"><a name="l00237"></a><span class="lineno"><a class="line" href="classB15F.html#a3b0fc1f85954b2d9c145af4a3af5b1ec">  237</a></span>&#160; </div><div class="line"><a name="l00238"></a><span class="lineno"><a class="line" href="classB15F.html#ab01299858f74a6cec598688562e0ad02">  238</a></span>&#160;    <span class="comment">// CONSTANTS</span></div><div class="line"><a name="l00239"></a><span class="lineno"><a class="line" href="classB15F.html#a77d1ecf24b406c9204665d3b09c36f1e">  239</a></span>&#160;    <span class="keyword">const</span> std::string <a class="code" href="classB15F.html#a3b0fc1f85954b2d9c145af4a3af5b1ec">PRE</a> = <span class="stringliteral">&quot;[B15F] &quot;</span>; </div><div class="line"><a name="l00240"></a><span class="lineno"><a class="line" href="classB15F.html#a040951746fbfd632e12bd1ad14578816">  240</a></span>&#160;    constexpr <span class="keyword">static</span> uint8_t  <a class="code" href="classB15F.html#ab01299858f74a6cec598688562e0ad02">MSG_OK</a> = 0xFF; </div><div class="line"><a name="l00241"></a><span class="lineno"><a class="line" href="classB15F.html#a158d13bc84aed6430cdede1396384e06">  241</a></span>&#160;    constexpr <span class="keyword">static</span> uint8_t  <a class="code" href="classB15F.html#a77d1ecf24b406c9204665d3b09c36f1e">MSG_FAIL</a> = 0xFE; </div><div class="line"><a name="l00242"></a><span class="lineno"><a class="line" href="classB15F.html#a6c4895bdbcd71ff6743becf97985c2dc">  242</a></span>&#160;    constexpr <span class="keyword">static</span> uint16_t <a class="code" href="classB15F.html#a040951746fbfd632e12bd1ad14578816">RECONNECT_TIMEOUT</a> = 64; </div><div class="line"><a name="l00243"></a><span class="lineno"><a class="line" href="classB15F.html#a7d548d6861cfc69753161bf9cda14f87">  243</a></span>&#160;    constexpr <span class="keyword">static</span> uint16_t <a class="code" href="classB15F.html#a158d13bc84aed6430cdede1396384e06">WDT_TIMEOUT</a> = 15; </div><div class="line"><a name="l00244"></a><span class="lineno">  244</span>&#160;    constexpr <span class="keyword">static</span> uint8_t  <a class="code" href="classB15F.html#a6c4895bdbcd71ff6743becf97985c2dc">RECONNECT_TRIES</a> = 3; </div><div class="line"><a name="l00245"></a><span class="lineno">  245</span>&#160;    constexpr <span class="keyword">static</span> uint32_t <a class="code" href="classB15F.html#a7d548d6861cfc69753161bf9cda14f87">BAUDRATE</a> = 57600; </div><div class="line"><a name="l00246"></a><span class="lineno">  246</span>&#160; </div><div class="line"><a name="l00247"></a><span class="lineno">  247</span>&#160;<span class="keyword">private</span>:</div><div class="line"><a name="l00248"></a><span class="lineno">  248</span>&#160; </div><div class="line"><a name="l00253"></a><span class="lineno">  253</span>&#160;    <span class="keywordtype">void</span> init(<span class="keywordtype">void</span>);</div><div class="line"><a name="l00254"></a><span class="lineno">  254</span>&#160; </div><div class="line"><a name="l00255"></a><span class="lineno">  255</span>&#160;    <a class="code" href="classUSART.html">USART</a> usart;</div><div class="line"><a name="l00256"></a><span class="lineno">  256</span>&#160;    <span class="keyword">static</span> <a class="code" href="classB15F.html">B15F</a>* instance;</div><div class="line"><a name="l00257"></a><span class="lineno">  257</span>&#160;    <span class="keyword">static</span> errorhandler_t errorhandler;</div><div class="line"><a name="l00258"></a><span class="lineno">  258</span>&#160; </div><div class="line"><a name="l00259"></a><span class="lineno">  259</span>&#160;    <span class="comment">// REQUESTS</span></div><div class="line"><a name="l00260"></a><span class="lineno">  260</span>&#160;    constexpr <span class="keyword">static</span> uint8_t RQ_DISC = 0;</div><div class="line"><a name="l00261"></a><span class="lineno">  261</span>&#160;    constexpr <span class="keyword">static</span> uint8_t RQ_TEST = 1;</div><div class="line"><a name="l00262"></a><span class="lineno">  262</span>&#160;    constexpr <span class="keyword">static</span> uint8_t RQ_INFO = 2;</div><div class="line"><a name="l00263"></a><span class="lineno">  263</span>&#160;    constexpr <span class="keyword">static</span> uint8_t RQ_INT  = 3;</div><div class="line"><a name="l00264"></a><span class="lineno">  264</span>&#160;    constexpr <span class="keyword">static</span> uint8_t RQ_ST   = 4;</div><div class="line"><a name="l00265"></a><span class="lineno">  265</span>&#160;    constexpr <span class="keyword">static</span> uint8_t RQ_BA0  = 5;</div><div class="line"><a name="l00266"></a><span class="lineno">  266</span>&#160;    constexpr <span class="keyword">static</span> uint8_t RQ_BA1  = 6;</div><div class="line"><a name="l00267"></a><span class="lineno">  267</span>&#160;    constexpr <span class="keyword">static</span> uint8_t RQ_BE0  = 7;</div><div class="line"><a name="l00268"></a><span class="lineno">  268</span>&#160;    constexpr <span class="keyword">static</span> uint8_t RQ_BE1  = 8;</div><div class="line"><a name="l00269"></a><span class="lineno">  269</span>&#160;    constexpr <span class="keyword">static</span> uint8_t RQ_DSW  = 9;</div><div class="line"><a name="l00270"></a><span class="lineno">  270</span>&#160;    constexpr <span class="keyword">static</span> uint8_t RQ_AA0  = 10;</div><div class="line"><a name="l00271"></a><span class="lineno">  271</span>&#160;    constexpr <span class="keyword">static</span> uint8_t RQ_AA1  = 11;</div><div class="line"><a name="l00272"></a><span class="lineno">  272</span>&#160;    constexpr <span class="keyword">static</span> uint8_t RQ_ADC  = 12;</div><div class="line"><a name="l00273"></a><span class="lineno">  273</span>&#160;    constexpr <span class="keyword">static</span> uint8_t RQ_ADC_DAC_STROKE = 13;</div><div class="line"><a name="l00274"></a><span class="lineno">  274</span>&#160;    constexpr <span class="keyword">static</span> uint8_t RQ_PWM_SET_FREQ   = 14;</div><div class="line"><a name="l00275"></a><span class="lineno">  275</span>&#160;    constexpr <span class="keyword">static</span> uint8_t RQ_PWM_SET_VALUE  = 15;</div><div class="line"><a name="l00276"></a><span class="lineno">  276</span>&#160;    constexpr <span class="keyword">static</span> uint8_t RQ_SET_REG        = 16;</div><div class="line"><a name="l00277"></a><span class="lineno">  277</span>&#160;    constexpr <span class="keyword">static</span> uint8_t RQ_GET_REG        = 17;</div><div class="line"><a name="l00278"></a><span class="lineno">  278</span>&#160;};</div><div class="line"><a name="l00279"></a><span class="lineno">  279</span>&#160; </div><div class="line"><a name="l00280"></a><span class="lineno">  280</span>&#160;<span class="preprocessor">#endif // B15F_H</span></div></div><!-- fragment --></div><!-- contents -->
-<div class="ttc" id="aclassB15F_html_a1a7ac52984ed7ecac008a3e4060eee3a"><div class="ttname"><a href="classB15F.html#a1a7ac52984ed7ecac008a3e4060eee3a">B15F::exec</a></div><div class="ttdeci">static std::string exec(std::string cmd)</div><div class="ttdef"><b>Definition:</b> <a href="b15f_8cpp_source.html#l00451">b15f.cpp:451</a></div></div>
-<div class="ttc" id="aclassB15F_html_a77d1ecf24b406c9204665d3b09c36f1e"><div class="ttname"><a href="classB15F.html#a77d1ecf24b406c9204665d3b09c36f1e">B15F::MSG_FAIL</a></div><div class="ttdeci">constexpr static uint8_t MSG_FAIL</div><div class="ttdoc">Value to reject a received command.</div><div class="ttdef"><b>Definition:</b> <a href="b15f_8h_source.html#l00239">b15f.h:239</a></div></div>
-<div class="ttc" id="aclassB15F_html_adcaac8ae8db3c28eccb499fbd720361f"><div class="ttname"><a href="classB15F.html#adcaac8ae8db3c28eccb499fbd720361f">B15F::delay_us</a></div><div class="ttdeci">void delay_us(uint16_t us)</div><div class="ttdef"><b>Definition:</b> <a href="b15f_8cpp_source.html#l00437">b15f.cpp:437</a></div></div>
-<div class="ttc" id="aclassB15F_html_ae0df6d423deeb2fd610968bd1c72060e"><div class="ttname"><a href="classB15F.html#ae0df6d423deeb2fd610968bd1c72060e">B15F::digitalRead0</a></div><div class="ttdeci">uint8_t digitalRead0(void)</div><div class="ttdef"><b>Definition:</b> <a href="b15f_8cpp_source.html#l00207">b15f.cpp:207</a></div></div>
-<div class="ttc" id="aclassB15F_html_ac6f6532bb9550a0632c28b98c157d0a1"><div class="ttname"><a href="classB15F.html#ac6f6532bb9550a0632c28b98c157d0a1">B15F::pwmSetFrequency</a></div><div class="ttdeci">uint8_t pwmSetFrequency(uint32_t freq)</div><div class="ttdef"><b>Definition:</b> <a href="b15f_8cpp_source.html#l00359">b15f.cpp:359</a></div></div>
-<div class="ttc" id="aclassB15F_html_ab82a324426c3063318c6cafb3089ae02"><div class="ttname"><a href="classB15F.html#ab82a324426c3063318c6cafb3089ae02">B15F::analogSequence</a></div><div class="ttdeci">void analogSequence(uint8_t channel_a, uint16_t *buffer_a, uint32_t offset_a, uint8_t channel_b, uint16_t *buffer_b, uint32_t offset_b, uint16_t start, int16_t delta, uint16_t count)</div><div class="ttdef"><b>Definition:</b> <a href="b15f_8cpp_source.html#l00302">b15f.cpp:302</a></div></div>
-<div class="ttc" id="aclassB15F_html_af01983594f2af98ab2b1e514aa036a5d"><div class="ttname"><a href="classB15F.html#af01983594f2af98ab2b1e514aa036a5d">B15F::testConnection</a></div><div class="ttdeci">bool testConnection(void)</div><div class="ttdef"><b>Definition:</b> <a href="b15f_8cpp_source.html#l00095">b15f.cpp:95</a></div></div>
-<div class="ttc" id="aclassB15F_html_a6f858f21ea81d491b5031b3644a2239a"><div class="ttname"><a href="classB15F.html#a6f858f21ea81d491b5031b3644a2239a">B15F::readDipSwitch</a></div><div class="ttdeci">uint8_t readDipSwitch(void)</div><div class="ttdef"><b>Definition:</b> <a href="b15f_8cpp_source.html#l00235">b15f.cpp:235</a></div></div>
-<div class="ttc" id="aclassB15F_html_a9bd47da39928af6f51075bdc3fe73ddc"><div class="ttname"><a href="classB15F.html#a9bd47da39928af6f51075bdc3fe73ddc">B15F::getRegister</a></div><div class="ttdeci">uint8_t getRegister(volatile uint8_t *adr)</div><div class="ttdef"><b>Definition:</b> <a href="b15f_8cpp_source.html#l00414">b15f.cpp:414</a></div></div>
-<div class="ttc" id="aclassB15F_html_aaffce20afb9f06bc4b7556c70ce76416"><div class="ttname"><a href="classB15F.html#aaffce20afb9f06bc4b7556c70ce76416">B15F::delay_ms</a></div><div class="ttdeci">void delay_ms(uint16_t ms)</div><div class="ttdef"><b>Definition:</b> <a href="b15f_8cpp_source.html#l00432">b15f.cpp:432</a></div></div>
-<div class="ttc" id="aclassB15F_html_a8b4533d232c55ef2aa967e39e2d23380"><div class="ttname"><a href="classB15F.html#a8b4533d232c55ef2aa967e39e2d23380">B15F::getInstance</a></div><div class="ttdeci">static B15F &amp; getInstance(void)</div><div class="ttdef"><b>Definition:</b> <a href="b15f_8cpp_source.html#l00442">b15f.cpp:442</a></div></div>
-<div class="ttc" id="aclassB15F_html"><div class="ttname"><a href="classB15F.html">B15F</a></div><div class="ttdef"><b>Definition:</b> <a href="b15f_8h_source.html#l00031">b15f.h:31</a></div></div>
-<div class="ttc" id="aclassB15F_html_a3f09a418f9e3be5d1d750e4515c96f1e"><div class="ttname"><a href="classB15F.html#a3f09a418f9e3be5d1d750e4515c96f1e">B15F::abort</a></div><div class="ttdeci">static void abort(std::string msg)</div><div class="ttdef"><b>Definition:</b> <a href="b15f_8cpp_source.html#l00467">b15f.cpp:467</a></div></div>
-<div class="ttc" id="aclassUSART_html"><div class="ttname"><a href="classUSART.html">USART</a></div><div class="ttdef"><b>Definition:</b> <a href="usart_8h_source.html#l00016">usart.h:16</a></div></div>
-<div class="ttc" id="aclassB15F_html_ae0bd1f69751e2dc3c462db9213fc4627"><div class="ttname"><a href="classB15F.html#ae0bd1f69751e2dc3c462db9213fc4627">B15F::analogRead</a></div><div class="ttdeci">uint16_t analogRead(uint8_t channel)</div><div class="ttdef"><b>Definition:</b> <a href="b15f_8cpp_source.html#l00279">b15f.cpp:279</a></div></div>
-<div class="ttc" id="aclassB15F_html_a13797edea1c50278988373acbd110064"><div class="ttname"><a href="classB15F.html#a13797edea1c50278988373acbd110064">B15F::digitalWrite0</a></div><div class="ttdeci">bool digitalWrite0(uint8_t)</div><div class="ttdef"><b>Definition:</b> <a href="b15f_8cpp_source.html#l00179">b15f.cpp:179</a></div></div>
-<div class="ttc" id="aclassB15F_html_a3b0fc1f85954b2d9c145af4a3af5b1ec"><div class="ttname"><a href="classB15F.html#a3b0fc1f85954b2d9c145af4a3af5b1ec">B15F::PRE</a></div><div class="ttdeci">const std::string PRE</div><div class="ttdoc">B15F stdout prefix.</div><div class="ttdef"><b>Definition:</b> <a href="b15f_8h_source.html#l00237">b15f.h:237</a></div></div>
-<div class="ttc" id="aclassB15F_html_ad9bf80ee2485fb5aac9926c6ef0731f1"><div class="ttname"><a href="classB15F.html#ad9bf80ee2485fb5aac9926c6ef0731f1">B15F::activateSelfTestMode</a></div><div class="ttdeci">bool activateSelfTestMode(void)</div><div class="ttdef"><b>Definition:</b> <a href="b15f_8cpp_source.html#l00166">b15f.cpp:166</a></div></div>
-<div class="ttc" id="aclassB15F_html_a4f01677e73d6d172a2c1cae9427a591b"><div class="ttname"><a href="classB15F.html#a4f01677e73d6d172a2c1cae9427a591b">B15F::getBoardInfo</a></div><div class="ttdeci">std::vector&lt; std::string &gt; getBoardInfo(void)</div><div class="ttdef"><b>Definition:</b> <a href="b15f_8cpp_source.html#l00134">b15f.cpp:134</a></div></div>
-<div class="ttc" id="aclassB15F_html_a040951746fbfd632e12bd1ad14578816"><div class="ttname"><a href="classB15F.html#a040951746fbfd632e12bd1ad14578816">B15F::RECONNECT_TIMEOUT</a></div><div class="ttdeci">constexpr static uint16_t RECONNECT_TIMEOUT</div><div class="ttdoc">Time in ms after which a reconnect attempt aborts.</div><div class="ttdef"><b>Definition:</b> <a href="b15f_8h_source.html#l00240">b15f.h:240</a></div></div>
-<div class="ttc" id="aclassB15F_html_a7f1becceac744f5cd2ad529748fd836f"><div class="ttname"><a href="classB15F.html#a7f1becceac744f5cd2ad529748fd836f">B15F::analogWrite1</a></div><div class="ttdeci">bool analogWrite1(uint16_t port)</div><div class="ttdef"><b>Definition:</b> <a href="b15f_8cpp_source.html#l00264">b15f.cpp:264</a></div></div>
-<div class="ttc" id="aclassB15F_html_aa225e7fc813849634063e071ef25db1b"><div class="ttname"><a href="classB15F.html#aa225e7fc813849634063e071ef25db1b">B15F::digitalWrite1</a></div><div class="ttdeci">bool digitalWrite1(uint8_t)</div><div class="ttdef"><b>Definition:</b> <a href="b15f_8cpp_source.html#l00193">b15f.cpp:193</a></div></div>
-<div class="ttc" id="aclassB15F_html_af9aad3c0db5d5a8b37219d713e1977ee"><div class="ttname"><a href="classB15F.html#af9aad3c0db5d5a8b37219d713e1977ee">B15F::pwmSetValue</a></div><div class="ttdeci">bool pwmSetValue(uint8_t value)</div><div class="ttdef"><b>Definition:</b> <a href="b15f_8cpp_source.html#l00379">b15f.cpp:379</a></div></div>
-<div class="ttc" id="aclassB15F_html_ae4740cd473f40a1a4121dfa66b25e1d5"><div class="ttname"><a href="classB15F.html#ae4740cd473f40a1a4121dfa66b25e1d5">B15F::discard</a></div><div class="ttdeci">void discard(void)</div><div class="ttdef"><b>Definition:</b> <a href="b15f_8cpp_source.html#l00072">b15f.cpp:72</a></div></div>
-<div class="ttc" id="aclassB15F_html_ab446ecffab28d4515dfade79a8efc93d"><div class="ttname"><a href="classB15F.html#ab446ecffab28d4515dfade79a8efc93d">B15F::setRegister</a></div><div class="ttdeci">bool setRegister(volatile uint8_t *adr, uint8_t val)</div><div class="ttdef"><b>Definition:</b> <a href="b15f_8cpp_source.html#l00396">b15f.cpp:396</a></div></div>
-<div class="ttc" id="aclassB15F_html_ab01299858f74a6cec598688562e0ad02"><div class="ttname"><a href="classB15F.html#ab01299858f74a6cec598688562e0ad02">B15F::MSG_OK</a></div><div class="ttdeci">constexpr static uint8_t MSG_OK</div><div class="ttdoc">Value to acknowledge a received command.</div><div class="ttdef"><b>Definition:</b> <a href="b15f_8h_source.html#l00238">b15f.h:238</a></div></div>
-<div class="ttc" id="aclassB15F_html_afc76b612dd4faeee0ac02a66b65af5f2"><div class="ttname"><a href="classB15F.html#afc76b612dd4faeee0ac02a66b65af5f2">B15F::digitalRead1</a></div><div class="ttdeci">uint8_t digitalRead1(void)</div><div class="ttdef"><b>Definition:</b> <a href="b15f_8cpp_source.html#l00221">b15f.cpp:221</a></div></div>
-<div class="ttc" id="aclassB15F_html_a158d13bc84aed6430cdede1396384e06"><div class="ttname"><a href="classB15F.html#a158d13bc84aed6430cdede1396384e06">B15F::WDT_TIMEOUT</a></div><div class="ttdeci">constexpr static uint16_t WDT_TIMEOUT</div><div class="ttdoc">Time in ms after which the watch dog timer resets the MCU.</div><div class="ttdef"><b>Definition:</b> <a href="b15f_8h_source.html#l00241">b15f.h:241</a></div></div>
-<div class="ttc" id="aclassB15F_html_a52557b375443c180a044e7d4e80a1ae7"><div class="ttname"><a href="classB15F.html#a52557b375443c180a044e7d4e80a1ae7">B15F::reconnect</a></div><div class="ttdeci">void reconnect(void)</div><div class="ttdef"><b>Definition:</b> <a href="b15f_8cpp_source.html#l00057">b15f.cpp:57</a></div></div>
-<div class="ttc" id="aclassB15F_html_a7d548d6861cfc69753161bf9cda14f87"><div class="ttname"><a href="classB15F.html#a7d548d6861cfc69753161bf9cda14f87">B15F::BAUDRATE</a></div><div class="ttdeci">constexpr static uint32_t BAUDRATE</div><div class="ttdoc">USART baudrate for communication with the MCU.</div><div class="ttdef"><b>Definition:</b> <a href="b15f_8h_source.html#l00243">b15f.h:243</a></div></div>
-<div class="ttc" id="aclassB15F_html_a55b0cd1ea582bda53d6979442640f8e9"><div class="ttname"><a href="classB15F.html#a55b0cd1ea582bda53d6979442640f8e9">B15F::setAbortHandler</a></div><div class="ttdeci">static void setAbortHandler(errorhandler_t func)</div><div class="ttdef"><b>Definition:</b> <a href="b15f_8cpp_source.html#l00485">b15f.cpp:485</a></div></div>
-<div class="ttc" id="aclassB15F_html_afc55fd590c7fa5c942d100cb60c4b0d3"><div class="ttname"><a href="classB15F.html#afc55fd590c7fa5c942d100cb60c4b0d3">B15F::analogWrite0</a></div><div class="ttdeci">bool analogWrite0(uint16_t port)</div><div class="ttdef"><b>Definition:</b> <a href="b15f_8cpp_source.html#l00249">b15f.cpp:249</a></div></div>
-<div class="ttc" id="aclassB15F_html_a6c4895bdbcd71ff6743becf97985c2dc"><div class="ttname"><a href="classB15F.html#a6c4895bdbcd71ff6743becf97985c2dc">B15F::RECONNECT_TRIES</a></div><div class="ttdeci">constexpr static uint8_t RECONNECT_TRIES</div><div class="ttdoc">Maximum count of reconnect attempts after which the driver stops.</div><div class="ttdef"><b>Definition:</b> <a href="b15f_8h_source.html#l00242">b15f.h:242</a></div></div>
-<div class="ttc" id="aclassB15F_html_a7b8a0e2a9156f7dcb05d097f23666a78"><div class="ttname"><a href="classB15F.html#a7b8a0e2a9156f7dcb05d097f23666a78">B15F::testIntConv</a></div><div class="ttdeci">bool testIntConv(void)</div><div class="ttdef"><b>Definition:</b> <a href="b15f_8cpp_source.html#l00114">b15f.cpp:114</a></div></div>
-<!-- start footer part -->
-<hr class="footer"/><address class="footer"><small>
-Generated on Fri Jun 7 2019 14:50:45 for B15F by &#160;<a href="http://www.doxygen.org/index.html">
-<img class="footer" src="doxygen.png" alt="doxygen"/>
-</a> 1.8.16
-</small></address>
-</body>
-</html>
diff --git a/docs/html/bc_s.png b/docs/html/bc_s.png
deleted file mode 100644
index 224b29a..0000000
Binary files a/docs/html/bc_s.png and /dev/null differ
diff --git a/docs/html/bdwn.png b/docs/html/bdwn.png
deleted file mode 100644
index 940a0b9..0000000
Binary files a/docs/html/bdwn.png and /dev/null differ
diff --git a/docs/html/classB15F-members.html b/docs/html/classB15F-members.html
deleted file mode 100644
index 817c1fb..0000000
--- a/docs/html/classB15F-members.html
+++ /dev/null
@@ -1,113 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml">
-<head>
-<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
-<meta http-equiv="X-UA-Compatible" content="IE=9"/>
-<meta name="generator" content="Doxygen 1.8.16"/>
-<meta name="viewport" content="width=device-width, initial-scale=1"/>
-<title>B15F: 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">B15F
-   </div>
-   <div id="projectbrief">Board 15 Famulus Edition</div>
-  </td>
- </tr>
- </tbody>
-</table>
-</div>
-<!-- end header part -->
-<!-- Generated by Doxygen 1.8.16 -->
-<script type="text/javascript">
-/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
-var searchBox = new SearchBox("searchBox", "search",false,'Search');
-/* @license-end */
-</script>
-<script type="text/javascript" src="menudata.js"></script>
-<script type="text/javascript" src="menu.js"></script>
-<script type="text/javascript">
-/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
-$(function() {
-  initMenu('',true,false,'search.php','Search');
-  $(document).ready(function() { init_search(); });
-});
-/* @license-end */</script>
-<div id="main-nav"></div>
-<!-- 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">B15F Member List</div>  </div>
-</div><!--header-->
-<div class="contents">
-
-<p>This is the complete list of members for <a class="el" href="classB15F.html">B15F</a>, including all inherited members.</p>
-<table class="directory">
-  <tr class="even"><td class="entry"><a class="el" href="classB15F.html#a3f09a418f9e3be5d1d750e4515c96f1e">abort</a>(std::string msg)</td><td class="entry"><a class="el" href="classB15F.html">B15F</a></td><td class="entry"><span class="mlabel">static</span></td></tr>
-  <tr><td class="entry"><a class="el" href="classB15F.html#ac962a6a49bddd0e261a8c7d3aded23f8">abort</a>(std::exception &amp;ex)</td><td class="entry"><a class="el" href="classB15F.html">B15F</a></td><td class="entry"><span class="mlabel">static</span></td></tr>
-  <tr class="even"><td class="entry"><a class="el" href="classB15F.html#ad9bf80ee2485fb5aac9926c6ef0731f1">activateSelfTestMode</a>(void)</td><td class="entry"><a class="el" href="classB15F.html">B15F</a></td><td class="entry"></td></tr>
-  <tr><td class="entry"><a class="el" href="classB15F.html#ae0bd1f69751e2dc3c462db9213fc4627">analogRead</a>(uint8_t channel)</td><td class="entry"><a class="el" href="classB15F.html">B15F</a></td><td class="entry"></td></tr>
-  <tr class="even"><td class="entry"><a class="el" href="classB15F.html#ab82a324426c3063318c6cafb3089ae02">analogSequence</a>(uint8_t channel_a, uint16_t *buffer_a, uint32_t offset_a, uint8_t channel_b, uint16_t *buffer_b, uint32_t offset_b, uint16_t start, int16_t delta, uint16_t count)</td><td class="entry"><a class="el" href="classB15F.html">B15F</a></td><td class="entry"></td></tr>
-  <tr><td class="entry"><a class="el" href="classB15F.html#afc55fd590c7fa5c942d100cb60c4b0d3">analogWrite0</a>(uint16_t port)</td><td class="entry"><a class="el" href="classB15F.html">B15F</a></td><td class="entry"></td></tr>
-  <tr class="even"><td class="entry"><a class="el" href="classB15F.html#a7f1becceac744f5cd2ad529748fd836f">analogWrite1</a>(uint16_t port)</td><td class="entry"><a class="el" href="classB15F.html">B15F</a></td><td class="entry"></td></tr>
-  <tr><td class="entry"><a class="el" href="classB15F.html#a7d548d6861cfc69753161bf9cda14f87">BAUDRATE</a></td><td class="entry"><a class="el" href="classB15F.html">B15F</a></td><td class="entry"><span class="mlabel">static</span></td></tr>
-  <tr class="even"><td class="entry"><a class="el" href="classB15F.html#aaffce20afb9f06bc4b7556c70ce76416">delay_ms</a>(uint16_t ms)</td><td class="entry"><a class="el" href="classB15F.html">B15F</a></td><td class="entry"></td></tr>
-  <tr><td class="entry"><a class="el" href="classB15F.html#adcaac8ae8db3c28eccb499fbd720361f">delay_us</a>(uint16_t us)</td><td class="entry"><a class="el" href="classB15F.html">B15F</a></td><td class="entry"></td></tr>
-  <tr class="even"><td class="entry"><a class="el" href="classB15F.html#ae0df6d423deeb2fd610968bd1c72060e">digitalRead0</a>(void)</td><td class="entry"><a class="el" href="classB15F.html">B15F</a></td><td class="entry"></td></tr>
-  <tr><td class="entry"><a class="el" href="classB15F.html#afc76b612dd4faeee0ac02a66b65af5f2">digitalRead1</a>(void)</td><td class="entry"><a class="el" href="classB15F.html">B15F</a></td><td class="entry"></td></tr>
-  <tr class="even"><td class="entry"><a class="el" href="classB15F.html#a13797edea1c50278988373acbd110064">digitalWrite0</a>(uint8_t)</td><td class="entry"><a class="el" href="classB15F.html">B15F</a></td><td class="entry"></td></tr>
-  <tr><td class="entry"><a class="el" href="classB15F.html#aa225e7fc813849634063e071ef25db1b">digitalWrite1</a>(uint8_t)</td><td class="entry"><a class="el" href="classB15F.html">B15F</a></td><td class="entry"></td></tr>
-  <tr class="even"><td class="entry"><a class="el" href="classB15F.html#ae4740cd473f40a1a4121dfa66b25e1d5">discard</a>(void)</td><td class="entry"><a class="el" href="classB15F.html">B15F</a></td><td class="entry"></td></tr>
-  <tr><td class="entry"><a class="el" href="classB15F.html#a1a7ac52984ed7ecac008a3e4060eee3a">exec</a>(std::string cmd)</td><td class="entry"><a class="el" href="classB15F.html">B15F</a></td><td class="entry"><span class="mlabel">static</span></td></tr>
-  <tr class="even"><td class="entry"><a class="el" href="classB15F.html#a4f01677e73d6d172a2c1cae9427a591b">getBoardInfo</a>(void)</td><td class="entry"><a class="el" href="classB15F.html">B15F</a></td><td class="entry"></td></tr>
-  <tr><td class="entry"><a class="el" href="classB15F.html#a8b4533d232c55ef2aa967e39e2d23380">getInstance</a>(void)</td><td class="entry"><a class="el" href="classB15F.html">B15F</a></td><td class="entry"><span class="mlabel">static</span></td></tr>
-  <tr class="even"><td class="entry"><a class="el" href="classB15F.html#a9bd47da39928af6f51075bdc3fe73ddc">getRegister</a>(volatile uint8_t *adr)</td><td class="entry"><a class="el" href="classB15F.html">B15F</a></td><td class="entry"></td></tr>
-  <tr><td class="entry"><a class="el" href="classB15F.html#a77d1ecf24b406c9204665d3b09c36f1e">MSG_FAIL</a></td><td class="entry"><a class="el" href="classB15F.html">B15F</a></td><td class="entry"><span class="mlabel">static</span></td></tr>
-  <tr class="even"><td class="entry"><a class="el" href="classB15F.html#ab01299858f74a6cec598688562e0ad02">MSG_OK</a></td><td class="entry"><a class="el" href="classB15F.html">B15F</a></td><td class="entry"><span class="mlabel">static</span></td></tr>
-  <tr><td class="entry"><a class="el" href="classB15F.html#a3b0fc1f85954b2d9c145af4a3af5b1ec">PRE</a></td><td class="entry"><a class="el" href="classB15F.html">B15F</a></td><td class="entry"></td></tr>
-  <tr class="even"><td class="entry"><a class="el" href="classB15F.html#ac6f6532bb9550a0632c28b98c157d0a1">pwmSetFrequency</a>(uint32_t freq)</td><td class="entry"><a class="el" href="classB15F.html">B15F</a></td><td class="entry"></td></tr>
-  <tr><td class="entry"><a class="el" href="classB15F.html#af9aad3c0db5d5a8b37219d713e1977ee">pwmSetValue</a>(uint8_t value)</td><td class="entry"><a class="el" href="classB15F.html">B15F</a></td><td class="entry"></td></tr>
-  <tr class="even"><td class="entry"><a class="el" href="classB15F.html#a6f858f21ea81d491b5031b3644a2239a">readDipSwitch</a>(void)</td><td class="entry"><a class="el" href="classB15F.html">B15F</a></td><td class="entry"></td></tr>
-  <tr><td class="entry"><a class="el" href="classB15F.html#a52557b375443c180a044e7d4e80a1ae7">reconnect</a>(void)</td><td class="entry"><a class="el" href="classB15F.html">B15F</a></td><td class="entry"></td></tr>
-  <tr class="even"><td class="entry"><a class="el" href="classB15F.html#a040951746fbfd632e12bd1ad14578816">RECONNECT_TIMEOUT</a></td><td class="entry"><a class="el" href="classB15F.html">B15F</a></td><td class="entry"><span class="mlabel">static</span></td></tr>
-  <tr><td class="entry"><a class="el" href="classB15F.html#a6c4895bdbcd71ff6743becf97985c2dc">RECONNECT_TRIES</a></td><td class="entry"><a class="el" href="classB15F.html">B15F</a></td><td class="entry"><span class="mlabel">static</span></td></tr>
-  <tr class="even"><td class="entry"><a class="el" href="classB15F.html#a55b0cd1ea582bda53d6979442640f8e9">setAbortHandler</a>(errorhandler_t func)</td><td class="entry"><a class="el" href="classB15F.html">B15F</a></td><td class="entry"><span class="mlabel">static</span></td></tr>
-  <tr><td class="entry"><a class="el" href="classB15F.html#ab446ecffab28d4515dfade79a8efc93d">setRegister</a>(volatile uint8_t *adr, uint8_t val)</td><td class="entry"><a class="el" href="classB15F.html">B15F</a></td><td class="entry"></td></tr>
-  <tr class="even"><td class="entry"><a class="el" href="classB15F.html#af01983594f2af98ab2b1e514aa036a5d">testConnection</a>(void)</td><td class="entry"><a class="el" href="classB15F.html">B15F</a></td><td class="entry"></td></tr>
-  <tr><td class="entry"><a class="el" href="classB15F.html#a7b8a0e2a9156f7dcb05d097f23666a78">testIntConv</a>(void)</td><td class="entry"><a class="el" href="classB15F.html">B15F</a></td><td class="entry"></td></tr>
-  <tr class="even"><td class="entry"><a class="el" href="classB15F.html#a158d13bc84aed6430cdede1396384e06">WDT_TIMEOUT</a></td><td class="entry"><a class="el" href="classB15F.html">B15F</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 Fri Jun 7 2019 14:50:45 for B15F by &#160;<a href="http://www.doxygen.org/index.html">
-<img class="footer" src="doxygen.png" alt="doxygen"/>
-</a> 1.8.16
-</small></address>
-</body>
-</html>
diff --git a/docs/html/classB15F.html b/docs/html/classB15F.html
deleted file mode 100644
index 50b30df..0000000
--- a/docs/html/classB15F.html
+++ /dev/null
@@ -1,1038 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml">
-<head>
-<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
-<meta http-equiv="X-UA-Compatible" content="IE=9"/>
-<meta name="generator" content="Doxygen 1.8.16"/>
-<meta name="viewport" content="width=device-width, initial-scale=1"/>
-<title>B15F: B15F 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">B15F
-   </div>
-   <div id="projectbrief">Board 15 Famulus Edition</div>
-  </td>
- </tr>
- </tbody>
-</table>
-</div>
-<!-- end header part -->
-<!-- Generated by Doxygen 1.8.16 -->
-<script type="text/javascript">
-/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
-var searchBox = new SearchBox("searchBox", "search",false,'Search');
-/* @license-end */
-</script>
-<script type="text/javascript" src="menudata.js"></script>
-<script type="text/javascript" src="menu.js"></script>
-<script type="text/javascript">
-/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
-$(function() {
-  initMenu('',true,false,'search.php','Search');
-  $(document).ready(function() { init_search(); });
-});
-/* @license-end */</script>
-<div id="main-nav"></div>
-<!-- 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-methods">Public Member Functions</a> &#124;
-<a href="#pub-static-methods">Static Public Member Functions</a> &#124;
-<a href="#pub-attribs">Public Attributes</a> &#124;
-<a href="#pub-static-attribs">Static Public Attributes</a> &#124;
-<a href="classB15F-members.html">List of all members</a>  </div>
-  <div class="headertitle">
-<div class="title">B15F Class Reference</div>  </div>
-</div><!--header-->
-<div class="contents">
-
-<p><code>#include &lt;<a class="el" href="b15f_8h_source.html">b15f.h</a>&gt;</code></p>
-<table class="memberdecls">
-<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-methods"></a>
-Public Member Functions</h2></td></tr>
-<tr class="memitem:a52557b375443c180a044e7d4e80a1ae7"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classB15F.html#a52557b375443c180a044e7d4e80a1ae7">reconnect</a> (void)</td></tr>
-<tr class="separator:a52557b375443c180a044e7d4e80a1ae7"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ae4740cd473f40a1a4121dfa66b25e1d5"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classB15F.html#ae4740cd473f40a1a4121dfa66b25e1d5">discard</a> (void)</td></tr>
-<tr class="separator:ae4740cd473f40a1a4121dfa66b25e1d5"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:af01983594f2af98ab2b1e514aa036a5d"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classB15F.html#af01983594f2af98ab2b1e514aa036a5d">testConnection</a> (void)</td></tr>
-<tr class="separator:af01983594f2af98ab2b1e514aa036a5d"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a7b8a0e2a9156f7dcb05d097f23666a78"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classB15F.html#a7b8a0e2a9156f7dcb05d097f23666a78">testIntConv</a> (void)</td></tr>
-<tr class="separator:a7b8a0e2a9156f7dcb05d097f23666a78"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a4f01677e73d6d172a2c1cae9427a591b"><td class="memItemLeft" align="right" valign="top">std::vector&lt; std::string &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classB15F.html#a4f01677e73d6d172a2c1cae9427a591b">getBoardInfo</a> (void)</td></tr>
-<tr class="separator:a4f01677e73d6d172a2c1cae9427a591b"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:aaffce20afb9f06bc4b7556c70ce76416"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classB15F.html#aaffce20afb9f06bc4b7556c70ce76416">delay_ms</a> (uint16_t ms)</td></tr>
-<tr class="separator:aaffce20afb9f06bc4b7556c70ce76416"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:adcaac8ae8db3c28eccb499fbd720361f"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classB15F.html#adcaac8ae8db3c28eccb499fbd720361f">delay_us</a> (uint16_t us)</td></tr>
-<tr class="separator:adcaac8ae8db3c28eccb499fbd720361f"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ad9bf80ee2485fb5aac9926c6ef0731f1"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classB15F.html#ad9bf80ee2485fb5aac9926c6ef0731f1">activateSelfTestMode</a> (void)</td></tr>
-<tr class="separator:ad9bf80ee2485fb5aac9926c6ef0731f1"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a13797edea1c50278988373acbd110064"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classB15F.html#a13797edea1c50278988373acbd110064">digitalWrite0</a> (uint8_t)</td></tr>
-<tr class="separator:a13797edea1c50278988373acbd110064"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:aa225e7fc813849634063e071ef25db1b"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classB15F.html#aa225e7fc813849634063e071ef25db1b">digitalWrite1</a> (uint8_t)</td></tr>
-<tr class="separator:aa225e7fc813849634063e071ef25db1b"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ae0df6d423deeb2fd610968bd1c72060e"><td class="memItemLeft" align="right" valign="top">uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classB15F.html#ae0df6d423deeb2fd610968bd1c72060e">digitalRead0</a> (void)</td></tr>
-<tr class="separator:ae0df6d423deeb2fd610968bd1c72060e"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:afc76b612dd4faeee0ac02a66b65af5f2"><td class="memItemLeft" align="right" valign="top">uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classB15F.html#afc76b612dd4faeee0ac02a66b65af5f2">digitalRead1</a> (void)</td></tr>
-<tr class="separator:afc76b612dd4faeee0ac02a66b65af5f2"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a6f858f21ea81d491b5031b3644a2239a"><td class="memItemLeft" align="right" valign="top">uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classB15F.html#a6f858f21ea81d491b5031b3644a2239a">readDipSwitch</a> (void)</td></tr>
-<tr class="separator:a6f858f21ea81d491b5031b3644a2239a"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:afc55fd590c7fa5c942d100cb60c4b0d3"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classB15F.html#afc55fd590c7fa5c942d100cb60c4b0d3">analogWrite0</a> (uint16_t port)</td></tr>
-<tr class="separator:afc55fd590c7fa5c942d100cb60c4b0d3"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a7f1becceac744f5cd2ad529748fd836f"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classB15F.html#a7f1becceac744f5cd2ad529748fd836f">analogWrite1</a> (uint16_t port)</td></tr>
-<tr class="separator:a7f1becceac744f5cd2ad529748fd836f"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ae0bd1f69751e2dc3c462db9213fc4627"><td class="memItemLeft" align="right" valign="top">uint16_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classB15F.html#ae0bd1f69751e2dc3c462db9213fc4627">analogRead</a> (uint8_t channel)</td></tr>
-<tr class="separator:ae0bd1f69751e2dc3c462db9213fc4627"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ab82a324426c3063318c6cafb3089ae02"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classB15F.html#ab82a324426c3063318c6cafb3089ae02">analogSequence</a> (uint8_t channel_a, uint16_t *buffer_a, uint32_t offset_a, uint8_t channel_b, uint16_t *buffer_b, uint32_t offset_b, uint16_t start, int16_t delta, uint16_t count)</td></tr>
-<tr class="separator:ab82a324426c3063318c6cafb3089ae02"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ac6f6532bb9550a0632c28b98c157d0a1"><td class="memItemLeft" align="right" valign="top">uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classB15F.html#ac6f6532bb9550a0632c28b98c157d0a1">pwmSetFrequency</a> (uint32_t freq)</td></tr>
-<tr class="separator:ac6f6532bb9550a0632c28b98c157d0a1"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:af9aad3c0db5d5a8b37219d713e1977ee"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classB15F.html#af9aad3c0db5d5a8b37219d713e1977ee">pwmSetValue</a> (uint8_t value)</td></tr>
-<tr class="separator:af9aad3c0db5d5a8b37219d713e1977ee"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ab446ecffab28d4515dfade79a8efc93d"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classB15F.html#ab446ecffab28d4515dfade79a8efc93d">setRegister</a> (volatile uint8_t *adr, uint8_t val)</td></tr>
-<tr class="separator:ab446ecffab28d4515dfade79a8efc93d"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a9bd47da39928af6f51075bdc3fe73ddc"><td class="memItemLeft" align="right" valign="top">uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classB15F.html#a9bd47da39928af6f51075bdc3fe73ddc">getRegister</a> (volatile uint8_t *adr)</td></tr>
-<tr class="separator:a9bd47da39928af6f51075bdc3fe73ddc"><td class="memSeparator" colspan="2">&#160;</td></tr>
-</table><table class="memberdecls">
-<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-static-methods"></a>
-Static Public Member Functions</h2></td></tr>
-<tr class="memitem:a8b4533d232c55ef2aa967e39e2d23380"><td class="memItemLeft" align="right" valign="top">static <a class="el" href="classB15F.html">B15F</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classB15F.html#a8b4533d232c55ef2aa967e39e2d23380">getInstance</a> (void)</td></tr>
-<tr class="separator:a8b4533d232c55ef2aa967e39e2d23380"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a1a7ac52984ed7ecac008a3e4060eee3a"><td class="memItemLeft" align="right" valign="top">static std::string&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classB15F.html#a1a7ac52984ed7ecac008a3e4060eee3a">exec</a> (std::string cmd)</td></tr>
-<tr class="separator:a1a7ac52984ed7ecac008a3e4060eee3a"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a3f09a418f9e3be5d1d750e4515c96f1e"><td class="memItemLeft" align="right" valign="top">static void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classB15F.html#a3f09a418f9e3be5d1d750e4515c96f1e">abort</a> (std::string msg)</td></tr>
-<tr class="separator:a3f09a418f9e3be5d1d750e4515c96f1e"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ac962a6a49bddd0e261a8c7d3aded23f8"><td class="memItemLeft" align="right" valign="top">static void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classB15F.html#ac962a6a49bddd0e261a8c7d3aded23f8">abort</a> (std::exception &amp;ex)</td></tr>
-<tr class="separator:ac962a6a49bddd0e261a8c7d3aded23f8"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a55b0cd1ea582bda53d6979442640f8e9"><td class="memItemLeft" align="right" valign="top">static void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classB15F.html#a55b0cd1ea582bda53d6979442640f8e9">setAbortHandler</a> (errorhandler_t func)</td></tr>
-<tr class="separator:a55b0cd1ea582bda53d6979442640f8e9"><td class="memSeparator" colspan="2">&#160;</td></tr>
-</table><table class="memberdecls">
-<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-attribs"></a>
-Public Attributes</h2></td></tr>
-<tr class="memitem:a3b0fc1f85954b2d9c145af4a3af5b1ec"><td class="memItemLeft" align="right" valign="top"><a id="a3b0fc1f85954b2d9c145af4a3af5b1ec"></a>
-const std::string&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classB15F.html#a3b0fc1f85954b2d9c145af4a3af5b1ec">PRE</a> = &quot;[B15F] &quot;</td></tr>
-<tr class="memdesc:a3b0fc1f85954b2d9c145af4a3af5b1ec"><td class="mdescLeft">&#160;</td><td class="mdescRight"><a class="el" href="classB15F.html">B15F</a> stdout prefix. <br /></td></tr>
-<tr class="separator:a3b0fc1f85954b2d9c145af4a3af5b1ec"><td class="memSeparator" colspan="2">&#160;</td></tr>
-</table><table class="memberdecls">
-<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-static-attribs"></a>
-Static Public Attributes</h2></td></tr>
-<tr class="memitem:ab01299858f74a6cec598688562e0ad02"><td class="memItemLeft" align="right" valign="top"><a id="ab01299858f74a6cec598688562e0ad02"></a>
-constexpr static uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classB15F.html#ab01299858f74a6cec598688562e0ad02">MSG_OK</a> = 0xFF</td></tr>
-<tr class="memdesc:ab01299858f74a6cec598688562e0ad02"><td class="mdescLeft">&#160;</td><td class="mdescRight">Value to acknowledge a received command. <br /></td></tr>
-<tr class="separator:ab01299858f74a6cec598688562e0ad02"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a77d1ecf24b406c9204665d3b09c36f1e"><td class="memItemLeft" align="right" valign="top"><a id="a77d1ecf24b406c9204665d3b09c36f1e"></a>
-constexpr static uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classB15F.html#a77d1ecf24b406c9204665d3b09c36f1e">MSG_FAIL</a> = 0xFE</td></tr>
-<tr class="memdesc:a77d1ecf24b406c9204665d3b09c36f1e"><td class="mdescLeft">&#160;</td><td class="mdescRight">Value to reject a received command. <br /></td></tr>
-<tr class="separator:a77d1ecf24b406c9204665d3b09c36f1e"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a040951746fbfd632e12bd1ad14578816"><td class="memItemLeft" align="right" valign="top"><a id="a040951746fbfd632e12bd1ad14578816"></a>
-constexpr static uint16_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classB15F.html#a040951746fbfd632e12bd1ad14578816">RECONNECT_TIMEOUT</a> = 64</td></tr>
-<tr class="memdesc:a040951746fbfd632e12bd1ad14578816"><td class="mdescLeft">&#160;</td><td class="mdescRight">Time in ms after which a reconnect attempt aborts. <br /></td></tr>
-<tr class="separator:a040951746fbfd632e12bd1ad14578816"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a158d13bc84aed6430cdede1396384e06"><td class="memItemLeft" align="right" valign="top"><a id="a158d13bc84aed6430cdede1396384e06"></a>
-constexpr static uint16_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classB15F.html#a158d13bc84aed6430cdede1396384e06">WDT_TIMEOUT</a> = 15</td></tr>
-<tr class="memdesc:a158d13bc84aed6430cdede1396384e06"><td class="mdescLeft">&#160;</td><td class="mdescRight">Time in ms after which the watch dog timer resets the MCU. <br /></td></tr>
-<tr class="separator:a158d13bc84aed6430cdede1396384e06"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a6c4895bdbcd71ff6743becf97985c2dc"><td class="memItemLeft" align="right" valign="top"><a id="a6c4895bdbcd71ff6743becf97985c2dc"></a>
-constexpr static uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classB15F.html#a6c4895bdbcd71ff6743becf97985c2dc">RECONNECT_TRIES</a> = 3</td></tr>
-<tr class="memdesc:a6c4895bdbcd71ff6743becf97985c2dc"><td class="mdescLeft">&#160;</td><td class="mdescRight">Maximum count of reconnect attempts after which the driver stops. <br /></td></tr>
-<tr class="separator:a6c4895bdbcd71ff6743becf97985c2dc"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a7d548d6861cfc69753161bf9cda14f87"><td class="memItemLeft" align="right" valign="top"><a id="a7d548d6861cfc69753161bf9cda14f87"></a>
-constexpr static uint32_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classB15F.html#a7d548d6861cfc69753161bf9cda14f87">BAUDRATE</a> = 57600</td></tr>
-<tr class="memdesc:a7d548d6861cfc69753161bf9cda14f87"><td class="mdescLeft">&#160;</td><td class="mdescRight"><a class="el" href="classUSART.html">USART</a> baudrate for communication with the MCU. <br /></td></tr>
-<tr class="separator:a7d548d6861cfc69753161bf9cda14f87"><td class="memSeparator" colspan="2">&#160;</td></tr>
-</table>
-<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
-<div class="textblock"><p>main driver class </p>
-
-<p class="definition">Definition at line <a class="el" href="b15f_8h_source.html#l00031">31</a> of file <a class="el" href="b15f_8h_source.html">b15f.h</a>.</p>
-</div><h2 class="groupheader">Member Function Documentation</h2>
-<a id="ac962a6a49bddd0e261a8c7d3aded23f8"></a>
-<h2 class="memtitle"><span class="permalink"><a href="#ac962a6a49bddd0e261a8c7d3aded23f8">&#9670;&nbsp;</a></span>abort() <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">void B15F::abort </td>
-          <td>(</td>
-          <td class="paramtype">std::exception &amp;&#160;</td>
-          <td class="paramname"><em>ex</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>Multithread sicherer Abbruch des B15F-Treibers </p><dl class="params"><dt>Parameters</dt><dd>
-  <table class="params">
-    <tr><td class="paramname">ex</td><td>Exception als Abbruchursache </td></tr>
-  </table>
-  </dd>
-</dl>
-
-<p class="definition">Definition at line <a class="el" href="b15f_8cpp_source.html#l00473">473</a> of file <a class="el" href="b15f_8cpp_source.html">b15f.cpp</a>.</p>
-
-</div>
-</div>
-<a id="a3f09a418f9e3be5d1d750e4515c96f1e"></a>
-<h2 class="memtitle"><span class="permalink"><a href="#a3f09a418f9e3be5d1d750e4515c96f1e">&#9670;&nbsp;</a></span>abort() <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">void B15F::abort </td>
-          <td>(</td>
-          <td class="paramtype">std::string&#160;</td>
-          <td class="paramname"><em>msg</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>Multithread sicherer Abbruch des B15F-Treibers </p><dl class="params"><dt>Parameters</dt><dd>
-  <table class="params">
-    <tr><td class="paramname">msg</td><td>Beschreibung der Abbruchursache </td></tr>
-  </table>
-  </dd>
-</dl>
-
-<p class="definition">Definition at line <a class="el" href="b15f_8cpp_source.html#l00467">467</a> of file <a class="el" href="b15f_8cpp_source.html">b15f.cpp</a>.</p>
-
-</div>
-</div>
-<a id="ad9bf80ee2485fb5aac9926c6ef0731f1"></a>
-<h2 class="memtitle"><span class="permalink"><a href="#ad9bf80ee2485fb5aac9926c6ef0731f1">&#9670;&nbsp;</a></span>activateSelfTestMode()</h2>
-
-<div class="memitem">
-<div class="memproto">
-      <table class="memname">
-        <tr>
-          <td class="memname">bool B15F::activateSelfTestMode </td>
-          <td>(</td>
-          <td class="paramtype">void&#160;</td>
-          <td class="paramname"></td><td>)</td>
-          <td></td>
-        </tr>
-      </table>
-</div><div class="memdoc">
-<p>Versetzt das Board in den Selbsttest-Modus WICHTIG: Es darf dabei nichts an den Klemmen angeschlossen sein! </p><dl class="exception"><dt>Exceptions</dt><dd>
-  <table class="exception">
-    <tr><td class="paramname"><a class="el" href="classDriverException.html">DriverException</a></td><td></td></tr>
-  </table>
-  </dd>
-</dl>
-
-<p class="definition">Definition at line <a class="el" href="b15f_8cpp_source.html#l00166">166</a> of file <a class="el" href="b15f_8cpp_source.html">b15f.cpp</a>.</p>
-
-</div>
-</div>
-<a id="ae0bd1f69751e2dc3c462db9213fc4627"></a>
-<h2 class="memtitle"><span class="permalink"><a href="#ae0bd1f69751e2dc3c462db9213fc4627">&#9670;&nbsp;</a></span>analogRead()</h2>
-
-<div class="memitem">
-<div class="memproto">
-      <table class="memname">
-        <tr>
-          <td class="memname">uint16_t B15F::analogRead </td>
-          <td>(</td>
-          <td class="paramtype">uint8_t&#160;</td>
-          <td class="paramname"><em>channel</em></td><td>)</td>
-          <td></td>
-        </tr>
-      </table>
-</div><div class="memdoc">
-<p>Liest den Wert des Analog-Digital-Converters (ADC / ADU) </p><dl class="params"><dt>Parameters</dt><dd>
-  <table class="params">
-    <tr><td class="paramname">channel</td><td>Kanalwahl von 0 - 7 </td></tr>
-  </table>
-  </dd>
-</dl>
-<dl class="exception"><dt>Exceptions</dt><dd>
-  <table class="exception">
-    <tr><td class="paramname"><a class="el" href="classDriverException.html">DriverException</a></td><td></td></tr>
-  </table>
-  </dd>
-</dl>
-
-<p class="definition">Definition at line <a class="el" href="b15f_8cpp_source.html#l00279">279</a> of file <a class="el" href="b15f_8cpp_source.html">b15f.cpp</a>.</p>
-
-</div>
-</div>
-<a id="ab82a324426c3063318c6cafb3089ae02"></a>
-<h2 class="memtitle"><span class="permalink"><a href="#ab82a324426c3063318c6cafb3089ae02">&#9670;&nbsp;</a></span>analogSequence()</h2>
-
-<div class="memitem">
-<div class="memproto">
-      <table class="memname">
-        <tr>
-          <td class="memname">void B15F::analogSequence </td>
-          <td>(</td>
-          <td class="paramtype">uint8_t&#160;</td>
-          <td class="paramname"><em>channel_a</em>, </td>
-        </tr>
-        <tr>
-          <td class="paramkey"></td>
-          <td></td>
-          <td class="paramtype">uint16_t *&#160;</td>
-          <td class="paramname"><em>buffer_a</em>, </td>
-        </tr>
-        <tr>
-          <td class="paramkey"></td>
-          <td></td>
-          <td class="paramtype">uint32_t&#160;</td>
-          <td class="paramname"><em>offset_a</em>, </td>
-        </tr>
-        <tr>
-          <td class="paramkey"></td>
-          <td></td>
-          <td class="paramtype">uint8_t&#160;</td>
-          <td class="paramname"><em>channel_b</em>, </td>
-        </tr>
-        <tr>
-          <td class="paramkey"></td>
-          <td></td>
-          <td class="paramtype">uint16_t *&#160;</td>
-          <td class="paramname"><em>buffer_b</em>, </td>
-        </tr>
-        <tr>
-          <td class="paramkey"></td>
-          <td></td>
-          <td class="paramtype">uint32_t&#160;</td>
-          <td class="paramname"><em>offset_b</em>, </td>
-        </tr>
-        <tr>
-          <td class="paramkey"></td>
-          <td></td>
-          <td class="paramtype">uint16_t&#160;</td>
-          <td class="paramname"><em>start</em>, </td>
-        </tr>
-        <tr>
-          <td class="paramkey"></td>
-          <td></td>
-          <td class="paramtype">int16_t&#160;</td>
-          <td class="paramname"><em>delta</em>, </td>
-        </tr>
-        <tr>
-          <td class="paramkey"></td>
-          <td></td>
-          <td class="paramtype">uint16_t&#160;</td>
-          <td class="paramname"><em>count</em>&#160;</td>
-        </tr>
-        <tr>
-          <td></td>
-          <td>)</td>
-          <td></td><td></td>
-        </tr>
-      </table>
-</div><div class="memdoc">
-<p>DAC 0 wird auf den Startwert gesetzt und dann schrittweise um Delta inkrementiert. Für jeden eingestelleten DAC-Wert werden zwei ADCs (channel_a und channel_b) angesprochen und die Werte übermittelt. Die Werte werden in buffer_a für Kanal a und buffer_b für Kanal b gespeichert. </p><dl class="params"><dt>Parameters</dt><dd>
-  <table class="params">
-    <tr><td class="paramname">channel_a</td><td>Auswahl des ADC a, von 0 - 7 </td></tr>
-    <tr><td class="paramname">buffer_a</td><td>Speichertort für Werte des Kanals a </td></tr>
-    <tr><td class="paramname">offset_a</td><td>Anzahl an Werten des Kanals a, die im Speicher übersprungen werden sollen </td></tr>
-    <tr><td class="paramname">channel_b</td><td>Auswahl des ADC b, von 0 - 7 </td></tr>
-    <tr><td class="paramname">buffer_b</td><td>Speichertort für Werte des Kanals b </td></tr>
-    <tr><td class="paramname">offset_b</td><td>Anzahl an Werten des Kanals b, die im Speicher übersprungen werden </td></tr>
-    <tr><td class="paramname">start</td><td>Startwert des DACs </td></tr>
-    <tr><td class="paramname">delta</td><td>Schrittweite, mit welcher der DAC inkrementiert wird </td></tr>
-    <tr><td class="paramname">count</td><td>Anzahl an Inkrementierungen </td></tr>
-  </table>
-  </dd>
-</dl>
-<dl class="exception"><dt>Exceptions</dt><dd>
-  <table class="exception">
-    <tr><td class="paramname"><a class="el" href="classDriverException.html">DriverException</a></td><td></td></tr>
-  </table>
-  </dd>
-</dl>
-
-<p class="definition">Definition at line <a class="el" href="b15f_8cpp_source.html#l00302">302</a> of file <a class="el" href="b15f_8cpp_source.html">b15f.cpp</a>.</p>
-
-</div>
-</div>
-<a id="afc55fd590c7fa5c942d100cb60c4b0d3"></a>
-<h2 class="memtitle"><span class="permalink"><a href="#afc55fd590c7fa5c942d100cb60c4b0d3">&#9670;&nbsp;</a></span>analogWrite0()</h2>
-
-<div class="memitem">
-<div class="memproto">
-      <table class="memname">
-        <tr>
-          <td class="memname">bool B15F::analogWrite0 </td>
-          <td>(</td>
-          <td class="paramtype">uint16_t&#160;</td>
-          <td class="paramname"><em>port</em></td><td>)</td>
-          <td></td>
-        </tr>
-      </table>
-</div><div class="memdoc">
-<p>Setzt den Wert des Digital-Analog-Converters (DAC / DAU) 0 </p><dl class="params"><dt>Parameters</dt><dd>
-  <table class="params">
-    <tr><td class="paramname">port</td><td>10-Bit Wert </td></tr>
-  </table>
-  </dd>
-</dl>
-<dl class="exception"><dt>Exceptions</dt><dd>
-  <table class="exception">
-    <tr><td class="paramname"><a class="el" href="classDriverException.html">DriverException</a></td><td></td></tr>
-  </table>
-  </dd>
-</dl>
-
-<p class="definition">Definition at line <a class="el" href="b15f_8cpp_source.html#l00249">249</a> of file <a class="el" href="b15f_8cpp_source.html">b15f.cpp</a>.</p>
-
-</div>
-</div>
-<a id="a7f1becceac744f5cd2ad529748fd836f"></a>
-<h2 class="memtitle"><span class="permalink"><a href="#a7f1becceac744f5cd2ad529748fd836f">&#9670;&nbsp;</a></span>analogWrite1()</h2>
-
-<div class="memitem">
-<div class="memproto">
-      <table class="memname">
-        <tr>
-          <td class="memname">bool B15F::analogWrite1 </td>
-          <td>(</td>
-          <td class="paramtype">uint16_t&#160;</td>
-          <td class="paramname"><em>port</em></td><td>)</td>
-          <td></td>
-        </tr>
-      </table>
-</div><div class="memdoc">
-<p>Setzt den Wert des Digital-Analog-Converters (DAC / DAU) 1 </p><dl class="params"><dt>Parameters</dt><dd>
-  <table class="params">
-    <tr><td class="paramname">port</td><td>10-Bit Wert </td></tr>
-  </table>
-  </dd>
-</dl>
-<dl class="exception"><dt>Exceptions</dt><dd>
-  <table class="exception">
-    <tr><td class="paramname"><a class="el" href="classDriverException.html">DriverException</a></td><td></td></tr>
-  </table>
-  </dd>
-</dl>
-
-<p class="definition">Definition at line <a class="el" href="b15f_8cpp_source.html#l00264">264</a> of file <a class="el" href="b15f_8cpp_source.html">b15f.cpp</a>.</p>
-
-</div>
-</div>
-<a id="aaffce20afb9f06bc4b7556c70ce76416"></a>
-<h2 class="memtitle"><span class="permalink"><a href="#aaffce20afb9f06bc4b7556c70ce76416">&#9670;&nbsp;</a></span>delay_ms()</h2>
-
-<div class="memitem">
-<div class="memproto">
-      <table class="memname">
-        <tr>
-          <td class="memname">void B15F::delay_ms </td>
-          <td>(</td>
-          <td class="paramtype">uint16_t&#160;</td>
-          <td class="paramname"><em>ms</em></td><td>)</td>
-          <td></td>
-        </tr>
-      </table>
-</div><div class="memdoc">
-<p>Lässt den Treiber für eine angegebene Zeit pausieren </p><dl class="params"><dt>Parameters</dt><dd>
-  <table class="params">
-    <tr><td class="paramname">ms</td><td>Verzögerung in Millisekunden </td></tr>
-  </table>
-  </dd>
-</dl>
-
-<p class="definition">Definition at line <a class="el" href="b15f_8cpp_source.html#l00432">432</a> of file <a class="el" href="b15f_8cpp_source.html">b15f.cpp</a>.</p>
-
-</div>
-</div>
-<a id="adcaac8ae8db3c28eccb499fbd720361f"></a>
-<h2 class="memtitle"><span class="permalink"><a href="#adcaac8ae8db3c28eccb499fbd720361f">&#9670;&nbsp;</a></span>delay_us()</h2>
-
-<div class="memitem">
-<div class="memproto">
-      <table class="memname">
-        <tr>
-          <td class="memname">void B15F::delay_us </td>
-          <td>(</td>
-          <td class="paramtype">uint16_t&#160;</td>
-          <td class="paramname"><em>us</em></td><td>)</td>
-          <td></td>
-        </tr>
-      </table>
-</div><div class="memdoc">
-<p>Lässt den Treiber für eine angegebene Zeit pausieren </p><dl class="params"><dt>Parameters</dt><dd>
-  <table class="params">
-    <tr><td class="paramname">us</td><td>Verzögerung in Microsekunden </td></tr>
-  </table>
-  </dd>
-</dl>
-
-<p class="definition">Definition at line <a class="el" href="b15f_8cpp_source.html#l00437">437</a> of file <a class="el" href="b15f_8cpp_source.html">b15f.cpp</a>.</p>
-
-</div>
-</div>
-<a id="ae0df6d423deeb2fd610968bd1c72060e"></a>
-<h2 class="memtitle"><span class="permalink"><a href="#ae0df6d423deeb2fd610968bd1c72060e">&#9670;&nbsp;</a></span>digitalRead0()</h2>
-
-<div class="memitem">
-<div class="memproto">
-      <table class="memname">
-        <tr>
-          <td class="memname">uint8_t B15F::digitalRead0 </td>
-          <td>(</td>
-          <td class="paramtype">void&#160;</td>
-          <td class="paramname"></td><td>)</td>
-          <td></td>
-        </tr>
-      </table>
-</div><div class="memdoc">
-<p>Liest den Wert des digitalen Eingabeports 0 </p><dl class="section return"><dt>Returns</dt><dd>Wert für gesamten Port </dd></dl>
-<dl class="exception"><dt>Exceptions</dt><dd>
-  <table class="exception">
-    <tr><td class="paramname"><a class="el" href="classDriverException.html">DriverException</a></td><td></td></tr>
-  </table>
-  </dd>
-</dl>
-
-<p class="definition">Definition at line <a class="el" href="b15f_8cpp_source.html#l00207">207</a> of file <a class="el" href="b15f_8cpp_source.html">b15f.cpp</a>.</p>
-
-</div>
-</div>
-<a id="afc76b612dd4faeee0ac02a66b65af5f2"></a>
-<h2 class="memtitle"><span class="permalink"><a href="#afc76b612dd4faeee0ac02a66b65af5f2">&#9670;&nbsp;</a></span>digitalRead1()</h2>
-
-<div class="memitem">
-<div class="memproto">
-      <table class="memname">
-        <tr>
-          <td class="memname">uint8_t B15F::digitalRead1 </td>
-          <td>(</td>
-          <td class="paramtype">void&#160;</td>
-          <td class="paramname"></td><td>)</td>
-          <td></td>
-        </tr>
-      </table>
-</div><div class="memdoc">
-<p>Liest den Wert des digitalen Eingabeports 1 </p><dl class="section return"><dt>Returns</dt><dd>Wert für gesamten Port </dd></dl>
-<dl class="exception"><dt>Exceptions</dt><dd>
-  <table class="exception">
-    <tr><td class="paramname"><a class="el" href="classDriverException.html">DriverException</a></td><td></td></tr>
-  </table>
-  </dd>
-</dl>
-
-<p class="definition">Definition at line <a class="el" href="b15f_8cpp_source.html#l00221">221</a> of file <a class="el" href="b15f_8cpp_source.html">b15f.cpp</a>.</p>
-
-</div>
-</div>
-<a id="a13797edea1c50278988373acbd110064"></a>
-<h2 class="memtitle"><span class="permalink"><a href="#a13797edea1c50278988373acbd110064">&#9670;&nbsp;</a></span>digitalWrite0()</h2>
-
-<div class="memitem">
-<div class="memproto">
-      <table class="memname">
-        <tr>
-          <td class="memname">bool B15F::digitalWrite0 </td>
-          <td>(</td>
-          <td class="paramtype">uint8_t&#160;</td>
-          <td class="paramname"><em>port</em></td><td>)</td>
-          <td></td>
-        </tr>
-      </table>
-</div><div class="memdoc">
-<p>Setzt den Wert des digitalen Ausgabeports 0 </p><dl class="params"><dt>Parameters</dt><dd>
-  <table class="params">
-    <tr><td class="paramname">port</td><td>Wert für gesamten Port </td></tr>
-  </table>
-  </dd>
-</dl>
-<dl class="exception"><dt>Exceptions</dt><dd>
-  <table class="exception">
-    <tr><td class="paramname"><a class="el" href="classDriverException.html">DriverException</a></td><td></td></tr>
-  </table>
-  </dd>
-</dl>
-
-<p class="definition">Definition at line <a class="el" href="b15f_8cpp_source.html#l00179">179</a> of file <a class="el" href="b15f_8cpp_source.html">b15f.cpp</a>.</p>
-
-</div>
-</div>
-<a id="aa225e7fc813849634063e071ef25db1b"></a>
-<h2 class="memtitle"><span class="permalink"><a href="#aa225e7fc813849634063e071ef25db1b">&#9670;&nbsp;</a></span>digitalWrite1()</h2>
-
-<div class="memitem">
-<div class="memproto">
-      <table class="memname">
-        <tr>
-          <td class="memname">bool B15F::digitalWrite1 </td>
-          <td>(</td>
-          <td class="paramtype">uint8_t&#160;</td>
-          <td class="paramname"><em>port</em></td><td>)</td>
-          <td></td>
-        </tr>
-      </table>
-</div><div class="memdoc">
-<p>Setzt den Wert des digitalen Ausgabeports 1 </p><dl class="params"><dt>Parameters</dt><dd>
-  <table class="params">
-    <tr><td class="paramname">port</td><td>Wert für gesamten Port </td></tr>
-  </table>
-  </dd>
-</dl>
-<dl class="exception"><dt>Exceptions</dt><dd>
-  <table class="exception">
-    <tr><td class="paramname"><a class="el" href="classDriverException.html">DriverException</a></td><td></td></tr>
-  </table>
-  </dd>
-</dl>
-
-<p class="definition">Definition at line <a class="el" href="b15f_8cpp_source.html#l00193">193</a> of file <a class="el" href="b15f_8cpp_source.html">b15f.cpp</a>.</p>
-
-</div>
-</div>
-<a id="ae4740cd473f40a1a4121dfa66b25e1d5"></a>
-<h2 class="memtitle"><span class="permalink"><a href="#ae4740cd473f40a1a4121dfa66b25e1d5">&#9670;&nbsp;</a></span>discard()</h2>
-
-<div class="memitem">
-<div class="memproto">
-      <table class="memname">
-        <tr>
-          <td class="memname">void B15F::discard </td>
-          <td>(</td>
-          <td class="paramtype">void&#160;</td>
-          <td class="paramname"></td><td>)</td>
-          <td></td>
-        </tr>
-      </table>
-</div><div class="memdoc">
-<p>Verwirft Daten im <a class="el" href="classUSART.html">USART</a> Puffer auf dieser Maschine und B15 </p><dl class="exception"><dt>Exceptions</dt><dd>
-  <table class="exception">
-    <tr><td class="paramname"><a class="el" href="classDriverException.html">DriverException</a></td><td></td></tr>
-  </table>
-  </dd>
-</dl>
-
-<p class="definition">Definition at line <a class="el" href="b15f_8cpp_source.html#l00072">72</a> of file <a class="el" href="b15f_8cpp_source.html">b15f.cpp</a>.</p>
-
-</div>
-</div>
-<a id="a1a7ac52984ed7ecac008a3e4060eee3a"></a>
-<h2 class="memtitle"><span class="permalink"><a href="#a1a7ac52984ed7ecac008a3e4060eee3a">&#9670;&nbsp;</a></span>exec()</h2>
-
-<div class="memitem">
-<div class="memproto">
-<table class="mlabels">
-  <tr>
-  <td class="mlabels-left">
-      <table class="memname">
-        <tr>
-          <td class="memname">std::string B15F::exec </td>
-          <td>(</td>
-          <td class="paramtype">std::string&#160;</td>
-          <td class="paramname"><em>cmd</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>Führt ein Befehl auf dieser Maschine aus und liefert stdout zurück </p><dl class="params"><dt>Parameters</dt><dd>
-  <table class="params">
-    <tr><td class="paramname">cmd</td><td>Der Befehl </td></tr>
-  </table>
-  </dd>
-</dl>
-
-<p class="definition">Definition at line <a class="el" href="b15f_8cpp_source.html#l00451">451</a> of file <a class="el" href="b15f_8cpp_source.html">b15f.cpp</a>.</p>
-
-</div>
-</div>
-<a id="a4f01677e73d6d172a2c1cae9427a591b"></a>
-<h2 class="memtitle"><span class="permalink"><a href="#a4f01677e73d6d172a2c1cae9427a591b">&#9670;&nbsp;</a></span>getBoardInfo()</h2>
-
-<div class="memitem">
-<div class="memproto">
-      <table class="memname">
-        <tr>
-          <td class="memname">std::vector&lt; std::string &gt; B15F::getBoardInfo </td>
-          <td>(</td>
-          <td class="paramtype">void&#160;</td>
-          <td class="paramname"></td><td>)</td>
-          <td></td>
-        </tr>
-      </table>
-</div><div class="memdoc">
-<p>Liefert Informationen zur aktuellen Firmware des B15 </p><dl class="exception"><dt>Exceptions</dt><dd>
-  <table class="exception">
-    <tr><td class="paramname"><a class="el" href="classDriverException.html">DriverException</a></td><td></td></tr>
-  </table>
-  </dd>
-</dl>
-
-<p class="definition">Definition at line <a class="el" href="b15f_8cpp_source.html#l00134">134</a> of file <a class="el" href="b15f_8cpp_source.html">b15f.cpp</a>.</p>
-
-</div>
-</div>
-<a id="a8b4533d232c55ef2aa967e39e2d23380"></a>
-<h2 class="memtitle"><span class="permalink"><a href="#a8b4533d232c55ef2aa967e39e2d23380">&#9670;&nbsp;</a></span>getInstance()</h2>
-
-<div class="memitem">
-<div class="memproto">
-<table class="mlabels">
-  <tr>
-  <td class="mlabels-left">
-      <table class="memname">
-        <tr>
-          <td class="memname"><a class="el" href="classB15F.html">B15F</a> &amp; B15F::getInstance </td>
-          <td>(</td>
-          <td class="paramtype">void&#160;</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>Liefert eine Referenz zur aktuellen Treiber-Instanz </p><dl class="exception"><dt>Exceptions</dt><dd>
-  <table class="exception">
-    <tr><td class="paramname"><a class="el" href="classDriverException.html">DriverException</a></td><td></td></tr>
-  </table>
-  </dd>
-</dl>
-
-<p class="definition">Definition at line <a class="el" href="b15f_8cpp_source.html#l00442">442</a> of file <a class="el" href="b15f_8cpp_source.html">b15f.cpp</a>.</p>
-
-</div>
-</div>
-<a id="a9bd47da39928af6f51075bdc3fe73ddc"></a>
-<h2 class="memtitle"><span class="permalink"><a href="#a9bd47da39928af6f51075bdc3fe73ddc">&#9670;&nbsp;</a></span>getRegister()</h2>
-
-<div class="memitem">
-<div class="memproto">
-      <table class="memname">
-        <tr>
-          <td class="memname">uint8_t B15F::getRegister </td>
-          <td>(</td>
-          <td class="paramtype">volatile uint8_t *&#160;</td>
-          <td class="paramname"><em>adr</em></td><td>)</td>
-          <td></td>
-        </tr>
-      </table>
-</div><div class="memdoc">
-<p>Liefert den Wert eines MCU Registers. </p><dl class="params"><dt>Parameters</dt><dd>
-  <table class="params">
-    <tr><td class="paramname">adr</td><td>Speicheradresse des Registers </td></tr>
-  </table>
-  </dd>
-</dl>
-<dl class="exception"><dt>Exceptions</dt><dd>
-  <table class="exception">
-    <tr><td class="paramname"><a class="el" href="classDriverException.html">DriverException</a></td><td></td></tr>
-  </table>
-  </dd>
-</dl>
-
-<p class="definition">Definition at line <a class="el" href="b15f_8cpp_source.html#l00414">414</a> of file <a class="el" href="b15f_8cpp_source.html">b15f.cpp</a>.</p>
-
-</div>
-</div>
-<a id="ac6f6532bb9550a0632c28b98c157d0a1"></a>
-<h2 class="memtitle"><span class="permalink"><a href="#ac6f6532bb9550a0632c28b98c157d0a1">&#9670;&nbsp;</a></span>pwmSetFrequency()</h2>
-
-<div class="memitem">
-<div class="memproto">
-      <table class="memname">
-        <tr>
-          <td class="memname">uint8_t B15F::pwmSetFrequency </td>
-          <td>(</td>
-          <td class="paramtype">uint32_t&#160;</td>
-          <td class="paramname"><em>freq</em></td><td>)</td>
-          <td></td>
-        </tr>
-      </table>
-</div><div class="memdoc">
-<p>Setzt die Register so, dass näherungsweise die gewünschte Frequenz erzeugt wird. Ist freq == 0 wird PWM deaktiviert. Standardfrequenz: 31300 (empfohlen, da dann TOP == 255) </p><dl class="params"><dt>Parameters</dt><dd>
-  <table class="params">
-    <tr><td class="paramname">freq</td><td>PWM Frequenz </td></tr>
-  </table>
-  </dd>
-</dl>
-<dl class="section return"><dt>Returns</dt><dd>Top Wert des PWM Value für die gesetzte Frequenz </dd></dl>
-<dl class="exception"><dt>Exceptions</dt><dd>
-  <table class="exception">
-    <tr><td class="paramname"><a class="el" href="classDriverException.html">DriverException</a></td><td></td></tr>
-  </table>
-  </dd>
-</dl>
-
-<p class="definition">Definition at line <a class="el" href="b15f_8cpp_source.html#l00359">359</a> of file <a class="el" href="b15f_8cpp_source.html">b15f.cpp</a>.</p>
-
-</div>
-</div>
-<a id="af9aad3c0db5d5a8b37219d713e1977ee"></a>
-<h2 class="memtitle"><span class="permalink"><a href="#af9aad3c0db5d5a8b37219d713e1977ee">&#9670;&nbsp;</a></span>pwmSetValue()</h2>
-
-<div class="memitem">
-<div class="memproto">
-      <table class="memname">
-        <tr>
-          <td class="memname">bool B15F::pwmSetValue </td>
-          <td>(</td>
-          <td class="paramtype">uint8_t&#160;</td>
-          <td class="paramname"><em>value</em></td><td>)</td>
-          <td></td>
-        </tr>
-      </table>
-</div><div class="memdoc">
-<p>Setzt den PWM Wert. </p><dl class="params"><dt>Parameters</dt><dd>
-  <table class="params">
-    <tr><td class="paramname">value</td><td>PWM Wert [0..0xFF] </td></tr>
-  </table>
-  </dd>
-</dl>
-<dl class="exception"><dt>Exceptions</dt><dd>
-  <table class="exception">
-    <tr><td class="paramname"><a class="el" href="classDriverException.html">DriverException</a></td><td></td></tr>
-  </table>
-  </dd>
-</dl>
-
-<p class="definition">Definition at line <a class="el" href="b15f_8cpp_source.html#l00379">379</a> of file <a class="el" href="b15f_8cpp_source.html">b15f.cpp</a>.</p>
-
-</div>
-</div>
-<a id="a6f858f21ea81d491b5031b3644a2239a"></a>
-<h2 class="memtitle"><span class="permalink"><a href="#a6f858f21ea81d491b5031b3644a2239a">&#9670;&nbsp;</a></span>readDipSwitch()</h2>
-
-<div class="memitem">
-<div class="memproto">
-      <table class="memname">
-        <tr>
-          <td class="memname">uint8_t B15F::readDipSwitch </td>
-          <td>(</td>
-          <td class="paramtype">void&#160;</td>
-          <td class="paramname"></td><td>)</td>
-          <td></td>
-        </tr>
-      </table>
-</div><div class="memdoc">
-<p>Liest den Wert des digitalen Eingabeports, an dem der DIP-switch angeschlossen ist (S7) </p><dl class="section return"><dt>Returns</dt><dd>Wert für gesamten Port </dd></dl>
-<dl class="exception"><dt>Exceptions</dt><dd>
-  <table class="exception">
-    <tr><td class="paramname"><a class="el" href="classDriverException.html">DriverException</a></td><td></td></tr>
-  </table>
-  </dd>
-</dl>
-
-<p class="definition">Definition at line <a class="el" href="b15f_8cpp_source.html#l00235">235</a> of file <a class="el" href="b15f_8cpp_source.html">b15f.cpp</a>.</p>
-
-</div>
-</div>
-<a id="a52557b375443c180a044e7d4e80a1ae7"></a>
-<h2 class="memtitle"><span class="permalink"><a href="#a52557b375443c180a044e7d4e80a1ae7">&#9670;&nbsp;</a></span>reconnect()</h2>
-
-<div class="memitem">
-<div class="memproto">
-      <table class="memname">
-        <tr>
-          <td class="memname">void B15F::reconnect </td>
-          <td>(</td>
-          <td class="paramtype">void&#160;</td>
-          <td class="paramname"></td><td>)</td>
-          <td></td>
-        </tr>
-      </table>
-</div><div class="memdoc">
-<p>Versucht die Verbindung zum B15 wiederherzustellen </p><dl class="exception"><dt>Exceptions</dt><dd>
-  <table class="exception">
-    <tr><td class="paramname"><a class="el" href="classDriverException.html">DriverException</a></td><td></td></tr>
-  </table>
-  </dd>
-</dl>
-
-<p class="definition">Definition at line <a class="el" href="b15f_8cpp_source.html#l00057">57</a> of file <a class="el" href="b15f_8cpp_source.html">b15f.cpp</a>.</p>
-
-</div>
-</div>
-<a id="a55b0cd1ea582bda53d6979442640f8e9"></a>
-<h2 class="memtitle"><span class="permalink"><a href="#a55b0cd1ea582bda53d6979442640f8e9">&#9670;&nbsp;</a></span>setAbortHandler()</h2>
-
-<div class="memitem">
-<div class="memproto">
-<table class="mlabels">
-  <tr>
-  <td class="mlabels-left">
-      <table class="memname">
-        <tr>
-          <td class="memname">void B15F::setAbortHandler </td>
-          <td>(</td>
-          <td class="paramtype">errorhandler_t&#160;</td>
-          <td class="paramname"><em>func</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>Setzt eine Fehlerbehandlungsroutine für den Treiberabbruch (abort) </p><dl class="params"><dt>Parameters</dt><dd>
-  <table class="params">
-    <tr><td class="paramname">func</td><td>Funktion, die Exception als Parameter bekommt </td></tr>
-  </table>
-  </dd>
-</dl>
-
-<p class="definition">Definition at line <a class="el" href="b15f_8cpp_source.html#l00485">485</a> of file <a class="el" href="b15f_8cpp_source.html">b15f.cpp</a>.</p>
-
-</div>
-</div>
-<a id="ab446ecffab28d4515dfade79a8efc93d"></a>
-<h2 class="memtitle"><span class="permalink"><a href="#ab446ecffab28d4515dfade79a8efc93d">&#9670;&nbsp;</a></span>setRegister()</h2>
-
-<div class="memitem">
-<div class="memproto">
-      <table class="memname">
-        <tr>
-          <td class="memname">bool B15F::setRegister </td>
-          <td>(</td>
-          <td class="paramtype">volatile uint8_t *&#160;</td>
-          <td class="paramname"><em>adr</em>, </td>
-        </tr>
-        <tr>
-          <td class="paramkey"></td>
-          <td></td>
-          <td class="paramtype">uint8_t&#160;</td>
-          <td class="paramname"><em>val</em>&#160;</td>
-        </tr>
-        <tr>
-          <td></td>
-          <td>)</td>
-          <td></td><td></td>
-        </tr>
-      </table>
-</div><div class="memdoc">
-<p>Setzt direkt den Wert eines MCU Registers. <em>Wichtig:</em> bei einer falschen Adresse kann das Board 15 ernsthaften Schaden nehmen! </p><dl class="params"><dt>Parameters</dt><dd>
-  <table class="params">
-    <tr><td class="paramname">adr</td><td>Speicheradresse des Registers </td></tr>
-    <tr><td class="paramname">val</td><td>Neuer Wert für das Register </td></tr>
-  </table>
-  </dd>
-</dl>
-<dl class="exception"><dt>Exceptions</dt><dd>
-  <table class="exception">
-    <tr><td class="paramname"><a class="el" href="classDriverException.html">DriverException</a></td><td></td></tr>
-  </table>
-  </dd>
-</dl>
-
-<p class="definition">Definition at line <a class="el" href="b15f_8cpp_source.html#l00396">396</a> of file <a class="el" href="b15f_8cpp_source.html">b15f.cpp</a>.</p>
-
-</div>
-</div>
-<a id="af01983594f2af98ab2b1e514aa036a5d"></a>
-<h2 class="memtitle"><span class="permalink"><a href="#af01983594f2af98ab2b1e514aa036a5d">&#9670;&nbsp;</a></span>testConnection()</h2>
-
-<div class="memitem">
-<div class="memproto">
-      <table class="memname">
-        <tr>
-          <td class="memname">bool B15F::testConnection </td>
-          <td>(</td>
-          <td class="paramtype">void&#160;</td>
-          <td class="paramname"></td><td>)</td>
-          <td></td>
-        </tr>
-      </table>
-</div><div class="memdoc">
-<p>Testet die <a class="el" href="classUSART.html">USART</a> Verbindung auf Funktion </p><dl class="exception"><dt>Exceptions</dt><dd>
-  <table class="exception">
-    <tr><td class="paramname"><a class="el" href="classDriverException.html">DriverException</a></td><td></td></tr>
-  </table>
-  </dd>
-</dl>
-
-<p class="definition">Definition at line <a class="el" href="b15f_8cpp_source.html#l00095">95</a> of file <a class="el" href="b15f_8cpp_source.html">b15f.cpp</a>.</p>
-
-</div>
-</div>
-<a id="a7b8a0e2a9156f7dcb05d097f23666a78"></a>
-<h2 class="memtitle"><span class="permalink"><a href="#a7b8a0e2a9156f7dcb05d097f23666a78">&#9670;&nbsp;</a></span>testIntConv()</h2>
-
-<div class="memitem">
-<div class="memproto">
-      <table class="memname">
-        <tr>
-          <td class="memname">bool B15F::testIntConv </td>
-          <td>(</td>
-          <td class="paramtype">void&#160;</td>
-          <td class="paramname"></td><td>)</td>
-          <td></td>
-        </tr>
-      </table>
-</div><div class="memdoc">
-<p>Testet die Integer Konvertierung der <a class="el" href="classUSART.html">USART</a> Verbindung </p><dl class="exception"><dt>Exceptions</dt><dd>
-  <table class="exception">
-    <tr><td class="paramname"><a class="el" href="classDriverException.html">DriverException</a></td><td></td></tr>
-  </table>
-  </dd>
-</dl>
-
-<p class="definition">Definition at line <a class="el" href="b15f_8cpp_source.html#l00114">114</a> of file <a class="el" href="b15f_8cpp_source.html">b15f.cpp</a>.</p>
-
-</div>
-</div>
-<hr/>The documentation for this class was generated from the following files:<ul>
-<li>drv/<a class="el" href="b15f_8h_source.html">b15f.h</a></li>
-<li>drv/<a class="el" href="b15f_8cpp_source.html">b15f.cpp</a></li>
-</ul>
-</div><!-- contents -->
-<!-- start footer part -->
-<hr class="footer"/><address class="footer"><small>
-Generated on Fri Jun 7 2019 14:50:45 for B15F by &#160;<a href="http://www.doxygen.org/index.html">
-<img class="footer" src="doxygen.png" alt="doxygen"/>
-</a> 1.8.16
-</small></address>
-</body>
-</html>
diff --git a/docs/html/classDot-members.html b/docs/html/classDot-members.html
deleted file mode 100644
index fcce9cd..0000000
--- a/docs/html/classDot-members.html
+++ /dev/null
@@ -1,84 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml">
-<head>
-<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
-<meta http-equiv="X-UA-Compatible" content="IE=9"/>
-<meta name="generator" content="Doxygen 1.8.16"/>
-<meta name="viewport" content="width=device-width, initial-scale=1"/>
-<title>B15F: 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">B15F
-   </div>
-   <div id="projectbrief">Board 15 Famulus Edition</div>
-  </td>
- </tr>
- </tbody>
-</table>
-</div>
-<!-- end header part -->
-<!-- Generated by Doxygen 1.8.16 -->
-<script type="text/javascript">
-/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
-var searchBox = new SearchBox("searchBox", "search",false,'Search');
-/* @license-end */
-</script>
-<script type="text/javascript" src="menudata.js"></script>
-<script type="text/javascript" src="menu.js"></script>
-<script type="text/javascript">
-/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
-$(function() {
-  initMenu('',true,false,'search.php','Search');
-  $(document).ready(function() { init_search(); });
-});
-/* @license-end */</script>
-<div id="main-nav"></div>
-<!-- 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">Dot Member List</div>  </div>
-</div><!--header-->
-<div class="contents">
-
-<p>This is the complete list of members for <a class="el" href="classDot.html">Dot</a>, including all inherited members.</p>
-<table class="directory">
-  <tr class="even"><td class="entry"><a class="el" href="classDot.html#ad975f119c0627a928790b3cd5ca6da05">Dot</a>(uint16_t x, uint16_t y, uint8_t curve)</td><td class="entry"><a class="el" href="classDot.html">Dot</a></td><td class="entry"></td></tr>
-  <tr><td class="entry"><a class="el" href="classDot.html#ad0ae7dc1a9be3d8d985affc089b34396">getCurve</a>(void) const</td><td class="entry"><a class="el" href="classDot.html">Dot</a></td><td class="entry"></td></tr>
-  <tr class="even"><td class="entry"><a class="el" href="classDot.html#a029f0cc99c474122b77a708a317e7f77">getX</a>(void) const</td><td class="entry"><a class="el" href="classDot.html">Dot</a></td><td class="entry"></td></tr>
-  <tr><td class="entry"><a class="el" href="classDot.html#a8fcb987e6308d8184d1a2c8692227e58">getY</a>(void) const</td><td class="entry"><a class="el" href="classDot.html">Dot</a></td><td class="entry"></td></tr>
-</table></div><!-- contents -->
-<!-- start footer part -->
-<hr class="footer"/><address class="footer"><small>
-Generated on Fri Jun 7 2019 14:50:45 for B15F by &#160;<a href="http://www.doxygen.org/index.html">
-<img class="footer" src="doxygen.png" alt="doxygen"/>
-</a> 1.8.16
-</small></address>
-</body>
-</html>
diff --git a/docs/html/classDot.html b/docs/html/classDot.html
deleted file mode 100644
index e39c8b8..0000000
--- a/docs/html/classDot.html
+++ /dev/null
@@ -1,204 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml">
-<head>
-<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
-<meta http-equiv="X-UA-Compatible" content="IE=9"/>
-<meta name="generator" content="Doxygen 1.8.16"/>
-<meta name="viewport" content="width=device-width, initial-scale=1"/>
-<title>B15F: Dot 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">B15F
-   </div>
-   <div id="projectbrief">Board 15 Famulus Edition</div>
-  </td>
- </tr>
- </tbody>
-</table>
-</div>
-<!-- end header part -->
-<!-- Generated by Doxygen 1.8.16 -->
-<script type="text/javascript">
-/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
-var searchBox = new SearchBox("searchBox", "search",false,'Search');
-/* @license-end */
-</script>
-<script type="text/javascript" src="menudata.js"></script>
-<script type="text/javascript" src="menu.js"></script>
-<script type="text/javascript">
-/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
-$(function() {
-  initMenu('',true,false,'search.php','Search');
-  $(document).ready(function() { init_search(); });
-});
-/* @license-end */</script>
-<div id="main-nav"></div>
-<!-- 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-methods">Public Member Functions</a> &#124;
-<a href="classDot-members.html">List of all members</a>  </div>
-  <div class="headertitle">
-<div class="title">Dot Class Reference</div>  </div>
-</div><!--header-->
-<div class="contents">
-
-<p><code>#include &lt;<a class="el" href="dot_8h_source.html">dot.h</a>&gt;</code></p>
-<table class="memberdecls">
-<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-methods"></a>
-Public Member Functions</h2></td></tr>
-<tr class="memitem:ad975f119c0627a928790b3cd5ca6da05"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classDot.html#ad975f119c0627a928790b3cd5ca6da05">Dot</a> (uint16_t x, uint16_t y, uint8_t curve)</td></tr>
-<tr class="separator:ad975f119c0627a928790b3cd5ca6da05"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a029f0cc99c474122b77a708a317e7f77"><td class="memItemLeft" align="right" valign="top">uint16_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classDot.html#a029f0cc99c474122b77a708a317e7f77">getX</a> (void) const</td></tr>
-<tr class="separator:a029f0cc99c474122b77a708a317e7f77"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a8fcb987e6308d8184d1a2c8692227e58"><td class="memItemLeft" align="right" valign="top">uint16_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classDot.html#a8fcb987e6308d8184d1a2c8692227e58">getY</a> (void) const</td></tr>
-<tr class="separator:a8fcb987e6308d8184d1a2c8692227e58"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ad0ae7dc1a9be3d8d985affc089b34396"><td class="memItemLeft" align="right" valign="top">uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classDot.html#ad0ae7dc1a9be3d8d985affc089b34396">getCurve</a> (void) const</td></tr>
-<tr class="separator:ad0ae7dc1a9be3d8d985affc089b34396"><td class="memSeparator" colspan="2">&#160;</td></tr>
-</table>
-<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
-<div class="textblock"><p>Immutable dot class with x and y coordinate and curve index. Dots with the same curve index get the same color by plotty. </p>
-
-<p class="definition">Definition at line <a class="el" href="dot_8h_source.html#l00012">12</a> of file <a class="el" href="dot_8h_source.html">dot.h</a>.</p>
-</div><h2 class="groupheader">Constructor &amp; Destructor Documentation</h2>
-<a id="ad975f119c0627a928790b3cd5ca6da05"></a>
-<h2 class="memtitle"><span class="permalink"><a href="#ad975f119c0627a928790b3cd5ca6da05">&#9670;&nbsp;</a></span>Dot()</h2>
-
-<div class="memitem">
-<div class="memproto">
-      <table class="memname">
-        <tr>
-          <td class="memname">Dot::Dot </td>
-          <td>(</td>
-          <td class="paramtype">uint16_t&#160;</td>
-          <td class="paramname"><em>x</em>, </td>
-        </tr>
-        <tr>
-          <td class="paramkey"></td>
-          <td></td>
-          <td class="paramtype">uint16_t&#160;</td>
-          <td class="paramname"><em>y</em>, </td>
-        </tr>
-        <tr>
-          <td class="paramkey"></td>
-          <td></td>
-          <td class="paramtype">uint8_t&#160;</td>
-          <td class="paramname"><em>curve</em>&#160;</td>
-        </tr>
-        <tr>
-          <td></td>
-          <td>)</td>
-          <td></td><td></td>
-        </tr>
-      </table>
-</div><div class="memdoc">
-<p>Constructor with x and y coordinate and curve index. </p>
-
-<p class="definition">Definition at line <a class="el" href="dot_8cpp_source.html#l00003">3</a> of file <a class="el" href="dot_8cpp_source.html">dot.cpp</a>.</p>
-
-</div>
-</div>
-<h2 class="groupheader">Member Function Documentation</h2>
-<a id="ad0ae7dc1a9be3d8d985affc089b34396"></a>
-<h2 class="memtitle"><span class="permalink"><a href="#ad0ae7dc1a9be3d8d985affc089b34396">&#9670;&nbsp;</a></span>getCurve()</h2>
-
-<div class="memitem">
-<div class="memproto">
-      <table class="memname">
-        <tr>
-          <td class="memname">uint8_t Dot::getCurve </td>
-          <td>(</td>
-          <td class="paramtype">void&#160;</td>
-          <td class="paramname"></td><td>)</td>
-          <td> const</td>
-        </tr>
-      </table>
-</div><div class="memdoc">
-<p>Returns the curve index. </p>
-
-<p class="definition">Definition at line <a class="el" href="dot_8cpp_source.html#l00019">19</a> of file <a class="el" href="dot_8cpp_source.html">dot.cpp</a>.</p>
-
-</div>
-</div>
-<a id="a029f0cc99c474122b77a708a317e7f77"></a>
-<h2 class="memtitle"><span class="permalink"><a href="#a029f0cc99c474122b77a708a317e7f77">&#9670;&nbsp;</a></span>getX()</h2>
-
-<div class="memitem">
-<div class="memproto">
-      <table class="memname">
-        <tr>
-          <td class="memname">uint16_t Dot::getX </td>
-          <td>(</td>
-          <td class="paramtype">void&#160;</td>
-          <td class="paramname"></td><td>)</td>
-          <td> const</td>
-        </tr>
-      </table>
-</div><div class="memdoc">
-<p>Returns the x coordinate. </p>
-
-<p class="definition">Definition at line <a class="el" href="dot_8cpp_source.html#l00009">9</a> of file <a class="el" href="dot_8cpp_source.html">dot.cpp</a>.</p>
-
-</div>
-</div>
-<a id="a8fcb987e6308d8184d1a2c8692227e58"></a>
-<h2 class="memtitle"><span class="permalink"><a href="#a8fcb987e6308d8184d1a2c8692227e58">&#9670;&nbsp;</a></span>getY()</h2>
-
-<div class="memitem">
-<div class="memproto">
-      <table class="memname">
-        <tr>
-          <td class="memname">uint16_t Dot::getY </td>
-          <td>(</td>
-          <td class="paramtype">void&#160;</td>
-          <td class="paramname"></td><td>)</td>
-          <td> const</td>
-        </tr>
-      </table>
-</div><div class="memdoc">
-<p>Returns the y coordinate. </p>
-
-<p class="definition">Definition at line <a class="el" href="dot_8cpp_source.html#l00014">14</a> of file <a class="el" href="dot_8cpp_source.html">dot.cpp</a>.</p>
-
-</div>
-</div>
-<hr/>The documentation for this class was generated from the following files:<ul>
-<li>drv/<a class="el" href="dot_8h_source.html">dot.h</a></li>
-<li>drv/<a class="el" href="dot_8cpp_source.html">dot.cpp</a></li>
-</ul>
-</div><!-- contents -->
-<!-- start footer part -->
-<hr class="footer"/><address class="footer"><small>
-Generated on Fri Jun 7 2019 14:50:45 for B15F by &#160;<a href="http://www.doxygen.org/index.html">
-<img class="footer" src="doxygen.png" alt="doxygen"/>
-</a> 1.8.16
-</small></address>
-</body>
-</html>
diff --git a/docs/html/classDriverException-members.html b/docs/html/classDriverException-members.html
deleted file mode 100644
index 91d85c7..0000000
--- a/docs/html/classDriverException-members.html
+++ /dev/null
@@ -1,85 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml">
-<head>
-<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
-<meta http-equiv="X-UA-Compatible" content="IE=9"/>
-<meta name="generator" content="Doxygen 1.8.16"/>
-<meta name="viewport" content="width=device-width, initial-scale=1"/>
-<title>B15F: 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">B15F
-   </div>
-   <div id="projectbrief">Board 15 Famulus Edition</div>
-  </td>
- </tr>
- </tbody>
-</table>
-</div>
-<!-- end header part -->
-<!-- Generated by Doxygen 1.8.16 -->
-<script type="text/javascript">
-/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
-var searchBox = new SearchBox("searchBox", "search",false,'Search');
-/* @license-end */
-</script>
-<script type="text/javascript" src="menudata.js"></script>
-<script type="text/javascript" src="menu.js"></script>
-<script type="text/javascript">
-/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
-$(function() {
-  initMenu('',true,false,'search.php','Search');
-  $(document).ready(function() { init_search(); });
-});
-/* @license-end */</script>
-<div id="main-nav"></div>
-<!-- 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">DriverException Member List</div>  </div>
-</div><!--header-->
-<div class="contents">
-
-<p>This is the complete list of members for <a class="el" href="classDriverException.html">DriverException</a>, including all inherited members.</p>
-<table class="directory">
-  <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>DriverException</b>(const char *message) (defined in <a class="el" href="classDriverException.html">DriverException</a>)</td><td class="entry"><a class="el" href="classDriverException.html">DriverException</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">explicit</span></td></tr>
-  <tr bgcolor="#f0f0f0"><td class="entry"><b>DriverException</b>(const std::string &amp;message) (defined in <a class="el" href="classDriverException.html">DriverException</a>)</td><td class="entry"><a class="el" href="classDriverException.html">DriverException</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">explicit</span></td></tr>
-  <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>msg_</b> (defined in <a class="el" href="classDriverException.html">DriverException</a>)</td><td class="entry"><a class="el" href="classDriverException.html">DriverException</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
-  <tr bgcolor="#f0f0f0"><td class="entry"><b>what</b>() const (defined in <a class="el" href="classDriverException.html">DriverException</a>)</td><td class="entry"><a class="el" href="classDriverException.html">DriverException</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">virtual</span></td></tr>
-  <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>~DriverException</b>() (defined in <a class="el" href="classDriverException.html">DriverException</a>)</td><td class="entry"><a class="el" href="classDriverException.html">DriverException</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">virtual</span></td></tr>
-</table></div><!-- contents -->
-<!-- start footer part -->
-<hr class="footer"/><address class="footer"><small>
-Generated on Fri Jun 7 2019 14:50:45 for B15F by &#160;<a href="http://www.doxygen.org/index.html">
-<img class="footer" src="doxygen.png" alt="doxygen"/>
-</a> 1.8.16
-</small></address>
-</body>
-</html>
diff --git a/docs/html/classDriverException.html b/docs/html/classDriverException.html
deleted file mode 100644
index 33b0336..0000000
--- a/docs/html/classDriverException.html
+++ /dev/null
@@ -1,117 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml">
-<head>
-<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
-<meta http-equiv="X-UA-Compatible" content="IE=9"/>
-<meta name="generator" content="Doxygen 1.8.16"/>
-<meta name="viewport" content="width=device-width, initial-scale=1"/>
-<title>B15F: DriverException 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">B15F
-   </div>
-   <div id="projectbrief">Board 15 Famulus Edition</div>
-  </td>
- </tr>
- </tbody>
-</table>
-</div>
-<!-- end header part -->
-<!-- Generated by Doxygen 1.8.16 -->
-<script type="text/javascript">
-/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
-var searchBox = new SearchBox("searchBox", "search",false,'Search');
-/* @license-end */
-</script>
-<script type="text/javascript" src="menudata.js"></script>
-<script type="text/javascript" src="menu.js"></script>
-<script type="text/javascript">
-/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
-$(function() {
-  initMenu('',true,false,'search.php','Search');
-  $(document).ready(function() { init_search(); });
-});
-/* @license-end */</script>
-<div id="main-nav"></div>
-<!-- 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-methods">Public Member Functions</a> &#124;
-<a href="#pro-attribs">Protected Attributes</a> &#124;
-<a href="classDriverException-members.html">List of all members</a>  </div>
-  <div class="headertitle">
-<div class="title">DriverException Class Reference</div>  </div>
-</div><!--header-->
-<div class="contents">
-
-<p><code>#include &lt;<a class="el" href="driverexception_8h_source.html">driverexception.h</a>&gt;</code></p>
-<div id="dynsection-0" onclick="return toggleVisibility(this)" class="dynheader closed" style="cursor:pointer;">
-  <img id="dynsection-0-trigger" src="closed.png" alt="+"/> Inheritance diagram for DriverException:</div>
-<div id="dynsection-0-summary" class="dynsummary" style="display:block;">
-</div>
-<div id="dynsection-0-content" class="dyncontent" style="display:none;">
- <div class="center">
-  <img src="classDriverException.png" alt=""/>
- </div></div>
-<table class="memberdecls">
-<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-methods"></a>
-Public Member Functions</h2></td></tr>
-<tr class="memitem:a6dcc078e6bfb7d87b53a5aef758cfe5f"><td class="memItemLeft" align="right" valign="top"><a id="a6dcc078e6bfb7d87b53a5aef758cfe5f"></a>
-&#160;</td><td class="memItemRight" valign="bottom"><b>DriverException</b> (const char *message)</td></tr>
-<tr class="separator:a6dcc078e6bfb7d87b53a5aef758cfe5f"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:abf7f902d3fbbfcdbde8e54a058948519"><td class="memItemLeft" align="right" valign="top"><a id="abf7f902d3fbbfcdbde8e54a058948519"></a>
-&#160;</td><td class="memItemRight" valign="bottom"><b>DriverException</b> (const std::string &amp;message)</td></tr>
-<tr class="separator:abf7f902d3fbbfcdbde8e54a058948519"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a781362760bcd75b1bd5448629df58446"><td class="memItemLeft" align="right" valign="top"><a id="a781362760bcd75b1bd5448629df58446"></a>
-virtual const char *&#160;</td><td class="memItemRight" valign="bottom"><b>what</b> () const  throw ()</td></tr>
-<tr class="separator:a781362760bcd75b1bd5448629df58446"><td class="memSeparator" colspan="2">&#160;</td></tr>
-</table><table class="memberdecls">
-<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pro-attribs"></a>
-Protected Attributes</h2></td></tr>
-<tr class="memitem:ab8777afe3f5aed2e66f2b2fcb480a651"><td class="memItemLeft" align="right" valign="top"><a id="ab8777afe3f5aed2e66f2b2fcb480a651"></a>
-std::string&#160;</td><td class="memItemRight" valign="bottom"><b>msg_</b></td></tr>
-<tr class="separator:ab8777afe3f5aed2e66f2b2fcb480a651"><td class="memSeparator" colspan="2">&#160;</td></tr>
-</table>
-<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
-<div class="textblock"><p>Exception driver problems, for instance incompatible firmware version. </p>
-
-<p class="definition">Definition at line <a class="el" href="driverexception_8h_source.html#l00010">10</a> of file <a class="el" href="driverexception_8h_source.html">driverexception.h</a>.</p>
-</div><hr/>The documentation for this class was generated from the following file:<ul>
-<li>drv/<a class="el" href="driverexception_8h_source.html">driverexception.h</a></li>
-</ul>
-</div><!-- contents -->
-<!-- start footer part -->
-<hr class="footer"/><address class="footer"><small>
-Generated on Fri Jun 7 2019 14:50:45 for B15F by &#160;<a href="http://www.doxygen.org/index.html">
-<img class="footer" src="doxygen.png" alt="doxygen"/>
-</a> 1.8.16
-</small></address>
-</body>
-</html>
diff --git a/docs/html/classDriverException.png b/docs/html/classDriverException.png
deleted file mode 100644
index 5b60bc7..0000000
Binary files a/docs/html/classDriverException.png and /dev/null differ
diff --git a/docs/html/classPlottyFile-members.html b/docs/html/classPlottyFile-members.html
deleted file mode 100644
index b2ee3da..0000000
--- a/docs/html/classPlottyFile-members.html
+++ /dev/null
@@ -1,108 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml">
-<head>
-<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
-<meta http-equiv="X-UA-Compatible" content="IE=9"/>
-<meta name="generator" content="Doxygen 1.8.16"/>
-<meta name="viewport" content="width=device-width, initial-scale=1"/>
-<title>B15F: 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">B15F
-   </div>
-   <div id="projectbrief">Board 15 Famulus Edition</div>
-  </td>
- </tr>
- </tbody>
-</table>
-</div>
-<!-- end header part -->
-<!-- Generated by Doxygen 1.8.16 -->
-<script type="text/javascript">
-/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
-var searchBox = new SearchBox("searchBox", "search",false,'Search');
-/* @license-end */
-</script>
-<script type="text/javascript" src="menudata.js"></script>
-<script type="text/javascript" src="menu.js"></script>
-<script type="text/javascript">
-/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
-$(function() {
-  initMenu('',true,false,'search.php','Search');
-  $(document).ready(function() { init_search(); });
-});
-/* @license-end */</script>
-<div id="main-nav"></div>
-<!-- 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">PlottyFile Member List</div>  </div>
-</div><!--header-->
-<div class="contents">
-
-<p>This is the complete list of members for <a class="el" href="classPlottyFile.html">PlottyFile</a>, including all inherited members.</p>
-<table class="directory">
-  <tr class="even"><td class="entry"><a class="el" href="classPlottyFile.html#ae091e6eaaca16302f17572ac7dec6f7c">addDot</a>(Dot &amp;dot)</td><td class="entry"><a class="el" href="classPlottyFile.html">PlottyFile</a></td><td class="entry"></td></tr>
-  <tr><td class="entry"><a class="el" href="classPlottyFile.html#a80e4b45219b4e9571992edfc28a28568">addDot</a>(Dot dot)</td><td class="entry"><a class="el" href="classPlottyFile.html">PlottyFile</a></td><td class="entry"></td></tr>
-  <tr class="even"><td class="entry"><a class="el" href="classPlottyFile.html#a536967daae3b382a5d6575f55450e198">getDescPara</a>(void) const</td><td class="entry"><a class="el" href="classPlottyFile.html">PlottyFile</a></td><td class="entry"></td></tr>
-  <tr><td class="entry"><a class="el" href="classPlottyFile.html#a9cf7baa569be308c2cf6e07cadded09d">getDescX</a>(void) const</td><td class="entry"><a class="el" href="classPlottyFile.html">PlottyFile</a></td><td class="entry"></td></tr>
-  <tr class="even"><td class="entry"><a class="el" href="classPlottyFile.html#ab4a847fd71a804182f211233e194df45">getDescY</a>(void) const</td><td class="entry"><a class="el" href="classPlottyFile.html">PlottyFile</a></td><td class="entry"></td></tr>
-  <tr><td class="entry"><a class="el" href="classPlottyFile.html#a88bb7d8350ed5fbc7a40e8d903c94bdb">getFunctionType</a>(void) const</td><td class="entry"><a class="el" href="classPlottyFile.html">PlottyFile</a></td><td class="entry"></td></tr>
-  <tr class="even"><td class="entry"><a class="el" href="classPlottyFile.html#a40828c93d66fe80166c4f603d5bdfa48">getParaFirstCurve</a>(void) const</td><td class="entry"><a class="el" href="classPlottyFile.html">PlottyFile</a></td><td class="entry"></td></tr>
-  <tr><td class="entry"><a class="el" href="classPlottyFile.html#a9da23f2bb8e6eb1837fc992ffd4057db">getParaStepWidth</a>(void) const</td><td class="entry"><a class="el" href="classPlottyFile.html">PlottyFile</a></td><td class="entry"></td></tr>
-  <tr class="even"><td class="entry"><a class="el" href="classPlottyFile.html#a54e94e80061a27614f2d4d63697d3376">getQuadrant</a>(void) const</td><td class="entry"><a class="el" href="classPlottyFile.html">PlottyFile</a></td><td class="entry"></td></tr>
-  <tr><td class="entry"><a class="el" href="classPlottyFile.html#a7dd84b9f0826f3220fc6b5a4f1ce9890">getRefX</a>(void) const</td><td class="entry"><a class="el" href="classPlottyFile.html">PlottyFile</a></td><td class="entry"></td></tr>
-  <tr class="even"><td class="entry"><a class="el" href="classPlottyFile.html#ae6650c61a3b1a610ce716253418bd7f2">getRefY</a>(void) const</td><td class="entry"><a class="el" href="classPlottyFile.html">PlottyFile</a></td><td class="entry"></td></tr>
-  <tr><td class="entry"><a class="el" href="classPlottyFile.html#abcda4139adf8c5ab8a93b13b84ac097c">getUnitPara</a>(void) const</td><td class="entry"><a class="el" href="classPlottyFile.html">PlottyFile</a></td><td class="entry"></td></tr>
-  <tr class="even"><td class="entry"><a class="el" href="classPlottyFile.html#af952ac5e2c40896acaf6a86063874fe3">getUnitX</a>(void) const</td><td class="entry"><a class="el" href="classPlottyFile.html">PlottyFile</a></td><td class="entry"></td></tr>
-  <tr><td class="entry"><a class="el" href="classPlottyFile.html#a746b96036872dbece204e9739f3413b6">getUnitY</a>(void) const</td><td class="entry"><a class="el" href="classPlottyFile.html">PlottyFile</a></td><td class="entry"></td></tr>
-  <tr class="even"><td class="entry"><a class="el" href="classPlottyFile.html#a431904143c3c1164a2e8b8cfec3c77ab">setDescPara</a>(std::string desc_para)</td><td class="entry"><a class="el" href="classPlottyFile.html">PlottyFile</a></td><td class="entry"></td></tr>
-  <tr><td class="entry"><a class="el" href="classPlottyFile.html#aa0449c290265d55d6223b19cf0a88b0a">setDescX</a>(std::string desc_x)</td><td class="entry"><a class="el" href="classPlottyFile.html">PlottyFile</a></td><td class="entry"></td></tr>
-  <tr class="even"><td class="entry"><a class="el" href="classPlottyFile.html#a38a3a4dfc76bc70523727584bf01d590">setDescY</a>(std::string desc_y)</td><td class="entry"><a class="el" href="classPlottyFile.html">PlottyFile</a></td><td class="entry"></td></tr>
-  <tr><td class="entry"><a class="el" href="classPlottyFile.html#a4e5ab1ebb012a5cc1a3d6458a4cd512f">setFunctionType</a>(FunctionType function_type)</td><td class="entry"><a class="el" href="classPlottyFile.html">PlottyFile</a></td><td class="entry"></td></tr>
-  <tr class="even"><td class="entry"><a class="el" href="classPlottyFile.html#aa676414793becb975506f48d6e949dd0">setParaFirstCurve</a>(uint16_t para_first)</td><td class="entry"><a class="el" href="classPlottyFile.html">PlottyFile</a></td><td class="entry"></td></tr>
-  <tr><td class="entry"><a class="el" href="classPlottyFile.html#a6caebd31e04e2e7081cc007047350355">setParaStepWidth</a>(uint16_t para_stepwidth)</td><td class="entry"><a class="el" href="classPlottyFile.html">PlottyFile</a></td><td class="entry"></td></tr>
-  <tr class="even"><td class="entry"><a class="el" href="classPlottyFile.html#a1953ee0d9a87b7353c16139584e9c2ae">setQuadrant</a>(uint8_t quadrant)</td><td class="entry"><a class="el" href="classPlottyFile.html">PlottyFile</a></td><td class="entry"></td></tr>
-  <tr><td class="entry"><a class="el" href="classPlottyFile.html#a80c2c2e97a454566f9c1f2c51e1d7f3e">setRefX</a>(uint16_t ref_x)</td><td class="entry"><a class="el" href="classPlottyFile.html">PlottyFile</a></td><td class="entry"></td></tr>
-  <tr class="even"><td class="entry"><a class="el" href="classPlottyFile.html#a3a371228ddcc007e97eebe7cc04dffc2">setRefY</a>(uint16_t ref_y)</td><td class="entry"><a class="el" href="classPlottyFile.html">PlottyFile</a></td><td class="entry"></td></tr>
-  <tr><td class="entry"><a class="el" href="classPlottyFile.html#abbac84109a1e0958a4ca5c270fac0986">setUnitPara</a>(std::string unit_para)</td><td class="entry"><a class="el" href="classPlottyFile.html">PlottyFile</a></td><td class="entry"></td></tr>
-  <tr class="even"><td class="entry"><a class="el" href="classPlottyFile.html#ab8d35a841ca9c325fca671cf34e03527">setUnitX</a>(std::string unit_x)</td><td class="entry"><a class="el" href="classPlottyFile.html">PlottyFile</a></td><td class="entry"></td></tr>
-  <tr><td class="entry"><a class="el" href="classPlottyFile.html#abb18c814f435926f741f7ceb310f3059">setUnitY</a>(std::string unit_y)</td><td class="entry"><a class="el" href="classPlottyFile.html">PlottyFile</a></td><td class="entry"></td></tr>
-  <tr class="even"><td class="entry"><a class="el" href="classPlottyFile.html#a08a115ef10458cadfe76077d623313df">startPlotty</a>(std::string filename)</td><td class="entry"><a class="el" href="classPlottyFile.html">PlottyFile</a></td><td class="entry"></td></tr>
-  <tr><td class="entry"><a class="el" href="classPlottyFile.html#a82c348e7fade2edcbc907e7c2bc2e305">writeToFile</a>(std::string filename)</td><td class="entry"><a class="el" href="classPlottyFile.html">PlottyFile</a></td><td class="entry"></td></tr>
-</table></div><!-- contents -->
-<!-- start footer part -->
-<hr class="footer"/><address class="footer"><small>
-Generated on Fri Jun 7 2019 14:50:45 for B15F by &#160;<a href="http://www.doxygen.org/index.html">
-<img class="footer" src="doxygen.png" alt="doxygen"/>
-</a> 1.8.16
-</small></address>
-</body>
-</html>
diff --git a/docs/html/classPlottyFile.html b/docs/html/classPlottyFile.html
deleted file mode 100644
index 705963a..0000000
--- a/docs/html/classPlottyFile.html
+++ /dev/null
@@ -1,819 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml">
-<head>
-<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
-<meta http-equiv="X-UA-Compatible" content="IE=9"/>
-<meta name="generator" content="Doxygen 1.8.16"/>
-<meta name="viewport" content="width=device-width, initial-scale=1"/>
-<title>B15F: PlottyFile 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">B15F
-   </div>
-   <div id="projectbrief">Board 15 Famulus Edition</div>
-  </td>
- </tr>
- </tbody>
-</table>
-</div>
-<!-- end header part -->
-<!-- Generated by Doxygen 1.8.16 -->
-<script type="text/javascript">
-/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
-var searchBox = new SearchBox("searchBox", "search",false,'Search');
-/* @license-end */
-</script>
-<script type="text/javascript" src="menudata.js"></script>
-<script type="text/javascript" src="menu.js"></script>
-<script type="text/javascript">
-/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
-$(function() {
-  initMenu('',true,false,'search.php','Search');
-  $(document).ready(function() { init_search(); });
-});
-/* @license-end */</script>
-<div id="main-nav"></div>
-<!-- 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-methods">Public Member Functions</a> &#124;
-<a href="classPlottyFile-members.html">List of all members</a>  </div>
-  <div class="headertitle">
-<div class="title">PlottyFile Class Reference</div>  </div>
-</div><!--header-->
-<div class="contents">
-
-<p><code>#include &lt;<a class="el" href="plottyfile_8h_source.html">plottyfile.h</a>&gt;</code></p>
-<table class="memberdecls">
-<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-methods"></a>
-Public Member Functions</h2></td></tr>
-<tr class="memitem:ae091e6eaaca16302f17572ac7dec6f7c"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classPlottyFile.html#ae091e6eaaca16302f17572ac7dec6f7c">addDot</a> (<a class="el" href="classDot.html">Dot</a> &amp;dot)</td></tr>
-<tr class="separator:ae091e6eaaca16302f17572ac7dec6f7c"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a80e4b45219b4e9571992edfc28a28568"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classPlottyFile.html#a80e4b45219b4e9571992edfc28a28568">addDot</a> (<a class="el" href="classDot.html">Dot</a> dot)</td></tr>
-<tr class="separator:a80e4b45219b4e9571992edfc28a28568"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a4e5ab1ebb012a5cc1a3d6458a4cd512f"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classPlottyFile.html#a4e5ab1ebb012a5cc1a3d6458a4cd512f">setFunctionType</a> (FunctionType function_type)</td></tr>
-<tr class="separator:a4e5ab1ebb012a5cc1a3d6458a4cd512f"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a1953ee0d9a87b7353c16139584e9c2ae"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classPlottyFile.html#a1953ee0d9a87b7353c16139584e9c2ae">setQuadrant</a> (uint8_t quadrant)</td></tr>
-<tr class="separator:a1953ee0d9a87b7353c16139584e9c2ae"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a80c2c2e97a454566f9c1f2c51e1d7f3e"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classPlottyFile.html#a80c2c2e97a454566f9c1f2c51e1d7f3e">setRefX</a> (uint16_t ref_x)</td></tr>
-<tr class="separator:a80c2c2e97a454566f9c1f2c51e1d7f3e"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a3a371228ddcc007e97eebe7cc04dffc2"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classPlottyFile.html#a3a371228ddcc007e97eebe7cc04dffc2">setRefY</a> (uint16_t ref_y)</td></tr>
-<tr class="separator:a3a371228ddcc007e97eebe7cc04dffc2"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:aa676414793becb975506f48d6e949dd0"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classPlottyFile.html#aa676414793becb975506f48d6e949dd0">setParaFirstCurve</a> (uint16_t para_first)</td></tr>
-<tr class="separator:aa676414793becb975506f48d6e949dd0"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a6caebd31e04e2e7081cc007047350355"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classPlottyFile.html#a6caebd31e04e2e7081cc007047350355">setParaStepWidth</a> (uint16_t para_stepwidth)</td></tr>
-<tr class="separator:a6caebd31e04e2e7081cc007047350355"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ab8d35a841ca9c325fca671cf34e03527"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classPlottyFile.html#ab8d35a841ca9c325fca671cf34e03527">setUnitX</a> (std::string unit_x)</td></tr>
-<tr class="separator:ab8d35a841ca9c325fca671cf34e03527"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:aa0449c290265d55d6223b19cf0a88b0a"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classPlottyFile.html#aa0449c290265d55d6223b19cf0a88b0a">setDescX</a> (std::string desc_x)</td></tr>
-<tr class="separator:aa0449c290265d55d6223b19cf0a88b0a"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:abb18c814f435926f741f7ceb310f3059"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classPlottyFile.html#abb18c814f435926f741f7ceb310f3059">setUnitY</a> (std::string unit_y)</td></tr>
-<tr class="separator:abb18c814f435926f741f7ceb310f3059"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a38a3a4dfc76bc70523727584bf01d590"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classPlottyFile.html#a38a3a4dfc76bc70523727584bf01d590">setDescY</a> (std::string desc_y)</td></tr>
-<tr class="separator:a38a3a4dfc76bc70523727584bf01d590"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:abbac84109a1e0958a4ca5c270fac0986"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classPlottyFile.html#abbac84109a1e0958a4ca5c270fac0986">setUnitPara</a> (std::string unit_para)</td></tr>
-<tr class="separator:abbac84109a1e0958a4ca5c270fac0986"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a431904143c3c1164a2e8b8cfec3c77ab"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classPlottyFile.html#a431904143c3c1164a2e8b8cfec3c77ab">setDescPara</a> (std::string desc_para)</td></tr>
-<tr class="separator:a431904143c3c1164a2e8b8cfec3c77ab"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a88bb7d8350ed5fbc7a40e8d903c94bdb"><td class="memItemLeft" align="right" valign="top">FunctionType&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classPlottyFile.html#a88bb7d8350ed5fbc7a40e8d903c94bdb">getFunctionType</a> (void) const</td></tr>
-<tr class="separator:a88bb7d8350ed5fbc7a40e8d903c94bdb"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a54e94e80061a27614f2d4d63697d3376"><td class="memItemLeft" align="right" valign="top">uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classPlottyFile.html#a54e94e80061a27614f2d4d63697d3376">getQuadrant</a> (void) const</td></tr>
-<tr class="separator:a54e94e80061a27614f2d4d63697d3376"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a7dd84b9f0826f3220fc6b5a4f1ce9890"><td class="memItemLeft" align="right" valign="top">uint16_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classPlottyFile.html#a7dd84b9f0826f3220fc6b5a4f1ce9890">getRefX</a> (void) const</td></tr>
-<tr class="separator:a7dd84b9f0826f3220fc6b5a4f1ce9890"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ae6650c61a3b1a610ce716253418bd7f2"><td class="memItemLeft" align="right" valign="top">uint16_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classPlottyFile.html#ae6650c61a3b1a610ce716253418bd7f2">getRefY</a> (void) const</td></tr>
-<tr class="separator:ae6650c61a3b1a610ce716253418bd7f2"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a40828c93d66fe80166c4f603d5bdfa48"><td class="memItemLeft" align="right" valign="top">uint16_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classPlottyFile.html#a40828c93d66fe80166c4f603d5bdfa48">getParaFirstCurve</a> (void) const</td></tr>
-<tr class="separator:a40828c93d66fe80166c4f603d5bdfa48"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a9da23f2bb8e6eb1837fc992ffd4057db"><td class="memItemLeft" align="right" valign="top">uint16_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classPlottyFile.html#a9da23f2bb8e6eb1837fc992ffd4057db">getParaStepWidth</a> (void) const</td></tr>
-<tr class="separator:a9da23f2bb8e6eb1837fc992ffd4057db"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:af952ac5e2c40896acaf6a86063874fe3"><td class="memItemLeft" align="right" valign="top">std::string&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classPlottyFile.html#af952ac5e2c40896acaf6a86063874fe3">getUnitX</a> (void) const</td></tr>
-<tr class="separator:af952ac5e2c40896acaf6a86063874fe3"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a9cf7baa569be308c2cf6e07cadded09d"><td class="memItemLeft" align="right" valign="top">std::string&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classPlottyFile.html#a9cf7baa569be308c2cf6e07cadded09d">getDescX</a> (void) const</td></tr>
-<tr class="separator:a9cf7baa569be308c2cf6e07cadded09d"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a746b96036872dbece204e9739f3413b6"><td class="memItemLeft" align="right" valign="top">std::string&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classPlottyFile.html#a746b96036872dbece204e9739f3413b6">getUnitY</a> (void) const</td></tr>
-<tr class="separator:a746b96036872dbece204e9739f3413b6"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ab4a847fd71a804182f211233e194df45"><td class="memItemLeft" align="right" valign="top">std::string&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classPlottyFile.html#ab4a847fd71a804182f211233e194df45">getDescY</a> (void) const</td></tr>
-<tr class="separator:ab4a847fd71a804182f211233e194df45"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:abcda4139adf8c5ab8a93b13b84ac097c"><td class="memItemLeft" align="right" valign="top">std::string&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classPlottyFile.html#abcda4139adf8c5ab8a93b13b84ac097c">getUnitPara</a> (void) const</td></tr>
-<tr class="separator:abcda4139adf8c5ab8a93b13b84ac097c"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a536967daae3b382a5d6575f55450e198"><td class="memItemLeft" align="right" valign="top">std::string&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classPlottyFile.html#a536967daae3b382a5d6575f55450e198">getDescPara</a> (void) const</td></tr>
-<tr class="separator:a536967daae3b382a5d6575f55450e198"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a82c348e7fade2edcbc907e7c2bc2e305"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classPlottyFile.html#a82c348e7fade2edcbc907e7c2bc2e305">writeToFile</a> (std::string filename)</td></tr>
-<tr class="separator:a82c348e7fade2edcbc907e7c2bc2e305"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a08a115ef10458cadfe76077d623313df"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classPlottyFile.html#a08a115ef10458cadfe76077d623313df">startPlotty</a> (std::string filename)</td></tr>
-<tr class="separator:a08a115ef10458cadfe76077d623313df"><td class="memSeparator" colspan="2">&#160;</td></tr>
-</table>
-<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
-<div class="textblock"><p>Wrapper class for convenient plot file creation, needed to display graphs using plotty. </p>
-
-<p class="definition">Definition at line <a class="el" href="plottyfile_8h_source.html#l00020">20</a> of file <a class="el" href="plottyfile_8h_source.html">plottyfile.h</a>.</p>
-</div><h2 class="groupheader">Member Function Documentation</h2>
-<a id="ae091e6eaaca16302f17572ac7dec6f7c"></a>
-<h2 class="memtitle"><span class="permalink"><a href="#ae091e6eaaca16302f17572ac7dec6f7c">&#9670;&nbsp;</a></span>addDot() <span class="overload">[1/2]</span></h2>
-
-<div class="memitem">
-<div class="memproto">
-      <table class="memname">
-        <tr>
-          <td class="memname">void PlottyFile::addDot </td>
-          <td>(</td>
-          <td class="paramtype"><a class="el" href="classDot.html">Dot</a> &amp;&#160;</td>
-          <td class="paramname"><em>dot</em></td><td>)</td>
-          <td></td>
-        </tr>
-      </table>
-</div><div class="memdoc">
-<p>Adds a dot to the plotty file. </p><dl class="params"><dt>Parameters</dt><dd>
-  <table class="params">
-    <tr><td class="paramname">dot</td><td>the dot </td></tr>
-  </table>
-  </dd>
-</dl>
-
-<p class="definition">Definition at line <a class="el" href="plottyfile_8cpp_source.html#l00003">3</a> of file <a class="el" href="plottyfile_8cpp_source.html">plottyfile.cpp</a>.</p>
-
-</div>
-</div>
-<a id="a80e4b45219b4e9571992edfc28a28568"></a>
-<h2 class="memtitle"><span class="permalink"><a href="#a80e4b45219b4e9571992edfc28a28568">&#9670;&nbsp;</a></span>addDot() <span class="overload">[2/2]</span></h2>
-
-<div class="memitem">
-<div class="memproto">
-      <table class="memname">
-        <tr>
-          <td class="memname">void PlottyFile::addDot </td>
-          <td>(</td>
-          <td class="paramtype"><a class="el" href="classDot.html">Dot</a>&#160;</td>
-          <td class="paramname"><em>dot</em></td><td>)</td>
-          <td></td>
-        </tr>
-      </table>
-</div><div class="memdoc">
-<p>Adds a dot by reference to the plotty file. </p><dl class="params"><dt>Parameters</dt><dd>
-  <table class="params">
-    <tr><td class="paramname">dot</td><td>the dot </td></tr>
-  </table>
-  </dd>
-</dl>
-
-<p class="definition">Definition at line <a class="el" href="plottyfile_8cpp_source.html#l00008">8</a> of file <a class="el" href="plottyfile_8cpp_source.html">plottyfile.cpp</a>.</p>
-
-</div>
-</div>
-<a id="a536967daae3b382a5d6575f55450e198"></a>
-<h2 class="memtitle"><span class="permalink"><a href="#a536967daae3b382a5d6575f55450e198">&#9670;&nbsp;</a></span>getDescPara()</h2>
-
-<div class="memitem">
-<div class="memproto">
-      <table class="memname">
-        <tr>
-          <td class="memname">std::string PlottyFile::getDescPara </td>
-          <td>(</td>
-          <td class="paramtype">void&#160;</td>
-          <td class="paramname"></td><td>)</td>
-          <td> const</td>
-        </tr>
-      </table>
-</div><div class="memdoc">
-<dl class="section return"><dt>Returns</dt><dd>description of parameter </dd></dl>
-
-<p class="definition">Definition at line <a class="el" href="plottyfile_8cpp_source.html#l00130">130</a> of file <a class="el" href="plottyfile_8cpp_source.html">plottyfile.cpp</a>.</p>
-
-</div>
-</div>
-<a id="a9cf7baa569be308c2cf6e07cadded09d"></a>
-<h2 class="memtitle"><span class="permalink"><a href="#a9cf7baa569be308c2cf6e07cadded09d">&#9670;&nbsp;</a></span>getDescX()</h2>
-
-<div class="memitem">
-<div class="memproto">
-      <table class="memname">
-        <tr>
-          <td class="memname">std::string PlottyFile::getDescX </td>
-          <td>(</td>
-          <td class="paramtype">void&#160;</td>
-          <td class="paramname"></td><td>)</td>
-          <td> const</td>
-        </tr>
-      </table>
-</div><div class="memdoc">
-<dl class="section return"><dt>Returns</dt><dd>description of x axis </dd></dl>
-
-<p class="definition">Definition at line <a class="el" href="plottyfile_8cpp_source.html#l00110">110</a> of file <a class="el" href="plottyfile_8cpp_source.html">plottyfile.cpp</a>.</p>
-
-</div>
-</div>
-<a id="ab4a847fd71a804182f211233e194df45"></a>
-<h2 class="memtitle"><span class="permalink"><a href="#ab4a847fd71a804182f211233e194df45">&#9670;&nbsp;</a></span>getDescY()</h2>
-
-<div class="memitem">
-<div class="memproto">
-      <table class="memname">
-        <tr>
-          <td class="memname">std::string PlottyFile::getDescY </td>
-          <td>(</td>
-          <td class="paramtype">void&#160;</td>
-          <td class="paramname"></td><td>)</td>
-          <td> const</td>
-        </tr>
-      </table>
-</div><div class="memdoc">
-<dl class="section return"><dt>Returns</dt><dd>description of y axis </dd></dl>
-
-<p class="definition">Definition at line <a class="el" href="plottyfile_8cpp_source.html#l00120">120</a> of file <a class="el" href="plottyfile_8cpp_source.html">plottyfile.cpp</a>.</p>
-
-</div>
-</div>
-<a id="a88bb7d8350ed5fbc7a40e8d903c94bdb"></a>
-<h2 class="memtitle"><span class="permalink"><a href="#a88bb7d8350ed5fbc7a40e8d903c94bdb">&#9670;&nbsp;</a></span>getFunctionType()</h2>
-
-<div class="memitem">
-<div class="memproto">
-      <table class="memname">
-        <tr>
-          <td class="memname">FunctionType PlottyFile::getFunctionType </td>
-          <td>(</td>
-          <td class="paramtype">void&#160;</td>
-          <td class="paramname"></td><td>)</td>
-          <td> const</td>
-        </tr>
-      </table>
-</div><div class="memdoc">
-<dl class="section return"><dt>Returns</dt><dd>the FunctionType </dd></dl>
-
-<p class="definition">Definition at line <a class="el" href="plottyfile_8cpp_source.html#l00075">75</a> of file <a class="el" href="plottyfile_8cpp_source.html">plottyfile.cpp</a>.</p>
-
-</div>
-</div>
-<a id="a40828c93d66fe80166c4f603d5bdfa48"></a>
-<h2 class="memtitle"><span class="permalink"><a href="#a40828c93d66fe80166c4f603d5bdfa48">&#9670;&nbsp;</a></span>getParaFirstCurve()</h2>
-
-<div class="memitem">
-<div class="memproto">
-      <table class="memname">
-        <tr>
-          <td class="memname">uint16_t PlottyFile::getParaFirstCurve </td>
-          <td>(</td>
-          <td class="paramtype">void&#160;</td>
-          <td class="paramname"></td><td>)</td>
-          <td> const</td>
-        </tr>
-      </table>
-</div><div class="memdoc">
-<dl class="section return"><dt>Returns</dt><dd>initial parameter value </dd></dl>
-
-<p class="definition">Definition at line <a class="el" href="plottyfile_8cpp_source.html#l00095">95</a> of file <a class="el" href="plottyfile_8cpp_source.html">plottyfile.cpp</a>.</p>
-
-</div>
-</div>
-<a id="a9da23f2bb8e6eb1837fc992ffd4057db"></a>
-<h2 class="memtitle"><span class="permalink"><a href="#a9da23f2bb8e6eb1837fc992ffd4057db">&#9670;&nbsp;</a></span>getParaStepWidth()</h2>
-
-<div class="memitem">
-<div class="memproto">
-      <table class="memname">
-        <tr>
-          <td class="memname">uint16_t PlottyFile::getParaStepWidth </td>
-          <td>(</td>
-          <td class="paramtype">void&#160;</td>
-          <td class="paramname"></td><td>)</td>
-          <td> const</td>
-        </tr>
-      </table>
-</div><div class="memdoc">
-<dl class="section return"><dt>Returns</dt><dd>parameter stepwith </dd></dl>
-
-<p class="definition">Definition at line <a class="el" href="plottyfile_8cpp_source.html#l00100">100</a> of file <a class="el" href="plottyfile_8cpp_source.html">plottyfile.cpp</a>.</p>
-
-</div>
-</div>
-<a id="a54e94e80061a27614f2d4d63697d3376"></a>
-<h2 class="memtitle"><span class="permalink"><a href="#a54e94e80061a27614f2d4d63697d3376">&#9670;&nbsp;</a></span>getQuadrant()</h2>
-
-<div class="memitem">
-<div class="memproto">
-      <table class="memname">
-        <tr>
-          <td class="memname">uint8_t PlottyFile::getQuadrant </td>
-          <td>(</td>
-          <td class="paramtype">void&#160;</td>
-          <td class="paramname"></td><td>)</td>
-          <td> const</td>
-        </tr>
-      </table>
-</div><div class="memdoc">
-<dl class="section return"><dt>Returns</dt><dd>the quadrant </dd></dl>
-
-<p class="definition">Definition at line <a class="el" href="plottyfile_8cpp_source.html#l00080">80</a> of file <a class="el" href="plottyfile_8cpp_source.html">plottyfile.cpp</a>.</p>
-
-</div>
-</div>
-<a id="a7dd84b9f0826f3220fc6b5a4f1ce9890"></a>
-<h2 class="memtitle"><span class="permalink"><a href="#a7dd84b9f0826f3220fc6b5a4f1ce9890">&#9670;&nbsp;</a></span>getRefX()</h2>
-
-<div class="memitem">
-<div class="memproto">
-      <table class="memname">
-        <tr>
-          <td class="memname">uint16_t PlottyFile::getRefX </td>
-          <td>(</td>
-          <td class="paramtype">void&#160;</td>
-          <td class="paramname"></td><td>)</td>
-          <td> const</td>
-        </tr>
-      </table>
-</div><div class="memdoc">
-<dl class="section return"><dt>Returns</dt><dd>x reference (max) value </dd></dl>
-
-<p class="definition">Definition at line <a class="el" href="plottyfile_8cpp_source.html#l00085">85</a> of file <a class="el" href="plottyfile_8cpp_source.html">plottyfile.cpp</a>.</p>
-
-</div>
-</div>
-<a id="ae6650c61a3b1a610ce716253418bd7f2"></a>
-<h2 class="memtitle"><span class="permalink"><a href="#ae6650c61a3b1a610ce716253418bd7f2">&#9670;&nbsp;</a></span>getRefY()</h2>
-
-<div class="memitem">
-<div class="memproto">
-      <table class="memname">
-        <tr>
-          <td class="memname">uint16_t PlottyFile::getRefY </td>
-          <td>(</td>
-          <td class="paramtype">void&#160;</td>
-          <td class="paramname"></td><td>)</td>
-          <td> const</td>
-        </tr>
-      </table>
-</div><div class="memdoc">
-<dl class="section return"><dt>Returns</dt><dd>y reference (max) value </dd></dl>
-
-<p class="definition">Definition at line <a class="el" href="plottyfile_8cpp_source.html#l00090">90</a> of file <a class="el" href="plottyfile_8cpp_source.html">plottyfile.cpp</a>.</p>
-
-</div>
-</div>
-<a id="abcda4139adf8c5ab8a93b13b84ac097c"></a>
-<h2 class="memtitle"><span class="permalink"><a href="#abcda4139adf8c5ab8a93b13b84ac097c">&#9670;&nbsp;</a></span>getUnitPara()</h2>
-
-<div class="memitem">
-<div class="memproto">
-      <table class="memname">
-        <tr>
-          <td class="memname">std::string PlottyFile::getUnitPara </td>
-          <td>(</td>
-          <td class="paramtype">void&#160;</td>
-          <td class="paramname"></td><td>)</td>
-          <td> const</td>
-        </tr>
-      </table>
-</div><div class="memdoc">
-<dl class="section return"><dt>Returns</dt><dd>unit of parameter </dd></dl>
-
-<p class="definition">Definition at line <a class="el" href="plottyfile_8cpp_source.html#l00125">125</a> of file <a class="el" href="plottyfile_8cpp_source.html">plottyfile.cpp</a>.</p>
-
-</div>
-</div>
-<a id="af952ac5e2c40896acaf6a86063874fe3"></a>
-<h2 class="memtitle"><span class="permalink"><a href="#af952ac5e2c40896acaf6a86063874fe3">&#9670;&nbsp;</a></span>getUnitX()</h2>
-
-<div class="memitem">
-<div class="memproto">
-      <table class="memname">
-        <tr>
-          <td class="memname">std::string PlottyFile::getUnitX </td>
-          <td>(</td>
-          <td class="paramtype">void&#160;</td>
-          <td class="paramname"></td><td>)</td>
-          <td> const</td>
-        </tr>
-      </table>
-</div><div class="memdoc">
-<dl class="section return"><dt>Returns</dt><dd>unit of x axis </dd></dl>
-
-<p class="definition">Definition at line <a class="el" href="plottyfile_8cpp_source.html#l00105">105</a> of file <a class="el" href="plottyfile_8cpp_source.html">plottyfile.cpp</a>.</p>
-
-</div>
-</div>
-<a id="a746b96036872dbece204e9739f3413b6"></a>
-<h2 class="memtitle"><span class="permalink"><a href="#a746b96036872dbece204e9739f3413b6">&#9670;&nbsp;</a></span>getUnitY()</h2>
-
-<div class="memitem">
-<div class="memproto">
-      <table class="memname">
-        <tr>
-          <td class="memname">std::string PlottyFile::getUnitY </td>
-          <td>(</td>
-          <td class="paramtype">void&#160;</td>
-          <td class="paramname"></td><td>)</td>
-          <td> const</td>
-        </tr>
-      </table>
-</div><div class="memdoc">
-<dl class="section return"><dt>Returns</dt><dd>unit of y axis </dd></dl>
-
-<p class="definition">Definition at line <a class="el" href="plottyfile_8cpp_source.html#l00115">115</a> of file <a class="el" href="plottyfile_8cpp_source.html">plottyfile.cpp</a>.</p>
-
-</div>
-</div>
-<a id="a431904143c3c1164a2e8b8cfec3c77ab"></a>
-<h2 class="memtitle"><span class="permalink"><a href="#a431904143c3c1164a2e8b8cfec3c77ab">&#9670;&nbsp;</a></span>setDescPara()</h2>
-
-<div class="memitem">
-<div class="memproto">
-      <table class="memname">
-        <tr>
-          <td class="memname">void PlottyFile::setDescPara </td>
-          <td>(</td>
-          <td class="paramtype">std::string&#160;</td>
-          <td class="paramname"><em>desc_para</em></td><td>)</td>
-          <td></td>
-        </tr>
-      </table>
-</div><div class="memdoc">
-<p>Sets the description of the parameter. </p><dl class="params"><dt>Parameters</dt><dd>
-  <table class="params">
-    <tr><td class="paramname">para_first</td><td>description </td></tr>
-  </table>
-  </dd>
-</dl>
-
-<p class="definition">Definition at line <a class="el" href="plottyfile_8cpp_source.html#l00070">70</a> of file <a class="el" href="plottyfile_8cpp_source.html">plottyfile.cpp</a>.</p>
-
-</div>
-</div>
-<a id="aa0449c290265d55d6223b19cf0a88b0a"></a>
-<h2 class="memtitle"><span class="permalink"><a href="#aa0449c290265d55d6223b19cf0a88b0a">&#9670;&nbsp;</a></span>setDescX()</h2>
-
-<div class="memitem">
-<div class="memproto">
-      <table class="memname">
-        <tr>
-          <td class="memname">void PlottyFile::setDescX </td>
-          <td>(</td>
-          <td class="paramtype">std::string&#160;</td>
-          <td class="paramname"><em>desc_x</em></td><td>)</td>
-          <td></td>
-        </tr>
-      </table>
-</div><div class="memdoc">
-<p>Sets the description of the x axis. </p><dl class="params"><dt>Parameters</dt><dd>
-  <table class="params">
-    <tr><td class="paramname">para_first</td><td>description </td></tr>
-  </table>
-  </dd>
-</dl>
-
-<p class="definition">Definition at line <a class="el" href="plottyfile_8cpp_source.html#l00050">50</a> of file <a class="el" href="plottyfile_8cpp_source.html">plottyfile.cpp</a>.</p>
-
-</div>
-</div>
-<a id="a38a3a4dfc76bc70523727584bf01d590"></a>
-<h2 class="memtitle"><span class="permalink"><a href="#a38a3a4dfc76bc70523727584bf01d590">&#9670;&nbsp;</a></span>setDescY()</h2>
-
-<div class="memitem">
-<div class="memproto">
-      <table class="memname">
-        <tr>
-          <td class="memname">void PlottyFile::setDescY </td>
-          <td>(</td>
-          <td class="paramtype">std::string&#160;</td>
-          <td class="paramname"><em>desc_y</em></td><td>)</td>
-          <td></td>
-        </tr>
-      </table>
-</div><div class="memdoc">
-<p>Sets the description of the y axis. </p><dl class="params"><dt>Parameters</dt><dd>
-  <table class="params">
-    <tr><td class="paramname">para_first</td><td>description </td></tr>
-  </table>
-  </dd>
-</dl>
-
-<p class="definition">Definition at line <a class="el" href="plottyfile_8cpp_source.html#l00060">60</a> of file <a class="el" href="plottyfile_8cpp_source.html">plottyfile.cpp</a>.</p>
-
-</div>
-</div>
-<a id="a4e5ab1ebb012a5cc1a3d6458a4cd512f"></a>
-<h2 class="memtitle"><span class="permalink"><a href="#a4e5ab1ebb012a5cc1a3d6458a4cd512f">&#9670;&nbsp;</a></span>setFunctionType()</h2>
-
-<div class="memitem">
-<div class="memproto">
-      <table class="memname">
-        <tr>
-          <td class="memname">void PlottyFile::setFunctionType </td>
-          <td>(</td>
-          <td class="paramtype">FunctionType&#160;</td>
-          <td class="paramname"><em>function_type</em></td><td>)</td>
-          <td></td>
-        </tr>
-      </table>
-</div><div class="memdoc">
-<p>Sets the FunctionType of this plotty file. </p><dl class="params"><dt>Parameters</dt><dd>
-  <table class="params">
-    <tr><td class="paramname">function_type</td><td>enum value </td></tr>
-  </table>
-  </dd>
-</dl>
-
-<p class="definition">Definition at line <a class="el" href="plottyfile_8cpp_source.html#l00013">13</a> of file <a class="el" href="plottyfile_8cpp_source.html">plottyfile.cpp</a>.</p>
-
-</div>
-</div>
-<a id="aa676414793becb975506f48d6e949dd0"></a>
-<h2 class="memtitle"><span class="permalink"><a href="#aa676414793becb975506f48d6e949dd0">&#9670;&nbsp;</a></span>setParaFirstCurve()</h2>
-
-<div class="memitem">
-<div class="memproto">
-      <table class="memname">
-        <tr>
-          <td class="memname">void PlottyFile::setParaFirstCurve </td>
-          <td>(</td>
-          <td class="paramtype">uint16_t&#160;</td>
-          <td class="paramname"><em>para_first</em></td><td>)</td>
-          <td></td>
-        </tr>
-      </table>
-</div><div class="memdoc">
-<p>Sets initial value of the parameter. Gets used together with the stepwith to label the curves. </p><dl class="params"><dt>Parameters</dt><dd>
-  <table class="params">
-    <tr><td class="paramname">para_first</td><td>initial parameter value </td></tr>
-  </table>
-  </dd>
-</dl>
-
-<p class="definition">Definition at line <a class="el" href="plottyfile_8cpp_source.html#l00035">35</a> of file <a class="el" href="plottyfile_8cpp_source.html">plottyfile.cpp</a>.</p>
-
-</div>
-</div>
-<a id="a6caebd31e04e2e7081cc007047350355"></a>
-<h2 class="memtitle"><span class="permalink"><a href="#a6caebd31e04e2e7081cc007047350355">&#9670;&nbsp;</a></span>setParaStepWidth()</h2>
-
-<div class="memitem">
-<div class="memproto">
-      <table class="memname">
-        <tr>
-          <td class="memname">void PlottyFile::setParaStepWidth </td>
-          <td>(</td>
-          <td class="paramtype">uint16_t&#160;</td>
-          <td class="paramname"><em>para_stepwidth</em></td><td>)</td>
-          <td></td>
-        </tr>
-      </table>
-</div><div class="memdoc">
-<p>Sets the stepwith the parameter got increased with each curve. </p><dl class="params"><dt>Parameters</dt><dd>
-  <table class="params">
-    <tr><td class="paramname">para_first</td><td>parameter stepwith </td></tr>
-  </table>
-  </dd>
-</dl>
-
-<p class="definition">Definition at line <a class="el" href="plottyfile_8cpp_source.html#l00040">40</a> of file <a class="el" href="plottyfile_8cpp_source.html">plottyfile.cpp</a>.</p>
-
-</div>
-</div>
-<a id="a1953ee0d9a87b7353c16139584e9c2ae"></a>
-<h2 class="memtitle"><span class="permalink"><a href="#a1953ee0d9a87b7353c16139584e9c2ae">&#9670;&nbsp;</a></span>setQuadrant()</h2>
-
-<div class="memitem">
-<div class="memproto">
-      <table class="memname">
-        <tr>
-          <td class="memname">void PlottyFile::setQuadrant </td>
-          <td>(</td>
-          <td class="paramtype">uint8_t&#160;</td>
-          <td class="paramname"><em>quadrant</em></td><td>)</td>
-          <td></td>
-        </tr>
-      </table>
-</div><div class="memdoc">
-<p>Sets the quadrant of this plot. </p><dl class="params"><dt>Parameters</dt><dd>
-  <table class="params">
-    <tr><td class="paramname">quadrant</td><td>quadrant number (1..4) </td></tr>
-  </table>
-  </dd>
-</dl>
-
-<p class="definition">Definition at line <a class="el" href="plottyfile_8cpp_source.html#l00018">18</a> of file <a class="el" href="plottyfile_8cpp_source.html">plottyfile.cpp</a>.</p>
-
-</div>
-</div>
-<a id="a80c2c2e97a454566f9c1f2c51e1d7f3e"></a>
-<h2 class="memtitle"><span class="permalink"><a href="#a80c2c2e97a454566f9c1f2c51e1d7f3e">&#9670;&nbsp;</a></span>setRefX()</h2>
-
-<div class="memitem">
-<div class="memproto">
-      <table class="memname">
-        <tr>
-          <td class="memname">void PlottyFile::setRefX </td>
-          <td>(</td>
-          <td class="paramtype">uint16_t&#160;</td>
-          <td class="paramname"><em>ref_x</em></td><td>)</td>
-          <td></td>
-        </tr>
-      </table>
-</div><div class="memdoc">
-<p>Sets reference (max) value of the x axis </p><dl class="params"><dt>Parameters</dt><dd>
-  <table class="params">
-    <tr><td class="paramname">ref_x</td><td>reference value </td></tr>
-  </table>
-  </dd>
-</dl>
-
-<p class="definition">Definition at line <a class="el" href="plottyfile_8cpp_source.html#l00025">25</a> of file <a class="el" href="plottyfile_8cpp_source.html">plottyfile.cpp</a>.</p>
-
-</div>
-</div>
-<a id="a3a371228ddcc007e97eebe7cc04dffc2"></a>
-<h2 class="memtitle"><span class="permalink"><a href="#a3a371228ddcc007e97eebe7cc04dffc2">&#9670;&nbsp;</a></span>setRefY()</h2>
-
-<div class="memitem">
-<div class="memproto">
-      <table class="memname">
-        <tr>
-          <td class="memname">void PlottyFile::setRefY </td>
-          <td>(</td>
-          <td class="paramtype">uint16_t&#160;</td>
-          <td class="paramname"><em>ref_y</em></td><td>)</td>
-          <td></td>
-        </tr>
-      </table>
-</div><div class="memdoc">
-<p>Sets reference (max) value of the y axis </p><dl class="params"><dt>Parameters</dt><dd>
-  <table class="params">
-    <tr><td class="paramname">ref_y</td><td>reference value </td></tr>
-  </table>
-  </dd>
-</dl>
-
-<p class="definition">Definition at line <a class="el" href="plottyfile_8cpp_source.html#l00030">30</a> of file <a class="el" href="plottyfile_8cpp_source.html">plottyfile.cpp</a>.</p>
-
-</div>
-</div>
-<a id="abbac84109a1e0958a4ca5c270fac0986"></a>
-<h2 class="memtitle"><span class="permalink"><a href="#abbac84109a1e0958a4ca5c270fac0986">&#9670;&nbsp;</a></span>setUnitPara()</h2>
-
-<div class="memitem">
-<div class="memproto">
-      <table class="memname">
-        <tr>
-          <td class="memname">void PlottyFile::setUnitPara </td>
-          <td>(</td>
-          <td class="paramtype">std::string&#160;</td>
-          <td class="paramname"><em>unit_para</em></td><td>)</td>
-          <td></td>
-        </tr>
-      </table>
-</div><div class="memdoc">
-<p>Sets the unit of the parameter. </p><dl class="params"><dt>Parameters</dt><dd>
-  <table class="params">
-    <tr><td class="paramname">para_first</td><td>unit </td></tr>
-  </table>
-  </dd>
-</dl>
-
-<p class="definition">Definition at line <a class="el" href="plottyfile_8cpp_source.html#l00065">65</a> of file <a class="el" href="plottyfile_8cpp_source.html">plottyfile.cpp</a>.</p>
-
-</div>
-</div>
-<a id="ab8d35a841ca9c325fca671cf34e03527"></a>
-<h2 class="memtitle"><span class="permalink"><a href="#ab8d35a841ca9c325fca671cf34e03527">&#9670;&nbsp;</a></span>setUnitX()</h2>
-
-<div class="memitem">
-<div class="memproto">
-      <table class="memname">
-        <tr>
-          <td class="memname">void PlottyFile::setUnitX </td>
-          <td>(</td>
-          <td class="paramtype">std::string&#160;</td>
-          <td class="paramname"><em>unit_x</em></td><td>)</td>
-          <td></td>
-        </tr>
-      </table>
-</div><div class="memdoc">
-<p>Sets the unit of the x axis. </p><dl class="params"><dt>Parameters</dt><dd>
-  <table class="params">
-    <tr><td class="paramname">para_first</td><td>unit </td></tr>
-  </table>
-  </dd>
-</dl>
-
-<p class="definition">Definition at line <a class="el" href="plottyfile_8cpp_source.html#l00045">45</a> of file <a class="el" href="plottyfile_8cpp_source.html">plottyfile.cpp</a>.</p>
-
-</div>
-</div>
-<a id="abb18c814f435926f741f7ceb310f3059"></a>
-<h2 class="memtitle"><span class="permalink"><a href="#abb18c814f435926f741f7ceb310f3059">&#9670;&nbsp;</a></span>setUnitY()</h2>
-
-<div class="memitem">
-<div class="memproto">
-      <table class="memname">
-        <tr>
-          <td class="memname">void PlottyFile::setUnitY </td>
-          <td>(</td>
-          <td class="paramtype">std::string&#160;</td>
-          <td class="paramname"><em>unit_y</em></td><td>)</td>
-          <td></td>
-        </tr>
-      </table>
-</div><div class="memdoc">
-<p>Sets the unit of the y axis. </p><dl class="params"><dt>Parameters</dt><dd>
-  <table class="params">
-    <tr><td class="paramname">para_first</td><td>unit </td></tr>
-  </table>
-  </dd>
-</dl>
-
-<p class="definition">Definition at line <a class="el" href="plottyfile_8cpp_source.html#l00055">55</a> of file <a class="el" href="plottyfile_8cpp_source.html">plottyfile.cpp</a>.</p>
-
-</div>
-</div>
-<a id="a08a115ef10458cadfe76077d623313df"></a>
-<h2 class="memtitle"><span class="permalink"><a href="#a08a115ef10458cadfe76077d623313df">&#9670;&nbsp;</a></span>startPlotty()</h2>
-
-<div class="memitem">
-<div class="memproto">
-      <table class="memname">
-        <tr>
-          <td class="memname">void PlottyFile::startPlotty </td>
-          <td>(</td>
-          <td class="paramtype">std::string&#160;</td>
-          <td class="paramname"><em>filename</em></td><td>)</td>
-          <td></td>
-        </tr>
-      </table>
-</div><div class="memdoc">
-<p>Starts plotty with a plot file. </p><dl class="params"><dt>Parameters</dt><dd>
-  <table class="params">
-    <tr><td class="paramname">filename</td><td>plot path </td></tr>
-  </table>
-  </dd>
-</dl>
-
-<p class="definition">Definition at line <a class="el" href="plottyfile_8cpp_source.html#l00196">196</a> of file <a class="el" href="plottyfile_8cpp_source.html">plottyfile.cpp</a>.</p>
-
-</div>
-</div>
-<a id="a82c348e7fade2edcbc907e7c2bc2e305"></a>
-<h2 class="memtitle"><span class="permalink"><a href="#a82c348e7fade2edcbc907e7c2bc2e305">&#9670;&nbsp;</a></span>writeToFile()</h2>
-
-<div class="memitem">
-<div class="memproto">
-      <table class="memname">
-        <tr>
-          <td class="memname">void PlottyFile::writeToFile </td>
-          <td>(</td>
-          <td class="paramtype">std::string&#160;</td>
-          <td class="paramname"><em>filename</em></td><td>)</td>
-          <td></td>
-        </tr>
-      </table>
-</div><div class="memdoc">
-<p>Saves the <a class="el" href="classPlottyFile.html">PlottyFile</a> in a binary format, ready to open with plotty. </p><dl class="params"><dt>Parameters</dt><dd>
-  <table class="params">
-    <tr><td class="paramname">filename</td><td>desired plot path </td></tr>
-  </table>
-  </dd>
-</dl>
-
-<p class="definition">Definition at line <a class="el" href="plottyfile_8cpp_source.html#l00147">147</a> of file <a class="el" href="plottyfile_8cpp_source.html">plottyfile.cpp</a>.</p>
-
-</div>
-</div>
-<hr/>The documentation for this class was generated from the following files:<ul>
-<li>drv/<a class="el" href="plottyfile_8h_source.html">plottyfile.h</a></li>
-<li>drv/<a class="el" href="plottyfile_8cpp_source.html">plottyfile.cpp</a></li>
-</ul>
-</div><!-- contents -->
-<!-- start footer part -->
-<hr class="footer"/><address class="footer"><small>
-Generated on Fri Jun 7 2019 14:50:45 for B15F by &#160;<a href="http://www.doxygen.org/index.html">
-<img class="footer" src="doxygen.png" alt="doxygen"/>
-</a> 1.8.16
-</small></address>
-</body>
-</html>
diff --git a/docs/html/classTimeoutException-members.html b/docs/html/classTimeoutException-members.html
deleted file mode 100644
index 5dba6b4..0000000
--- a/docs/html/classTimeoutException-members.html
+++ /dev/null
@@ -1,85 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml">
-<head>
-<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
-<meta http-equiv="X-UA-Compatible" content="IE=9"/>
-<meta name="generator" content="Doxygen 1.8.16"/>
-<meta name="viewport" content="width=device-width, initial-scale=1"/>
-<title>B15F: 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">B15F
-   </div>
-   <div id="projectbrief">Board 15 Famulus Edition</div>
-  </td>
- </tr>
- </tbody>
-</table>
-</div>
-<!-- end header part -->
-<!-- Generated by Doxygen 1.8.16 -->
-<script type="text/javascript">
-/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
-var searchBox = new SearchBox("searchBox", "search",false,'Search');
-/* @license-end */
-</script>
-<script type="text/javascript" src="menudata.js"></script>
-<script type="text/javascript" src="menu.js"></script>
-<script type="text/javascript">
-/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
-$(function() {
-  initMenu('',true,false,'search.php','Search');
-  $(document).ready(function() { init_search(); });
-});
-/* @license-end */</script>
-<div id="main-nav"></div>
-<!-- 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">TimeoutException Member List</div>  </div>
-</div><!--header-->
-<div class="contents">
-
-<p>This is the complete list of members for <a class="el" href="classTimeoutException.html">TimeoutException</a>, including all inherited members.</p>
-<table class="directory">
-  <tr class="even"><td class="entry"><a class="el" href="classTimeoutException.html#aa625fc0fae48a67737a98eafb91c9624">msg</a></td><td class="entry"><a class="el" href="classTimeoutException.html">TimeoutException</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
-  <tr><td class="entry"><a class="el" href="classTimeoutException.html#aa45912234da11ffc9dd3594a1bbc0218">TimeoutException</a>(const char *message)</td><td class="entry"><a class="el" href="classTimeoutException.html">TimeoutException</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">explicit</span></td></tr>
-  <tr class="even"><td class="entry"><a class="el" href="classTimeoutException.html#ad6e5c200fbfd276f48a6c1163e2d2988">TimeoutException</a>(const std::string &amp;message)</td><td class="entry"><a class="el" href="classTimeoutException.html">TimeoutException</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">explicit</span></td></tr>
-  <tr><td class="entry"><a class="el" href="classTimeoutException.html#a97eaf01fc39ddb94b060020b42fefd6e">what</a>() const</td><td class="entry"><a class="el" href="classTimeoutException.html">TimeoutException</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">virtual</span></td></tr>
-  <tr class="even"><td class="entry"><a class="el" href="classTimeoutException.html#a2f686b262d2ccffa0090fda9b44ab540">~TimeoutException</a>()=default</td><td class="entry"><a class="el" href="classTimeoutException.html">TimeoutException</a></td><td class="entry"><span class="mlabel">virtual</span></td></tr>
-</table></div><!-- contents -->
-<!-- start footer part -->
-<hr class="footer"/><address class="footer"><small>
-Generated on Fri Jun 7 2019 14:50:45 for B15F by &#160;<a href="http://www.doxygen.org/index.html">
-<img class="footer" src="doxygen.png" alt="doxygen"/>
-</a> 1.8.16
-</small></address>
-</body>
-</html>
diff --git a/docs/html/classTimeoutException.html b/docs/html/classTimeoutException.html
deleted file mode 100644
index e9289b8..0000000
--- a/docs/html/classTimeoutException.html
+++ /dev/null
@@ -1,247 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml">
-<head>
-<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
-<meta http-equiv="X-UA-Compatible" content="IE=9"/>
-<meta name="generator" content="Doxygen 1.8.16"/>
-<meta name="viewport" content="width=device-width, initial-scale=1"/>
-<title>B15F: TimeoutException 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">B15F
-   </div>
-   <div id="projectbrief">Board 15 Famulus Edition</div>
-  </td>
- </tr>
- </tbody>
-</table>
-</div>
-<!-- end header part -->
-<!-- Generated by Doxygen 1.8.16 -->
-<script type="text/javascript">
-/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
-var searchBox = new SearchBox("searchBox", "search",false,'Search');
-/* @license-end */
-</script>
-<script type="text/javascript" src="menudata.js"></script>
-<script type="text/javascript" src="menu.js"></script>
-<script type="text/javascript">
-/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
-$(function() {
-  initMenu('',true,false,'search.php','Search');
-  $(document).ready(function() { init_search(); });
-});
-/* @license-end */</script>
-<div id="main-nav"></div>
-<!-- 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-methods">Public Member Functions</a> &#124;
-<a href="#pro-attribs">Protected Attributes</a> &#124;
-<a href="classTimeoutException-members.html">List of all members</a>  </div>
-  <div class="headertitle">
-<div class="title">TimeoutException Class Reference</div>  </div>
-</div><!--header-->
-<div class="contents">
-
-<p><code>#include &lt;<a class="el" href="timeoutexception_8h_source.html">timeoutexception.h</a>&gt;</code></p>
-<div id="dynsection-0" onclick="return toggleVisibility(this)" class="dynheader closed" style="cursor:pointer;">
-  <img id="dynsection-0-trigger" src="closed.png" alt="+"/> Inheritance diagram for TimeoutException:</div>
-<div id="dynsection-0-summary" class="dynsummary" style="display:block;">
-</div>
-<div id="dynsection-0-content" class="dyncontent" style="display:none;">
- <div class="center">
-  <img src="classTimeoutException.png" alt=""/>
- </div></div>
-<table class="memberdecls">
-<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-methods"></a>
-Public Member Functions</h2></td></tr>
-<tr class="memitem:aa45912234da11ffc9dd3594a1bbc0218"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classTimeoutException.html#aa45912234da11ffc9dd3594a1bbc0218">TimeoutException</a> (const char *message)</td></tr>
-<tr class="separator:aa45912234da11ffc9dd3594a1bbc0218"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ad6e5c200fbfd276f48a6c1163e2d2988"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classTimeoutException.html#ad6e5c200fbfd276f48a6c1163e2d2988">TimeoutException</a> (const std::string &amp;message)</td></tr>
-<tr class="separator:ad6e5c200fbfd276f48a6c1163e2d2988"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a2f686b262d2ccffa0090fda9b44ab540"><td class="memItemLeft" align="right" valign="top">virtual&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classTimeoutException.html#a2f686b262d2ccffa0090fda9b44ab540">~TimeoutException</a> ()=default</td></tr>
-<tr class="separator:a2f686b262d2ccffa0090fda9b44ab540"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a97eaf01fc39ddb94b060020b42fefd6e"><td class="memItemLeft" align="right" valign="top">virtual const char *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classTimeoutException.html#a97eaf01fc39ddb94b060020b42fefd6e">what</a> () const  throw ()</td></tr>
-<tr class="separator:a97eaf01fc39ddb94b060020b42fefd6e"><td class="memSeparator" colspan="2">&#160;</td></tr>
-</table><table class="memberdecls">
-<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pro-attribs"></a>
-Protected Attributes</h2></td></tr>
-<tr class="memitem:aa625fc0fae48a67737a98eafb91c9624"><td class="memItemLeft" align="right" valign="top"><a id="aa625fc0fae48a67737a98eafb91c9624"></a>
-std::string&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classTimeoutException.html#aa625fc0fae48a67737a98eafb91c9624">msg</a></td></tr>
-<tr class="memdesc:aa625fc0fae48a67737a98eafb91c9624"><td class="mdescLeft">&#160;</td><td class="mdescRight">failure description <br /></td></tr>
-<tr class="separator:aa625fc0fae48a67737a98eafb91c9624"><td class="memSeparator" colspan="2">&#160;</td></tr>
-</table>
-<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
-<div class="textblock"><p>Exception for <a class="el" href="classUSART.html">USART</a> related timeouts. </p>
-
-<p class="definition">Definition at line <a class="el" href="timeoutexception_8h_source.html#l00009">9</a> of file <a class="el" href="timeoutexception_8h_source.html">timeoutexception.h</a>.</p>
-</div><h2 class="groupheader">Constructor &amp; Destructor Documentation</h2>
-<a id="aa45912234da11ffc9dd3594a1bbc0218"></a>
-<h2 class="memtitle"><span class="permalink"><a href="#aa45912234da11ffc9dd3594a1bbc0218">&#9670;&nbsp;</a></span>TimeoutException() <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">TimeoutException::TimeoutException </td>
-          <td>(</td>
-          <td class="paramtype">const char *&#160;</td>
-          <td class="paramname"><em>message</em></td><td>)</td>
-          <td></td>
-        </tr>
-      </table>
-  </td>
-  <td class="mlabels-right">
-<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">explicit</span></span>  </td>
-  </tr>
-</table>
-</div><div class="memdoc">
-<p>Constructor </p><dl class="params"><dt>Parameters</dt><dd>
-  <table class="params">
-    <tr><td class="paramname">message</td><td>as c-string </td></tr>
-  </table>
-  </dd>
-</dl>
-
-<p class="definition">Definition at line <a class="el" href="timeoutexception_8h_source.html#l00016">16</a> of file <a class="el" href="timeoutexception_8h_source.html">timeoutexception.h</a>.</p>
-
-</div>
-</div>
-<a id="ad6e5c200fbfd276f48a6c1163e2d2988"></a>
-<h2 class="memtitle"><span class="permalink"><a href="#ad6e5c200fbfd276f48a6c1163e2d2988">&#9670;&nbsp;</a></span>TimeoutException() <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">TimeoutException::TimeoutException </td>
-          <td>(</td>
-          <td class="paramtype">const std::string &amp;&#160;</td>
-          <td class="paramname"><em>message</em></td><td>)</td>
-          <td></td>
-        </tr>
-      </table>
-  </td>
-  <td class="mlabels-right">
-<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">explicit</span></span>  </td>
-  </tr>
-</table>
-</div><div class="memdoc">
-<p>Constructor </p><dl class="params"><dt>Parameters</dt><dd>
-  <table class="params">
-    <tr><td class="paramname">message</td><td>as c++-string </td></tr>
-  </table>
-  </dd>
-</dl>
-
-<p class="definition">Definition at line <a class="el" href="timeoutexception_8h_source.html#l00024">24</a> of file <a class="el" href="timeoutexception_8h_source.html">timeoutexception.h</a>.</p>
-
-</div>
-</div>
-<a id="a2f686b262d2ccffa0090fda9b44ab540"></a>
-<h2 class="memtitle"><span class="permalink"><a href="#a2f686b262d2ccffa0090fda9b44ab540">&#9670;&nbsp;</a></span>~TimeoutException()</h2>
-
-<div class="memitem">
-<div class="memproto">
-<table class="mlabels">
-  <tr>
-  <td class="mlabels-left">
-      <table class="memname">
-        <tr>
-          <td class="memname">virtual TimeoutException::~TimeoutException </td>
-          <td>(</td>
-          <td class="paramname"></td><td>)</td>
-          <td></td>
-        </tr>
-      </table>
-  </td>
-  <td class="mlabels-right">
-<span class="mlabels"><span class="mlabel">virtual</span><span class="mlabel">default</span></span>  </td>
-  </tr>
-</table>
-</div><div class="memdoc">
-<p>Standard-destructor </p>
-
-</div>
-</div>
-<h2 class="groupheader">Member Function Documentation</h2>
-<a id="a97eaf01fc39ddb94b060020b42fefd6e"></a>
-<h2 class="memtitle"><span class="permalink"><a href="#a97eaf01fc39ddb94b060020b42fefd6e">&#9670;&nbsp;</a></span>what()</h2>
-
-<div class="memitem">
-<div class="memproto">
-<table class="mlabels">
-  <tr>
-  <td class="mlabels-left">
-      <table class="memname">
-        <tr>
-          <td class="memname">virtual const char* TimeoutException::what </td>
-          <td>(</td>
-          <td class="paramname"></td><td>)</td>
-          <td> const</td>
-        </tr>
-        <tr>
-          <td align="right">throw </td><td>(</td><td colspan="2"></td>
-        </tr>
-        <tr>
-          <td align="right"></td><td>)</td><td></td><td></td>
-        </tr>
-      </table>
-  </td>
-  <td class="mlabels-right">
-<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">virtual</span></span>  </td>
-  </tr>
-</table>
-</div><div class="memdoc">
-<p>Get failure description </p><dl class="section return"><dt>Returns</dt><dd>error message as c-string </dd></dl>
-
-<p class="definition">Definition at line <a class="el" href="timeoutexception_8h_source.html#l00037">37</a> of file <a class="el" href="timeoutexception_8h_source.html">timeoutexception.h</a>.</p>
-
-</div>
-</div>
-<hr/>The documentation for this class was generated from the following file:<ul>
-<li>drv/<a class="el" href="timeoutexception_8h_source.html">timeoutexception.h</a></li>
-</ul>
-</div><!-- contents -->
-<!-- start footer part -->
-<hr class="footer"/><address class="footer"><small>
-Generated on Fri Jun 7 2019 14:50:45 for B15F by &#160;<a href="http://www.doxygen.org/index.html">
-<img class="footer" src="doxygen.png" alt="doxygen"/>
-</a> 1.8.16
-</small></address>
-</body>
-</html>
diff --git a/docs/html/classTimeoutException.png b/docs/html/classTimeoutException.png
deleted file mode 100644
index d6f464d..0000000
Binary files a/docs/html/classTimeoutException.png and /dev/null differ
diff --git a/docs/html/classUSART-members.html b/docs/html/classUSART-members.html
deleted file mode 100644
index df97eb4..0000000
--- a/docs/html/classUSART-members.html
+++ /dev/null
@@ -1,94 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml">
-<head>
-<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
-<meta http-equiv="X-UA-Compatible" content="IE=9"/>
-<meta name="generator" content="Doxygen 1.8.16"/>
-<meta name="viewport" content="width=device-width, initial-scale=1"/>
-<title>B15F: 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">B15F
-   </div>
-   <div id="projectbrief">Board 15 Famulus Edition</div>
-  </td>
- </tr>
- </tbody>
-</table>
-</div>
-<!-- end header part -->
-<!-- Generated by Doxygen 1.8.16 -->
-<script type="text/javascript">
-/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
-var searchBox = new SearchBox("searchBox", "search",false,'Search');
-/* @license-end */
-</script>
-<script type="text/javascript" src="menudata.js"></script>
-<script type="text/javascript" src="menu.js"></script>
-<script type="text/javascript">
-/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
-$(function() {
-  initMenu('',true,false,'search.php','Search');
-  $(document).ready(function() { init_search(); });
-});
-/* @license-end */</script>
-<div id="main-nav"></div>
-<!-- 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">USART Member List</div>  </div>
-</div><!--header-->
-<div class="contents">
-
-<p>This is the complete list of members for <a class="el" href="classUSART.html">USART</a>, including all inherited members.</p>
-<table class="directory">
-  <tr class="even"><td class="entry"><a class="el" href="classUSART.html#a28a2b4c5ed66b2c3a81196f76884f156">clearInputBuffer</a>(void)</td><td class="entry"><a class="el" href="classUSART.html">USART</a></td><td class="entry"></td></tr>
-  <tr><td class="entry"><a class="el" href="classUSART.html#a756d268a8762c316f91ca3238972b0c1">clearOutputBuffer</a>(void)</td><td class="entry"><a class="el" href="classUSART.html">USART</a></td><td class="entry"></td></tr>
-  <tr class="even"><td class="entry"><a class="el" href="classUSART.html#af80d6291ac1d2df04cfa1d8d27458cc5">closeDevice</a>(void)</td><td class="entry"><a class="el" href="classUSART.html">USART</a></td><td class="entry"></td></tr>
-  <tr><td class="entry"><a class="el" href="classUSART.html#a038d00c0b3d8c0c13c3e7eae5dad7813">drop</a>(uint8_t len)</td><td class="entry"><a class="el" href="classUSART.html">USART</a></td><td class="entry"></td></tr>
-  <tr class="even"><td class="entry"><a class="el" href="classUSART.html#adb6ff4d1cf1af79ca255c5a81780200d">flushOutputBuffer</a>(void)</td><td class="entry"><a class="el" href="classUSART.html">USART</a></td><td class="entry"></td></tr>
-  <tr><td class="entry"><a class="el" href="classUSART.html#a4918672d8069df205378a528b1892db3">getBaudrate</a>(void)</td><td class="entry"><a class="el" href="classUSART.html">USART</a></td><td class="entry"></td></tr>
-  <tr class="even"><td class="entry"><a class="el" href="classUSART.html#a19cf777956a038878fc2d2b58c3d2b41">getTimeout</a>(void)</td><td class="entry"><a class="el" href="classUSART.html">USART</a></td><td class="entry"></td></tr>
-  <tr><td class="entry"><a class="el" href="classUSART.html#a5f7e2abda2ec4a68a5fdb8ee2f8a940a">openDevice</a>(std::string device)</td><td class="entry"><a class="el" href="classUSART.html">USART</a></td><td class="entry"></td></tr>
-  <tr class="even"><td class="entry"><a class="el" href="classUSART.html#a0fdc238203852f00bd750127602b2a6a">receive</a>(uint8_t *buffer, uint16_t offset, uint8_t len)</td><td class="entry"><a class="el" href="classUSART.html">USART</a></td><td class="entry"></td></tr>
-  <tr><td class="entry"><a class="el" href="classUSART.html#aac63918a8b97ae63ee607cfa39e6d88d">setBaudrate</a>(uint32_t baudrate)</td><td class="entry"><a class="el" href="classUSART.html">USART</a></td><td class="entry"></td></tr>
-  <tr class="even"><td class="entry"><a class="el" href="classUSART.html#ad7fe866cebe920784d2b17602824c7ff">setTimeout</a>(uint8_t timeout)</td><td class="entry"><a class="el" href="classUSART.html">USART</a></td><td class="entry"></td></tr>
-  <tr><td class="entry"><a class="el" href="classUSART.html#a41b19dd58f307015b73e154048cd74ca">transmit</a>(uint8_t *buffer, uint16_t offset, uint8_t len)</td><td class="entry"><a class="el" href="classUSART.html">USART</a></td><td class="entry"></td></tr>
-  <tr class="even"><td class="entry"><a class="el" href="classUSART.html#a5daed20dc595c43d87c4c28bb08a7449">USART</a>()=default</td><td class="entry"><a class="el" href="classUSART.html">USART</a></td><td class="entry"><span class="mlabel">explicit</span></td></tr>
-  <tr><td class="entry"><a class="el" href="classUSART.html#a0c8eb1a939ca00921e22f6cbcc7bb749">~USART</a>(void)</td><td class="entry"><a class="el" href="classUSART.html">USART</a></td><td class="entry"><span class="mlabel">virtual</span></td></tr>
-</table></div><!-- contents -->
-<!-- start footer part -->
-<hr class="footer"/><address class="footer"><small>
-Generated on Fri Jun 7 2019 14:50:45 for B15F by &#160;<a href="http://www.doxygen.org/index.html">
-<img class="footer" src="doxygen.png" alt="doxygen"/>
-</a> 1.8.16
-</small></address>
-</body>
-</html>
diff --git a/docs/html/classUSART.html b/docs/html/classUSART.html
deleted file mode 100644
index 1f4672b..0000000
--- a/docs/html/classUSART.html
+++ /dev/null
@@ -1,531 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml">
-<head>
-<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
-<meta http-equiv="X-UA-Compatible" content="IE=9"/>
-<meta name="generator" content="Doxygen 1.8.16"/>
-<meta name="viewport" content="width=device-width, initial-scale=1"/>
-<title>B15F: USART 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">B15F
-   </div>
-   <div id="projectbrief">Board 15 Famulus Edition</div>
-  </td>
- </tr>
- </tbody>
-</table>
-</div>
-<!-- end header part -->
-<!-- Generated by Doxygen 1.8.16 -->
-<script type="text/javascript">
-/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
-var searchBox = new SearchBox("searchBox", "search",false,'Search');
-/* @license-end */
-</script>
-<script type="text/javascript" src="menudata.js"></script>
-<script type="text/javascript" src="menu.js"></script>
-<script type="text/javascript">
-/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
-$(function() {
-  initMenu('',true,false,'search.php','Search');
-  $(document).ready(function() { init_search(); });
-});
-/* @license-end */</script>
-<div id="main-nav"></div>
-<!-- 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-methods">Public Member Functions</a> &#124;
-<a href="classUSART-members.html">List of all members</a>  </div>
-  <div class="headertitle">
-<div class="title">USART Class Reference</div>  </div>
-</div><!--header-->
-<div class="contents">
-
-<p><code>#include &lt;<a class="el" href="usart_8h_source.html">usart.h</a>&gt;</code></p>
-<table class="memberdecls">
-<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-methods"></a>
-Public Member Functions</h2></td></tr>
-<tr class="memitem:a5daed20dc595c43d87c4c28bb08a7449"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classUSART.html#a5daed20dc595c43d87c4c28bb08a7449">USART</a> ()=default</td></tr>
-<tr class="separator:a5daed20dc595c43d87c4c28bb08a7449"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a0c8eb1a939ca00921e22f6cbcc7bb749"><td class="memItemLeft" align="right" valign="top">virtual&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classUSART.html#a0c8eb1a939ca00921e22f6cbcc7bb749">~USART</a> (void)</td></tr>
-<tr class="separator:a0c8eb1a939ca00921e22f6cbcc7bb749"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a5f7e2abda2ec4a68a5fdb8ee2f8a940a"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classUSART.html#a5f7e2abda2ec4a68a5fdb8ee2f8a940a">openDevice</a> (std::string device)</td></tr>
-<tr class="separator:a5f7e2abda2ec4a68a5fdb8ee2f8a940a"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:af80d6291ac1d2df04cfa1d8d27458cc5"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classUSART.html#af80d6291ac1d2df04cfa1d8d27458cc5">closeDevice</a> (void)</td></tr>
-<tr class="separator:af80d6291ac1d2df04cfa1d8d27458cc5"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a28a2b4c5ed66b2c3a81196f76884f156"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classUSART.html#a28a2b4c5ed66b2c3a81196f76884f156">clearInputBuffer</a> (void)</td></tr>
-<tr class="separator:a28a2b4c5ed66b2c3a81196f76884f156"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a756d268a8762c316f91ca3238972b0c1"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classUSART.html#a756d268a8762c316f91ca3238972b0c1">clearOutputBuffer</a> (void)</td></tr>
-<tr class="separator:a756d268a8762c316f91ca3238972b0c1"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:adb6ff4d1cf1af79ca255c5a81780200d"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classUSART.html#adb6ff4d1cf1af79ca255c5a81780200d">flushOutputBuffer</a> (void)</td></tr>
-<tr class="separator:adb6ff4d1cf1af79ca255c5a81780200d"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a41b19dd58f307015b73e154048cd74ca"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classUSART.html#a41b19dd58f307015b73e154048cd74ca">transmit</a> (uint8_t *buffer, uint16_t offset, uint8_t len)</td></tr>
-<tr class="separator:a41b19dd58f307015b73e154048cd74ca"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a0fdc238203852f00bd750127602b2a6a"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classUSART.html#a0fdc238203852f00bd750127602b2a6a">receive</a> (uint8_t *buffer, uint16_t offset, uint8_t len)</td></tr>
-<tr class="separator:a0fdc238203852f00bd750127602b2a6a"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a038d00c0b3d8c0c13c3e7eae5dad7813"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classUSART.html#a038d00c0b3d8c0c13c3e7eae5dad7813">drop</a> (uint8_t len)</td></tr>
-<tr class="separator:a038d00c0b3d8c0c13c3e7eae5dad7813"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a4918672d8069df205378a528b1892db3"><td class="memItemLeft" align="right" valign="top">uint32_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classUSART.html#a4918672d8069df205378a528b1892db3">getBaudrate</a> (void)</td></tr>
-<tr class="separator:a4918672d8069df205378a528b1892db3"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a19cf777956a038878fc2d2b58c3d2b41"><td class="memItemLeft" align="right" valign="top">uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classUSART.html#a19cf777956a038878fc2d2b58c3d2b41">getTimeout</a> (void)</td></tr>
-<tr class="separator:a19cf777956a038878fc2d2b58c3d2b41"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:aac63918a8b97ae63ee607cfa39e6d88d"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classUSART.html#aac63918a8b97ae63ee607cfa39e6d88d">setBaudrate</a> (uint32_t baudrate)</td></tr>
-<tr class="separator:aac63918a8b97ae63ee607cfa39e6d88d"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ad7fe866cebe920784d2b17602824c7ff"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classUSART.html#ad7fe866cebe920784d2b17602824c7ff">setTimeout</a> (uint8_t timeout)</td></tr>
-<tr class="separator:ad7fe866cebe920784d2b17602824c7ff"><td class="memSeparator" colspan="2">&#160;</td></tr>
-</table>
-<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
-<div class="textblock"><p>C++ Wrapper class for termios usart library. </p>
-
-<p class="definition">Definition at line <a class="el" href="usart_8h_source.html#l00016">16</a> of file <a class="el" href="usart_8h_source.html">usart.h</a>.</p>
-</div><h2 class="groupheader">Constructor &amp; Destructor Documentation</h2>
-<a id="a5daed20dc595c43d87c4c28bb08a7449"></a>
-<h2 class="memtitle"><span class="permalink"><a href="#a5daed20dc595c43d87c4c28bb08a7449">&#9670;&nbsp;</a></span>USART()</h2>
-
-<div class="memitem">
-<div class="memproto">
-<table class="mlabels">
-  <tr>
-  <td class="mlabels-left">
-      <table class="memname">
-        <tr>
-          <td class="memname">USART::USART </td>
-          <td>(</td>
-          <td class="paramname"></td><td>)</td>
-          <td></td>
-        </tr>
-      </table>
-  </td>
-  <td class="mlabels-right">
-<span class="mlabels"><span class="mlabel">explicit</span><span class="mlabel">default</span></span>  </td>
-  </tr>
-</table>
-</div><div class="memdoc">
-<p>Standard-Konstruktor </p>
-
-</div>
-</div>
-<a id="a0c8eb1a939ca00921e22f6cbcc7bb749"></a>
-<h2 class="memtitle"><span class="permalink"><a href="#a0c8eb1a939ca00921e22f6cbcc7bb749">&#9670;&nbsp;</a></span>~USART()</h2>
-
-<div class="memitem">
-<div class="memproto">
-<table class="mlabels">
-  <tr>
-  <td class="mlabels-left">
-      <table class="memname">
-        <tr>
-          <td class="memname">USART::~USART </td>
-          <td>(</td>
-          <td class="paramtype">void&#160;</td>
-          <td class="paramname"></td><td>)</td>
-          <td></td>
-        </tr>
-      </table>
-  </td>
-  <td class="mlabels-right">
-<span class="mlabels"><span class="mlabel">virtual</span></span>  </td>
-  </tr>
-</table>
-</div><div class="memdoc">
-<p>Destructor, ruft automatisch <a class="el" href="classUSART.html#af80d6291ac1d2df04cfa1d8d27458cc5">closeDevice()</a> auf </p>
-
-<p class="definition">Definition at line <a class="el" href="usart_8cpp_source.html#l00004">4</a> of file <a class="el" href="usart_8cpp_source.html">usart.cpp</a>.</p>
-
-</div>
-</div>
-<h2 class="groupheader">Member Function Documentation</h2>
-<a id="a28a2b4c5ed66b2c3a81196f76884f156"></a>
-<h2 class="memtitle"><span class="permalink"><a href="#a28a2b4c5ed66b2c3a81196f76884f156">&#9670;&nbsp;</a></span>clearInputBuffer()</h2>
-
-<div class="memitem">
-<div class="memproto">
-      <table class="memname">
-        <tr>
-          <td class="memname">void USART::clearInputBuffer </td>
-          <td>(</td>
-          <td class="paramtype">void&#160;</td>
-          <td class="paramname"></td><td>)</td>
-          <td></td>
-        </tr>
-      </table>
-</div><div class="memdoc">
-<p>Verwirft Daten, die bereits im Puffer liegen, aber noch nicht gelesen wurden </p><dl class="exception"><dt>Exceptions</dt><dd>
-  <table class="exception">
-    <tr><td class="paramname"><a class="el" href="classUSARTException.html">USARTException</a></td><td></td></tr>
-  </table>
-  </dd>
-</dl>
-
-<p class="definition">Definition at line <a class="el" href="usart_8cpp_source.html#l00054">54</a> of file <a class="el" href="usart_8cpp_source.html">usart.cpp</a>.</p>
-
-</div>
-</div>
-<a id="a756d268a8762c316f91ca3238972b0c1"></a>
-<h2 class="memtitle"><span class="permalink"><a href="#a756d268a8762c316f91ca3238972b0c1">&#9670;&nbsp;</a></span>clearOutputBuffer()</h2>
-
-<div class="memitem">
-<div class="memproto">
-      <table class="memname">
-        <tr>
-          <td class="memname">void USART::clearOutputBuffer </td>
-          <td>(</td>
-          <td class="paramtype">void&#160;</td>
-          <td class="paramname"></td><td>)</td>
-          <td></td>
-        </tr>
-      </table>
-</div><div class="memdoc">
-<p>Verwirft Daten, die bereits im Puffer liegen, aber noch nicht gesendet wurden </p><dl class="exception"><dt>Exceptions</dt><dd>
-  <table class="exception">
-    <tr><td class="paramname"><a class="el" href="classUSARTException.html">USARTException</a></td><td></td></tr>
-  </table>
-  </dd>
-</dl>
-
-<p class="definition">Definition at line <a class="el" href="usart_8cpp_source.html#l00061">61</a> of file <a class="el" href="usart_8cpp_source.html">usart.cpp</a>.</p>
-
-</div>
-</div>
-<a id="af80d6291ac1d2df04cfa1d8d27458cc5"></a>
-<h2 class="memtitle"><span class="permalink"><a href="#af80d6291ac1d2df04cfa1d8d27458cc5">&#9670;&nbsp;</a></span>closeDevice()</h2>
-
-<div class="memitem">
-<div class="memproto">
-      <table class="memname">
-        <tr>
-          <td class="memname">void USART::closeDevice </td>
-          <td>(</td>
-          <td class="paramtype">void&#160;</td>
-          <td class="paramname"></td><td>)</td>
-          <td></td>
-        </tr>
-      </table>
-</div><div class="memdoc">
-<p>Schließt die <a class="el" href="classUSART.html">USART</a> Schnittstelle </p><dl class="exception"><dt>Exceptions</dt><dd>
-  <table class="exception">
-    <tr><td class="paramname"><a class="el" href="classUSARTException.html">USARTException</a></td><td></td></tr>
-  </table>
-  </dd>
-</dl>
-
-<p class="definition">Definition at line <a class="el" href="usart_8cpp_source.html#l00043">43</a> of file <a class="el" href="usart_8cpp_source.html">usart.cpp</a>.</p>
-
-</div>
-</div>
-<a id="a038d00c0b3d8c0c13c3e7eae5dad7813"></a>
-<h2 class="memtitle"><span class="permalink"><a href="#a038d00c0b3d8c0c13c3e7eae5dad7813">&#9670;&nbsp;</a></span>drop()</h2>
-
-<div class="memitem">
-<div class="memproto">
-      <table class="memname">
-        <tr>
-          <td class="memname">void USART::drop </td>
-          <td>(</td>
-          <td class="paramtype">uint8_t&#160;</td>
-          <td class="paramname"><em>len</em></td><td>)</td>
-          <td></td>
-        </tr>
-      </table>
-</div><div class="memdoc">
-<p>Receives n bytes but discards them </p><dl class="params"><dt>Parameters</dt><dd>
-  <table class="params">
-    <tr><td class="paramname">len</td><td>count of bytes to receive </td></tr>
-  </table>
-  </dd>
-</dl>
-<dl class="exception"><dt>Exceptions</dt><dd>
-  <table class="exception">
-    <tr><td class="paramname"><a class="el" href="classUSARTException.html">USARTException</a></td><td></td></tr>
-  </table>
-  </dd>
-</dl>
-
-<p class="definition">Definition at line <a class="el" href="usart_8cpp_source.html#l00114">114</a> of file <a class="el" href="usart_8cpp_source.html">usart.cpp</a>.</p>
-
-</div>
-</div>
-<a id="adb6ff4d1cf1af79ca255c5a81780200d"></a>
-<h2 class="memtitle"><span class="permalink"><a href="#adb6ff4d1cf1af79ca255c5a81780200d">&#9670;&nbsp;</a></span>flushOutputBuffer()</h2>
-
-<div class="memitem">
-<div class="memproto">
-      <table class="memname">
-        <tr>
-          <td class="memname">void USART::flushOutputBuffer </td>
-          <td>(</td>
-          <td class="paramtype">void&#160;</td>
-          <td class="paramname"></td><td>)</td>
-          <td></td>
-        </tr>
-      </table>
-</div><div class="memdoc">
-<p>Schreibt Daten, die bereits im Puffer liegen, aber noch nicht gesendet wurden </p><dl class="exception"><dt>Exceptions</dt><dd>
-  <table class="exception">
-    <tr><td class="paramname"><a class="el" href="classUSARTException.html">USARTException</a></td><td></td></tr>
-  </table>
-  </dd>
-</dl>
-
-<p class="definition">Definition at line <a class="el" href="usart_8cpp_source.html#l00068">68</a> of file <a class="el" href="usart_8cpp_source.html">usart.cpp</a>.</p>
-
-</div>
-</div>
-<a id="a4918672d8069df205378a528b1892db3"></a>
-<h2 class="memtitle"><span class="permalink"><a href="#a4918672d8069df205378a528b1892db3">&#9670;&nbsp;</a></span>getBaudrate()</h2>
-
-<div class="memitem">
-<div class="memproto">
-      <table class="memname">
-        <tr>
-          <td class="memname">uint32_t USART::getBaudrate </td>
-          <td>(</td>
-          <td class="paramtype">void&#160;</td>
-          <td class="paramname"></td><td>)</td>
-          <td></td>
-        </tr>
-      </table>
-</div><div class="memdoc">
-<p>Liefert die eingestellte Baudrate <b>Änderungen werden erst nach einem open() wirksam</b> </p>
-
-<p class="definition">Definition at line <a class="el" href="usart_8cpp_source.html#l00121">121</a> of file <a class="el" href="usart_8cpp_source.html">usart.cpp</a>.</p>
-
-</div>
-</div>
-<a id="a19cf777956a038878fc2d2b58c3d2b41"></a>
-<h2 class="memtitle"><span class="permalink"><a href="#a19cf777956a038878fc2d2b58c3d2b41">&#9670;&nbsp;</a></span>getTimeout()</h2>
-
-<div class="memitem">
-<div class="memproto">
-      <table class="memname">
-        <tr>
-          <td class="memname">uint8_t USART::getTimeout </td>
-          <td>(</td>
-          <td class="paramtype">void&#160;</td>
-          <td class="paramname"></td><td>)</td>
-          <td></td>
-        </tr>
-      </table>
-</div><div class="memdoc">
-<p>Liefert den eingestellten Timeout (in Dezisekunden) <b>Änderungen werden erst nach einem open() wirksam</b> </p>
-
-<p class="definition">Definition at line <a class="el" href="usart_8cpp_source.html#l00126">126</a> of file <a class="el" href="usart_8cpp_source.html">usart.cpp</a>.</p>
-
-</div>
-</div>
-<a id="a5f7e2abda2ec4a68a5fdb8ee2f8a940a"></a>
-<h2 class="memtitle"><span class="permalink"><a href="#a5f7e2abda2ec4a68a5fdb8ee2f8a940a">&#9670;&nbsp;</a></span>openDevice()</h2>
-
-<div class="memitem">
-<div class="memproto">
-      <table class="memname">
-        <tr>
-          <td class="memname">void USART::openDevice </td>
-          <td>(</td>
-          <td class="paramtype">std::string&#160;</td>
-          <td class="paramname"><em>device</em></td><td>)</td>
-          <td></td>
-        </tr>
-      </table>
-</div><div class="memdoc">
-<p>Öffnet die <a class="el" href="classUSART.html">USART</a> Schnittstelle </p><dl class="params"><dt>Parameters</dt><dd>
-  <table class="params">
-    <tr><td class="paramname">device</td><td>Linux-Gerätepfad </td></tr>
-  </table>
-  </dd>
-</dl>
-<dl class="exception"><dt>Exceptions</dt><dd>
-  <table class="exception">
-    <tr><td class="paramname"><a class="el" href="classUSARTException.html">USARTException</a></td><td></td></tr>
-  </table>
-  </dd>
-</dl>
-
-<p class="definition">Definition at line <a class="el" href="usart_8cpp_source.html#l00009">9</a> of file <a class="el" href="usart_8cpp_source.html">usart.cpp</a>.</p>
-
-</div>
-</div>
-<a id="a0fdc238203852f00bd750127602b2a6a"></a>
-<h2 class="memtitle"><span class="permalink"><a href="#a0fdc238203852f00bd750127602b2a6a">&#9670;&nbsp;</a></span>receive()</h2>
-
-<div class="memitem">
-<div class="memproto">
-      <table class="memname">
-        <tr>
-          <td class="memname">void USART::receive </td>
-          <td>(</td>
-          <td class="paramtype">uint8_t *&#160;</td>
-          <td class="paramname"><em>buffer</em>, </td>
-        </tr>
-        <tr>
-          <td class="paramkey"></td>
-          <td></td>
-          <td class="paramtype">uint16_t&#160;</td>
-          <td class="paramname"><em>offset</em>, </td>
-        </tr>
-        <tr>
-          <td class="paramkey"></td>
-          <td></td>
-          <td class="paramtype">uint8_t&#160;</td>
-          <td class="paramname"><em>len</em>&#160;</td>
-        </tr>
-        <tr>
-          <td></td>
-          <td>)</td>
-          <td></td><td></td>
-        </tr>
-      </table>
-</div><div class="memdoc">
-<p>Receives n bytes from <a class="el" href="classUSART.html">USART</a> and writes them into the buffer </p><dl class="params"><dt>Parameters</dt><dd>
-  <table class="params">
-    <tr><td class="paramname">buffer</td><td>target buffer </td></tr>
-    <tr><td class="paramname">offset</td><td>in buffer (mostly 0) </td></tr>
-    <tr><td class="paramname">len</td><td>count of bytes to receive </td></tr>
-  </table>
-  </dd>
-</dl>
-<dl class="exception"><dt>Exceptions</dt><dd>
-  <table class="exception">
-    <tr><td class="paramname"><a class="el" href="classUSARTException.html">USARTException</a></td><td></td></tr>
-  </table>
-  </dd>
-</dl>
-
-<p class="definition">Definition at line <a class="el" href="usart_8cpp_source.html#l00084">84</a> of file <a class="el" href="usart_8cpp_source.html">usart.cpp</a>.</p>
-
-</div>
-</div>
-<a id="aac63918a8b97ae63ee607cfa39e6d88d"></a>
-<h2 class="memtitle"><span class="permalink"><a href="#aac63918a8b97ae63ee607cfa39e6d88d">&#9670;&nbsp;</a></span>setBaudrate()</h2>
-
-<div class="memitem">
-<div class="memproto">
-      <table class="memname">
-        <tr>
-          <td class="memname">void USART::setBaudrate </td>
-          <td>(</td>
-          <td class="paramtype">uint32_t&#160;</td>
-          <td class="paramname"><em>baudrate</em></td><td>)</td>
-          <td></td>
-        </tr>
-      </table>
-</div><div class="memdoc">
-<p>Setzt die Baudrate <b>Änderungen werden erst nach <a class="el" href="classUSART.html#a5f7e2abda2ec4a68a5fdb8ee2f8a940a">openDevice()</a> wirksam</b> </p>
-
-<p class="definition">Definition at line <a class="el" href="usart_8cpp_source.html#l00131">131</a> of file <a class="el" href="usart_8cpp_source.html">usart.cpp</a>.</p>
-
-</div>
-</div>
-<a id="ad7fe866cebe920784d2b17602824c7ff"></a>
-<h2 class="memtitle"><span class="permalink"><a href="#ad7fe866cebe920784d2b17602824c7ff">&#9670;&nbsp;</a></span>setTimeout()</h2>
-
-<div class="memitem">
-<div class="memproto">
-      <table class="memname">
-        <tr>
-          <td class="memname">void USART::setTimeout </td>
-          <td>(</td>
-          <td class="paramtype">uint8_t&#160;</td>
-          <td class="paramname"><em>timeout</em></td><td>)</td>
-          <td></td>
-        </tr>
-      </table>
-</div><div class="memdoc">
-<p>Setzt den Timeout (in Dezisekunden) <b>Änderungen werden erst nach <a class="el" href="classUSART.html#a5f7e2abda2ec4a68a5fdb8ee2f8a940a">openDevice()</a> wirksam</b> </p>
-
-<p class="definition">Definition at line <a class="el" href="usart_8cpp_source.html#l00136">136</a> of file <a class="el" href="usart_8cpp_source.html">usart.cpp</a>.</p>
-
-</div>
-</div>
-<a id="a41b19dd58f307015b73e154048cd74ca"></a>
-<h2 class="memtitle"><span class="permalink"><a href="#a41b19dd58f307015b73e154048cd74ca">&#9670;&nbsp;</a></span>transmit()</h2>
-
-<div class="memitem">
-<div class="memproto">
-      <table class="memname">
-        <tr>
-          <td class="memname">void USART::transmit </td>
-          <td>(</td>
-          <td class="paramtype">uint8_t *&#160;</td>
-          <td class="paramname"><em>buffer</em>, </td>
-        </tr>
-        <tr>
-          <td class="paramkey"></td>
-          <td></td>
-          <td class="paramtype">uint16_t&#160;</td>
-          <td class="paramname"><em>offset</em>, </td>
-        </tr>
-        <tr>
-          <td class="paramkey"></td>
-          <td></td>
-          <td class="paramtype">uint8_t&#160;</td>
-          <td class="paramname"><em>len</em>&#160;</td>
-        </tr>
-        <tr>
-          <td></td>
-          <td>)</td>
-          <td></td><td></td>
-        </tr>
-      </table>
-</div><div class="memdoc">
-<p>Sends n bytes from the buffer over <a class="el" href="classUSART.html">USART</a> </p><dl class="params"><dt>Parameters</dt><dd>
-  <table class="params">
-    <tr><td class="paramname">buffer</td><td>target buffer </td></tr>
-    <tr><td class="paramname">offset</td><td>in buffer (mostly 0) </td></tr>
-    <tr><td class="paramname">len</td><td>count of bytes to send </td></tr>
-  </table>
-  </dd>
-</dl>
-<dl class="exception"><dt>Exceptions</dt><dd>
-  <table class="exception">
-    <tr><td class="paramname"><a class="el" href="classUSARTException.html">USARTException</a></td><td></td></tr>
-  </table>
-  </dd>
-</dl>
-
-<p class="definition">Definition at line <a class="el" href="usart_8cpp_source.html#l00075">75</a> of file <a class="el" href="usart_8cpp_source.html">usart.cpp</a>.</p>
-
-</div>
-</div>
-<hr/>The documentation for this class was generated from the following files:<ul>
-<li>drv/<a class="el" href="usart_8h_source.html">usart.h</a></li>
-<li>drv/<a class="el" href="usart_8cpp_source.html">usart.cpp</a></li>
-</ul>
-</div><!-- contents -->
-<!-- start footer part -->
-<hr class="footer"/><address class="footer"><small>
-Generated on Fri Jun 7 2019 14:50:45 for B15F by &#160;<a href="http://www.doxygen.org/index.html">
-<img class="footer" src="doxygen.png" alt="doxygen"/>
-</a> 1.8.16
-</small></address>
-</body>
-</html>
diff --git a/docs/html/classUSARTException-members.html b/docs/html/classUSARTException-members.html
deleted file mode 100644
index 8b5d1a2..0000000
--- a/docs/html/classUSARTException-members.html
+++ /dev/null
@@ -1,85 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml">
-<head>
-<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
-<meta http-equiv="X-UA-Compatible" content="IE=9"/>
-<meta name="generator" content="Doxygen 1.8.16"/>
-<meta name="viewport" content="width=device-width, initial-scale=1"/>
-<title>B15F: 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">B15F
-   </div>
-   <div id="projectbrief">Board 15 Famulus Edition</div>
-  </td>
- </tr>
- </tbody>
-</table>
-</div>
-<!-- end header part -->
-<!-- Generated by Doxygen 1.8.16 -->
-<script type="text/javascript">
-/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
-var searchBox = new SearchBox("searchBox", "search",false,'Search');
-/* @license-end */
-</script>
-<script type="text/javascript" src="menudata.js"></script>
-<script type="text/javascript" src="menu.js"></script>
-<script type="text/javascript">
-/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
-$(function() {
-  initMenu('',true,false,'search.php','Search');
-  $(document).ready(function() { init_search(); });
-});
-/* @license-end */</script>
-<div id="main-nav"></div>
-<!-- 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">USARTException Member List</div>  </div>
-</div><!--header-->
-<div class="contents">
-
-<p>This is the complete list of members for <a class="el" href="classUSARTException.html">USARTException</a>, including all inherited members.</p>
-<table class="directory">
-  <tr class="even"><td class="entry"><a class="el" href="classUSARTException.html#a14c80df95f216d221aa97cffbcd8dd79">msg</a></td><td class="entry"><a class="el" href="classUSARTException.html">USARTException</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
-  <tr><td class="entry"><a class="el" href="classUSARTException.html#a3c359db129825703b91392d5128cf93d">USARTException</a>(const char *message)</td><td class="entry"><a class="el" href="classUSARTException.html">USARTException</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">explicit</span></td></tr>
-  <tr class="even"><td class="entry"><a class="el" href="classUSARTException.html#a643c0a8b7f0d81e2f1693a75b378e6c2">USARTException</a>(const std::string &amp;message)</td><td class="entry"><a class="el" href="classUSARTException.html">USARTException</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">explicit</span></td></tr>
-  <tr><td class="entry"><a class="el" href="classUSARTException.html#a2af5e3c00cd0585c7427c2e0420a8f15">what</a>() const</td><td class="entry"><a class="el" href="classUSARTException.html">USARTException</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">virtual</span></td></tr>
-  <tr class="even"><td class="entry"><a class="el" href="classUSARTException.html#a0e008b3cb4974859e6bc8c8f8eb480be">~USARTException</a>()=default</td><td class="entry"><a class="el" href="classUSARTException.html">USARTException</a></td><td class="entry"><span class="mlabel">virtual</span></td></tr>
-</table></div><!-- contents -->
-<!-- start footer part -->
-<hr class="footer"/><address class="footer"><small>
-Generated on Fri Jun 7 2019 14:50:45 for B15F by &#160;<a href="http://www.doxygen.org/index.html">
-<img class="footer" src="doxygen.png" alt="doxygen"/>
-</a> 1.8.16
-</small></address>
-</body>
-</html>
diff --git a/docs/html/classUSARTException.html b/docs/html/classUSARTException.html
deleted file mode 100644
index 1492eee..0000000
--- a/docs/html/classUSARTException.html
+++ /dev/null
@@ -1,247 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml">
-<head>
-<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
-<meta http-equiv="X-UA-Compatible" content="IE=9"/>
-<meta name="generator" content="Doxygen 1.8.16"/>
-<meta name="viewport" content="width=device-width, initial-scale=1"/>
-<title>B15F: USARTException 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">B15F
-   </div>
-   <div id="projectbrief">Board 15 Famulus Edition</div>
-  </td>
- </tr>
- </tbody>
-</table>
-</div>
-<!-- end header part -->
-<!-- Generated by Doxygen 1.8.16 -->
-<script type="text/javascript">
-/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
-var searchBox = new SearchBox("searchBox", "search",false,'Search');
-/* @license-end */
-</script>
-<script type="text/javascript" src="menudata.js"></script>
-<script type="text/javascript" src="menu.js"></script>
-<script type="text/javascript">
-/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
-$(function() {
-  initMenu('',true,false,'search.php','Search');
-  $(document).ready(function() { init_search(); });
-});
-/* @license-end */</script>
-<div id="main-nav"></div>
-<!-- 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-methods">Public Member Functions</a> &#124;
-<a href="#pro-attribs">Protected Attributes</a> &#124;
-<a href="classUSARTException-members.html">List of all members</a>  </div>
-  <div class="headertitle">
-<div class="title">USARTException Class Reference</div>  </div>
-</div><!--header-->
-<div class="contents">
-
-<p><code>#include &lt;<a class="el" href="usartexception_8h_source.html">usartexception.h</a>&gt;</code></p>
-<div id="dynsection-0" onclick="return toggleVisibility(this)" class="dynheader closed" style="cursor:pointer;">
-  <img id="dynsection-0-trigger" src="closed.png" alt="+"/> Inheritance diagram for USARTException:</div>
-<div id="dynsection-0-summary" class="dynsummary" style="display:block;">
-</div>
-<div id="dynsection-0-content" class="dyncontent" style="display:none;">
- <div class="center">
-  <img src="classUSARTException.png" alt=""/>
- </div></div>
-<table class="memberdecls">
-<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-methods"></a>
-Public Member Functions</h2></td></tr>
-<tr class="memitem:a3c359db129825703b91392d5128cf93d"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classUSARTException.html#a3c359db129825703b91392d5128cf93d">USARTException</a> (const char *message)</td></tr>
-<tr class="separator:a3c359db129825703b91392d5128cf93d"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a643c0a8b7f0d81e2f1693a75b378e6c2"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classUSARTException.html#a643c0a8b7f0d81e2f1693a75b378e6c2">USARTException</a> (const std::string &amp;message)</td></tr>
-<tr class="separator:a643c0a8b7f0d81e2f1693a75b378e6c2"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a0e008b3cb4974859e6bc8c8f8eb480be"><td class="memItemLeft" align="right" valign="top">virtual&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classUSARTException.html#a0e008b3cb4974859e6bc8c8f8eb480be">~USARTException</a> ()=default</td></tr>
-<tr class="separator:a0e008b3cb4974859e6bc8c8f8eb480be"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a2af5e3c00cd0585c7427c2e0420a8f15"><td class="memItemLeft" align="right" valign="top">virtual const char *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classUSARTException.html#a2af5e3c00cd0585c7427c2e0420a8f15">what</a> () const  throw ()</td></tr>
-<tr class="separator:a2af5e3c00cd0585c7427c2e0420a8f15"><td class="memSeparator" colspan="2">&#160;</td></tr>
-</table><table class="memberdecls">
-<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pro-attribs"></a>
-Protected Attributes</h2></td></tr>
-<tr class="memitem:a14c80df95f216d221aa97cffbcd8dd79"><td class="memItemLeft" align="right" valign="top"><a id="a14c80df95f216d221aa97cffbcd8dd79"></a>
-std::string&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classUSARTException.html#a14c80df95f216d221aa97cffbcd8dd79">msg</a></td></tr>
-<tr class="memdesc:a14c80df95f216d221aa97cffbcd8dd79"><td class="mdescLeft">&#160;</td><td class="mdescRight">failure description <br /></td></tr>
-<tr class="separator:a14c80df95f216d221aa97cffbcd8dd79"><td class="memSeparator" colspan="2">&#160;</td></tr>
-</table>
-<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
-<div class="textblock"><p>Exception for <a class="el" href="classUSART.html">USART</a> problems, for instance buffer overflow. </p>
-
-<p class="definition">Definition at line <a class="el" href="usartexception_8h_source.html#l00009">9</a> of file <a class="el" href="usartexception_8h_source.html">usartexception.h</a>.</p>
-</div><h2 class="groupheader">Constructor &amp; Destructor Documentation</h2>
-<a id="a3c359db129825703b91392d5128cf93d"></a>
-<h2 class="memtitle"><span class="permalink"><a href="#a3c359db129825703b91392d5128cf93d">&#9670;&nbsp;</a></span>USARTException() <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">USARTException::USARTException </td>
-          <td>(</td>
-          <td class="paramtype">const char *&#160;</td>
-          <td class="paramname"><em>message</em></td><td>)</td>
-          <td></td>
-        </tr>
-      </table>
-  </td>
-  <td class="mlabels-right">
-<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">explicit</span></span>  </td>
-  </tr>
-</table>
-</div><div class="memdoc">
-<p>Constructor </p><dl class="params"><dt>Parameters</dt><dd>
-  <table class="params">
-    <tr><td class="paramname">message</td><td>as c-string </td></tr>
-  </table>
-  </dd>
-</dl>
-
-<p class="definition">Definition at line <a class="el" href="usartexception_8h_source.html#l00016">16</a> of file <a class="el" href="usartexception_8h_source.html">usartexception.h</a>.</p>
-
-</div>
-</div>
-<a id="a643c0a8b7f0d81e2f1693a75b378e6c2"></a>
-<h2 class="memtitle"><span class="permalink"><a href="#a643c0a8b7f0d81e2f1693a75b378e6c2">&#9670;&nbsp;</a></span>USARTException() <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">USARTException::USARTException </td>
-          <td>(</td>
-          <td class="paramtype">const std::string &amp;&#160;</td>
-          <td class="paramname"><em>message</em></td><td>)</td>
-          <td></td>
-        </tr>
-      </table>
-  </td>
-  <td class="mlabels-right">
-<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">explicit</span></span>  </td>
-  </tr>
-</table>
-</div><div class="memdoc">
-<p>Constructor </p><dl class="params"><dt>Parameters</dt><dd>
-  <table class="params">
-    <tr><td class="paramname">message</td><td>as c++-string </td></tr>
-  </table>
-  </dd>
-</dl>
-
-<p class="definition">Definition at line <a class="el" href="usartexception_8h_source.html#l00024">24</a> of file <a class="el" href="usartexception_8h_source.html">usartexception.h</a>.</p>
-
-</div>
-</div>
-<a id="a0e008b3cb4974859e6bc8c8f8eb480be"></a>
-<h2 class="memtitle"><span class="permalink"><a href="#a0e008b3cb4974859e6bc8c8f8eb480be">&#9670;&nbsp;</a></span>~USARTException()</h2>
-
-<div class="memitem">
-<div class="memproto">
-<table class="mlabels">
-  <tr>
-  <td class="mlabels-left">
-      <table class="memname">
-        <tr>
-          <td class="memname">virtual USARTException::~USARTException </td>
-          <td>(</td>
-          <td class="paramname"></td><td>)</td>
-          <td></td>
-        </tr>
-      </table>
-  </td>
-  <td class="mlabels-right">
-<span class="mlabels"><span class="mlabel">virtual</span><span class="mlabel">default</span></span>  </td>
-  </tr>
-</table>
-</div><div class="memdoc">
-<p>Standard-destructor </p>
-
-</div>
-</div>
-<h2 class="groupheader">Member Function Documentation</h2>
-<a id="a2af5e3c00cd0585c7427c2e0420a8f15"></a>
-<h2 class="memtitle"><span class="permalink"><a href="#a2af5e3c00cd0585c7427c2e0420a8f15">&#9670;&nbsp;</a></span>what()</h2>
-
-<div class="memitem">
-<div class="memproto">
-<table class="mlabels">
-  <tr>
-  <td class="mlabels-left">
-      <table class="memname">
-        <tr>
-          <td class="memname">virtual const char* USARTException::what </td>
-          <td>(</td>
-          <td class="paramname"></td><td>)</td>
-          <td> const</td>
-        </tr>
-        <tr>
-          <td align="right">throw </td><td>(</td><td colspan="2"></td>
-        </tr>
-        <tr>
-          <td align="right"></td><td>)</td><td></td><td></td>
-        </tr>
-      </table>
-  </td>
-  <td class="mlabels-right">
-<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">virtual</span></span>  </td>
-  </tr>
-</table>
-</div><div class="memdoc">
-<p>Get failure description </p><dl class="section return"><dt>Returns</dt><dd>error message as c-string </dd></dl>
-
-<p class="definition">Definition at line <a class="el" href="usartexception_8h_source.html#l00037">37</a> of file <a class="el" href="usartexception_8h_source.html">usartexception.h</a>.</p>
-
-</div>
-</div>
-<hr/>The documentation for this class was generated from the following file:<ul>
-<li>drv/<a class="el" href="usartexception_8h_source.html">usartexception.h</a></li>
-</ul>
-</div><!-- contents -->
-<!-- start footer part -->
-<hr class="footer"/><address class="footer"><small>
-Generated on Fri Jun 7 2019 14:50:45 for B15F by &#160;<a href="http://www.doxygen.org/index.html">
-<img class="footer" src="doxygen.png" alt="doxygen"/>
-</a> 1.8.16
-</small></address>
-</body>
-</html>
diff --git a/docs/html/classUSARTException.png b/docs/html/classUSARTException.png
deleted file mode 100644
index 0c9d8a0..0000000
Binary files a/docs/html/classUSARTException.png and /dev/null differ
diff --git a/docs/html/classView-members.html b/docs/html/classView-members.html
deleted file mode 100644
index c5194df..0000000
--- a/docs/html/classView-members.html
+++ /dev/null
@@ -1,97 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml">
-<head>
-<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
-<meta http-equiv="X-UA-Compatible" content="IE=9"/>
-<meta name="generator" content="Doxygen 1.8.16"/>
-<meta name="viewport" content="width=device-width, initial-scale=1"/>
-<title>B15F: 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">B15F
-   </div>
-   <div id="projectbrief">Board 15 Famulus Edition</div>
-  </td>
- </tr>
- </tbody>
-</table>
-</div>
-<!-- end header part -->
-<!-- Generated by Doxygen 1.8.16 -->
-<script type="text/javascript">
-/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
-var searchBox = new SearchBox("searchBox", "search",false,'Search');
-/* @license-end */
-</script>
-<script type="text/javascript" src="menudata.js"></script>
-<script type="text/javascript" src="menu.js"></script>
-<script type="text/javascript">
-/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
-$(function() {
-  initMenu('',true,false,'search.php','Search');
-  $(document).ready(function() { init_search(); });
-});
-/* @license-end */</script>
-<div id="main-nav"></div>
-<!-- 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">View Member List</div>  </div>
-</div><!--header-->
-<div class="contents">
-
-<p>This is the complete list of members for <a class="el" href="classView.html">View</a>, including all inherited members.</p>
-<table class="directory">
-  <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>calls</b> (defined in <a class="el" href="classView.html">View</a>)</td><td class="entry"><a class="el" href="classView.html">View</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
-  <tr bgcolor="#f0f0f0"><td class="entry"><b>draw</b>(void)=0 (defined in <a class="el" href="classView.html">View</a>)</td><td class="entry"><a class="el" href="classView.html">View</a></td><td class="entry"><span class="mlabel">pure virtual</span></td></tr>
-  <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>getWinContext</b>(void) (defined in <a class="el" href="classView.html">View</a>)</td><td class="entry"><a class="el" href="classView.html">View</a></td><td class="entry"><span class="mlabel">static</span></td></tr>
-  <tr bgcolor="#f0f0f0"><td class="entry"><b>height</b> (defined in <a class="el" href="classView.html">View</a>)</td><td class="entry"><a class="el" href="classView.html">View</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
-  <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>KEY_ENT</b> (defined in <a class="el" href="classView.html">View</a>)</td><td class="entry"><a class="el" href="classView.html">View</a></td><td class="entry"><span class="mlabel">protected</span><span class="mlabel">static</span></td></tr>
-  <tr bgcolor="#f0f0f0"><td class="entry"><b>keypress</b>(int &amp;key)=0 (defined in <a class="el" href="classView.html">View</a>)</td><td class="entry"><a class="el" href="classView.html">View</a></td><td class="entry"><span class="mlabel">pure virtual</span></td></tr>
-  <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>repaint</b>(void) (defined in <a class="el" href="classView.html">View</a>)</td><td class="entry"><a class="el" href="classView.html">View</a></td><td class="entry"><span class="mlabel">virtual</span></td></tr>
-  <tr bgcolor="#f0f0f0"><td class="entry"><b>setTitle</b>(std::string title) (defined in <a class="el" href="classView.html">View</a>)</td><td class="entry"><a class="el" href="classView.html">View</a></td><td class="entry"><span class="mlabel">virtual</span></td></tr>
-  <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>setWinContext</b>(WINDOW *win) (defined in <a class="el" href="classView.html">View</a>)</td><td class="entry"><a class="el" href="classView.html">View</a></td><td class="entry"><span class="mlabel">static</span></td></tr>
-  <tr bgcolor="#f0f0f0"><td class="entry"><b>start_x</b> (defined in <a class="el" href="classView.html">View</a>)</td><td class="entry"><a class="el" href="classView.html">View</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
-  <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>start_y</b> (defined in <a class="el" href="classView.html">View</a>)</td><td class="entry"><a class="el" href="classView.html">View</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
-  <tr bgcolor="#f0f0f0"><td class="entry"><b>str_split</b>(const std::string &amp;str, const std::string delim) (defined in <a class="el" href="classView.html">View</a>)</td><td class="entry"><a class="el" href="classView.html">View</a></td><td class="entry"><span class="mlabel">static</span></td></tr>
-  <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>title</b> (defined in <a class="el" href="classView.html">View</a>)</td><td class="entry"><a class="el" href="classView.html">View</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
-  <tr bgcolor="#f0f0f0"><td class="entry"><b>View</b>(void) (defined in <a class="el" href="classView.html">View</a>)</td><td class="entry"><a class="el" href="classView.html">View</a></td><td class="entry"></td></tr>
-  <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>width</b> (defined in <a class="el" href="classView.html">View</a>)</td><td class="entry"><a class="el" href="classView.html">View</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
-  <tr bgcolor="#f0f0f0"><td class="entry"><b>win</b> (defined in <a class="el" href="classView.html">View</a>)</td><td class="entry"><a class="el" href="classView.html">View</a></td><td class="entry"><span class="mlabel">protected</span><span class="mlabel">static</span></td></tr>
-  <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>~View</b>(void) (defined in <a class="el" href="classView.html">View</a>)</td><td class="entry"><a class="el" href="classView.html">View</a></td><td class="entry"><span class="mlabel">virtual</span></td></tr>
-</table></div><!-- contents -->
-<!-- start footer part -->
-<hr class="footer"/><address class="footer"><small>
-Generated on Fri Jun 7 2019 14:50:45 for B15F by &#160;<a href="http://www.doxygen.org/index.html">
-<img class="footer" src="doxygen.png" alt="doxygen"/>
-</a> 1.8.16
-</small></address>
-</body>
-</html>
diff --git a/docs/html/classView.html b/docs/html/classView.html
deleted file mode 100644
index e0df0a2..0000000
--- a/docs/html/classView.html
+++ /dev/null
@@ -1,165 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml">
-<head>
-<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
-<meta http-equiv="X-UA-Compatible" content="IE=9"/>
-<meta name="generator" content="Doxygen 1.8.16"/>
-<meta name="viewport" content="width=device-width, initial-scale=1"/>
-<title>B15F: View 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">B15F
-   </div>
-   <div id="projectbrief">Board 15 Famulus Edition</div>
-  </td>
- </tr>
- </tbody>
-</table>
-</div>
-<!-- end header part -->
-<!-- Generated by Doxygen 1.8.16 -->
-<script type="text/javascript">
-/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
-var searchBox = new SearchBox("searchBox", "search",false,'Search');
-/* @license-end */
-</script>
-<script type="text/javascript" src="menudata.js"></script>
-<script type="text/javascript" src="menu.js"></script>
-<script type="text/javascript">
-/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
-$(function() {
-  initMenu('',true,false,'search.php','Search');
-  $(document).ready(function() { init_search(); });
-});
-/* @license-end */</script>
-<div id="main-nav"></div>
-<!-- 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-methods">Public Member Functions</a> &#124;
-<a href="#pub-static-methods">Static Public Member Functions</a> &#124;
-<a href="#pro-attribs">Protected Attributes</a> &#124;
-<a href="#pro-static-attribs">Static Protected Attributes</a> &#124;
-<a href="classView-members.html">List of all members</a>  </div>
-  <div class="headertitle">
-<div class="title">View Class Reference<span class="mlabels"><span class="mlabel">abstract</span></span></div>  </div>
-</div><!--header-->
-<div class="contents">
-
-<p><code>#include &lt;<a class="el" href="view_8h_source.html">view.h</a>&gt;</code></p>
-<div id="dynsection-0" onclick="return toggleVisibility(this)" class="dynheader closed" style="cursor:pointer;">
-  <img id="dynsection-0-trigger" src="closed.png" alt="+"/> Inheritance diagram for View:</div>
-<div id="dynsection-0-summary" class="dynsummary" style="display:block;">
-</div>
-<div id="dynsection-0-content" class="dyncontent" style="display:none;">
- <div class="center">
-  <img src="classView.png" usemap="#View_map" alt=""/>
-  <map id="View_map" name="View_map">
-<area href="classViewInfo.html" alt="ViewInfo" shape="rect" coords="0,56,92,80"/>
-<area href="classViewPromt.html" alt="ViewPromt" shape="rect" coords="102,56,194,80"/>
-<area href="classViewSelection.html" alt="ViewSelection" shape="rect" coords="204,56,296,80"/>
-<area href="classViewMonitor.html" alt="ViewMonitor" shape="rect" coords="0,112,92,136"/>
-  </map>
-</div></div>
-<table class="memberdecls">
-<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-methods"></a>
-Public Member Functions</h2></td></tr>
-<tr class="memitem:a6c725e4d83fd7474635a7e64200c7a08"><td class="memItemLeft" align="right" valign="top"><a id="a6c725e4d83fd7474635a7e64200c7a08"></a>
-virtual void&#160;</td><td class="memItemRight" valign="bottom"><b>setTitle</b> (std::string title)</td></tr>
-<tr class="separator:a6c725e4d83fd7474635a7e64200c7a08"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:aa7b1f1179e3c4f06bef1e99355d0d592"><td class="memItemLeft" align="right" valign="top"><a id="aa7b1f1179e3c4f06bef1e99355d0d592"></a>
-virtual void&#160;</td><td class="memItemRight" valign="bottom"><b>repaint</b> (void)</td></tr>
-<tr class="separator:aa7b1f1179e3c4f06bef1e99355d0d592"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a092a269bf53569af7fca4d710dd5b980"><td class="memItemLeft" align="right" valign="top"><a id="a092a269bf53569af7fca4d710dd5b980"></a>
-virtual void&#160;</td><td class="memItemRight" valign="bottom"><b>draw</b> (void)=0</td></tr>
-<tr class="separator:a092a269bf53569af7fca4d710dd5b980"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a60f77156dc4786bb6227d58a3061d2f6"><td class="memItemLeft" align="right" valign="top"><a id="a60f77156dc4786bb6227d58a3061d2f6"></a>
-virtual call_t&#160;</td><td class="memItemRight" valign="bottom"><b>keypress</b> (int &amp;key)=0</td></tr>
-<tr class="separator:a60f77156dc4786bb6227d58a3061d2f6"><td class="memSeparator" colspan="2">&#160;</td></tr>
-</table><table class="memberdecls">
-<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-static-methods"></a>
-Static Public Member Functions</h2></td></tr>
-<tr class="memitem:a990aa2223befde031dfcce54a740c558"><td class="memItemLeft" align="right" valign="top"><a id="a990aa2223befde031dfcce54a740c558"></a>
-static void&#160;</td><td class="memItemRight" valign="bottom"><b>setWinContext</b> (WINDOW *win)</td></tr>
-<tr class="separator:a990aa2223befde031dfcce54a740c558"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a0710c6ba06e3795e7ddf369361308b79"><td class="memItemLeft" align="right" valign="top"><a id="a0710c6ba06e3795e7ddf369361308b79"></a>
-static WINDOW *&#160;</td><td class="memItemRight" valign="bottom"><b>getWinContext</b> (void)</td></tr>
-<tr class="separator:a0710c6ba06e3795e7ddf369361308b79"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a52c2e2a7bc56388e7d9bfa398ad52668"><td class="memItemLeft" align="right" valign="top"><a id="a52c2e2a7bc56388e7d9bfa398ad52668"></a>
-static std::vector&lt; std::string &gt;&#160;</td><td class="memItemRight" valign="bottom"><b>str_split</b> (const std::string &amp;str, const std::string delim)</td></tr>
-<tr class="separator:a52c2e2a7bc56388e7d9bfa398ad52668"><td class="memSeparator" colspan="2">&#160;</td></tr>
-</table><table class="memberdecls">
-<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pro-attribs"></a>
-Protected Attributes</h2></td></tr>
-<tr class="memitem:ae039aa744b085db819ae149705b2c32b"><td class="memItemLeft" align="right" valign="top"><a id="ae039aa744b085db819ae149705b2c32b"></a>
-int&#160;</td><td class="memItemRight" valign="bottom"><b>width</b></td></tr>
-<tr class="separator:ae039aa744b085db819ae149705b2c32b"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a6e3e5c18893617490f02166641356746"><td class="memItemLeft" align="right" valign="top"><a id="a6e3e5c18893617490f02166641356746"></a>
-int&#160;</td><td class="memItemRight" valign="bottom"><b>height</b></td></tr>
-<tr class="separator:a6e3e5c18893617490f02166641356746"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a9fc9f3b0c876d063e6f57dee320a43fe"><td class="memItemLeft" align="right" valign="top"><a id="a9fc9f3b0c876d063e6f57dee320a43fe"></a>
-int&#160;</td><td class="memItemRight" valign="bottom"><b>start_x</b> = 0</td></tr>
-<tr class="separator:a9fc9f3b0c876d063e6f57dee320a43fe"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ac424db4c13776c3ce9d33f9074dfcfaa"><td class="memItemLeft" align="right" valign="top"><a id="ac424db4c13776c3ce9d33f9074dfcfaa"></a>
-int&#160;</td><td class="memItemRight" valign="bottom"><b>start_y</b> = 0</td></tr>
-<tr class="separator:ac424db4c13776c3ce9d33f9074dfcfaa"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a80441aa81b52e04677a2aa2bd9c47753"><td class="memItemLeft" align="right" valign="top"><a id="a80441aa81b52e04677a2aa2bd9c47753"></a>
-std::string&#160;</td><td class="memItemRight" valign="bottom"><b>title</b></td></tr>
-<tr class="separator:a80441aa81b52e04677a2aa2bd9c47753"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a610367214a727e2f7da72ac5bdb60fa3"><td class="memItemLeft" align="right" valign="top"><a id="a610367214a727e2f7da72ac5bdb60fa3"></a>
-std::vector&lt; call_t &gt;&#160;</td><td class="memItemRight" valign="bottom"><b>calls</b></td></tr>
-<tr class="separator:a610367214a727e2f7da72ac5bdb60fa3"><td class="memSeparator" colspan="2">&#160;</td></tr>
-</table><table class="memberdecls">
-<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pro-static-attribs"></a>
-Static Protected Attributes</h2></td></tr>
-<tr class="memitem:a5ddee2bf0b26dbcfa7780be17ff33dd7"><td class="memItemLeft" align="right" valign="top"><a id="a5ddee2bf0b26dbcfa7780be17ff33dd7"></a>
-static WINDOW *&#160;</td><td class="memItemRight" valign="bottom"><b>win</b> = nullptr</td></tr>
-<tr class="separator:a5ddee2bf0b26dbcfa7780be17ff33dd7"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a3554cf8689cad24c643665aa3d182134"><td class="memItemLeft" align="right" valign="top"><a id="a3554cf8689cad24c643665aa3d182134"></a>
-constexpr static int&#160;</td><td class="memItemRight" valign="bottom"><b>KEY_ENT</b> = 10</td></tr>
-<tr class="separator:a3554cf8689cad24c643665aa3d182134"><td class="memSeparator" colspan="2">&#160;</td></tr>
-</table>
-<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
-<div class="textblock"><p>Base class for multiple views with the ncurses user interface. </p>
-
-<p class="definition">Definition at line <a class="el" href="view_8h_source.html#l00019">19</a> of file <a class="el" href="view_8h_source.html">view.h</a>.</p>
-</div><hr/>The documentation for this class was generated from the following files:<ul>
-<li>ui/<a class="el" href="view_8h_source.html">view.h</a></li>
-<li>ui/<a class="el" href="view_8cpp_source.html">view.cpp</a></li>
-</ul>
-</div><!-- contents -->
-<!-- start footer part -->
-<hr class="footer"/><address class="footer"><small>
-Generated on Fri Jun 7 2019 14:50:45 for B15F by &#160;<a href="http://www.doxygen.org/index.html">
-<img class="footer" src="doxygen.png" alt="doxygen"/>
-</a> 1.8.16
-</small></address>
-</body>
-</html>
diff --git a/docs/html/classView.png b/docs/html/classView.png
deleted file mode 100644
index bcf3f8e..0000000
Binary files a/docs/html/classView.png and /dev/null differ
diff --git a/docs/html/classViewInfo-members.html b/docs/html/classViewInfo-members.html
deleted file mode 100644
index d188542..0000000
--- a/docs/html/classViewInfo-members.html
+++ /dev/null
@@ -1,107 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml">
-<head>
-<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
-<meta http-equiv="X-UA-Compatible" content="IE=9"/>
-<meta name="generator" content="Doxygen 1.8.16"/>
-<meta name="viewport" content="width=device-width, initial-scale=1"/>
-<title>B15F: 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">B15F
-   </div>
-   <div id="projectbrief">Board 15 Famulus Edition</div>
-  </td>
- </tr>
- </tbody>
-</table>
-</div>
-<!-- end header part -->
-<!-- Generated by Doxygen 1.8.16 -->
-<script type="text/javascript">
-/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
-var searchBox = new SearchBox("searchBox", "search",false,'Search');
-/* @license-end */
-</script>
-<script type="text/javascript" src="menudata.js"></script>
-<script type="text/javascript" src="menu.js"></script>
-<script type="text/javascript">
-/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
-$(function() {
-  initMenu('',true,false,'search.php','Search');
-  $(document).ready(function() { init_search(); });
-});
-/* @license-end */</script>
-<div id="main-nav"></div>
-<!-- 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">ViewInfo Member List</div>  </div>
-</div><!--header-->
-<div class="contents">
-
-<p>This is the complete list of members for <a class="el" href="classViewInfo.html">ViewInfo</a>, including all inherited members.</p>
-<table class="directory">
-  <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>calls</b> (defined in <a class="el" href="classView.html">View</a>)</td><td class="entry"><a class="el" href="classView.html">View</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
-  <tr bgcolor="#f0f0f0"><td class="entry"><b>close_offset_x</b> (defined in <a class="el" href="classViewInfo.html">ViewInfo</a>)</td><td class="entry"><a class="el" href="classViewInfo.html">ViewInfo</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
-  <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>close_offset_y</b> (defined in <a class="el" href="classViewInfo.html">ViewInfo</a>)</td><td class="entry"><a class="el" href="classViewInfo.html">ViewInfo</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
-  <tr bgcolor="#f0f0f0"><td class="entry"><b>draw</b>(void) override (defined in <a class="el" href="classViewInfo.html">ViewInfo</a>)</td><td class="entry"><a class="el" href="classViewInfo.html">ViewInfo</a></td><td class="entry"><span class="mlabel">virtual</span></td></tr>
-  <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>getWinContext</b>(void) (defined in <a class="el" href="classView.html">View</a>)</td><td class="entry"><a class="el" href="classView.html">View</a></td><td class="entry"><span class="mlabel">static</span></td></tr>
-  <tr bgcolor="#f0f0f0"><td class="entry"><b>height</b> (defined in <a class="el" href="classView.html">View</a>)</td><td class="entry"><a class="el" href="classView.html">View</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
-  <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>KEY_ENT</b> (defined in <a class="el" href="classView.html">View</a>)</td><td class="entry"><a class="el" href="classView.html">View</a></td><td class="entry"><span class="mlabel">protected</span><span class="mlabel">static</span></td></tr>
-  <tr bgcolor="#f0f0f0"><td class="entry"><b>keypress</b>(int &amp;key) override (defined in <a class="el" href="classViewInfo.html">ViewInfo</a>)</td><td class="entry"><a class="el" href="classViewInfo.html">ViewInfo</a></td><td class="entry"><span class="mlabel">virtual</span></td></tr>
-  <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>label_close</b> (defined in <a class="el" href="classViewInfo.html">ViewInfo</a>)</td><td class="entry"><a class="el" href="classViewInfo.html">ViewInfo</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
-  <tr bgcolor="#f0f0f0"><td class="entry"><b>repaint</b>(void) (defined in <a class="el" href="classView.html">View</a>)</td><td class="entry"><a class="el" href="classView.html">View</a></td><td class="entry"><span class="mlabel">virtual</span></td></tr>
-  <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>setCall</b>(call_t call) (defined in <a class="el" href="classViewInfo.html">ViewInfo</a>)</td><td class="entry"><a class="el" href="classViewInfo.html">ViewInfo</a></td><td class="entry"><span class="mlabel">virtual</span></td></tr>
-  <tr bgcolor="#f0f0f0"><td class="entry"><b>setLabelClose</b>(std::string label) (defined in <a class="el" href="classViewInfo.html">ViewInfo</a>)</td><td class="entry"><a class="el" href="classViewInfo.html">ViewInfo</a></td><td class="entry"><span class="mlabel">virtual</span></td></tr>
-  <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>setText</b>(std::string text) (defined in <a class="el" href="classViewInfo.html">ViewInfo</a>)</td><td class="entry"><a class="el" href="classViewInfo.html">ViewInfo</a></td><td class="entry"><span class="mlabel">virtual</span></td></tr>
-  <tr bgcolor="#f0f0f0"><td class="entry"><b>setTitle</b>(std::string title) (defined in <a class="el" href="classView.html">View</a>)</td><td class="entry"><a class="el" href="classView.html">View</a></td><td class="entry"><span class="mlabel">virtual</span></td></tr>
-  <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>setWinContext</b>(WINDOW *win) (defined in <a class="el" href="classView.html">View</a>)</td><td class="entry"><a class="el" href="classView.html">View</a></td><td class="entry"><span class="mlabel">static</span></td></tr>
-  <tr bgcolor="#f0f0f0"><td class="entry"><b>start_x</b> (defined in <a class="el" href="classView.html">View</a>)</td><td class="entry"><a class="el" href="classView.html">View</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
-  <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>start_y</b> (defined in <a class="el" href="classView.html">View</a>)</td><td class="entry"><a class="el" href="classView.html">View</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
-  <tr bgcolor="#f0f0f0"><td class="entry"><b>str_split</b>(const std::string &amp;str, const std::string delim) (defined in <a class="el" href="classView.html">View</a>)</td><td class="entry"><a class="el" href="classView.html">View</a></td><td class="entry"><span class="mlabel">static</span></td></tr>
-  <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>text</b> (defined in <a class="el" href="classViewInfo.html">ViewInfo</a>)</td><td class="entry"><a class="el" href="classViewInfo.html">ViewInfo</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
-  <tr bgcolor="#f0f0f0"><td class="entry"><b>text_offset_x</b> (defined in <a class="el" href="classViewInfo.html">ViewInfo</a>)</td><td class="entry"><a class="el" href="classViewInfo.html">ViewInfo</a></td><td class="entry"><span class="mlabel">protected</span><span class="mlabel">static</span></td></tr>
-  <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>text_offset_y</b> (defined in <a class="el" href="classViewInfo.html">ViewInfo</a>)</td><td class="entry"><a class="el" href="classViewInfo.html">ViewInfo</a></td><td class="entry"><span class="mlabel">protected</span><span class="mlabel">static</span></td></tr>
-  <tr bgcolor="#f0f0f0"><td class="entry"><b>title</b> (defined in <a class="el" href="classView.html">View</a>)</td><td class="entry"><a class="el" href="classView.html">View</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
-  <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>View</b>(void) (defined in <a class="el" href="classView.html">View</a>)</td><td class="entry"><a class="el" href="classView.html">View</a></td><td class="entry"></td></tr>
-  <tr bgcolor="#f0f0f0"><td class="entry"><b>ViewInfo</b>(void) (defined in <a class="el" href="classViewInfo.html">ViewInfo</a>)</td><td class="entry"><a class="el" href="classViewInfo.html">ViewInfo</a></td><td class="entry"></td></tr>
-  <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>width</b> (defined in <a class="el" href="classView.html">View</a>)</td><td class="entry"><a class="el" href="classView.html">View</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
-  <tr bgcolor="#f0f0f0"><td class="entry"><b>win</b> (defined in <a class="el" href="classView.html">View</a>)</td><td class="entry"><a class="el" href="classView.html">View</a></td><td class="entry"><span class="mlabel">protected</span><span class="mlabel">static</span></td></tr>
-  <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>~View</b>(void) (defined in <a class="el" href="classView.html">View</a>)</td><td class="entry"><a class="el" href="classView.html">View</a></td><td class="entry"><span class="mlabel">virtual</span></td></tr>
-</table></div><!-- contents -->
-<!-- start footer part -->
-<hr class="footer"/><address class="footer"><small>
-Generated on Fri Jun 7 2019 14:50:45 for B15F by &#160;<a href="http://www.doxygen.org/index.html">
-<img class="footer" src="doxygen.png" alt="doxygen"/>
-</a> 1.8.16
-</small></address>
-</body>
-</html>
diff --git a/docs/html/classViewInfo.html b/docs/html/classViewInfo.html
deleted file mode 100644
index 245a5f8..0000000
--- a/docs/html/classViewInfo.html
+++ /dev/null
@@ -1,193 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml">
-<head>
-<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
-<meta http-equiv="X-UA-Compatible" content="IE=9"/>
-<meta name="generator" content="Doxygen 1.8.16"/>
-<meta name="viewport" content="width=device-width, initial-scale=1"/>
-<title>B15F: ViewInfo 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">B15F
-   </div>
-   <div id="projectbrief">Board 15 Famulus Edition</div>
-  </td>
- </tr>
- </tbody>
-</table>
-</div>
-<!-- end header part -->
-<!-- Generated by Doxygen 1.8.16 -->
-<script type="text/javascript">
-/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
-var searchBox = new SearchBox("searchBox", "search",false,'Search');
-/* @license-end */
-</script>
-<script type="text/javascript" src="menudata.js"></script>
-<script type="text/javascript" src="menu.js"></script>
-<script type="text/javascript">
-/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
-$(function() {
-  initMenu('',true,false,'search.php','Search');
-  $(document).ready(function() { init_search(); });
-});
-/* @license-end */</script>
-<div id="main-nav"></div>
-<!-- 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-methods">Public Member Functions</a> &#124;
-<a href="#pro-attribs">Protected Attributes</a> &#124;
-<a href="#pro-static-attribs">Static Protected Attributes</a> &#124;
-<a href="classViewInfo-members.html">List of all members</a>  </div>
-  <div class="headertitle">
-<div class="title">ViewInfo Class Reference</div>  </div>
-</div><!--header-->
-<div class="contents">
-
-<p><code>#include &lt;<a class="el" href="view__info_8h_source.html">view_info.h</a>&gt;</code></p>
-<div id="dynsection-0" onclick="return toggleVisibility(this)" class="dynheader closed" style="cursor:pointer;">
-  <img id="dynsection-0-trigger" src="closed.png" alt="+"/> Inheritance diagram for ViewInfo:</div>
-<div id="dynsection-0-summary" class="dynsummary" style="display:block;">
-</div>
-<div id="dynsection-0-content" class="dyncontent" style="display:none;">
- <div class="center">
-  <img src="classViewInfo.png" usemap="#ViewInfo_map" alt=""/>
-  <map id="ViewInfo_map" name="ViewInfo_map">
-<area href="classView.html" alt="View" shape="rect" coords="0,0,83,24"/>
-<area href="classViewMonitor.html" alt="ViewMonitor" shape="rect" coords="0,112,83,136"/>
-  </map>
-</div></div>
-<table class="memberdecls">
-<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-methods"></a>
-Public Member Functions</h2></td></tr>
-<tr class="memitem:abc93067b319df17e19f013a86d762f81"><td class="memItemLeft" align="right" valign="top"><a id="abc93067b319df17e19f013a86d762f81"></a>
-virtual void&#160;</td><td class="memItemRight" valign="bottom"><b>setText</b> (std::string text)</td></tr>
-<tr class="separator:abc93067b319df17e19f013a86d762f81"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a4c3db4806515ea8b0f07a9864f983377"><td class="memItemLeft" align="right" valign="top"><a id="a4c3db4806515ea8b0f07a9864f983377"></a>
-virtual void&#160;</td><td class="memItemRight" valign="bottom"><b>setLabelClose</b> (std::string label)</td></tr>
-<tr class="separator:a4c3db4806515ea8b0f07a9864f983377"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a45fd0b8b96d15fd92824ce63fb6814ca"><td class="memItemLeft" align="right" valign="top"><a id="a45fd0b8b96d15fd92824ce63fb6814ca"></a>
-virtual void&#160;</td><td class="memItemRight" valign="bottom"><b>setCall</b> (call_t call)</td></tr>
-<tr class="separator:a45fd0b8b96d15fd92824ce63fb6814ca"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ab7f9ea145f8cf26dbd27e29982cda206"><td class="memItemLeft" align="right" valign="top"><a id="ab7f9ea145f8cf26dbd27e29982cda206"></a>
-virtual void&#160;</td><td class="memItemRight" valign="bottom"><b>draw</b> (void) override</td></tr>
-<tr class="separator:ab7f9ea145f8cf26dbd27e29982cda206"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a7d231a44600aa100ad4a0b9f283e5bd8"><td class="memItemLeft" align="right" valign="top"><a id="a7d231a44600aa100ad4a0b9f283e5bd8"></a>
-virtual call_t&#160;</td><td class="memItemRight" valign="bottom"><b>keypress</b> (int &amp;key) override</td></tr>
-<tr class="separator:a7d231a44600aa100ad4a0b9f283e5bd8"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="inherit_header pub_methods_classView"><td colspan="2" onclick="javascript:toggleInherit('pub_methods_classView')"><img src="closed.png" alt="-"/>&#160;Public Member Functions inherited from <a class="el" href="classView.html">View</a></td></tr>
-<tr class="memitem:a6c725e4d83fd7474635a7e64200c7a08 inherit pub_methods_classView"><td class="memItemLeft" align="right" valign="top"><a id="a6c725e4d83fd7474635a7e64200c7a08"></a>
-virtual void&#160;</td><td class="memItemRight" valign="bottom"><b>setTitle</b> (std::string title)</td></tr>
-<tr class="separator:a6c725e4d83fd7474635a7e64200c7a08 inherit pub_methods_classView"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:aa7b1f1179e3c4f06bef1e99355d0d592 inherit pub_methods_classView"><td class="memItemLeft" align="right" valign="top"><a id="aa7b1f1179e3c4f06bef1e99355d0d592"></a>
-virtual void&#160;</td><td class="memItemRight" valign="bottom"><b>repaint</b> (void)</td></tr>
-<tr class="separator:aa7b1f1179e3c4f06bef1e99355d0d592 inherit pub_methods_classView"><td class="memSeparator" colspan="2">&#160;</td></tr>
-</table><table class="memberdecls">
-<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pro-attribs"></a>
-Protected Attributes</h2></td></tr>
-<tr class="memitem:ac392a569ef16af3dc11ee659f3fa1eb4"><td class="memItemLeft" align="right" valign="top"><a id="ac392a569ef16af3dc11ee659f3fa1eb4"></a>
-std::string&#160;</td><td class="memItemRight" valign="bottom"><b>text</b></td></tr>
-<tr class="separator:ac392a569ef16af3dc11ee659f3fa1eb4"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a34879bd1c0a8fe230429cc600dcd6739"><td class="memItemLeft" align="right" valign="top"><a id="a34879bd1c0a8fe230429cc600dcd6739"></a>
-std::string&#160;</td><td class="memItemRight" valign="bottom"><b>label_close</b></td></tr>
-<tr class="separator:a34879bd1c0a8fe230429cc600dcd6739"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ae4dab70d82761e0f59f51dcae79685fe"><td class="memItemLeft" align="right" valign="top"><a id="ae4dab70d82761e0f59f51dcae79685fe"></a>
-int&#160;</td><td class="memItemRight" valign="bottom"><b>close_offset_x</b> = 0</td></tr>
-<tr class="separator:ae4dab70d82761e0f59f51dcae79685fe"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a5954adf853cb44d4655ede731faf1a28"><td class="memItemLeft" align="right" valign="top"><a id="a5954adf853cb44d4655ede731faf1a28"></a>
-int&#160;</td><td class="memItemRight" valign="bottom"><b>close_offset_y</b> = 0</td></tr>
-<tr class="separator:a5954adf853cb44d4655ede731faf1a28"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="inherit_header pro_attribs_classView"><td colspan="2" onclick="javascript:toggleInherit('pro_attribs_classView')"><img src="closed.png" alt="-"/>&#160;Protected Attributes inherited from <a class="el" href="classView.html">View</a></td></tr>
-<tr class="memitem:ae039aa744b085db819ae149705b2c32b inherit pro_attribs_classView"><td class="memItemLeft" align="right" valign="top"><a id="ae039aa744b085db819ae149705b2c32b"></a>
-int&#160;</td><td class="memItemRight" valign="bottom"><b>width</b></td></tr>
-<tr class="separator:ae039aa744b085db819ae149705b2c32b inherit pro_attribs_classView"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a6e3e5c18893617490f02166641356746 inherit pro_attribs_classView"><td class="memItemLeft" align="right" valign="top"><a id="a6e3e5c18893617490f02166641356746"></a>
-int&#160;</td><td class="memItemRight" valign="bottom"><b>height</b></td></tr>
-<tr class="separator:a6e3e5c18893617490f02166641356746 inherit pro_attribs_classView"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a9fc9f3b0c876d063e6f57dee320a43fe inherit pro_attribs_classView"><td class="memItemLeft" align="right" valign="top"><a id="a9fc9f3b0c876d063e6f57dee320a43fe"></a>
-int&#160;</td><td class="memItemRight" valign="bottom"><b>start_x</b> = 0</td></tr>
-<tr class="separator:a9fc9f3b0c876d063e6f57dee320a43fe inherit pro_attribs_classView"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ac424db4c13776c3ce9d33f9074dfcfaa inherit pro_attribs_classView"><td class="memItemLeft" align="right" valign="top"><a id="ac424db4c13776c3ce9d33f9074dfcfaa"></a>
-int&#160;</td><td class="memItemRight" valign="bottom"><b>start_y</b> = 0</td></tr>
-<tr class="separator:ac424db4c13776c3ce9d33f9074dfcfaa inherit pro_attribs_classView"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a80441aa81b52e04677a2aa2bd9c47753 inherit pro_attribs_classView"><td class="memItemLeft" align="right" valign="top"><a id="a80441aa81b52e04677a2aa2bd9c47753"></a>
-std::string&#160;</td><td class="memItemRight" valign="bottom"><b>title</b></td></tr>
-<tr class="separator:a80441aa81b52e04677a2aa2bd9c47753 inherit pro_attribs_classView"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a610367214a727e2f7da72ac5bdb60fa3 inherit pro_attribs_classView"><td class="memItemLeft" align="right" valign="top"><a id="a610367214a727e2f7da72ac5bdb60fa3"></a>
-std::vector&lt; call_t &gt;&#160;</td><td class="memItemRight" valign="bottom"><b>calls</b></td></tr>
-<tr class="separator:a610367214a727e2f7da72ac5bdb60fa3 inherit pro_attribs_classView"><td class="memSeparator" colspan="2">&#160;</td></tr>
-</table><table class="memberdecls">
-<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pro-static-attribs"></a>
-Static Protected Attributes</h2></td></tr>
-<tr class="memitem:a4681a8138f17ea229aca02e6db7357cd"><td class="memItemLeft" align="right" valign="top"><a id="a4681a8138f17ea229aca02e6db7357cd"></a>
-constexpr static int&#160;</td><td class="memItemRight" valign="bottom"><b>text_offset_x</b> = 2</td></tr>
-<tr class="separator:a4681a8138f17ea229aca02e6db7357cd"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a34a9239c8954a0c27a22cf44d112f5b8"><td class="memItemLeft" align="right" valign="top"><a id="a34a9239c8954a0c27a22cf44d112f5b8"></a>
-constexpr static int&#160;</td><td class="memItemRight" valign="bottom"><b>text_offset_y</b> = 3</td></tr>
-<tr class="separator:a34a9239c8954a0c27a22cf44d112f5b8"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="inherit_header pro_static_attribs_classView"><td colspan="2" onclick="javascript:toggleInherit('pro_static_attribs_classView')"><img src="closed.png" alt="-"/>&#160;Static Protected Attributes inherited from <a class="el" href="classView.html">View</a></td></tr>
-<tr class="memitem:a5ddee2bf0b26dbcfa7780be17ff33dd7 inherit pro_static_attribs_classView"><td class="memItemLeft" align="right" valign="top"><a id="a5ddee2bf0b26dbcfa7780be17ff33dd7"></a>
-static WINDOW *&#160;</td><td class="memItemRight" valign="bottom"><b>win</b> = nullptr</td></tr>
-<tr class="separator:a5ddee2bf0b26dbcfa7780be17ff33dd7 inherit pro_static_attribs_classView"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a3554cf8689cad24c643665aa3d182134 inherit pro_static_attribs_classView"><td class="memItemLeft" align="right" valign="top"><a id="a3554cf8689cad24c643665aa3d182134"></a>
-constexpr static int&#160;</td><td class="memItemRight" valign="bottom"><b>KEY_ENT</b> = 10</td></tr>
-<tr class="separator:a3554cf8689cad24c643665aa3d182134 inherit pro_static_attribs_classView"><td class="memSeparator" colspan="2">&#160;</td></tr>
-</table><table class="memberdecls">
-<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="inherited"></a>
-Additional Inherited Members</h2></td></tr>
-<tr class="inherit_header pub_static_methods_classView"><td colspan="2" onclick="javascript:toggleInherit('pub_static_methods_classView')"><img src="closed.png" alt="-"/>&#160;Static Public Member Functions inherited from <a class="el" href="classView.html">View</a></td></tr>
-<tr class="memitem:a990aa2223befde031dfcce54a740c558 inherit pub_static_methods_classView"><td class="memItemLeft" align="right" valign="top"><a id="a990aa2223befde031dfcce54a740c558"></a>
-static void&#160;</td><td class="memItemRight" valign="bottom"><b>setWinContext</b> (WINDOW *win)</td></tr>
-<tr class="separator:a990aa2223befde031dfcce54a740c558 inherit pub_static_methods_classView"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a0710c6ba06e3795e7ddf369361308b79 inherit pub_static_methods_classView"><td class="memItemLeft" align="right" valign="top"><a id="a0710c6ba06e3795e7ddf369361308b79"></a>
-static WINDOW *&#160;</td><td class="memItemRight" valign="bottom"><b>getWinContext</b> (void)</td></tr>
-<tr class="separator:a0710c6ba06e3795e7ddf369361308b79 inherit pub_static_methods_classView"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a52c2e2a7bc56388e7d9bfa398ad52668 inherit pub_static_methods_classView"><td class="memItemLeft" align="right" valign="top"><a id="a52c2e2a7bc56388e7d9bfa398ad52668"></a>
-static std::vector&lt; std::string &gt;&#160;</td><td class="memItemRight" valign="bottom"><b>str_split</b> (const std::string &amp;str, const std::string delim)</td></tr>
-<tr class="separator:a52c2e2a7bc56388e7d9bfa398ad52668 inherit pub_static_methods_classView"><td class="memSeparator" colspan="2">&#160;</td></tr>
-</table>
-<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
-<div class="textblock"><p><a class="el" href="classView.html">View</a> for simple text message output. </p>
-
-<p class="definition">Definition at line <a class="el" href="view__info_8h_source.html#l00008">8</a> of file <a class="el" href="view__info_8h_source.html">view_info.h</a>.</p>
-</div><hr/>The documentation for this class was generated from the following files:<ul>
-<li>ui/<a class="el" href="view__info_8h_source.html">view_info.h</a></li>
-<li>ui/<a class="el" href="view__info_8cpp_source.html">view_info.cpp</a></li>
-</ul>
-</div><!-- contents -->
-<!-- start footer part -->
-<hr class="footer"/><address class="footer"><small>
-Generated on Fri Jun 7 2019 14:50:45 for B15F by &#160;<a href="http://www.doxygen.org/index.html">
-<img class="footer" src="doxygen.png" alt="doxygen"/>
-</a> 1.8.16
-</small></address>
-</body>
-</html>
diff --git a/docs/html/classViewInfo.png b/docs/html/classViewInfo.png
deleted file mode 100644
index aad65ce..0000000
Binary files a/docs/html/classViewInfo.png and /dev/null differ
diff --git a/docs/html/classViewMonitor-members.html b/docs/html/classViewMonitor-members.html
deleted file mode 100644
index 19d1bc6..0000000
--- a/docs/html/classViewMonitor-members.html
+++ /dev/null
@@ -1,111 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml">
-<head>
-<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
-<meta http-equiv="X-UA-Compatible" content="IE=9"/>
-<meta name="generator" content="Doxygen 1.8.16"/>
-<meta name="viewport" content="width=device-width, initial-scale=1"/>
-<title>B15F: 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">B15F
-   </div>
-   <div id="projectbrief">Board 15 Famulus Edition</div>
-  </td>
- </tr>
- </tbody>
-</table>
-</div>
-<!-- end header part -->
-<!-- Generated by Doxygen 1.8.16 -->
-<script type="text/javascript">
-/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
-var searchBox = new SearchBox("searchBox", "search",false,'Search');
-/* @license-end */
-</script>
-<script type="text/javascript" src="menudata.js"></script>
-<script type="text/javascript" src="menu.js"></script>
-<script type="text/javascript">
-/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
-$(function() {
-  initMenu('',true,false,'search.php','Search');
-  $(document).ready(function() { init_search(); });
-});
-/* @license-end */</script>
-<div id="main-nav"></div>
-<!-- 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">ViewMonitor Member List</div>  </div>
-</div><!--header-->
-<div class="contents">
-
-<p>This is the complete list of members for <a class="el" href="classViewMonitor.html">ViewMonitor</a>, including all inherited members.</p>
-<table class="directory">
-  <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>calls</b> (defined in <a class="el" href="classView.html">View</a>)</td><td class="entry"><a class="el" href="classView.html">View</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
-  <tr bgcolor="#f0f0f0"><td class="entry"><b>close_offset_x</b> (defined in <a class="el" href="classViewInfo.html">ViewInfo</a>)</td><td class="entry"><a class="el" href="classViewInfo.html">ViewInfo</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
-  <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>close_offset_y</b> (defined in <a class="el" href="classViewInfo.html">ViewInfo</a>)</td><td class="entry"><a class="el" href="classViewInfo.html">ViewInfo</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
-  <tr bgcolor="#f0f0f0"><td class="entry"><b>draw</b>(void) override (defined in <a class="el" href="classViewInfo.html">ViewInfo</a>)</td><td class="entry"><a class="el" href="classViewInfo.html">ViewInfo</a></td><td class="entry"><span class="mlabel">virtual</span></td></tr>
-  <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>getWinContext</b>(void) (defined in <a class="el" href="classView.html">View</a>)</td><td class="entry"><a class="el" href="classView.html">View</a></td><td class="entry"><span class="mlabel">static</span></td></tr>
-  <tr bgcolor="#f0f0f0"><td class="entry"><b>height</b> (defined in <a class="el" href="classView.html">View</a>)</td><td class="entry"><a class="el" href="classView.html">View</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
-  <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>KEY_ENT</b> (defined in <a class="el" href="classView.html">View</a>)</td><td class="entry"><a class="el" href="classView.html">View</a></td><td class="entry"><span class="mlabel">protected</span><span class="mlabel">static</span></td></tr>
-  <tr bgcolor="#f0f0f0"><td class="entry"><b>keypress</b>(int &amp;key) override (defined in <a class="el" href="classViewMonitor.html">ViewMonitor</a>)</td><td class="entry"><a class="el" href="classViewMonitor.html">ViewMonitor</a></td><td class="entry"><span class="mlabel">virtual</span></td></tr>
-  <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>label_close</b> (defined in <a class="el" href="classViewInfo.html">ViewInfo</a>)</td><td class="entry"><a class="el" href="classViewInfo.html">ViewInfo</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
-  <tr bgcolor="#f0f0f0"><td class="entry"><b>repaint</b>(void) (defined in <a class="el" href="classView.html">View</a>)</td><td class="entry"><a class="el" href="classView.html">View</a></td><td class="entry"><span class="mlabel">virtual</span></td></tr>
-  <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>run_worker</b> (defined in <a class="el" href="classViewMonitor.html">ViewMonitor</a>)</td><td class="entry"><a class="el" href="classViewMonitor.html">ViewMonitor</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
-  <tr bgcolor="#f0f0f0"><td class="entry"><b>setCall</b>(call_t call) (defined in <a class="el" href="classViewInfo.html">ViewInfo</a>)</td><td class="entry"><a class="el" href="classViewInfo.html">ViewInfo</a></td><td class="entry"><span class="mlabel">virtual</span></td></tr>
-  <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>setLabelClose</b>(std::string label) (defined in <a class="el" href="classViewInfo.html">ViewInfo</a>)</td><td class="entry"><a class="el" href="classViewInfo.html">ViewInfo</a></td><td class="entry"><span class="mlabel">virtual</span></td></tr>
-  <tr bgcolor="#f0f0f0"><td class="entry"><b>setText</b>(std::string text) (defined in <a class="el" href="classViewInfo.html">ViewInfo</a>)</td><td class="entry"><a class="el" href="classViewInfo.html">ViewInfo</a></td><td class="entry"><span class="mlabel">virtual</span></td></tr>
-  <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>setTitle</b>(std::string title) (defined in <a class="el" href="classView.html">View</a>)</td><td class="entry"><a class="el" href="classView.html">View</a></td><td class="entry"><span class="mlabel">virtual</span></td></tr>
-  <tr bgcolor="#f0f0f0"><td class="entry"><b>setWinContext</b>(WINDOW *win) (defined in <a class="el" href="classView.html">View</a>)</td><td class="entry"><a class="el" href="classView.html">View</a></td><td class="entry"><span class="mlabel">static</span></td></tr>
-  <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>start_x</b> (defined in <a class="el" href="classView.html">View</a>)</td><td class="entry"><a class="el" href="classView.html">View</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
-  <tr bgcolor="#f0f0f0"><td class="entry"><b>start_y</b> (defined in <a class="el" href="classView.html">View</a>)</td><td class="entry"><a class="el" href="classView.html">View</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
-  <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>str_split</b>(const std::string &amp;str, const std::string delim) (defined in <a class="el" href="classView.html">View</a>)</td><td class="entry"><a class="el" href="classView.html">View</a></td><td class="entry"><span class="mlabel">static</span></td></tr>
-  <tr bgcolor="#f0f0f0"><td class="entry"><b>t_worker</b> (defined in <a class="el" href="classViewMonitor.html">ViewMonitor</a>)</td><td class="entry"><a class="el" href="classViewMonitor.html">ViewMonitor</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
-  <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>text</b> (defined in <a class="el" href="classViewInfo.html">ViewInfo</a>)</td><td class="entry"><a class="el" href="classViewInfo.html">ViewInfo</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
-  <tr bgcolor="#f0f0f0"><td class="entry"><b>text_offset_x</b> (defined in <a class="el" href="classViewInfo.html">ViewInfo</a>)</td><td class="entry"><a class="el" href="classViewInfo.html">ViewInfo</a></td><td class="entry"><span class="mlabel">protected</span><span class="mlabel">static</span></td></tr>
-  <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>text_offset_y</b> (defined in <a class="el" href="classViewInfo.html">ViewInfo</a>)</td><td class="entry"><a class="el" href="classViewInfo.html">ViewInfo</a></td><td class="entry"><span class="mlabel">protected</span><span class="mlabel">static</span></td></tr>
-  <tr bgcolor="#f0f0f0"><td class="entry"><b>title</b> (defined in <a class="el" href="classView.html">View</a>)</td><td class="entry"><a class="el" href="classView.html">View</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
-  <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>View</b>(void) (defined in <a class="el" href="classView.html">View</a>)</td><td class="entry"><a class="el" href="classView.html">View</a></td><td class="entry"></td></tr>
-  <tr bgcolor="#f0f0f0"><td class="entry"><b>ViewInfo</b>(void) (defined in <a class="el" href="classViewInfo.html">ViewInfo</a>)</td><td class="entry"><a class="el" href="classViewInfo.html">ViewInfo</a></td><td class="entry"></td></tr>
-  <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>ViewMonitor</b>(void) (defined in <a class="el" href="classViewMonitor.html">ViewMonitor</a>)</td><td class="entry"><a class="el" href="classViewMonitor.html">ViewMonitor</a></td><td class="entry"></td></tr>
-  <tr bgcolor="#f0f0f0"><td class="entry"><b>width</b> (defined in <a class="el" href="classView.html">View</a>)</td><td class="entry"><a class="el" href="classView.html">View</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
-  <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>win</b> (defined in <a class="el" href="classView.html">View</a>)</td><td class="entry"><a class="el" href="classView.html">View</a></td><td class="entry"><span class="mlabel">protected</span><span class="mlabel">static</span></td></tr>
-  <tr bgcolor="#f0f0f0"><td class="entry"><b>worker</b>(void) (defined in <a class="el" href="classViewMonitor.html">ViewMonitor</a>)</td><td class="entry"><a class="el" href="classViewMonitor.html">ViewMonitor</a></td><td class="entry"><span class="mlabel">protected</span><span class="mlabel">virtual</span></td></tr>
-  <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>~View</b>(void) (defined in <a class="el" href="classView.html">View</a>)</td><td class="entry"><a class="el" href="classView.html">View</a></td><td class="entry"><span class="mlabel">virtual</span></td></tr>
-</table></div><!-- contents -->
-<!-- start footer part -->
-<hr class="footer"/><address class="footer"><small>
-Generated on Fri Jun 7 2019 14:50:45 for B15F by &#160;<a href="http://www.doxygen.org/index.html">
-<img class="footer" src="doxygen.png" alt="doxygen"/>
-</a> 1.8.16
-</small></address>
-</body>
-</html>
diff --git a/docs/html/classViewMonitor.html b/docs/html/classViewMonitor.html
deleted file mode 100644
index 55c6a73..0000000
--- a/docs/html/classViewMonitor.html
+++ /dev/null
@@ -1,205 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml">
-<head>
-<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
-<meta http-equiv="X-UA-Compatible" content="IE=9"/>
-<meta name="generator" content="Doxygen 1.8.16"/>
-<meta name="viewport" content="width=device-width, initial-scale=1"/>
-<title>B15F: ViewMonitor 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">B15F
-   </div>
-   <div id="projectbrief">Board 15 Famulus Edition</div>
-  </td>
- </tr>
- </tbody>
-</table>
-</div>
-<!-- end header part -->
-<!-- Generated by Doxygen 1.8.16 -->
-<script type="text/javascript">
-/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
-var searchBox = new SearchBox("searchBox", "search",false,'Search');
-/* @license-end */
-</script>
-<script type="text/javascript" src="menudata.js"></script>
-<script type="text/javascript" src="menu.js"></script>
-<script type="text/javascript">
-/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
-$(function() {
-  initMenu('',true,false,'search.php','Search');
-  $(document).ready(function() { init_search(); });
-});
-/* @license-end */</script>
-<div id="main-nav"></div>
-<!-- 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-methods">Public Member Functions</a> &#124;
-<a href="#pro-methods">Protected Member Functions</a> &#124;
-<a href="#pro-attribs">Protected Attributes</a> &#124;
-<a href="classViewMonitor-members.html">List of all members</a>  </div>
-  <div class="headertitle">
-<div class="title">ViewMonitor Class Reference</div>  </div>
-</div><!--header-->
-<div class="contents">
-
-<p><code>#include &lt;<a class="el" href="view__monitor_8h_source.html">view_monitor.h</a>&gt;</code></p>
-<div id="dynsection-0" onclick="return toggleVisibility(this)" class="dynheader closed" style="cursor:pointer;">
-  <img id="dynsection-0-trigger" src="closed.png" alt="+"/> Inheritance diagram for ViewMonitor:</div>
-<div id="dynsection-0-summary" class="dynsummary" style="display:block;">
-</div>
-<div id="dynsection-0-content" class="dyncontent" style="display:none;">
- <div class="center">
-  <img src="classViewMonitor.png" usemap="#ViewMonitor_map" alt=""/>
-  <map id="ViewMonitor_map" name="ViewMonitor_map">
-<area href="classViewInfo.html" alt="ViewInfo" shape="rect" coords="0,56,83,80"/>
-<area href="classView.html" alt="View" shape="rect" coords="0,0,83,24"/>
-  </map>
-</div></div>
-<table class="memberdecls">
-<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-methods"></a>
-Public Member Functions</h2></td></tr>
-<tr class="memitem:a2224002fe45655df87130fe07a161693"><td class="memItemLeft" align="right" valign="top"><a id="a2224002fe45655df87130fe07a161693"></a>
-virtual call_t&#160;</td><td class="memItemRight" valign="bottom"><b>keypress</b> (int &amp;key) override</td></tr>
-<tr class="separator:a2224002fe45655df87130fe07a161693"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="inherit_header pub_methods_classViewInfo"><td colspan="2" onclick="javascript:toggleInherit('pub_methods_classViewInfo')"><img src="closed.png" alt="-"/>&#160;Public Member Functions inherited from <a class="el" href="classViewInfo.html">ViewInfo</a></td></tr>
-<tr class="memitem:abc93067b319df17e19f013a86d762f81 inherit pub_methods_classViewInfo"><td class="memItemLeft" align="right" valign="top"><a id="abc93067b319df17e19f013a86d762f81"></a>
-virtual void&#160;</td><td class="memItemRight" valign="bottom"><b>setText</b> (std::string text)</td></tr>
-<tr class="separator:abc93067b319df17e19f013a86d762f81 inherit pub_methods_classViewInfo"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a4c3db4806515ea8b0f07a9864f983377 inherit pub_methods_classViewInfo"><td class="memItemLeft" align="right" valign="top"><a id="a4c3db4806515ea8b0f07a9864f983377"></a>
-virtual void&#160;</td><td class="memItemRight" valign="bottom"><b>setLabelClose</b> (std::string label)</td></tr>
-<tr class="separator:a4c3db4806515ea8b0f07a9864f983377 inherit pub_methods_classViewInfo"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a45fd0b8b96d15fd92824ce63fb6814ca inherit pub_methods_classViewInfo"><td class="memItemLeft" align="right" valign="top"><a id="a45fd0b8b96d15fd92824ce63fb6814ca"></a>
-virtual void&#160;</td><td class="memItemRight" valign="bottom"><b>setCall</b> (call_t call)</td></tr>
-<tr class="separator:a45fd0b8b96d15fd92824ce63fb6814ca inherit pub_methods_classViewInfo"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ab7f9ea145f8cf26dbd27e29982cda206 inherit pub_methods_classViewInfo"><td class="memItemLeft" align="right" valign="top"><a id="ab7f9ea145f8cf26dbd27e29982cda206"></a>
-virtual void&#160;</td><td class="memItemRight" valign="bottom"><b>draw</b> (void) override</td></tr>
-<tr class="separator:ab7f9ea145f8cf26dbd27e29982cda206 inherit pub_methods_classViewInfo"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="inherit_header pub_methods_classView"><td colspan="2" onclick="javascript:toggleInherit('pub_methods_classView')"><img src="closed.png" alt="-"/>&#160;Public Member Functions inherited from <a class="el" href="classView.html">View</a></td></tr>
-<tr class="memitem:a6c725e4d83fd7474635a7e64200c7a08 inherit pub_methods_classView"><td class="memItemLeft" align="right" valign="top"><a id="a6c725e4d83fd7474635a7e64200c7a08"></a>
-virtual void&#160;</td><td class="memItemRight" valign="bottom"><b>setTitle</b> (std::string title)</td></tr>
-<tr class="separator:a6c725e4d83fd7474635a7e64200c7a08 inherit pub_methods_classView"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:aa7b1f1179e3c4f06bef1e99355d0d592 inherit pub_methods_classView"><td class="memItemLeft" align="right" valign="top"><a id="aa7b1f1179e3c4f06bef1e99355d0d592"></a>
-virtual void&#160;</td><td class="memItemRight" valign="bottom"><b>repaint</b> (void)</td></tr>
-<tr class="separator:aa7b1f1179e3c4f06bef1e99355d0d592 inherit pub_methods_classView"><td class="memSeparator" colspan="2">&#160;</td></tr>
-</table><table class="memberdecls">
-<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pro-methods"></a>
-Protected Member Functions</h2></td></tr>
-<tr class="memitem:a245a1dc3cc43a84f63e1175a195581a2"><td class="memItemLeft" align="right" valign="top"><a id="a245a1dc3cc43a84f63e1175a195581a2"></a>
-virtual void&#160;</td><td class="memItemRight" valign="bottom"><b>worker</b> (void)</td></tr>
-<tr class="separator:a245a1dc3cc43a84f63e1175a195581a2"><td class="memSeparator" colspan="2">&#160;</td></tr>
-</table><table class="memberdecls">
-<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pro-attribs"></a>
-Protected Attributes</h2></td></tr>
-<tr class="memitem:a79a68894c0a05422b5707202d28a6db0"><td class="memItemLeft" align="right" valign="top"><a id="a79a68894c0a05422b5707202d28a6db0"></a>
-volatile bool&#160;</td><td class="memItemRight" valign="bottom"><b>run_worker</b> = true</td></tr>
-<tr class="separator:a79a68894c0a05422b5707202d28a6db0"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a377eb8deab3061aa4e084be9b791c056"><td class="memItemLeft" align="right" valign="top"><a id="a377eb8deab3061aa4e084be9b791c056"></a>
-std::thread&#160;</td><td class="memItemRight" valign="bottom"><b>t_worker</b></td></tr>
-<tr class="separator:a377eb8deab3061aa4e084be9b791c056"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="inherit_header pro_attribs_classViewInfo"><td colspan="2" onclick="javascript:toggleInherit('pro_attribs_classViewInfo')"><img src="closed.png" alt="-"/>&#160;Protected Attributes inherited from <a class="el" href="classViewInfo.html">ViewInfo</a></td></tr>
-<tr class="memitem:ac392a569ef16af3dc11ee659f3fa1eb4 inherit pro_attribs_classViewInfo"><td class="memItemLeft" align="right" valign="top"><a id="ac392a569ef16af3dc11ee659f3fa1eb4"></a>
-std::string&#160;</td><td class="memItemRight" valign="bottom"><b>text</b></td></tr>
-<tr class="separator:ac392a569ef16af3dc11ee659f3fa1eb4 inherit pro_attribs_classViewInfo"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a34879bd1c0a8fe230429cc600dcd6739 inherit pro_attribs_classViewInfo"><td class="memItemLeft" align="right" valign="top"><a id="a34879bd1c0a8fe230429cc600dcd6739"></a>
-std::string&#160;</td><td class="memItemRight" valign="bottom"><b>label_close</b></td></tr>
-<tr class="separator:a34879bd1c0a8fe230429cc600dcd6739 inherit pro_attribs_classViewInfo"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ae4dab70d82761e0f59f51dcae79685fe inherit pro_attribs_classViewInfo"><td class="memItemLeft" align="right" valign="top"><a id="ae4dab70d82761e0f59f51dcae79685fe"></a>
-int&#160;</td><td class="memItemRight" valign="bottom"><b>close_offset_x</b> = 0</td></tr>
-<tr class="separator:ae4dab70d82761e0f59f51dcae79685fe inherit pro_attribs_classViewInfo"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a5954adf853cb44d4655ede731faf1a28 inherit pro_attribs_classViewInfo"><td class="memItemLeft" align="right" valign="top"><a id="a5954adf853cb44d4655ede731faf1a28"></a>
-int&#160;</td><td class="memItemRight" valign="bottom"><b>close_offset_y</b> = 0</td></tr>
-<tr class="separator:a5954adf853cb44d4655ede731faf1a28 inherit pro_attribs_classViewInfo"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="inherit_header pro_attribs_classView"><td colspan="2" onclick="javascript:toggleInherit('pro_attribs_classView')"><img src="closed.png" alt="-"/>&#160;Protected Attributes inherited from <a class="el" href="classView.html">View</a></td></tr>
-<tr class="memitem:ae039aa744b085db819ae149705b2c32b inherit pro_attribs_classView"><td class="memItemLeft" align="right" valign="top"><a id="ae039aa744b085db819ae149705b2c32b"></a>
-int&#160;</td><td class="memItemRight" valign="bottom"><b>width</b></td></tr>
-<tr class="separator:ae039aa744b085db819ae149705b2c32b inherit pro_attribs_classView"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a6e3e5c18893617490f02166641356746 inherit pro_attribs_classView"><td class="memItemLeft" align="right" valign="top"><a id="a6e3e5c18893617490f02166641356746"></a>
-int&#160;</td><td class="memItemRight" valign="bottom"><b>height</b></td></tr>
-<tr class="separator:a6e3e5c18893617490f02166641356746 inherit pro_attribs_classView"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a9fc9f3b0c876d063e6f57dee320a43fe inherit pro_attribs_classView"><td class="memItemLeft" align="right" valign="top"><a id="a9fc9f3b0c876d063e6f57dee320a43fe"></a>
-int&#160;</td><td class="memItemRight" valign="bottom"><b>start_x</b> = 0</td></tr>
-<tr class="separator:a9fc9f3b0c876d063e6f57dee320a43fe inherit pro_attribs_classView"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ac424db4c13776c3ce9d33f9074dfcfaa inherit pro_attribs_classView"><td class="memItemLeft" align="right" valign="top"><a id="ac424db4c13776c3ce9d33f9074dfcfaa"></a>
-int&#160;</td><td class="memItemRight" valign="bottom"><b>start_y</b> = 0</td></tr>
-<tr class="separator:ac424db4c13776c3ce9d33f9074dfcfaa inherit pro_attribs_classView"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a80441aa81b52e04677a2aa2bd9c47753 inherit pro_attribs_classView"><td class="memItemLeft" align="right" valign="top"><a id="a80441aa81b52e04677a2aa2bd9c47753"></a>
-std::string&#160;</td><td class="memItemRight" valign="bottom"><b>title</b></td></tr>
-<tr class="separator:a80441aa81b52e04677a2aa2bd9c47753 inherit pro_attribs_classView"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a610367214a727e2f7da72ac5bdb60fa3 inherit pro_attribs_classView"><td class="memItemLeft" align="right" valign="top"><a id="a610367214a727e2f7da72ac5bdb60fa3"></a>
-std::vector&lt; call_t &gt;&#160;</td><td class="memItemRight" valign="bottom"><b>calls</b></td></tr>
-<tr class="separator:a610367214a727e2f7da72ac5bdb60fa3 inherit pro_attribs_classView"><td class="memSeparator" colspan="2">&#160;</td></tr>
-</table><table class="memberdecls">
-<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="inherited"></a>
-Additional Inherited Members</h2></td></tr>
-<tr class="inherit_header pub_static_methods_classView"><td colspan="2" onclick="javascript:toggleInherit('pub_static_methods_classView')"><img src="closed.png" alt="-"/>&#160;Static Public Member Functions inherited from <a class="el" href="classView.html">View</a></td></tr>
-<tr class="memitem:a990aa2223befde031dfcce54a740c558 inherit pub_static_methods_classView"><td class="memItemLeft" align="right" valign="top"><a id="a990aa2223befde031dfcce54a740c558"></a>
-static void&#160;</td><td class="memItemRight" valign="bottom"><b>setWinContext</b> (WINDOW *win)</td></tr>
-<tr class="separator:a990aa2223befde031dfcce54a740c558 inherit pub_static_methods_classView"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a0710c6ba06e3795e7ddf369361308b79 inherit pub_static_methods_classView"><td class="memItemLeft" align="right" valign="top"><a id="a0710c6ba06e3795e7ddf369361308b79"></a>
-static WINDOW *&#160;</td><td class="memItemRight" valign="bottom"><b>getWinContext</b> (void)</td></tr>
-<tr class="separator:a0710c6ba06e3795e7ddf369361308b79 inherit pub_static_methods_classView"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a52c2e2a7bc56388e7d9bfa398ad52668 inherit pub_static_methods_classView"><td class="memItemLeft" align="right" valign="top"><a id="a52c2e2a7bc56388e7d9bfa398ad52668"></a>
-static std::vector&lt; std::string &gt;&#160;</td><td class="memItemRight" valign="bottom"><b>str_split</b> (const std::string &amp;str, const std::string delim)</td></tr>
-<tr class="separator:a52c2e2a7bc56388e7d9bfa398ad52668 inherit pub_static_methods_classView"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="inherit_header pro_static_attribs_classViewInfo"><td colspan="2" onclick="javascript:toggleInherit('pro_static_attribs_classViewInfo')"><img src="closed.png" alt="-"/>&#160;Static Protected Attributes inherited from <a class="el" href="classViewInfo.html">ViewInfo</a></td></tr>
-<tr class="memitem:a4681a8138f17ea229aca02e6db7357cd inherit pro_static_attribs_classViewInfo"><td class="memItemLeft" align="right" valign="top"><a id="a4681a8138f17ea229aca02e6db7357cd"></a>
-constexpr static int&#160;</td><td class="memItemRight" valign="bottom"><b>text_offset_x</b> = 2</td></tr>
-<tr class="separator:a4681a8138f17ea229aca02e6db7357cd inherit pro_static_attribs_classViewInfo"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a34a9239c8954a0c27a22cf44d112f5b8 inherit pro_static_attribs_classViewInfo"><td class="memItemLeft" align="right" valign="top"><a id="a34a9239c8954a0c27a22cf44d112f5b8"></a>
-constexpr static int&#160;</td><td class="memItemRight" valign="bottom"><b>text_offset_y</b> = 3</td></tr>
-<tr class="separator:a34a9239c8954a0c27a22cf44d112f5b8 inherit pro_static_attribs_classViewInfo"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="inherit_header pro_static_attribs_classView"><td colspan="2" onclick="javascript:toggleInherit('pro_static_attribs_classView')"><img src="closed.png" alt="-"/>&#160;Static Protected Attributes inherited from <a class="el" href="classView.html">View</a></td></tr>
-<tr class="memitem:a5ddee2bf0b26dbcfa7780be17ff33dd7 inherit pro_static_attribs_classView"><td class="memItemLeft" align="right" valign="top"><a id="a5ddee2bf0b26dbcfa7780be17ff33dd7"></a>
-static WINDOW *&#160;</td><td class="memItemRight" valign="bottom"><b>win</b> = nullptr</td></tr>
-<tr class="separator:a5ddee2bf0b26dbcfa7780be17ff33dd7 inherit pro_static_attribs_classView"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a3554cf8689cad24c643665aa3d182134 inherit pro_static_attribs_classView"><td class="memItemLeft" align="right" valign="top"><a id="a3554cf8689cad24c643665aa3d182134"></a>
-constexpr static int&#160;</td><td class="memItemRight" valign="bottom"><b>KEY_ENT</b> = 10</td></tr>
-<tr class="separator:a3554cf8689cad24c643665aa3d182134 inherit pro_static_attribs_classView"><td class="memSeparator" colspan="2">&#160;</td></tr>
-</table>
-<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
-<div class="textblock"><p><a class="el" href="classView.html">View</a> to display all B15 inputs. </p>
-
-<p class="definition">Definition at line <a class="el" href="view__monitor_8h_source.html#l00013">13</a> of file <a class="el" href="view__monitor_8h_source.html">view_monitor.h</a>.</p>
-</div><hr/>The documentation for this class was generated from the following files:<ul>
-<li>ui/<a class="el" href="view__monitor_8h_source.html">view_monitor.h</a></li>
-<li>ui/<a class="el" href="view__monitor_8cpp_source.html">view_monitor.cpp</a></li>
-</ul>
-</div><!-- contents -->
-<!-- start footer part -->
-<hr class="footer"/><address class="footer"><small>
-Generated on Fri Jun 7 2019 14:50:45 for B15F by &#160;<a href="http://www.doxygen.org/index.html">
-<img class="footer" src="doxygen.png" alt="doxygen"/>
-</a> 1.8.16
-</small></address>
-</body>
-</html>
diff --git a/docs/html/classViewMonitor.png b/docs/html/classViewMonitor.png
deleted file mode 100644
index 08ea716..0000000
Binary files a/docs/html/classViewMonitor.png and /dev/null differ
diff --git a/docs/html/classViewPromt-members.html b/docs/html/classViewPromt-members.html
deleted file mode 100644
index 6d627cd..0000000
--- a/docs/html/classViewPromt-members.html
+++ /dev/null
@@ -1,113 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml">
-<head>
-<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
-<meta http-equiv="X-UA-Compatible" content="IE=9"/>
-<meta name="generator" content="Doxygen 1.8.16"/>
-<meta name="viewport" content="width=device-width, initial-scale=1"/>
-<title>B15F: 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">B15F
-   </div>
-   <div id="projectbrief">Board 15 Famulus Edition</div>
-  </td>
- </tr>
- </tbody>
-</table>
-</div>
-<!-- end header part -->
-<!-- Generated by Doxygen 1.8.16 -->
-<script type="text/javascript">
-/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
-var searchBox = new SearchBox("searchBox", "search",false,'Search');
-/* @license-end */
-</script>
-<script type="text/javascript" src="menudata.js"></script>
-<script type="text/javascript" src="menu.js"></script>
-<script type="text/javascript">
-/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
-$(function() {
-  initMenu('',true,false,'search.php','Search');
-  $(document).ready(function() { init_search(); });
-});
-/* @license-end */</script>
-<div id="main-nav"></div>
-<!-- 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">ViewPromt Member List</div>  </div>
-</div><!--header-->
-<div class="contents">
-
-<p>This is the complete list of members for <a class="el" href="classViewPromt.html">ViewPromt</a>, including all inherited members.</p>
-<table class="directory">
-  <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>button_offset_x</b> (defined in <a class="el" href="classViewPromt.html">ViewPromt</a>)</td><td class="entry"><a class="el" href="classViewPromt.html">ViewPromt</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
-  <tr bgcolor="#f0f0f0"><td class="entry"><b>button_offset_y</b> (defined in <a class="el" href="classViewPromt.html">ViewPromt</a>)</td><td class="entry"><a class="el" href="classViewPromt.html">ViewPromt</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
-  <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>call_confirm</b> (defined in <a class="el" href="classViewPromt.html">ViewPromt</a>)</td><td class="entry"><a class="el" href="classViewPromt.html">ViewPromt</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
-  <tr bgcolor="#f0f0f0"><td class="entry"><b>calls</b> (defined in <a class="el" href="classView.html">View</a>)</td><td class="entry"><a class="el" href="classView.html">View</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
-  <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>cancelable</b> (defined in <a class="el" href="classViewPromt.html">ViewPromt</a>)</td><td class="entry"><a class="el" href="classViewPromt.html">ViewPromt</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
-  <tr bgcolor="#f0f0f0"><td class="entry"><b>draw</b>(void) override (defined in <a class="el" href="classViewPromt.html">ViewPromt</a>)</td><td class="entry"><a class="el" href="classViewPromt.html">ViewPromt</a></td><td class="entry"><span class="mlabel">virtual</span></td></tr>
-  <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>getInput</b>(void) (defined in <a class="el" href="classViewPromt.html">ViewPromt</a>)</td><td class="entry"><a class="el" href="classViewPromt.html">ViewPromt</a></td><td class="entry"><span class="mlabel">virtual</span></td></tr>
-  <tr bgcolor="#f0f0f0"><td class="entry"><b>getWinContext</b>(void) (defined in <a class="el" href="classView.html">View</a>)</td><td class="entry"><a class="el" href="classView.html">View</a></td><td class="entry"><span class="mlabel">static</span></td></tr>
-  <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>height</b> (defined in <a class="el" href="classView.html">View</a>)</td><td class="entry"><a class="el" href="classView.html">View</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
-  <tr bgcolor="#f0f0f0"><td class="entry"><b>input</b> (defined in <a class="el" href="classViewPromt.html">ViewPromt</a>)</td><td class="entry"><a class="el" href="classViewPromt.html">ViewPromt</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
-  <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>KEY_ENT</b> (defined in <a class="el" href="classView.html">View</a>)</td><td class="entry"><a class="el" href="classView.html">View</a></td><td class="entry"><span class="mlabel">protected</span><span class="mlabel">static</span></td></tr>
-  <tr bgcolor="#f0f0f0"><td class="entry"><b>keypress</b>(int &amp;key) override (defined in <a class="el" href="classViewPromt.html">ViewPromt</a>)</td><td class="entry"><a class="el" href="classViewPromt.html">ViewPromt</a></td><td class="entry"><span class="mlabel">virtual</span></td></tr>
-  <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>label_cancel</b> (defined in <a class="el" href="classViewPromt.html">ViewPromt</a>)</td><td class="entry"><a class="el" href="classViewPromt.html">ViewPromt</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
-  <tr bgcolor="#f0f0f0"><td class="entry"><b>label_confirm</b> (defined in <a class="el" href="classViewPromt.html">ViewPromt</a>)</td><td class="entry"><a class="el" href="classViewPromt.html">ViewPromt</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
-  <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>message</b> (defined in <a class="el" href="classViewPromt.html">ViewPromt</a>)</td><td class="entry"><a class="el" href="classViewPromt.html">ViewPromt</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
-  <tr bgcolor="#f0f0f0"><td class="entry"><b>repaint</b>(void) (defined in <a class="el" href="classView.html">View</a>)</td><td class="entry"><a class="el" href="classView.html">View</a></td><td class="entry"><span class="mlabel">virtual</span></td></tr>
-  <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>selection</b> (defined in <a class="el" href="classViewPromt.html">ViewPromt</a>)</td><td class="entry"><a class="el" href="classViewPromt.html">ViewPromt</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
-  <tr bgcolor="#f0f0f0"><td class="entry"><b>sep</b> (defined in <a class="el" href="classViewPromt.html">ViewPromt</a>)</td><td class="entry"><a class="el" href="classViewPromt.html">ViewPromt</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
-  <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>setCancel</b>(std::string name, bool cancelable) (defined in <a class="el" href="classViewPromt.html">ViewPromt</a>)</td><td class="entry"><a class="el" href="classViewPromt.html">ViewPromt</a></td><td class="entry"><span class="mlabel">virtual</span></td></tr>
-  <tr bgcolor="#f0f0f0"><td class="entry"><b>setConfirm</b>(std::string name, call_t call) (defined in <a class="el" href="classViewPromt.html">ViewPromt</a>)</td><td class="entry"><a class="el" href="classViewPromt.html">ViewPromt</a></td><td class="entry"><span class="mlabel">virtual</span></td></tr>
-  <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>setMessage</b>(std::string message) (defined in <a class="el" href="classViewPromt.html">ViewPromt</a>)</td><td class="entry"><a class="el" href="classViewPromt.html">ViewPromt</a></td><td class="entry"><span class="mlabel">virtual</span></td></tr>
-  <tr bgcolor="#f0f0f0"><td class="entry"><b>setTitle</b>(std::string title) (defined in <a class="el" href="classView.html">View</a>)</td><td class="entry"><a class="el" href="classView.html">View</a></td><td class="entry"><span class="mlabel">virtual</span></td></tr>
-  <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>setWinContext</b>(WINDOW *win) (defined in <a class="el" href="classView.html">View</a>)</td><td class="entry"><a class="el" href="classView.html">View</a></td><td class="entry"><span class="mlabel">static</span></td></tr>
-  <tr bgcolor="#f0f0f0"><td class="entry"><b>start_x</b> (defined in <a class="el" href="classView.html">View</a>)</td><td class="entry"><a class="el" href="classView.html">View</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
-  <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>start_y</b> (defined in <a class="el" href="classView.html">View</a>)</td><td class="entry"><a class="el" href="classView.html">View</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
-  <tr bgcolor="#f0f0f0"><td class="entry"><b>str_split</b>(const std::string &amp;str, const std::string delim) (defined in <a class="el" href="classView.html">View</a>)</td><td class="entry"><a class="el" href="classView.html">View</a></td><td class="entry"><span class="mlabel">static</span></td></tr>
-  <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>text_offset_x</b> (defined in <a class="el" href="classViewPromt.html">ViewPromt</a>)</td><td class="entry"><a class="el" href="classViewPromt.html">ViewPromt</a></td><td class="entry"><span class="mlabel">protected</span><span class="mlabel">static</span></td></tr>
-  <tr bgcolor="#f0f0f0"><td class="entry"><b>text_offset_y</b> (defined in <a class="el" href="classViewPromt.html">ViewPromt</a>)</td><td class="entry"><a class="el" href="classViewPromt.html">ViewPromt</a></td><td class="entry"><span class="mlabel">protected</span><span class="mlabel">static</span></td></tr>
-  <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>title</b> (defined in <a class="el" href="classView.html">View</a>)</td><td class="entry"><a class="el" href="classView.html">View</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
-  <tr bgcolor="#f0f0f0"><td class="entry"><b>View</b>(void) (defined in <a class="el" href="classView.html">View</a>)</td><td class="entry"><a class="el" href="classView.html">View</a></td><td class="entry"></td></tr>
-  <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>width</b> (defined in <a class="el" href="classView.html">View</a>)</td><td class="entry"><a class="el" href="classView.html">View</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
-  <tr bgcolor="#f0f0f0"><td class="entry"><b>win</b> (defined in <a class="el" href="classView.html">View</a>)</td><td class="entry"><a class="el" href="classView.html">View</a></td><td class="entry"><span class="mlabel">protected</span><span class="mlabel">static</span></td></tr>
-  <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>~View</b>(void) (defined in <a class="el" href="classView.html">View</a>)</td><td class="entry"><a class="el" href="classView.html">View</a></td><td class="entry"><span class="mlabel">virtual</span></td></tr>
-</table></div><!-- contents -->
-<!-- start footer part -->
-<hr class="footer"/><address class="footer"><small>
-Generated on Fri Jun 7 2019 14:50:45 for B15F by &#160;<a href="http://www.doxygen.org/index.html">
-<img class="footer" src="doxygen.png" alt="doxygen"/>
-</a> 1.8.16
-</small></address>
-</body>
-</html>
diff --git a/docs/html/classViewPromt.html b/docs/html/classViewPromt.html
deleted file mode 100644
index 8e6be9f..0000000
--- a/docs/html/classViewPromt.html
+++ /dev/null
@@ -1,213 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml">
-<head>
-<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
-<meta http-equiv="X-UA-Compatible" content="IE=9"/>
-<meta name="generator" content="Doxygen 1.8.16"/>
-<meta name="viewport" content="width=device-width, initial-scale=1"/>
-<title>B15F: ViewPromt 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">B15F
-   </div>
-   <div id="projectbrief">Board 15 Famulus Edition</div>
-  </td>
- </tr>
- </tbody>
-</table>
-</div>
-<!-- end header part -->
-<!-- Generated by Doxygen 1.8.16 -->
-<script type="text/javascript">
-/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
-var searchBox = new SearchBox("searchBox", "search",false,'Search');
-/* @license-end */
-</script>
-<script type="text/javascript" src="menudata.js"></script>
-<script type="text/javascript" src="menu.js"></script>
-<script type="text/javascript">
-/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
-$(function() {
-  initMenu('',true,false,'search.php','Search');
-  $(document).ready(function() { init_search(); });
-});
-/* @license-end */</script>
-<div id="main-nav"></div>
-<!-- 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-methods">Public Member Functions</a> &#124;
-<a href="#pro-attribs">Protected Attributes</a> &#124;
-<a href="#pro-static-attribs">Static Protected Attributes</a> &#124;
-<a href="classViewPromt-members.html">List of all members</a>  </div>
-  <div class="headertitle">
-<div class="title">ViewPromt Class Reference</div>  </div>
-</div><!--header-->
-<div class="contents">
-
-<p><code>#include &lt;<a class="el" href="view__promt_8h_source.html">view_promt.h</a>&gt;</code></p>
-<div id="dynsection-0" onclick="return toggleVisibility(this)" class="dynheader closed" style="cursor:pointer;">
-  <img id="dynsection-0-trigger" src="closed.png" alt="+"/> Inheritance diagram for ViewPromt:</div>
-<div id="dynsection-0-summary" class="dynsummary" style="display:block;">
-</div>
-<div id="dynsection-0-content" class="dyncontent" style="display:none;">
- <div class="center">
-  <img src="classViewPromt.png" usemap="#ViewPromt_map" alt=""/>
-  <map id="ViewPromt_map" name="ViewPromt_map">
-<area href="classView.html" alt="View" shape="rect" coords="0,0,72,24"/>
-  </map>
-</div></div>
-<table class="memberdecls">
-<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-methods"></a>
-Public Member Functions</h2></td></tr>
-<tr class="memitem:a8f3f805bece2a669f10e29d1d22a9de1"><td class="memItemLeft" align="right" valign="top"><a id="a8f3f805bece2a669f10e29d1d22a9de1"></a>
-virtual void&#160;</td><td class="memItemRight" valign="bottom"><b>draw</b> (void) override</td></tr>
-<tr class="separator:a8f3f805bece2a669f10e29d1d22a9de1"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ab67a9f9ecb7345f9cb3d7fb04145a81a"><td class="memItemLeft" align="right" valign="top"><a id="ab67a9f9ecb7345f9cb3d7fb04145a81a"></a>
-virtual void&#160;</td><td class="memItemRight" valign="bottom"><b>setMessage</b> (std::string message)</td></tr>
-<tr class="separator:ab67a9f9ecb7345f9cb3d7fb04145a81a"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:adbdbc4bd715637b97b9a60ddb8c7dcc6"><td class="memItemLeft" align="right" valign="top"><a id="adbdbc4bd715637b97b9a60ddb8c7dcc6"></a>
-virtual void&#160;</td><td class="memItemRight" valign="bottom"><b>setConfirm</b> (std::string name, call_t call)</td></tr>
-<tr class="separator:adbdbc4bd715637b97b9a60ddb8c7dcc6"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a4129b57bfeea20c328c6bbc93e226d45"><td class="memItemLeft" align="right" valign="top"><a id="a4129b57bfeea20c328c6bbc93e226d45"></a>
-virtual void&#160;</td><td class="memItemRight" valign="bottom"><b>setCancel</b> (std::string name, bool cancelable)</td></tr>
-<tr class="separator:a4129b57bfeea20c328c6bbc93e226d45"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:aa82bf5da77c041f733a0f29918c29319"><td class="memItemLeft" align="right" valign="top"><a id="aa82bf5da77c041f733a0f29918c29319"></a>
-virtual std::string&#160;</td><td class="memItemRight" valign="bottom"><b>getInput</b> (void)</td></tr>
-<tr class="separator:aa82bf5da77c041f733a0f29918c29319"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a24aa1e8887fc5e6631d6cb88adb7f3db"><td class="memItemLeft" align="right" valign="top"><a id="a24aa1e8887fc5e6631d6cb88adb7f3db"></a>
-virtual call_t&#160;</td><td class="memItemRight" valign="bottom"><b>keypress</b> (int &amp;key) override</td></tr>
-<tr class="separator:a24aa1e8887fc5e6631d6cb88adb7f3db"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="inherit_header pub_methods_classView"><td colspan="2" onclick="javascript:toggleInherit('pub_methods_classView')"><img src="closed.png" alt="-"/>&#160;Public Member Functions inherited from <a class="el" href="classView.html">View</a></td></tr>
-<tr class="memitem:a6c725e4d83fd7474635a7e64200c7a08 inherit pub_methods_classView"><td class="memItemLeft" align="right" valign="top"><a id="a6c725e4d83fd7474635a7e64200c7a08"></a>
-virtual void&#160;</td><td class="memItemRight" valign="bottom"><b>setTitle</b> (std::string title)</td></tr>
-<tr class="separator:a6c725e4d83fd7474635a7e64200c7a08 inherit pub_methods_classView"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:aa7b1f1179e3c4f06bef1e99355d0d592 inherit pub_methods_classView"><td class="memItemLeft" align="right" valign="top"><a id="aa7b1f1179e3c4f06bef1e99355d0d592"></a>
-virtual void&#160;</td><td class="memItemRight" valign="bottom"><b>repaint</b> (void)</td></tr>
-<tr class="separator:aa7b1f1179e3c4f06bef1e99355d0d592 inherit pub_methods_classView"><td class="memSeparator" colspan="2">&#160;</td></tr>
-</table><table class="memberdecls">
-<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pro-attribs"></a>
-Protected Attributes</h2></td></tr>
-<tr class="memitem:a86916a820e28320c91c9d053b350b9c9"><td class="memItemLeft" align="right" valign="top"><a id="a86916a820e28320c91c9d053b350b9c9"></a>
-size_t&#160;</td><td class="memItemRight" valign="bottom"><b>selection</b> = 1</td></tr>
-<tr class="separator:a86916a820e28320c91c9d053b350b9c9"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a02573b9ae37cf6c2adacd8f2a0152a38"><td class="memItemLeft" align="right" valign="top"><a id="a02573b9ae37cf6c2adacd8f2a0152a38"></a>
-std::string&#160;</td><td class="memItemRight" valign="bottom"><b>input</b></td></tr>
-<tr class="separator:a02573b9ae37cf6c2adacd8f2a0152a38"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a00aff1fb73dfe44595b259ca8c8b12af"><td class="memItemLeft" align="right" valign="top"><a id="a00aff1fb73dfe44595b259ca8c8b12af"></a>
-std::string&#160;</td><td class="memItemRight" valign="bottom"><b>message</b> = &quot;Input&quot;</td></tr>
-<tr class="separator:a00aff1fb73dfe44595b259ca8c8b12af"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a97f8bb434ac6663c64d41e95bad8a539"><td class="memItemLeft" align="right" valign="top"><a id="a97f8bb434ac6663c64d41e95bad8a539"></a>
-std::string&#160;</td><td class="memItemRight" valign="bottom"><b>label_confirm</b> = &quot;[ OK ]&quot;</td></tr>
-<tr class="separator:a97f8bb434ac6663c64d41e95bad8a539"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ad1491d50a47f70d0af91cc1db65ac18d"><td class="memItemLeft" align="right" valign="top"><a id="ad1491d50a47f70d0af91cc1db65ac18d"></a>
-std::string&#160;</td><td class="memItemRight" valign="bottom"><b>sep</b> = &quot; &quot;</td></tr>
-<tr class="separator:ad1491d50a47f70d0af91cc1db65ac18d"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a61c6061beeb27a1e3ffca87489ad5b7b"><td class="memItemLeft" align="right" valign="top"><a id="a61c6061beeb27a1e3ffca87489ad5b7b"></a>
-std::string&#160;</td><td class="memItemRight" valign="bottom"><b>label_cancel</b> = &quot;[ Cancel ]&quot;</td></tr>
-<tr class="separator:a61c6061beeb27a1e3ffca87489ad5b7b"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a29288778b003ec44e8a3b72edcada99c"><td class="memItemLeft" align="right" valign="top"><a id="a29288778b003ec44e8a3b72edcada99c"></a>
-call_t&#160;</td><td class="memItemRight" valign="bottom"><b>call_confirm</b> = nullptr</td></tr>
-<tr class="separator:a29288778b003ec44e8a3b72edcada99c"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a941325e694e0e2f42e42f7b9b6ecf3e0"><td class="memItemLeft" align="right" valign="top"><a id="a941325e694e0e2f42e42f7b9b6ecf3e0"></a>
-bool&#160;</td><td class="memItemRight" valign="bottom"><b>cancelable</b> = true</td></tr>
-<tr class="separator:a941325e694e0e2f42e42f7b9b6ecf3e0"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a0e23911230a135f02d3108864a1a2c94"><td class="memItemLeft" align="right" valign="top"><a id="a0e23911230a135f02d3108864a1a2c94"></a>
-int&#160;</td><td class="memItemRight" valign="bottom"><b>button_offset_x</b> = 0</td></tr>
-<tr class="separator:a0e23911230a135f02d3108864a1a2c94"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a4781094c5c3dede08f38906fca0a53c3"><td class="memItemLeft" align="right" valign="top"><a id="a4781094c5c3dede08f38906fca0a53c3"></a>
-int&#160;</td><td class="memItemRight" valign="bottom"><b>button_offset_y</b> = 0</td></tr>
-<tr class="separator:a4781094c5c3dede08f38906fca0a53c3"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="inherit_header pro_attribs_classView"><td colspan="2" onclick="javascript:toggleInherit('pro_attribs_classView')"><img src="closed.png" alt="-"/>&#160;Protected Attributes inherited from <a class="el" href="classView.html">View</a></td></tr>
-<tr class="memitem:ae039aa744b085db819ae149705b2c32b inherit pro_attribs_classView"><td class="memItemLeft" align="right" valign="top"><a id="ae039aa744b085db819ae149705b2c32b"></a>
-int&#160;</td><td class="memItemRight" valign="bottom"><b>width</b></td></tr>
-<tr class="separator:ae039aa744b085db819ae149705b2c32b inherit pro_attribs_classView"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a6e3e5c18893617490f02166641356746 inherit pro_attribs_classView"><td class="memItemLeft" align="right" valign="top"><a id="a6e3e5c18893617490f02166641356746"></a>
-int&#160;</td><td class="memItemRight" valign="bottom"><b>height</b></td></tr>
-<tr class="separator:a6e3e5c18893617490f02166641356746 inherit pro_attribs_classView"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a9fc9f3b0c876d063e6f57dee320a43fe inherit pro_attribs_classView"><td class="memItemLeft" align="right" valign="top"><a id="a9fc9f3b0c876d063e6f57dee320a43fe"></a>
-int&#160;</td><td class="memItemRight" valign="bottom"><b>start_x</b> = 0</td></tr>
-<tr class="separator:a9fc9f3b0c876d063e6f57dee320a43fe inherit pro_attribs_classView"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ac424db4c13776c3ce9d33f9074dfcfaa inherit pro_attribs_classView"><td class="memItemLeft" align="right" valign="top"><a id="ac424db4c13776c3ce9d33f9074dfcfaa"></a>
-int&#160;</td><td class="memItemRight" valign="bottom"><b>start_y</b> = 0</td></tr>
-<tr class="separator:ac424db4c13776c3ce9d33f9074dfcfaa inherit pro_attribs_classView"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a80441aa81b52e04677a2aa2bd9c47753 inherit pro_attribs_classView"><td class="memItemLeft" align="right" valign="top"><a id="a80441aa81b52e04677a2aa2bd9c47753"></a>
-std::string&#160;</td><td class="memItemRight" valign="bottom"><b>title</b></td></tr>
-<tr class="separator:a80441aa81b52e04677a2aa2bd9c47753 inherit pro_attribs_classView"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a610367214a727e2f7da72ac5bdb60fa3 inherit pro_attribs_classView"><td class="memItemLeft" align="right" valign="top"><a id="a610367214a727e2f7da72ac5bdb60fa3"></a>
-std::vector&lt; call_t &gt;&#160;</td><td class="memItemRight" valign="bottom"><b>calls</b></td></tr>
-<tr class="separator:a610367214a727e2f7da72ac5bdb60fa3 inherit pro_attribs_classView"><td class="memSeparator" colspan="2">&#160;</td></tr>
-</table><table class="memberdecls">
-<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pro-static-attribs"></a>
-Static Protected Attributes</h2></td></tr>
-<tr class="memitem:acc22bf152b511eeaa1d056927fe556ff"><td class="memItemLeft" align="right" valign="top"><a id="acc22bf152b511eeaa1d056927fe556ff"></a>
-constexpr static int&#160;</td><td class="memItemRight" valign="bottom"><b>text_offset_x</b> = 2</td></tr>
-<tr class="separator:acc22bf152b511eeaa1d056927fe556ff"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a87c3e5440179a1b36c616489b5c29787"><td class="memItemLeft" align="right" valign="top"><a id="a87c3e5440179a1b36c616489b5c29787"></a>
-constexpr static int&#160;</td><td class="memItemRight" valign="bottom"><b>text_offset_y</b> = 2</td></tr>
-<tr class="separator:a87c3e5440179a1b36c616489b5c29787"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="inherit_header pro_static_attribs_classView"><td colspan="2" onclick="javascript:toggleInherit('pro_static_attribs_classView')"><img src="closed.png" alt="-"/>&#160;Static Protected Attributes inherited from <a class="el" href="classView.html">View</a></td></tr>
-<tr class="memitem:a5ddee2bf0b26dbcfa7780be17ff33dd7 inherit pro_static_attribs_classView"><td class="memItemLeft" align="right" valign="top"><a id="a5ddee2bf0b26dbcfa7780be17ff33dd7"></a>
-static WINDOW *&#160;</td><td class="memItemRight" valign="bottom"><b>win</b> = nullptr</td></tr>
-<tr class="separator:a5ddee2bf0b26dbcfa7780be17ff33dd7 inherit pro_static_attribs_classView"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a3554cf8689cad24c643665aa3d182134 inherit pro_static_attribs_classView"><td class="memItemLeft" align="right" valign="top"><a id="a3554cf8689cad24c643665aa3d182134"></a>
-constexpr static int&#160;</td><td class="memItemRight" valign="bottom"><b>KEY_ENT</b> = 10</td></tr>
-<tr class="separator:a3554cf8689cad24c643665aa3d182134 inherit pro_static_attribs_classView"><td class="memSeparator" colspan="2">&#160;</td></tr>
-</table><table class="memberdecls">
-<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="inherited"></a>
-Additional Inherited Members</h2></td></tr>
-<tr class="inherit_header pub_static_methods_classView"><td colspan="2" onclick="javascript:toggleInherit('pub_static_methods_classView')"><img src="closed.png" alt="-"/>&#160;Static Public Member Functions inherited from <a class="el" href="classView.html">View</a></td></tr>
-<tr class="memitem:a990aa2223befde031dfcce54a740c558 inherit pub_static_methods_classView"><td class="memItemLeft" align="right" valign="top"><a id="a990aa2223befde031dfcce54a740c558"></a>
-static void&#160;</td><td class="memItemRight" valign="bottom"><b>setWinContext</b> (WINDOW *win)</td></tr>
-<tr class="separator:a990aa2223befde031dfcce54a740c558 inherit pub_static_methods_classView"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a0710c6ba06e3795e7ddf369361308b79 inherit pub_static_methods_classView"><td class="memItemLeft" align="right" valign="top"><a id="a0710c6ba06e3795e7ddf369361308b79"></a>
-static WINDOW *&#160;</td><td class="memItemRight" valign="bottom"><b>getWinContext</b> (void)</td></tr>
-<tr class="separator:a0710c6ba06e3795e7ddf369361308b79 inherit pub_static_methods_classView"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a52c2e2a7bc56388e7d9bfa398ad52668 inherit pub_static_methods_classView"><td class="memItemLeft" align="right" valign="top"><a id="a52c2e2a7bc56388e7d9bfa398ad52668"></a>
-static std::vector&lt; std::string &gt;&#160;</td><td class="memItemRight" valign="bottom"><b>str_split</b> (const std::string &amp;str, const std::string delim)</td></tr>
-<tr class="separator:a52c2e2a7bc56388e7d9bfa398ad52668 inherit pub_static_methods_classView"><td class="memSeparator" colspan="2">&#160;</td></tr>
-</table>
-<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
-<div class="textblock"><p><a class="el" href="classView.html">View</a> for basic user text input. </p>
-
-<p class="definition">Definition at line <a class="el" href="view__promt_8h_source.html#l00010">10</a> of file <a class="el" href="view__promt_8h_source.html">view_promt.h</a>.</p>
-</div><hr/>The documentation for this class was generated from the following files:<ul>
-<li>ui/<a class="el" href="view__promt_8h_source.html">view_promt.h</a></li>
-<li>ui/<a class="el" href="view__promt_8cpp_source.html">view_promt.cpp</a></li>
-</ul>
-</div><!-- contents -->
-<!-- start footer part -->
-<hr class="footer"/><address class="footer"><small>
-Generated on Fri Jun 7 2019 14:50:45 for B15F by &#160;<a href="http://www.doxygen.org/index.html">
-<img class="footer" src="doxygen.png" alt="doxygen"/>
-</a> 1.8.16
-</small></address>
-</body>
-</html>
diff --git a/docs/html/classViewPromt.png b/docs/html/classViewPromt.png
deleted file mode 100644
index 525a1d7..0000000
Binary files a/docs/html/classViewPromt.png and /dev/null differ
diff --git a/docs/html/classViewSelection-members.html b/docs/html/classViewSelection-members.html
deleted file mode 100644
index a58598f..0000000
--- a/docs/html/classViewSelection-members.html
+++ /dev/null
@@ -1,102 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml">
-<head>
-<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
-<meta http-equiv="X-UA-Compatible" content="IE=9"/>
-<meta name="generator" content="Doxygen 1.8.16"/>
-<meta name="viewport" content="width=device-width, initial-scale=1"/>
-<title>B15F: 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">B15F
-   </div>
-   <div id="projectbrief">Board 15 Famulus Edition</div>
-  </td>
- </tr>
- </tbody>
-</table>
-</div>
-<!-- end header part -->
-<!-- Generated by Doxygen 1.8.16 -->
-<script type="text/javascript">
-/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
-var searchBox = new SearchBox("searchBox", "search",false,'Search');
-/* @license-end */
-</script>
-<script type="text/javascript" src="menudata.js"></script>
-<script type="text/javascript" src="menu.js"></script>
-<script type="text/javascript">
-/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
-$(function() {
-  initMenu('',true,false,'search.php','Search');
-  $(document).ready(function() { init_search(); });
-});
-/* @license-end */</script>
-<div id="main-nav"></div>
-<!-- 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">ViewSelection Member List</div>  </div>
-</div><!--header-->
-<div class="contents">
-
-<p>This is the complete list of members for <a class="el" href="classViewSelection.html">ViewSelection</a>, including all inherited members.</p>
-<table class="directory">
-  <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>addChoice</b>(std::string name, call_t call) (defined in <a class="el" href="classViewSelection.html">ViewSelection</a>)</td><td class="entry"><a class="el" href="classViewSelection.html">ViewSelection</a></td><td class="entry"><span class="mlabel">virtual</span></td></tr>
-  <tr bgcolor="#f0f0f0"><td class="entry"><b>calls</b> (defined in <a class="el" href="classView.html">View</a>)</td><td class="entry"><a class="el" href="classView.html">View</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
-  <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>choice_offset_x</b> (defined in <a class="el" href="classViewSelection.html">ViewSelection</a>)</td><td class="entry"><a class="el" href="classViewSelection.html">ViewSelection</a></td><td class="entry"><span class="mlabel">protected</span><span class="mlabel">static</span></td></tr>
-  <tr bgcolor="#f0f0f0"><td class="entry"><b>choice_offset_y</b> (defined in <a class="el" href="classViewSelection.html">ViewSelection</a>)</td><td class="entry"><a class="el" href="classViewSelection.html">ViewSelection</a></td><td class="entry"><span class="mlabel">protected</span><span class="mlabel">static</span></td></tr>
-  <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>choices</b> (defined in <a class="el" href="classViewSelection.html">ViewSelection</a>)</td><td class="entry"><a class="el" href="classViewSelection.html">ViewSelection</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
-  <tr bgcolor="#f0f0f0"><td class="entry"><b>draw</b>(void) override (defined in <a class="el" href="classViewSelection.html">ViewSelection</a>)</td><td class="entry"><a class="el" href="classViewSelection.html">ViewSelection</a></td><td class="entry"><span class="mlabel">virtual</span></td></tr>
-  <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>getWinContext</b>(void) (defined in <a class="el" href="classView.html">View</a>)</td><td class="entry"><a class="el" href="classView.html">View</a></td><td class="entry"><span class="mlabel">static</span></td></tr>
-  <tr bgcolor="#f0f0f0"><td class="entry"><b>height</b> (defined in <a class="el" href="classView.html">View</a>)</td><td class="entry"><a class="el" href="classView.html">View</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
-  <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>KEY_ENT</b> (defined in <a class="el" href="classView.html">View</a>)</td><td class="entry"><a class="el" href="classView.html">View</a></td><td class="entry"><span class="mlabel">protected</span><span class="mlabel">static</span></td></tr>
-  <tr bgcolor="#f0f0f0"><td class="entry"><b>keypress</b>(int &amp;key) override (defined in <a class="el" href="classViewSelection.html">ViewSelection</a>)</td><td class="entry"><a class="el" href="classViewSelection.html">ViewSelection</a></td><td class="entry"><span class="mlabel">virtual</span></td></tr>
-  <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>repaint</b>(void) (defined in <a class="el" href="classView.html">View</a>)</td><td class="entry"><a class="el" href="classView.html">View</a></td><td class="entry"><span class="mlabel">virtual</span></td></tr>
-  <tr bgcolor="#f0f0f0"><td class="entry"><b>selection</b> (defined in <a class="el" href="classViewSelection.html">ViewSelection</a>)</td><td class="entry"><a class="el" href="classViewSelection.html">ViewSelection</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
-  <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>setTitle</b>(std::string title) (defined in <a class="el" href="classView.html">View</a>)</td><td class="entry"><a class="el" href="classView.html">View</a></td><td class="entry"><span class="mlabel">virtual</span></td></tr>
-  <tr bgcolor="#f0f0f0"><td class="entry"><b>setWinContext</b>(WINDOW *win) (defined in <a class="el" href="classView.html">View</a>)</td><td class="entry"><a class="el" href="classView.html">View</a></td><td class="entry"><span class="mlabel">static</span></td></tr>
-  <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>start_x</b> (defined in <a class="el" href="classView.html">View</a>)</td><td class="entry"><a class="el" href="classView.html">View</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
-  <tr bgcolor="#f0f0f0"><td class="entry"><b>start_y</b> (defined in <a class="el" href="classView.html">View</a>)</td><td class="entry"><a class="el" href="classView.html">View</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
-  <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>str_split</b>(const std::string &amp;str, const std::string delim) (defined in <a class="el" href="classView.html">View</a>)</td><td class="entry"><a class="el" href="classView.html">View</a></td><td class="entry"><span class="mlabel">static</span></td></tr>
-  <tr bgcolor="#f0f0f0"><td class="entry"><b>title</b> (defined in <a class="el" href="classView.html">View</a>)</td><td class="entry"><a class="el" href="classView.html">View</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
-  <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>View</b>(void) (defined in <a class="el" href="classView.html">View</a>)</td><td class="entry"><a class="el" href="classView.html">View</a></td><td class="entry"></td></tr>
-  <tr bgcolor="#f0f0f0"><td class="entry"><b>width</b> (defined in <a class="el" href="classView.html">View</a>)</td><td class="entry"><a class="el" href="classView.html">View</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
-  <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>win</b> (defined in <a class="el" href="classView.html">View</a>)</td><td class="entry"><a class="el" href="classView.html">View</a></td><td class="entry"><span class="mlabel">protected</span><span class="mlabel">static</span></td></tr>
-  <tr bgcolor="#f0f0f0"><td class="entry"><b>~View</b>(void) (defined in <a class="el" href="classView.html">View</a>)</td><td class="entry"><a class="el" href="classView.html">View</a></td><td class="entry"><span class="mlabel">virtual</span></td></tr>
-</table></div><!-- contents -->
-<!-- start footer part -->
-<hr class="footer"/><address class="footer"><small>
-Generated on Fri Jun 7 2019 14:50:45 for B15F by &#160;<a href="http://www.doxygen.org/index.html">
-<img class="footer" src="doxygen.png" alt="doxygen"/>
-</a> 1.8.16
-</small></address>
-</body>
-</html>
diff --git a/docs/html/classViewSelection.html b/docs/html/classViewSelection.html
deleted file mode 100644
index 5b367c9..0000000
--- a/docs/html/classViewSelection.html
+++ /dev/null
@@ -1,180 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml">
-<head>
-<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
-<meta http-equiv="X-UA-Compatible" content="IE=9"/>
-<meta name="generator" content="Doxygen 1.8.16"/>
-<meta name="viewport" content="width=device-width, initial-scale=1"/>
-<title>B15F: ViewSelection 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">B15F
-   </div>
-   <div id="projectbrief">Board 15 Famulus Edition</div>
-  </td>
- </tr>
- </tbody>
-</table>
-</div>
-<!-- end header part -->
-<!-- Generated by Doxygen 1.8.16 -->
-<script type="text/javascript">
-/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
-var searchBox = new SearchBox("searchBox", "search",false,'Search');
-/* @license-end */
-</script>
-<script type="text/javascript" src="menudata.js"></script>
-<script type="text/javascript" src="menu.js"></script>
-<script type="text/javascript">
-/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
-$(function() {
-  initMenu('',true,false,'search.php','Search');
-  $(document).ready(function() { init_search(); });
-});
-/* @license-end */</script>
-<div id="main-nav"></div>
-<!-- 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-methods">Public Member Functions</a> &#124;
-<a href="#pro-attribs">Protected Attributes</a> &#124;
-<a href="#pro-static-attribs">Static Protected Attributes</a> &#124;
-<a href="classViewSelection-members.html">List of all members</a>  </div>
-  <div class="headertitle">
-<div class="title">ViewSelection Class Reference</div>  </div>
-</div><!--header-->
-<div class="contents">
-
-<p><code>#include &lt;<a class="el" href="view__selection_8h_source.html">view_selection.h</a>&gt;</code></p>
-<div id="dynsection-0" onclick="return toggleVisibility(this)" class="dynheader closed" style="cursor:pointer;">
-  <img id="dynsection-0-trigger" src="closed.png" alt="+"/> Inheritance diagram for ViewSelection:</div>
-<div id="dynsection-0-summary" class="dynsummary" style="display:block;">
-</div>
-<div id="dynsection-0-content" class="dyncontent" style="display:none;">
- <div class="center">
-  <img src="classViewSelection.png" usemap="#ViewSelection_map" alt=""/>
-  <map id="ViewSelection_map" name="ViewSelection_map">
-<area href="classView.html" alt="View" shape="rect" coords="0,0,92,24"/>
-  </map>
-</div></div>
-<table class="memberdecls">
-<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-methods"></a>
-Public Member Functions</h2></td></tr>
-<tr class="memitem:a10fa34fb676bfed472ca5ee62ef9446d"><td class="memItemLeft" align="right" valign="top"><a id="a10fa34fb676bfed472ca5ee62ef9446d"></a>
-virtual void&#160;</td><td class="memItemRight" valign="bottom"><b>draw</b> (void) override</td></tr>
-<tr class="separator:a10fa34fb676bfed472ca5ee62ef9446d"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a20984423a21a0c78c12d4ad0df656b8a"><td class="memItemLeft" align="right" valign="top"><a id="a20984423a21a0c78c12d4ad0df656b8a"></a>
-virtual void&#160;</td><td class="memItemRight" valign="bottom"><b>addChoice</b> (std::string name, call_t call)</td></tr>
-<tr class="separator:a20984423a21a0c78c12d4ad0df656b8a"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a04341cde5e8355edc5ff3d653d1dbc76"><td class="memItemLeft" align="right" valign="top"><a id="a04341cde5e8355edc5ff3d653d1dbc76"></a>
-virtual call_t&#160;</td><td class="memItemRight" valign="bottom"><b>keypress</b> (int &amp;key) override</td></tr>
-<tr class="separator:a04341cde5e8355edc5ff3d653d1dbc76"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="inherit_header pub_methods_classView"><td colspan="2" onclick="javascript:toggleInherit('pub_methods_classView')"><img src="closed.png" alt="-"/>&#160;Public Member Functions inherited from <a class="el" href="classView.html">View</a></td></tr>
-<tr class="memitem:a6c725e4d83fd7474635a7e64200c7a08 inherit pub_methods_classView"><td class="memItemLeft" align="right" valign="top"><a id="a6c725e4d83fd7474635a7e64200c7a08"></a>
-virtual void&#160;</td><td class="memItemRight" valign="bottom"><b>setTitle</b> (std::string title)</td></tr>
-<tr class="separator:a6c725e4d83fd7474635a7e64200c7a08 inherit pub_methods_classView"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:aa7b1f1179e3c4f06bef1e99355d0d592 inherit pub_methods_classView"><td class="memItemLeft" align="right" valign="top"><a id="aa7b1f1179e3c4f06bef1e99355d0d592"></a>
-virtual void&#160;</td><td class="memItemRight" valign="bottom"><b>repaint</b> (void)</td></tr>
-<tr class="separator:aa7b1f1179e3c4f06bef1e99355d0d592 inherit pub_methods_classView"><td class="memSeparator" colspan="2">&#160;</td></tr>
-</table><table class="memberdecls">
-<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pro-attribs"></a>
-Protected Attributes</h2></td></tr>
-<tr class="memitem:a7947cb252d889a298a622adccec10fda"><td class="memItemLeft" align="right" valign="top"><a id="a7947cb252d889a298a622adccec10fda"></a>
-size_t&#160;</td><td class="memItemRight" valign="bottom"><b>selection</b> = 0</td></tr>
-<tr class="separator:a7947cb252d889a298a622adccec10fda"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a118f23e16e3deeaedeee7cbf62bf34bb"><td class="memItemLeft" align="right" valign="top"><a id="a118f23e16e3deeaedeee7cbf62bf34bb"></a>
-std::vector&lt; std::string &gt;&#160;</td><td class="memItemRight" valign="bottom"><b>choices</b></td></tr>
-<tr class="separator:a118f23e16e3deeaedeee7cbf62bf34bb"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="inherit_header pro_attribs_classView"><td colspan="2" onclick="javascript:toggleInherit('pro_attribs_classView')"><img src="closed.png" alt="-"/>&#160;Protected Attributes inherited from <a class="el" href="classView.html">View</a></td></tr>
-<tr class="memitem:ae039aa744b085db819ae149705b2c32b inherit pro_attribs_classView"><td class="memItemLeft" align="right" valign="top"><a id="ae039aa744b085db819ae149705b2c32b"></a>
-int&#160;</td><td class="memItemRight" valign="bottom"><b>width</b></td></tr>
-<tr class="separator:ae039aa744b085db819ae149705b2c32b inherit pro_attribs_classView"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a6e3e5c18893617490f02166641356746 inherit pro_attribs_classView"><td class="memItemLeft" align="right" valign="top"><a id="a6e3e5c18893617490f02166641356746"></a>
-int&#160;</td><td class="memItemRight" valign="bottom"><b>height</b></td></tr>
-<tr class="separator:a6e3e5c18893617490f02166641356746 inherit pro_attribs_classView"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a9fc9f3b0c876d063e6f57dee320a43fe inherit pro_attribs_classView"><td class="memItemLeft" align="right" valign="top"><a id="a9fc9f3b0c876d063e6f57dee320a43fe"></a>
-int&#160;</td><td class="memItemRight" valign="bottom"><b>start_x</b> = 0</td></tr>
-<tr class="separator:a9fc9f3b0c876d063e6f57dee320a43fe inherit pro_attribs_classView"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ac424db4c13776c3ce9d33f9074dfcfaa inherit pro_attribs_classView"><td class="memItemLeft" align="right" valign="top"><a id="ac424db4c13776c3ce9d33f9074dfcfaa"></a>
-int&#160;</td><td class="memItemRight" valign="bottom"><b>start_y</b> = 0</td></tr>
-<tr class="separator:ac424db4c13776c3ce9d33f9074dfcfaa inherit pro_attribs_classView"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a80441aa81b52e04677a2aa2bd9c47753 inherit pro_attribs_classView"><td class="memItemLeft" align="right" valign="top"><a id="a80441aa81b52e04677a2aa2bd9c47753"></a>
-std::string&#160;</td><td class="memItemRight" valign="bottom"><b>title</b></td></tr>
-<tr class="separator:a80441aa81b52e04677a2aa2bd9c47753 inherit pro_attribs_classView"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a610367214a727e2f7da72ac5bdb60fa3 inherit pro_attribs_classView"><td class="memItemLeft" align="right" valign="top"><a id="a610367214a727e2f7da72ac5bdb60fa3"></a>
-std::vector&lt; call_t &gt;&#160;</td><td class="memItemRight" valign="bottom"><b>calls</b></td></tr>
-<tr class="separator:a610367214a727e2f7da72ac5bdb60fa3 inherit pro_attribs_classView"><td class="memSeparator" colspan="2">&#160;</td></tr>
-</table><table class="memberdecls">
-<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pro-static-attribs"></a>
-Static Protected Attributes</h2></td></tr>
-<tr class="memitem:a9478d01473618353734436c26e0c35cb"><td class="memItemLeft" align="right" valign="top"><a id="a9478d01473618353734436c26e0c35cb"></a>
-constexpr static int&#160;</td><td class="memItemRight" valign="bottom"><b>choice_offset_x</b> = 2</td></tr>
-<tr class="separator:a9478d01473618353734436c26e0c35cb"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a20f8c7a3df9c37f05008c7da31deed56"><td class="memItemLeft" align="right" valign="top"><a id="a20f8c7a3df9c37f05008c7da31deed56"></a>
-constexpr static int&#160;</td><td class="memItemRight" valign="bottom"><b>choice_offset_y</b> = 3</td></tr>
-<tr class="separator:a20f8c7a3df9c37f05008c7da31deed56"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="inherit_header pro_static_attribs_classView"><td colspan="2" onclick="javascript:toggleInherit('pro_static_attribs_classView')"><img src="closed.png" alt="-"/>&#160;Static Protected Attributes inherited from <a class="el" href="classView.html">View</a></td></tr>
-<tr class="memitem:a5ddee2bf0b26dbcfa7780be17ff33dd7 inherit pro_static_attribs_classView"><td class="memItemLeft" align="right" valign="top"><a id="a5ddee2bf0b26dbcfa7780be17ff33dd7"></a>
-static WINDOW *&#160;</td><td class="memItemRight" valign="bottom"><b>win</b> = nullptr</td></tr>
-<tr class="separator:a5ddee2bf0b26dbcfa7780be17ff33dd7 inherit pro_static_attribs_classView"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a3554cf8689cad24c643665aa3d182134 inherit pro_static_attribs_classView"><td class="memItemLeft" align="right" valign="top"><a id="a3554cf8689cad24c643665aa3d182134"></a>
-constexpr static int&#160;</td><td class="memItemRight" valign="bottom"><b>KEY_ENT</b> = 10</td></tr>
-<tr class="separator:a3554cf8689cad24c643665aa3d182134 inherit pro_static_attribs_classView"><td class="memSeparator" colspan="2">&#160;</td></tr>
-</table><table class="memberdecls">
-<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="inherited"></a>
-Additional Inherited Members</h2></td></tr>
-<tr class="inherit_header pub_static_methods_classView"><td colspan="2" onclick="javascript:toggleInherit('pub_static_methods_classView')"><img src="closed.png" alt="-"/>&#160;Static Public Member Functions inherited from <a class="el" href="classView.html">View</a></td></tr>
-<tr class="memitem:a990aa2223befde031dfcce54a740c558 inherit pub_static_methods_classView"><td class="memItemLeft" align="right" valign="top"><a id="a990aa2223befde031dfcce54a740c558"></a>
-static void&#160;</td><td class="memItemRight" valign="bottom"><b>setWinContext</b> (WINDOW *win)</td></tr>
-<tr class="separator:a990aa2223befde031dfcce54a740c558 inherit pub_static_methods_classView"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a0710c6ba06e3795e7ddf369361308b79 inherit pub_static_methods_classView"><td class="memItemLeft" align="right" valign="top"><a id="a0710c6ba06e3795e7ddf369361308b79"></a>
-static WINDOW *&#160;</td><td class="memItemRight" valign="bottom"><b>getWinContext</b> (void)</td></tr>
-<tr class="separator:a0710c6ba06e3795e7ddf369361308b79 inherit pub_static_methods_classView"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a52c2e2a7bc56388e7d9bfa398ad52668 inherit pub_static_methods_classView"><td class="memItemLeft" align="right" valign="top"><a id="a52c2e2a7bc56388e7d9bfa398ad52668"></a>
-static std::vector&lt; std::string &gt;&#160;</td><td class="memItemRight" valign="bottom"><b>str_split</b> (const std::string &amp;str, const std::string delim)</td></tr>
-<tr class="separator:a52c2e2a7bc56388e7d9bfa398ad52668 inherit pub_static_methods_classView"><td class="memSeparator" colspan="2">&#160;</td></tr>
-</table>
-<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
-<div class="textblock"><p><a class="el" href="classView.html">View</a> for user selection input. </p>
-
-<p class="definition">Definition at line <a class="el" href="view__selection_8h_source.html#l00010">10</a> of file <a class="el" href="view__selection_8h_source.html">view_selection.h</a>.</p>
-</div><hr/>The documentation for this class was generated from the following files:<ul>
-<li>ui/<a class="el" href="view__selection_8h_source.html">view_selection.h</a></li>
-<li>ui/<a class="el" href="view__selection_8cpp_source.html">view_selection.cpp</a></li>
-</ul>
-</div><!-- contents -->
-<!-- start footer part -->
-<hr class="footer"/><address class="footer"><small>
-Generated on Fri Jun 7 2019 14:50:45 for B15F by &#160;<a href="http://www.doxygen.org/index.html">
-<img class="footer" src="doxygen.png" alt="doxygen"/>
-</a> 1.8.16
-</small></address>
-</body>
-</html>
diff --git a/docs/html/classViewSelection.png b/docs/html/classViewSelection.png
deleted file mode 100644
index 53db457..0000000
Binary files a/docs/html/classViewSelection.png and /dev/null differ
diff --git a/docs/html/classes.html b/docs/html/classes.html
deleted file mode 100644
index e9435b2..0000000
--- a/docs/html/classes.html
+++ /dev/null
@@ -1,113 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml">
-<head>
-<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
-<meta http-equiv="X-UA-Compatible" content="IE=9"/>
-<meta name="generator" content="Doxygen 1.8.16"/>
-<meta name="viewport" content="width=device-width, initial-scale=1"/>
-<title>B15F: 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">B15F
-   </div>
-   <div id="projectbrief">Board 15 Famulus Edition</div>
-  </td>
- </tr>
- </tbody>
-</table>
-</div>
-<!-- end header part -->
-<!-- Generated by Doxygen 1.8.16 -->
-<script type="text/javascript">
-/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
-var searchBox = new SearchBox("searchBox", "search",false,'Search');
-/* @license-end */
-</script>
-<script type="text/javascript" src="menudata.js"></script>
-<script type="text/javascript" src="menu.js"></script>
-<script type="text/javascript">
-/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
-$(function() {
-  initMenu('',true,false,'search.php','Search');
-  $(document).ready(function() { init_search(); });
-});
-/* @license-end */</script>
-<div id="main-nav"></div>
-</div><!-- top -->
-<!-- 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_b">b</a>&#160;|&#160;<a class="qindex" href="#letter_d">d</a>&#160;|&#160;<a class="qindex" href="#letter_p">p</a>&#160;|&#160;<a class="qindex" href="#letter_t">t</a>&#160;|&#160;<a class="qindex" href="#letter_u">u</a>&#160;|&#160;<a class="qindex" href="#letter_v">v</a></div>
-<table class="classindex">
-<tr><td rowspan="2" valign="bottom"><a name="letter_b"></a><table border="0" cellspacing="0" cellpadding="0"><tr><td><div class="ah">&#160;&#160;b&#160;&#160;</div></td></tr></table>
-</td>
-<td valign="top"><a class="el" href="classDriverException.html">DriverException</a>&#160;&#160;&#160;</td>
-<td rowspan="2" valign="bottom"><a name="letter_u"></a><table border="0" cellspacing="0" cellpadding="0"><tr><td><div class="ah">&#160;&#160;u&#160;&#160;</div></td></tr></table>
-</td>
-<td valign="top"><a class="el" href="classViewInfo.html">ViewInfo</a>&#160;&#160;&#160;</td>
-</tr>
-<tr><td rowspan="2" valign="bottom"><a name="letter_p"></a><table border="0" cellspacing="0" cellpadding="0"><tr><td><div class="ah">&#160;&#160;p&#160;&#160;</div></td></tr></table>
-</td>
-<td valign="top"><a class="el" href="classViewMonitor.html">ViewMonitor</a>&#160;&#160;&#160;</td>
-</tr>
-<tr><td valign="top"><a class="el" href="classB15F.html">B15F</a>&#160;&#160;&#160;</td>
-<td valign="top"><a class="el" href="classUSART.html">USART</a>&#160;&#160;&#160;</td>
-<td valign="top"><a class="el" href="classViewPromt.html">ViewPromt</a>&#160;&#160;&#160;</td>
-</tr>
-<tr><td rowspan="2" valign="bottom"><a name="letter_d"></a><table border="0" cellspacing="0" cellpadding="0"><tr><td><div class="ah">&#160;&#160;d&#160;&#160;</div></td></tr></table>
-</td>
-<td valign="top"><a class="el" href="classPlottyFile.html">PlottyFile</a>&#160;&#160;&#160;</td>
-<td valign="top"><a class="el" href="classUSARTException.html">USARTException</a>&#160;&#160;&#160;</td>
-<td valign="top"><a class="el" href="classViewSelection.html">ViewSelection</a>&#160;&#160;&#160;</td>
-</tr>
-<tr><td rowspan="2" valign="bottom"><a name="letter_t"></a><table border="0" cellspacing="0" cellpadding="0"><tr><td><div class="ah">&#160;&#160;t&#160;&#160;</div></td></tr></table>
-</td>
-<td rowspan="2" valign="bottom"><a name="letter_v"></a><table border="0" cellspacing="0" cellpadding="0"><tr><td><div class="ah">&#160;&#160;v&#160;&#160;</div></td></tr></table>
-</td>
-<td></td></tr>
-<tr><td valign="top"><a class="el" href="classDot.html">Dot</a>&#160;&#160;&#160;</td>
-<td></td></tr>
-<tr><td></td><td valign="top"><a class="el" href="classTimeoutException.html">TimeoutException</a>&#160;&#160;&#160;</td>
-<td valign="top"><a class="el" href="classView.html">View</a>&#160;&#160;&#160;</td>
-<td></td></tr>
-<tr><td></td><td></td><td></td><td></td></tr>
-</table>
-<div class="qindex"><a class="qindex" href="#letter_b">b</a>&#160;|&#160;<a class="qindex" href="#letter_d">d</a>&#160;|&#160;<a class="qindex" href="#letter_p">p</a>&#160;|&#160;<a class="qindex" href="#letter_t">t</a>&#160;|&#160;<a class="qindex" href="#letter_u">u</a>&#160;|&#160;<a class="qindex" href="#letter_v">v</a></div>
-</div><!-- contents -->
-<!-- start footer part -->
-<hr class="footer"/><address class="footer"><small>
-Generated on Fri Jun 7 2019 14:50:45 for B15F by &#160;<a href="http://www.doxygen.org/index.html">
-<img class="footer" src="doxygen.png" alt="doxygen"/>
-</a> 1.8.16
-</small></address>
-</body>
-</html>
diff --git a/docs/html/cli_8cpp_source.html b/docs/html/cli_8cpp_source.html
deleted file mode 100644
index c3b85c1..0000000
--- a/docs/html/cli_8cpp_source.html
+++ /dev/null
@@ -1,80 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml">
-<head>
-<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
-<meta http-equiv="X-UA-Compatible" content="IE=9"/>
-<meta name="generator" content="Doxygen 1.8.16"/>
-<meta name="viewport" content="width=device-width, initial-scale=1"/>
-<title>B15F: cli.cpp 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">B15F
-   </div>
-   <div id="projectbrief">Board 15 Famulus Edition</div>
-  </td>
- </tr>
- </tbody>
-</table>
-</div>
-<!-- end header part -->
-<!-- Generated by Doxygen 1.8.16 -->
-<script type="text/javascript">
-/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
-var searchBox = new SearchBox("searchBox", "search",false,'Search');
-/* @license-end */
-</script>
-<script type="text/javascript" src="menudata.js"></script>
-<script type="text/javascript" src="menu.js"></script>
-<script type="text/javascript">
-/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
-$(function() {
-  initMenu('',true,false,'search.php','Search');
-  $(document).ready(function() { init_search(); });
-});
-/* @license-end */</script>
-<div id="main-nav"></div>
-</div><!-- top -->
-<!-- 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">cli.cpp</div>  </div>
-</div><!--header-->
-<div class="contents">
-<div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno">    1</span>&#160;<span class="comment">//#define B15F_CLI_DEBUG</span></div><div class="line"><a name="l00002"></a><span class="lineno">    2</span>&#160; </div><div class="line"><a name="l00003"></a><span class="lineno">    3</span>&#160;<span class="preprocessor">#include &lt;stdio.h&gt;</span></div><div class="line"><a name="l00004"></a><span class="lineno">    4</span>&#160;<span class="preprocessor">#include &lt;ncurses.h&gt;</span> <span class="comment">// sudo apt-get install libncurses5-dev</span></div><div class="line"><a name="l00005"></a><span class="lineno">    5</span>&#160;<span class="preprocessor">#include &lt;vector&gt;</span></div><div class="line"><a name="l00006"></a><span class="lineno">    6</span>&#160;<span class="preprocessor">#include &lt;string&gt;</span></div><div class="line"><a name="l00007"></a><span class="lineno">    7</span>&#160;<span class="preprocessor">#include &lt;iostream&gt;</span></div><div class="line"><a name="l00008"></a><span class="lineno">    8</span>&#160;<span class="preprocessor">#include &lt;signal.h&gt;</span></div><div class="line"><a name="l00009"></a><span class="lineno">    9</span>&#160;<span class="preprocessor">#include &lt;sys/ioctl.h&gt;</span></div><div class="line"><a name="l00010"></a><span class="lineno">   10</span>&#160;<span class="preprocessor">#include &lt;unistd.h&gt;</span></div><div class="line"><a name="l00011"></a><span class="lineno">   11</span>&#160;<span class="preprocessor">#include &lt;signal.h&gt;</span></div><div class="line"><a name="l00012"></a><span class="lineno">   12</span>&#160;<span class="preprocessor">#include &lt;future&gt;</span></div><div class="line"><a name="l00013"></a><span class="lineno">   13</span>&#160;<span class="preprocessor">#include &lt;thread&gt;</span></div><div class="line"><a name="l00014"></a><span class="lineno">   14</span>&#160;<span class="preprocessor">#include &lt;chrono&gt;</span></div><div class="line"><a name="l00015"></a><span class="lineno">   15</span>&#160;<span class="preprocessor">#include &quot;drv/b15f.h&quot;</span></div><div class="line"><a name="l00016"></a><span class="lineno">   16</span>&#160;<span class="preprocessor">#include &quot;ui/ui.h&quot;</span></div><div class="line"><a name="l00017"></a><span class="lineno">   17</span>&#160;<span class="preprocessor">#include &quot;ui/view_selection.h&quot;</span></div><div class="line"><a name="l00018"></a><span class="lineno">   18</span>&#160;<span class="preprocessor">#include &quot;ui/view_info.h&quot;</span></div><div class="line"><a name="l00019"></a><span class="lineno">   19</span>&#160;<span class="preprocessor">#include &quot;ui/view_monitor.h&quot;</span></div><div class="line"><a name="l00020"></a><span class="lineno">   20</span>&#160;<span class="preprocessor">#include &quot;ui/view_promt.h&quot;</span></div><div class="line"><a name="l00021"></a><span class="lineno">   21</span>&#160; </div><div class="line"><a name="l00022"></a><span class="lineno">   22</span>&#160;<span class="keyword">volatile</span> <span class="keywordtype">int</span> win_changed_cooldown = 0;</div><div class="line"><a name="l00023"></a><span class="lineno">   23</span>&#160;<span class="keyword">volatile</span> <span class="keywordtype">bool</span> t_refresh_active = <span class="keyword">false</span>;</div><div class="line"><a name="l00024"></a><span class="lineno">   24</span>&#160; </div><div class="line"><a name="l00025"></a><span class="lineno">   25</span>&#160;<span class="keywordtype">void</span> signal_handler(<span class="keywordtype">int</span> signal)</div><div class="line"><a name="l00026"></a><span class="lineno">   26</span>&#160;{</div><div class="line"><a name="l00027"></a><span class="lineno">   27</span>&#160;    <span class="keywordflow">if</span>(signal == SIGWINCH)</div><div class="line"><a name="l00028"></a><span class="lineno">   28</span>&#160;    {</div><div class="line"><a name="l00029"></a><span class="lineno">   29</span>&#160;        win_changed_cooldown = 10; <span class="comment">// 100ms</span></div><div class="line"><a name="l00030"></a><span class="lineno">   30</span>&#160; </div><div class="line"><a name="l00031"></a><span class="lineno">   31</span>&#160;        <span class="keywordflow">if</span> (!t_refresh_active)</div><div class="line"><a name="l00032"></a><span class="lineno">   32</span>&#160;        {</div><div class="line"><a name="l00033"></a><span class="lineno">   33</span>&#160;            <span class="keywordflow">if</span>(t_refresh.joinable())</div><div class="line"><a name="l00034"></a><span class="lineno">   34</span>&#160;                t_refresh.join();</div><div class="line"><a name="l00035"></a><span class="lineno">   35</span>&#160;            t_refresh_active = <span class="keyword">true</span>;</div><div class="line"><a name="l00036"></a><span class="lineno">   36</span>&#160;            t_refresh = std::thread([]()</div><div class="line"><a name="l00037"></a><span class="lineno">   37</span>&#160;            {</div><div class="line"><a name="l00038"></a><span class="lineno">   38</span>&#160; </div><div class="line"><a name="l00039"></a><span class="lineno">   39</span>&#160;                <span class="keywordflow">while</span>(win_changed_cooldown--)</div><div class="line"><a name="l00040"></a><span class="lineno">   40</span>&#160;                    std::this_thread::sleep_for(std::chrono::milliseconds(10));</div><div class="line"><a name="l00041"></a><span class="lineno">   41</span>&#160; </div><div class="line"><a name="l00042"></a><span class="lineno">   42</span>&#160;                t_refresh_active = <span class="keyword">false</span>;</div><div class="line"><a name="l00043"></a><span class="lineno">   43</span>&#160; </div><div class="line"><a name="l00044"></a><span class="lineno">   44</span>&#160;                <span class="keywordflow">if</span>(win_stack.size())</div><div class="line"><a name="l00045"></a><span class="lineno">   45</span>&#160;                    win_stack.back()-&gt;repaint();</div><div class="line"><a name="l00046"></a><span class="lineno">   46</span>&#160; </div><div class="line"><a name="l00047"></a><span class="lineno">   47</span>&#160;            });</div><div class="line"><a name="l00048"></a><span class="lineno">   48</span>&#160;        }</div><div class="line"><a name="l00049"></a><span class="lineno">   49</span>&#160; </div><div class="line"><a name="l00050"></a><span class="lineno">   50</span>&#160;    }</div><div class="line"><a name="l00051"></a><span class="lineno">   51</span>&#160;    <span class="keywordflow">else</span> <span class="keywordflow">if</span>(signal == SIGINT)</div><div class="line"><a name="l00052"></a><span class="lineno">   52</span>&#160;    {</div><div class="line"><a name="l00053"></a><span class="lineno">   53</span>&#160;        cleanup();</div><div class="line"><a name="l00054"></a><span class="lineno">   54</span>&#160;        std::cout &lt;&lt; <span class="stringliteral">&quot;SIGINT - Abbruch.&quot;</span> &lt;&lt; std::endl;</div><div class="line"><a name="l00055"></a><span class="lineno">   55</span>&#160;        exit(EXIT_FAILURE);</div><div class="line"><a name="l00056"></a><span class="lineno">   56</span>&#160;    }</div><div class="line"><a name="l00057"></a><span class="lineno">   57</span>&#160;}</div><div class="line"><a name="l00058"></a><span class="lineno">   58</span>&#160; </div><div class="line"><a name="l00059"></a><span class="lineno">   59</span>&#160;<span class="keywordtype">void</span> abort_handler(std::exception&amp; ex)</div><div class="line"><a name="l00060"></a><span class="lineno">   60</span>&#160;{</div><div class="line"><a name="l00061"></a><span class="lineno">   61</span>&#160;    <a class="code" href="classViewInfo.html">ViewInfo</a>* view = <span class="keyword">new</span> <a class="code" href="classViewInfo.html">ViewInfo</a>();</div><div class="line"><a name="l00062"></a><span class="lineno">   62</span>&#160;    view-&gt;setTitle(<span class="stringliteral">&quot;Fehler&quot;</span>);</div><div class="line"><a name="l00063"></a><span class="lineno">   63</span>&#160;    std::string msg(ex.what());</div><div class="line"><a name="l00064"></a><span class="lineno">   64</span>&#160;    msg += <span class="stringliteral">&quot;\n\nBeende in 5 Sekunden.&quot;</span>;</div><div class="line"><a name="l00065"></a><span class="lineno">   65</span>&#160;    view-&gt;setText(msg.c_str());</div><div class="line"><a name="l00066"></a><span class="lineno">   66</span>&#160;    view-&gt;setLabelClose(<span class="stringliteral">&quot;&quot;</span>);</div><div class="line"><a name="l00067"></a><span class="lineno">   67</span>&#160;    view-&gt;repaint();</div><div class="line"><a name="l00068"></a><span class="lineno">   68</span>&#160; </div><div class="line"><a name="l00069"></a><span class="lineno">   69</span>&#160;    std::this_thread::sleep_for(std::chrono::milliseconds(5000));</div><div class="line"><a name="l00070"></a><span class="lineno">   70</span>&#160; </div><div class="line"><a name="l00071"></a><span class="lineno">   71</span>&#160;    cleanup();</div><div class="line"><a name="l00072"></a><span class="lineno">   72</span>&#160;    std::cerr &lt;&lt; std::endl &lt;&lt; <span class="stringliteral">&quot;*** EXCEPTION ***&quot;</span> &lt;&lt; std::endl &lt;&lt; ex.what() &lt;&lt; std::endl;</div><div class="line"><a name="l00073"></a><span class="lineno">   73</span>&#160;    exit(EXIT_FAILURE);</div><div class="line"><a name="l00074"></a><span class="lineno">   74</span>&#160;}</div><div class="line"><a name="l00075"></a><span class="lineno">   75</span>&#160; </div><div class="line"><a name="l00076"></a><span class="lineno">   76</span>&#160;<span class="keywordtype">void</span> init()</div><div class="line"><a name="l00077"></a><span class="lineno">   77</span>&#160;{</div><div class="line"><a name="l00078"></a><span class="lineno">   78</span>&#160;    <span class="comment">// init b15 driver</span></div><div class="line"><a name="l00079"></a><span class="lineno">   79</span>&#160;    <a class="code" href="classB15F.html#a8b4533d232c55ef2aa967e39e2d23380">B15F::getInstance</a>();</div><div class="line"><a name="l00080"></a><span class="lineno">   80</span>&#160;<span class="preprocessor">#ifndef B15F_CLI_DEBUG</span></div><div class="line"><a name="l00081"></a><span class="lineno">   81</span>&#160;    std::cout &lt;&lt; std::endl &lt;&lt; <span class="stringliteral">&quot;Starte in 3s ...&quot;</span> &lt;&lt; std::endl;</div><div class="line"><a name="l00082"></a><span class="lineno">   82</span>&#160;    sleep(3);</div><div class="line"><a name="l00083"></a><span class="lineno">   83</span>&#160;<span class="preprocessor">#endif</span></div><div class="line"><a name="l00084"></a><span class="lineno">   84</span>&#160;    <a class="code" href="classB15F.html#a55b0cd1ea582bda53d6979442640f8e9">B15F::setAbortHandler</a>(&amp;abort_handler);</div><div class="line"><a name="l00085"></a><span class="lineno">   85</span>&#160; </div><div class="line"><a name="l00086"></a><span class="lineno">   86</span>&#160;    <span class="comment">// init all ncurses stuff</span></div><div class="line"><a name="l00087"></a><span class="lineno">   87</span>&#160;    initscr();</div><div class="line"><a name="l00088"></a><span class="lineno">   88</span>&#160;    start_color();</div><div class="line"><a name="l00089"></a><span class="lineno">   89</span>&#160;    curs_set(0); <span class="comment">// 0: invisible, 1: normal, 2: very visible</span></div><div class="line"><a name="l00090"></a><span class="lineno">   90</span>&#160;    clear();</div><div class="line"><a name="l00091"></a><span class="lineno">   91</span>&#160;    noecho();</div><div class="line"><a name="l00092"></a><span class="lineno">   92</span>&#160;    cbreak();  <span class="comment">// Line buffering disabled. pass on everything</span></div><div class="line"><a name="l00093"></a><span class="lineno">   93</span>&#160;    mousemask(ALL_MOUSE_EVENTS, NULL);</div><div class="line"><a name="l00094"></a><span class="lineno">   94</span>&#160; </div><div class="line"><a name="l00095"></a><span class="lineno">   95</span>&#160;    <span class="comment">// connect signals to handler</span></div><div class="line"><a name="l00096"></a><span class="lineno">   96</span>&#160;    signal(SIGWINCH, signal_handler);</div><div class="line"><a name="l00097"></a><span class="lineno">   97</span>&#160;    signal(SIGINT, signal_handler);</div><div class="line"><a name="l00098"></a><span class="lineno">   98</span>&#160; </div><div class="line"><a name="l00099"></a><span class="lineno">   99</span>&#160;    <span class="comment">// set view context</span></div><div class="line"><a name="l00100"></a><span class="lineno">  100</span>&#160;    View::setWinContext(newwin(25, 85, 0, 0));</div><div class="line"><a name="l00101"></a><span class="lineno">  101</span>&#160;}</div><div class="line"><a name="l00102"></a><span class="lineno">  102</span>&#160; </div><div class="line"><a name="l00103"></a><span class="lineno">  103</span>&#160; </div><div class="line"><a name="l00104"></a><span class="lineno">  104</span>&#160;<span class="keywordtype">int</span> main()</div><div class="line"><a name="l00105"></a><span class="lineno">  105</span>&#160;{</div><div class="line"><a name="l00106"></a><span class="lineno">  106</span>&#160;    init();</div><div class="line"><a name="l00107"></a><span class="lineno">  107</span>&#160; </div><div class="line"><a name="l00108"></a><span class="lineno">  108</span>&#160;    <span class="keywordtype">int</span> exit_code = EXIT_SUCCESS;</div><div class="line"><a name="l00109"></a><span class="lineno">  109</span>&#160; </div><div class="line"><a name="l00110"></a><span class="lineno">  110</span>&#160;    show_main(0);</div><div class="line"><a name="l00111"></a><span class="lineno">  111</span>&#160; </div><div class="line"><a name="l00112"></a><span class="lineno">  112</span>&#160;    cleanup();</div><div class="line"><a name="l00113"></a><span class="lineno">  113</span>&#160; </div><div class="line"><a name="l00114"></a><span class="lineno">  114</span>&#160;    <span class="keywordflow">return</span> exit_code;</div><div class="line"><a name="l00115"></a><span class="lineno">  115</span>&#160;}</div></div><!-- fragment --></div><!-- contents -->
-<div class="ttc" id="aclassViewInfo_html"><div class="ttname"><a href="classViewInfo.html">ViewInfo</a></div><div class="ttdef"><b>Definition:</b> <a href="view__info_8h_source.html#l00008">view_info.h:8</a></div></div>
-<div class="ttc" id="aclassB15F_html_a8b4533d232c55ef2aa967e39e2d23380"><div class="ttname"><a href="classB15F.html#a8b4533d232c55ef2aa967e39e2d23380">B15F::getInstance</a></div><div class="ttdeci">static B15F &amp; getInstance(void)</div><div class="ttdef"><b>Definition:</b> <a href="b15f_8cpp_source.html#l00442">b15f.cpp:442</a></div></div>
-<div class="ttc" id="aclassB15F_html_a55b0cd1ea582bda53d6979442640f8e9"><div class="ttname"><a href="classB15F.html#a55b0cd1ea582bda53d6979442640f8e9">B15F::setAbortHandler</a></div><div class="ttdeci">static void setAbortHandler(errorhandler_t func)</div><div class="ttdef"><b>Definition:</b> <a href="b15f_8cpp_source.html#l00485">b15f.cpp:485</a></div></div>
-<!-- start footer part -->
-<hr class="footer"/><address class="footer"><small>
-Generated on Fri Jun 7 2019 14:50:45 for B15F by &#160;<a href="http://www.doxygen.org/index.html">
-<img class="footer" src="doxygen.png" alt="doxygen"/>
-</a> 1.8.16
-</small></address>
-</body>
-</html>
diff --git a/docs/html/closed.png b/docs/html/closed.png
deleted file mode 100644
index 98cc2c9..0000000
Binary files a/docs/html/closed.png and /dev/null differ
diff --git a/docs/html/dir_1788f8309b1a812dcb800a185471cf6c.html b/docs/html/dir_1788f8309b1a812dcb800a185471cf6c.html
deleted file mode 100644
index a793bf4..0000000
--- a/docs/html/dir_1788f8309b1a812dcb800a185471cf6c.html
+++ /dev/null
@@ -1,81 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml">
-<head>
-<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
-<meta http-equiv="X-UA-Compatible" content="IE=9"/>
-<meta name="generator" content="Doxygen 1.8.16"/>
-<meta name="viewport" content="width=device-width, initial-scale=1"/>
-<title>B15F: ui Directory 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">B15F
-   </div>
-   <div id="projectbrief">Board 15 Famulus Edition</div>
-  </td>
- </tr>
- </tbody>
-</table>
-</div>
-<!-- end header part -->
-<!-- Generated by Doxygen 1.8.16 -->
-<script type="text/javascript">
-/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
-var searchBox = new SearchBox("searchBox", "search",false,'Search');
-/* @license-end */
-</script>
-<script type="text/javascript" src="menudata.js"></script>
-<script type="text/javascript" src="menu.js"></script>
-<script type="text/javascript">
-/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
-$(function() {
-  initMenu('',true,false,'search.php','Search');
-  $(document).ready(function() { init_search(); });
-});
-/* @license-end */</script>
-<div id="main-nav"></div>
-<!-- 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 id="nav-path" class="navpath">
-  <ul>
-<li class="navelem"><a class="el" href="dir_1788f8309b1a812dcb800a185471cf6c.html">ui</a></li>  </ul>
-</div>
-</div><!-- top -->
-<div class="header">
-  <div class="headertitle">
-<div class="title">ui Directory Reference</div>  </div>
-</div><!--header-->
-<div class="contents">
-</div><!-- contents -->
-<!-- start footer part -->
-<hr class="footer"/><address class="footer"><small>
-Generated on Fri Jun 7 2019 14:50:45 for B15F by &#160;<a href="http://www.doxygen.org/index.html">
-<img class="footer" src="doxygen.png" alt="doxygen"/>
-</a> 1.8.16
-</small></address>
-</body>
-</html>
diff --git a/docs/html/dir_587c94d866dbb2f408f78cf41f9b2f8d.html b/docs/html/dir_587c94d866dbb2f408f78cf41f9b2f8d.html
deleted file mode 100644
index 145a9a5..0000000
--- a/docs/html/dir_587c94d866dbb2f408f78cf41f9b2f8d.html
+++ /dev/null
@@ -1,81 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml">
-<head>
-<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
-<meta http-equiv="X-UA-Compatible" content="IE=9"/>
-<meta name="generator" content="Doxygen 1.8.16"/>
-<meta name="viewport" content="width=device-width, initial-scale=1"/>
-<title>B15F: drv Directory 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">B15F
-   </div>
-   <div id="projectbrief">Board 15 Famulus Edition</div>
-  </td>
- </tr>
- </tbody>
-</table>
-</div>
-<!-- end header part -->
-<!-- Generated by Doxygen 1.8.16 -->
-<script type="text/javascript">
-/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
-var searchBox = new SearchBox("searchBox", "search",false,'Search');
-/* @license-end */
-</script>
-<script type="text/javascript" src="menudata.js"></script>
-<script type="text/javascript" src="menu.js"></script>
-<script type="text/javascript">
-/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
-$(function() {
-  initMenu('',true,false,'search.php','Search');
-  $(document).ready(function() { init_search(); });
-});
-/* @license-end */</script>
-<div id="main-nav"></div>
-<!-- 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 id="nav-path" class="navpath">
-  <ul>
-<li class="navelem"><a class="el" href="dir_587c94d866dbb2f408f78cf41f9b2f8d.html">drv</a></li>  </ul>
-</div>
-</div><!-- top -->
-<div class="header">
-  <div class="headertitle">
-<div class="title">drv Directory Reference</div>  </div>
-</div><!--header-->
-<div class="contents">
-</div><!-- contents -->
-<!-- start footer part -->
-<hr class="footer"/><address class="footer"><small>
-Generated on Fri Jun 7 2019 14:50:45 for B15F by &#160;<a href="http://www.doxygen.org/index.html">
-<img class="footer" src="doxygen.png" alt="doxygen"/>
-</a> 1.8.16
-</small></address>
-</body>
-</html>
diff --git a/docs/html/doc.png b/docs/html/doc.png
deleted file mode 100644
index 17edabf..0000000
Binary files a/docs/html/doc.png and /dev/null differ
diff --git a/docs/html/dot_8cpp_source.html b/docs/html/dot_8cpp_source.html
deleted file mode 100644
index 8c379e9..0000000
--- a/docs/html/dot_8cpp_source.html
+++ /dev/null
@@ -1,85 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml">
-<head>
-<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
-<meta http-equiv="X-UA-Compatible" content="IE=9"/>
-<meta name="generator" content="Doxygen 1.8.16"/>
-<meta name="viewport" content="width=device-width, initial-scale=1"/>
-<title>B15F: drv/dot.cpp 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">B15F
-   </div>
-   <div id="projectbrief">Board 15 Famulus Edition</div>
-  </td>
- </tr>
- </tbody>
-</table>
-</div>
-<!-- end header part -->
-<!-- Generated by Doxygen 1.8.16 -->
-<script type="text/javascript">
-/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
-var searchBox = new SearchBox("searchBox", "search",false,'Search');
-/* @license-end */
-</script>
-<script type="text/javascript" src="menudata.js"></script>
-<script type="text/javascript" src="menu.js"></script>
-<script type="text/javascript">
-/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
-$(function() {
-  initMenu('',true,false,'search.php','Search');
-  $(document).ready(function() { init_search(); });
-});
-/* @license-end */</script>
-<div id="main-nav"></div>
-<!-- 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 id="nav-path" class="navpath">
-  <ul>
-<li class="navelem"><a class="el" href="dir_587c94d866dbb2f408f78cf41f9b2f8d.html">drv</a></li>  </ul>
-</div>
-</div><!-- top -->
-<div class="header">
-  <div class="headertitle">
-<div class="title">dot.cpp</div>  </div>
-</div><!--header-->
-<div class="contents">
-<div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno">    1</span>&#160;<span class="preprocessor">#include &quot;dot.h&quot;</span></div><div class="line"><a name="l00002"></a><span class="lineno">    2</span>&#160; </div><div class="line"><a name="l00003"></a><span class="lineno"><a class="line" href="classDot.html#ad975f119c0627a928790b3cd5ca6da05">    3</a></span>&#160;<a class="code" href="classDot.html#ad975f119c0627a928790b3cd5ca6da05">Dot::Dot</a>(uint16_t x, uint16_t y, uint8_t curve) : x(x), y(y), curve(curve)</div><div class="line"><a name="l00004"></a><span class="lineno">    4</span>&#160;{</div><div class="line"><a name="l00005"></a><span class="lineno">    5</span>&#160;    <span class="keywordflow">if</span>(curve &gt;= 64)</div><div class="line"><a name="l00006"></a><span class="lineno">    6</span>&#160;        <span class="keywordflow">throw</span> std::range_error(<span class="stringliteral">&quot;Kurvenindex muss im Bereich [0, 63] liegen&quot;</span>);</div><div class="line"><a name="l00007"></a><span class="lineno">    7</span>&#160;}</div><div class="line"><a name="l00008"></a><span class="lineno">    8</span>&#160; </div><div class="line"><a name="l00009"></a><span class="lineno"><a class="line" href="classDot.html#a029f0cc99c474122b77a708a317e7f77">    9</a></span>&#160;uint16_t <a class="code" href="classDot.html#a029f0cc99c474122b77a708a317e7f77">Dot::getX</a>()<span class="keyword"> const</span></div><div class="line"><a name="l00010"></a><span class="lineno">   10</span>&#160;<span class="keyword"></span>{</div><div class="line"><a name="l00011"></a><span class="lineno">   11</span>&#160;    <span class="keywordflow">return</span> x;</div><div class="line"><a name="l00012"></a><span class="lineno">   12</span>&#160;}</div><div class="line"><a name="l00013"></a><span class="lineno">   13</span>&#160; </div><div class="line"><a name="l00014"></a><span class="lineno"><a class="line" href="classDot.html#a8fcb987e6308d8184d1a2c8692227e58">   14</a></span>&#160;uint16_t <a class="code" href="classDot.html#a8fcb987e6308d8184d1a2c8692227e58">Dot::getY</a>()<span class="keyword"> const</span></div><div class="line"><a name="l00015"></a><span class="lineno">   15</span>&#160;<span class="keyword"></span>{</div><div class="line"><a name="l00016"></a><span class="lineno">   16</span>&#160;    <span class="keywordflow">return</span> y;</div><div class="line"><a name="l00017"></a><span class="lineno">   17</span>&#160;}</div><div class="line"><a name="l00018"></a><span class="lineno">   18</span>&#160; </div><div class="line"><a name="l00019"></a><span class="lineno"><a class="line" href="classDot.html#ad0ae7dc1a9be3d8d985affc089b34396">   19</a></span>&#160;uint8_t <a class="code" href="classDot.html#ad0ae7dc1a9be3d8d985affc089b34396">Dot::getCurve</a>(<span class="keywordtype">void</span>)<span class="keyword"> const</span></div><div class="line"><a name="l00020"></a><span class="lineno">   20</span>&#160;<span class="keyword"></span>{</div><div class="line"><a name="l00021"></a><span class="lineno">   21</span>&#160;    <span class="keywordflow">return</span> curve;</div><div class="line"><a name="l00022"></a><span class="lineno">   22</span>&#160;}</div></div><!-- fragment --></div><!-- contents -->
-<div class="ttc" id="aclassDot_html_a029f0cc99c474122b77a708a317e7f77"><div class="ttname"><a href="classDot.html#a029f0cc99c474122b77a708a317e7f77">Dot::getX</a></div><div class="ttdeci">uint16_t getX(void) const</div><div class="ttdef"><b>Definition:</b> <a href="dot_8cpp_source.html#l00009">dot.cpp:9</a></div></div>
-<div class="ttc" id="aclassDot_html_a8fcb987e6308d8184d1a2c8692227e58"><div class="ttname"><a href="classDot.html#a8fcb987e6308d8184d1a2c8692227e58">Dot::getY</a></div><div class="ttdeci">uint16_t getY(void) const</div><div class="ttdef"><b>Definition:</b> <a href="dot_8cpp_source.html#l00014">dot.cpp:14</a></div></div>
-<div class="ttc" id="aclassDot_html_ad0ae7dc1a9be3d8d985affc089b34396"><div class="ttname"><a href="classDot.html#ad0ae7dc1a9be3d8d985affc089b34396">Dot::getCurve</a></div><div class="ttdeci">uint8_t getCurve(void) const</div><div class="ttdef"><b>Definition:</b> <a href="dot_8cpp_source.html#l00019">dot.cpp:19</a></div></div>
-<div class="ttc" id="aclassDot_html_ad975f119c0627a928790b3cd5ca6da05"><div class="ttname"><a href="classDot.html#ad975f119c0627a928790b3cd5ca6da05">Dot::Dot</a></div><div class="ttdeci">Dot(uint16_t x, uint16_t y, uint8_t curve)</div><div class="ttdef"><b>Definition:</b> <a href="dot_8cpp_source.html#l00003">dot.cpp:3</a></div></div>
-<!-- start footer part -->
-<hr class="footer"/><address class="footer"><small>
-Generated on Fri Jun 7 2019 14:50:45 for B15F by &#160;<a href="http://www.doxygen.org/index.html">
-<img class="footer" src="doxygen.png" alt="doxygen"/>
-</a> 1.8.16
-</small></address>
-</body>
-</html>
diff --git a/docs/html/dot_8h_source.html b/docs/html/dot_8h_source.html
deleted file mode 100644
index f14ce13..0000000
--- a/docs/html/dot_8h_source.html
+++ /dev/null
@@ -1,86 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml">
-<head>
-<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
-<meta http-equiv="X-UA-Compatible" content="IE=9"/>
-<meta name="generator" content="Doxygen 1.8.16"/>
-<meta name="viewport" content="width=device-width, initial-scale=1"/>
-<title>B15F: drv/dot.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">B15F
-   </div>
-   <div id="projectbrief">Board 15 Famulus Edition</div>
-  </td>
- </tr>
- </tbody>
-</table>
-</div>
-<!-- end header part -->
-<!-- Generated by Doxygen 1.8.16 -->
-<script type="text/javascript">
-/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
-var searchBox = new SearchBox("searchBox", "search",false,'Search');
-/* @license-end */
-</script>
-<script type="text/javascript" src="menudata.js"></script>
-<script type="text/javascript" src="menu.js"></script>
-<script type="text/javascript">
-/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
-$(function() {
-  initMenu('',true,false,'search.php','Search');
-  $(document).ready(function() { init_search(); });
-});
-/* @license-end */</script>
-<div id="main-nav"></div>
-<!-- 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 id="nav-path" class="navpath">
-  <ul>
-<li class="navelem"><a class="el" href="dir_587c94d866dbb2f408f78cf41f9b2f8d.html">drv</a></li>  </ul>
-</div>
-</div><!-- top -->
-<div class="header">
-  <div class="headertitle">
-<div class="title">dot.h</div>  </div>
-</div><!--header-->
-<div class="contents">
-<div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno">    1</span>&#160;<span class="preprocessor">#ifndef DOT_H</span></div><div class="line"><a name="l00002"></a><span class="lineno">    2</span>&#160;<span class="preprocessor">#define DOT_H</span></div><div class="line"><a name="l00003"></a><span class="lineno">    3</span>&#160; </div><div class="line"><a name="l00004"></a><span class="lineno">    4</span>&#160;<span class="preprocessor">#include &lt;cstdint&gt;</span></div><div class="line"><a name="l00005"></a><span class="lineno">    5</span>&#160;<span class="preprocessor">#include &lt;stdexcept&gt;</span></div><div class="line"><a name="l00006"></a><span class="lineno">    6</span>&#160; </div><div class="line"><a name="l00012"></a><span class="lineno"><a class="line" href="classDot.html">   12</a></span>&#160;<span class="keyword">class </span><a class="code" href="classDot.html">Dot</a></div><div class="line"><a name="l00013"></a><span class="lineno">   13</span>&#160;{</div><div class="line"><a name="l00014"></a><span class="lineno">   14</span>&#160;<span class="keyword">public</span>:</div><div class="line"><a name="l00018"></a><span class="lineno">   18</span>&#160;    <a class="code" href="classDot.html#ad975f119c0627a928790b3cd5ca6da05">Dot</a>(uint16_t x, uint16_t y, uint8_t curve);</div><div class="line"><a name="l00019"></a><span class="lineno">   19</span>&#160; </div><div class="line"><a name="l00023"></a><span class="lineno">   23</span>&#160;    uint16_t <a class="code" href="classDot.html#a029f0cc99c474122b77a708a317e7f77">getX</a>(<span class="keywordtype">void</span>) <span class="keyword">const</span>;</div><div class="line"><a name="l00024"></a><span class="lineno">   24</span>&#160; </div><div class="line"><a name="l00028"></a><span class="lineno">   28</span>&#160;    uint16_t <a class="code" href="classDot.html#a8fcb987e6308d8184d1a2c8692227e58">getY</a>(<span class="keywordtype">void</span>) <span class="keyword">const</span>;</div><div class="line"><a name="l00029"></a><span class="lineno">   29</span>&#160; </div><div class="line"><a name="l00033"></a><span class="lineno">   33</span>&#160;    uint8_t <a class="code" href="classDot.html#ad0ae7dc1a9be3d8d985affc089b34396">getCurve</a>(<span class="keywordtype">void</span>) <span class="keyword">const</span>;</div><div class="line"><a name="l00034"></a><span class="lineno">   34</span>&#160; </div><div class="line"><a name="l00035"></a><span class="lineno">   35</span>&#160;<span class="keyword">private</span>:</div><div class="line"><a name="l00036"></a><span class="lineno">   36</span>&#160;    uint16_t x, y;</div><div class="line"><a name="l00037"></a><span class="lineno">   37</span>&#160;    uint8_t curve;</div><div class="line"><a name="l00038"></a><span class="lineno">   38</span>&#160;};</div><div class="line"><a name="l00039"></a><span class="lineno">   39</span>&#160; </div><div class="line"><a name="l00040"></a><span class="lineno">   40</span>&#160; </div><div class="line"><a name="l00041"></a><span class="lineno">   41</span>&#160;<span class="preprocessor">#endif // DOT_H</span></div></div><!-- fragment --></div><!-- contents -->
-<div class="ttc" id="aclassDot_html_a029f0cc99c474122b77a708a317e7f77"><div class="ttname"><a href="classDot.html#a029f0cc99c474122b77a708a317e7f77">Dot::getX</a></div><div class="ttdeci">uint16_t getX(void) const</div><div class="ttdef"><b>Definition:</b> <a href="dot_8cpp_source.html#l00009">dot.cpp:9</a></div></div>
-<div class="ttc" id="aclassDot_html"><div class="ttname"><a href="classDot.html">Dot</a></div><div class="ttdef"><b>Definition:</b> <a href="dot_8h_source.html#l00012">dot.h:12</a></div></div>
-<div class="ttc" id="aclassDot_html_a8fcb987e6308d8184d1a2c8692227e58"><div class="ttname"><a href="classDot.html#a8fcb987e6308d8184d1a2c8692227e58">Dot::getY</a></div><div class="ttdeci">uint16_t getY(void) const</div><div class="ttdef"><b>Definition:</b> <a href="dot_8cpp_source.html#l00014">dot.cpp:14</a></div></div>
-<div class="ttc" id="aclassDot_html_ad0ae7dc1a9be3d8d985affc089b34396"><div class="ttname"><a href="classDot.html#ad0ae7dc1a9be3d8d985affc089b34396">Dot::getCurve</a></div><div class="ttdeci">uint8_t getCurve(void) const</div><div class="ttdef"><b>Definition:</b> <a href="dot_8cpp_source.html#l00019">dot.cpp:19</a></div></div>
-<div class="ttc" id="aclassDot_html_ad975f119c0627a928790b3cd5ca6da05"><div class="ttname"><a href="classDot.html#ad975f119c0627a928790b3cd5ca6da05">Dot::Dot</a></div><div class="ttdeci">Dot(uint16_t x, uint16_t y, uint8_t curve)</div><div class="ttdef"><b>Definition:</b> <a href="dot_8cpp_source.html#l00003">dot.cpp:3</a></div></div>
-<!-- start footer part -->
-<hr class="footer"/><address class="footer"><small>
-Generated on Fri Jun 7 2019 14:50:45 for B15F by &#160;<a href="http://www.doxygen.org/index.html">
-<img class="footer" src="doxygen.png" alt="doxygen"/>
-</a> 1.8.16
-</small></address>
-</body>
-</html>
diff --git a/docs/html/doxygen.css b/docs/html/doxygen.css
deleted file mode 100644
index 5bc13aa..0000000
--- a/docs/html/doxygen.css
+++ /dev/null
@@ -1,1766 +0,0 @@
-/* The standard CSS for doxygen 1.8.16 */
-
-body, table, div, p, dl {
-	font: 400 14px/22px Roboto,sans-serif;
-}
-
-p.reference, p.definition {
-	font: 400 14px/22px Roboto,sans-serif;
-}
-
-/* @group Heading Levels */
-
-h1.groupheader {
-	font-size: 150%;
-}
-
-.title {
-	font: 400 14px/28px Roboto,sans-serif;
-	font-size: 150%;
-	font-weight: bold;
-	margin: 10px 2px;
-}
-
-h2.groupheader {
-	border-bottom: 1px solid #879ECB;
-	color: #354C7B;
-	font-size: 150%;
-	font-weight: normal;
-	margin-top: 1.75em;
-	padding-top: 8px;
-	padding-bottom: 4px;
-	width: 100%;
-}
-
-h3.groupheader {
-	font-size: 100%;
-}
-
-h1, h2, h3, h4, h5, h6 {
-	-webkit-transition: text-shadow 0.5s linear;
-	-moz-transition: text-shadow 0.5s linear;
-	-ms-transition: text-shadow 0.5s linear;
-	-o-transition: text-shadow 0.5s linear;
-	transition: text-shadow 0.5s linear;
-	margin-right: 15px;
-}
-
-h1.glow, h2.glow, h3.glow, h4.glow, h5.glow, h6.glow {
-	text-shadow: 0 0 15px cyan;
-}
-
-dt {
-	font-weight: bold;
-}
-
-ul.multicol {
-	-moz-column-gap: 1em;
-	-webkit-column-gap: 1em;
-	column-gap: 1em;
-	-moz-column-count: 3;
-	-webkit-column-count: 3;
-	column-count: 3;
-}
-
-p.startli, p.startdd {
-	margin-top: 2px;
-}
-
-p.starttd {
-	margin-top: 0px;
-}
-
-p.endli {
-	margin-bottom: 0px;
-}
-
-p.enddd {
-	margin-bottom: 4px;
-}
-
-p.endtd {
-	margin-bottom: 2px;
-}
-
-p.interli {
-}
-
-p.interdd {
-}
-
-p.intertd {
-}
-
-/* @end */
-
-caption {
-	font-weight: bold;
-}
-
-span.legend {
-        font-size: 70%;
-        text-align: center;
-}
-
-h3.version {
-        font-size: 90%;
-        text-align: center;
-}
-
-div.qindex, div.navtab{
-	background-color: #EBEFF6;
-	border: 1px solid #A3B4D7;
-	text-align: center;
-}
-
-div.qindex, div.navpath {
-	width: 100%;
-	line-height: 140%;
-}
-
-div.navtab {
-	margin-right: 15px;
-}
-
-/* @group Link Styling */
-
-a {
-	color: #3D578C;
-	font-weight: normal;
-	text-decoration: none;
-}
-
-.contents a:visited {
-	color: #4665A2;
-}
-
-a:hover {
-	text-decoration: underline;
-}
-
-a.qindex {
-	font-weight: bold;
-}
-
-a.qindexHL {
-	font-weight: bold;
-	background-color: #9CAFD4;
-	color: #FFFFFF;
-	border: 1px double #869DCA;
-}
-
-.contents a.qindexHL:visited {
-        color: #FFFFFF;
-}
-
-a.el {
-	font-weight: bold;
-}
-
-a.elRef {
-}
-
-a.code, a.code:visited, a.line, a.line:visited {
-	color: #4665A2; 
-}
-
-a.codeRef, a.codeRef:visited, a.lineRef, a.lineRef:visited {
-	color: #4665A2; 
-}
-
-/* @end */
-
-dl.el {
-	margin-left: -1cm;
-}
-
-ul {
-  overflow: hidden; /*Fixed: list item bullets overlap floating elements*/
-}
-
-#side-nav ul {
-  overflow: visible; /* reset ul rule for scroll bar in GENERATE_TREEVIEW window */
-}
-
-#main-nav ul {
-  overflow: visible; /* reset ul rule for the navigation bar drop down lists */
-}
-
-.fragment {
-  text-align: left;
-  direction: ltr;
-  overflow-x: auto; /*Fixed: fragment lines overlap floating elements*/
-  overflow-y: hidden;
-}
-
-pre.fragment {
-        border: 1px solid #C4CFE5;
-        background-color: #FBFCFD;
-        padding: 4px 6px;
-        margin: 4px 8px 4px 2px;
-        overflow: auto;
-        word-wrap: break-word;
-        font-size:  9pt;
-        line-height: 125%;
-        font-family: monospace, fixed;
-        font-size: 105%;
-}
-
-div.fragment {
-  padding: 0 0 1px 0; /*Fixed: last line underline overlap border*/
-  margin: 4px 8px 4px 2px;
-	background-color: #FBFCFD;
-	border: 1px solid #C4CFE5;
-}
-
-div.line {
-	font-family: monospace, fixed;
-        font-size: 13px;
-	min-height: 13px;
-	line-height: 1.0;
-	text-wrap: unrestricted;
-	white-space: -moz-pre-wrap; /* Moz */
-	white-space: -pre-wrap;     /* Opera 4-6 */
-	white-space: -o-pre-wrap;   /* Opera 7 */
-	white-space: pre-wrap;      /* CSS3  */
-	word-wrap: break-word;      /* IE 5.5+ */
-	text-indent: -53px;
-	padding-left: 53px;
-	padding-bottom: 0px;
-	margin: 0px;
-	-webkit-transition-property: background-color, box-shadow;
-	-webkit-transition-duration: 0.5s;
-	-moz-transition-property: background-color, box-shadow;
-	-moz-transition-duration: 0.5s;
-	-ms-transition-property: background-color, box-shadow;
-	-ms-transition-duration: 0.5s;
-	-o-transition-property: background-color, box-shadow;
-	-o-transition-duration: 0.5s;
-	transition-property: background-color, box-shadow;
-	transition-duration: 0.5s;
-}
-
-div.line:after {
-    content:"\000A";
-    white-space: pre;
-}
-
-div.line.glow {
-	background-color: cyan;
-	box-shadow: 0 0 10px cyan;
-}
-
-
-span.lineno {
-	padding-right: 4px;
-	text-align: right;
-	border-right: 2px solid #0F0;
-	background-color: #E8E8E8;
-        white-space: pre;
-}
-span.lineno a {
-	background-color: #D8D8D8;
-}
-
-span.lineno a:hover {
-	background-color: #C8C8C8;
-}
-
-.lineno {
-	-webkit-touch-callout: none;
-	-webkit-user-select: none;
-	-khtml-user-select: none;
-	-moz-user-select: none;
-	-ms-user-select: none;
-	user-select: none;
-}
-
-div.ah, span.ah {
-	background-color: black;
-	font-weight: bold;
-	color: #FFFFFF;
-	margin-bottom: 3px;
-	margin-top: 3px;
-	padding: 0.2em;
-	border: solid thin #333;
-	border-radius: 0.5em;
-	-webkit-border-radius: .5em;
-	-moz-border-radius: .5em;
-	box-shadow: 2px 2px 3px #999;
-	-webkit-box-shadow: 2px 2px 3px #999;
-	-moz-box-shadow: rgba(0, 0, 0, 0.15) 2px 2px 2px;
-	background-image: -webkit-gradient(linear, left top, left bottom, from(#eee), to(#000),color-stop(0.3, #444));
-	background-image: -moz-linear-gradient(center top, #eee 0%, #444 40%, #000 110%);
-}
-
-div.classindex ul {
-        list-style: none;
-        padding-left: 0;
-}
-
-div.classindex span.ai {
-        display: inline-block;
-}
-
-div.groupHeader {
-	margin-left: 16px;
-	margin-top: 12px;
-	font-weight: bold;
-}
-
-div.groupText {
-	margin-left: 16px;
-	font-style: italic;
-}
-
-body {
-	background-color: white;
-	color: black;
-        margin: 0;
-}
-
-div.contents {
-	margin-top: 10px;
-	margin-left: 12px;
-	margin-right: 8px;
-}
-
-td.indexkey {
-	background-color: #EBEFF6;
-	font-weight: bold;
-	border: 1px solid #C4CFE5;
-	margin: 2px 0px 2px 0;
-	padding: 2px 10px;
-        white-space: nowrap;
-        vertical-align: top;
-}
-
-td.indexvalue {
-	background-color: #EBEFF6;
-	border: 1px solid #C4CFE5;
-	padding: 2px 10px;
-	margin: 2px 0px;
-}
-
-tr.memlist {
-	background-color: #EEF1F7;
-}
-
-p.formulaDsp {
-	text-align: center;
-}
-
-img.formulaDsp {
-	
-}
-
-img.formulaInl, img.inline {
-	vertical-align: middle;
-}
-
-div.center {
-	text-align: center;
-        margin-top: 0px;
-        margin-bottom: 0px;
-        padding: 0px;
-}
-
-div.center img {
-	border: 0px;
-}
-
-address.footer {
-	text-align: right;
-	padding-right: 12px;
-}
-
-img.footer {
-	border: 0px;
-	vertical-align: middle;
-}
-
-/* @group Code Colorization */
-
-span.keyword {
-	color: #008000
-}
-
-span.keywordtype {
-	color: #604020
-}
-
-span.keywordflow {
-	color: #e08000
-}
-
-span.comment {
-	color: #800000
-}
-
-span.preprocessor {
-	color: #806020
-}
-
-span.stringliteral {
-	color: #002080
-}
-
-span.charliteral {
-	color: #008080
-}
-
-span.vhdldigit { 
-	color: #ff00ff 
-}
-
-span.vhdlchar { 
-	color: #000000 
-}
-
-span.vhdlkeyword { 
-	color: #700070 
-}
-
-span.vhdllogic { 
-	color: #ff0000 
-}
-
-blockquote {
-        background-color: #F7F8FB;
-        border-left: 2px solid #9CAFD4;
-        margin: 0 24px 0 4px;
-        padding: 0 12px 0 16px;
-}
-
-blockquote.DocNodeRTL {
-   border-left: 0;
-   border-right: 2px solid #9CAFD4;
-   margin: 0 4px 0 24px;
-   padding: 0 16px 0 12px;
-}
-
-/* @end */
-
-/*
-.search {
-	color: #003399;
-	font-weight: bold;
-}
-
-form.search {
-	margin-bottom: 0px;
-	margin-top: 0px;
-}
-
-input.search {
-	font-size: 75%;
-	color: #000080;
-	font-weight: normal;
-	background-color: #e8eef2;
-}
-*/
-
-td.tiny {
-	font-size: 75%;
-}
-
-.dirtab {
-	padding: 4px;
-	border-collapse: collapse;
-	border: 1px solid #A3B4D7;
-}
-
-th.dirtab {
-	background: #EBEFF6;
-	font-weight: bold;
-}
-
-hr {
-	height: 0px;
-	border: none;
-	border-top: 1px solid #4A6AAA;
-}
-
-hr.footer {
-	height: 1px;
-}
-
-/* @group Member Descriptions */
-
-table.memberdecls {
-	border-spacing: 0px;
-	padding: 0px;
-}
-
-.memberdecls td, .fieldtable tr {
-	-webkit-transition-property: background-color, box-shadow;
-	-webkit-transition-duration: 0.5s;
-	-moz-transition-property: background-color, box-shadow;
-	-moz-transition-duration: 0.5s;
-	-ms-transition-property: background-color, box-shadow;
-	-ms-transition-duration: 0.5s;
-	-o-transition-property: background-color, box-shadow;
-	-o-transition-duration: 0.5s;
-	transition-property: background-color, box-shadow;
-	transition-duration: 0.5s;
-}
-
-.memberdecls td.glow, .fieldtable tr.glow {
-	background-color: cyan;
-	box-shadow: 0 0 15px cyan;
-}
-
-.mdescLeft, .mdescRight,
-.memItemLeft, .memItemRight,
-.memTemplItemLeft, .memTemplItemRight, .memTemplParams {
-	background-color: #F9FAFC;
-	border: none;
-	margin: 4px;
-	padding: 1px 0 0 8px;
-}
-
-.mdescLeft, .mdescRight {
-	padding: 0px 8px 4px 8px;
-	color: #555;
-}
-
-.memSeparator {
-        border-bottom: 1px solid #DEE4F0;
-        line-height: 1px;
-        margin: 0px;
-        padding: 0px;
-}
-
-.memItemLeft, .memTemplItemLeft {
-        white-space: nowrap;
-}
-
-.memItemRight {
-	width: 100%;
-}
-
-.memTemplParams {
-	color: #4665A2;
-        white-space: nowrap;
-	font-size: 80%;
-}
-
-/* @end */
-
-/* @group Member Details */
-
-/* Styles for detailed member documentation */
-
-.memtitle {
-	padding: 8px;
-	border-top: 1px solid #A8B8D9;
-	border-left: 1px solid #A8B8D9;
-	border-right: 1px solid #A8B8D9;
-	border-top-right-radius: 4px;
-	border-top-left-radius: 4px;
-	margin-bottom: -1px;
-	background-image: url('nav_f.png');
-	background-repeat: repeat-x;
-	background-color: #E2E8F2;
-	line-height: 1.25;
-	font-weight: 300;
-	float:left;
-}
-
-.permalink
-{
-        font-size: 65%;
-        display: inline-block;
-        vertical-align: middle;
-}
-
-.memtemplate {
-	font-size: 80%;
-	color: #4665A2;
-	font-weight: normal;
-	margin-left: 9px;
-}
-
-.memnav {
-	background-color: #EBEFF6;
-	border: 1px solid #A3B4D7;
-	text-align: center;
-	margin: 2px;
-	margin-right: 15px;
-	padding: 2px;
-}
-
-.mempage {
-	width: 100%;
-}
-
-.memitem {
-	padding: 0;
-	margin-bottom: 10px;
-	margin-right: 5px;
-        -webkit-transition: box-shadow 0.5s linear;
-        -moz-transition: box-shadow 0.5s linear;
-        -ms-transition: box-shadow 0.5s linear;
-        -o-transition: box-shadow 0.5s linear;
-        transition: box-shadow 0.5s linear;
-        display: table !important;
-        width: 100%;
-}
-
-.memitem.glow {
-         box-shadow: 0 0 15px cyan;
-}
-
-.memname {
-        font-weight: 400;
-        margin-left: 6px;
-}
-
-.memname td {
-	vertical-align: bottom;
-}
-
-.memproto, dl.reflist dt {
-        border-top: 1px solid #A8B8D9;
-        border-left: 1px solid #A8B8D9;
-        border-right: 1px solid #A8B8D9;
-        padding: 6px 0px 6px 0px;
-        color: #253555;
-        font-weight: bold;
-        text-shadow: 0px 1px 1px rgba(255, 255, 255, 0.9);
-        background-color: #DFE5F1;
-        /* opera specific markup */
-        box-shadow: 5px 5px 5px rgba(0, 0, 0, 0.15);
-        border-top-right-radius: 4px;
-        /* firefox specific markup */
-        -moz-box-shadow: rgba(0, 0, 0, 0.15) 5px 5px 5px;
-        -moz-border-radius-topright: 4px;
-        /* webkit specific markup */
-        -webkit-box-shadow: 5px 5px 5px rgba(0, 0, 0, 0.15);
-        -webkit-border-top-right-radius: 4px;
-
-}
-
-.overload {
-        font-family: "courier new",courier,monospace;
-	font-size: 65%;
-}
-
-.memdoc, dl.reflist dd {
-        border-bottom: 1px solid #A8B8D9;      
-        border-left: 1px solid #A8B8D9;      
-        border-right: 1px solid #A8B8D9; 
-        padding: 6px 10px 2px 10px;
-        background-color: #FBFCFD;
-        border-top-width: 0;
-        background-image:url('nav_g.png');
-        background-repeat:repeat-x;
-        background-color: #FFFFFF;
-        /* opera specific markup */
-        border-bottom-left-radius: 4px;
-        border-bottom-right-radius: 4px;
-        box-shadow: 5px 5px 5px rgba(0, 0, 0, 0.15);
-        /* firefox specific markup */
-        -moz-border-radius-bottomleft: 4px;
-        -moz-border-radius-bottomright: 4px;
-        -moz-box-shadow: rgba(0, 0, 0, 0.15) 5px 5px 5px;
-        /* webkit specific markup */
-        -webkit-border-bottom-left-radius: 4px;
-        -webkit-border-bottom-right-radius: 4px;
-        -webkit-box-shadow: 5px 5px 5px rgba(0, 0, 0, 0.15);
-}
-
-dl.reflist dt {
-        padding: 5px;
-}
-
-dl.reflist dd {
-        margin: 0px 0px 10px 0px;
-        padding: 5px;
-}
-
-.paramkey {
-	text-align: right;
-}
-
-.paramtype {
-	white-space: nowrap;
-}
-
-.paramname {
-	color: #602020;
-	white-space: nowrap;
-}
-.paramname em {
-	font-style: normal;
-}
-.paramname code {
-        line-height: 14px;
-}
-
-.params, .retval, .exception, .tparams {
-        margin-left: 0px;
-        padding-left: 0px;
-}       
-
-.params .paramname, .retval .paramname, .tparams .paramname, .exception .paramname {
-        font-weight: bold;
-        vertical-align: top;
-}
-        
-.params .paramtype, .tparams .paramtype {
-        font-style: italic;
-        vertical-align: top;
-}       
-        
-.params .paramdir, .tparams .paramdir {
-        font-family: "courier new",courier,monospace;
-        vertical-align: top;
-}
-
-table.mlabels {
-	border-spacing: 0px;
-}
-
-td.mlabels-left {
-	width: 100%;
-	padding: 0px;
-}
-
-td.mlabels-right {
-	vertical-align: bottom;
-	padding: 0px;
-	white-space: nowrap;
-}
-
-span.mlabels {
-        margin-left: 8px;
-}
-
-span.mlabel {
-        background-color: #728DC1;
-        border-top:1px solid #5373B4;
-        border-left:1px solid #5373B4;
-        border-right:1px solid #C4CFE5;
-        border-bottom:1px solid #C4CFE5;
-	text-shadow: none;
-	color: white;
-	margin-right: 4px;
-	padding: 2px 3px;
-	border-radius: 3px;
-	font-size: 7pt;
-	white-space: nowrap;
-	vertical-align: middle;
-}
-
-
-
-/* @end */
-
-/* these are for tree view inside a (index) page */
-
-div.directory {
-        margin: 10px 0px;
-        border-top: 1px solid #9CAFD4;
-        border-bottom: 1px solid #9CAFD4;
-        width: 100%;
-}
-
-.directory table {
-        border-collapse:collapse;
-}
-
-.directory td {
-        margin: 0px;
-        padding: 0px;
-	vertical-align: top;
-}
-
-.directory td.entry {
-        white-space: nowrap;
-        padding-right: 6px;
-	padding-top: 3px;
-}
-
-.directory td.entry a {
-        outline:none;
-}
-
-.directory td.entry a img {
-        border: none;
-}
-
-.directory td.desc {
-        width: 100%;
-        padding-left: 6px;
-	padding-right: 6px;
-	padding-top: 3px;
-	border-left: 1px solid rgba(0,0,0,0.05);
-}
-
-.directory tr.even {
-	padding-left: 6px;
-	background-color: #F7F8FB;
-}
-
-.directory img {
-	vertical-align: -30%;
-}
-
-.directory .levels {
-        white-space: nowrap;
-        width: 100%;
-        text-align: right;
-        font-size: 9pt;
-}
-
-.directory .levels span {
-        cursor: pointer;
-        padding-left: 2px;
-        padding-right: 2px;
-	color: #3D578C;
-}
-
-.arrow {
-    color: #9CAFD4;
-    -webkit-user-select: none;
-    -khtml-user-select: none;
-    -moz-user-select: none;
-    -ms-user-select: none;
-    user-select: none;
-    cursor: pointer;
-    font-size: 80%;
-    display: inline-block;
-    width: 16px;
-    height: 22px;
-}
-
-.icon {
-    font-family: Arial, Helvetica;
-    font-weight: bold;
-    font-size: 12px;
-    height: 14px;
-    width: 16px;
-    display: inline-block;
-    background-color: #728DC1;
-    color: white;
-    text-align: center;
-    border-radius: 4px;
-    margin-left: 2px;
-    margin-right: 2px;
-}
-
-.icona {
-    width: 24px;
-    height: 22px;
-    display: inline-block;
-}
-
-.iconfopen {
-    width: 24px;
-    height: 18px;
-    margin-bottom: 4px;
-    background-image:url('folderopen.png');
-    background-position: 0px -4px;
-    background-repeat: repeat-y;
-    vertical-align:top;
-    display: inline-block;
-}
-
-.iconfclosed {
-    width: 24px;
-    height: 18px;
-    margin-bottom: 4px;
-    background-image:url('folderclosed.png');
-    background-position: 0px -4px;
-    background-repeat: repeat-y;
-    vertical-align:top;
-    display: inline-block;
-}
-
-.icondoc {
-    width: 24px;
-    height: 18px;
-    margin-bottom: 4px;
-    background-image:url('doc.png');
-    background-position: 0px -4px;
-    background-repeat: repeat-y;
-    vertical-align:top;
-    display: inline-block;
-}
-
-table.directory {
-    font: 400 14px Roboto,sans-serif;
-}
-
-/* @end */
-
-div.dynheader {
-        margin-top: 8px;
-	-webkit-touch-callout: none;
-	-webkit-user-select: none;
-	-khtml-user-select: none;
-	-moz-user-select: none;
-	-ms-user-select: none;
-	user-select: none;
-}
-
-address {
-	font-style: normal;
-	color: #2A3D61;
-}
-
-table.doxtable caption {
-	caption-side: top;
-}
-
-table.doxtable {
-	border-collapse:collapse;
-        margin-top: 4px;
-        margin-bottom: 4px;
-}
-
-table.doxtable td, table.doxtable th {
-	border: 1px solid #2D4068;
-	padding: 3px 7px 2px;
-}
-
-table.doxtable th {
-	background-color: #374F7F;
-	color: #FFFFFF;
-	font-size: 110%;
-	padding-bottom: 4px;
-	padding-top: 5px;
-}
-
-table.fieldtable {
-        /*width: 100%;*/
-        margin-bottom: 10px;
-        border: 1px solid #A8B8D9;
-        border-spacing: 0px;
-        -moz-border-radius: 4px;
-        -webkit-border-radius: 4px;
-        border-radius: 4px;
-        -moz-box-shadow: rgba(0, 0, 0, 0.15) 2px 2px 2px;
-        -webkit-box-shadow: 2px 2px 2px rgba(0, 0, 0, 0.15);
-        box-shadow: 2px 2px 2px rgba(0, 0, 0, 0.15);
-}
-
-.fieldtable td, .fieldtable th {
-        padding: 3px 7px 2px;
-}
-
-.fieldtable td.fieldtype, .fieldtable td.fieldname {
-        white-space: nowrap;
-        border-right: 1px solid #A8B8D9;
-        border-bottom: 1px solid #A8B8D9;
-        vertical-align: top;
-}
-
-.fieldtable td.fieldname {
-        padding-top: 3px;
-}
-
-.fieldtable td.fielddoc {
-        border-bottom: 1px solid #A8B8D9;
-        /*width: 100%;*/
-}
-
-.fieldtable td.fielddoc p:first-child {
-        margin-top: 0px;
-}       
-        
-.fieldtable td.fielddoc p:last-child {
-        margin-bottom: 2px;
-}
-
-.fieldtable tr:last-child td {
-        border-bottom: none;
-}
-
-.fieldtable th {
-        background-image:url('nav_f.png');
-        background-repeat:repeat-x;
-        background-color: #E2E8F2;
-        font-size: 90%;
-        color: #253555;
-        padding-bottom: 4px;
-        padding-top: 5px;
-        text-align:left;
-        font-weight: 400;
-        -moz-border-radius-topleft: 4px;
-        -moz-border-radius-topright: 4px;
-        -webkit-border-top-left-radius: 4px;
-        -webkit-border-top-right-radius: 4px;
-        border-top-left-radius: 4px;
-        border-top-right-radius: 4px;
-        border-bottom: 1px solid #A8B8D9;
-}
-
-
-.tabsearch {
-	top: 0px;
-	left: 10px;
-	height: 36px;
-	background-image: url('tab_b.png');
-	z-index: 101;
-	overflow: hidden;
-	font-size: 13px;
-}
-
-.navpath ul
-{
-	font-size: 11px;
-	background-image:url('tab_b.png');
-	background-repeat:repeat-x;
-	background-position: 0 -5px;
-	height:30px;
-	line-height:30px;
-	color:#8AA0CC;
-	border:solid 1px #C2CDE4;
-	overflow:hidden;
-	margin:0px;
-	padding:0px;
-}
-
-.navpath li
-{
-	list-style-type:none;
-	float:left;
-	padding-left:10px;
-	padding-right:15px;
-	background-image:url('bc_s.png');
-	background-repeat:no-repeat;
-	background-position:right;
-	color:#364D7C;
-}
-
-.navpath li.navelem a
-{
-	height:32px;
-	display:block;
-	text-decoration: none;
-	outline: none;
-	color: #283A5D;
-	font-family: 'Lucida Grande',Geneva,Helvetica,Arial,sans-serif;
-	text-shadow: 0px 1px 1px rgba(255, 255, 255, 0.9);
-	text-decoration: none;        
-}
-
-.navpath li.navelem a:hover
-{
-	color:#6884BD;
-}
-
-.navpath li.footer
-{
-        list-style-type:none;
-        float:right;
-        padding-left:10px;
-        padding-right:15px;
-        background-image:none;
-        background-repeat:no-repeat;
-        background-position:right;
-        color:#364D7C;
-        font-size: 8pt;
-}
-
-
-div.summary
-{
-	float: right;
-	font-size: 8pt;
-	padding-right: 5px;
-	width: 50%;
-	text-align: right;
-}       
-
-div.summary a
-{
-	white-space: nowrap;
-}
-
-table.classindex
-{
-        margin: 10px;
-        white-space: nowrap;
-        margin-left: 3%;
-        margin-right: 3%;
-        width: 94%;
-        border: 0;
-        border-spacing: 0; 
-        padding: 0;
-}
-
-div.ingroups
-{
-	font-size: 8pt;
-	width: 50%;
-	text-align: left;
-}
-
-div.ingroups a
-{
-	white-space: nowrap;
-}
-
-div.header
-{
-        background-image:url('nav_h.png');
-        background-repeat:repeat-x;
-	background-color: #F9FAFC;
-	margin:  0px;
-	border-bottom: 1px solid #C4CFE5;
-}
-
-div.headertitle
-{
-	padding: 5px 5px 5px 10px;
-}
-
-.PageDocRTL-title div.headertitle {
-  text-align: right;
-  direction: rtl;
-}
-
-dl {
-        padding: 0 0 0 0;
-}
-
-/* dl.note, dl.warning, dl.attention, dl.pre, dl.post, dl.invariant, dl.deprecated, dl.todo, dl.test, dl.bug, dl.examples */
-dl.section {
-	margin-left: 0px;
-	padding-left: 0px;
-}
-
-dl.section.DocNodeRTL {
-  margin-right: 0px;
-  padding-right: 0px;
-}
-
-dl.note {
-  margin-left: -7px;
-  padding-left: 3px;
-  border-left: 4px solid;
-  border-color: #D0C000;
-}
-
-dl.note.DocNodeRTL {
-  margin-left: 0;
-  padding-left: 0;
-  border-left: 0;
-  margin-right: -7px;
-  padding-right: 3px;
-  border-right: 4px solid;
-  border-color: #D0C000;
-}
-
-dl.warning, dl.attention {
-  margin-left: -7px;
-  padding-left: 3px;
-  border-left: 4px solid;
-  border-color: #FF0000;
-}
-
-dl.warning.DocNodeRTL, dl.attention.DocNodeRTL {
-  margin-left: 0;
-  padding-left: 0;
-  border-left: 0;
-  margin-right: -7px;
-  padding-right: 3px;
-  border-right: 4px solid;
-  border-color: #FF0000;
-}
-
-dl.pre, dl.post, dl.invariant {
-  margin-left: -7px;
-  padding-left: 3px;
-  border-left: 4px solid;
-  border-color: #00D000;
-}
-
-dl.pre.DocNodeRTL, dl.post.DocNodeRTL, dl.invariant.DocNodeRTL {
-  margin-left: 0;
-  padding-left: 0;
-  border-left: 0;
-  margin-right: -7px;
-  padding-right: 3px;
-  border-right: 4px solid;
-  border-color: #00D000;
-}
-
-dl.deprecated {
-  margin-left: -7px;
-  padding-left: 3px;
-  border-left: 4px solid;
-  border-color: #505050;
-}
-
-dl.deprecated.DocNodeRTL {
-  margin-left: 0;
-  padding-left: 0;
-  border-left: 0;
-  margin-right: -7px;
-  padding-right: 3px;
-  border-right: 4px solid;
-  border-color: #505050;
-}
-
-dl.todo {
-  margin-left: -7px;
-  padding-left: 3px;
-  border-left: 4px solid;
-  border-color: #00C0E0;
-}
-
-dl.todo.DocNodeRTL {
-  margin-left: 0;
-  padding-left: 0;
-  border-left: 0;
-  margin-right: -7px;
-  padding-right: 3px;
-  border-right: 4px solid;
-  border-color: #00C0E0;
-}
-
-dl.test {
-  margin-left: -7px;
-  padding-left: 3px;
-  border-left: 4px solid;
-  border-color: #3030E0;
-}
-
-dl.test.DocNodeRTL {
-  margin-left: 0;
-  padding-left: 0;
-  border-left: 0;
-  margin-right: -7px;
-  padding-right: 3px;
-  border-right: 4px solid;
-  border-color: #3030E0;
-}
-
-dl.bug {
-  margin-left: -7px;
-  padding-left: 3px;
-  border-left: 4px solid;
-  border-color: #C08050;
-}
-
-dl.bug.DocNodeRTL {
-  margin-left: 0;
-  padding-left: 0;
-  border-left: 0;
-  margin-right: -7px;
-  padding-right: 3px;
-  border-right: 4px solid;
-  border-color: #C08050;
-}
-
-dl.section dd {
-	margin-bottom: 6px;
-}
-
-
-#projectlogo
-{
-	text-align: center;
-	vertical-align: bottom;
-	border-collapse: separate;
-}
- 
-#projectlogo img
-{ 
-	border: 0px none;
-}
- 
-#projectalign
-{
-        vertical-align: middle;
-}
-
-#projectname
-{
-	font: 300% Tahoma, Arial,sans-serif;
-	margin: 0px;
-	padding: 2px 0px;
-}
-    
-#projectbrief
-{
-	font: 120% Tahoma, Arial,sans-serif;
-	margin: 0px;
-	padding: 0px;
-}
-
-#projectnumber
-{
-	font: 50% Tahoma, Arial,sans-serif;
-	margin: 0px;
-	padding: 0px;
-}
-
-#titlearea
-{
-	padding: 0px;
-	margin: 0px;
-	width: 100%;
-	border-bottom: 1px solid #5373B4;
-}
-
-.image
-{
-        text-align: center;
-}
-
-.dotgraph
-{
-        text-align: center;
-}
-
-.mscgraph
-{
-        text-align: center;
-}
-
-.plantumlgraph
-{
-        text-align: center;
-}
-
-.diagraph
-{
-        text-align: center;
-}
-
-.caption
-{
-	font-weight: bold;
-}
-
-div.zoom
-{
-	border: 1px solid #90A5CE;
-}
-
-dl.citelist {
-        margin-bottom:50px;
-}
-
-dl.citelist dt {
-        color:#334975;
-        float:left;
-        font-weight:bold;
-        margin-right:10px;
-        padding:5px;
-}
-
-dl.citelist dd {
-        margin:2px 0;
-        padding:5px 0;
-}
-
-div.toc {
-        padding: 14px 25px;
-        background-color: #F4F6FA;
-        border: 1px solid #D8DFEE;
-        border-radius: 7px 7px 7px 7px;
-        float: right;
-        height: auto;
-        margin: 0 8px 10px 10px;
-        width: 200px;
-}
-
-.PageDocRTL-title div.toc {
-  float: left !important;
-  text-align: right;
-}
-
-div.toc li {
-        background: url("bdwn.png") no-repeat scroll 0 5px transparent;
-        font: 10px/1.2 Verdana,DejaVu Sans,Geneva,sans-serif;
-        margin-top: 5px;
-        padding-left: 10px;
-        padding-top: 2px;
-}
-
-.PageDocRTL-title div.toc li {
-  background-position-x: right !important;
-  padding-left: 0 !important;
-  padding-right: 10px;
-}
-
-div.toc h3 {
-        font: bold 12px/1.2 Arial,FreeSans,sans-serif;
-	color: #4665A2;
-        border-bottom: 0 none;
-        margin: 0;
-}
-
-div.toc ul {
-        list-style: none outside none;
-        border: medium none;
-        padding: 0px;
-}       
-
-div.toc li.level1 {
-        margin-left: 0px;
-}
-
-div.toc li.level2 {
-        margin-left: 15px;
-}
-
-div.toc li.level3 {
-        margin-left: 30px;
-}
-
-div.toc li.level4 {
-        margin-left: 45px;
-}
-
-.PageDocRTL-title div.toc li.level1 {
-  margin-left: 0 !important;
-  margin-right: 0;
-}
-
-.PageDocRTL-title div.toc li.level2 {
-  margin-left: 0 !important;
-  margin-right: 15px;
-}
-
-.PageDocRTL-title div.toc li.level3 {
-  margin-left: 0 !important;
-  margin-right: 30px;
-}
-
-.PageDocRTL-title div.toc li.level4 {
-  margin-left: 0 !important;
-  margin-right: 45px;
-}
-
-.inherit_header {
-        font-weight: bold;
-        color: gray;
-        cursor: pointer;
-	-webkit-touch-callout: none;
-	-webkit-user-select: none;
-	-khtml-user-select: none;
-	-moz-user-select: none;
-	-ms-user-select: none;
-	user-select: none;
-}
-
-.inherit_header td {
-        padding: 6px 0px 2px 5px;
-}
-
-.inherit {
-        display: none;
-}
-
-tr.heading h2 {
-        margin-top: 12px;
-        margin-bottom: 4px;
-}
-
-/* tooltip related style info */
-
-.ttc {
-        position: absolute;
-        display: none;
-}
-
-#powerTip {
-	cursor: default;
-	white-space: nowrap;
-	background-color: white;
-	border: 1px solid gray;
-	border-radius: 4px 4px 4px 4px;
-	box-shadow: 1px 1px 7px gray;
-	display: none;
-	font-size: smaller;
-	max-width: 80%;
-	opacity: 0.9;
-	padding: 1ex 1em 1em;
-	position: absolute;
-	z-index: 2147483647;
-}
-
-#powerTip div.ttdoc {
-        color: grey;
-	font-style: italic;
-}
-
-#powerTip div.ttname a {
-        font-weight: bold;
-}
-
-#powerTip div.ttname {
-        font-weight: bold;
-}
-
-#powerTip div.ttdeci {
-        color: #006318;
-}
-
-#powerTip div {
-        margin: 0px;
-        padding: 0px;
-        font: 12px/16px Roboto,sans-serif;
-}
-
-#powerTip:before, #powerTip:after {
-	content: "";
-	position: absolute;
-	margin: 0px;
-}
-
-#powerTip.n:after,  #powerTip.n:before,
-#powerTip.s:after,  #powerTip.s:before,
-#powerTip.w:after,  #powerTip.w:before,
-#powerTip.e:after,  #powerTip.e:before,
-#powerTip.ne:after, #powerTip.ne:before,
-#powerTip.se:after, #powerTip.se:before,
-#powerTip.nw:after, #powerTip.nw:before,
-#powerTip.sw:after, #powerTip.sw:before {
-	border: solid transparent;
-	content: " ";
-	height: 0;
-	width: 0;
-	position: absolute;
-}
-
-#powerTip.n:after,  #powerTip.s:after,
-#powerTip.w:after,  #powerTip.e:after,
-#powerTip.nw:after, #powerTip.ne:after,
-#powerTip.sw:after, #powerTip.se:after {
-	border-color: rgba(255, 255, 255, 0);
-}
-
-#powerTip.n:before,  #powerTip.s:before,
-#powerTip.w:before,  #powerTip.e:before,
-#powerTip.nw:before, #powerTip.ne:before,
-#powerTip.sw:before, #powerTip.se:before {
-	border-color: rgba(128, 128, 128, 0);
-}
-
-#powerTip.n:after,  #powerTip.n:before,
-#powerTip.ne:after, #powerTip.ne:before,
-#powerTip.nw:after, #powerTip.nw:before {
-	top: 100%;
-}
-
-#powerTip.n:after, #powerTip.ne:after, #powerTip.nw:after {
-	border-top-color: #FFFFFF;
-	border-width: 10px;
-	margin: 0px -10px;
-}
-#powerTip.n:before {
-	border-top-color: #808080;
-	border-width: 11px;
-	margin: 0px -11px;
-}
-#powerTip.n:after, #powerTip.n:before {
-	left: 50%;
-}
-
-#powerTip.nw:after, #powerTip.nw:before {
-	right: 14px;
-}
-
-#powerTip.ne:after, #powerTip.ne:before {
-	left: 14px;
-}
-
-#powerTip.s:after,  #powerTip.s:before,
-#powerTip.se:after, #powerTip.se:before,
-#powerTip.sw:after, #powerTip.sw:before {
-	bottom: 100%;
-}
-
-#powerTip.s:after, #powerTip.se:after, #powerTip.sw:after {
-	border-bottom-color: #FFFFFF;
-	border-width: 10px;
-	margin: 0px -10px;
-}
-
-#powerTip.s:before, #powerTip.se:before, #powerTip.sw:before {
-	border-bottom-color: #808080;
-	border-width: 11px;
-	margin: 0px -11px;
-}
-
-#powerTip.s:after, #powerTip.s:before {
-	left: 50%;
-}
-
-#powerTip.sw:after, #powerTip.sw:before {
-	right: 14px;
-}
-
-#powerTip.se:after, #powerTip.se:before {
-	left: 14px;
-}
-
-#powerTip.e:after, #powerTip.e:before {
-	left: 100%;
-}
-#powerTip.e:after {
-	border-left-color: #FFFFFF;
-	border-width: 10px;
-	top: 50%;
-	margin-top: -10px;
-}
-#powerTip.e:before {
-	border-left-color: #808080;
-	border-width: 11px;
-	top: 50%;
-	margin-top: -11px;
-}
-
-#powerTip.w:after, #powerTip.w:before {
-	right: 100%;
-}
-#powerTip.w:after {
-	border-right-color: #FFFFFF;
-	border-width: 10px;
-	top: 50%;
-	margin-top: -10px;
-}
-#powerTip.w:before {
-	border-right-color: #808080;
-	border-width: 11px;
-	top: 50%;
-	margin-top: -11px;
-}
-
-@media print
-{
-  #top { display: none; }
-  #side-nav { display: none; }
-  #nav-path { display: none; }
-  body { overflow:visible; }
-  h1, h2, h3, h4, h5, h6 { page-break-after: avoid; }
-  .summary { display: none; }
-  .memitem { page-break-inside: avoid; }
-  #doc-content
-  {
-    margin-left:0 !important;
-    height:auto !important;
-    width:auto !important;
-    overflow:inherit;
-    display:inline;
-  }
-}
-
-/* @group Markdown */
-
-/*
-table.markdownTable {
-	border-collapse:collapse;
-        margin-top: 4px;
-        margin-bottom: 4px;
-}
-
-table.markdownTable td, table.markdownTable th {
-	border: 1px solid #2D4068;
-	padding: 3px 7px 2px;
-}
-
-table.markdownTableHead tr {
-}
-
-table.markdownTableBodyLeft td, table.markdownTable th {
-	border: 1px solid #2D4068;
-	padding: 3px 7px 2px;
-}
-
-th.markdownTableHeadLeft th.markdownTableHeadRight th.markdownTableHeadCenter th.markdownTableHeadNone {
-	background-color: #374F7F;
-	color: #FFFFFF;
-	font-size: 110%;
-	padding-bottom: 4px;
-	padding-top: 5px;
-}
-
-th.markdownTableHeadLeft {
-	text-align: left
-}
-
-th.markdownTableHeadRight {
-	text-align: right
-}
-
-th.markdownTableHeadCenter {
-	text-align: center
-}
-*/
-
-table.markdownTable {
-	border-collapse:collapse;
-        margin-top: 4px;
-        margin-bottom: 4px;
-}
-
-table.markdownTable td, table.markdownTable th {
-	border: 1px solid #2D4068;
-	padding: 3px 7px 2px;
-}
-
-table.markdownTable tr {
-}
-
-th.markdownTableHeadLeft, th.markdownTableHeadRight, th.markdownTableHeadCenter, th.markdownTableHeadNone {
-	background-color: #374F7F;
-	color: #FFFFFF;
-	font-size: 110%;
-	padding-bottom: 4px;
-	padding-top: 5px;
-}
-
-th.markdownTableHeadLeft, td.markdownTableBodyLeft {
-	text-align: left
-}
-
-th.markdownTableHeadRight, td.markdownTableBodyRight {
-	text-align: right
-}
-
-th.markdownTableHeadCenter, td.markdownTableBodyCenter {
-	text-align: center
-}
-
-.DocNodeRTL {
-  text-align: right;
-  direction: rtl;
-}
-
-.DocNodeLTR {
-  text-align: left;
-  direction: ltr;
-}
-
-table.DocNodeRTL {
-   width: auto;
-   margin-right: 0;
-   margin-left: auto;
-}
-
-table.DocNodeLTR {
-   width: auto;
-   margin-right: auto;
-   margin-left: 0;
-}
-
-tt, code, kbd, samp
-{
-  display: inline-block;
-  direction:ltr; 
-}
-/* @end */
-
-u {
-	text-decoration: underline;
-}
-
diff --git a/docs/html/doxygen.png b/docs/html/doxygen.png
deleted file mode 100644
index 3ff17d8..0000000
Binary files a/docs/html/doxygen.png and /dev/null differ
diff --git a/docs/html/driverexception_8h_source.html b/docs/html/driverexception_8h_source.html
deleted file mode 100644
index 25f0f2a..0000000
--- a/docs/html/driverexception_8h_source.html
+++ /dev/null
@@ -1,82 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml">
-<head>
-<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
-<meta http-equiv="X-UA-Compatible" content="IE=9"/>
-<meta name="generator" content="Doxygen 1.8.16"/>
-<meta name="viewport" content="width=device-width, initial-scale=1"/>
-<title>B15F: drv/driverexception.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">B15F
-   </div>
-   <div id="projectbrief">Board 15 Famulus Edition</div>
-  </td>
- </tr>
- </tbody>
-</table>
-</div>
-<!-- end header part -->
-<!-- Generated by Doxygen 1.8.16 -->
-<script type="text/javascript">
-/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
-var searchBox = new SearchBox("searchBox", "search",false,'Search');
-/* @license-end */
-</script>
-<script type="text/javascript" src="menudata.js"></script>
-<script type="text/javascript" src="menu.js"></script>
-<script type="text/javascript">
-/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
-$(function() {
-  initMenu('',true,false,'search.php','Search');
-  $(document).ready(function() { init_search(); });
-});
-/* @license-end */</script>
-<div id="main-nav"></div>
-<!-- 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 id="nav-path" class="navpath">
-  <ul>
-<li class="navelem"><a class="el" href="dir_587c94d866dbb2f408f78cf41f9b2f8d.html">drv</a></li>  </ul>
-</div>
-</div><!-- top -->
-<div class="header">
-  <div class="headertitle">
-<div class="title">driverexception.h</div>  </div>
-</div><!--header-->
-<div class="contents">
-<div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno">    1</span>&#160;<span class="preprocessor">#ifndef DRIVEREXCEPTION_H</span></div><div class="line"><a name="l00002"></a><span class="lineno">    2</span>&#160;<span class="preprocessor">#define DRIVEREXCEPTION_H</span></div><div class="line"><a name="l00003"></a><span class="lineno">    3</span>&#160; </div><div class="line"><a name="l00004"></a><span class="lineno">    4</span>&#160;<span class="preprocessor">#include &lt;exception&gt;</span></div><div class="line"><a name="l00005"></a><span class="lineno">    5</span>&#160; </div><div class="line"><a name="l00006"></a><span class="lineno">    6</span>&#160;<span class="comment">// SOURCE: https://stackoverflow.com/a/8152888</span></div><div class="line"><a name="l00007"></a><span class="lineno">    7</span>&#160; </div><div class="line"><a name="l00010"></a><span class="lineno"><a class="line" href="classDriverException.html">   10</a></span>&#160;<span class="keyword">class </span><a class="code" href="classDriverException.html">DriverException</a>: <span class="keyword">public</span> std::exception</div><div class="line"><a name="l00011"></a><span class="lineno">   11</span>&#160;{</div><div class="line"><a name="l00012"></a><span class="lineno">   12</span>&#160;<span class="keyword">public</span>:</div><div class="line"><a name="l00013"></a><span class="lineno">   13</span>&#160;    <span class="keyword">explicit</span> <a class="code" href="classDriverException.html">DriverException</a>(<span class="keyword">const</span> <span class="keywordtype">char</span>* message) : msg_(message)</div><div class="line"><a name="l00014"></a><span class="lineno">   14</span>&#160;    {</div><div class="line"><a name="l00015"></a><span class="lineno">   15</span>&#160;    }</div><div class="line"><a name="l00016"></a><span class="lineno">   16</span>&#160; </div><div class="line"><a name="l00017"></a><span class="lineno">   17</span>&#160;    <span class="keyword">explicit</span> <a class="code" href="classDriverException.html">DriverException</a>(<span class="keyword">const</span> std::string&amp; message) : msg_(message)</div><div class="line"><a name="l00018"></a><span class="lineno">   18</span>&#160;    {</div><div class="line"><a name="l00019"></a><span class="lineno">   19</span>&#160;    }</div><div class="line"><a name="l00020"></a><span class="lineno">   20</span>&#160; </div><div class="line"><a name="l00021"></a><span class="lineno">   21</span>&#160;    <span class="keyword">virtual</span> ~<a class="code" href="classDriverException.html">DriverException</a>() <span class="keywordflow">throw</span> ()</div><div class="line"><a name="l00022"></a><span class="lineno">   22</span>&#160;    {</div><div class="line"><a name="l00023"></a><span class="lineno">   23</span>&#160;    }</div><div class="line"><a name="l00024"></a><span class="lineno">   24</span>&#160; </div><div class="line"><a name="l00025"></a><span class="lineno">   25</span>&#160;    <span class="keyword">virtual</span> <span class="keyword">const</span> <span class="keywordtype">char</span>* what() <span class="keyword">const</span> <span class="keywordflow">throw</span> ()</div><div class="line"><a name="l00026"></a><span class="lineno">   26</span>&#160;    {</div><div class="line"><a name="l00027"></a><span class="lineno">   27</span>&#160;        <span class="keywordflow">return</span> msg_.c_str();</div><div class="line"><a name="l00028"></a><span class="lineno">   28</span>&#160;    }</div><div class="line"><a name="l00029"></a><span class="lineno">   29</span>&#160; </div><div class="line"><a name="l00030"></a><span class="lineno">   30</span>&#160;<span class="keyword">protected</span>:</div><div class="line"><a name="l00031"></a><span class="lineno">   31</span>&#160;    std::string msg_;</div><div class="line"><a name="l00032"></a><span class="lineno">   32</span>&#160;};</div><div class="line"><a name="l00033"></a><span class="lineno">   33</span>&#160; </div><div class="line"><a name="l00034"></a><span class="lineno">   34</span>&#160;<span class="preprocessor">#endif // DRIVEREXCEPTION_H</span></div><div class="line"><a name="l00035"></a><span class="lineno">   35</span>&#160; </div></div><!-- fragment --></div><!-- contents -->
-<div class="ttc" id="aclassDriverException_html"><div class="ttname"><a href="classDriverException.html">DriverException</a></div><div class="ttdef"><b>Definition:</b> <a href="driverexception_8h_source.html#l00010">driverexception.h:10</a></div></div>
-<!-- start footer part -->
-<hr class="footer"/><address class="footer"><small>
-Generated on Fri Jun 7 2019 14:50:45 for B15F by &#160;<a href="http://www.doxygen.org/index.html">
-<img class="footer" src="doxygen.png" alt="doxygen"/>
-</a> 1.8.16
-</small></address>
-</body>
-</html>
diff --git a/docs/html/dynsections.js b/docs/html/dynsections.js
deleted file mode 100644
index c8e84aa..0000000
--- a/docs/html/dynsections.js
+++ /dev/null
@@ -1,127 +0,0 @@
-/*
- @licstart  The following is the entire license notice for the
- JavaScript code in this file.
-
- Copyright (C) 1997-2017 by Dimitri van Heesch
-
- This program is free software; you can redistribute it and/or modify
- it under the terms of the GNU General Public License as published by
- the Free Software Foundation; either version 2 of the License, or
- (at your option) any later version.
-
- This program is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- GNU General Public License for more details.
-
- You should have received a copy of the GNU General Public License along
- with this program; if not, write to the Free Software Foundation, Inc.,
- 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
-
- @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('&#9660;');
-      $(this).show();
-    } else if (l==level+1) {
-      i.removeClass('iconfclosed iconfopen').addClass('iconfclosed');
-      a.html('&#9658;');
-      $(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('&#9658;');
-    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('&#9660;');
-    // 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('&#9658;');
-    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 */
-
-$(document).ready(function() {
-  $('.code,.codeRef').each(function() {
-    $(this).data('powertip',$('#a'+$(this).attr('href').replace(/.*\//,'').replace(/[^a-z_A-Z0-9]/g,'_')).html());
-    $(this).powerTip({ placement: 's', smartPlacement: true, mouseOnToPopup: true });
-  });
-});
diff --git a/docs/html/files.html b/docs/html/files.html
deleted file mode 100644
index b6a9f7f..0000000
--- a/docs/html/files.html
+++ /dev/null
@@ -1,107 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml">
-<head>
-<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
-<meta http-equiv="X-UA-Compatible" content="IE=9"/>
-<meta name="generator" content="Doxygen 1.8.16"/>
-<meta name="viewport" content="width=device-width, initial-scale=1"/>
-<title>B15F: 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">B15F
-   </div>
-   <div id="projectbrief">Board 15 Famulus Edition</div>
-  </td>
- </tr>
- </tbody>
-</table>
-</div>
-<!-- end header part -->
-<!-- Generated by Doxygen 1.8.16 -->
-<script type="text/javascript">
-/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
-var searchBox = new SearchBox("searchBox", "search",false,'Search');
-/* @license-end */
-</script>
-<script type="text/javascript" src="menudata.js"></script>
-<script type="text/javascript" src="menu.js"></script>
-<script type="text/javascript">
-/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
-$(function() {
-  initMenu('',true,false,'search.php','Search');
-  $(document).ready(function() { init_search(); });
-});
-/* @license-end */</script>
-<div id="main-nav"></div>
-</div><!-- top -->
-<!-- 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">
-<div class="levels">[detail level <span onclick="javascript:toggleLevel(1);">1</span><span onclick="javascript:toggleLevel(2);">2</span>]</div><table class="directory">
-<tr id="row_0_" class="even"><td class="entry"><span style="width:0px;display:inline-block;">&#160;</span><span id="arr_0_" class="arrow" onclick="toggleFolder('0_')">&#9660;</span><span id="img_0_" class="iconfopen" onclick="toggleFolder('0_')">&#160;</span><a class="el" href="dir_587c94d866dbb2f408f78cf41f9b2f8d.html" target="_self">drv</a></td><td class="desc"></td></tr>
-<tr id="row_0_0_"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><a href="b15f_8cpp_source.html"><span class="icondoc"></span></a><b>b15f.cpp</b></td><td class="desc"></td></tr>
-<tr id="row_0_1_" class="even"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><a href="b15f_8h_source.html"><span class="icondoc"></span></a><b>b15f.h</b></td><td class="desc"></td></tr>
-<tr id="row_0_2_"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><a href="dot_8cpp_source.html"><span class="icondoc"></span></a><b>dot.cpp</b></td><td class="desc"></td></tr>
-<tr id="row_0_3_" class="even"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><a href="dot_8h_source.html"><span class="icondoc"></span></a><b>dot.h</b></td><td class="desc"></td></tr>
-<tr id="row_0_4_"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><a href="driverexception_8h_source.html"><span class="icondoc"></span></a><b>driverexception.h</b></td><td class="desc"></td></tr>
-<tr id="row_0_5_" class="even"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><a href="plottyfile_8cpp_source.html"><span class="icondoc"></span></a><b>plottyfile.cpp</b></td><td class="desc"></td></tr>
-<tr id="row_0_6_"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><a href="plottyfile_8h_source.html"><span class="icondoc"></span></a><b>plottyfile.h</b></td><td class="desc"></td></tr>
-<tr id="row_0_7_" class="even"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><a href="timeoutexception_8h_source.html"><span class="icondoc"></span></a><b>timeoutexception.h</b></td><td class="desc"></td></tr>
-<tr id="row_0_8_"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><a href="usart_8cpp_source.html"><span class="icondoc"></span></a><b>usart.cpp</b></td><td class="desc"></td></tr>
-<tr id="row_0_9_" class="even"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><a href="usart_8h_source.html"><span class="icondoc"></span></a><b>usart.h</b></td><td class="desc"></td></tr>
-<tr id="row_0_10_"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><a href="usartexception_8h_source.html"><span class="icondoc"></span></a><b>usartexception.h</b></td><td class="desc"></td></tr>
-<tr id="row_1_" class="even"><td class="entry"><span style="width:0px;display:inline-block;">&#160;</span><span id="arr_1_" class="arrow" onclick="toggleFolder('1_')">&#9660;</span><span id="img_1_" class="iconfopen" onclick="toggleFolder('1_')">&#160;</span><a class="el" href="dir_1788f8309b1a812dcb800a185471cf6c.html" target="_self">ui</a></td><td class="desc"></td></tr>
-<tr id="row_1_0_"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><a href="ui_8cpp_source.html"><span class="icondoc"></span></a><b>ui.cpp</b></td><td class="desc"></td></tr>
-<tr id="row_1_1_" class="even"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><a href="ui_8h_source.html"><span class="icondoc"></span></a><b>ui.h</b></td><td class="desc"></td></tr>
-<tr id="row_1_2_"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><a href="view_8cpp_source.html"><span class="icondoc"></span></a><b>view.cpp</b></td><td class="desc"></td></tr>
-<tr id="row_1_3_" class="even"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><a href="view_8h_source.html"><span class="icondoc"></span></a><b>view.h</b></td><td class="desc"></td></tr>
-<tr id="row_1_4_"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><a href="view__info_8cpp_source.html"><span class="icondoc"></span></a><b>view_info.cpp</b></td><td class="desc"></td></tr>
-<tr id="row_1_5_" class="even"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><a href="view__info_8h_source.html"><span class="icondoc"></span></a><b>view_info.h</b></td><td class="desc"></td></tr>
-<tr id="row_1_6_"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><a href="view__monitor_8cpp_source.html"><span class="icondoc"></span></a><b>view_monitor.cpp</b></td><td class="desc"></td></tr>
-<tr id="row_1_7_" class="even"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><a href="view__monitor_8h_source.html"><span class="icondoc"></span></a><b>view_monitor.h</b></td><td class="desc"></td></tr>
-<tr id="row_1_8_"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><a href="view__promt_8cpp_source.html"><span class="icondoc"></span></a><b>view_promt.cpp</b></td><td class="desc"></td></tr>
-<tr id="row_1_9_" class="even"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><a href="view__promt_8h_source.html"><span class="icondoc"></span></a><b>view_promt.h</b></td><td class="desc"></td></tr>
-<tr id="row_1_10_"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><a href="view__selection_8cpp_source.html"><span class="icondoc"></span></a><b>view_selection.cpp</b></td><td class="desc"></td></tr>
-<tr id="row_1_11_" class="even"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><a href="view__selection_8h_source.html"><span class="icondoc"></span></a><b>view_selection.h</b></td><td class="desc"></td></tr>
-<tr id="row_2_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><a href="cli_8cpp_source.html"><span class="icondoc"></span></a><b>cli.cpp</b></td><td class="desc"></td></tr>
-</table>
-</div><!-- directory -->
-</div><!-- contents -->
-<!-- start footer part -->
-<hr class="footer"/><address class="footer"><small>
-Generated on Fri Jun 7 2019 14:50:45 for B15F by &#160;<a href="http://www.doxygen.org/index.html">
-<img class="footer" src="doxygen.png" alt="doxygen"/>
-</a> 1.8.16
-</small></address>
-</body>
-</html>
diff --git a/docs/html/folderclosed.png b/docs/html/folderclosed.png
deleted file mode 100644
index bb8ab35..0000000
Binary files a/docs/html/folderclosed.png and /dev/null differ
diff --git a/docs/html/folderopen.png b/docs/html/folderopen.png
deleted file mode 100644
index d6c7f67..0000000
Binary files a/docs/html/folderopen.png and /dev/null differ
diff --git a/docs/html/functions.html b/docs/html/functions.html
deleted file mode 100644
index b9110a6..0000000
--- a/docs/html/functions.html
+++ /dev/null
@@ -1,388 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml">
-<head>
-<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
-<meta http-equiv="X-UA-Compatible" content="IE=9"/>
-<meta name="generator" content="Doxygen 1.8.16"/>
-<meta name="viewport" content="width=device-width, initial-scale=1"/>
-<title>B15F: 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">B15F
-   </div>
-   <div id="projectbrief">Board 15 Famulus Edition</div>
-  </td>
- </tr>
- </tbody>
-</table>
-</div>
-<!-- end header part -->
-<!-- Generated by Doxygen 1.8.16 -->
-<script type="text/javascript">
-/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
-var searchBox = new SearchBox("searchBox", "search",false,'Search');
-/* @license-end */
-</script>
-<script type="text/javascript" src="menudata.js"></script>
-<script type="text/javascript" src="menu.js"></script>
-<script type="text/javascript">
-/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
-$(function() {
-  initMenu('',true,false,'search.php','Search');
-  $(document).ready(function() { init_search(); });
-});
-/* @license-end */</script>
-<div id="main-nav"></div>
-</div><!-- top -->
-<!-- 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>
-
-<h3><a id="index_a"></a>- a -</h3><ul>
-<li>abort()
-: <a class="el" href="classB15F.html#a3f09a418f9e3be5d1d750e4515c96f1e">B15F</a>
-</li>
-<li>activateSelfTestMode()
-: <a class="el" href="classB15F.html#ad9bf80ee2485fb5aac9926c6ef0731f1">B15F</a>
-</li>
-<li>addDot()
-: <a class="el" href="classPlottyFile.html#ae091e6eaaca16302f17572ac7dec6f7c">PlottyFile</a>
-</li>
-<li>analogRead()
-: <a class="el" href="classB15F.html#ae0bd1f69751e2dc3c462db9213fc4627">B15F</a>
-</li>
-<li>analogSequence()
-: <a class="el" href="classB15F.html#ab82a324426c3063318c6cafb3089ae02">B15F</a>
-</li>
-<li>analogWrite0()
-: <a class="el" href="classB15F.html#afc55fd590c7fa5c942d100cb60c4b0d3">B15F</a>
-</li>
-<li>analogWrite1()
-: <a class="el" href="classB15F.html#a7f1becceac744f5cd2ad529748fd836f">B15F</a>
-</li>
-</ul>
-
-
-<h3><a id="index_b"></a>- b -</h3><ul>
-<li>BAUDRATE
-: <a class="el" href="classB15F.html#a7d548d6861cfc69753161bf9cda14f87">B15F</a>
-</li>
-</ul>
-
-
-<h3><a id="index_c"></a>- c -</h3><ul>
-<li>clearInputBuffer()
-: <a class="el" href="classUSART.html#a28a2b4c5ed66b2c3a81196f76884f156">USART</a>
-</li>
-<li>clearOutputBuffer()
-: <a class="el" href="classUSART.html#a756d268a8762c316f91ca3238972b0c1">USART</a>
-</li>
-<li>closeDevice()
-: <a class="el" href="classUSART.html#af80d6291ac1d2df04cfa1d8d27458cc5">USART</a>
-</li>
-</ul>
-
-
-<h3><a id="index_d"></a>- d -</h3><ul>
-<li>delay_ms()
-: <a class="el" href="classB15F.html#aaffce20afb9f06bc4b7556c70ce76416">B15F</a>
-</li>
-<li>delay_us()
-: <a class="el" href="classB15F.html#adcaac8ae8db3c28eccb499fbd720361f">B15F</a>
-</li>
-<li>digitalRead0()
-: <a class="el" href="classB15F.html#ae0df6d423deeb2fd610968bd1c72060e">B15F</a>
-</li>
-<li>digitalRead1()
-: <a class="el" href="classB15F.html#afc76b612dd4faeee0ac02a66b65af5f2">B15F</a>
-</li>
-<li>digitalWrite0()
-: <a class="el" href="classB15F.html#a13797edea1c50278988373acbd110064">B15F</a>
-</li>
-<li>digitalWrite1()
-: <a class="el" href="classB15F.html#aa225e7fc813849634063e071ef25db1b">B15F</a>
-</li>
-<li>discard()
-: <a class="el" href="classB15F.html#ae4740cd473f40a1a4121dfa66b25e1d5">B15F</a>
-</li>
-<li>Dot()
-: <a class="el" href="classDot.html#ad975f119c0627a928790b3cd5ca6da05">Dot</a>
-</li>
-<li>drop()
-: <a class="el" href="classUSART.html#a038d00c0b3d8c0c13c3e7eae5dad7813">USART</a>
-</li>
-</ul>
-
-
-<h3><a id="index_e"></a>- e -</h3><ul>
-<li>exec()
-: <a class="el" href="classB15F.html#a1a7ac52984ed7ecac008a3e4060eee3a">B15F</a>
-</li>
-</ul>
-
-
-<h3><a id="index_f"></a>- f -</h3><ul>
-<li>flushOutputBuffer()
-: <a class="el" href="classUSART.html#adb6ff4d1cf1af79ca255c5a81780200d">USART</a>
-</li>
-</ul>
-
-
-<h3><a id="index_g"></a>- g -</h3><ul>
-<li>getBaudrate()
-: <a class="el" href="classUSART.html#a4918672d8069df205378a528b1892db3">USART</a>
-</li>
-<li>getBoardInfo()
-: <a class="el" href="classB15F.html#a4f01677e73d6d172a2c1cae9427a591b">B15F</a>
-</li>
-<li>getCurve()
-: <a class="el" href="classDot.html#ad0ae7dc1a9be3d8d985affc089b34396">Dot</a>
-</li>
-<li>getDescPara()
-: <a class="el" href="classPlottyFile.html#a536967daae3b382a5d6575f55450e198">PlottyFile</a>
-</li>
-<li>getDescX()
-: <a class="el" href="classPlottyFile.html#a9cf7baa569be308c2cf6e07cadded09d">PlottyFile</a>
-</li>
-<li>getDescY()
-: <a class="el" href="classPlottyFile.html#ab4a847fd71a804182f211233e194df45">PlottyFile</a>
-</li>
-<li>getFunctionType()
-: <a class="el" href="classPlottyFile.html#a88bb7d8350ed5fbc7a40e8d903c94bdb">PlottyFile</a>
-</li>
-<li>getInstance()
-: <a class="el" href="classB15F.html#a8b4533d232c55ef2aa967e39e2d23380">B15F</a>
-</li>
-<li>getParaFirstCurve()
-: <a class="el" href="classPlottyFile.html#a40828c93d66fe80166c4f603d5bdfa48">PlottyFile</a>
-</li>
-<li>getParaStepWidth()
-: <a class="el" href="classPlottyFile.html#a9da23f2bb8e6eb1837fc992ffd4057db">PlottyFile</a>
-</li>
-<li>getQuadrant()
-: <a class="el" href="classPlottyFile.html#a54e94e80061a27614f2d4d63697d3376">PlottyFile</a>
-</li>
-<li>getRefX()
-: <a class="el" href="classPlottyFile.html#a7dd84b9f0826f3220fc6b5a4f1ce9890">PlottyFile</a>
-</li>
-<li>getRefY()
-: <a class="el" href="classPlottyFile.html#ae6650c61a3b1a610ce716253418bd7f2">PlottyFile</a>
-</li>
-<li>getRegister()
-: <a class="el" href="classB15F.html#a9bd47da39928af6f51075bdc3fe73ddc">B15F</a>
-</li>
-<li>getTimeout()
-: <a class="el" href="classUSART.html#a19cf777956a038878fc2d2b58c3d2b41">USART</a>
-</li>
-<li>getUnitPara()
-: <a class="el" href="classPlottyFile.html#abcda4139adf8c5ab8a93b13b84ac097c">PlottyFile</a>
-</li>
-<li>getUnitX()
-: <a class="el" href="classPlottyFile.html#af952ac5e2c40896acaf6a86063874fe3">PlottyFile</a>
-</li>
-<li>getUnitY()
-: <a class="el" href="classPlottyFile.html#a746b96036872dbece204e9739f3413b6">PlottyFile</a>
-</li>
-<li>getX()
-: <a class="el" href="classDot.html#a029f0cc99c474122b77a708a317e7f77">Dot</a>
-</li>
-<li>getY()
-: <a class="el" href="classDot.html#a8fcb987e6308d8184d1a2c8692227e58">Dot</a>
-</li>
-</ul>
-
-
-<h3><a id="index_m"></a>- m -</h3><ul>
-<li>msg
-: <a class="el" href="classTimeoutException.html#aa625fc0fae48a67737a98eafb91c9624">TimeoutException</a>
-, <a class="el" href="classUSARTException.html#a14c80df95f216d221aa97cffbcd8dd79">USARTException</a>
-</li>
-<li>MSG_FAIL
-: <a class="el" href="classB15F.html#a77d1ecf24b406c9204665d3b09c36f1e">B15F</a>
-</li>
-<li>MSG_OK
-: <a class="el" href="classB15F.html#ab01299858f74a6cec598688562e0ad02">B15F</a>
-</li>
-</ul>
-
-
-<h3><a id="index_o"></a>- o -</h3><ul>
-<li>openDevice()
-: <a class="el" href="classUSART.html#a5f7e2abda2ec4a68a5fdb8ee2f8a940a">USART</a>
-</li>
-</ul>
-
-
-<h3><a id="index_p"></a>- p -</h3><ul>
-<li>PRE
-: <a class="el" href="classB15F.html#a3b0fc1f85954b2d9c145af4a3af5b1ec">B15F</a>
-</li>
-<li>pwmSetFrequency()
-: <a class="el" href="classB15F.html#ac6f6532bb9550a0632c28b98c157d0a1">B15F</a>
-</li>
-<li>pwmSetValue()
-: <a class="el" href="classB15F.html#af9aad3c0db5d5a8b37219d713e1977ee">B15F</a>
-</li>
-</ul>
-
-
-<h3><a id="index_r"></a>- r -</h3><ul>
-<li>readDipSwitch()
-: <a class="el" href="classB15F.html#a6f858f21ea81d491b5031b3644a2239a">B15F</a>
-</li>
-<li>receive()
-: <a class="el" href="classUSART.html#a0fdc238203852f00bd750127602b2a6a">USART</a>
-</li>
-<li>reconnect()
-: <a class="el" href="classB15F.html#a52557b375443c180a044e7d4e80a1ae7">B15F</a>
-</li>
-<li>RECONNECT_TIMEOUT
-: <a class="el" href="classB15F.html#a040951746fbfd632e12bd1ad14578816">B15F</a>
-</li>
-<li>RECONNECT_TRIES
-: <a class="el" href="classB15F.html#a6c4895bdbcd71ff6743becf97985c2dc">B15F</a>
-</li>
-</ul>
-
-
-<h3><a id="index_s"></a>- s -</h3><ul>
-<li>setAbortHandler()
-: <a class="el" href="classB15F.html#a55b0cd1ea582bda53d6979442640f8e9">B15F</a>
-</li>
-<li>setBaudrate()
-: <a class="el" href="classUSART.html#aac63918a8b97ae63ee607cfa39e6d88d">USART</a>
-</li>
-<li>setDescPara()
-: <a class="el" href="classPlottyFile.html#a431904143c3c1164a2e8b8cfec3c77ab">PlottyFile</a>
-</li>
-<li>setDescX()
-: <a class="el" href="classPlottyFile.html#aa0449c290265d55d6223b19cf0a88b0a">PlottyFile</a>
-</li>
-<li>setDescY()
-: <a class="el" href="classPlottyFile.html#a38a3a4dfc76bc70523727584bf01d590">PlottyFile</a>
-</li>
-<li>setFunctionType()
-: <a class="el" href="classPlottyFile.html#a4e5ab1ebb012a5cc1a3d6458a4cd512f">PlottyFile</a>
-</li>
-<li>setParaFirstCurve()
-: <a class="el" href="classPlottyFile.html#aa676414793becb975506f48d6e949dd0">PlottyFile</a>
-</li>
-<li>setParaStepWidth()
-: <a class="el" href="classPlottyFile.html#a6caebd31e04e2e7081cc007047350355">PlottyFile</a>
-</li>
-<li>setQuadrant()
-: <a class="el" href="classPlottyFile.html#a1953ee0d9a87b7353c16139584e9c2ae">PlottyFile</a>
-</li>
-<li>setRefX()
-: <a class="el" href="classPlottyFile.html#a80c2c2e97a454566f9c1f2c51e1d7f3e">PlottyFile</a>
-</li>
-<li>setRefY()
-: <a class="el" href="classPlottyFile.html#a3a371228ddcc007e97eebe7cc04dffc2">PlottyFile</a>
-</li>
-<li>setRegister()
-: <a class="el" href="classB15F.html#ab446ecffab28d4515dfade79a8efc93d">B15F</a>
-</li>
-<li>setTimeout()
-: <a class="el" href="classUSART.html#ad7fe866cebe920784d2b17602824c7ff">USART</a>
-</li>
-<li>setUnitPara()
-: <a class="el" href="classPlottyFile.html#abbac84109a1e0958a4ca5c270fac0986">PlottyFile</a>
-</li>
-<li>setUnitX()
-: <a class="el" href="classPlottyFile.html#ab8d35a841ca9c325fca671cf34e03527">PlottyFile</a>
-</li>
-<li>setUnitY()
-: <a class="el" href="classPlottyFile.html#abb18c814f435926f741f7ceb310f3059">PlottyFile</a>
-</li>
-<li>startPlotty()
-: <a class="el" href="classPlottyFile.html#a08a115ef10458cadfe76077d623313df">PlottyFile</a>
-</li>
-</ul>
-
-
-<h3><a id="index_t"></a>- t -</h3><ul>
-<li>testConnection()
-: <a class="el" href="classB15F.html#af01983594f2af98ab2b1e514aa036a5d">B15F</a>
-</li>
-<li>testIntConv()
-: <a class="el" href="classB15F.html#a7b8a0e2a9156f7dcb05d097f23666a78">B15F</a>
-</li>
-<li>TimeoutException()
-: <a class="el" href="classTimeoutException.html#aa45912234da11ffc9dd3594a1bbc0218">TimeoutException</a>
-</li>
-<li>transmit()
-: <a class="el" href="classUSART.html#a41b19dd58f307015b73e154048cd74ca">USART</a>
-</li>
-</ul>
-
-
-<h3><a id="index_u"></a>- u -</h3><ul>
-<li>USART()
-: <a class="el" href="classUSART.html#a5daed20dc595c43d87c4c28bb08a7449">USART</a>
-</li>
-<li>USARTException()
-: <a class="el" href="classUSARTException.html#a3c359db129825703b91392d5128cf93d">USARTException</a>
-</li>
-</ul>
-
-
-<h3><a id="index_w"></a>- w -</h3><ul>
-<li>WDT_TIMEOUT
-: <a class="el" href="classB15F.html#a158d13bc84aed6430cdede1396384e06">B15F</a>
-</li>
-<li>what()
-: <a class="el" href="classTimeoutException.html#a97eaf01fc39ddb94b060020b42fefd6e">TimeoutException</a>
-, <a class="el" href="classUSARTException.html#a2af5e3c00cd0585c7427c2e0420a8f15">USARTException</a>
-</li>
-<li>writeToFile()
-: <a class="el" href="classPlottyFile.html#a82c348e7fade2edcbc907e7c2bc2e305">PlottyFile</a>
-</li>
-</ul>
-
-
-<h3><a id="index__7E"></a>- ~ -</h3><ul>
-<li>~TimeoutException()
-: <a class="el" href="classTimeoutException.html#a2f686b262d2ccffa0090fda9b44ab540">TimeoutException</a>
-</li>
-<li>~USART()
-: <a class="el" href="classUSART.html#a0c8eb1a939ca00921e22f6cbcc7bb749">USART</a>
-</li>
-<li>~USARTException()
-: <a class="el" href="classUSARTException.html#a0e008b3cb4974859e6bc8c8f8eb480be">USARTException</a>
-</li>
-</ul>
-</div><!-- contents -->
-<!-- start footer part -->
-<hr class="footer"/><address class="footer"><small>
-Generated on Fri Jun 7 2019 14:50:45 for B15F by &#160;<a href="http://www.doxygen.org/index.html">
-<img class="footer" src="doxygen.png" alt="doxygen"/>
-</a> 1.8.16
-</small></address>
-</body>
-</html>
diff --git a/docs/html/functions_func.html b/docs/html/functions_func.html
deleted file mode 100644
index c76feed..0000000
--- a/docs/html/functions_func.html
+++ /dev/null
@@ -1,355 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml">
-<head>
-<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
-<meta http-equiv="X-UA-Compatible" content="IE=9"/>
-<meta name="generator" content="Doxygen 1.8.16"/>
-<meta name="viewport" content="width=device-width, initial-scale=1"/>
-<title>B15F: 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">B15F
-   </div>
-   <div id="projectbrief">Board 15 Famulus Edition</div>
-  </td>
- </tr>
- </tbody>
-</table>
-</div>
-<!-- end header part -->
-<!-- Generated by Doxygen 1.8.16 -->
-<script type="text/javascript">
-/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
-var searchBox = new SearchBox("searchBox", "search",false,'Search');
-/* @license-end */
-</script>
-<script type="text/javascript" src="menudata.js"></script>
-<script type="text/javascript" src="menu.js"></script>
-<script type="text/javascript">
-/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
-$(function() {
-  initMenu('',true,false,'search.php','Search');
-  $(document).ready(function() { init_search(); });
-});
-/* @license-end */</script>
-<div id="main-nav"></div>
-</div><!-- top -->
-<!-- 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">
-&#160;
-
-<h3><a id="index_a"></a>- a -</h3><ul>
-<li>abort()
-: <a class="el" href="classB15F.html#a3f09a418f9e3be5d1d750e4515c96f1e">B15F</a>
-</li>
-<li>activateSelfTestMode()
-: <a class="el" href="classB15F.html#ad9bf80ee2485fb5aac9926c6ef0731f1">B15F</a>
-</li>
-<li>addDot()
-: <a class="el" href="classPlottyFile.html#ae091e6eaaca16302f17572ac7dec6f7c">PlottyFile</a>
-</li>
-<li>analogRead()
-: <a class="el" href="classB15F.html#ae0bd1f69751e2dc3c462db9213fc4627">B15F</a>
-</li>
-<li>analogSequence()
-: <a class="el" href="classB15F.html#ab82a324426c3063318c6cafb3089ae02">B15F</a>
-</li>
-<li>analogWrite0()
-: <a class="el" href="classB15F.html#afc55fd590c7fa5c942d100cb60c4b0d3">B15F</a>
-</li>
-<li>analogWrite1()
-: <a class="el" href="classB15F.html#a7f1becceac744f5cd2ad529748fd836f">B15F</a>
-</li>
-</ul>
-
-
-<h3><a id="index_c"></a>- c -</h3><ul>
-<li>clearInputBuffer()
-: <a class="el" href="classUSART.html#a28a2b4c5ed66b2c3a81196f76884f156">USART</a>
-</li>
-<li>clearOutputBuffer()
-: <a class="el" href="classUSART.html#a756d268a8762c316f91ca3238972b0c1">USART</a>
-</li>
-<li>closeDevice()
-: <a class="el" href="classUSART.html#af80d6291ac1d2df04cfa1d8d27458cc5">USART</a>
-</li>
-</ul>
-
-
-<h3><a id="index_d"></a>- d -</h3><ul>
-<li>delay_ms()
-: <a class="el" href="classB15F.html#aaffce20afb9f06bc4b7556c70ce76416">B15F</a>
-</li>
-<li>delay_us()
-: <a class="el" href="classB15F.html#adcaac8ae8db3c28eccb499fbd720361f">B15F</a>
-</li>
-<li>digitalRead0()
-: <a class="el" href="classB15F.html#ae0df6d423deeb2fd610968bd1c72060e">B15F</a>
-</li>
-<li>digitalRead1()
-: <a class="el" href="classB15F.html#afc76b612dd4faeee0ac02a66b65af5f2">B15F</a>
-</li>
-<li>digitalWrite0()
-: <a class="el" href="classB15F.html#a13797edea1c50278988373acbd110064">B15F</a>
-</li>
-<li>digitalWrite1()
-: <a class="el" href="classB15F.html#aa225e7fc813849634063e071ef25db1b">B15F</a>
-</li>
-<li>discard()
-: <a class="el" href="classB15F.html#ae4740cd473f40a1a4121dfa66b25e1d5">B15F</a>
-</li>
-<li>Dot()
-: <a class="el" href="classDot.html#ad975f119c0627a928790b3cd5ca6da05">Dot</a>
-</li>
-<li>drop()
-: <a class="el" href="classUSART.html#a038d00c0b3d8c0c13c3e7eae5dad7813">USART</a>
-</li>
-</ul>
-
-
-<h3><a id="index_e"></a>- e -</h3><ul>
-<li>exec()
-: <a class="el" href="classB15F.html#a1a7ac52984ed7ecac008a3e4060eee3a">B15F</a>
-</li>
-</ul>
-
-
-<h3><a id="index_f"></a>- f -</h3><ul>
-<li>flushOutputBuffer()
-: <a class="el" href="classUSART.html#adb6ff4d1cf1af79ca255c5a81780200d">USART</a>
-</li>
-</ul>
-
-
-<h3><a id="index_g"></a>- g -</h3><ul>
-<li>getBaudrate()
-: <a class="el" href="classUSART.html#a4918672d8069df205378a528b1892db3">USART</a>
-</li>
-<li>getBoardInfo()
-: <a class="el" href="classB15F.html#a4f01677e73d6d172a2c1cae9427a591b">B15F</a>
-</li>
-<li>getCurve()
-: <a class="el" href="classDot.html#ad0ae7dc1a9be3d8d985affc089b34396">Dot</a>
-</li>
-<li>getDescPara()
-: <a class="el" href="classPlottyFile.html#a536967daae3b382a5d6575f55450e198">PlottyFile</a>
-</li>
-<li>getDescX()
-: <a class="el" href="classPlottyFile.html#a9cf7baa569be308c2cf6e07cadded09d">PlottyFile</a>
-</li>
-<li>getDescY()
-: <a class="el" href="classPlottyFile.html#ab4a847fd71a804182f211233e194df45">PlottyFile</a>
-</li>
-<li>getFunctionType()
-: <a class="el" href="classPlottyFile.html#a88bb7d8350ed5fbc7a40e8d903c94bdb">PlottyFile</a>
-</li>
-<li>getInstance()
-: <a class="el" href="classB15F.html#a8b4533d232c55ef2aa967e39e2d23380">B15F</a>
-</li>
-<li>getParaFirstCurve()
-: <a class="el" href="classPlottyFile.html#a40828c93d66fe80166c4f603d5bdfa48">PlottyFile</a>
-</li>
-<li>getParaStepWidth()
-: <a class="el" href="classPlottyFile.html#a9da23f2bb8e6eb1837fc992ffd4057db">PlottyFile</a>
-</li>
-<li>getQuadrant()
-: <a class="el" href="classPlottyFile.html#a54e94e80061a27614f2d4d63697d3376">PlottyFile</a>
-</li>
-<li>getRefX()
-: <a class="el" href="classPlottyFile.html#a7dd84b9f0826f3220fc6b5a4f1ce9890">PlottyFile</a>
-</li>
-<li>getRefY()
-: <a class="el" href="classPlottyFile.html#ae6650c61a3b1a610ce716253418bd7f2">PlottyFile</a>
-</li>
-<li>getRegister()
-: <a class="el" href="classB15F.html#a9bd47da39928af6f51075bdc3fe73ddc">B15F</a>
-</li>
-<li>getTimeout()
-: <a class="el" href="classUSART.html#a19cf777956a038878fc2d2b58c3d2b41">USART</a>
-</li>
-<li>getUnitPara()
-: <a class="el" href="classPlottyFile.html#abcda4139adf8c5ab8a93b13b84ac097c">PlottyFile</a>
-</li>
-<li>getUnitX()
-: <a class="el" href="classPlottyFile.html#af952ac5e2c40896acaf6a86063874fe3">PlottyFile</a>
-</li>
-<li>getUnitY()
-: <a class="el" href="classPlottyFile.html#a746b96036872dbece204e9739f3413b6">PlottyFile</a>
-</li>
-<li>getX()
-: <a class="el" href="classDot.html#a029f0cc99c474122b77a708a317e7f77">Dot</a>
-</li>
-<li>getY()
-: <a class="el" href="classDot.html#a8fcb987e6308d8184d1a2c8692227e58">Dot</a>
-</li>
-</ul>
-
-
-<h3><a id="index_o"></a>- o -</h3><ul>
-<li>openDevice()
-: <a class="el" href="classUSART.html#a5f7e2abda2ec4a68a5fdb8ee2f8a940a">USART</a>
-</li>
-</ul>
-
-
-<h3><a id="index_p"></a>- p -</h3><ul>
-<li>pwmSetFrequency()
-: <a class="el" href="classB15F.html#ac6f6532bb9550a0632c28b98c157d0a1">B15F</a>
-</li>
-<li>pwmSetValue()
-: <a class="el" href="classB15F.html#af9aad3c0db5d5a8b37219d713e1977ee">B15F</a>
-</li>
-</ul>
-
-
-<h3><a id="index_r"></a>- r -</h3><ul>
-<li>readDipSwitch()
-: <a class="el" href="classB15F.html#a6f858f21ea81d491b5031b3644a2239a">B15F</a>
-</li>
-<li>receive()
-: <a class="el" href="classUSART.html#a0fdc238203852f00bd750127602b2a6a">USART</a>
-</li>
-<li>reconnect()
-: <a class="el" href="classB15F.html#a52557b375443c180a044e7d4e80a1ae7">B15F</a>
-</li>
-</ul>
-
-
-<h3><a id="index_s"></a>- s -</h3><ul>
-<li>setAbortHandler()
-: <a class="el" href="classB15F.html#a55b0cd1ea582bda53d6979442640f8e9">B15F</a>
-</li>
-<li>setBaudrate()
-: <a class="el" href="classUSART.html#aac63918a8b97ae63ee607cfa39e6d88d">USART</a>
-</li>
-<li>setDescPara()
-: <a class="el" href="classPlottyFile.html#a431904143c3c1164a2e8b8cfec3c77ab">PlottyFile</a>
-</li>
-<li>setDescX()
-: <a class="el" href="classPlottyFile.html#aa0449c290265d55d6223b19cf0a88b0a">PlottyFile</a>
-</li>
-<li>setDescY()
-: <a class="el" href="classPlottyFile.html#a38a3a4dfc76bc70523727584bf01d590">PlottyFile</a>
-</li>
-<li>setFunctionType()
-: <a class="el" href="classPlottyFile.html#a4e5ab1ebb012a5cc1a3d6458a4cd512f">PlottyFile</a>
-</li>
-<li>setParaFirstCurve()
-: <a class="el" href="classPlottyFile.html#aa676414793becb975506f48d6e949dd0">PlottyFile</a>
-</li>
-<li>setParaStepWidth()
-: <a class="el" href="classPlottyFile.html#a6caebd31e04e2e7081cc007047350355">PlottyFile</a>
-</li>
-<li>setQuadrant()
-: <a class="el" href="classPlottyFile.html#a1953ee0d9a87b7353c16139584e9c2ae">PlottyFile</a>
-</li>
-<li>setRefX()
-: <a class="el" href="classPlottyFile.html#a80c2c2e97a454566f9c1f2c51e1d7f3e">PlottyFile</a>
-</li>
-<li>setRefY()
-: <a class="el" href="classPlottyFile.html#a3a371228ddcc007e97eebe7cc04dffc2">PlottyFile</a>
-</li>
-<li>setRegister()
-: <a class="el" href="classB15F.html#ab446ecffab28d4515dfade79a8efc93d">B15F</a>
-</li>
-<li>setTimeout()
-: <a class="el" href="classUSART.html#ad7fe866cebe920784d2b17602824c7ff">USART</a>
-</li>
-<li>setUnitPara()
-: <a class="el" href="classPlottyFile.html#abbac84109a1e0958a4ca5c270fac0986">PlottyFile</a>
-</li>
-<li>setUnitX()
-: <a class="el" href="classPlottyFile.html#ab8d35a841ca9c325fca671cf34e03527">PlottyFile</a>
-</li>
-<li>setUnitY()
-: <a class="el" href="classPlottyFile.html#abb18c814f435926f741f7ceb310f3059">PlottyFile</a>
-</li>
-<li>startPlotty()
-: <a class="el" href="classPlottyFile.html#a08a115ef10458cadfe76077d623313df">PlottyFile</a>
-</li>
-</ul>
-
-
-<h3><a id="index_t"></a>- t -</h3><ul>
-<li>testConnection()
-: <a class="el" href="classB15F.html#af01983594f2af98ab2b1e514aa036a5d">B15F</a>
-</li>
-<li>testIntConv()
-: <a class="el" href="classB15F.html#a7b8a0e2a9156f7dcb05d097f23666a78">B15F</a>
-</li>
-<li>TimeoutException()
-: <a class="el" href="classTimeoutException.html#aa45912234da11ffc9dd3594a1bbc0218">TimeoutException</a>
-</li>
-<li>transmit()
-: <a class="el" href="classUSART.html#a41b19dd58f307015b73e154048cd74ca">USART</a>
-</li>
-</ul>
-
-
-<h3><a id="index_u"></a>- u -</h3><ul>
-<li>USART()
-: <a class="el" href="classUSART.html#a5daed20dc595c43d87c4c28bb08a7449">USART</a>
-</li>
-<li>USARTException()
-: <a class="el" href="classUSARTException.html#a3c359db129825703b91392d5128cf93d">USARTException</a>
-</li>
-</ul>
-
-
-<h3><a id="index_w"></a>- w -</h3><ul>
-<li>what()
-: <a class="el" href="classTimeoutException.html#a97eaf01fc39ddb94b060020b42fefd6e">TimeoutException</a>
-, <a class="el" href="classUSARTException.html#a2af5e3c00cd0585c7427c2e0420a8f15">USARTException</a>
-</li>
-<li>writeToFile()
-: <a class="el" href="classPlottyFile.html#a82c348e7fade2edcbc907e7c2bc2e305">PlottyFile</a>
-</li>
-</ul>
-
-
-<h3><a id="index__7E"></a>- ~ -</h3><ul>
-<li>~TimeoutException()
-: <a class="el" href="classTimeoutException.html#a2f686b262d2ccffa0090fda9b44ab540">TimeoutException</a>
-</li>
-<li>~USART()
-: <a class="el" href="classUSART.html#a0c8eb1a939ca00921e22f6cbcc7bb749">USART</a>
-</li>
-<li>~USARTException()
-: <a class="el" href="classUSARTException.html#a0e008b3cb4974859e6bc8c8f8eb480be">USARTException</a>
-</li>
-</ul>
-</div><!-- contents -->
-<!-- start footer part -->
-<hr class="footer"/><address class="footer"><small>
-Generated on Fri Jun 7 2019 14:50:45 for B15F by &#160;<a href="http://www.doxygen.org/index.html">
-<img class="footer" src="doxygen.png" alt="doxygen"/>
-</a> 1.8.16
-</small></address>
-</body>
-</html>
diff --git a/docs/html/functions_vars.html b/docs/html/functions_vars.html
deleted file mode 100644
index 716c451..0000000
--- a/docs/html/functions_vars.html
+++ /dev/null
@@ -1,100 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml">
-<head>
-<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
-<meta http-equiv="X-UA-Compatible" content="IE=9"/>
-<meta name="generator" content="Doxygen 1.8.16"/>
-<meta name="viewport" content="width=device-width, initial-scale=1"/>
-<title>B15F: Class Members - Variables</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">B15F
-   </div>
-   <div id="projectbrief">Board 15 Famulus Edition</div>
-  </td>
- </tr>
- </tbody>
-</table>
-</div>
-<!-- end header part -->
-<!-- Generated by Doxygen 1.8.16 -->
-<script type="text/javascript">
-/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
-var searchBox = new SearchBox("searchBox", "search",false,'Search');
-/* @license-end */
-</script>
-<script type="text/javascript" src="menudata.js"></script>
-<script type="text/javascript" src="menu.js"></script>
-<script type="text/javascript">
-/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
-$(function() {
-  initMenu('',true,false,'search.php','Search');
-  $(document).ready(function() { init_search(); });
-});
-/* @license-end */</script>
-<div id="main-nav"></div>
-</div><!-- top -->
-<!-- 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">
-&#160;<ul>
-<li>BAUDRATE
-: <a class="el" href="classB15F.html#a7d548d6861cfc69753161bf9cda14f87">B15F</a>
-</li>
-<li>msg
-: <a class="el" href="classTimeoutException.html#aa625fc0fae48a67737a98eafb91c9624">TimeoutException</a>
-, <a class="el" href="classUSARTException.html#a14c80df95f216d221aa97cffbcd8dd79">USARTException</a>
-</li>
-<li>MSG_FAIL
-: <a class="el" href="classB15F.html#a77d1ecf24b406c9204665d3b09c36f1e">B15F</a>
-</li>
-<li>MSG_OK
-: <a class="el" href="classB15F.html#ab01299858f74a6cec598688562e0ad02">B15F</a>
-</li>
-<li>PRE
-: <a class="el" href="classB15F.html#a3b0fc1f85954b2d9c145af4a3af5b1ec">B15F</a>
-</li>
-<li>RECONNECT_TIMEOUT
-: <a class="el" href="classB15F.html#a040951746fbfd632e12bd1ad14578816">B15F</a>
-</li>
-<li>RECONNECT_TRIES
-: <a class="el" href="classB15F.html#a6c4895bdbcd71ff6743becf97985c2dc">B15F</a>
-</li>
-<li>WDT_TIMEOUT
-: <a class="el" href="classB15F.html#a158d13bc84aed6430cdede1396384e06">B15F</a>
-</li>
-</ul>
-</div><!-- contents -->
-<!-- start footer part -->
-<hr class="footer"/><address class="footer"><small>
-Generated on Fri Jun 7 2019 14:50:45 for B15F by &#160;<a href="http://www.doxygen.org/index.html">
-<img class="footer" src="doxygen.png" alt="doxygen"/>
-</a> 1.8.16
-</small></address>
-</body>
-</html>
diff --git a/docs/html/hierarchy.html b/docs/html/hierarchy.html
deleted file mode 100644
index da59725..0000000
--- a/docs/html/hierarchy.html
+++ /dev/null
@@ -1,94 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml">
-<head>
-<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
-<meta http-equiv="X-UA-Compatible" content="IE=9"/>
-<meta name="generator" content="Doxygen 1.8.16"/>
-<meta name="viewport" content="width=device-width, initial-scale=1"/>
-<title>B15F: Class Hierarchy</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">B15F
-   </div>
-   <div id="projectbrief">Board 15 Famulus Edition</div>
-  </td>
- </tr>
- </tbody>
-</table>
-</div>
-<!-- end header part -->
-<!-- Generated by Doxygen 1.8.16 -->
-<script type="text/javascript">
-/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
-var searchBox = new SearchBox("searchBox", "search",false,'Search');
-/* @license-end */
-</script>
-<script type="text/javascript" src="menudata.js"></script>
-<script type="text/javascript" src="menu.js"></script>
-<script type="text/javascript">
-/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
-$(function() {
-  initMenu('',true,false,'search.php','Search');
-  $(document).ready(function() { init_search(); });
-});
-/* @license-end */</script>
-<div id="main-nav"></div>
-</div><!-- top -->
-<!-- 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 Hierarchy</div>  </div>
-</div><!--header-->
-<div class="contents">
-<div class="textblock">This inheritance list is sorted roughly, but not completely, alphabetically:</div><div class="directory">
-<div class="levels">[detail level <span onclick="javascript:toggleLevel(1);">1</span><span onclick="javascript:toggleLevel(2);">2</span><span onclick="javascript:toggleLevel(3);">3</span>]</div><table class="directory">
-<tr id="row_0_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classB15F.html" target="_self">B15F</a></td><td class="desc"></td></tr>
-<tr id="row_1_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classDot.html" target="_self">Dot</a></td><td class="desc"></td></tr>
-<tr id="row_2_" class="even"><td class="entry"><span style="width:0px;display:inline-block;">&#160;</span><span id="arr_2_" class="arrow" onclick="toggleFolder('2_')">&#9660;</span><span class="icona"><span class="icon">C</span></span><b>exception</b></td><td class="desc"></td></tr>
-<tr id="row_2_0_"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classDriverException.html" target="_self">DriverException</a></td><td class="desc"></td></tr>
-<tr id="row_2_1_" class="even"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classTimeoutException.html" target="_self">TimeoutException</a></td><td class="desc"></td></tr>
-<tr id="row_2_2_"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classUSARTException.html" target="_self">USARTException</a></td><td class="desc"></td></tr>
-<tr id="row_3_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classPlottyFile.html" target="_self">PlottyFile</a></td><td class="desc"></td></tr>
-<tr id="row_4_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classUSART.html" target="_self">USART</a></td><td class="desc"></td></tr>
-<tr id="row_5_" class="even"><td class="entry"><span style="width:0px;display:inline-block;">&#160;</span><span id="arr_5_" class="arrow" onclick="toggleFolder('5_')">&#9660;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classView.html" target="_self">View</a></td><td class="desc"></td></tr>
-<tr id="row_5_0_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span id="arr_5_0_" class="arrow" onclick="toggleFolder('5_0_')">&#9660;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classViewInfo.html" target="_self">ViewInfo</a></td><td class="desc"></td></tr>
-<tr id="row_5_0_0_" class="even"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classViewMonitor.html" target="_self">ViewMonitor</a></td><td class="desc"></td></tr>
-<tr id="row_5_1_"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classViewPromt.html" target="_self">ViewPromt</a></td><td class="desc"></td></tr>
-<tr id="row_5_2_" class="even"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classViewSelection.html" target="_self">ViewSelection</a></td><td class="desc"></td></tr>
-</table>
-</div><!-- directory -->
-</div><!-- contents -->
-<!-- start footer part -->
-<hr class="footer"/><address class="footer"><small>
-Generated on Fri Jun 7 2019 14:50:45 for B15F by &#160;<a href="http://www.doxygen.org/index.html">
-<img class="footer" src="doxygen.png" alt="doxygen"/>
-</a> 1.8.16
-</small></address>
-</body>
-</html>
diff --git a/docs/html/index.html b/docs/html/index.html
deleted file mode 100644
index af635d7..0000000
--- a/docs/html/index.html
+++ /dev/null
@@ -1,154 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml">
-<head>
-<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
-<meta http-equiv="X-UA-Compatible" content="IE=9"/>
-<meta name="generator" content="Doxygen 1.8.16"/>
-<meta name="viewport" content="width=device-width, initial-scale=1"/>
-<title>B15F: B15F Benutzerhandbuch</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">B15F
-   </div>
-   <div id="projectbrief">Board 15 Famulus Edition</div>
-  </td>
- </tr>
- </tbody>
-</table>
-</div>
-<!-- end header part -->
-<!-- Generated by Doxygen 1.8.16 -->
-<script type="text/javascript">
-/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
-var searchBox = new SearchBox("searchBox", "search",false,'Search');
-/* @license-end */
-</script>
-<script type="text/javascript" src="menudata.js"></script>
-<script type="text/javascript" src="menu.js"></script>
-<script type="text/javascript">
-/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
-$(function() {
-  initMenu('',true,false,'search.php','Search');
-  $(document).ready(function() { init_search(); });
-});
-/* @license-end */</script>
-<div id="main-nav"></div>
-</div><!-- top -->
-<!-- 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="PageDoc"><div class="header">
-  <div class="headertitle">
-<div class="title"><a class="el" href="classB15F.html">B15F</a> Benutzerhandbuch </div>  </div>
-</div><!--header-->
-<div class="contents">
-<div class="textblock"><p><em>Hinweis</em>: Terminal-Befehle sind <b>fett</b> gedruckt</p>
-<h1><a class="anchor" id="autotoc_md1"></a>
-Installation</h1>
-<h2><a class="anchor" id="autotoc_md2"></a>
-1. Abhängigkeiten installieren</h2>
-<p>(a) <b>sudo apt-get update</b> <br  />
- (b) <b>sudo apt-get install git avr-libc avrdude libncurses5-dev g++ astyle</b> <br  />
- </p>
-<h2><a class="anchor" id="autotoc_md3"></a>
-2. Das Repository klonen</h2>
-<p>(a) <b>cd /home/famulus/</b> <br  />
- (b) <b>git clone "https://github.com/devfix/b15f.git"</b> <br  />
- </p>
-<h2><a class="anchor" id="autotoc_md4"></a>
-3. Die Firmware installieren</h2>
-<p>(a) <b>cd "/home/famulus/b15f/firmware"</b> <br  />
- (b) Passen Sie in der Datei <em>Makefile</em> die Option "MCU = ..." an die MCU des vorliegenden Boards an <br  />
- (<em>atmega1284</em> und <em>atmega1284p</em> sind nicht identisch!) <br  />
- (c) <b>make</b> <br  />
- Wenn udev richtig konfiguriert wurde: <br  />
- (d I) <b>make upload</b> <br  />
- Sonst: <br  />
- (d II) <b>sudo make upload</b> <br  />
- </p>
-<h2><a class="anchor" id="autotoc_md5"></a>
-4. Die Steuersoftware (Bibliothek &amp; CLI) installieren</h2>
-<p>(a) <b>cd "/home/famulus/b15f/control/src"</b> <br  />
- (b) <b>make</b> <br  />
- (Die Warnungen durch doxygen können ignoriert werden.)</p>
-<p>(c) <b>sudo make install</b> <br  />
- </p>
-<h1><a class="anchor" id="autotoc_md6"></a>
-Aktualisierung</h1>
-<p>(a) <b>cd /home/famulus/b15f/</b> <br  />
- (b) <b>git pull &ndash;prune</b> <br  />
- (c) <b>cd "/home/famulus/b15f/firmware"</b> <br  />
- (d) <b>make clean</b> <br  />
- (e) <b>cd "/home/famulus/b15f/control/src"</b> <br  />
- (f) <b>make clean</b> <br  />
- (g) Installation ab Schritt 3 wiederholen</p>
-<h1><a class="anchor" id="autotoc_md7"></a>
-Das CommandLineInterface (CLI) benutzen</h1>
-<p>(a) Öffnen Sie ein Terminal und maximieren Sie das Fenster <br  />
- (b) Start des CLI erfolgt durch <b>b15fcli</b> <br  />
- (c) Die Navigation erfolgt durch &lt;Tab&gt;, die Pfeiltasten und &lt;Enter&gt; oder die Maus <br  />
- (d) Mit &lt;Strg + c&gt; kann das Programm sofort verlassen werden</p>
-<h1><a class="anchor" id="autotoc_md8"></a>
-Eigene Programme mit B15F schreiben</h1>
-<h2><a class="anchor" id="autotoc_md9"></a>
-Grundsätzliches</h2>
-<p>Die wichtigste Klasse für die Steuerung des Board 15 ist <a href="https://devfix.github.io/b15f/html/classB15F.html">B15F</a>. <br  />
-Dort befindet sich auch eine Übersicht der verfügbaren Befehle. <br  />
- </p>
-<h2><a class="anchor" id="autotoc_md10"></a>
-Beispiele</h2>
-<p>In dem Verzeichnis <a href="https://github.com/devfix/b15f/tree/master/control/examples">b15f/control/examples</a> sind einige Beispiele für die Verwendung einzelner <a class="el" href="classB15F.html">B15F</a> Funktionen. <br  />
-Zu jedem Beispiel gehört eine <em>main.cpp</em> mit dem Quellcode und eine <em>Makefile</em>-Datei. <br  />
-Das Beispiel kann mit <b>make</b> kompiliert und mit **./main.elf** gestartet werden.</p>
-<h2><a class="anchor" id="autotoc_md11"></a>
-Den B15F Treiber verwenden</h2>
-<p>Benötigt wird der B15F-Header: <br  />
-<code>#include &lt;b15f/b15f.h&gt;</code> <br  />
-und der Header für die plottyfile-Generierung, falls mit Kennlinien gearbeitet werden soll: <br  />
-<code>#include &lt;b15f/plottyfile.h&gt;</code></p>
-<p>Für die Interaktion wird eine Referenz auf die aktuelle Treiberinstanz gespeichert: <br  />
-<code><a class="el" href="classB15F.html">B15F</a>&amp; drv = <a class="el" href="classB15F.html#a8b4533d232c55ef2aa967e39e2d23380">B15F::getInstance()</a>;</code> <br  />
-Falls noch keine existiert, wird automatisch eine erzeugt und Verbindung zum Board hergestellt. <br  />
- Ab jetzt können auf dem Object <code>drv</code> verschiedene Methoden angewand werden, siehe <a href="https://devfix.github.io/b15f/html/classB15F.html">B15F</a>. <br  />
- </p>
-<h2><a class="anchor" id="autotoc_md12"></a>
-Kennlinien mit plottyfile generieren</h2>
-<p>Die Beschreibung zu Plottyfile befindet sich <a href="https://devfix.github.io/b15f/html/classPlottyFile.html">hier</a>. <br  />
-Nach dem Include von plottyfile kann ein neues Objekt erzeugt und konfiguriert werden: <br  />
-</p><div class="fragment"><div class="line"> {C++}</div><div class="line">PlottyFile pf;  </div><div class="line">pf.setUnitX(&quot;V&quot;);  </div><div class="line">pf.setUnitY(&quot;V&quot;);  </div><div class="line">pf.setUnitPara(&quot;V&quot;);  </div><div class="line">pf.setDescX(&quot;U_{OUT}&quot;); // Markdown wird unterstuetzt  </div><div class="line">pf.setDescY(&quot;U_{IN}&quot;);  </div><div class="line">pf.setDescPara(&quot;&quot;);  </div><div class="line">pf.setRefX(5);  </div><div class="line">pf.setRefY(5);  </div><div class="line">pf.setParaFirstCurve(0);  </div><div class="line">pf.setParaStepWidth(0);</div></div><!-- fragment --><p> Messpunkte können anschließend hinzugefügt werden. <br  />
-Dabei gehören Punkte mit dem gleichen Index für <code>curve</code> (<em>uint8_t</em>) zur selben Kurve und erhalten durch Plotty automatisch die gleiche Farbe. <br  />
-</p><div class="fragment"><div class="line"> {C++}</div><div class="line">pf.addDot(Dot(x, y, curve));</div></div><!-- fragment --><p> <code>x</code> und <code>y</code> sind <em>uint16_t</em>, also keine Gleitkommazahlen. </p>
-</div></div><!-- PageDoc -->
-</div><!-- contents -->
-<!-- start footer part -->
-<hr class="footer"/><address class="footer"><small>
-Generated on Fri Jun 7 2019 14:50:45 for B15F by &#160;<a href="http://www.doxygen.org/index.html">
-<img class="footer" src="doxygen.png" alt="doxygen"/>
-</a> 1.8.16
-</small></address>
-</body>
-</html>
diff --git a/docs/html/jquery.js b/docs/html/jquery.js
deleted file mode 100644
index 64861eb..0000000
--- a/docs/html/jquery.js
+++ /dev/null
@@ -1,35 +0,0 @@
-/*! jQuery v3.3.1 | (c) JS Foundation and other contributors | jquery.org/license */
-!function(e,t){"use strict";"object"==typeof module&&"object"==typeof module.exports?module.exports=e.document?t(e,!0):function(e){if(!e.document)throw new Error("jQuery requires a window with a document");return t(e)}:t(e)}("undefined"!=typeof window?window:this,function(e,t){"use strict";var n=[],r=e.document,i=Object.getPrototypeOf,o=n.slice,a=n.concat,s=n.push,u=n.indexOf,l={},c=l.toString,f=l.hasOwnProperty,p=f.toString,d=p.call(Object),h={},g=function e(t){return"function"==typeof t&&"number"!=typeof t.nodeType},y=function e(t){return null!=t&&t===t.window},v={type:!0,src:!0,noModule:!0};function m(e,t,n){var i,o=(t=t||r).createElement("script");if(o.text=e,n)for(i in v)n[i]&&(o[i]=n[i]);t.head.appendChild(o).parentNode.removeChild(o)}function x(e){return null==e?e+"":"object"==typeof e||"function"==typeof e?l[c.call(e)]||"object":typeof e}var b="3.3.1",w=function(e,t){return new w.fn.init(e,t)},T=/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g;w.fn=w.prototype={jquery:"3.3.1",constructor:w,length:0,toArray:function(){return o.call(this)},get:function(e){return null==e?o.call(this):e<0?this[e+this.length]:this[e]},pushStack:function(e){var t=w.merge(this.constructor(),e);return t.prevObject=this,t},each:function(e){return w.each(this,e)},map:function(e){return this.pushStack(w.map(this,function(t,n){return e.call(t,n,t)}))},slice:function(){return this.pushStack(o.apply(this,arguments))},first:function(){return this.eq(0)},last:function(){return this.eq(-1)},eq:function(e){var t=this.length,n=+e+(e<0?t:0);return this.pushStack(n>=0&&n<t?[this[n]]:[])},end:function(){return this.prevObject||this.constructor()},push:s,sort:n.sort,splice:n.splice},w.extend=w.fn.extend=function(){var e,t,n,r,i,o,a=arguments[0]||{},s=1,u=arguments.length,l=!1;for("boolean"==typeof a&&(l=a,a=arguments[s]||{},s++),"object"==typeof a||g(a)||(a={}),s===u&&(a=this,s--);s<u;s++)if(null!=(e=arguments[s]))for(t in e)n=a[t],a!==(r=e[t])&&(l&&r&&(w.isPlainObject(r)||(i=Array.isArray(r)))?(i?(i=!1,o=n&&Array.isArray(n)?n:[]):o=n&&w.isPlainObject(n)?n:{},a[t]=w.extend(l,o,r)):void 0!==r&&(a[t]=r));return a},w.extend({expando:"jQuery"+("3.3.1"+Math.random()).replace(/\D/g,""),isReady:!0,error:function(e){throw new Error(e)},noop:function(){},isPlainObject:function(e){var t,n;return!(!e||"[object Object]"!==c.call(e))&&(!(t=i(e))||"function"==typeof(n=f.call(t,"constructor")&&t.constructor)&&p.call(n)===d)},isEmptyObject:function(e){var t;for(t in e)return!1;return!0},globalEval:function(e){m(e)},each:function(e,t){var n,r=0;if(C(e)){for(n=e.length;r<n;r++)if(!1===t.call(e[r],r,e[r]))break}else for(r in e)if(!1===t.call(e[r],r,e[r]))break;return e},trim:function(e){return null==e?"":(e+"").replace(T,"")},makeArray:function(e,t){var n=t||[];return null!=e&&(C(Object(e))?w.merge(n,"string"==typeof e?[e]:e):s.call(n,e)),n},inArray:function(e,t,n){return null==t?-1:u.call(t,e,n)},merge:function(e,t){for(var n=+t.length,r=0,i=e.length;r<n;r++)e[i++]=t[r];return e.length=i,e},grep:function(e,t,n){for(var r,i=[],o=0,a=e.length,s=!n;o<a;o++)(r=!t(e[o],o))!==s&&i.push(e[o]);return i},map:function(e,t,n){var r,i,o=0,s=[];if(C(e))for(r=e.length;o<r;o++)null!=(i=t(e[o],o,n))&&s.push(i);else for(o in e)null!=(i=t(e[o],o,n))&&s.push(i);return a.apply([],s)},guid:1,support:h}),"function"==typeof Symbol&&(w.fn[Symbol.iterator]=n[Symbol.iterator]),w.each("Boolean Number String Function Array Date RegExp Object Error Symbol".split(" "),function(e,t){l["[object "+t+"]"]=t.toLowerCase()});function C(e){var t=!!e&&"length"in e&&e.length,n=x(e);return!g(e)&&!y(e)&&("array"===n||0===t||"number"==typeof t&&t>0&&t-1 in e)}var E=function(e){var t,n,r,i,o,a,s,u,l,c,f,p,d,h,g,y,v,m,x,b="sizzle"+1*new Date,w=e.document,T=0,C=0,E=ae(),k=ae(),S=ae(),D=function(e,t){return e===t&&(f=!0),0},N={}.hasOwnProperty,A=[],j=A.pop,q=A.push,L=A.push,H=A.slice,O=function(e,t){for(var n=0,r=e.length;n<r;n++)if(e[n]===t)return n;return-1},P="checked|selected|async|autofocus|autoplay|controls|defer|disabled|hidden|ismap|loop|multiple|open|readonly|required|scoped",M="[\\x20\\t\\r\\n\\f]",R="(?:\\\\.|[\\w-]|[^\0-\\xa0])+",I="\\["+M+"*("+R+")(?:"+M+"*([*^$|!~]?=)"+M+"*(?:'((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\"|("+R+"))|)"+M+"*\\]",W=":("+R+")(?:\\((('((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\")|((?:\\\\.|[^\\\\()[\\]]|"+I+")*)|.*)\\)|)",$=new RegExp(M+"+","g"),B=new RegExp("^"+M+"+|((?:^|[^\\\\])(?:\\\\.)*)"+M+"+$","g"),F=new RegExp("^"+M+"*,"+M+"*"),_=new RegExp("^"+M+"*([>+~]|"+M+")"+M+"*"),z=new RegExp("="+M+"*([^\\]'\"]*?)"+M+"*\\]","g"),X=new RegExp(W),U=new RegExp("^"+R+"$"),V={ID:new RegExp("^#("+R+")"),CLASS:new RegExp("^\\.("+R+")"),TAG:new RegExp("^("+R+"|[*])"),ATTR:new RegExp("^"+I),PSEUDO:new RegExp("^"+W),CHILD:new RegExp("^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\("+M+"*(even|odd|(([+-]|)(\\d*)n|)"+M+"*(?:([+-]|)"+M+"*(\\d+)|))"+M+"*\\)|)","i"),bool:new RegExp("^(?:"+P+")$","i"),needsContext:new RegExp("^"+M+"*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\("+M+"*((?:-\\d)?\\d*)"+M+"*\\)|)(?=[^-]|$)","i")},G=/^(?:input|select|textarea|button)$/i,Y=/^h\d$/i,Q=/^[^{]+\{\s*\[native \w/,J=/^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/,K=/[+~]/,Z=new RegExp("\\\\([\\da-f]{1,6}"+M+"?|("+M+")|.)","ig"),ee=function(e,t,n){var r="0x"+t-65536;return r!==r||n?t:r<0?String.fromCharCode(r+65536):String.fromCharCode(r>>10|55296,1023&r|56320)},te=/([\0-\x1f\x7f]|^-?\d)|^-$|[^\0-\x1f\x7f-\uFFFF\w-]/g,ne=function(e,t){return t?"\0"===e?"\ufffd":e.slice(0,-1)+"\\"+e.charCodeAt(e.length-1).toString(16)+" ":"\\"+e},re=function(){p()},ie=me(function(e){return!0===e.disabled&&("form"in e||"label"in e)},{dir:"parentNode",next:"legend"});try{L.apply(A=H.call(w.childNodes),w.childNodes),A[w.childNodes.length].nodeType}catch(e){L={apply:A.length?function(e,t){q.apply(e,H.call(t))}:function(e,t){var n=e.length,r=0;while(e[n++]=t[r++]);e.length=n-1}}}function oe(e,t,r,i){var o,s,l,c,f,h,v,m=t&&t.ownerDocument,T=t?t.nodeType:9;if(r=r||[],"string"!=typeof e||!e||1!==T&&9!==T&&11!==T)return r;if(!i&&((t?t.ownerDocument||t:w)!==d&&p(t),t=t||d,g)){if(11!==T&&(f=J.exec(e)))if(o=f[1]){if(9===T){if(!(l=t.getElementById(o)))return r;if(l.id===o)return r.push(l),r}else if(m&&(l=m.getElementById(o))&&x(t,l)&&l.id===o)return r.push(l),r}else{if(f[2])return L.apply(r,t.getElementsByTagName(e)),r;if((o=f[3])&&n.getElementsByClassName&&t.getElementsByClassName)return L.apply(r,t.getElementsByClassName(o)),r}if(n.qsa&&!S[e+" "]&&(!y||!y.test(e))){if(1!==T)m=t,v=e;else if("object"!==t.nodeName.toLowerCase()){(c=t.getAttribute("id"))?c=c.replace(te,ne):t.setAttribute("id",c=b),s=(h=a(e)).length;while(s--)h[s]="#"+c+" "+ve(h[s]);v=h.join(","),m=K.test(e)&&ge(t.parentNode)||t}if(v)try{return L.apply(r,m.querySelectorAll(v)),r}catch(e){}finally{c===b&&t.removeAttribute("id")}}}return u(e.replace(B,"$1"),t,r,i)}function ae(){var e=[];function t(n,i){return e.push(n+" ")>r.cacheLength&&delete t[e.shift()],t[n+" "]=i}return t}function se(e){return e[b]=!0,e}function ue(e){var t=d.createElement("fieldset");try{return!!e(t)}catch(e){return!1}finally{t.parentNode&&t.parentNode.removeChild(t),t=null}}function le(e,t){var n=e.split("|"),i=n.length;while(i--)r.attrHandle[n[i]]=t}function ce(e,t){var n=t&&e,r=n&&1===e.nodeType&&1===t.nodeType&&e.sourceIndex-t.sourceIndex;if(r)return r;if(n)while(n=n.nextSibling)if(n===t)return-1;return e?1:-1}function fe(e){return function(t){return"input"===t.nodeName.toLowerCase()&&t.type===e}}function pe(e){return function(t){var n=t.nodeName.toLowerCase();return("input"===n||"button"===n)&&t.type===e}}function de(e){return function(t){return"form"in t?t.parentNode&&!1===t.disabled?"label"in t?"label"in t.parentNode?t.parentNode.disabled===e:t.disabled===e:t.isDisabled===e||t.isDisabled!==!e&&ie(t)===e:t.disabled===e:"label"in t&&t.disabled===e}}function he(e){return se(function(t){return t=+t,se(function(n,r){var i,o=e([],n.length,t),a=o.length;while(a--)n[i=o[a]]&&(n[i]=!(r[i]=n[i]))})})}function ge(e){return e&&"undefined"!=typeof e.getElementsByTagName&&e}n=oe.support={},o=oe.isXML=function(e){var t=e&&(e.ownerDocument||e).documentElement;return!!t&&"HTML"!==t.nodeName},p=oe.setDocument=function(e){var t,i,a=e?e.ownerDocument||e:w;return a!==d&&9===a.nodeType&&a.documentElement?(d=a,h=d.documentElement,g=!o(d),w!==d&&(i=d.defaultView)&&i.top!==i&&(i.addEventListener?i.addEventListener("unload",re,!1):i.attachEvent&&i.attachEvent("onunload",re)),n.attributes=ue(function(e){return e.className="i",!e.getAttribute("className")}),n.getElementsByTagName=ue(function(e){return e.appendChild(d.createComment("")),!e.getElementsByTagName("*").length}),n.getElementsByClassName=Q.test(d.getElementsByClassName),n.getById=ue(function(e){return h.appendChild(e).id=b,!d.getElementsByName||!d.getElementsByName(b).length}),n.getById?(r.filter.ID=function(e){var t=e.replace(Z,ee);return function(e){return e.getAttribute("id")===t}},r.find.ID=function(e,t){if("undefined"!=typeof t.getElementById&&g){var n=t.getElementById(e);return n?[n]:[]}}):(r.filter.ID=function(e){var t=e.replace(Z,ee);return function(e){var n="undefined"!=typeof e.getAttributeNode&&e.getAttributeNode("id");return n&&n.value===t}},r.find.ID=function(e,t){if("undefined"!=typeof t.getElementById&&g){var n,r,i,o=t.getElementById(e);if(o){if((n=o.getAttributeNode("id"))&&n.value===e)return[o];i=t.getElementsByName(e),r=0;while(o=i[r++])if((n=o.getAttributeNode("id"))&&n.value===e)return[o]}return[]}}),r.find.TAG=n.getElementsByTagName?function(e,t){return"undefined"!=typeof t.getElementsByTagName?t.getElementsByTagName(e):n.qsa?t.querySelectorAll(e):void 0}:function(e,t){var n,r=[],i=0,o=t.getElementsByTagName(e);if("*"===e){while(n=o[i++])1===n.nodeType&&r.push(n);return r}return o},r.find.CLASS=n.getElementsByClassName&&function(e,t){if("undefined"!=typeof t.getElementsByClassName&&g)return t.getElementsByClassName(e)},v=[],y=[],(n.qsa=Q.test(d.querySelectorAll))&&(ue(function(e){h.appendChild(e).innerHTML="<a id='"+b+"'></a><select id='"+b+"-\r\\' msallowcapture=''><option selected=''></option></select>",e.querySelectorAll("[msallowcapture^='']").length&&y.push("[*^$]="+M+"*(?:''|\"\")"),e.querySelectorAll("[selected]").length||y.push("\\["+M+"*(?:value|"+P+")"),e.querySelectorAll("[id~="+b+"-]").length||y.push("~="),e.querySelectorAll(":checked").length||y.push(":checked"),e.querySelectorAll("a#"+b+"+*").length||y.push(".#.+[+~]")}),ue(function(e){e.innerHTML="<a href='' disabled='disabled'></a><select disabled='disabled'><option/></select>";var t=d.createElement("input");t.setAttribute("type","hidden"),e.appendChild(t).setAttribute("name","D"),e.querySelectorAll("[name=d]").length&&y.push("name"+M+"*[*^$|!~]?="),2!==e.querySelectorAll(":enabled").length&&y.push(":enabled",":disabled"),h.appendChild(e).disabled=!0,2!==e.querySelectorAll(":disabled").length&&y.push(":enabled",":disabled"),e.querySelectorAll("*,:x"),y.push(",.*:")})),(n.matchesSelector=Q.test(m=h.matches||h.webkitMatchesSelector||h.mozMatchesSelector||h.oMatchesSelector||h.msMatchesSelector))&&ue(function(e){n.disconnectedMatch=m.call(e,"*"),m.call(e,"[s!='']:x"),v.push("!=",W)}),y=y.length&&new RegExp(y.join("|")),v=v.length&&new RegExp(v.join("|")),t=Q.test(h.compareDocumentPosition),x=t||Q.test(h.contains)?function(e,t){var n=9===e.nodeType?e.documentElement:e,r=t&&t.parentNode;return e===r||!(!r||1!==r.nodeType||!(n.contains?n.contains(r):e.compareDocumentPosition&&16&e.compareDocumentPosition(r)))}:function(e,t){if(t)while(t=t.parentNode)if(t===e)return!0;return!1},D=t?function(e,t){if(e===t)return f=!0,0;var r=!e.compareDocumentPosition-!t.compareDocumentPosition;return r||(1&(r=(e.ownerDocument||e)===(t.ownerDocument||t)?e.compareDocumentPosition(t):1)||!n.sortDetached&&t.compareDocumentPosition(e)===r?e===d||e.ownerDocument===w&&x(w,e)?-1:t===d||t.ownerDocument===w&&x(w,t)?1:c?O(c,e)-O(c,t):0:4&r?-1:1)}:function(e,t){if(e===t)return f=!0,0;var n,r=0,i=e.parentNode,o=t.parentNode,a=[e],s=[t];if(!i||!o)return e===d?-1:t===d?1:i?-1:o?1:c?O(c,e)-O(c,t):0;if(i===o)return ce(e,t);n=e;while(n=n.parentNode)a.unshift(n);n=t;while(n=n.parentNode)s.unshift(n);while(a[r]===s[r])r++;return r?ce(a[r],s[r]):a[r]===w?-1:s[r]===w?1:0},d):d},oe.matches=function(e,t){return oe(e,null,null,t)},oe.matchesSelector=function(e,t){if((e.ownerDocument||e)!==d&&p(e),t=t.replace(z,"='$1']"),n.matchesSelector&&g&&!S[t+" "]&&(!v||!v.test(t))&&(!y||!y.test(t)))try{var r=m.call(e,t);if(r||n.disconnectedMatch||e.document&&11!==e.document.nodeType)return r}catch(e){}return oe(t,d,null,[e]).length>0},oe.contains=function(e,t){return(e.ownerDocument||e)!==d&&p(e),x(e,t)},oe.attr=function(e,t){(e.ownerDocument||e)!==d&&p(e);var i=r.attrHandle[t.toLowerCase()],o=i&&N.call(r.attrHandle,t.toLowerCase())?i(e,t,!g):void 0;return void 0!==o?o:n.attributes||!g?e.getAttribute(t):(o=e.getAttributeNode(t))&&o.specified?o.value:null},oe.escape=function(e){return(e+"").replace(te,ne)},oe.error=function(e){throw new Error("Syntax error, unrecognized expression: "+e)},oe.uniqueSort=function(e){var t,r=[],i=0,o=0;if(f=!n.detectDuplicates,c=!n.sortStable&&e.slice(0),e.sort(D),f){while(t=e[o++])t===e[o]&&(i=r.push(o));while(i--)e.splice(r[i],1)}return c=null,e},i=oe.getText=function(e){var t,n="",r=0,o=e.nodeType;if(o){if(1===o||9===o||11===o){if("string"==typeof e.textContent)return e.textContent;for(e=e.firstChild;e;e=e.nextSibling)n+=i(e)}else if(3===o||4===o)return e.nodeValue}else while(t=e[r++])n+=i(t);return n},(r=oe.selectors={cacheLength:50,createPseudo:se,match:V,attrHandle:{},find:{},relative:{">":{dir:"parentNode",first:!0}," ":{dir:"parentNode"},"+":{dir:"previousSibling",first:!0},"~":{dir:"previousSibling"}},preFilter:{ATTR:function(e){return e[1]=e[1].replace(Z,ee),e[3]=(e[3]||e[4]||e[5]||"").replace(Z,ee),"~="===e[2]&&(e[3]=" "+e[3]+" "),e.slice(0,4)},CHILD:function(e){return e[1]=e[1].toLowerCase(),"nth"===e[1].slice(0,3)?(e[3]||oe.error(e[0]),e[4]=+(e[4]?e[5]+(e[6]||1):2*("even"===e[3]||"odd"===e[3])),e[5]=+(e[7]+e[8]||"odd"===e[3])):e[3]&&oe.error(e[0]),e},PSEUDO:function(e){var t,n=!e[6]&&e[2];return V.CHILD.test(e[0])?null:(e[3]?e[2]=e[4]||e[5]||"":n&&X.test(n)&&(t=a(n,!0))&&(t=n.indexOf(")",n.length-t)-n.length)&&(e[0]=e[0].slice(0,t),e[2]=n.slice(0,t)),e.slice(0,3))}},filter:{TAG:function(e){var t=e.replace(Z,ee).toLowerCase();return"*"===e?function(){return!0}:function(e){return e.nodeName&&e.nodeName.toLowerCase()===t}},CLASS:function(e){var t=E[e+" "];return t||(t=new RegExp("(^|"+M+")"+e+"("+M+"|$)"))&&E(e,function(e){return t.test("string"==typeof e.className&&e.className||"undefined"!=typeof e.getAttribute&&e.getAttribute("class")||"")})},ATTR:function(e,t,n){return function(r){var i=oe.attr(r,e);return null==i?"!="===t:!t||(i+="","="===t?i===n:"!="===t?i!==n:"^="===t?n&&0===i.indexOf(n):"*="===t?n&&i.indexOf(n)>-1:"$="===t?n&&i.slice(-n.length)===n:"~="===t?(" "+i.replace($," ")+" ").indexOf(n)>-1:"|="===t&&(i===n||i.slice(0,n.length+1)===n+"-"))}},CHILD:function(e,t,n,r,i){var o="nth"!==e.slice(0,3),a="last"!==e.slice(-4),s="of-type"===t;return 1===r&&0===i?function(e){return!!e.parentNode}:function(t,n,u){var l,c,f,p,d,h,g=o!==a?"nextSibling":"previousSibling",y=t.parentNode,v=s&&t.nodeName.toLowerCase(),m=!u&&!s,x=!1;if(y){if(o){while(g){p=t;while(p=p[g])if(s?p.nodeName.toLowerCase()===v:1===p.nodeType)return!1;h=g="only"===e&&!h&&"nextSibling"}return!0}if(h=[a?y.firstChild:y.lastChild],a&&m){x=(d=(l=(c=(f=(p=y)[b]||(p[b]={}))[p.uniqueID]||(f[p.uniqueID]={}))[e]||[])[0]===T&&l[1])&&l[2],p=d&&y.childNodes[d];while(p=++d&&p&&p[g]||(x=d=0)||h.pop())if(1===p.nodeType&&++x&&p===t){c[e]=[T,d,x];break}}else if(m&&(x=d=(l=(c=(f=(p=t)[b]||(p[b]={}))[p.uniqueID]||(f[p.uniqueID]={}))[e]||[])[0]===T&&l[1]),!1===x)while(p=++d&&p&&p[g]||(x=d=0)||h.pop())if((s?p.nodeName.toLowerCase()===v:1===p.nodeType)&&++x&&(m&&((c=(f=p[b]||(p[b]={}))[p.uniqueID]||(f[p.uniqueID]={}))[e]=[T,x]),p===t))break;return(x-=i)===r||x%r==0&&x/r>=0}}},PSEUDO:function(e,t){var n,i=r.pseudos[e]||r.setFilters[e.toLowerCase()]||oe.error("unsupported pseudo: "+e);return i[b]?i(t):i.length>1?(n=[e,e,"",t],r.setFilters.hasOwnProperty(e.toLowerCase())?se(function(e,n){var r,o=i(e,t),a=o.length;while(a--)e[r=O(e,o[a])]=!(n[r]=o[a])}):function(e){return i(e,0,n)}):i}},pseudos:{not:se(function(e){var t=[],n=[],r=s(e.replace(B,"$1"));return r[b]?se(function(e,t,n,i){var o,a=r(e,null,i,[]),s=e.length;while(s--)(o=a[s])&&(e[s]=!(t[s]=o))}):function(e,i,o){return t[0]=e,r(t,null,o,n),t[0]=null,!n.pop()}}),has:se(function(e){return function(t){return oe(e,t).length>0}}),contains:se(function(e){return e=e.replace(Z,ee),function(t){return(t.textContent||t.innerText||i(t)).indexOf(e)>-1}}),lang:se(function(e){return U.test(e||"")||oe.error("unsupported lang: "+e),e=e.replace(Z,ee).toLowerCase(),function(t){var n;do{if(n=g?t.lang:t.getAttribute("xml:lang")||t.getAttribute("lang"))return(n=n.toLowerCase())===e||0===n.indexOf(e+"-")}while((t=t.parentNode)&&1===t.nodeType);return!1}}),target:function(t){var n=e.location&&e.location.hash;return n&&n.slice(1)===t.id},root:function(e){return e===h},focus:function(e){return e===d.activeElement&&(!d.hasFocus||d.hasFocus())&&!!(e.type||e.href||~e.tabIndex)},enabled:de(!1),disabled:de(!0),checked:function(e){var t=e.nodeName.toLowerCase();return"input"===t&&!!e.checked||"option"===t&&!!e.selected},selected:function(e){return e.parentNode&&e.parentNode.selectedIndex,!0===e.selected},empty:function(e){for(e=e.firstChild;e;e=e.nextSibling)if(e.nodeType<6)return!1;return!0},parent:function(e){return!r.pseudos.empty(e)},header:function(e){return Y.test(e.nodeName)},input:function(e){return G.test(e.nodeName)},button:function(e){var t=e.nodeName.toLowerCase();return"input"===t&&"button"===e.type||"button"===t},text:function(e){var t;return"input"===e.nodeName.toLowerCase()&&"text"===e.type&&(null==(t=e.getAttribute("type"))||"text"===t.toLowerCase())},first:he(function(){return[0]}),last:he(function(e,t){return[t-1]}),eq:he(function(e,t,n){return[n<0?n+t:n]}),even:he(function(e,t){for(var n=0;n<t;n+=2)e.push(n);return e}),odd:he(function(e,t){for(var n=1;n<t;n+=2)e.push(n);return e}),lt:he(function(e,t,n){for(var r=n<0?n+t:n;--r>=0;)e.push(r);return e}),gt:he(function(e,t,n){for(var r=n<0?n+t:n;++r<t;)e.push(r);return e})}}).pseudos.nth=r.pseudos.eq;for(t in{radio:!0,checkbox:!0,file:!0,password:!0,image:!0})r.pseudos[t]=fe(t);for(t in{submit:!0,reset:!0})r.pseudos[t]=pe(t);function ye(){}ye.prototype=r.filters=r.pseudos,r.setFilters=new ye,a=oe.tokenize=function(e,t){var n,i,o,a,s,u,l,c=k[e+" "];if(c)return t?0:c.slice(0);s=e,u=[],l=r.preFilter;while(s){n&&!(i=F.exec(s))||(i&&(s=s.slice(i[0].length)||s),u.push(o=[])),n=!1,(i=_.exec(s))&&(n=i.shift(),o.push({value:n,type:i[0].replace(B," ")}),s=s.slice(n.length));for(a in r.filter)!(i=V[a].exec(s))||l[a]&&!(i=l[a](i))||(n=i.shift(),o.push({value:n,type:a,matches:i}),s=s.slice(n.length));if(!n)break}return t?s.length:s?oe.error(e):k(e,u).slice(0)};function ve(e){for(var t=0,n=e.length,r="";t<n;t++)r+=e[t].value;return r}function me(e,t,n){var r=t.dir,i=t.next,o=i||r,a=n&&"parentNode"===o,s=C++;return t.first?function(t,n,i){while(t=t[r])if(1===t.nodeType||a)return e(t,n,i);return!1}:function(t,n,u){var l,c,f,p=[T,s];if(u){while(t=t[r])if((1===t.nodeType||a)&&e(t,n,u))return!0}else while(t=t[r])if(1===t.nodeType||a)if(f=t[b]||(t[b]={}),c=f[t.uniqueID]||(f[t.uniqueID]={}),i&&i===t.nodeName.toLowerCase())t=t[r]||t;else{if((l=c[o])&&l[0]===T&&l[1]===s)return p[2]=l[2];if(c[o]=p,p[2]=e(t,n,u))return!0}return!1}}function xe(e){return e.length>1?function(t,n,r){var i=e.length;while(i--)if(!e[i](t,n,r))return!1;return!0}:e[0]}function be(e,t,n){for(var r=0,i=t.length;r<i;r++)oe(e,t[r],n);return n}function we(e,t,n,r,i){for(var o,a=[],s=0,u=e.length,l=null!=t;s<u;s++)(o=e[s])&&(n&&!n(o,r,i)||(a.push(o),l&&t.push(s)));return a}function Te(e,t,n,r,i,o){return r&&!r[b]&&(r=Te(r)),i&&!i[b]&&(i=Te(i,o)),se(function(o,a,s,u){var l,c,f,p=[],d=[],h=a.length,g=o||be(t||"*",s.nodeType?[s]:s,[]),y=!e||!o&&t?g:we(g,p,e,s,u),v=n?i||(o?e:h||r)?[]:a:y;if(n&&n(y,v,s,u),r){l=we(v,d),r(l,[],s,u),c=l.length;while(c--)(f=l[c])&&(v[d[c]]=!(y[d[c]]=f))}if(o){if(i||e){if(i){l=[],c=v.length;while(c--)(f=v[c])&&l.push(y[c]=f);i(null,v=[],l,u)}c=v.length;while(c--)(f=v[c])&&(l=i?O(o,f):p[c])>-1&&(o[l]=!(a[l]=f))}}else v=we(v===a?v.splice(h,v.length):v),i?i(null,a,v,u):L.apply(a,v)})}function Ce(e){for(var t,n,i,o=e.length,a=r.relative[e[0].type],s=a||r.relative[" "],u=a?1:0,c=me(function(e){return e===t},s,!0),f=me(function(e){return O(t,e)>-1},s,!0),p=[function(e,n,r){var i=!a&&(r||n!==l)||((t=n).nodeType?c(e,n,r):f(e,n,r));return t=null,i}];u<o;u++)if(n=r.relative[e[u].type])p=[me(xe(p),n)];else{if((n=r.filter[e[u].type].apply(null,e[u].matches))[b]){for(i=++u;i<o;i++)if(r.relative[e[i].type])break;return Te(u>1&&xe(p),u>1&&ve(e.slice(0,u-1).concat({value:" "===e[u-2].type?"*":""})).replace(B,"$1"),n,u<i&&Ce(e.slice(u,i)),i<o&&Ce(e=e.slice(i)),i<o&&ve(e))}p.push(n)}return xe(p)}function Ee(e,t){var n=t.length>0,i=e.length>0,o=function(o,a,s,u,c){var f,h,y,v=0,m="0",x=o&&[],b=[],w=l,C=o||i&&r.find.TAG("*",c),E=T+=null==w?1:Math.random()||.1,k=C.length;for(c&&(l=a===d||a||c);m!==k&&null!=(f=C[m]);m++){if(i&&f){h=0,a||f.ownerDocument===d||(p(f),s=!g);while(y=e[h++])if(y(f,a||d,s)){u.push(f);break}c&&(T=E)}n&&((f=!y&&f)&&v--,o&&x.push(f))}if(v+=m,n&&m!==v){h=0;while(y=t[h++])y(x,b,a,s);if(o){if(v>0)while(m--)x[m]||b[m]||(b[m]=j.call(u));b=we(b)}L.apply(u,b),c&&!o&&b.length>0&&v+t.length>1&&oe.uniqueSort(u)}return c&&(T=E,l=w),x};return n?se(o):o}return s=oe.compile=function(e,t){var n,r=[],i=[],o=S[e+" "];if(!o){t||(t=a(e)),n=t.length;while(n--)(o=Ce(t[n]))[b]?r.push(o):i.push(o);(o=S(e,Ee(i,r))).selector=e}return o},u=oe.select=function(e,t,n,i){var o,u,l,c,f,p="function"==typeof e&&e,d=!i&&a(e=p.selector||e);if(n=n||[],1===d.length){if((u=d[0]=d[0].slice(0)).length>2&&"ID"===(l=u[0]).type&&9===t.nodeType&&g&&r.relative[u[1].type]){if(!(t=(r.find.ID(l.matches[0].replace(Z,ee),t)||[])[0]))return n;p&&(t=t.parentNode),e=e.slice(u.shift().value.length)}o=V.needsContext.test(e)?0:u.length;while(o--){if(l=u[o],r.relative[c=l.type])break;if((f=r.find[c])&&(i=f(l.matches[0].replace(Z,ee),K.test(u[0].type)&&ge(t.parentNode)||t))){if(u.splice(o,1),!(e=i.length&&ve(u)))return L.apply(n,i),n;break}}}return(p||s(e,d))(i,t,!g,n,!t||K.test(e)&&ge(t.parentNode)||t),n},n.sortStable=b.split("").sort(D).join("")===b,n.detectDuplicates=!!f,p(),n.sortDetached=ue(function(e){return 1&e.compareDocumentPosition(d.createElement("fieldset"))}),ue(function(e){return e.innerHTML="<a href='#'></a>","#"===e.firstChild.getAttribute("href")})||le("type|href|height|width",function(e,t,n){if(!n)return e.getAttribute(t,"type"===t.toLowerCase()?1:2)}),n.attributes&&ue(function(e){return e.innerHTML="<input/>",e.firstChild.setAttribute("value",""),""===e.firstChild.getAttribute("value")})||le("value",function(e,t,n){if(!n&&"input"===e.nodeName.toLowerCase())return e.defaultValue}),ue(function(e){return null==e.getAttribute("disabled")})||le(P,function(e,t,n){var r;if(!n)return!0===e[t]?t.toLowerCase():(r=e.getAttributeNode(t))&&r.specified?r.value:null}),oe}(e);w.find=E,w.expr=E.selectors,w.expr[":"]=w.expr.pseudos,w.uniqueSort=w.unique=E.uniqueSort,w.text=E.getText,w.isXMLDoc=E.isXML,w.contains=E.contains,w.escapeSelector=E.escape;var k=function(e,t,n){var r=[],i=void 0!==n;while((e=e[t])&&9!==e.nodeType)if(1===e.nodeType){if(i&&w(e).is(n))break;r.push(e)}return r},S=function(e,t){for(var n=[];e;e=e.nextSibling)1===e.nodeType&&e!==t&&n.push(e);return n},D=w.expr.match.needsContext;function N(e,t){return e.nodeName&&e.nodeName.toLowerCase()===t.toLowerCase()}var A=/^<([a-z][^\/\0>:\x20\t\r\n\f]*)[\x20\t\r\n\f]*\/?>(?:<\/\1>|)$/i;function j(e,t,n){return g(t)?w.grep(e,function(e,r){return!!t.call(e,r,e)!==n}):t.nodeType?w.grep(e,function(e){return e===t!==n}):"string"!=typeof t?w.grep(e,function(e){return u.call(t,e)>-1!==n}):w.filter(t,e,n)}w.filter=function(e,t,n){var r=t[0];return n&&(e=":not("+e+")"),1===t.length&&1===r.nodeType?w.find.matchesSelector(r,e)?[r]:[]:w.find.matches(e,w.grep(t,function(e){return 1===e.nodeType}))},w.fn.extend({find:function(e){var t,n,r=this.length,i=this;if("string"!=typeof e)return this.pushStack(w(e).filter(function(){for(t=0;t<r;t++)if(w.contains(i[t],this))return!0}));for(n=this.pushStack([]),t=0;t<r;t++)w.find(e,i[t],n);return r>1?w.uniqueSort(n):n},filter:function(e){return this.pushStack(j(this,e||[],!1))},not:function(e){return this.pushStack(j(this,e||[],!0))},is:function(e){return!!j(this,"string"==typeof e&&D.test(e)?w(e):e||[],!1).length}});var q,L=/^(?:\s*(<[\w\W]+>)[^>]*|#([\w-]+))$/;(w.fn.init=function(e,t,n){var i,o;if(!e)return this;if(n=n||q,"string"==typeof e){if(!(i="<"===e[0]&&">"===e[e.length-1]&&e.length>=3?[null,e,null]:L.exec(e))||!i[1]&&t)return!t||t.jquery?(t||n).find(e):this.constructor(t).find(e);if(i[1]){if(t=t instanceof w?t[0]:t,w.merge(this,w.parseHTML(i[1],t&&t.nodeType?t.ownerDocument||t:r,!0)),A.test(i[1])&&w.isPlainObject(t))for(i in t)g(this[i])?this[i](t[i]):this.attr(i,t[i]);return this}return(o=r.getElementById(i[2]))&&(this[0]=o,this.length=1),this}return e.nodeType?(this[0]=e,this.length=1,this):g(e)?void 0!==n.ready?n.ready(e):e(w):w.makeArray(e,this)}).prototype=w.fn,q=w(r);var H=/^(?:parents|prev(?:Until|All))/,O={children:!0,contents:!0,next:!0,prev:!0};w.fn.extend({has:function(e){var t=w(e,this),n=t.length;return this.filter(function(){for(var e=0;e<n;e++)if(w.contains(this,t[e]))return!0})},closest:function(e,t){var n,r=0,i=this.length,o=[],a="string"!=typeof e&&w(e);if(!D.test(e))for(;r<i;r++)for(n=this[r];n&&n!==t;n=n.parentNode)if(n.nodeType<11&&(a?a.index(n)>-1:1===n.nodeType&&w.find.matchesSelector(n,e))){o.push(n);break}return this.pushStack(o.length>1?w.uniqueSort(o):o)},index:function(e){return e?"string"==typeof e?u.call(w(e),this[0]):u.call(this,e.jquery?e[0]:e):this[0]&&this[0].parentNode?this.first().prevAll().length:-1},add:function(e,t){return this.pushStack(w.uniqueSort(w.merge(this.get(),w(e,t))))},addBack:function(e){return this.add(null==e?this.prevObject:this.prevObject.filter(e))}});function P(e,t){while((e=e[t])&&1!==e.nodeType);return e}w.each({parent:function(e){var t=e.parentNode;return t&&11!==t.nodeType?t:null},parents:function(e){return k(e,"parentNode")},parentsUntil:function(e,t,n){return k(e,"parentNode",n)},next:function(e){return P(e,"nextSibling")},prev:function(e){return P(e,"previousSibling")},nextAll:function(e){return k(e,"nextSibling")},prevAll:function(e){return k(e,"previousSibling")},nextUntil:function(e,t,n){return k(e,"nextSibling",n)},prevUntil:function(e,t,n){return k(e,"previousSibling",n)},siblings:function(e){return S((e.parentNode||{}).firstChild,e)},children:function(e){return S(e.firstChild)},contents:function(e){return N(e,"iframe")?e.contentDocument:(N(e,"template")&&(e=e.content||e),w.merge([],e.childNodes))}},function(e,t){w.fn[e]=function(n,r){var i=w.map(this,t,n);return"Until"!==e.slice(-5)&&(r=n),r&&"string"==typeof r&&(i=w.filter(r,i)),this.length>1&&(O[e]||w.uniqueSort(i),H.test(e)&&i.reverse()),this.pushStack(i)}});var M=/[^\x20\t\r\n\f]+/g;function R(e){var t={};return w.each(e.match(M)||[],function(e,n){t[n]=!0}),t}w.Callbacks=function(e){e="string"==typeof e?R(e):w.extend({},e);var t,n,r,i,o=[],a=[],s=-1,u=function(){for(i=i||e.once,r=t=!0;a.length;s=-1){n=a.shift();while(++s<o.length)!1===o[s].apply(n[0],n[1])&&e.stopOnFalse&&(s=o.length,n=!1)}e.memory||(n=!1),t=!1,i&&(o=n?[]:"")},l={add:function(){return o&&(n&&!t&&(s=o.length-1,a.push(n)),function t(n){w.each(n,function(n,r){g(r)?e.unique&&l.has(r)||o.push(r):r&&r.length&&"string"!==x(r)&&t(r)})}(arguments),n&&!t&&u()),this},remove:function(){return w.each(arguments,function(e,t){var n;while((n=w.inArray(t,o,n))>-1)o.splice(n,1),n<=s&&s--}),this},has:function(e){return e?w.inArray(e,o)>-1:o.length>0},empty:function(){return o&&(o=[]),this},disable:function(){return i=a=[],o=n="",this},disabled:function(){return!o},lock:function(){return i=a=[],n||t||(o=n=""),this},locked:function(){return!!i},fireWith:function(e,n){return i||(n=[e,(n=n||[]).slice?n.slice():n],a.push(n),t||u()),this},fire:function(){return l.fireWith(this,arguments),this},fired:function(){return!!r}};return l};function I(e){return e}function W(e){throw e}function $(e,t,n,r){var i;try{e&&g(i=e.promise)?i.call(e).done(t).fail(n):e&&g(i=e.then)?i.call(e,t,n):t.apply(void 0,[e].slice(r))}catch(e){n.apply(void 0,[e])}}w.extend({Deferred:function(t){var n=[["notify","progress",w.Callbacks("memory"),w.Callbacks("memory"),2],["resolve","done",w.Callbacks("once memory"),w.Callbacks("once memory"),0,"resolved"],["reject","fail",w.Callbacks("once memory"),w.Callbacks("once memory"),1,"rejected"]],r="pending",i={state:function(){return r},always:function(){return o.done(arguments).fail(arguments),this},"catch":function(e){return i.then(null,e)},pipe:function(){var e=arguments;return w.Deferred(function(t){w.each(n,function(n,r){var i=g(e[r[4]])&&e[r[4]];o[r[1]](function(){var e=i&&i.apply(this,arguments);e&&g(e.promise)?e.promise().progress(t.notify).done(t.resolve).fail(t.reject):t[r[0]+"With"](this,i?[e]:arguments)})}),e=null}).promise()},then:function(t,r,i){var o=0;function a(t,n,r,i){return function(){var s=this,u=arguments,l=function(){var e,l;if(!(t<o)){if((e=r.apply(s,u))===n.promise())throw new TypeError("Thenable self-resolution");l=e&&("object"==typeof e||"function"==typeof e)&&e.then,g(l)?i?l.call(e,a(o,n,I,i),a(o,n,W,i)):(o++,l.call(e,a(o,n,I,i),a(o,n,W,i),a(o,n,I,n.notifyWith))):(r!==I&&(s=void 0,u=[e]),(i||n.resolveWith)(s,u))}},c=i?l:function(){try{l()}catch(e){w.Deferred.exceptionHook&&w.Deferred.exceptionHook(e,c.stackTrace),t+1>=o&&(r!==W&&(s=void 0,u=[e]),n.rejectWith(s,u))}};t?c():(w.Deferred.getStackHook&&(c.stackTrace=w.Deferred.getStackHook()),e.setTimeout(c))}}return w.Deferred(function(e){n[0][3].add(a(0,e,g(i)?i:I,e.notifyWith)),n[1][3].add(a(0,e,g(t)?t:I)),n[2][3].add(a(0,e,g(r)?r:W))}).promise()},promise:function(e){return null!=e?w.extend(e,i):i}},o={};return w.each(n,function(e,t){var a=t[2],s=t[5];i[t[1]]=a.add,s&&a.add(function(){r=s},n[3-e][2].disable,n[3-e][3].disable,n[0][2].lock,n[0][3].lock),a.add(t[3].fire),o[t[0]]=function(){return o[t[0]+"With"](this===o?void 0:this,arguments),this},o[t[0]+"With"]=a.fireWith}),i.promise(o),t&&t.call(o,o),o},when:function(e){var t=arguments.length,n=t,r=Array(n),i=o.call(arguments),a=w.Deferred(),s=function(e){return function(n){r[e]=this,i[e]=arguments.length>1?o.call(arguments):n,--t||a.resolveWith(r,i)}};if(t<=1&&($(e,a.done(s(n)).resolve,a.reject,!t),"pending"===a.state()||g(i[n]&&i[n].then)))return a.then();while(n--)$(i[n],s(n),a.reject);return a.promise()}});var B=/^(Eval|Internal|Range|Reference|Syntax|Type|URI)Error$/;w.Deferred.exceptionHook=function(t,n){e.console&&e.console.warn&&t&&B.test(t.name)&&e.console.warn("jQuery.Deferred exception: "+t.message,t.stack,n)},w.readyException=function(t){e.setTimeout(function(){throw t})};var F=w.Deferred();w.fn.ready=function(e){return F.then(e)["catch"](function(e){w.readyException(e)}),this},w.extend({isReady:!1,readyWait:1,ready:function(e){(!0===e?--w.readyWait:w.isReady)||(w.isReady=!0,!0!==e&&--w.readyWait>0||F.resolveWith(r,[w]))}}),w.ready.then=F.then;function _(){r.removeEventListener("DOMContentLoaded",_),e.removeEventListener("load",_),w.ready()}"complete"===r.readyState||"loading"!==r.readyState&&!r.documentElement.doScroll?e.setTimeout(w.ready):(r.addEventListener("DOMContentLoaded",_),e.addEventListener("load",_));var z=function(e,t,n,r,i,o,a){var s=0,u=e.length,l=null==n;if("object"===x(n)){i=!0;for(s in n)z(e,t,s,n[s],!0,o,a)}else if(void 0!==r&&(i=!0,g(r)||(a=!0),l&&(a?(t.call(e,r),t=null):(l=t,t=function(e,t,n){return l.call(w(e),n)})),t))for(;s<u;s++)t(e[s],n,a?r:r.call(e[s],s,t(e[s],n)));return i?e:l?t.call(e):u?t(e[0],n):o},X=/^-ms-/,U=/-([a-z])/g;function V(e,t){return t.toUpperCase()}function G(e){return e.replace(X,"ms-").replace(U,V)}var Y=function(e){return 1===e.nodeType||9===e.nodeType||!+e.nodeType};function Q(){this.expando=w.expando+Q.uid++}Q.uid=1,Q.prototype={cache:function(e){var t=e[this.expando];return t||(t={},Y(e)&&(e.nodeType?e[this.expando]=t:Object.defineProperty(e,this.expando,{value:t,configurable:!0}))),t},set:function(e,t,n){var r,i=this.cache(e);if("string"==typeof t)i[G(t)]=n;else for(r in t)i[G(r)]=t[r];return i},get:function(e,t){return void 0===t?this.cache(e):e[this.expando]&&e[this.expando][G(t)]},access:function(e,t,n){return void 0===t||t&&"string"==typeof t&&void 0===n?this.get(e,t):(this.set(e,t,n),void 0!==n?n:t)},remove:function(e,t){var n,r=e[this.expando];if(void 0!==r){if(void 0!==t){n=(t=Array.isArray(t)?t.map(G):(t=G(t))in r?[t]:t.match(M)||[]).length;while(n--)delete r[t[n]]}(void 0===t||w.isEmptyObject(r))&&(e.nodeType?e[this.expando]=void 0:delete e[this.expando])}},hasData:function(e){var t=e[this.expando];return void 0!==t&&!w.isEmptyObject(t)}};var J=new Q,K=new Q,Z=/^(?:\{[\w\W]*\}|\[[\w\W]*\])$/,ee=/[A-Z]/g;function te(e){return"true"===e||"false"!==e&&("null"===e?null:e===+e+""?+e:Z.test(e)?JSON.parse(e):e)}function ne(e,t,n){var r;if(void 0===n&&1===e.nodeType)if(r="data-"+t.replace(ee,"-$&").toLowerCase(),"string"==typeof(n=e.getAttribute(r))){try{n=te(n)}catch(e){}K.set(e,t,n)}else n=void 0;return n}w.extend({hasData:function(e){return K.hasData(e)||J.hasData(e)},data:function(e,t,n){return K.access(e,t,n)},removeData:function(e,t){K.remove(e,t)},_data:function(e,t,n){return J.access(e,t,n)},_removeData:function(e,t){J.remove(e,t)}}),w.fn.extend({data:function(e,t){var n,r,i,o=this[0],a=o&&o.attributes;if(void 0===e){if(this.length&&(i=K.get(o),1===o.nodeType&&!J.get(o,"hasDataAttrs"))){n=a.length;while(n--)a[n]&&0===(r=a[n].name).indexOf("data-")&&(r=G(r.slice(5)),ne(o,r,i[r]));J.set(o,"hasDataAttrs",!0)}return i}return"object"==typeof e?this.each(function(){K.set(this,e)}):z(this,function(t){var n;if(o&&void 0===t){if(void 0!==(n=K.get(o,e)))return n;if(void 0!==(n=ne(o,e)))return n}else this.each(function(){K.set(this,e,t)})},null,t,arguments.length>1,null,!0)},removeData:function(e){return this.each(function(){K.remove(this,e)})}}),w.extend({queue:function(e,t,n){var r;if(e)return t=(t||"fx")+"queue",r=J.get(e,t),n&&(!r||Array.isArray(n)?r=J.access(e,t,w.makeArray(n)):r.push(n)),r||[]},dequeue:function(e,t){t=t||"fx";var n=w.queue(e,t),r=n.length,i=n.shift(),o=w._queueHooks(e,t),a=function(){w.dequeue(e,t)};"inprogress"===i&&(i=n.shift(),r--),i&&("fx"===t&&n.unshift("inprogress"),delete o.stop,i.call(e,a,o)),!r&&o&&o.empty.fire()},_queueHooks:function(e,t){var n=t+"queueHooks";return J.get(e,n)||J.access(e,n,{empty:w.Callbacks("once memory").add(function(){J.remove(e,[t+"queue",n])})})}}),w.fn.extend({queue:function(e,t){var n=2;return"string"!=typeof e&&(t=e,e="fx",n--),arguments.length<n?w.queue(this[0],e):void 0===t?this:this.each(function(){var n=w.queue(this,e,t);w._queueHooks(this,e),"fx"===e&&"inprogress"!==n[0]&&w.dequeue(this,e)})},dequeue:function(e){return this.each(function(){w.dequeue(this,e)})},clearQueue:function(e){return this.queue(e||"fx",[])},promise:function(e,t){var n,r=1,i=w.Deferred(),o=this,a=this.length,s=function(){--r||i.resolveWith(o,[o])};"string"!=typeof e&&(t=e,e=void 0),e=e||"fx";while(a--)(n=J.get(o[a],e+"queueHooks"))&&n.empty&&(r++,n.empty.add(s));return s(),i.promise(t)}});var re=/[+-]?(?:\d*\.|)\d+(?:[eE][+-]?\d+|)/.source,ie=new RegExp("^(?:([+-])=|)("+re+")([a-z%]*)$","i"),oe=["Top","Right","Bottom","Left"],ae=function(e,t){return"none"===(e=t||e).style.display||""===e.style.display&&w.contains(e.ownerDocument,e)&&"none"===w.css(e,"display")},se=function(e,t,n,r){var i,o,a={};for(o in t)a[o]=e.style[o],e.style[o]=t[o];i=n.apply(e,r||[]);for(o in t)e.style[o]=a[o];return i};function ue(e,t,n,r){var i,o,a=20,s=r?function(){return r.cur()}:function(){return w.css(e,t,"")},u=s(),l=n&&n[3]||(w.cssNumber[t]?"":"px"),c=(w.cssNumber[t]||"px"!==l&&+u)&&ie.exec(w.css(e,t));if(c&&c[3]!==l){u/=2,l=l||c[3],c=+u||1;while(a--)w.style(e,t,c+l),(1-o)*(1-(o=s()/u||.5))<=0&&(a=0),c/=o;c*=2,w.style(e,t,c+l),n=n||[]}return n&&(c=+c||+u||0,i=n[1]?c+(n[1]+1)*n[2]:+n[2],r&&(r.unit=l,r.start=c,r.end=i)),i}var le={};function ce(e){var t,n=e.ownerDocument,r=e.nodeName,i=le[r];return i||(t=n.body.appendChild(n.createElement(r)),i=w.css(t,"display"),t.parentNode.removeChild(t),"none"===i&&(i="block"),le[r]=i,i)}function fe(e,t){for(var n,r,i=[],o=0,a=e.length;o<a;o++)(r=e[o]).style&&(n=r.style.display,t?("none"===n&&(i[o]=J.get(r,"display")||null,i[o]||(r.style.display="")),""===r.style.display&&ae(r)&&(i[o]=ce(r))):"none"!==n&&(i[o]="none",J.set(r,"display",n)));for(o=0;o<a;o++)null!=i[o]&&(e[o].style.display=i[o]);return e}w.fn.extend({show:function(){return fe(this,!0)},hide:function(){return fe(this)},toggle:function(e){return"boolean"==typeof e?e?this.show():this.hide():this.each(function(){ae(this)?w(this).show():w(this).hide()})}});var pe=/^(?:checkbox|radio)$/i,de=/<([a-z][^\/\0>\x20\t\r\n\f]+)/i,he=/^$|^module$|\/(?:java|ecma)script/i,ge={option:[1,"<select multiple='multiple'>","</select>"],thead:[1,"<table>","</table>"],col:[2,"<table><colgroup>","</colgroup></table>"],tr:[2,"<table><tbody>","</tbody></table>"],td:[3,"<table><tbody><tr>","</tr></tbody></table>"],_default:[0,"",""]};ge.optgroup=ge.option,ge.tbody=ge.tfoot=ge.colgroup=ge.caption=ge.thead,ge.th=ge.td;function ye(e,t){var n;return n="undefined"!=typeof e.getElementsByTagName?e.getElementsByTagName(t||"*"):"undefined"!=typeof e.querySelectorAll?e.querySelectorAll(t||"*"):[],void 0===t||t&&N(e,t)?w.merge([e],n):n}function ve(e,t){for(var n=0,r=e.length;n<r;n++)J.set(e[n],"globalEval",!t||J.get(t[n],"globalEval"))}var me=/<|&#?\w+;/;function xe(e,t,n,r,i){for(var o,a,s,u,l,c,f=t.createDocumentFragment(),p=[],d=0,h=e.length;d<h;d++)if((o=e[d])||0===o)if("object"===x(o))w.merge(p,o.nodeType?[o]:o);else if(me.test(o)){a=a||f.appendChild(t.createElement("div")),s=(de.exec(o)||["",""])[1].toLowerCase(),u=ge[s]||ge._default,a.innerHTML=u[1]+w.htmlPrefilter(o)+u[2],c=u[0];while(c--)a=a.lastChild;w.merge(p,a.childNodes),(a=f.firstChild).textContent=""}else p.push(t.createTextNode(o));f.textContent="",d=0;while(o=p[d++])if(r&&w.inArray(o,r)>-1)i&&i.push(o);else if(l=w.contains(o.ownerDocument,o),a=ye(f.appendChild(o),"script"),l&&ve(a),n){c=0;while(o=a[c++])he.test(o.type||"")&&n.push(o)}return f}!function(){var e=r.createDocumentFragment().appendChild(r.createElement("div")),t=r.createElement("input");t.setAttribute("type","radio"),t.setAttribute("checked","checked"),t.setAttribute("name","t"),e.appendChild(t),h.checkClone=e.cloneNode(!0).cloneNode(!0).lastChild.checked,e.innerHTML="<textarea>x</textarea>",h.noCloneChecked=!!e.cloneNode(!0).lastChild.defaultValue}();var be=r.documentElement,we=/^key/,Te=/^(?:mouse|pointer|contextmenu|drag|drop)|click/,Ce=/^([^.]*)(?:\.(.+)|)/;function Ee(){return!0}function ke(){return!1}function Se(){try{return r.activeElement}catch(e){}}function De(e,t,n,r,i,o){var a,s;if("object"==typeof t){"string"!=typeof n&&(r=r||n,n=void 0);for(s in t)De(e,s,n,r,t[s],o);return e}if(null==r&&null==i?(i=n,r=n=void 0):null==i&&("string"==typeof n?(i=r,r=void 0):(i=r,r=n,n=void 0)),!1===i)i=ke;else if(!i)return e;return 1===o&&(a=i,(i=function(e){return w().off(e),a.apply(this,arguments)}).guid=a.guid||(a.guid=w.guid++)),e.each(function(){w.event.add(this,t,i,r,n)})}w.event={global:{},add:function(e,t,n,r,i){var o,a,s,u,l,c,f,p,d,h,g,y=J.get(e);if(y){n.handler&&(n=(o=n).handler,i=o.selector),i&&w.find.matchesSelector(be,i),n.guid||(n.guid=w.guid++),(u=y.events)||(u=y.events={}),(a=y.handle)||(a=y.handle=function(t){return"undefined"!=typeof w&&w.event.triggered!==t.type?w.event.dispatch.apply(e,arguments):void 0}),l=(t=(t||"").match(M)||[""]).length;while(l--)d=g=(s=Ce.exec(t[l])||[])[1],h=(s[2]||"").split(".").sort(),d&&(f=w.event.special[d]||{},d=(i?f.delegateType:f.bindType)||d,f=w.event.special[d]||{},c=w.extend({type:d,origType:g,data:r,handler:n,guid:n.guid,selector:i,needsContext:i&&w.expr.match.needsContext.test(i),namespace:h.join(".")},o),(p=u[d])||((p=u[d]=[]).delegateCount=0,f.setup&&!1!==f.setup.call(e,r,h,a)||e.addEventListener&&e.addEventListener(d,a)),f.add&&(f.add.call(e,c),c.handler.guid||(c.handler.guid=n.guid)),i?p.splice(p.delegateCount++,0,c):p.push(c),w.event.global[d]=!0)}},remove:function(e,t,n,r,i){var o,a,s,u,l,c,f,p,d,h,g,y=J.hasData(e)&&J.get(e);if(y&&(u=y.events)){l=(t=(t||"").match(M)||[""]).length;while(l--)if(s=Ce.exec(t[l])||[],d=g=s[1],h=(s[2]||"").split(".").sort(),d){f=w.event.special[d]||{},p=u[d=(r?f.delegateType:f.bindType)||d]||[],s=s[2]&&new RegExp("(^|\\.)"+h.join("\\.(?:.*\\.|)")+"(\\.|$)"),a=o=p.length;while(o--)c=p[o],!i&&g!==c.origType||n&&n.guid!==c.guid||s&&!s.test(c.namespace)||r&&r!==c.selector&&("**"!==r||!c.selector)||(p.splice(o,1),c.selector&&p.delegateCount--,f.remove&&f.remove.call(e,c));a&&!p.length&&(f.teardown&&!1!==f.teardown.call(e,h,y.handle)||w.removeEvent(e,d,y.handle),delete u[d])}else for(d in u)w.event.remove(e,d+t[l],n,r,!0);w.isEmptyObject(u)&&J.remove(e,"handle events")}},dispatch:function(e){var t=w.event.fix(e),n,r,i,o,a,s,u=new Array(arguments.length),l=(J.get(this,"events")||{})[t.type]||[],c=w.event.special[t.type]||{};for(u[0]=t,n=1;n<arguments.length;n++)u[n]=arguments[n];if(t.delegateTarget=this,!c.preDispatch||!1!==c.preDispatch.call(this,t)){s=w.event.handlers.call(this,t,l),n=0;while((o=s[n++])&&!t.isPropagationStopped()){t.currentTarget=o.elem,r=0;while((a=o.handlers[r++])&&!t.isImmediatePropagationStopped())t.rnamespace&&!t.rnamespace.test(a.namespace)||(t.handleObj=a,t.data=a.data,void 0!==(i=((w.event.special[a.origType]||{}).handle||a.handler).apply(o.elem,u))&&!1===(t.result=i)&&(t.preventDefault(),t.stopPropagation()))}return c.postDispatch&&c.postDispatch.call(this,t),t.result}},handlers:function(e,t){var n,r,i,o,a,s=[],u=t.delegateCount,l=e.target;if(u&&l.nodeType&&!("click"===e.type&&e.button>=1))for(;l!==this;l=l.parentNode||this)if(1===l.nodeType&&("click"!==e.type||!0!==l.disabled)){for(o=[],a={},n=0;n<u;n++)void 0===a[i=(r=t[n]).selector+" "]&&(a[i]=r.needsContext?w(i,this).index(l)>-1:w.find(i,this,null,[l]).length),a[i]&&o.push(r);o.length&&s.push({elem:l,handlers:o})}return l=this,u<t.length&&s.push({elem:l,handlers:t.slice(u)}),s},addProp:function(e,t){Object.defineProperty(w.Event.prototype,e,{enumerable:!0,configurable:!0,get:g(t)?function(){if(this.originalEvent)return t(this.originalEvent)}:function(){if(this.originalEvent)return this.originalEvent[e]},set:function(t){Object.defineProperty(this,e,{enumerable:!0,configurable:!0,writable:!0,value:t})}})},fix:function(e){return e[w.expando]?e:new w.Event(e)},special:{load:{noBubble:!0},focus:{trigger:function(){if(this!==Se()&&this.focus)return this.focus(),!1},delegateType:"focusin"},blur:{trigger:function(){if(this===Se()&&this.blur)return this.blur(),!1},delegateType:"focusout"},click:{trigger:function(){if("checkbox"===this.type&&this.click&&N(this,"input"))return this.click(),!1},_default:function(e){return N(e.target,"a")}},beforeunload:{postDispatch:function(e){void 0!==e.result&&e.originalEvent&&(e.originalEvent.returnValue=e.result)}}}},w.removeEvent=function(e,t,n){e.removeEventListener&&e.removeEventListener(t,n)},w.Event=function(e,t){if(!(this instanceof w.Event))return new w.Event(e,t);e&&e.type?(this.originalEvent=e,this.type=e.type,this.isDefaultPrevented=e.defaultPrevented||void 0===e.defaultPrevented&&!1===e.returnValue?Ee:ke,this.target=e.target&&3===e.target.nodeType?e.target.parentNode:e.target,this.currentTarget=e.currentTarget,this.relatedTarget=e.relatedTarget):this.type=e,t&&w.extend(this,t),this.timeStamp=e&&e.timeStamp||Date.now(),this[w.expando]=!0},w.Event.prototype={constructor:w.Event,isDefaultPrevented:ke,isPropagationStopped:ke,isImmediatePropagationStopped:ke,isSimulated:!1,preventDefault:function(){var e=this.originalEvent;this.isDefaultPrevented=Ee,e&&!this.isSimulated&&e.preventDefault()},stopPropagation:function(){var e=this.originalEvent;this.isPropagationStopped=Ee,e&&!this.isSimulated&&e.stopPropagation()},stopImmediatePropagation:function(){var e=this.originalEvent;this.isImmediatePropagationStopped=Ee,e&&!this.isSimulated&&e.stopImmediatePropagation(),this.stopPropagation()}},w.each({altKey:!0,bubbles:!0,cancelable:!0,changedTouches:!0,ctrlKey:!0,detail:!0,eventPhase:!0,metaKey:!0,pageX:!0,pageY:!0,shiftKey:!0,view:!0,"char":!0,charCode:!0,key:!0,keyCode:!0,button:!0,buttons:!0,clientX:!0,clientY:!0,offsetX:!0,offsetY:!0,pointerId:!0,pointerType:!0,screenX:!0,screenY:!0,targetTouches:!0,toElement:!0,touches:!0,which:function(e){var t=e.button;return null==e.which&&we.test(e.type)?null!=e.charCode?e.charCode:e.keyCode:!e.which&&void 0!==t&&Te.test(e.type)?1&t?1:2&t?3:4&t?2:0:e.which}},w.event.addProp),w.each({mouseenter:"mouseover",mouseleave:"mouseout",pointerenter:"pointerover",pointerleave:"pointerout"},function(e,t){w.event.special[e]={delegateType:t,bindType:t,handle:function(e){var n,r=this,i=e.relatedTarget,o=e.handleObj;return i&&(i===r||w.contains(r,i))||(e.type=o.origType,n=o.handler.apply(this,arguments),e.type=t),n}}}),w.fn.extend({on:function(e,t,n,r){return De(this,e,t,n,r)},one:function(e,t,n,r){return De(this,e,t,n,r,1)},off:function(e,t,n){var r,i;if(e&&e.preventDefault&&e.handleObj)return r=e.handleObj,w(e.delegateTarget).off(r.namespace?r.origType+"."+r.namespace:r.origType,r.selector,r.handler),this;if("object"==typeof e){for(i in e)this.off(i,t,e[i]);return this}return!1!==t&&"function"!=typeof t||(n=t,t=void 0),!1===n&&(n=ke),this.each(function(){w.event.remove(this,e,n,t)})}});var Ne=/<(?!area|br|col|embed|hr|img|input|link|meta|param)(([a-z][^\/\0>\x20\t\r\n\f]*)[^>]*)\/>/gi,Ae=/<script|<style|<link/i,je=/checked\s*(?:[^=]|=\s*.checked.)/i,qe=/^\s*<!(?:\[CDATA\[|--)|(?:\]\]|--)>\s*$/g;function Le(e,t){return N(e,"table")&&N(11!==t.nodeType?t:t.firstChild,"tr")?w(e).children("tbody")[0]||e:e}function He(e){return e.type=(null!==e.getAttribute("type"))+"/"+e.type,e}function Oe(e){return"true/"===(e.type||"").slice(0,5)?e.type=e.type.slice(5):e.removeAttribute("type"),e}function Pe(e,t){var n,r,i,o,a,s,u,l;if(1===t.nodeType){if(J.hasData(e)&&(o=J.access(e),a=J.set(t,o),l=o.events)){delete a.handle,a.events={};for(i in l)for(n=0,r=l[i].length;n<r;n++)w.event.add(t,i,l[i][n])}K.hasData(e)&&(s=K.access(e),u=w.extend({},s),K.set(t,u))}}function Me(e,t){var n=t.nodeName.toLowerCase();"input"===n&&pe.test(e.type)?t.checked=e.checked:"input"!==n&&"textarea"!==n||(t.defaultValue=e.defaultValue)}function Re(e,t,n,r){t=a.apply([],t);var i,o,s,u,l,c,f=0,p=e.length,d=p-1,y=t[0],v=g(y);if(v||p>1&&"string"==typeof y&&!h.checkClone&&je.test(y))return e.each(function(i){var o=e.eq(i);v&&(t[0]=y.call(this,i,o.html())),Re(o,t,n,r)});if(p&&(i=xe(t,e[0].ownerDocument,!1,e,r),o=i.firstChild,1===i.childNodes.length&&(i=o),o||r)){for(u=(s=w.map(ye(i,"script"),He)).length;f<p;f++)l=i,f!==d&&(l=w.clone(l,!0,!0),u&&w.merge(s,ye(l,"script"))),n.call(e[f],l,f);if(u)for(c=s[s.length-1].ownerDocument,w.map(s,Oe),f=0;f<u;f++)l=s[f],he.test(l.type||"")&&!J.access(l,"globalEval")&&w.contains(c,l)&&(l.src&&"module"!==(l.type||"").toLowerCase()?w._evalUrl&&w._evalUrl(l.src):m(l.textContent.replace(qe,""),c,l))}return e}function Ie(e,t,n){for(var r,i=t?w.filter(t,e):e,o=0;null!=(r=i[o]);o++)n||1!==r.nodeType||w.cleanData(ye(r)),r.parentNode&&(n&&w.contains(r.ownerDocument,r)&&ve(ye(r,"script")),r.parentNode.removeChild(r));return e}w.extend({htmlPrefilter:function(e){return e.replace(Ne,"<$1></$2>")},clone:function(e,t,n){var r,i,o,a,s=e.cloneNode(!0),u=w.contains(e.ownerDocument,e);if(!(h.noCloneChecked||1!==e.nodeType&&11!==e.nodeType||w.isXMLDoc(e)))for(a=ye(s),r=0,i=(o=ye(e)).length;r<i;r++)Me(o[r],a[r]);if(t)if(n)for(o=o||ye(e),a=a||ye(s),r=0,i=o.length;r<i;r++)Pe(o[r],a[r]);else Pe(e,s);return(a=ye(s,"script")).length>0&&ve(a,!u&&ye(e,"script")),s},cleanData:function(e){for(var t,n,r,i=w.event.special,o=0;void 0!==(n=e[o]);o++)if(Y(n)){if(t=n[J.expando]){if(t.events)for(r in t.events)i[r]?w.event.remove(n,r):w.removeEvent(n,r,t.handle);n[J.expando]=void 0}n[K.expando]&&(n[K.expando]=void 0)}}}),w.fn.extend({detach:function(e){return Ie(this,e,!0)},remove:function(e){return Ie(this,e)},text:function(e){return z(this,function(e){return void 0===e?w.text(this):this.empty().each(function(){1!==this.nodeType&&11!==this.nodeType&&9!==this.nodeType||(this.textContent=e)})},null,e,arguments.length)},append:function(){return Re(this,arguments,function(e){1!==this.nodeType&&11!==this.nodeType&&9!==this.nodeType||Le(this,e).appendChild(e)})},prepend:function(){return Re(this,arguments,function(e){if(1===this.nodeType||11===this.nodeType||9===this.nodeType){var t=Le(this,e);t.insertBefore(e,t.firstChild)}})},before:function(){return Re(this,arguments,function(e){this.parentNode&&this.parentNode.insertBefore(e,this)})},after:function(){return Re(this,arguments,function(e){this.parentNode&&this.parentNode.insertBefore(e,this.nextSibling)})},empty:function(){for(var e,t=0;null!=(e=this[t]);t++)1===e.nodeType&&(w.cleanData(ye(e,!1)),e.textContent="");return this},clone:function(e,t){return e=null!=e&&e,t=null==t?e:t,this.map(function(){return w.clone(this,e,t)})},html:function(e){return z(this,function(e){var t=this[0]||{},n=0,r=this.length;if(void 0===e&&1===t.nodeType)return t.innerHTML;if("string"==typeof e&&!Ae.test(e)&&!ge[(de.exec(e)||["",""])[1].toLowerCase()]){e=w.htmlPrefilter(e);try{for(;n<r;n++)1===(t=this[n]||{}).nodeType&&(w.cleanData(ye(t,!1)),t.innerHTML=e);t=0}catch(e){}}t&&this.empty().append(e)},null,e,arguments.length)},replaceWith:function(){var e=[];return Re(this,arguments,function(t){var n=this.parentNode;w.inArray(this,e)<0&&(w.cleanData(ye(this)),n&&n.replaceChild(t,this))},e)}}),w.each({appendTo:"append",prependTo:"prepend",insertBefore:"before",insertAfter:"after",replaceAll:"replaceWith"},function(e,t){w.fn[e]=function(e){for(var n,r=[],i=w(e),o=i.length-1,a=0;a<=o;a++)n=a===o?this:this.clone(!0),w(i[a])[t](n),s.apply(r,n.get());return this.pushStack(r)}});var We=new RegExp("^("+re+")(?!px)[a-z%]+$","i"),$e=function(t){var n=t.ownerDocument.defaultView;return n&&n.opener||(n=e),n.getComputedStyle(t)},Be=new RegExp(oe.join("|"),"i");!function(){function t(){if(c){l.style.cssText="position:absolute;left:-11111px;width:60px;margin-top:1px;padding:0;border:0",c.style.cssText="position:relative;display:block;box-sizing:border-box;overflow:scroll;margin:auto;border:1px;padding:1px;width:60%;top:1%",be.appendChild(l).appendChild(c);var t=e.getComputedStyle(c);i="1%"!==t.top,u=12===n(t.marginLeft),c.style.right="60%",s=36===n(t.right),o=36===n(t.width),c.style.position="absolute",a=36===c.offsetWidth||"absolute",be.removeChild(l),c=null}}function n(e){return Math.round(parseFloat(e))}var i,o,a,s,u,l=r.createElement("div"),c=r.createElement("div");c.style&&(c.style.backgroundClip="content-box",c.cloneNode(!0).style.backgroundClip="",h.clearCloneStyle="content-box"===c.style.backgroundClip,w.extend(h,{boxSizingReliable:function(){return t(),o},pixelBoxStyles:function(){return t(),s},pixelPosition:function(){return t(),i},reliableMarginLeft:function(){return t(),u},scrollboxSize:function(){return t(),a}}))}();function Fe(e,t,n){var r,i,o,a,s=e.style;return(n=n||$e(e))&&(""!==(a=n.getPropertyValue(t)||n[t])||w.contains(e.ownerDocument,e)||(a=w.style(e,t)),!h.pixelBoxStyles()&&We.test(a)&&Be.test(t)&&(r=s.width,i=s.minWidth,o=s.maxWidth,s.minWidth=s.maxWidth=s.width=a,a=n.width,s.width=r,s.minWidth=i,s.maxWidth=o)),void 0!==a?a+"":a}function _e(e,t){return{get:function(){if(!e())return(this.get=t).apply(this,arguments);delete this.get}}}var ze=/^(none|table(?!-c[ea]).+)/,Xe=/^--/,Ue={position:"absolute",visibility:"hidden",display:"block"},Ve={letterSpacing:"0",fontWeight:"400"},Ge=["Webkit","Moz","ms"],Ye=r.createElement("div").style;function Qe(e){if(e in Ye)return e;var t=e[0].toUpperCase()+e.slice(1),n=Ge.length;while(n--)if((e=Ge[n]+t)in Ye)return e}function Je(e){var t=w.cssProps[e];return t||(t=w.cssProps[e]=Qe(e)||e),t}function Ke(e,t,n){var r=ie.exec(t);return r?Math.max(0,r[2]-(n||0))+(r[3]||"px"):t}function Ze(e,t,n,r,i,o){var a="width"===t?1:0,s=0,u=0;if(n===(r?"border":"content"))return 0;for(;a<4;a+=2)"margin"===n&&(u+=w.css(e,n+oe[a],!0,i)),r?("content"===n&&(u-=w.css(e,"padding"+oe[a],!0,i)),"margin"!==n&&(u-=w.css(e,"border"+oe[a]+"Width",!0,i))):(u+=w.css(e,"padding"+oe[a],!0,i),"padding"!==n?u+=w.css(e,"border"+oe[a]+"Width",!0,i):s+=w.css(e,"border"+oe[a]+"Width",!0,i));return!r&&o>=0&&(u+=Math.max(0,Math.ceil(e["offset"+t[0].toUpperCase()+t.slice(1)]-o-u-s-.5))),u}function et(e,t,n){var r=$e(e),i=Fe(e,t,r),o="border-box"===w.css(e,"boxSizing",!1,r),a=o;if(We.test(i)){if(!n)return i;i="auto"}return a=a&&(h.boxSizingReliable()||i===e.style[t]),("auto"===i||!parseFloat(i)&&"inline"===w.css(e,"display",!1,r))&&(i=e["offset"+t[0].toUpperCase()+t.slice(1)],a=!0),(i=parseFloat(i)||0)+Ze(e,t,n||(o?"border":"content"),a,r,i)+"px"}w.extend({cssHooks:{opacity:{get:function(e,t){if(t){var n=Fe(e,"opacity");return""===n?"1":n}}}},cssNumber:{animationIterationCount:!0,columnCount:!0,fillOpacity:!0,flexGrow:!0,flexShrink:!0,fontWeight:!0,lineHeight:!0,opacity:!0,order:!0,orphans:!0,widows:!0,zIndex:!0,zoom:!0},cssProps:{},style:function(e,t,n,r){if(e&&3!==e.nodeType&&8!==e.nodeType&&e.style){var i,o,a,s=G(t),u=Xe.test(t),l=e.style;if(u||(t=Je(s)),a=w.cssHooks[t]||w.cssHooks[s],void 0===n)return a&&"get"in a&&void 0!==(i=a.get(e,!1,r))?i:l[t];"string"==(o=typeof n)&&(i=ie.exec(n))&&i[1]&&(n=ue(e,t,i),o="number"),null!=n&&n===n&&("number"===o&&(n+=i&&i[3]||(w.cssNumber[s]?"":"px")),h.clearCloneStyle||""!==n||0!==t.indexOf("background")||(l[t]="inherit"),a&&"set"in a&&void 0===(n=a.set(e,n,r))||(u?l.setProperty(t,n):l[t]=n))}},css:function(e,t,n,r){var i,o,a,s=G(t);return Xe.test(t)||(t=Je(s)),(a=w.cssHooks[t]||w.cssHooks[s])&&"get"in a&&(i=a.get(e,!0,n)),void 0===i&&(i=Fe(e,t,r)),"normal"===i&&t in Ve&&(i=Ve[t]),""===n||n?(o=parseFloat(i),!0===n||isFinite(o)?o||0:i):i}}),w.each(["height","width"],function(e,t){w.cssHooks[t]={get:function(e,n,r){if(n)return!ze.test(w.css(e,"display"))||e.getClientRects().length&&e.getBoundingClientRect().width?et(e,t,r):se(e,Ue,function(){return et(e,t,r)})},set:function(e,n,r){var i,o=$e(e),a="border-box"===w.css(e,"boxSizing",!1,o),s=r&&Ze(e,t,r,a,o);return a&&h.scrollboxSize()===o.position&&(s-=Math.ceil(e["offset"+t[0].toUpperCase()+t.slice(1)]-parseFloat(o[t])-Ze(e,t,"border",!1,o)-.5)),s&&(i=ie.exec(n))&&"px"!==(i[3]||"px")&&(e.style[t]=n,n=w.css(e,t)),Ke(e,n,s)}}}),w.cssHooks.marginLeft=_e(h.reliableMarginLeft,function(e,t){if(t)return(parseFloat(Fe(e,"marginLeft"))||e.getBoundingClientRect().left-se(e,{marginLeft:0},function(){return e.getBoundingClientRect().left}))+"px"}),w.each({margin:"",padding:"",border:"Width"},function(e,t){w.cssHooks[e+t]={expand:function(n){for(var r=0,i={},o="string"==typeof n?n.split(" "):[n];r<4;r++)i[e+oe[r]+t]=o[r]||o[r-2]||o[0];return i}},"margin"!==e&&(w.cssHooks[e+t].set=Ke)}),w.fn.extend({css:function(e,t){return z(this,function(e,t,n){var r,i,o={},a=0;if(Array.isArray(t)){for(r=$e(e),i=t.length;a<i;a++)o[t[a]]=w.css(e,t[a],!1,r);return o}return void 0!==n?w.style(e,t,n):w.css(e,t)},e,t,arguments.length>1)}});function tt(e,t,n,r,i){return new tt.prototype.init(e,t,n,r,i)}w.Tween=tt,tt.prototype={constructor:tt,init:function(e,t,n,r,i,o){this.elem=e,this.prop=n,this.easing=i||w.easing._default,this.options=t,this.start=this.now=this.cur(),this.end=r,this.unit=o||(w.cssNumber[n]?"":"px")},cur:function(){var e=tt.propHooks[this.prop];return e&&e.get?e.get(this):tt.propHooks._default.get(this)},run:function(e){var t,n=tt.propHooks[this.prop];return this.options.duration?this.pos=t=w.easing[this.easing](e,this.options.duration*e,0,1,this.options.duration):this.pos=t=e,this.now=(this.end-this.start)*t+this.start,this.options.step&&this.options.step.call(this.elem,this.now,this),n&&n.set?n.set(this):tt.propHooks._default.set(this),this}},tt.prototype.init.prototype=tt.prototype,tt.propHooks={_default:{get:function(e){var t;return 1!==e.elem.nodeType||null!=e.elem[e.prop]&&null==e.elem.style[e.prop]?e.elem[e.prop]:(t=w.css(e.elem,e.prop,""))&&"auto"!==t?t:0},set:function(e){w.fx.step[e.prop]?w.fx.step[e.prop](e):1!==e.elem.nodeType||null==e.elem.style[w.cssProps[e.prop]]&&!w.cssHooks[e.prop]?e.elem[e.prop]=e.now:w.style(e.elem,e.prop,e.now+e.unit)}}},tt.propHooks.scrollTop=tt.propHooks.scrollLeft={set:function(e){e.elem.nodeType&&e.elem.parentNode&&(e.elem[e.prop]=e.now)}},w.easing={linear:function(e){return e},swing:function(e){return.5-Math.cos(e*Math.PI)/2},_default:"swing"},w.fx=tt.prototype.init,w.fx.step={};var nt,rt,it=/^(?:toggle|show|hide)$/,ot=/queueHooks$/;function at(){rt&&(!1===r.hidden&&e.requestAnimationFrame?e.requestAnimationFrame(at):e.setTimeout(at,w.fx.interval),w.fx.tick())}function st(){return e.setTimeout(function(){nt=void 0}),nt=Date.now()}function ut(e,t){var n,r=0,i={height:e};for(t=t?1:0;r<4;r+=2-t)i["margin"+(n=oe[r])]=i["padding"+n]=e;return t&&(i.opacity=i.width=e),i}function lt(e,t,n){for(var r,i=(pt.tweeners[t]||[]).concat(pt.tweeners["*"]),o=0,a=i.length;o<a;o++)if(r=i[o].call(n,t,e))return r}function ct(e,t,n){var r,i,o,a,s,u,l,c,f="width"in t||"height"in t,p=this,d={},h=e.style,g=e.nodeType&&ae(e),y=J.get(e,"fxshow");n.queue||(null==(a=w._queueHooks(e,"fx")).unqueued&&(a.unqueued=0,s=a.empty.fire,a.empty.fire=function(){a.unqueued||s()}),a.unqueued++,p.always(function(){p.always(function(){a.unqueued--,w.queue(e,"fx").length||a.empty.fire()})}));for(r in t)if(i=t[r],it.test(i)){if(delete t[r],o=o||"toggle"===i,i===(g?"hide":"show")){if("show"!==i||!y||void 0===y[r])continue;g=!0}d[r]=y&&y[r]||w.style(e,r)}if((u=!w.isEmptyObject(t))||!w.isEmptyObject(d)){f&&1===e.nodeType&&(n.overflow=[h.overflow,h.overflowX,h.overflowY],null==(l=y&&y.display)&&(l=J.get(e,"display")),"none"===(c=w.css(e,"display"))&&(l?c=l:(fe([e],!0),l=e.style.display||l,c=w.css(e,"display"),fe([e]))),("inline"===c||"inline-block"===c&&null!=l)&&"none"===w.css(e,"float")&&(u||(p.done(function(){h.display=l}),null==l&&(c=h.display,l="none"===c?"":c)),h.display="inline-block")),n.overflow&&(h.overflow="hidden",p.always(function(){h.overflow=n.overflow[0],h.overflowX=n.overflow[1],h.overflowY=n.overflow[2]})),u=!1;for(r in d)u||(y?"hidden"in y&&(g=y.hidden):y=J.access(e,"fxshow",{display:l}),o&&(y.hidden=!g),g&&fe([e],!0),p.done(function(){g||fe([e]),J.remove(e,"fxshow");for(r in d)w.style(e,r,d[r])})),u=lt(g?y[r]:0,r,p),r in y||(y[r]=u.start,g&&(u.end=u.start,u.start=0))}}function ft(e,t){var n,r,i,o,a;for(n in e)if(r=G(n),i=t[r],o=e[n],Array.isArray(o)&&(i=o[1],o=e[n]=o[0]),n!==r&&(e[r]=o,delete e[n]),(a=w.cssHooks[r])&&"expand"in a){o=a.expand(o),delete e[r];for(n in o)n in e||(e[n]=o[n],t[n]=i)}else t[r]=i}function pt(e,t,n){var r,i,o=0,a=pt.prefilters.length,s=w.Deferred().always(function(){delete u.elem}),u=function(){if(i)return!1;for(var t=nt||st(),n=Math.max(0,l.startTime+l.duration-t),r=1-(n/l.duration||0),o=0,a=l.tweens.length;o<a;o++)l.tweens[o].run(r);return s.notifyWith(e,[l,r,n]),r<1&&a?n:(a||s.notifyWith(e,[l,1,0]),s.resolveWith(e,[l]),!1)},l=s.promise({elem:e,props:w.extend({},t),opts:w.extend(!0,{specialEasing:{},easing:w.easing._default},n),originalProperties:t,originalOptions:n,startTime:nt||st(),duration:n.duration,tweens:[],createTween:function(t,n){var r=w.Tween(e,l.opts,t,n,l.opts.specialEasing[t]||l.opts.easing);return l.tweens.push(r),r},stop:function(t){var n=0,r=t?l.tweens.length:0;if(i)return this;for(i=!0;n<r;n++)l.tweens[n].run(1);return t?(s.notifyWith(e,[l,1,0]),s.resolveWith(e,[l,t])):s.rejectWith(e,[l,t]),this}}),c=l.props;for(ft(c,l.opts.specialEasing);o<a;o++)if(r=pt.prefilters[o].call(l,e,c,l.opts))return g(r.stop)&&(w._queueHooks(l.elem,l.opts.queue).stop=r.stop.bind(r)),r;return w.map(c,lt,l),g(l.opts.start)&&l.opts.start.call(e,l),l.progress(l.opts.progress).done(l.opts.done,l.opts.complete).fail(l.opts.fail).always(l.opts.always),w.fx.timer(w.extend(u,{elem:e,anim:l,queue:l.opts.queue})),l}w.Animation=w.extend(pt,{tweeners:{"*":[function(e,t){var n=this.createTween(e,t);return ue(n.elem,e,ie.exec(t),n),n}]},tweener:function(e,t){g(e)?(t=e,e=["*"]):e=e.match(M);for(var n,r=0,i=e.length;r<i;r++)n=e[r],pt.tweeners[n]=pt.tweeners[n]||[],pt.tweeners[n].unshift(t)},prefilters:[ct],prefilter:function(e,t){t?pt.prefilters.unshift(e):pt.prefilters.push(e)}}),w.speed=function(e,t,n){var r=e&&"object"==typeof e?w.extend({},e):{complete:n||!n&&t||g(e)&&e,duration:e,easing:n&&t||t&&!g(t)&&t};return w.fx.off?r.duration=0:"number"!=typeof r.duration&&(r.duration in w.fx.speeds?r.duration=w.fx.speeds[r.duration]:r.duration=w.fx.speeds._default),null!=r.queue&&!0!==r.queue||(r.queue="fx"),r.old=r.complete,r.complete=function(){g(r.old)&&r.old.call(this),r.queue&&w.dequeue(this,r.queue)},r},w.fn.extend({fadeTo:function(e,t,n,r){return this.filter(ae).css("opacity",0).show().end().animate({opacity:t},e,n,r)},animate:function(e,t,n,r){var i=w.isEmptyObject(e),o=w.speed(t,n,r),a=function(){var t=pt(this,w.extend({},e),o);(i||J.get(this,"finish"))&&t.stop(!0)};return a.finish=a,i||!1===o.queue?this.each(a):this.queue(o.queue,a)},stop:function(e,t,n){var r=function(e){var t=e.stop;delete e.stop,t(n)};return"string"!=typeof e&&(n=t,t=e,e=void 0),t&&!1!==e&&this.queue(e||"fx",[]),this.each(function(){var t=!0,i=null!=e&&e+"queueHooks",o=w.timers,a=J.get(this);if(i)a[i]&&a[i].stop&&r(a[i]);else for(i in a)a[i]&&a[i].stop&&ot.test(i)&&r(a[i]);for(i=o.length;i--;)o[i].elem!==this||null!=e&&o[i].queue!==e||(o[i].anim.stop(n),t=!1,o.splice(i,1));!t&&n||w.dequeue(this,e)})},finish:function(e){return!1!==e&&(e=e||"fx"),this.each(function(){var t,n=J.get(this),r=n[e+"queue"],i=n[e+"queueHooks"],o=w.timers,a=r?r.length:0;for(n.finish=!0,w.queue(this,e,[]),i&&i.stop&&i.stop.call(this,!0),t=o.length;t--;)o[t].elem===this&&o[t].queue===e&&(o[t].anim.stop(!0),o.splice(t,1));for(t=0;t<a;t++)r[t]&&r[t].finish&&r[t].finish.call(this);delete n.finish})}}),w.each(["toggle","show","hide"],function(e,t){var n=w.fn[t];w.fn[t]=function(e,r,i){return null==e||"boolean"==typeof e?n.apply(this,arguments):this.animate(ut(t,!0),e,r,i)}}),w.each({slideDown:ut("show"),slideUp:ut("hide"),slideToggle:ut("toggle"),fadeIn:{opacity:"show"},fadeOut:{opacity:"hide"},fadeToggle:{opacity:"toggle"}},function(e,t){w.fn[e]=function(e,n,r){return this.animate(t,e,n,r)}}),w.timers=[],w.fx.tick=function(){var e,t=0,n=w.timers;for(nt=Date.now();t<n.length;t++)(e=n[t])()||n[t]!==e||n.splice(t--,1);n.length||w.fx.stop(),nt=void 0},w.fx.timer=function(e){w.timers.push(e),w.fx.start()},w.fx.interval=13,w.fx.start=function(){rt||(rt=!0,at())},w.fx.stop=function(){rt=null},w.fx.speeds={slow:600,fast:200,_default:400},w.fn.delay=function(t,n){return t=w.fx?w.fx.speeds[t]||t:t,n=n||"fx",this.queue(n,function(n,r){var i=e.setTimeout(n,t);r.stop=function(){e.clearTimeout(i)}})},function(){var e=r.createElement("input"),t=r.createElement("select").appendChild(r.createElement("option"));e.type="checkbox",h.checkOn=""!==e.value,h.optSelected=t.selected,(e=r.createElement("input")).value="t",e.type="radio",h.radioValue="t"===e.value}();var dt,ht=w.expr.attrHandle;w.fn.extend({attr:function(e,t){return z(this,w.attr,e,t,arguments.length>1)},removeAttr:function(e){return this.each(function(){w.removeAttr(this,e)})}}),w.extend({attr:function(e,t,n){var r,i,o=e.nodeType;if(3!==o&&8!==o&&2!==o)return"undefined"==typeof e.getAttribute?w.prop(e,t,n):(1===o&&w.isXMLDoc(e)||(i=w.attrHooks[t.toLowerCase()]||(w.expr.match.bool.test(t)?dt:void 0)),void 0!==n?null===n?void w.removeAttr(e,t):i&&"set"in i&&void 0!==(r=i.set(e,n,t))?r:(e.setAttribute(t,n+""),n):i&&"get"in i&&null!==(r=i.get(e,t))?r:null==(r=w.find.attr(e,t))?void 0:r)},attrHooks:{type:{set:function(e,t){if(!h.radioValue&&"radio"===t&&N(e,"input")){var n=e.value;return e.setAttribute("type",t),n&&(e.value=n),t}}}},removeAttr:function(e,t){var n,r=0,i=t&&t.match(M);if(i&&1===e.nodeType)while(n=i[r++])e.removeAttribute(n)}}),dt={set:function(e,t,n){return!1===t?w.removeAttr(e,n):e.setAttribute(n,n),n}},w.each(w.expr.match.bool.source.match(/\w+/g),function(e,t){var n=ht[t]||w.find.attr;ht[t]=function(e,t,r){var i,o,a=t.toLowerCase();return r||(o=ht[a],ht[a]=i,i=null!=n(e,t,r)?a:null,ht[a]=o),i}});var gt=/^(?:input|select|textarea|button)$/i,yt=/^(?:a|area)$/i;w.fn.extend({prop:function(e,t){return z(this,w.prop,e,t,arguments.length>1)},removeProp:function(e){return this.each(function(){delete this[w.propFix[e]||e]})}}),w.extend({prop:function(e,t,n){var r,i,o=e.nodeType;if(3!==o&&8!==o&&2!==o)return 1===o&&w.isXMLDoc(e)||(t=w.propFix[t]||t,i=w.propHooks[t]),void 0!==n?i&&"set"in i&&void 0!==(r=i.set(e,n,t))?r:e[t]=n:i&&"get"in i&&null!==(r=i.get(e,t))?r:e[t]},propHooks:{tabIndex:{get:function(e){var t=w.find.attr(e,"tabindex");return t?parseInt(t,10):gt.test(e.nodeName)||yt.test(e.nodeName)&&e.href?0:-1}}},propFix:{"for":"htmlFor","class":"className"}}),h.optSelected||(w.propHooks.selected={get:function(e){var t=e.parentNode;return t&&t.parentNode&&t.parentNode.selectedIndex,null},set:function(e){var t=e.parentNode;t&&(t.selectedIndex,t.parentNode&&t.parentNode.selectedIndex)}}),w.each(["tabIndex","readOnly","maxLength","cellSpacing","cellPadding","rowSpan","colSpan","useMap","frameBorder","contentEditable"],function(){w.propFix[this.toLowerCase()]=this});function vt(e){return(e.match(M)||[]).join(" ")}function mt(e){return e.getAttribute&&e.getAttribute("class")||""}function xt(e){return Array.isArray(e)?e:"string"==typeof e?e.match(M)||[]:[]}w.fn.extend({addClass:function(e){var t,n,r,i,o,a,s,u=0;if(g(e))return this.each(function(t){w(this).addClass(e.call(this,t,mt(this)))});if((t=xt(e)).length)while(n=this[u++])if(i=mt(n),r=1===n.nodeType&&" "+vt(i)+" "){a=0;while(o=t[a++])r.indexOf(" "+o+" ")<0&&(r+=o+" ");i!==(s=vt(r))&&n.setAttribute("class",s)}return this},removeClass:function(e){var t,n,r,i,o,a,s,u=0;if(g(e))return this.each(function(t){w(this).removeClass(e.call(this,t,mt(this)))});if(!arguments.length)return this.attr("class","");if((t=xt(e)).length)while(n=this[u++])if(i=mt(n),r=1===n.nodeType&&" "+vt(i)+" "){a=0;while(o=t[a++])while(r.indexOf(" "+o+" ")>-1)r=r.replace(" "+o+" "," ");i!==(s=vt(r))&&n.setAttribute("class",s)}return this},toggleClass:function(e,t){var n=typeof e,r="string"===n||Array.isArray(e);return"boolean"==typeof t&&r?t?this.addClass(e):this.removeClass(e):g(e)?this.each(function(n){w(this).toggleClass(e.call(this,n,mt(this),t),t)}):this.each(function(){var t,i,o,a;if(r){i=0,o=w(this),a=xt(e);while(t=a[i++])o.hasClass(t)?o.removeClass(t):o.addClass(t)}else void 0!==e&&"boolean"!==n||((t=mt(this))&&J.set(this,"__className__",t),this.setAttribute&&this.setAttribute("class",t||!1===e?"":J.get(this,"__className__")||""))})},hasClass:function(e){var t,n,r=0;t=" "+e+" ";while(n=this[r++])if(1===n.nodeType&&(" "+vt(mt(n))+" ").indexOf(t)>-1)return!0;return!1}});var bt=/\r/g;w.fn.extend({val:function(e){var t,n,r,i=this[0];{if(arguments.length)return r=g(e),this.each(function(n){var i;1===this.nodeType&&(null==(i=r?e.call(this,n,w(this).val()):e)?i="":"number"==typeof i?i+="":Array.isArray(i)&&(i=w.map(i,function(e){return null==e?"":e+""})),(t=w.valHooks[this.type]||w.valHooks[this.nodeName.toLowerCase()])&&"set"in t&&void 0!==t.set(this,i,"value")||(this.value=i))});if(i)return(t=w.valHooks[i.type]||w.valHooks[i.nodeName.toLowerCase()])&&"get"in t&&void 0!==(n=t.get(i,"value"))?n:"string"==typeof(n=i.value)?n.replace(bt,""):null==n?"":n}}}),w.extend({valHooks:{option:{get:function(e){var t=w.find.attr(e,"value");return null!=t?t:vt(w.text(e))}},select:{get:function(e){var t,n,r,i=e.options,o=e.selectedIndex,a="select-one"===e.type,s=a?null:[],u=a?o+1:i.length;for(r=o<0?u:a?o:0;r<u;r++)if(((n=i[r]).selected||r===o)&&!n.disabled&&(!n.parentNode.disabled||!N(n.parentNode,"optgroup"))){if(t=w(n).val(),a)return t;s.push(t)}return s},set:function(e,t){var n,r,i=e.options,o=w.makeArray(t),a=i.length;while(a--)((r=i[a]).selected=w.inArray(w.valHooks.option.get(r),o)>-1)&&(n=!0);return n||(e.selectedIndex=-1),o}}}}),w.each(["radio","checkbox"],function(){w.valHooks[this]={set:function(e,t){if(Array.isArray(t))return e.checked=w.inArray(w(e).val(),t)>-1}},h.checkOn||(w.valHooks[this].get=function(e){return null===e.getAttribute("value")?"on":e.value})}),h.focusin="onfocusin"in e;var wt=/^(?:focusinfocus|focusoutblur)$/,Tt=function(e){e.stopPropagation()};w.extend(w.event,{trigger:function(t,n,i,o){var a,s,u,l,c,p,d,h,v=[i||r],m=f.call(t,"type")?t.type:t,x=f.call(t,"namespace")?t.namespace.split("."):[];if(s=h=u=i=i||r,3!==i.nodeType&&8!==i.nodeType&&!wt.test(m+w.event.triggered)&&(m.indexOf(".")>-1&&(m=(x=m.split(".")).shift(),x.sort()),c=m.indexOf(":")<0&&"on"+m,t=t[w.expando]?t:new w.Event(m,"object"==typeof t&&t),t.isTrigger=o?2:3,t.namespace=x.join("."),t.rnamespace=t.namespace?new RegExp("(^|\\.)"+x.join("\\.(?:.*\\.|)")+"(\\.|$)"):null,t.result=void 0,t.target||(t.target=i),n=null==n?[t]:w.makeArray(n,[t]),d=w.event.special[m]||{},o||!d.trigger||!1!==d.trigger.apply(i,n))){if(!o&&!d.noBubble&&!y(i)){for(l=d.delegateType||m,wt.test(l+m)||(s=s.parentNode);s;s=s.parentNode)v.push(s),u=s;u===(i.ownerDocument||r)&&v.push(u.defaultView||u.parentWindow||e)}a=0;while((s=v[a++])&&!t.isPropagationStopped())h=s,t.type=a>1?l:d.bindType||m,(p=(J.get(s,"events")||{})[t.type]&&J.get(s,"handle"))&&p.apply(s,n),(p=c&&s[c])&&p.apply&&Y(s)&&(t.result=p.apply(s,n),!1===t.result&&t.preventDefault());return t.type=m,o||t.isDefaultPrevented()||d._default&&!1!==d._default.apply(v.pop(),n)||!Y(i)||c&&g(i[m])&&!y(i)&&((u=i[c])&&(i[c]=null),w.event.triggered=m,t.isPropagationStopped()&&h.addEventListener(m,Tt),i[m](),t.isPropagationStopped()&&h.removeEventListener(m,Tt),w.event.triggered=void 0,u&&(i[c]=u)),t.result}},simulate:function(e,t,n){var r=w.extend(new w.Event,n,{type:e,isSimulated:!0});w.event.trigger(r,null,t)}}),w.fn.extend({trigger:function(e,t){return this.each(function(){w.event.trigger(e,t,this)})},triggerHandler:function(e,t){var n=this[0];if(n)return w.event.trigger(e,t,n,!0)}}),h.focusin||w.each({focus:"focusin",blur:"focusout"},function(e,t){var n=function(e){w.event.simulate(t,e.target,w.event.fix(e))};w.event.special[t]={setup:function(){var r=this.ownerDocument||this,i=J.access(r,t);i||r.addEventListener(e,n,!0),J.access(r,t,(i||0)+1)},teardown:function(){var r=this.ownerDocument||this,i=J.access(r,t)-1;i?J.access(r,t,i):(r.removeEventListener(e,n,!0),J.remove(r,t))}}});var Ct=e.location,Et=Date.now(),kt=/\?/;w.parseXML=function(t){var n;if(!t||"string"!=typeof t)return null;try{n=(new e.DOMParser).parseFromString(t,"text/xml")}catch(e){n=void 0}return n&&!n.getElementsByTagName("parsererror").length||w.error("Invalid XML: "+t),n};var St=/\[\]$/,Dt=/\r?\n/g,Nt=/^(?:submit|button|image|reset|file)$/i,At=/^(?:input|select|textarea|keygen)/i;function jt(e,t,n,r){var i;if(Array.isArray(t))w.each(t,function(t,i){n||St.test(e)?r(e,i):jt(e+"["+("object"==typeof i&&null!=i?t:"")+"]",i,n,r)});else if(n||"object"!==x(t))r(e,t);else for(i in t)jt(e+"["+i+"]",t[i],n,r)}w.param=function(e,t){var n,r=[],i=function(e,t){var n=g(t)?t():t;r[r.length]=encodeURIComponent(e)+"="+encodeURIComponent(null==n?"":n)};if(Array.isArray(e)||e.jquery&&!w.isPlainObject(e))w.each(e,function(){i(this.name,this.value)});else for(n in e)jt(n,e[n],t,i);return r.join("&")},w.fn.extend({serialize:function(){return w.param(this.serializeArray())},serializeArray:function(){return this.map(function(){var e=w.prop(this,"elements");return e?w.makeArray(e):this}).filter(function(){var e=this.type;return this.name&&!w(this).is(":disabled")&&At.test(this.nodeName)&&!Nt.test(e)&&(this.checked||!pe.test(e))}).map(function(e,t){var n=w(this).val();return null==n?null:Array.isArray(n)?w.map(n,function(e){return{name:t.name,value:e.replace(Dt,"\r\n")}}):{name:t.name,value:n.replace(Dt,"\r\n")}}).get()}});var qt=/%20/g,Lt=/#.*$/,Ht=/([?&])_=[^&]*/,Ot=/^(.*?):[ \t]*([^\r\n]*)$/gm,Pt=/^(?:about|app|app-storage|.+-extension|file|res|widget):$/,Mt=/^(?:GET|HEAD)$/,Rt=/^\/\//,It={},Wt={},$t="*/".concat("*"),Bt=r.createElement("a");Bt.href=Ct.href;function Ft(e){return function(t,n){"string"!=typeof t&&(n=t,t="*");var r,i=0,o=t.toLowerCase().match(M)||[];if(g(n))while(r=o[i++])"+"===r[0]?(r=r.slice(1)||"*",(e[r]=e[r]||[]).unshift(n)):(e[r]=e[r]||[]).push(n)}}function _t(e,t,n,r){var i={},o=e===Wt;function a(s){var u;return i[s]=!0,w.each(e[s]||[],function(e,s){var l=s(t,n,r);return"string"!=typeof l||o||i[l]?o?!(u=l):void 0:(t.dataTypes.unshift(l),a(l),!1)}),u}return a(t.dataTypes[0])||!i["*"]&&a("*")}function zt(e,t){var n,r,i=w.ajaxSettings.flatOptions||{};for(n in t)void 0!==t[n]&&((i[n]?e:r||(r={}))[n]=t[n]);return r&&w.extend(!0,e,r),e}function Xt(e,t,n){var r,i,o,a,s=e.contents,u=e.dataTypes;while("*"===u[0])u.shift(),void 0===r&&(r=e.mimeType||t.getResponseHeader("Content-Type"));if(r)for(i in s)if(s[i]&&s[i].test(r)){u.unshift(i);break}if(u[0]in n)o=u[0];else{for(i in n){if(!u[0]||e.converters[i+" "+u[0]]){o=i;break}a||(a=i)}o=o||a}if(o)return o!==u[0]&&u.unshift(o),n[o]}function Ut(e,t,n,r){var i,o,a,s,u,l={},c=e.dataTypes.slice();if(c[1])for(a in e.converters)l[a.toLowerCase()]=e.converters[a];o=c.shift();while(o)if(e.responseFields[o]&&(n[e.responseFields[o]]=t),!u&&r&&e.dataFilter&&(t=e.dataFilter(t,e.dataType)),u=o,o=c.shift())if("*"===o)o=u;else if("*"!==u&&u!==o){if(!(a=l[u+" "+o]||l["* "+o]))for(i in l)if((s=i.split(" "))[1]===o&&(a=l[u+" "+s[0]]||l["* "+s[0]])){!0===a?a=l[i]:!0!==l[i]&&(o=s[0],c.unshift(s[1]));break}if(!0!==a)if(a&&e["throws"])t=a(t);else try{t=a(t)}catch(e){return{state:"parsererror",error:a?e:"No conversion from "+u+" to "+o}}}return{state:"success",data:t}}w.extend({active:0,lastModified:{},etag:{},ajaxSettings:{url:Ct.href,type:"GET",isLocal:Pt.test(Ct.protocol),global:!0,processData:!0,async:!0,contentType:"application/x-www-form-urlencoded; charset=UTF-8",accepts:{"*":$t,text:"text/plain",html:"text/html",xml:"application/xml, text/xml",json:"application/json, text/javascript"},contents:{xml:/\bxml\b/,html:/\bhtml/,json:/\bjson\b/},responseFields:{xml:"responseXML",text:"responseText",json:"responseJSON"},converters:{"* text":String,"text html":!0,"text json":JSON.parse,"text xml":w.parseXML},flatOptions:{url:!0,context:!0}},ajaxSetup:function(e,t){return t?zt(zt(e,w.ajaxSettings),t):zt(w.ajaxSettings,e)},ajaxPrefilter:Ft(It),ajaxTransport:Ft(Wt),ajax:function(t,n){"object"==typeof t&&(n=t,t=void 0),n=n||{};var i,o,a,s,u,l,c,f,p,d,h=w.ajaxSetup({},n),g=h.context||h,y=h.context&&(g.nodeType||g.jquery)?w(g):w.event,v=w.Deferred(),m=w.Callbacks("once memory"),x=h.statusCode||{},b={},T={},C="canceled",E={readyState:0,getResponseHeader:function(e){var t;if(c){if(!s){s={};while(t=Ot.exec(a))s[t[1].toLowerCase()]=t[2]}t=s[e.toLowerCase()]}return null==t?null:t},getAllResponseHeaders:function(){return c?a:null},setRequestHeader:function(e,t){return null==c&&(e=T[e.toLowerCase()]=T[e.toLowerCase()]||e,b[e]=t),this},overrideMimeType:function(e){return null==c&&(h.mimeType=e),this},statusCode:function(e){var t;if(e)if(c)E.always(e[E.status]);else for(t in e)x[t]=[x[t],e[t]];return this},abort:function(e){var t=e||C;return i&&i.abort(t),k(0,t),this}};if(v.promise(E),h.url=((t||h.url||Ct.href)+"").replace(Rt,Ct.protocol+"//"),h.type=n.method||n.type||h.method||h.type,h.dataTypes=(h.dataType||"*").toLowerCase().match(M)||[""],null==h.crossDomain){l=r.createElement("a");try{l.href=h.url,l.href=l.href,h.crossDomain=Bt.protocol+"//"+Bt.host!=l.protocol+"//"+l.host}catch(e){h.crossDomain=!0}}if(h.data&&h.processData&&"string"!=typeof h.data&&(h.data=w.param(h.data,h.traditional)),_t(It,h,n,E),c)return E;(f=w.event&&h.global)&&0==w.active++&&w.event.trigger("ajaxStart"),h.type=h.type.toUpperCase(),h.hasContent=!Mt.test(h.type),o=h.url.replace(Lt,""),h.hasContent?h.data&&h.processData&&0===(h.contentType||"").indexOf("application/x-www-form-urlencoded")&&(h.data=h.data.replace(qt,"+")):(d=h.url.slice(o.length),h.data&&(h.processData||"string"==typeof h.data)&&(o+=(kt.test(o)?"&":"?")+h.data,delete h.data),!1===h.cache&&(o=o.replace(Ht,"$1"),d=(kt.test(o)?"&":"?")+"_="+Et+++d),h.url=o+d),h.ifModified&&(w.lastModified[o]&&E.setRequestHeader("If-Modified-Since",w.lastModified[o]),w.etag[o]&&E.setRequestHeader("If-None-Match",w.etag[o])),(h.data&&h.hasContent&&!1!==h.contentType||n.contentType)&&E.setRequestHeader("Content-Type",h.contentType),E.setRequestHeader("Accept",h.dataTypes[0]&&h.accepts[h.dataTypes[0]]?h.accepts[h.dataTypes[0]]+("*"!==h.dataTypes[0]?", "+$t+"; q=0.01":""):h.accepts["*"]);for(p in h.headers)E.setRequestHeader(p,h.headers[p]);if(h.beforeSend&&(!1===h.beforeSend.call(g,E,h)||c))return E.abort();if(C="abort",m.add(h.complete),E.done(h.success),E.fail(h.error),i=_t(Wt,h,n,E)){if(E.readyState=1,f&&y.trigger("ajaxSend",[E,h]),c)return E;h.async&&h.timeout>0&&(u=e.setTimeout(function(){E.abort("timeout")},h.timeout));try{c=!1,i.send(b,k)}catch(e){if(c)throw e;k(-1,e)}}else k(-1,"No Transport");function k(t,n,r,s){var l,p,d,b,T,C=n;c||(c=!0,u&&e.clearTimeout(u),i=void 0,a=s||"",E.readyState=t>0?4:0,l=t>=200&&t<300||304===t,r&&(b=Xt(h,E,r)),b=Ut(h,b,E,l),l?(h.ifModified&&((T=E.getResponseHeader("Last-Modified"))&&(w.lastModified[o]=T),(T=E.getResponseHeader("etag"))&&(w.etag[o]=T)),204===t||"HEAD"===h.type?C="nocontent":304===t?C="notmodified":(C=b.state,p=b.data,l=!(d=b.error))):(d=C,!t&&C||(C="error",t<0&&(t=0))),E.status=t,E.statusText=(n||C)+"",l?v.resolveWith(g,[p,C,E]):v.rejectWith(g,[E,C,d]),E.statusCode(x),x=void 0,f&&y.trigger(l?"ajaxSuccess":"ajaxError",[E,h,l?p:d]),m.fireWith(g,[E,C]),f&&(y.trigger("ajaxComplete",[E,h]),--w.active||w.event.trigger("ajaxStop")))}return E},getJSON:function(e,t,n){return w.get(e,t,n,"json")},getScript:function(e,t){return w.get(e,void 0,t,"script")}}),w.each(["get","post"],function(e,t){w[t]=function(e,n,r,i){return g(n)&&(i=i||r,r=n,n=void 0),w.ajax(w.extend({url:e,type:t,dataType:i,data:n,success:r},w.isPlainObject(e)&&e))}}),w._evalUrl=function(e){return w.ajax({url:e,type:"GET",dataType:"script",cache:!0,async:!1,global:!1,"throws":!0})},w.fn.extend({wrapAll:function(e){var t;return this[0]&&(g(e)&&(e=e.call(this[0])),t=w(e,this[0].ownerDocument).eq(0).clone(!0),this[0].parentNode&&t.insertBefore(this[0]),t.map(function(){var e=this;while(e.firstElementChild)e=e.firstElementChild;return e}).append(this)),this},wrapInner:function(e){return g(e)?this.each(function(t){w(this).wrapInner(e.call(this,t))}):this.each(function(){var t=w(this),n=t.contents();n.length?n.wrapAll(e):t.append(e)})},wrap:function(e){var t=g(e);return this.each(function(n){w(this).wrapAll(t?e.call(this,n):e)})},unwrap:function(e){return this.parent(e).not("body").each(function(){w(this).replaceWith(this.childNodes)}),this}}),w.expr.pseudos.hidden=function(e){return!w.expr.pseudos.visible(e)},w.expr.pseudos.visible=function(e){return!!(e.offsetWidth||e.offsetHeight||e.getClientRects().length)},w.ajaxSettings.xhr=function(){try{return new e.XMLHttpRequest}catch(e){}};var Vt={0:200,1223:204},Gt=w.ajaxSettings.xhr();h.cors=!!Gt&&"withCredentials"in Gt,h.ajax=Gt=!!Gt,w.ajaxTransport(function(t){var n,r;if(h.cors||Gt&&!t.crossDomain)return{send:function(i,o){var a,s=t.xhr();if(s.open(t.type,t.url,t.async,t.username,t.password),t.xhrFields)for(a in t.xhrFields)s[a]=t.xhrFields[a];t.mimeType&&s.overrideMimeType&&s.overrideMimeType(t.mimeType),t.crossDomain||i["X-Requested-With"]||(i["X-Requested-With"]="XMLHttpRequest");for(a in i)s.setRequestHeader(a,i[a]);n=function(e){return function(){n&&(n=r=s.onload=s.onerror=s.onabort=s.ontimeout=s.onreadystatechange=null,"abort"===e?s.abort():"error"===e?"number"!=typeof s.status?o(0,"error"):o(s.status,s.statusText):o(Vt[s.status]||s.status,s.statusText,"text"!==(s.responseType||"text")||"string"!=typeof s.responseText?{binary:s.response}:{text:s.responseText},s.getAllResponseHeaders()))}},s.onload=n(),r=s.onerror=s.ontimeout=n("error"),void 0!==s.onabort?s.onabort=r:s.onreadystatechange=function(){4===s.readyState&&e.setTimeout(function(){n&&r()})},n=n("abort");try{s.send(t.hasContent&&t.data||null)}catch(e){if(n)throw e}},abort:function(){n&&n()}}}),w.ajaxPrefilter(function(e){e.crossDomain&&(e.contents.script=!1)}),w.ajaxSetup({accepts:{script:"text/javascript, application/javascript, application/ecmascript, application/x-ecmascript"},contents:{script:/\b(?:java|ecma)script\b/},converters:{"text script":function(e){return w.globalEval(e),e}}}),w.ajaxPrefilter("script",function(e){void 0===e.cache&&(e.cache=!1),e.crossDomain&&(e.type="GET")}),w.ajaxTransport("script",function(e){if(e.crossDomain){var t,n;return{send:function(i,o){t=w("<script>").prop({charset:e.scriptCharset,src:e.url}).on("load error",n=function(e){t.remove(),n=null,e&&o("error"===e.type?404:200,e.type)}),r.head.appendChild(t[0])},abort:function(){n&&n()}}}});var Yt=[],Qt=/(=)\?(?=&|$)|\?\?/;w.ajaxSetup({jsonp:"callback",jsonpCallback:function(){var e=Yt.pop()||w.expando+"_"+Et++;return this[e]=!0,e}}),w.ajaxPrefilter("json jsonp",function(t,n,r){var i,o,a,s=!1!==t.jsonp&&(Qt.test(t.url)?"url":"string"==typeof t.data&&0===(t.contentType||"").indexOf("application/x-www-form-urlencoded")&&Qt.test(t.data)&&"data");if(s||"jsonp"===t.dataTypes[0])return i=t.jsonpCallback=g(t.jsonpCallback)?t.jsonpCallback():t.jsonpCallback,s?t[s]=t[s].replace(Qt,"$1"+i):!1!==t.jsonp&&(t.url+=(kt.test(t.url)?"&":"?")+t.jsonp+"="+i),t.converters["script json"]=function(){return a||w.error(i+" was not called"),a[0]},t.dataTypes[0]="json",o=e[i],e[i]=function(){a=arguments},r.always(function(){void 0===o?w(e).removeProp(i):e[i]=o,t[i]&&(t.jsonpCallback=n.jsonpCallback,Yt.push(i)),a&&g(o)&&o(a[0]),a=o=void 0}),"script"}),h.createHTMLDocument=function(){var e=r.implementation.createHTMLDocument("").body;return e.innerHTML="<form></form><form></form>",2===e.childNodes.length}(),w.parseHTML=function(e,t,n){if("string"!=typeof e)return[];"boolean"==typeof t&&(n=t,t=!1);var i,o,a;return t||(h.createHTMLDocument?((i=(t=r.implementation.createHTMLDocument("")).createElement("base")).href=r.location.href,t.head.appendChild(i)):t=r),o=A.exec(e),a=!n&&[],o?[t.createElement(o[1])]:(o=xe([e],t,a),a&&a.length&&w(a).remove(),w.merge([],o.childNodes))},w.fn.load=function(e,t,n){var r,i,o,a=this,s=e.indexOf(" ");return s>-1&&(r=vt(e.slice(s)),e=e.slice(0,s)),g(t)?(n=t,t=void 0):t&&"object"==typeof t&&(i="POST"),a.length>0&&w.ajax({url:e,type:i||"GET",dataType:"html",data:t}).done(function(e){o=arguments,a.html(r?w("<div>").append(w.parseHTML(e)).find(r):e)}).always(n&&function(e,t){a.each(function(){n.apply(this,o||[e.responseText,t,e])})}),this},w.each(["ajaxStart","ajaxStop","ajaxComplete","ajaxError","ajaxSuccess","ajaxSend"],function(e,t){w.fn[t]=function(e){return this.on(t,e)}}),w.expr.pseudos.animated=function(e){return w.grep(w.timers,function(t){return e===t.elem}).length},w.offset={setOffset:function(e,t,n){var r,i,o,a,s,u,l,c=w.css(e,"position"),f=w(e),p={};"static"===c&&(e.style.position="relative"),s=f.offset(),o=w.css(e,"top"),u=w.css(e,"left"),(l=("absolute"===c||"fixed"===c)&&(o+u).indexOf("auto")>-1)?(a=(r=f.position()).top,i=r.left):(a=parseFloat(o)||0,i=parseFloat(u)||0),g(t)&&(t=t.call(e,n,w.extend({},s))),null!=t.top&&(p.top=t.top-s.top+a),null!=t.left&&(p.left=t.left-s.left+i),"using"in t?t.using.call(e,p):f.css(p)}},w.fn.extend({offset:function(e){if(arguments.length)return void 0===e?this:this.each(function(t){w.offset.setOffset(this,e,t)});var t,n,r=this[0];if(r)return r.getClientRects().length?(t=r.getBoundingClientRect(),n=r.ownerDocument.defaultView,{top:t.top+n.pageYOffset,left:t.left+n.pageXOffset}):{top:0,left:0}},position:function(){if(this[0]){var e,t,n,r=this[0],i={top:0,left:0};if("fixed"===w.css(r,"position"))t=r.getBoundingClientRect();else{t=this.offset(),n=r.ownerDocument,e=r.offsetParent||n.documentElement;while(e&&(e===n.body||e===n.documentElement)&&"static"===w.css(e,"position"))e=e.parentNode;e&&e!==r&&1===e.nodeType&&((i=w(e).offset()).top+=w.css(e,"borderTopWidth",!0),i.left+=w.css(e,"borderLeftWidth",!0))}return{top:t.top-i.top-w.css(r,"marginTop",!0),left:t.left-i.left-w.css(r,"marginLeft",!0)}}},offsetParent:function(){return this.map(function(){var e=this.offsetParent;while(e&&"static"===w.css(e,"position"))e=e.offsetParent;return e||be})}}),w.each({scrollLeft:"pageXOffset",scrollTop:"pageYOffset"},function(e,t){var n="pageYOffset"===t;w.fn[e]=function(r){return z(this,function(e,r,i){var o;if(y(e)?o=e:9===e.nodeType&&(o=e.defaultView),void 0===i)return o?o[t]:e[r];o?o.scrollTo(n?o.pageXOffset:i,n?i:o.pageYOffset):e[r]=i},e,r,arguments.length)}}),w.each(["top","left"],function(e,t){w.cssHooks[t]=_e(h.pixelPosition,function(e,n){if(n)return n=Fe(e,t),We.test(n)?w(e).position()[t]+"px":n})}),w.each({Height:"height",Width:"width"},function(e,t){w.each({padding:"inner"+e,content:t,"":"outer"+e},function(n,r){w.fn[r]=function(i,o){var a=arguments.length&&(n||"boolean"!=typeof i),s=n||(!0===i||!0===o?"margin":"border");return z(this,function(t,n,i){var o;return y(t)?0===r.indexOf("outer")?t["inner"+e]:t.document.documentElement["client"+e]:9===t.nodeType?(o=t.documentElement,Math.max(t.body["scroll"+e],o["scroll"+e],t.body["offset"+e],o["offset"+e],o["client"+e])):void 0===i?w.css(t,n,s):w.style(t,n,i,s)},t,a?i:void 0,a)}})}),w.each("blur focus focusin focusout resize scroll click dblclick mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave change select submit keydown keypress keyup contextmenu".split(" "),function(e,t){w.fn[t]=function(e,n){return arguments.length>0?this.on(t,null,e,n):this.trigger(t)}}),w.fn.extend({hover:function(e,t){return this.mouseenter(e).mouseleave(t||e)}}),w.fn.extend({bind:function(e,t,n){return this.on(e,null,t,n)},unbind:function(e,t){return this.off(e,null,t)},delegate:function(e,t,n,r){return this.on(t,e,n,r)},undelegate:function(e,t,n){return 1===arguments.length?this.off(e,"**"):this.off(t,e||"**",n)}}),w.proxy=function(e,t){var n,r,i;if("string"==typeof t&&(n=e[t],t=e,e=n),g(e))return r=o.call(arguments,2),i=function(){return e.apply(t||this,r.concat(o.call(arguments)))},i.guid=e.guid=e.guid||w.guid++,i},w.holdReady=function(e){e?w.readyWait++:w.ready(!0)},w.isArray=Array.isArray,w.parseJSON=JSON.parse,w.nodeName=N,w.isFunction=g,w.isWindow=y,w.camelCase=G,w.type=x,w.now=Date.now,w.isNumeric=function(e){var t=w.type(e);return("number"===t||"string"===t)&&!isNaN(e-parseFloat(e))},"function"==typeof define&&define.amd&&define("jquery",[],function(){return w});var Jt=e.jQuery,Kt=e.$;return w.noConflict=function(t){return e.$===w&&(e.$=Kt),t&&e.jQuery===w&&(e.jQuery=Jt),w},t||(e.jQuery=e.$=w),w});
-/*! jQuery UI - v1.12.1 - 2019-01-27
-* http://jqueryui.com
-* Includes: widget.js, position.js, data.js, disable-selection.js, focusable.js, form-reset-mixin.js, jquery-1-7.js, keycode.js, labels.js, scroll-parent.js, tabbable.js, unique-id.js, widgets/resizable.js, widgets/mouse.js
-* Copyright jQuery Foundation and other contributors; Licensed MIT */
-
-(function(t){"function"==typeof define&&define.amd?define(["jquery"],t):t(jQuery)})(function(t){function e(t){for(var e=t.css("visibility");"inherit"===e;)t=t.parent(),e=t.css("visibility");return"hidden"!==e}t.ui=t.ui||{},t.ui.version="1.12.1";var i=0,s=Array.prototype.slice;t.cleanData=function(e){return function(i){var s,n,o;for(o=0;null!=(n=i[o]);o++)try{s=t._data(n,"events"),s&&s.remove&&t(n).triggerHandler("remove")}catch(a){}e(i)}}(t.cleanData),t.widget=function(e,i,s){var n,o,a,r={},h=e.split(".")[0];e=e.split(".")[1];var l=h+"-"+e;return s||(s=i,i=t.Widget),t.isArray(s)&&(s=t.extend.apply(null,[{}].concat(s))),t.expr[":"][l.toLowerCase()]=function(e){return!!t.data(e,l)},t[h]=t[h]||{},n=t[h][e],o=t[h][e]=function(t,e){return this._createWidget?(arguments.length&&this._createWidget(t,e),void 0):new o(t,e)},t.extend(o,n,{version:s.version,_proto:t.extend({},s),_childConstructors:[]}),a=new i,a.options=t.widget.extend({},a.options),t.each(s,function(e,s){return t.isFunction(s)?(r[e]=function(){function t(){return i.prototype[e].apply(this,arguments)}function n(t){return i.prototype[e].apply(this,t)}return function(){var e,i=this._super,o=this._superApply;return this._super=t,this._superApply=n,e=s.apply(this,arguments),this._super=i,this._superApply=o,e}}(),void 0):(r[e]=s,void 0)}),o.prototype=t.widget.extend(a,{widgetEventPrefix:n?a.widgetEventPrefix||e:e},r,{constructor:o,namespace:h,widgetName:e,widgetFullName:l}),n?(t.each(n._childConstructors,function(e,i){var s=i.prototype;t.widget(s.namespace+"."+s.widgetName,o,i._proto)}),delete n._childConstructors):i._childConstructors.push(o),t.widget.bridge(e,o),o},t.widget.extend=function(e){for(var i,n,o=s.call(arguments,1),a=0,r=o.length;r>a;a++)for(i in o[a])n=o[a][i],o[a].hasOwnProperty(i)&&void 0!==n&&(e[i]=t.isPlainObject(n)?t.isPlainObject(e[i])?t.widget.extend({},e[i],n):t.widget.extend({},n):n);return e},t.widget.bridge=function(e,i){var n=i.prototype.widgetFullName||e;t.fn[e]=function(o){var a="string"==typeof o,r=s.call(arguments,1),h=this;return a?this.length||"instance"!==o?this.each(function(){var i,s=t.data(this,n);return"instance"===o?(h=s,!1):s?t.isFunction(s[o])&&"_"!==o.charAt(0)?(i=s[o].apply(s,r),i!==s&&void 0!==i?(h=i&&i.jquery?h.pushStack(i.get()):i,!1):void 0):t.error("no such method '"+o+"' for "+e+" widget instance"):t.error("cannot call methods on "+e+" prior to initialization; "+"attempted to call method '"+o+"'")}):h=void 0:(r.length&&(o=t.widget.extend.apply(null,[o].concat(r))),this.each(function(){var e=t.data(this,n);e?(e.option(o||{}),e._init&&e._init()):t.data(this,n,new i(o,this))})),h}},t.Widget=function(){},t.Widget._childConstructors=[],t.Widget.prototype={widgetName:"widget",widgetEventPrefix:"",defaultElement:"<div>",options:{classes:{},disabled:!1,create:null},_createWidget:function(e,s){s=t(s||this.defaultElement||this)[0],this.element=t(s),this.uuid=i++,this.eventNamespace="."+this.widgetName+this.uuid,this.bindings=t(),this.hoverable=t(),this.focusable=t(),this.classesElementLookup={},s!==this&&(t.data(s,this.widgetFullName,this),this._on(!0,this.element,{remove:function(t){t.target===s&&this.destroy()}}),this.document=t(s.style?s.ownerDocument:s.document||s),this.window=t(this.document[0].defaultView||this.document[0].parentWindow)),this.options=t.widget.extend({},this.options,this._getCreateOptions(),e),this._create(),this.options.disabled&&this._setOptionDisabled(this.options.disabled),this._trigger("create",null,this._getCreateEventData()),this._init()},_getCreateOptions:function(){return{}},_getCreateEventData:t.noop,_create:t.noop,_init:t.noop,destroy:function(){var e=this;this._destroy(),t.each(this.classesElementLookup,function(t,i){e._removeClass(i,t)}),this.element.off(this.eventNamespace).removeData(this.widgetFullName),this.widget().off(this.eventNamespace).removeAttr("aria-disabled"),this.bindings.off(this.eventNamespace)},_destroy:t.noop,widget:function(){return this.element},option:function(e,i){var s,n,o,a=e;if(0===arguments.length)return t.widget.extend({},this.options);if("string"==typeof e)if(a={},s=e.split("."),e=s.shift(),s.length){for(n=a[e]=t.widget.extend({},this.options[e]),o=0;s.length-1>o;o++)n[s[o]]=n[s[o]]||{},n=n[s[o]];if(e=s.pop(),1===arguments.length)return void 0===n[e]?null:n[e];n[e]=i}else{if(1===arguments.length)return void 0===this.options[e]?null:this.options[e];a[e]=i}return this._setOptions(a),this},_setOptions:function(t){var e;for(e in t)this._setOption(e,t[e]);return this},_setOption:function(t,e){return"classes"===t&&this._setOptionClasses(e),this.options[t]=e,"disabled"===t&&this._setOptionDisabled(e),this},_setOptionClasses:function(e){var i,s,n;for(i in e)n=this.classesElementLookup[i],e[i]!==this.options.classes[i]&&n&&n.length&&(s=t(n.get()),this._removeClass(n,i),s.addClass(this._classes({element:s,keys:i,classes:e,add:!0})))},_setOptionDisabled:function(t){this._toggleClass(this.widget(),this.widgetFullName+"-disabled",null,!!t),t&&(this._removeClass(this.hoverable,null,"ui-state-hover"),this._removeClass(this.focusable,null,"ui-state-focus"))},enable:function(){return this._setOptions({disabled:!1})},disable:function(){return this._setOptions({disabled:!0})},_classes:function(e){function i(i,o){var a,r;for(r=0;i.length>r;r++)a=n.classesElementLookup[i[r]]||t(),a=e.add?t(t.unique(a.get().concat(e.element.get()))):t(a.not(e.element).get()),n.classesElementLookup[i[r]]=a,s.push(i[r]),o&&e.classes[i[r]]&&s.push(e.classes[i[r]])}var s=[],n=this;return e=t.extend({element:this.element,classes:this.options.classes||{}},e),this._on(e.element,{remove:"_untrackClassesElement"}),e.keys&&i(e.keys.match(/\S+/g)||[],!0),e.extra&&i(e.extra.match(/\S+/g)||[]),s.join(" ")},_untrackClassesElement:function(e){var i=this;t.each(i.classesElementLookup,function(s,n){-1!==t.inArray(e.target,n)&&(i.classesElementLookup[s]=t(n.not(e.target).get()))})},_removeClass:function(t,e,i){return this._toggleClass(t,e,i,!1)},_addClass:function(t,e,i){return this._toggleClass(t,e,i,!0)},_toggleClass:function(t,e,i,s){s="boolean"==typeof s?s:i;var n="string"==typeof t||null===t,o={extra:n?e:i,keys:n?t:e,element:n?this.element:t,add:s};return o.element.toggleClass(this._classes(o),s),this},_on:function(e,i,s){var n,o=this;"boolean"!=typeof e&&(s=i,i=e,e=!1),s?(i=n=t(i),this.bindings=this.bindings.add(i)):(s=i,i=this.element,n=this.widget()),t.each(s,function(s,a){function r(){return e||o.options.disabled!==!0&&!t(this).hasClass("ui-state-disabled")?("string"==typeof a?o[a]:a).apply(o,arguments):void 0}"string"!=typeof a&&(r.guid=a.guid=a.guid||r.guid||t.guid++);var h=s.match(/^([\w:-]*)\s*(.*)$/),l=h[1]+o.eventNamespace,c=h[2];c?n.on(l,c,r):i.on(l,r)})},_off:function(e,i){i=(i||"").split(" ").join(this.eventNamespace+" ")+this.eventNamespace,e.off(i).off(i),this.bindings=t(this.bindings.not(e).get()),this.focusable=t(this.focusable.not(e).get()),this.hoverable=t(this.hoverable.not(e).get())},_delay:function(t,e){function i(){return("string"==typeof t?s[t]:t).apply(s,arguments)}var s=this;return setTimeout(i,e||0)},_hoverable:function(e){this.hoverable=this.hoverable.add(e),this._on(e,{mouseenter:function(e){this._addClass(t(e.currentTarget),null,"ui-state-hover")},mouseleave:function(e){this._removeClass(t(e.currentTarget),null,"ui-state-hover")}})},_focusable:function(e){this.focusable=this.focusable.add(e),this._on(e,{focusin:function(e){this._addClass(t(e.currentTarget),null,"ui-state-focus")},focusout:function(e){this._removeClass(t(e.currentTarget),null,"ui-state-focus")}})},_trigger:function(e,i,s){var n,o,a=this.options[e];if(s=s||{},i=t.Event(i),i.type=(e===this.widgetEventPrefix?e:this.widgetEventPrefix+e).toLowerCase(),i.target=this.element[0],o=i.originalEvent)for(n in o)n in i||(i[n]=o[n]);return this.element.trigger(i,s),!(t.isFunction(a)&&a.apply(this.element[0],[i].concat(s))===!1||i.isDefaultPrevented())}},t.each({show:"fadeIn",hide:"fadeOut"},function(e,i){t.Widget.prototype["_"+e]=function(s,n,o){"string"==typeof n&&(n={effect:n});var a,r=n?n===!0||"number"==typeof n?i:n.effect||i:e;n=n||{},"number"==typeof n&&(n={duration:n}),a=!t.isEmptyObject(n),n.complete=o,n.delay&&s.delay(n.delay),a&&t.effects&&t.effects.effect[r]?s[e](n):r!==e&&s[r]?s[r](n.duration,n.easing,o):s.queue(function(i){t(this)[e](),o&&o.call(s[0]),i()})}}),t.widget,function(){function e(t,e,i){return[parseFloat(t[0])*(u.test(t[0])?e/100:1),parseFloat(t[1])*(u.test(t[1])?i/100:1)]}function i(e,i){return parseInt(t.css(e,i),10)||0}function s(e){var i=e[0];return 9===i.nodeType?{width:e.width(),height:e.height(),offset:{top:0,left:0}}:t.isWindow(i)?{width:e.width(),height:e.height(),offset:{top:e.scrollTop(),left:e.scrollLeft()}}:i.preventDefault?{width:0,height:0,offset:{top:i.pageY,left:i.pageX}}:{width:e.outerWidth(),height:e.outerHeight(),offset:e.offset()}}var n,o=Math.max,a=Math.abs,r=/left|center|right/,h=/top|center|bottom/,l=/[\+\-]\d+(\.[\d]+)?%?/,c=/^\w+/,u=/%$/,d=t.fn.position;t.position={scrollbarWidth:function(){if(void 0!==n)return n;var e,i,s=t("<div style='display:block;position:absolute;width:50px;height:50px;overflow:hidden;'><div style='height:100px;width:auto;'></div></div>"),o=s.children()[0];return t("body").append(s),e=o.offsetWidth,s.css("overflow","scroll"),i=o.offsetWidth,e===i&&(i=s[0].clientWidth),s.remove(),n=e-i},getScrollInfo:function(e){var i=e.isWindow||e.isDocument?"":e.element.css("overflow-x"),s=e.isWindow||e.isDocument?"":e.element.css("overflow-y"),n="scroll"===i||"auto"===i&&e.width<e.element[0].scrollWidth,o="scroll"===s||"auto"===s&&e.height<e.element[0].scrollHeight;return{width:o?t.position.scrollbarWidth():0,height:n?t.position.scrollbarWidth():0}},getWithinInfo:function(e){var i=t(e||window),s=t.isWindow(i[0]),n=!!i[0]&&9===i[0].nodeType,o=!s&&!n;return{element:i,isWindow:s,isDocument:n,offset:o?t(e).offset():{left:0,top:0},scrollLeft:i.scrollLeft(),scrollTop:i.scrollTop(),width:i.outerWidth(),height:i.outerHeight()}}},t.fn.position=function(n){if(!n||!n.of)return d.apply(this,arguments);n=t.extend({},n);var u,p,f,m,g,_,v=t(n.of),b=t.position.getWithinInfo(n.within),y=t.position.getScrollInfo(b),w=(n.collision||"flip").split(" "),x={};return _=s(v),v[0].preventDefault&&(n.at="left top"),p=_.width,f=_.height,m=_.offset,g=t.extend({},m),t.each(["my","at"],function(){var t,e,i=(n[this]||"").split(" ");1===i.length&&(i=r.test(i[0])?i.concat(["center"]):h.test(i[0])?["center"].concat(i):["center","center"]),i[0]=r.test(i[0])?i[0]:"center",i[1]=h.test(i[1])?i[1]:"center",t=l.exec(i[0]),e=l.exec(i[1]),x[this]=[t?t[0]:0,e?e[0]:0],n[this]=[c.exec(i[0])[0],c.exec(i[1])[0]]}),1===w.length&&(w[1]=w[0]),"right"===n.at[0]?g.left+=p:"center"===n.at[0]&&(g.left+=p/2),"bottom"===n.at[1]?g.top+=f:"center"===n.at[1]&&(g.top+=f/2),u=e(x.at,p,f),g.left+=u[0],g.top+=u[1],this.each(function(){var s,r,h=t(this),l=h.outerWidth(),c=h.outerHeight(),d=i(this,"marginLeft"),_=i(this,"marginTop"),k=l+d+i(this,"marginRight")+y.width,C=c+_+i(this,"marginBottom")+y.height,D=t.extend({},g),T=e(x.my,h.outerWidth(),h.outerHeight());"right"===n.my[0]?D.left-=l:"center"===n.my[0]&&(D.left-=l/2),"bottom"===n.my[1]?D.top-=c:"center"===n.my[1]&&(D.top-=c/2),D.left+=T[0],D.top+=T[1],s={marginLeft:d,marginTop:_},t.each(["left","top"],function(e,i){t.ui.position[w[e]]&&t.ui.position[w[e]][i](D,{targetWidth:p,targetHeight:f,elemWidth:l,elemHeight:c,collisionPosition:s,collisionWidth:k,collisionHeight:C,offset:[u[0]+T[0],u[1]+T[1]],my:n.my,at:n.at,within:b,elem:h})}),n.using&&(r=function(t){var e=m.left-D.left,i=e+p-l,s=m.top-D.top,r=s+f-c,u={target:{element:v,left:m.left,top:m.top,width:p,height:f},element:{element:h,left:D.left,top:D.top,width:l,height:c},horizontal:0>i?"left":e>0?"right":"center",vertical:0>r?"top":s>0?"bottom":"middle"};l>p&&p>a(e+i)&&(u.horizontal="center"),c>f&&f>a(s+r)&&(u.vertical="middle"),u.important=o(a(e),a(i))>o(a(s),a(r))?"horizontal":"vertical",n.using.call(this,t,u)}),h.offset(t.extend(D,{using:r}))})},t.ui.position={fit:{left:function(t,e){var i,s=e.within,n=s.isWindow?s.scrollLeft:s.offset.left,a=s.width,r=t.left-e.collisionPosition.marginLeft,h=n-r,l=r+e.collisionWidth-a-n;e.collisionWidth>a?h>0&&0>=l?(i=t.left+h+e.collisionWidth-a-n,t.left+=h-i):t.left=l>0&&0>=h?n:h>l?n+a-e.collisionWidth:n:h>0?t.left+=h:l>0?t.left-=l:t.left=o(t.left-r,t.left)},top:function(t,e){var i,s=e.within,n=s.isWindow?s.scrollTop:s.offset.top,a=e.within.height,r=t.top-e.collisionPosition.marginTop,h=n-r,l=r+e.collisionHeight-a-n;e.collisionHeight>a?h>0&&0>=l?(i=t.top+h+e.collisionHeight-a-n,t.top+=h-i):t.top=l>0&&0>=h?n:h>l?n+a-e.collisionHeight:n:h>0?t.top+=h:l>0?t.top-=l:t.top=o(t.top-r,t.top)}},flip:{left:function(t,e){var i,s,n=e.within,o=n.offset.left+n.scrollLeft,r=n.width,h=n.isWindow?n.scrollLeft:n.offset.left,l=t.left-e.collisionPosition.marginLeft,c=l-h,u=l+e.collisionWidth-r-h,d="left"===e.my[0]?-e.elemWidth:"right"===e.my[0]?e.elemWidth:0,p="left"===e.at[0]?e.targetWidth:"right"===e.at[0]?-e.targetWidth:0,f=-2*e.offset[0];0>c?(i=t.left+d+p+f+e.collisionWidth-r-o,(0>i||a(c)>i)&&(t.left+=d+p+f)):u>0&&(s=t.left-e.collisionPosition.marginLeft+d+p+f-h,(s>0||u>a(s))&&(t.left+=d+p+f))},top:function(t,e){var i,s,n=e.within,o=n.offset.top+n.scrollTop,r=n.height,h=n.isWindow?n.scrollTop:n.offset.top,l=t.top-e.collisionPosition.marginTop,c=l-h,u=l+e.collisionHeight-r-h,d="top"===e.my[1],p=d?-e.elemHeight:"bottom"===e.my[1]?e.elemHeight:0,f="top"===e.at[1]?e.targetHeight:"bottom"===e.at[1]?-e.targetHeight:0,m=-2*e.offset[1];0>c?(s=t.top+p+f+m+e.collisionHeight-r-o,(0>s||a(c)>s)&&(t.top+=p+f+m)):u>0&&(i=t.top-e.collisionPosition.marginTop+p+f+m-h,(i>0||u>a(i))&&(t.top+=p+f+m))}},flipfit:{left:function(){t.ui.position.flip.left.apply(this,arguments),t.ui.position.fit.left.apply(this,arguments)},top:function(){t.ui.position.flip.top.apply(this,arguments),t.ui.position.fit.top.apply(this,arguments)}}}}(),t.ui.position,t.extend(t.expr[":"],{data:t.expr.createPseudo?t.expr.createPseudo(function(e){return function(i){return!!t.data(i,e)}}):function(e,i,s){return!!t.data(e,s[3])}}),t.fn.extend({disableSelection:function(){var t="onselectstart"in document.createElement("div")?"selectstart":"mousedown";return function(){return this.on(t+".ui-disableSelection",function(t){t.preventDefault()})}}(),enableSelection:function(){return this.off(".ui-disableSelection")}}),t.ui.focusable=function(i,s){var n,o,a,r,h,l=i.nodeName.toLowerCase();return"area"===l?(n=i.parentNode,o=n.name,i.href&&o&&"map"===n.nodeName.toLowerCase()?(a=t("img[usemap='#"+o+"']"),a.length>0&&a.is(":visible")):!1):(/^(input|select|textarea|button|object)$/.test(l)?(r=!i.disabled,r&&(h=t(i).closest("fieldset")[0],h&&(r=!h.disabled))):r="a"===l?i.href||s:s,r&&t(i).is(":visible")&&e(t(i)))},t.extend(t.expr[":"],{focusable:function(e){return t.ui.focusable(e,null!=t.attr(e,"tabindex"))}}),t.ui.focusable,t.fn.form=function(){return"string"==typeof this[0].form?this.closest("form"):t(this[0].form)},t.ui.formResetMixin={_formResetHandler:function(){var e=t(this);setTimeout(function(){var i=e.data("ui-form-reset-instances");t.each(i,function(){this.refresh()})})},_bindFormResetHandler:function(){if(this.form=this.element.form(),this.form.length){var t=this.form.data("ui-form-reset-instances")||[];t.length||this.form.on("reset.ui-form-reset",this._formResetHandler),t.push(this),this.form.data("ui-form-reset-instances",t)}},_unbindFormResetHandler:function(){if(this.form.length){var e=this.form.data("ui-form-reset-instances");e.splice(t.inArray(this,e),1),e.length?this.form.data("ui-form-reset-instances",e):this.form.removeData("ui-form-reset-instances").off("reset.ui-form-reset")}}},"1.7"===t.fn.jquery.substring(0,3)&&(t.each(["Width","Height"],function(e,i){function s(e,i,s,o){return t.each(n,function(){i-=parseFloat(t.css(e,"padding"+this))||0,s&&(i-=parseFloat(t.css(e,"border"+this+"Width"))||0),o&&(i-=parseFloat(t.css(e,"margin"+this))||0)}),i}var n="Width"===i?["Left","Right"]:["Top","Bottom"],o=i.toLowerCase(),a={innerWidth:t.fn.innerWidth,innerHeight:t.fn.innerHeight,outerWidth:t.fn.outerWidth,outerHeight:t.fn.outerHeight};t.fn["inner"+i]=function(e){return void 0===e?a["inner"+i].call(this):this.each(function(){t(this).css(o,s(this,e)+"px")})},t.fn["outer"+i]=function(e,n){return"number"!=typeof e?a["outer"+i].call(this,e):this.each(function(){t(this).css(o,s(this,e,!0,n)+"px")})}}),t.fn.addBack=function(t){return this.add(null==t?this.prevObject:this.prevObject.filter(t))}),t.ui.keyCode={BACKSPACE:8,COMMA:188,DELETE:46,DOWN:40,END:35,ENTER:13,ESCAPE:27,HOME:36,LEFT:37,PAGE_DOWN:34,PAGE_UP:33,PERIOD:190,RIGHT:39,SPACE:32,TAB:9,UP:38},t.ui.escapeSelector=function(){var t=/([!"#$%&'()*+,./:;<=>?@[\]^`{|}~])/g;return function(e){return e.replace(t,"\\$1")}}(),t.fn.labels=function(){var e,i,s,n,o;return this[0].labels&&this[0].labels.length?this.pushStack(this[0].labels):(n=this.eq(0).parents("label"),s=this.attr("id"),s&&(e=this.eq(0).parents().last(),o=e.add(e.length?e.siblings():this.siblings()),i="label[for='"+t.ui.escapeSelector(s)+"']",n=n.add(o.find(i).addBack(i))),this.pushStack(n))},t.fn.scrollParent=function(e){var i=this.css("position"),s="absolute"===i,n=e?/(auto|scroll|hidden)/:/(auto|scroll)/,o=this.parents().filter(function(){var e=t(this);return s&&"static"===e.css("position")?!1:n.test(e.css("overflow")+e.css("overflow-y")+e.css("overflow-x"))}).eq(0);return"fixed"!==i&&o.length?o:t(this[0].ownerDocument||document)},t.extend(t.expr[":"],{tabbable:function(e){var i=t.attr(e,"tabindex"),s=null!=i;return(!s||i>=0)&&t.ui.focusable(e,s)}}),t.fn.extend({uniqueId:function(){var t=0;return function(){return this.each(function(){this.id||(this.id="ui-id-"+ ++t)})}}(),removeUniqueId:function(){return this.each(function(){/^ui-id-\d+$/.test(this.id)&&t(this).removeAttr("id")})}}),t.ui.ie=!!/msie [\w.]+/.exec(navigator.userAgent.toLowerCase());var n=!1;t(document).on("mouseup",function(){n=!1}),t.widget("ui.mouse",{version:"1.12.1",options:{cancel:"input, textarea, button, select, option",distance:1,delay:0},_mouseInit:function(){var e=this;this.element.on("mousedown."+this.widgetName,function(t){return e._mouseDown(t)}).on("click."+this.widgetName,function(i){return!0===t.data(i.target,e.widgetName+".preventClickEvent")?(t.removeData(i.target,e.widgetName+".preventClickEvent"),i.stopImmediatePropagation(),!1):void 0}),this.started=!1},_mouseDestroy:function(){this.element.off("."+this.widgetName),this._mouseMoveDelegate&&this.document.off("mousemove."+this.widgetName,this._mouseMoveDelegate).off("mouseup."+this.widgetName,this._mouseUpDelegate)},_mouseDown:function(e){if(!n){this._mouseMoved=!1,this._mouseStarted&&this._mouseUp(e),this._mouseDownEvent=e;var i=this,s=1===e.which,o="string"==typeof this.options.cancel&&e.target.nodeName?t(e.target).closest(this.options.cancel).length:!1;return s&&!o&&this._mouseCapture(e)?(this.mouseDelayMet=!this.options.delay,this.mouseDelayMet||(this._mouseDelayTimer=setTimeout(function(){i.mouseDelayMet=!0},this.options.delay)),this._mouseDistanceMet(e)&&this._mouseDelayMet(e)&&(this._mouseStarted=this._mouseStart(e)!==!1,!this._mouseStarted)?(e.preventDefault(),!0):(!0===t.data(e.target,this.widgetName+".preventClickEvent")&&t.removeData(e.target,this.widgetName+".preventClickEvent"),this._mouseMoveDelegate=function(t){return i._mouseMove(t)},this._mouseUpDelegate=function(t){return i._mouseUp(t)},this.document.on("mousemove."+this.widgetName,this._mouseMoveDelegate).on("mouseup."+this.widgetName,this._mouseUpDelegate),e.preventDefault(),n=!0,!0)):!0}},_mouseMove:function(e){if(this._mouseMoved){if(t.ui.ie&&(!document.documentMode||9>document.documentMode)&&!e.button)return this._mouseUp(e);if(!e.which)if(e.originalEvent.altKey||e.originalEvent.ctrlKey||e.originalEvent.metaKey||e.originalEvent.shiftKey)this.ignoreMissingWhich=!0;else if(!this.ignoreMissingWhich)return this._mouseUp(e)}return(e.which||e.button)&&(this._mouseMoved=!0),this._mouseStarted?(this._mouseDrag(e),e.preventDefault()):(this._mouseDistanceMet(e)&&this._mouseDelayMet(e)&&(this._mouseStarted=this._mouseStart(this._mouseDownEvent,e)!==!1,this._mouseStarted?this._mouseDrag(e):this._mouseUp(e)),!this._mouseStarted)},_mouseUp:function(e){this.document.off("mousemove."+this.widgetName,this._mouseMoveDelegate).off("mouseup."+this.widgetName,this._mouseUpDelegate),this._mouseStarted&&(this._mouseStarted=!1,e.target===this._mouseDownEvent.target&&t.data(e.target,this.widgetName+".preventClickEvent",!0),this._mouseStop(e)),this._mouseDelayTimer&&(clearTimeout(this._mouseDelayTimer),delete this._mouseDelayTimer),this.ignoreMissingWhich=!1,n=!1,e.preventDefault()},_mouseDistanceMet:function(t){return Math.max(Math.abs(this._mouseDownEvent.pageX-t.pageX),Math.abs(this._mouseDownEvent.pageY-t.pageY))>=this.options.distance},_mouseDelayMet:function(){return this.mouseDelayMet},_mouseStart:function(){},_mouseDrag:function(){},_mouseStop:function(){},_mouseCapture:function(){return!0}}),t.ui.plugin={add:function(e,i,s){var n,o=t.ui[e].prototype;for(n in s)o.plugins[n]=o.plugins[n]||[],o.plugins[n].push([i,s[n]])},call:function(t,e,i,s){var n,o=t.plugins[e];if(o&&(s||t.element[0].parentNode&&11!==t.element[0].parentNode.nodeType))for(n=0;o.length>n;n++)t.options[o[n][0]]&&o[n][1].apply(t.element,i)}},t.widget("ui.resizable",t.ui.mouse,{version:"1.12.1",widgetEventPrefix:"resize",options:{alsoResize:!1,animate:!1,animateDuration:"slow",animateEasing:"swing",aspectRatio:!1,autoHide:!1,classes:{"ui-resizable-se":"ui-icon ui-icon-gripsmall-diagonal-se"},containment:!1,ghost:!1,grid:!1,handles:"e,s,se",helper:!1,maxHeight:null,maxWidth:null,minHeight:10,minWidth:10,zIndex:90,resize:null,start:null,stop:null},_num:function(t){return parseFloat(t)||0},_isNumber:function(t){return!isNaN(parseFloat(t))},_hasScroll:function(e,i){if("hidden"===t(e).css("overflow"))return!1;var s=i&&"left"===i?"scrollLeft":"scrollTop",n=!1;return e[s]>0?!0:(e[s]=1,n=e[s]>0,e[s]=0,n)},_create:function(){var e,i=this.options,s=this;this._addClass("ui-resizable"),t.extend(this,{_aspectRatio:!!i.aspectRatio,aspectRatio:i.aspectRatio,originalElement:this.element,_proportionallyResizeElements:[],_helper:i.helper||i.ghost||i.animate?i.helper||"ui-resizable-helper":null}),this.element[0].nodeName.match(/^(canvas|textarea|input|select|button|img)$/i)&&(this.element.wrap(t("<div class='ui-wrapper' style='overflow: hidden;'></div>").css({position:this.element.css("position"),width:this.element.outerWidth(),height:this.element.outerHeight(),top:this.element.css("top"),left:this.element.css("left")})),this.element=this.element.parent().data("ui-resizable",this.element.resizable("instance")),this.elementIsWrapper=!0,e={marginTop:this.originalElement.css("marginTop"),marginRight:this.originalElement.css("marginRight"),marginBottom:this.originalElement.css("marginBottom"),marginLeft:this.originalElement.css("marginLeft")},this.element.css(e),this.originalElement.css("margin",0),this.originalResizeStyle=this.originalElement.css("resize"),this.originalElement.css("resize","none"),this._proportionallyResizeElements.push(this.originalElement.css({position:"static",zoom:1,display:"block"})),this.originalElement.css(e),this._proportionallyResize()),this._setupHandles(),i.autoHide&&t(this.element).on("mouseenter",function(){i.disabled||(s._removeClass("ui-resizable-autohide"),s._handles.show())}).on("mouseleave",function(){i.disabled||s.resizing||(s._addClass("ui-resizable-autohide"),s._handles.hide())}),this._mouseInit()},_destroy:function(){this._mouseDestroy();var e,i=function(e){t(e).removeData("resizable").removeData("ui-resizable").off(".resizable").find(".ui-resizable-handle").remove()};return this.elementIsWrapper&&(i(this.element),e=this.element,this.originalElement.css({position:e.css("position"),width:e.outerWidth(),height:e.outerHeight(),top:e.css("top"),left:e.css("left")}).insertAfter(e),e.remove()),this.originalElement.css("resize",this.originalResizeStyle),i(this.originalElement),this},_setOption:function(t,e){switch(this._super(t,e),t){case"handles":this._removeHandles(),this._setupHandles();break;default:}},_setupHandles:function(){var e,i,s,n,o,a=this.options,r=this;if(this.handles=a.handles||(t(".ui-resizable-handle",this.element).length?{n:".ui-resizable-n",e:".ui-resizable-e",s:".ui-resizable-s",w:".ui-resizable-w",se:".ui-resizable-se",sw:".ui-resizable-sw",ne:".ui-resizable-ne",nw:".ui-resizable-nw"}:"e,s,se"),this._handles=t(),this.handles.constructor===String)for("all"===this.handles&&(this.handles="n,e,s,w,se,sw,ne,nw"),s=this.handles.split(","),this.handles={},i=0;s.length>i;i++)e=t.trim(s[i]),n="ui-resizable-"+e,o=t("<div>"),this._addClass(o,"ui-resizable-handle "+n),o.css({zIndex:a.zIndex}),this.handles[e]=".ui-resizable-"+e,this.element.append(o);this._renderAxis=function(e){var i,s,n,o;e=e||this.element;for(i in this.handles)this.handles[i].constructor===String?this.handles[i]=this.element.children(this.handles[i]).first().show():(this.handles[i].jquery||this.handles[i].nodeType)&&(this.handles[i]=t(this.handles[i]),this._on(this.handles[i],{mousedown:r._mouseDown})),this.elementIsWrapper&&this.originalElement[0].nodeName.match(/^(textarea|input|select|button)$/i)&&(s=t(this.handles[i],this.element),o=/sw|ne|nw|se|n|s/.test(i)?s.outerHeight():s.outerWidth(),n=["padding",/ne|nw|n/.test(i)?"Top":/se|sw|s/.test(i)?"Bottom":/^e$/.test(i)?"Right":"Left"].join(""),e.css(n,o),this._proportionallyResize()),this._handles=this._handles.add(this.handles[i])},this._renderAxis(this.element),this._handles=this._handles.add(this.element.find(".ui-resizable-handle")),this._handles.disableSelection(),this._handles.on("mouseover",function(){r.resizing||(this.className&&(o=this.className.match(/ui-resizable-(se|sw|ne|nw|n|e|s|w)/i)),r.axis=o&&o[1]?o[1]:"se")}),a.autoHide&&(this._handles.hide(),this._addClass("ui-resizable-autohide"))},_removeHandles:function(){this._handles.remove()},_mouseCapture:function(e){var i,s,n=!1;for(i in this.handles)s=t(this.handles[i])[0],(s===e.target||t.contains(s,e.target))&&(n=!0);return!this.options.disabled&&n},_mouseStart:function(e){var i,s,n,o=this.options,a=this.element;return this.resizing=!0,this._renderProxy(),i=this._num(this.helper.css("left")),s=this._num(this.helper.css("top")),o.containment&&(i+=t(o.containment).scrollLeft()||0,s+=t(o.containment).scrollTop()||0),this.offset=this.helper.offset(),this.position={left:i,top:s},this.size=this._helper?{width:this.helper.width(),height:this.helper.height()}:{width:a.width(),height:a.height()},this.originalSize=this._helper?{width:a.outerWidth(),height:a.outerHeight()}:{width:a.width(),height:a.height()},this.sizeDiff={width:a.outerWidth()-a.width(),height:a.outerHeight()-a.height()},this.originalPosition={left:i,top:s},this.originalMousePosition={left:e.pageX,top:e.pageY},this.aspectRatio="number"==typeof o.aspectRatio?o.aspectRatio:this.originalSize.width/this.originalSize.height||1,n=t(".ui-resizable-"+this.axis).css("cursor"),t("body").css("cursor","auto"===n?this.axis+"-resize":n),this._addClass("ui-resizable-resizing"),this._propagate("start",e),!0},_mouseDrag:function(e){var i,s,n=this.originalMousePosition,o=this.axis,a=e.pageX-n.left||0,r=e.pageY-n.top||0,h=this._change[o];return this._updatePrevProperties(),h?(i=h.apply(this,[e,a,r]),this._updateVirtualBoundaries(e.shiftKey),(this._aspectRatio||e.shiftKey)&&(i=this._updateRatio(i,e)),i=this._respectSize(i,e),this._updateCache(i),this._propagate("resize",e),s=this._applyChanges(),!this._helper&&this._proportionallyResizeElements.length&&this._proportionallyResize(),t.isEmptyObject(s)||(this._updatePrevProperties(),this._trigger("resize",e,this.ui()),this._applyChanges()),!1):!1},_mouseStop:function(e){this.resizing=!1;var i,s,n,o,a,r,h,l=this.options,c=this;return this._helper&&(i=this._proportionallyResizeElements,s=i.length&&/textarea/i.test(i[0].nodeName),n=s&&this._hasScroll(i[0],"left")?0:c.sizeDiff.height,o=s?0:c.sizeDiff.width,a={width:c.helper.width()-o,height:c.helper.height()-n},r=parseFloat(c.element.css("left"))+(c.position.left-c.originalPosition.left)||null,h=parseFloat(c.element.css("top"))+(c.position.top-c.originalPosition.top)||null,l.animate||this.element.css(t.extend(a,{top:h,left:r})),c.helper.height(c.size.height),c.helper.width(c.size.width),this._helper&&!l.animate&&this._proportionallyResize()),t("body").css("cursor","auto"),this._removeClass("ui-resizable-resizing"),this._propagate("stop",e),this._helper&&this.helper.remove(),!1},_updatePrevProperties:function(){this.prevPosition={top:this.position.top,left:this.position.left},this.prevSize={width:this.size.width,height:this.size.height}},_applyChanges:function(){var t={};return this.position.top!==this.prevPosition.top&&(t.top=this.position.top+"px"),this.position.left!==this.prevPosition.left&&(t.left=this.position.left+"px"),this.size.width!==this.prevSize.width&&(t.width=this.size.width+"px"),this.size.height!==this.prevSize.height&&(t.height=this.size.height+"px"),this.helper.css(t),t},_updateVirtualBoundaries:function(t){var e,i,s,n,o,a=this.options;o={minWidth:this._isNumber(a.minWidth)?a.minWidth:0,maxWidth:this._isNumber(a.maxWidth)?a.maxWidth:1/0,minHeight:this._isNumber(a.minHeight)?a.minHeight:0,maxHeight:this._isNumber(a.maxHeight)?a.maxHeight:1/0},(this._aspectRatio||t)&&(e=o.minHeight*this.aspectRatio,s=o.minWidth/this.aspectRatio,i=o.maxHeight*this.aspectRatio,n=o.maxWidth/this.aspectRatio,e>o.minWidth&&(o.minWidth=e),s>o.minHeight&&(o.minHeight=s),o.maxWidth>i&&(o.maxWidth=i),o.maxHeight>n&&(o.maxHeight=n)),this._vBoundaries=o},_updateCache:function(t){this.offset=this.helper.offset(),this._isNumber(t.left)&&(this.position.left=t.left),this._isNumber(t.top)&&(this.position.top=t.top),this._isNumber(t.height)&&(this.size.height=t.height),this._isNumber(t.width)&&(this.size.width=t.width)},_updateRatio:function(t){var e=this.position,i=this.size,s=this.axis;return this._isNumber(t.height)?t.width=t.height*this.aspectRatio:this._isNumber(t.width)&&(t.height=t.width/this.aspectRatio),"sw"===s&&(t.left=e.left+(i.width-t.width),t.top=null),"nw"===s&&(t.top=e.top+(i.height-t.height),t.left=e.left+(i.width-t.width)),t},_respectSize:function(t){var e=this._vBoundaries,i=this.axis,s=this._isNumber(t.width)&&e.maxWidth&&e.maxWidth<t.width,n=this._isNumber(t.height)&&e.maxHeight&&e.maxHeight<t.height,o=this._isNumber(t.width)&&e.minWidth&&e.minWidth>t.width,a=this._isNumber(t.height)&&e.minHeight&&e.minHeight>t.height,r=this.originalPosition.left+this.originalSize.width,h=this.originalPosition.top+this.originalSize.height,l=/sw|nw|w/.test(i),c=/nw|ne|n/.test(i);return o&&(t.width=e.minWidth),a&&(t.height=e.minHeight),s&&(t.width=e.maxWidth),n&&(t.height=e.maxHeight),o&&l&&(t.left=r-e.minWidth),s&&l&&(t.left=r-e.maxWidth),a&&c&&(t.top=h-e.minHeight),n&&c&&(t.top=h-e.maxHeight),t.width||t.height||t.left||!t.top?t.width||t.height||t.top||!t.left||(t.left=null):t.top=null,t},_getPaddingPlusBorderDimensions:function(t){for(var e=0,i=[],s=[t.css("borderTopWidth"),t.css("borderRightWidth"),t.css("borderBottomWidth"),t.css("borderLeftWidth")],n=[t.css("paddingTop"),t.css("paddingRight"),t.css("paddingBottom"),t.css("paddingLeft")];4>e;e++)i[e]=parseFloat(s[e])||0,i[e]+=parseFloat(n[e])||0;return{height:i[0]+i[2],width:i[1]+i[3]}},_proportionallyResize:function(){if(this._proportionallyResizeElements.length)for(var t,e=0,i=this.helper||this.element;this._proportionallyResizeElements.length>e;e++)t=this._proportionallyResizeElements[e],this.outerDimensions||(this.outerDimensions=this._getPaddingPlusBorderDimensions(t)),t.css({height:i.height()-this.outerDimensions.height||0,width:i.width()-this.outerDimensions.width||0})},_renderProxy:function(){var e=this.element,i=this.options;this.elementOffset=e.offset(),this._helper?(this.helper=this.helper||t("<div style='overflow:hidden;'></div>"),this._addClass(this.helper,this._helper),this.helper.css({width:this.element.outerWidth(),height:this.element.outerHeight(),position:"absolute",left:this.elementOffset.left+"px",top:this.elementOffset.top+"px",zIndex:++i.zIndex}),this.helper.appendTo("body").disableSelection()):this.helper=this.element
-},_change:{e:function(t,e){return{width:this.originalSize.width+e}},w:function(t,e){var i=this.originalSize,s=this.originalPosition;return{left:s.left+e,width:i.width-e}},n:function(t,e,i){var s=this.originalSize,n=this.originalPosition;return{top:n.top+i,height:s.height-i}},s:function(t,e,i){return{height:this.originalSize.height+i}},se:function(e,i,s){return t.extend(this._change.s.apply(this,arguments),this._change.e.apply(this,[e,i,s]))},sw:function(e,i,s){return t.extend(this._change.s.apply(this,arguments),this._change.w.apply(this,[e,i,s]))},ne:function(e,i,s){return t.extend(this._change.n.apply(this,arguments),this._change.e.apply(this,[e,i,s]))},nw:function(e,i,s){return t.extend(this._change.n.apply(this,arguments),this._change.w.apply(this,[e,i,s]))}},_propagate:function(e,i){t.ui.plugin.call(this,e,[i,this.ui()]),"resize"!==e&&this._trigger(e,i,this.ui())},plugins:{},ui:function(){return{originalElement:this.originalElement,element:this.element,helper:this.helper,position:this.position,size:this.size,originalSize:this.originalSize,originalPosition:this.originalPosition}}}),t.ui.plugin.add("resizable","animate",{stop:function(e){var i=t(this).resizable("instance"),s=i.options,n=i._proportionallyResizeElements,o=n.length&&/textarea/i.test(n[0].nodeName),a=o&&i._hasScroll(n[0],"left")?0:i.sizeDiff.height,r=o?0:i.sizeDiff.width,h={width:i.size.width-r,height:i.size.height-a},l=parseFloat(i.element.css("left"))+(i.position.left-i.originalPosition.left)||null,c=parseFloat(i.element.css("top"))+(i.position.top-i.originalPosition.top)||null;i.element.animate(t.extend(h,c&&l?{top:c,left:l}:{}),{duration:s.animateDuration,easing:s.animateEasing,step:function(){var s={width:parseFloat(i.element.css("width")),height:parseFloat(i.element.css("height")),top:parseFloat(i.element.css("top")),left:parseFloat(i.element.css("left"))};n&&n.length&&t(n[0]).css({width:s.width,height:s.height}),i._updateCache(s),i._propagate("resize",e)}})}}),t.ui.plugin.add("resizable","containment",{start:function(){var e,i,s,n,o,a,r,h=t(this).resizable("instance"),l=h.options,c=h.element,u=l.containment,d=u instanceof t?u.get(0):/parent/.test(u)?c.parent().get(0):u;d&&(h.containerElement=t(d),/document/.test(u)||u===document?(h.containerOffset={left:0,top:0},h.containerPosition={left:0,top:0},h.parentData={element:t(document),left:0,top:0,width:t(document).width(),height:t(document).height()||document.body.parentNode.scrollHeight}):(e=t(d),i=[],t(["Top","Right","Left","Bottom"]).each(function(t,s){i[t]=h._num(e.css("padding"+s))}),h.containerOffset=e.offset(),h.containerPosition=e.position(),h.containerSize={height:e.innerHeight()-i[3],width:e.innerWidth()-i[1]},s=h.containerOffset,n=h.containerSize.height,o=h.containerSize.width,a=h._hasScroll(d,"left")?d.scrollWidth:o,r=h._hasScroll(d)?d.scrollHeight:n,h.parentData={element:d,left:s.left,top:s.top,width:a,height:r}))},resize:function(e){var i,s,n,o,a=t(this).resizable("instance"),r=a.options,h=a.containerOffset,l=a.position,c=a._aspectRatio||e.shiftKey,u={top:0,left:0},d=a.containerElement,p=!0;d[0]!==document&&/static/.test(d.css("position"))&&(u=h),l.left<(a._helper?h.left:0)&&(a.size.width=a.size.width+(a._helper?a.position.left-h.left:a.position.left-u.left),c&&(a.size.height=a.size.width/a.aspectRatio,p=!1),a.position.left=r.helper?h.left:0),l.top<(a._helper?h.top:0)&&(a.size.height=a.size.height+(a._helper?a.position.top-h.top:a.position.top),c&&(a.size.width=a.size.height*a.aspectRatio,p=!1),a.position.top=a._helper?h.top:0),n=a.containerElement.get(0)===a.element.parent().get(0),o=/relative|absolute/.test(a.containerElement.css("position")),n&&o?(a.offset.left=a.parentData.left+a.position.left,a.offset.top=a.parentData.top+a.position.top):(a.offset.left=a.element.offset().left,a.offset.top=a.element.offset().top),i=Math.abs(a.sizeDiff.width+(a._helper?a.offset.left-u.left:a.offset.left-h.left)),s=Math.abs(a.sizeDiff.height+(a._helper?a.offset.top-u.top:a.offset.top-h.top)),i+a.size.width>=a.parentData.width&&(a.size.width=a.parentData.width-i,c&&(a.size.height=a.size.width/a.aspectRatio,p=!1)),s+a.size.height>=a.parentData.height&&(a.size.height=a.parentData.height-s,c&&(a.size.width=a.size.height*a.aspectRatio,p=!1)),p||(a.position.left=a.prevPosition.left,a.position.top=a.prevPosition.top,a.size.width=a.prevSize.width,a.size.height=a.prevSize.height)},stop:function(){var e=t(this).resizable("instance"),i=e.options,s=e.containerOffset,n=e.containerPosition,o=e.containerElement,a=t(e.helper),r=a.offset(),h=a.outerWidth()-e.sizeDiff.width,l=a.outerHeight()-e.sizeDiff.height;e._helper&&!i.animate&&/relative/.test(o.css("position"))&&t(this).css({left:r.left-n.left-s.left,width:h,height:l}),e._helper&&!i.animate&&/static/.test(o.css("position"))&&t(this).css({left:r.left-n.left-s.left,width:h,height:l})}}),t.ui.plugin.add("resizable","alsoResize",{start:function(){var e=t(this).resizable("instance"),i=e.options;t(i.alsoResize).each(function(){var e=t(this);e.data("ui-resizable-alsoresize",{width:parseFloat(e.width()),height:parseFloat(e.height()),left:parseFloat(e.css("left")),top:parseFloat(e.css("top"))})})},resize:function(e,i){var s=t(this).resizable("instance"),n=s.options,o=s.originalSize,a=s.originalPosition,r={height:s.size.height-o.height||0,width:s.size.width-o.width||0,top:s.position.top-a.top||0,left:s.position.left-a.left||0};t(n.alsoResize).each(function(){var e=t(this),s=t(this).data("ui-resizable-alsoresize"),n={},o=e.parents(i.originalElement[0]).length?["width","height"]:["width","height","top","left"];t.each(o,function(t,e){var i=(s[e]||0)+(r[e]||0);i&&i>=0&&(n[e]=i||null)}),e.css(n)})},stop:function(){t(this).removeData("ui-resizable-alsoresize")}}),t.ui.plugin.add("resizable","ghost",{start:function(){var e=t(this).resizable("instance"),i=e.size;e.ghost=e.originalElement.clone(),e.ghost.css({opacity:.25,display:"block",position:"relative",height:i.height,width:i.width,margin:0,left:0,top:0}),e._addClass(e.ghost,"ui-resizable-ghost"),t.uiBackCompat!==!1&&"string"==typeof e.options.ghost&&e.ghost.addClass(this.options.ghost),e.ghost.appendTo(e.helper)},resize:function(){var e=t(this).resizable("instance");e.ghost&&e.ghost.css({position:"relative",height:e.size.height,width:e.size.width})},stop:function(){var e=t(this).resizable("instance");e.ghost&&e.helper&&e.helper.get(0).removeChild(e.ghost.get(0))}}),t.ui.plugin.add("resizable","grid",{resize:function(){var e,i=t(this).resizable("instance"),s=i.options,n=i.size,o=i.originalSize,a=i.originalPosition,r=i.axis,h="number"==typeof s.grid?[s.grid,s.grid]:s.grid,l=h[0]||1,c=h[1]||1,u=Math.round((n.width-o.width)/l)*l,d=Math.round((n.height-o.height)/c)*c,p=o.width+u,f=o.height+d,m=s.maxWidth&&p>s.maxWidth,g=s.maxHeight&&f>s.maxHeight,_=s.minWidth&&s.minWidth>p,v=s.minHeight&&s.minHeight>f;s.grid=h,_&&(p+=l),v&&(f+=c),m&&(p-=l),g&&(f-=c),/^(se|s|e)$/.test(r)?(i.size.width=p,i.size.height=f):/^(ne)$/.test(r)?(i.size.width=p,i.size.height=f,i.position.top=a.top-d):/^(sw)$/.test(r)?(i.size.width=p,i.size.height=f,i.position.left=a.left-u):((0>=f-c||0>=p-l)&&(e=i._getPaddingPlusBorderDimensions(this)),f-c>0?(i.size.height=f,i.position.top=a.top-d):(f=c-e.height,i.size.height=f,i.position.top=a.top+o.height-f),p-l>0?(i.size.width=p,i.position.left=a.left-u):(p=l-e.width,i.size.width=p,i.position.left=a.left+o.width-p))}}),t.ui.resizable});/**
- * Copyright (c) 2007 Ariel Flesler - aflesler ○ gmail • com | https://github.com/flesler
- * Licensed under MIT
- * @author Ariel Flesler
- * @version 2.1.2
- */
-;(function(f){"use strict";"function"===typeof define&&define.amd?define(["jquery"],f):"undefined"!==typeof module&&module.exports?module.exports=f(require("jquery")):f(jQuery)})(function($){"use strict";function n(a){return!a.nodeName||-1!==$.inArray(a.nodeName.toLowerCase(),["iframe","#document","html","body"])}function h(a){return $.isFunction(a)||$.isPlainObject(a)?a:{top:a,left:a}}var p=$.scrollTo=function(a,d,b){return $(window).scrollTo(a,d,b)};p.defaults={axis:"xy",duration:0,limit:!0};$.fn.scrollTo=function(a,d,b){"object"=== typeof d&&(b=d,d=0);"function"===typeof b&&(b={onAfter:b});"max"===a&&(a=9E9);b=$.extend({},p.defaults,b);d=d||b.duration;var u=b.queue&&1<b.axis.length;u&&(d/=2);b.offset=h(b.offset);b.over=h(b.over);return this.each(function(){function k(a){var k=$.extend({},b,{queue:!0,duration:d,complete:a&&function(){a.call(q,e,b)}});r.animate(f,k)}if(null!==a){var l=n(this),q=l?this.contentWindow||window:this,r=$(q),e=a,f={},t;switch(typeof e){case "number":case "string":if(/^([+-]=?)?\d+(\.\d+)?(px|%)?$/.test(e)){e= h(e);break}e=l?$(e):$(e,q);case "object":if(e.length===0)return;if(e.is||e.style)t=(e=$(e)).offset()}var v=$.isFunction(b.offset)&&b.offset(q,e)||b.offset;$.each(b.axis.split(""),function(a,c){var d="x"===c?"Left":"Top",m=d.toLowerCase(),g="scroll"+d,h=r[g](),n=p.max(q,c);t?(f[g]=t[m]+(l?0:h-r.offset()[m]),b.margin&&(f[g]-=parseInt(e.css("margin"+d),10)||0,f[g]-=parseInt(e.css("border"+d+"Width"),10)||0),f[g]+=v[m]||0,b.over[m]&&(f[g]+=e["x"===c?"width":"height"]()*b.over[m])):(d=e[m],f[g]=d.slice&& "%"===d.slice(-1)?parseFloat(d)/100*n:d);b.limit&&/^\d+$/.test(f[g])&&(f[g]=0>=f[g]?0:Math.min(f[g],n));!a&&1<b.axis.length&&(h===f[g]?f={}:u&&(k(b.onAfterFirst),f={}))});k(b.onAfter)}})};p.max=function(a,d){var b="x"===d?"Width":"Height",h="scroll"+b;if(!n(a))return a[h]-$(a)[b.toLowerCase()]();var b="client"+b,k=a.ownerDocument||a.document,l=k.documentElement,k=k.body;return Math.max(l[h],k[h])-Math.min(l[b],k[b])};$.Tween.propHooks.scrollLeft=$.Tween.propHooks.scrollTop={get:function(a){return $(a.elem)[a.prop]()}, set:function(a){var d=this.get(a);if(a.options.interrupt&&a._last&&a._last!==d)return $(a.elem).stop();var b=Math.round(a.now);d!==b&&($(a.elem)[a.prop](b),a._last=this.get(a))}};return p});
-/*!
- PowerTip v1.3.1 (2018-04-15)
- https://stevenbenner.github.io/jquery-powertip/
- Copyright (c) 2018 Steven Benner (http://stevenbenner.com/).
- Released under MIT license.
- https://raw.github.com/stevenbenner/jquery-powertip/master/LICENSE.txt
-*/
-!function(e,t){"function"==typeof define&&define.amd?define(["jquery"],t):"object"==typeof module&&module.exports?module.exports=t(require("jquery")):t(e.jQuery)}(this,function(h){var v=h(document),n=h(window),e=h("body"),m="displayController",T="hasActiveHover",g="forcedOpen",i="hasMouseMove",y="mouseOnToPopup",a="originalTitle",b="powertip",H="powertipjq",k="powertiptarget",P=".powertip",O=180/Math.PI,t=["click","dblclick","mousedown","mouseup","mousemove","mouseover","mouseout","mouseenter","mouseleave","contextmenu"],I={elements:null,tooltips:null,isTipOpen:!1,isFixedTipOpen:!1,isClosing:!1,tipOpenImminent:!1,activeHover:null,currentX:0,currentY:0,previousX:0,previousY:0,desyncTimeout:null,closeDelayTimeout:null,mouseTrackingActive:!1,delayInProgress:!1,windowWidth:0,windowHeight:0,scrollTop:0,scrollLeft:0},l={none:0,top:1,bottom:2,left:4,right:8};function x(){var o=this;o.top="auto",o.left="auto",o.right="auto",o.bottom="auto",o.set=function(e,t){h.isNumeric(t)&&(o[e]=Math.round(t))}}function c(o,n,i){var s=null,t=null;function r(e,t){a(),o.data(T)?l():e?(t&&o.data(g,!0),c(),i.showTip(o)):(I.tipOpenImminent=!0,s=setTimeout(function(){var e,t;s=null,e=Math.abs(I.previousX-I.currentX),t=Math.abs(I.previousY-I.currentY),e+t<n.intentSensitivity?(l(),c(),i.showTip(o)):(I.previousX=I.currentX,I.previousY=I.currentY,r())},n.intentPollInterval))}function a(e){s=clearTimeout(s),(I.closeDelayTimeout&&t===I.closeDelayTimeout||e)&&l()}function l(){I.closeDelayTimeout=clearTimeout(I.closeDelayTimeout),I.delayInProgress=!1}function c(){I.delayInProgress&&I.activeHover&&!I.activeHover.is(o)&&I.activeHover.data(m).hide(!0)}this.show=r,this.hide=function(e){t&&(t=I.closeDelayTimeout=clearTimeout(t),I.delayInProgress=!1),a(),I.tipOpenImminent=!1,o.data(T)&&(o.data(g,!1),e?i.hideTip(o):(I.delayInProgress=!0,I.closeDelayTimeout=setTimeout(function(){I.closeDelayTimeout=null,i.hideTip(o),I.delayInProgress=!1,t=null},n.closeDelay),t=I.closeDelayTimeout))},this.cancel=a,this.resetPosition=function(){i.resetPosition(o)}}function o(){this.compute=function(e,t,o,n,i){var s,r,a=t.split("-")[0],l=new x;switch(r=e,s=Boolean(window.SVGElement&&r[0]instanceof SVGElement)?function(e,t){var o,n,i,s,r=e.closest("svg")[0],a=e[0],l=r.createSVGPoint(),c=a.getBBox(),u=a.getScreenCTM(),p=c.width/2,f=c.height/2,w=[],d=["nw","n","ne","e","se","s","sw","w"];function h(){w.push(l.matrixTransform(u))}if(l.x=c.x,l.y=c.y,h(),l.x+=p,h(),l.x+=p,h(),l.y+=f,h(),l.y+=f,h(),l.x-=p,h(),l.x-=p,h(),l.y-=f,h(),w[0].y!==w[1].y||w[0].x!==w[7].x)for(n=Math.atan2(u.b,u.a)*O,(i=Math.ceil((n%360-22.5)/45))<1&&(i+=8);i--;)d.push(d.shift());for(s=0;s<w.length;s++)if(d[s]===t){o=w[s];break}return{top:o.y+I.scrollTop,left:o.x+I.scrollLeft}}(e,a):function(e,t){var o,n,i=e.offset(),s=e.outerWidth(),r=e.outerHeight();switch(t){case"n":o=i.left+s/2,n=i.top;break;case"e":o=i.left+s,n=i.top+r/2;break;case"s":o=i.left+s/2,n=i.top+r;break;case"w":o=i.left,n=i.top+r/2;break;case"nw":o=i.left,n=i.top;break;case"ne":o=i.left+s,n=i.top;break;case"sw":o=i.left,n=i.top+r;break;case"se":o=i.left+s,n=i.top+r}return{top:n,left:o}}(e,a),t){case"n":l.set("left",s.left-o/2),l.set("bottom",I.windowHeight-s.top+i);break;case"e":l.set("left",s.left+i),l.set("top",s.top-n/2);break;case"s":l.set("left",s.left-o/2),l.set("top",s.top+i);break;case"w":l.set("top",s.top-n/2),l.set("right",I.windowWidth-s.left+i);break;case"nw":l.set("bottom",I.windowHeight-s.top+i),l.set("right",I.windowWidth-s.left-20);break;case"nw-alt":l.set("left",s.left),l.set("bottom",I.windowHeight-s.top+i);break;case"ne":l.set("left",s.left-20),l.set("bottom",I.windowHeight-s.top+i);break;case"ne-alt":l.set("bottom",I.windowHeight-s.top+i),l.set("right",I.windowWidth-s.left);break;case"sw":l.set("top",s.top+i),l.set("right",I.windowWidth-s.left-20);break;case"sw-alt":l.set("left",s.left),l.set("top",s.top+i);break;case"se":l.set("left",s.left-20),l.set("top",s.top+i);break;case"se-alt":l.set("top",s.top+i),l.set("right",I.windowWidth-s.left)}return l}}function u(c){var r=new o,u=h("#"+c.popupId);function p(t){I.isClosing=!0,I.isTipOpen=!1,I.desyncTimeout=clearInterval(I.desyncTimeout),t.data(T,!1),t.data(g,!1),v.off("click"+P),u.off(P),u.fadeOut(c.fadeOutTime,function(){var e=new x;I.activeHover=null,I.isClosing=!1,I.isFixedTipOpen=!1,u.removeClass(),e.set("top",I.currentY+c.offset),e.set("left",I.currentX+c.offset),u.css(e),t.trigger("powerTipClose")})}function f(){var e,t,o,n;!I.isFixedTipOpen&&(I.isTipOpen||I.tipOpenImminent&&u.data(i))&&(e=u.outerWidth(),t=u.outerHeight(),(o=new x).set("top",I.currentY+c.offset),o.set("left",I.currentX+c.offset),(n=M(o,e,t))!==l.none&&(1===function(e){var t=0;for(;e;)e&=e-1,t++;return t}(n)?n===l.right?o.set("left",I.scrollLeft+I.windowWidth-e):n===l.bottom&&o.set("top",I.scrollTop+I.windowHeight-t):(o.set("left",I.currentX-e-c.offset),o.set("top",I.currentY-t-c.offset))),u.css(o))}function w(n){var e,i;c.smartPlacement||c.followMouse&&n.data(g)?(e=h.fn.powerTip.smartPlacementLists[c.placement],h.each(e,function(e,t){var o=M(s(n,t),u.outerWidth(),u.outerHeight());return i=t,o!==l.none})):(s(n,c.placement),i=c.placement),u.removeClass("w nw sw e ne se n s w se-alt sw-alt ne-alt nw-alt"),u.addClass(i)}function s(e,t){var o,n,i=0,s=new x;for(s.set("top",0),s.set("left",0),u.css(s);o=u.outerWidth(),n=u.outerHeight(),s=r.compute(e,t,o,n,c.offset),u.css(s),++i<=5&&(o!==u.outerWidth()||n!==u.outerHeight()););return s}function d(){var e=!1,t=0<h.grep(["mouseleave","mouseout","blur","focusout"],function(e){return-1!==h.inArray(e,c.closeEvents)}).length;I.isTipOpen&&!I.isClosing&&!I.delayInProgress&&t&&(!1===I.activeHover.data(T)||I.activeHover.is(":disabled")?e=!0:X(I.activeHover)||I.activeHover.is(":focus")||I.activeHover.data(g)||u.data(y)&&X(u)||(e=!0),e&&p(I.activeHover))}0===u.length&&(u=h("<div/>",{id:c.popupId}),0===e.length&&(e=h("body")),e.append(u),I.tooltips=I.tooltips?I.tooltips.add(u):u),c.followMouse&&(u.data(i)||(v.on("mousemove"+P,f),n.on("scroll"+P,f),u.data(i,!0))),this.showTip=function(o){o.data(T,!0),u.queue(function(e){!function t(o){var e;if(o.data(T)){if(I.isTipOpen)return I.isClosing||p(I.activeHover),void u.delay(100).queue(function(e){t(o),e()});var n,i,s,r,a,l;o.trigger("powerTipPreRender"),r=(n=o).data(b),a=n.data(H),l=n.data(k),r?(h.isFunction(r)&&(r=r.call(n[0])),s=r):a?(h.isFunction(a)&&(a=a.call(n[0])),0<a.length&&(s=a.clone(!0,!0))):l&&0<(i=h("#"+l)).length&&(s=i.html()),(e=s)&&(u.empty().append(e),o.trigger("powerTipRender"),I.activeHover=o,I.isTipOpen=!0,u.data(y,c.mouseOnToPopup),u.addClass(c.popupClass),!c.followMouse||o.data(g)?(w(o),I.isFixedTipOpen=!0):f(),o.data(g)||c.followMouse||v.on("click"+P,function(e){var t=e.target;t!==o[0]&&(c.mouseOnToPopup&&(t===u[0]||h.contains(u[0],t))||h.powerTip.hide())}),c.mouseOnToPopup&&!c.manual&&(u.on("mouseenter"+P,function(){I.activeHover&&I.activeHover.data(m).cancel()}),u.on("mouseleave"+P,function(){I.activeHover&&I.activeHover.data(m).hide()})),u.fadeIn(c.fadeInTime,function(){I.desyncTimeout||(I.desyncTimeout=setInterval(d,500)),o.trigger("powerTipOpen")}))}}(o),e()})},this.hideTip=p,this.resetPosition=w}function p(e){return Boolean(e&&-1<h.inArray(e.type,t)&&"number"==typeof e.pageX)}function f(){I.scrollLeft=n.scrollLeft(),I.scrollTop=n.scrollTop(),I.windowWidth=n.width(),I.windowHeight=n.height()}function w(){I.windowWidth=n.width(),I.windowHeight=n.height()}function d(){var e=n.scrollLeft(),t=n.scrollTop();e!==I.scrollLeft&&(I.currentX+=e-I.scrollLeft,I.scrollLeft=e),t!==I.scrollTop&&(I.currentY+=t-I.scrollTop,I.scrollTop=t)}function C(e){I.currentX=e.pageX,I.currentY=e.pageY}function X(e){var t=e.offset(),o=e[0].getBoundingClientRect(),n=o.right-o.left,i=o.bottom-o.top;return I.currentX>=t.left&&I.currentX<=t.left+n&&I.currentY>=t.top&&I.currentY<=t.top+i}function M(e,t,o){var n=I.scrollTop,i=I.scrollLeft,s=n+I.windowHeight,r=i+I.windowWidth,a=l.none;return(e.top<n||Math.abs(e.bottom-I.windowHeight)-o<n)&&(a|=l.top),(e.top+o>s||Math.abs(e.bottom-I.windowHeight)>s)&&(a|=l.bottom),(e.left<i||e.right+t>r)&&(a|=l.left),(e.left+t>r||e.right<i)&&(a|=l.right),a}return h.fn.powerTip=function(e,t){var s,r,o=this;return o.length?"string"===h.type(e)&&h.powerTip[e]?h.powerTip[e].call(o,o,t):(s=h.extend({},h.fn.powerTip.defaults,e),h.powerTip.destroy(o),r=new u(s),I.mouseTrackingActive||(I.mouseTrackingActive=!0,f(),h(f),v.on("mousemove"+P,C),n.on("resize"+P,w),n.on("scroll"+P,d)),o.each(function(){var e=h(this),t=e.data(b),o=e.data(H),n=e.data(k),i=e.attr("title");t||n||o||!i||(e.data(b,i),e.data(a,i),e.removeAttr("title")),e.data(m,new c(e,s,r))}),s.manual||(h.each(s.openEvents,function(e,t){-1<h.inArray(t,s.closeEvents)?o.on(t+P,function(e){h.powerTip.toggle(this,e)}):o.on(t+P,function(e){h.powerTip.show(this,e)})}),h.each(s.closeEvents,function(e,t){h.inArray(t,s.openEvents)<0&&o.on(t+P,function(e){h.powerTip.hide(this,!p(e))})}),o.on("keydown"+P,function(e){27===e.keyCode&&h.powerTip.hide(this,!0)})),I.elements=I.elements?I.elements.add(o):o,o):o},h.fn.powerTip.defaults={fadeInTime:200,fadeOutTime:100,followMouse:!1,popupId:"powerTip",popupClass:null,intentSensitivity:7,intentPollInterval:100,closeDelay:100,placement:"n",smartPlacement:!1,offset:10,mouseOnToPopup:!1,manual:!1,openEvents:["mouseenter","focus"],closeEvents:["mouseleave","blur"]},h.fn.powerTip.smartPlacementLists={n:["n","ne","nw","s"],e:["e","ne","se","w","nw","sw","n","s","e"],s:["s","se","sw","n"],w:["w","nw","sw","e","ne","se","n","s","w"],nw:["nw","w","sw","n","s","se","nw"],ne:["ne","e","se","n","s","sw","ne"],sw:["sw","w","nw","s","n","ne","sw"],se:["se","e","ne","s","n","nw","se"],"nw-alt":["nw-alt","n","ne-alt","sw-alt","s","se-alt","w","e"],"ne-alt":["ne-alt","n","nw-alt","se-alt","s","sw-alt","e","w"],"sw-alt":["sw-alt","s","se-alt","nw-alt","n","ne-alt","w","e"],"se-alt":["se-alt","s","sw-alt","ne-alt","n","nw-alt","e","w"]},h.powerTip={show:function(e,t){return p(t)?(C(t),I.previousX=t.pageX,I.previousY=t.pageY,h(e).data(m).show()):h(e).first().data(m).show(!0,!0),e},reposition:function(e){return h(e).first().data(m).resetPosition(),e},hide:function(e,t){var o;return t=!e||t,e?o=h(e).first().data(m):I.activeHover&&(o=I.activeHover.data(m)),o&&o.hide(t),e},toggle:function(e,t){return I.activeHover&&I.activeHover.is(e)?h.powerTip.hide(e,!p(t)):h.powerTip.show(e,t),e},destroy:function(e){var t=e?h(e):I.elements;return I.elements&&0!==I.elements.length&&(I.isTipOpen&&!I.isClosing&&0<t.filter(I.activeHover).length&&(I.delayInProgress&&I.activeHover.data(m).cancel(),h.powerTip.hide(I.activeHover,!0)),t.off(P).each(function(){var e=h(this),t=[a,m,T,g];e.data(a)&&(e.attr("title",e.data(a)),t.push(b)),e.removeData(t)}),I.elements=I.elements.not(t),0===I.elements.length&&(n.off(P),v.off(P),I.mouseTrackingActive=!1,I.tooltips.remove(),I.tooltips=null)),e}},h.powerTip.showTip=h.powerTip.show,h.powerTip.closeTip=h.powerTip.hide,h.powerTip});/*!
- * jQuery UI Touch Punch 0.2.3
- *
- * Copyright 2011–2014, Dave Furfero
- * Dual licensed under the MIT or GPL Version 2 licenses.
- *
- * Depends:
- *  jquery.ui.widget.js
- *  jquery.ui.mouse.js
- */
-!function(a){function f(a,b){if(!(a.originalEvent.touches.length>1)){a.preventDefault();var c=a.originalEvent.changedTouches[0],d=document.createEvent("MouseEvents");d.initMouseEvent(b,!0,!0,window,1,c.screenX,c.screenY,c.clientX,c.clientY,!1,!1,!1,!1,0,null),a.target.dispatchEvent(d)}}if(a.support.touch="ontouchend"in document,a.support.touch){var e,b=a.ui.mouse.prototype,c=b._mouseInit,d=b._mouseDestroy;b._touchStart=function(a){var b=this;!e&&b._mouseCapture(a.originalEvent.changedTouches[0])&&(e=!0,b._touchMoved=!1,f(a,"mouseover"),f(a,"mousemove"),f(a,"mousedown"))},b._touchMove=function(a){e&&(this._touchMoved=!0,f(a,"mousemove"))},b._touchEnd=function(a){e&&(f(a,"mouseup"),f(a,"mouseout"),this._touchMoved||f(a,"click"),e=!1)},b._mouseInit=function(){var b=this;b.element.bind({touchstart:a.proxy(b,"_touchStart"),touchmove:a.proxy(b,"_touchMove"),touchend:a.proxy(b,"_touchEnd")}),c.call(b)},b._mouseDestroy=function(){var b=this;b.element.unbind({touchstart:a.proxy(b,"_touchStart"),touchmove:a.proxy(b,"_touchMove"),touchend:a.proxy(b,"_touchEnd")}),d.call(b)}}}(jQuery);/*! SmartMenus jQuery Plugin - v1.1.0 - September 17, 2017
- * http://www.smartmenus.org/
- * Copyright Vasil Dinkov, Vadikom Web Ltd. http://vadikom.com; Licensed MIT */(function(t){"function"==typeof define&&define.amd?define(["jquery"],t):"object"==typeof module&&"object"==typeof module.exports?module.exports=t(require("jquery")):t(jQuery)})(function($){function initMouseDetection(t){var e=".smartmenus_mouse";if(mouseDetectionEnabled||t)mouseDetectionEnabled&&t&&($(document).off(e),mouseDetectionEnabled=!1);else{var i=!0,s=null,o={mousemove:function(t){var e={x:t.pageX,y:t.pageY,timeStamp:(new Date).getTime()};if(s){var o=Math.abs(s.x-e.x),a=Math.abs(s.y-e.y);if((o>0||a>0)&&2>=o&&2>=a&&300>=e.timeStamp-s.timeStamp&&(mouse=!0,i)){var n=$(t.target).closest("a");n.is("a")&&$.each(menuTrees,function(){return $.contains(this.$root[0],n[0])?(this.itemEnter({currentTarget:n[0]}),!1):void 0}),i=!1}}s=e}};o[touchEvents?"touchstart":"pointerover pointermove pointerout MSPointerOver MSPointerMove MSPointerOut"]=function(t){isTouchEvent(t.originalEvent)&&(mouse=!1)},$(document).on(getEventsNS(o,e)),mouseDetectionEnabled=!0}}function isTouchEvent(t){return!/^(4|mouse)$/.test(t.pointerType)}function getEventsNS(t,e){e||(e="");var i={};for(var s in t)i[s.split(" ").join(e+" ")+e]=t[s];return i}var menuTrees=[],mouse=!1,touchEvents="ontouchstart"in window,mouseDetectionEnabled=!1,requestAnimationFrame=window.requestAnimationFrame||function(t){return setTimeout(t,1e3/60)},cancelAnimationFrame=window.cancelAnimationFrame||function(t){clearTimeout(t)},canAnimate=!!$.fn.animate;return $.SmartMenus=function(t,e){this.$root=$(t),this.opts=e,this.rootId="",this.accessIdPrefix="",this.$subArrow=null,this.activatedItems=[],this.visibleSubMenus=[],this.showTimeout=0,this.hideTimeout=0,this.scrollTimeout=0,this.clickActivated=!1,this.focusActivated=!1,this.zIndexInc=0,this.idInc=0,this.$firstLink=null,this.$firstSub=null,this.disabled=!1,this.$disableOverlay=null,this.$touchScrollingSub=null,this.cssTransforms3d="perspective"in t.style||"webkitPerspective"in t.style,this.wasCollapsible=!1,this.init()},$.extend($.SmartMenus,{hideAll:function(){$.each(menuTrees,function(){this.menuHideAll()})},destroy:function(){for(;menuTrees.length;)menuTrees[0].destroy();initMouseDetection(!0)},prototype:{init:function(t){var e=this;if(!t){menuTrees.push(this),this.rootId=((new Date).getTime()+Math.random()+"").replace(/\D/g,""),this.accessIdPrefix="sm-"+this.rootId+"-",this.$root.hasClass("sm-rtl")&&(this.opts.rightToLeftSubMenus=!0);var i=".smartmenus";this.$root.data("smartmenus",this).attr("data-smartmenus-id",this.rootId).dataSM("level",1).on(getEventsNS({"mouseover focusin":$.proxy(this.rootOver,this),"mouseout focusout":$.proxy(this.rootOut,this),keydown:$.proxy(this.rootKeyDown,this)},i)).on(getEventsNS({mouseenter:$.proxy(this.itemEnter,this),mouseleave:$.proxy(this.itemLeave,this),mousedown:$.proxy(this.itemDown,this),focus:$.proxy(this.itemFocus,this),blur:$.proxy(this.itemBlur,this),click:$.proxy(this.itemClick,this)},i),"a"),i+=this.rootId,this.opts.hideOnClick&&$(document).on(getEventsNS({touchstart:$.proxy(this.docTouchStart,this),touchmove:$.proxy(this.docTouchMove,this),touchend:$.proxy(this.docTouchEnd,this),click:$.proxy(this.docClick,this)},i)),$(window).on(getEventsNS({"resize orientationchange":$.proxy(this.winResize,this)},i)),this.opts.subIndicators&&(this.$subArrow=$("<span/>").addClass("sub-arrow"),this.opts.subIndicatorsText&&this.$subArrow.html(this.opts.subIndicatorsText)),initMouseDetection()}if(this.$firstSub=this.$root.find("ul").each(function(){e.menuInit($(this))}).eq(0),this.$firstLink=this.$root.find("a").eq(0),this.opts.markCurrentItem){var s=/(index|default)\.[^#\?\/]*/i,o=/#.*/,a=window.location.href.replace(s,""),n=a.replace(o,"");this.$root.find("a").each(function(){var t=this.href.replace(s,""),i=$(this);(t==a||t==n)&&(i.addClass("current"),e.opts.markCurrentTree&&i.parentsUntil("[data-smartmenus-id]","ul").each(function(){$(this).dataSM("parent-a").addClass("current")}))})}this.wasCollapsible=this.isCollapsible()},destroy:function(t){if(!t){var e=".smartmenus";this.$root.removeData("smartmenus").removeAttr("data-smartmenus-id").removeDataSM("level").off(e),e+=this.rootId,$(document).off(e),$(window).off(e),this.opts.subIndicators&&(this.$subArrow=null)}this.menuHideAll();var i=this;this.$root.find("ul").each(function(){var t=$(this);t.dataSM("scroll-arrows")&&t.dataSM("scroll-arrows").remove(),t.dataSM("shown-before")&&((i.opts.subMenusMinWidth||i.opts.subMenusMaxWidth)&&t.css({width:"",minWidth:"",maxWidth:""}).removeClass("sm-nowrap"),t.dataSM("scroll-arrows")&&t.dataSM("scroll-arrows").remove(),t.css({zIndex:"",top:"",left:"",marginLeft:"",marginTop:"",display:""})),0==(t.attr("id")||"").indexOf(i.accessIdPrefix)&&t.removeAttr("id")}).removeDataSM("in-mega").removeDataSM("shown-before").removeDataSM("scroll-arrows").removeDataSM("parent-a").removeDataSM("level").removeDataSM("beforefirstshowfired").removeAttr("role").removeAttr("aria-hidden").removeAttr("aria-labelledby").removeAttr("aria-expanded"),this.$root.find("a.has-submenu").each(function(){var t=$(this);0==t.attr("id").indexOf(i.accessIdPrefix)&&t.removeAttr("id")}).removeClass("has-submenu").removeDataSM("sub").removeAttr("aria-haspopup").removeAttr("aria-controls").removeAttr("aria-expanded").closest("li").removeDataSM("sub"),this.opts.subIndicators&&this.$root.find("span.sub-arrow").remove(),this.opts.markCurrentItem&&this.$root.find("a.current").removeClass("current"),t||(this.$root=null,this.$firstLink=null,this.$firstSub=null,this.$disableOverlay&&(this.$disableOverlay.remove(),this.$disableOverlay=null),menuTrees.splice($.inArray(this,menuTrees),1))},disable:function(t){if(!this.disabled){if(this.menuHideAll(),!t&&!this.opts.isPopup&&this.$root.is(":visible")){var e=this.$root.offset();this.$disableOverlay=$('<div class="sm-jquery-disable-overlay"/>').css({position:"absolute",top:e.top,left:e.left,width:this.$root.outerWidth(),height:this.$root.outerHeight(),zIndex:this.getStartZIndex(!0),opacity:0}).appendTo(document.body)}this.disabled=!0}},docClick:function(t){return this.$touchScrollingSub?(this.$touchScrollingSub=null,void 0):((this.visibleSubMenus.length&&!$.contains(this.$root[0],t.target)||$(t.target).closest("a").length)&&this.menuHideAll(),void 0)},docTouchEnd:function(){if(this.lastTouch){if(!(!this.visibleSubMenus.length||void 0!==this.lastTouch.x2&&this.lastTouch.x1!=this.lastTouch.x2||void 0!==this.lastTouch.y2&&this.lastTouch.y1!=this.lastTouch.y2||this.lastTouch.target&&$.contains(this.$root[0],this.lastTouch.target))){this.hideTimeout&&(clearTimeout(this.hideTimeout),this.hideTimeout=0);var t=this;this.hideTimeout=setTimeout(function(){t.menuHideAll()},350)}this.lastTouch=null}},docTouchMove:function(t){if(this.lastTouch){var e=t.originalEvent.touches[0];this.lastTouch.x2=e.pageX,this.lastTouch.y2=e.pageY}},docTouchStart:function(t){var e=t.originalEvent.touches[0];this.lastTouch={x1:e.pageX,y1:e.pageY,target:e.target}},enable:function(){this.disabled&&(this.$disableOverlay&&(this.$disableOverlay.remove(),this.$disableOverlay=null),this.disabled=!1)},getClosestMenu:function(t){for(var e=$(t).closest("ul");e.dataSM("in-mega");)e=e.parent().closest("ul");return e[0]||null},getHeight:function(t){return this.getOffset(t,!0)},getOffset:function(t,e){var i;"none"==t.css("display")&&(i={position:t[0].style.position,visibility:t[0].style.visibility},t.css({position:"absolute",visibility:"hidden"}).show());var s=t[0].getBoundingClientRect&&t[0].getBoundingClientRect(),o=s&&(e?s.height||s.bottom-s.top:s.width||s.right-s.left);return o||0===o||(o=e?t[0].offsetHeight:t[0].offsetWidth),i&&t.hide().css(i),o},getStartZIndex:function(t){var e=parseInt(this[t?"$root":"$firstSub"].css("z-index"));return!t&&isNaN(e)&&(e=parseInt(this.$root.css("z-index"))),isNaN(e)?1:e},getTouchPoint:function(t){return t.touches&&t.touches[0]||t.changedTouches&&t.changedTouches[0]||t},getViewport:function(t){var e=t?"Height":"Width",i=document.documentElement["client"+e],s=window["inner"+e];return s&&(i=Math.min(i,s)),i},getViewportHeight:function(){return this.getViewport(!0)},getViewportWidth:function(){return this.getViewport()},getWidth:function(t){return this.getOffset(t)},handleEvents:function(){return!this.disabled&&this.isCSSOn()},handleItemEvents:function(t){return this.handleEvents()&&!this.isLinkInMegaMenu(t)},isCollapsible:function(){return"static"==this.$firstSub.css("position")},isCSSOn:function(){return"inline"!=this.$firstLink.css("display")},isFixed:function(){var t="fixed"==this.$root.css("position");return t||this.$root.parentsUntil("body").each(function(){return"fixed"==$(this).css("position")?(t=!0,!1):void 0}),t},isLinkInMegaMenu:function(t){return $(this.getClosestMenu(t[0])).hasClass("mega-menu")},isTouchMode:function(){return!mouse||this.opts.noMouseOver||this.isCollapsible()},itemActivate:function(t,e){var i=t.closest("ul"),s=i.dataSM("level");if(s>1&&(!this.activatedItems[s-2]||this.activatedItems[s-2][0]!=i.dataSM("parent-a")[0])){var o=this;$(i.parentsUntil("[data-smartmenus-id]","ul").get().reverse()).add(i).each(function(){o.itemActivate($(this).dataSM("parent-a"))})}if((!this.isCollapsible()||e)&&this.menuHideSubMenus(this.activatedItems[s-1]&&this.activatedItems[s-1][0]==t[0]?s:s-1),this.activatedItems[s-1]=t,this.$root.triggerHandler("activate.smapi",t[0])!==!1){var a=t.dataSM("sub");a&&(this.isTouchMode()||!this.opts.showOnClick||this.clickActivated)&&this.menuShow(a)}},itemBlur:function(t){var e=$(t.currentTarget);this.handleItemEvents(e)&&this.$root.triggerHandler("blur.smapi",e[0])},itemClick:function(t){var e=$(t.currentTarget);if(this.handleItemEvents(e)){if(this.$touchScrollingSub&&this.$touchScrollingSub[0]==e.closest("ul")[0])return this.$touchScrollingSub=null,t.stopPropagation(),!1;if(this.$root.triggerHandler("click.smapi",e[0])===!1)return!1;var i=$(t.target).is(".sub-arrow"),s=e.dataSM("sub"),o=s?2==s.dataSM("level"):!1,a=this.isCollapsible(),n=/toggle$/.test(this.opts.collapsibleBehavior),r=/link$/.test(this.opts.collapsibleBehavior),h=/^accordion/.test(this.opts.collapsibleBehavior);if(s&&!s.is(":visible")){if((!r||!a||i)&&(this.opts.showOnClick&&o&&(this.clickActivated=!0),this.itemActivate(e,h),s.is(":visible")))return this.focusActivated=!0,!1}else if(a&&(n||i))return this.itemActivate(e,h),this.menuHide(s),n&&(this.focusActivated=!1),!1;return this.opts.showOnClick&&o||e.hasClass("disabled")||this.$root.triggerHandler("select.smapi",e[0])===!1?!1:void 0}},itemDown:function(t){var e=$(t.currentTarget);this.handleItemEvents(e)&&e.dataSM("mousedown",!0)},itemEnter:function(t){var e=$(t.currentTarget);if(this.handleItemEvents(e)){if(!this.isTouchMode()){this.showTimeout&&(clearTimeout(this.showTimeout),this.showTimeout=0);var i=this;this.showTimeout=setTimeout(function(){i.itemActivate(e)},this.opts.showOnClick&&1==e.closest("ul").dataSM("level")?1:this.opts.showTimeout)}this.$root.triggerHandler("mouseenter.smapi",e[0])}},itemFocus:function(t){var e=$(t.currentTarget);this.handleItemEvents(e)&&(!this.focusActivated||this.isTouchMode()&&e.dataSM("mousedown")||this.activatedItems.length&&this.activatedItems[this.activatedItems.length-1][0]==e[0]||this.itemActivate(e,!0),this.$root.triggerHandler("focus.smapi",e[0]))},itemLeave:function(t){var e=$(t.currentTarget);this.handleItemEvents(e)&&(this.isTouchMode()||(e[0].blur(),this.showTimeout&&(clearTimeout(this.showTimeout),this.showTimeout=0)),e.removeDataSM("mousedown"),this.$root.triggerHandler("mouseleave.smapi",e[0]))},menuHide:function(t){if(this.$root.triggerHandler("beforehide.smapi",t[0])!==!1&&(canAnimate&&t.stop(!0,!0),"none"!=t.css("display"))){var e=function(){t.css("z-index","")};this.isCollapsible()?canAnimate&&this.opts.collapsibleHideFunction?this.opts.collapsibleHideFunction.call(this,t,e):t.hide(this.opts.collapsibleHideDuration,e):canAnimate&&this.opts.hideFunction?this.opts.hideFunction.call(this,t,e):t.hide(this.opts.hideDuration,e),t.dataSM("scroll")&&(this.menuScrollStop(t),t.css({"touch-action":"","-ms-touch-action":"","-webkit-transform":"",transform:""}).off(".smartmenus_scroll").removeDataSM("scroll").dataSM("scroll-arrows").hide()),t.dataSM("parent-a").removeClass("highlighted").attr("aria-expanded","false"),t.attr({"aria-expanded":"false","aria-hidden":"true"});var i=t.dataSM("level");this.activatedItems.splice(i-1,1),this.visibleSubMenus.splice($.inArray(t,this.visibleSubMenus),1),this.$root.triggerHandler("hide.smapi",t[0])}},menuHideAll:function(){this.showTimeout&&(clearTimeout(this.showTimeout),this.showTimeout=0);for(var t=this.opts.isPopup?1:0,e=this.visibleSubMenus.length-1;e>=t;e--)this.menuHide(this.visibleSubMenus[e]);this.opts.isPopup&&(canAnimate&&this.$root.stop(!0,!0),this.$root.is(":visible")&&(canAnimate&&this.opts.hideFunction?this.opts.hideFunction.call(this,this.$root):this.$root.hide(this.opts.hideDuration))),this.activatedItems=[],this.visibleSubMenus=[],this.clickActivated=!1,this.focusActivated=!1,this.zIndexInc=0,this.$root.triggerHandler("hideAll.smapi")},menuHideSubMenus:function(t){for(var e=this.activatedItems.length-1;e>=t;e--){var i=this.activatedItems[e].dataSM("sub");i&&this.menuHide(i)}},menuInit:function(t){if(!t.dataSM("in-mega")){t.hasClass("mega-menu")&&t.find("ul").dataSM("in-mega",!0);for(var e=2,i=t[0];(i=i.parentNode.parentNode)!=this.$root[0];)e++;var s=t.prevAll("a").eq(-1);s.length||(s=t.prevAll().find("a").eq(-1)),s.addClass("has-submenu").dataSM("sub",t),t.dataSM("parent-a",s).dataSM("level",e).parent().dataSM("sub",t);var o=s.attr("id")||this.accessIdPrefix+ ++this.idInc,a=t.attr("id")||this.accessIdPrefix+ ++this.idInc;s.attr({id:o,"aria-haspopup":"true","aria-controls":a,"aria-expanded":"false"}),t.attr({id:a,role:"group","aria-hidden":"true","aria-labelledby":o,"aria-expanded":"false"}),this.opts.subIndicators&&s[this.opts.subIndicatorsPos](this.$subArrow.clone())}},menuPosition:function(t){var e,i,s=t.dataSM("parent-a"),o=s.closest("li"),a=o.parent(),n=t.dataSM("level"),r=this.getWidth(t),h=this.getHeight(t),u=s.offset(),l=u.left,c=u.top,d=this.getWidth(s),m=this.getHeight(s),p=$(window),f=p.scrollLeft(),v=p.scrollTop(),b=this.getViewportWidth(),S=this.getViewportHeight(),g=a.parent().is("[data-sm-horizontal-sub]")||2==n&&!a.hasClass("sm-vertical"),M=this.opts.rightToLeftSubMenus&&!o.is("[data-sm-reverse]")||!this.opts.rightToLeftSubMenus&&o.is("[data-sm-reverse]"),w=2==n?this.opts.mainMenuSubOffsetX:this.opts.subMenusSubOffsetX,T=2==n?this.opts.mainMenuSubOffsetY:this.opts.subMenusSubOffsetY;if(g?(e=M?d-r-w:w,i=this.opts.bottomToTopSubMenus?-h-T:m+T):(e=M?w-r:d-w,i=this.opts.bottomToTopSubMenus?m-T-h:T),this.opts.keepInViewport){var y=l+e,I=c+i;if(M&&f>y?e=g?f-y+e:d-w:!M&&y+r>f+b&&(e=g?f+b-r-y+e:w-r),g||(S>h&&I+h>v+S?i+=v+S-h-I:(h>=S||v>I)&&(i+=v-I)),g&&(I+h>v+S+.49||v>I)||!g&&h>S+.49){var x=this;t.dataSM("scroll-arrows")||t.dataSM("scroll-arrows",$([$('<span class="scroll-up"><span class="scroll-up-arrow"></span></span>')[0],$('<span class="scroll-down"><span class="scroll-down-arrow"></span></span>')[0]]).on({mouseenter:function(){t.dataSM("scroll").up=$(this).hasClass("scroll-up"),x.menuScroll(t)},mouseleave:function(e){x.menuScrollStop(t),x.menuScrollOut(t,e)},"mousewheel DOMMouseScroll":function(t){t.preventDefault()}}).insertAfter(t));var A=".smartmenus_scroll";if(t.dataSM("scroll",{y:this.cssTransforms3d?0:i-m,step:1,itemH:m,subH:h,arrowDownH:this.getHeight(t.dataSM("scroll-arrows").eq(1))}).on(getEventsNS({mouseover:function(e){x.menuScrollOver(t,e)},mouseout:function(e){x.menuScrollOut(t,e)},"mousewheel DOMMouseScroll":function(e){x.menuScrollMousewheel(t,e)}},A)).dataSM("scroll-arrows").css({top:"auto",left:"0",marginLeft:e+(parseInt(t.css("border-left-width"))||0),width:r-(parseInt(t.css("border-left-width"))||0)-(parseInt(t.css("border-right-width"))||0),zIndex:t.css("z-index")}).eq(g&&this.opts.bottomToTopSubMenus?0:1).show(),this.isFixed()){var C={};C[touchEvents?"touchstart touchmove touchend":"pointerdown pointermove pointerup MSPointerDown MSPointerMove MSPointerUp"]=function(e){x.menuScrollTouch(t,e)},t.css({"touch-action":"none","-ms-touch-action":"none"}).on(getEventsNS(C,A))}}}t.css({top:"auto",left:"0",marginLeft:e,marginTop:i-m})},menuScroll:function(t,e,i){var s,o=t.dataSM("scroll"),a=t.dataSM("scroll-arrows"),n=o.up?o.upEnd:o.downEnd;if(!e&&o.momentum){if(o.momentum*=.92,s=o.momentum,.5>s)return this.menuScrollStop(t),void 0}else s=i||(e||!this.opts.scrollAccelerate?this.opts.scrollStep:Math.floor(o.step));var r=t.dataSM("level");if(this.activatedItems[r-1]&&this.activatedItems[r-1].dataSM("sub")&&this.activatedItems[r-1].dataSM("sub").is(":visible")&&this.menuHideSubMenus(r-1),o.y=o.up&&o.y>=n||!o.up&&n>=o.y?o.y:Math.abs(n-o.y)>s?o.y+(o.up?s:-s):n,t.css(this.cssTransforms3d?{"-webkit-transform":"translate3d(0, "+o.y+"px, 0)",transform:"translate3d(0, "+o.y+"px, 0)"}:{marginTop:o.y}),mouse&&(o.up&&o.y>o.downEnd||!o.up&&o.y<o.upEnd)&&a.eq(o.up?1:0).show(),o.y==n)mouse&&a.eq(o.up?0:1).hide(),this.menuScrollStop(t);else if(!e){this.opts.scrollAccelerate&&o.step<this.opts.scrollStep&&(o.step+=.2);var h=this;this.scrollTimeout=requestAnimationFrame(function(){h.menuScroll(t)})}},menuScrollMousewheel:function(t,e){if(this.getClosestMenu(e.target)==t[0]){e=e.originalEvent;var i=(e.wheelDelta||-e.detail)>0;t.dataSM("scroll-arrows").eq(i?0:1).is(":visible")&&(t.dataSM("scroll").up=i,this.menuScroll(t,!0))}e.preventDefault()},menuScrollOut:function(t,e){mouse&&(/^scroll-(up|down)/.test((e.relatedTarget||"").className)||(t[0]==e.relatedTarget||$.contains(t[0],e.relatedTarget))&&this.getClosestMenu(e.relatedTarget)==t[0]||t.dataSM("scroll-arrows").css("visibility","hidden"))},menuScrollOver:function(t,e){if(mouse&&!/^scroll-(up|down)/.test(e.target.className)&&this.getClosestMenu(e.target)==t[0]){this.menuScrollRefreshData(t);var i=t.dataSM("scroll"),s=$(window).scrollTop()-t.dataSM("parent-a").offset().top-i.itemH;t.dataSM("scroll-arrows").eq(0).css("margin-top",s).end().eq(1).css("margin-top",s+this.getViewportHeight()-i.arrowDownH).end().css("visibility","visible")}},menuScrollRefreshData:function(t){var e=t.dataSM("scroll"),i=$(window).scrollTop()-t.dataSM("parent-a").offset().top-e.itemH;this.cssTransforms3d&&(i=-(parseFloat(t.css("margin-top"))-i)),$.extend(e,{upEnd:i,downEnd:i+this.getViewportHeight()-e.subH})},menuScrollStop:function(t){return this.scrollTimeout?(cancelAnimationFrame(this.scrollTimeout),this.scrollTimeout=0,t.dataSM("scroll").step=1,!0):void 0},menuScrollTouch:function(t,e){if(e=e.originalEvent,isTouchEvent(e)){var i=this.getTouchPoint(e);if(this.getClosestMenu(i.target)==t[0]){var s=t.dataSM("scroll");if(/(start|down)$/i.test(e.type))this.menuScrollStop(t)?(e.preventDefault(),this.$touchScrollingSub=t):this.$touchScrollingSub=null,this.menuScrollRefreshData(t),$.extend(s,{touchStartY:i.pageY,touchStartTime:e.timeStamp});else if(/move$/i.test(e.type)){var o=void 0!==s.touchY?s.touchY:s.touchStartY;if(void 0!==o&&o!=i.pageY){this.$touchScrollingSub=t;var a=i.pageY>o;void 0!==s.up&&s.up!=a&&$.extend(s,{touchStartY:i.pageY,touchStartTime:e.timeStamp}),$.extend(s,{up:a,touchY:i.pageY}),this.menuScroll(t,!0,Math.abs(i.pageY-o))}e.preventDefault()}else void 0!==s.touchY&&((s.momentum=15*Math.pow(Math.abs(i.pageY-s.touchStartY)/(e.timeStamp-s.touchStartTime),2))&&(this.menuScrollStop(t),this.menuScroll(t),e.preventDefault()),delete s.touchY)}}},menuShow:function(t){if((t.dataSM("beforefirstshowfired")||(t.dataSM("beforefirstshowfired",!0),this.$root.triggerHandler("beforefirstshow.smapi",t[0])!==!1))&&this.$root.triggerHandler("beforeshow.smapi",t[0])!==!1&&(t.dataSM("shown-before",!0),canAnimate&&t.stop(!0,!0),!t.is(":visible"))){var e=t.dataSM("parent-a"),i=this.isCollapsible();if((this.opts.keepHighlighted||i)&&e.addClass("highlighted"),i)t.removeClass("sm-nowrap").css({zIndex:"",width:"auto",minWidth:"",maxWidth:"",top:"",left:"",marginLeft:"",marginTop:""});else{if(t.css("z-index",this.zIndexInc=(this.zIndexInc||this.getStartZIndex())+1),(this.opts.subMenusMinWidth||this.opts.subMenusMaxWidth)&&(t.css({width:"auto",minWidth:"",maxWidth:""}).addClass("sm-nowrap"),this.opts.subMenusMinWidth&&t.css("min-width",this.opts.subMenusMinWidth),this.opts.subMenusMaxWidth)){var s=this.getWidth(t);t.css("max-width",this.opts.subMenusMaxWidth),s>this.getWidth(t)&&t.removeClass("sm-nowrap").css("width",this.opts.subMenusMaxWidth)}this.menuPosition(t)}var o=function(){t.css("overflow","")};i?canAnimate&&this.opts.collapsibleShowFunction?this.opts.collapsibleShowFunction.call(this,t,o):t.show(this.opts.collapsibleShowDuration,o):canAnimate&&this.opts.showFunction?this.opts.showFunction.call(this,t,o):t.show(this.opts.showDuration,o),e.attr("aria-expanded","true"),t.attr({"aria-expanded":"true","aria-hidden":"false"}),this.visibleSubMenus.push(t),this.$root.triggerHandler("show.smapi",t[0])}},popupHide:function(t){this.hideTimeout&&(clearTimeout(this.hideTimeout),this.hideTimeout=0);var e=this;this.hideTimeout=setTimeout(function(){e.menuHideAll()},t?1:this.opts.hideTimeout)},popupShow:function(t,e){if(!this.opts.isPopup)return alert('SmartMenus jQuery Error:\n\nIf you want to show this menu via the "popupShow" method, set the isPopup:true option.'),void 0;if(this.hideTimeout&&(clearTimeout(this.hideTimeout),this.hideTimeout=0),this.$root.dataSM("shown-before",!0),canAnimate&&this.$root.stop(!0,!0),!this.$root.is(":visible")){this.$root.css({left:t,top:e});var i=this,s=function(){i.$root.css("overflow","")};canAnimate&&this.opts.showFunction?this.opts.showFunction.call(this,this.$root,s):this.$root.show(this.opts.showDuration,s),this.visibleSubMenus[0]=this.$root}},refresh:function(){this.destroy(!0),this.init(!0)},rootKeyDown:function(t){if(this.handleEvents())switch(t.keyCode){case 27:var e=this.activatedItems[0];if(e){this.menuHideAll(),e[0].focus();var i=e.dataSM("sub");i&&this.menuHide(i)}break;case 32:var s=$(t.target);if(s.is("a")&&this.handleItemEvents(s)){var i=s.dataSM("sub");i&&!i.is(":visible")&&(this.itemClick({currentTarget:t.target}),t.preventDefault())}}},rootOut:function(t){if(this.handleEvents()&&!this.isTouchMode()&&t.target!=this.$root[0]&&(this.hideTimeout&&(clearTimeout(this.hideTimeout),this.hideTimeout=0),!this.opts.showOnClick||!this.opts.hideOnClick)){var e=this;this.hideTimeout=setTimeout(function(){e.menuHideAll()},this.opts.hideTimeout)}},rootOver:function(t){this.handleEvents()&&!this.isTouchMode()&&t.target!=this.$root[0]&&this.hideTimeout&&(clearTimeout(this.hideTimeout),this.hideTimeout=0)},winResize:function(t){if(this.handleEvents()){if(!("onorientationchange"in window)||"orientationchange"==t.type){var e=this.isCollapsible();this.wasCollapsible&&e||(this.activatedItems.length&&this.activatedItems[this.activatedItems.length-1][0].blur(),this.menuHideAll()),this.wasCollapsible=e}}else if(this.$disableOverlay){var i=this.$root.offset();this.$disableOverlay.css({top:i.top,left:i.left,width:this.$root.outerWidth(),height:this.$root.outerHeight()})}}}}),$.fn.dataSM=function(t,e){return e?this.data(t+"_smartmenus",e):this.data(t+"_smartmenus")},$.fn.removeDataSM=function(t){return this.removeData(t+"_smartmenus")},$.fn.smartmenus=function(options){if("string"==typeof options){var args=arguments,method=options;return Array.prototype.shift.call(args),this.each(function(){var t=$(this).data("smartmenus");t&&t[method]&&t[method].apply(t,args)})}return this.each(function(){var dataOpts=$(this).data("sm-options")||null;if(dataOpts)try{dataOpts=eval("("+dataOpts+")")}catch(e){dataOpts=null,alert('ERROR\n\nSmartMenus jQuery init:\nInvalid "data-sm-options" attribute value syntax.')}new $.SmartMenus(this,$.extend({},$.fn.smartmenus.defaults,options,dataOpts))})},$.fn.smartmenus.defaults={isPopup:!1,mainMenuSubOffsetX:0,mainMenuSubOffsetY:0,subMenusSubOffsetX:0,subMenusSubOffsetY:0,subMenusMinWidth:"10em",subMenusMaxWidth:"20em",subIndicators:!0,subIndicatorsPos:"append",subIndicatorsText:"",scrollStep:30,scrollAccelerate:!0,showTimeout:250,hideTimeout:500,showDuration:0,showFunction:null,hideDuration:0,hideFunction:function(t,e){t.fadeOut(200,e)},collapsibleShowDuration:0,collapsibleShowFunction:function(t,e){t.slideDown(200,e)},collapsibleHideDuration:0,collapsibleHideFunction:function(t,e){t.slideUp(200,e)},showOnClick:!1,hideOnClick:!0,noMouseOver:!1,keepInViewport:!0,keepHighlighted:!0,markCurrentItem:!1,markCurrentTree:!0,rightToLeftSubMenus:!1,bottomToTopSubMenus:!1,collapsibleBehavior:"default"},$});
\ No newline at end of file
diff --git a/docs/html/menu.js b/docs/html/menu.js
deleted file mode 100644
index 433c15b..0000000
--- a/docs/html/menu.js
+++ /dev/null
@@ -1,50 +0,0 @@
-/*
- @licstart  The following is the entire license notice for the
- JavaScript code in this file.
-
- Copyright (C) 1997-2017 by Dimitri van Heesch
-
- This program is free software; you can redistribute it and/or modify
- it under the terms of the GNU General Public License as published by
- the Free Software Foundation; either version 2 of the License, or
- (at your option) any later version.
-
- This program is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- GNU General Public License for more details.
-
- You should have received a copy of the GNU General Public License along
- with this program; if not, write to the Free Software Foundation, Inc.,
- 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
-
- @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;
-  }
-
-  $('#main-nav').append(makeTree(menudata,relPath));
-  $('#main-nav').children(':first').addClass('sm sm-dox').attr('id','main-menu');
-  if (searchEnabled) {
-    if (serverSide) {
-      $('#main-menu').append('<li style="float:right"><div id="MSearchBox" class="MSearchBoxInactive"><div class="left"><form id="FSearchBox" action="'+relPath+searchPage+'" method="get"><img id="MSearchSelect" src="'+relPath+'search/mag.png" 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></li>');
-    } else {
-      $('#main-menu').append('<li style="float:right"><div id="MSearchBox" class="MSearchBoxInactive"><span class="left"><img id="MSearchSelect" src="'+relPath+'search/mag_sel.png" 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.png" alt=""/></a></span></div></li>');
-    }
-  }
-  $('#main-menu').smartmenus();
-}
-/* @license-end */
diff --git a/docs/html/menudata.js b/docs/html/menudata.js
deleted file mode 100644
index e79079b..0000000
--- a/docs/html/menudata.js
+++ /dev/null
@@ -1,64 +0,0 @@
-/*
-@ @licstart  The following is the entire license notice for the
-JavaScript code in this file.
-
-Copyright (C) 1997-2019 by Dimitri van Heesch
-
-This program is free software; you can redistribute it and/or modify
-it under the terms of version 2 of the GNU General Public License as published by
-the Free Software Foundation
-
-This program is distributed in the hope that it will be useful,
-but WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-GNU General Public License for more details.
-
-You should have received a copy of the GNU General Public License along
-with this program; if not, write to the Free Software Foundation, Inc.,
-51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
-
-@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 Hierarchy",url:"hierarchy.html"},
-{text:"Class Members",url:"functions.html",children:[
-{text:"All",url:"functions.html",children:[
-{text:"a",url:"functions.html#index_a"},
-{text:"b",url:"functions.html#index_b"},
-{text:"c",url:"functions.html#index_c"},
-{text:"d",url:"functions.html#index_d"},
-{text:"e",url:"functions.html#index_e"},
-{text:"f",url:"functions.html#index_f"},
-{text:"g",url:"functions.html#index_g"},
-{text:"m",url:"functions.html#index_m"},
-{text:"o",url:"functions.html#index_o"},
-{text:"p",url:"functions.html#index_p"},
-{text:"r",url:"functions.html#index_r"},
-{text:"s",url:"functions.html#index_s"},
-{text:"t",url:"functions.html#index_t"},
-{text:"u",url:"functions.html#index_u"},
-{text:"w",url:"functions.html#index_w"},
-{text:"~",url:"functions.html#index__7E"}]},
-{text:"Functions",url:"functions_func.html",children:[
-{text:"a",url:"functions_func.html#index_a"},
-{text:"c",url:"functions_func.html#index_c"},
-{text:"d",url:"functions_func.html#index_d"},
-{text:"e",url:"functions_func.html#index_e"},
-{text:"f",url:"functions_func.html#index_f"},
-{text:"g",url:"functions_func.html#index_g"},
-{text:"o",url:"functions_func.html#index_o"},
-{text:"p",url:"functions_func.html#index_p"},
-{text:"r",url:"functions_func.html#index_r"},
-{text:"s",url:"functions_func.html#index_s"},
-{text:"t",url:"functions_func.html#index_t"},
-{text:"u",url:"functions_func.html#index_u"},
-{text:"w",url:"functions_func.html#index_w"},
-{text:"~",url:"functions_func.html#index__7E"}]},
-{text:"Variables",url:"functions_vars.html"}]}]},
-{text:"Files",url:"files.html",children:[
-{text:"File List",url:"files.html"}]}]}
diff --git a/docs/html/nav_f.png b/docs/html/nav_f.png
deleted file mode 100644
index 72a58a5..0000000
Binary files a/docs/html/nav_f.png and /dev/null differ
diff --git a/docs/html/nav_g.png b/docs/html/nav_g.png
deleted file mode 100644
index 2093a23..0000000
Binary files a/docs/html/nav_g.png and /dev/null differ
diff --git a/docs/html/nav_h.png b/docs/html/nav_h.png
deleted file mode 100644
index 33389b1..0000000
Binary files a/docs/html/nav_h.png and /dev/null differ
diff --git a/docs/html/open.png b/docs/html/open.png
deleted file mode 100644
index 30f75c7..0000000
Binary files a/docs/html/open.png and /dev/null differ
diff --git a/docs/html/plottyfile_8cpp_source.html b/docs/html/plottyfile_8cpp_source.html
deleted file mode 100644
index e1bfc52..0000000
--- a/docs/html/plottyfile_8cpp_source.html
+++ /dev/null
@@ -1,109 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml">
-<head>
-<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
-<meta http-equiv="X-UA-Compatible" content="IE=9"/>
-<meta name="generator" content="Doxygen 1.8.16"/>
-<meta name="viewport" content="width=device-width, initial-scale=1"/>
-<title>B15F: drv/plottyfile.cpp 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">B15F
-   </div>
-   <div id="projectbrief">Board 15 Famulus Edition</div>
-  </td>
- </tr>
- </tbody>
-</table>
-</div>
-<!-- end header part -->
-<!-- Generated by Doxygen 1.8.16 -->
-<script type="text/javascript">
-/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
-var searchBox = new SearchBox("searchBox", "search",false,'Search');
-/* @license-end */
-</script>
-<script type="text/javascript" src="menudata.js"></script>
-<script type="text/javascript" src="menu.js"></script>
-<script type="text/javascript">
-/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
-$(function() {
-  initMenu('',true,false,'search.php','Search');
-  $(document).ready(function() { init_search(); });
-});
-/* @license-end */</script>
-<div id="main-nav"></div>
-<!-- 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 id="nav-path" class="navpath">
-  <ul>
-<li class="navelem"><a class="el" href="dir_587c94d866dbb2f408f78cf41f9b2f8d.html">drv</a></li>  </ul>
-</div>
-</div><!-- top -->
-<div class="header">
-  <div class="headertitle">
-<div class="title">plottyfile.cpp</div>  </div>
-</div><!--header-->
-<div class="contents">
-<div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno">    1</span>&#160;<span class="preprocessor">#include &quot;plottyfile.h&quot;</span></div><div class="line"><a name="l00002"></a><span class="lineno">    2</span>&#160; </div><div class="line"><a name="l00003"></a><span class="lineno"><a class="line" href="classPlottyFile.html#ae091e6eaaca16302f17572ac7dec6f7c">    3</a></span>&#160;<span class="keywordtype">void</span> <a class="code" href="classPlottyFile.html#ae091e6eaaca16302f17572ac7dec6f7c">PlottyFile::addDot</a>(<a class="code" href="classDot.html">Dot</a>&amp; dot)</div><div class="line"><a name="l00004"></a><span class="lineno">    4</span>&#160;{</div><div class="line"><a name="l00005"></a><span class="lineno">    5</span>&#160;    dots.push_back(dot);</div><div class="line"><a name="l00006"></a><span class="lineno">    6</span>&#160;}</div><div class="line"><a name="l00007"></a><span class="lineno">    7</span>&#160; </div><div class="line"><a name="l00008"></a><span class="lineno"><a class="line" href="classPlottyFile.html#a80e4b45219b4e9571992edfc28a28568">    8</a></span>&#160;<span class="keywordtype">void</span> <a class="code" href="classPlottyFile.html#ae091e6eaaca16302f17572ac7dec6f7c">PlottyFile::addDot</a>(<a class="code" href="classDot.html">Dot</a> dot)</div><div class="line"><a name="l00009"></a><span class="lineno">    9</span>&#160;{</div><div class="line"><a name="l00010"></a><span class="lineno">   10</span>&#160;    dots.push_back(dot);</div><div class="line"><a name="l00011"></a><span class="lineno">   11</span>&#160;}</div><div class="line"><a name="l00012"></a><span class="lineno">   12</span>&#160; </div><div class="line"><a name="l00013"></a><span class="lineno"><a class="line" href="classPlottyFile.html#a4e5ab1ebb012a5cc1a3d6458a4cd512f">   13</a></span>&#160;<span class="keywordtype">void</span> <a class="code" href="classPlottyFile.html#a4e5ab1ebb012a5cc1a3d6458a4cd512f">PlottyFile::setFunctionType</a>(FunctionType function_type)</div><div class="line"><a name="l00014"></a><span class="lineno">   14</span>&#160;{</div><div class="line"><a name="l00015"></a><span class="lineno">   15</span>&#160;    this-&gt;function_type = function_type;</div><div class="line"><a name="l00016"></a><span class="lineno">   16</span>&#160;}</div><div class="line"><a name="l00017"></a><span class="lineno">   17</span>&#160; </div><div class="line"><a name="l00018"></a><span class="lineno"><a class="line" href="classPlottyFile.html#a1953ee0d9a87b7353c16139584e9c2ae">   18</a></span>&#160;<span class="keywordtype">void</span> <a class="code" href="classPlottyFile.html#a1953ee0d9a87b7353c16139584e9c2ae">PlottyFile::setQuadrant</a>(uint8_t quadrant)</div><div class="line"><a name="l00019"></a><span class="lineno">   19</span>&#160;{</div><div class="line"><a name="l00020"></a><span class="lineno">   20</span>&#160;    <span class="keywordflow">if</span>(quadrant &lt; 1 || quadrant &gt; 4)</div><div class="line"><a name="l00021"></a><span class="lineno">   21</span>&#160;        <span class="keywordflow">throw</span> std::range_error(<span class="stringliteral">&quot;Ungueltiger Quadrant&quot;</span>);</div><div class="line"><a name="l00022"></a><span class="lineno">   22</span>&#160;    this-&gt;quadrant = quadrant;</div><div class="line"><a name="l00023"></a><span class="lineno">   23</span>&#160;}</div><div class="line"><a name="l00024"></a><span class="lineno">   24</span>&#160; </div><div class="line"><a name="l00025"></a><span class="lineno"><a class="line" href="classPlottyFile.html#a80c2c2e97a454566f9c1f2c51e1d7f3e">   25</a></span>&#160;<span class="keywordtype">void</span> <a class="code" href="classPlottyFile.html#a80c2c2e97a454566f9c1f2c51e1d7f3e">PlottyFile::setRefX</a>(uint16_t ref_x)</div><div class="line"><a name="l00026"></a><span class="lineno">   26</span>&#160;{</div><div class="line"><a name="l00027"></a><span class="lineno">   27</span>&#160;    this-&gt;ref_x = ref_x;</div><div class="line"><a name="l00028"></a><span class="lineno">   28</span>&#160;}</div><div class="line"><a name="l00029"></a><span class="lineno">   29</span>&#160; </div><div class="line"><a name="l00030"></a><span class="lineno"><a class="line" href="classPlottyFile.html#a3a371228ddcc007e97eebe7cc04dffc2">   30</a></span>&#160;<span class="keywordtype">void</span> <a class="code" href="classPlottyFile.html#a3a371228ddcc007e97eebe7cc04dffc2">PlottyFile::setRefY</a>(uint16_t ref_y)</div><div class="line"><a name="l00031"></a><span class="lineno">   31</span>&#160;{</div><div class="line"><a name="l00032"></a><span class="lineno">   32</span>&#160;    this-&gt;ref_y = ref_y;</div><div class="line"><a name="l00033"></a><span class="lineno">   33</span>&#160;}</div><div class="line"><a name="l00034"></a><span class="lineno">   34</span>&#160; </div><div class="line"><a name="l00035"></a><span class="lineno"><a class="line" href="classPlottyFile.html#aa676414793becb975506f48d6e949dd0">   35</a></span>&#160;<span class="keywordtype">void</span> <a class="code" href="classPlottyFile.html#aa676414793becb975506f48d6e949dd0">PlottyFile::setParaFirstCurve</a>(uint16_t para_first)</div><div class="line"><a name="l00036"></a><span class="lineno">   36</span>&#160;{</div><div class="line"><a name="l00037"></a><span class="lineno">   37</span>&#160;    this-&gt;para_first = para_first;</div><div class="line"><a name="l00038"></a><span class="lineno">   38</span>&#160;}</div><div class="line"><a name="l00039"></a><span class="lineno">   39</span>&#160; </div><div class="line"><a name="l00040"></a><span class="lineno"><a class="line" href="classPlottyFile.html#a6caebd31e04e2e7081cc007047350355">   40</a></span>&#160;<span class="keywordtype">void</span> <a class="code" href="classPlottyFile.html#a6caebd31e04e2e7081cc007047350355">PlottyFile::setParaStepWidth</a>(uint16_t para_stepwidth)</div><div class="line"><a name="l00041"></a><span class="lineno">   41</span>&#160;{</div><div class="line"><a name="l00042"></a><span class="lineno">   42</span>&#160;    this-&gt;para_stepwidth = para_stepwidth;</div><div class="line"><a name="l00043"></a><span class="lineno">   43</span>&#160;}</div><div class="line"><a name="l00044"></a><span class="lineno">   44</span>&#160; </div><div class="line"><a name="l00045"></a><span class="lineno"><a class="line" href="classPlottyFile.html#ab8d35a841ca9c325fca671cf34e03527">   45</a></span>&#160;<span class="keywordtype">void</span> <a class="code" href="classPlottyFile.html#ab8d35a841ca9c325fca671cf34e03527">PlottyFile::setUnitX</a>(std::string unit_x)</div><div class="line"><a name="l00046"></a><span class="lineno">   46</span>&#160;{</div><div class="line"><a name="l00047"></a><span class="lineno">   47</span>&#160;    this-&gt;unit_x = unit_x;</div><div class="line"><a name="l00048"></a><span class="lineno">   48</span>&#160;}</div><div class="line"><a name="l00049"></a><span class="lineno">   49</span>&#160; </div><div class="line"><a name="l00050"></a><span class="lineno"><a class="line" href="classPlottyFile.html#aa0449c290265d55d6223b19cf0a88b0a">   50</a></span>&#160;<span class="keywordtype">void</span> <a class="code" href="classPlottyFile.html#aa0449c290265d55d6223b19cf0a88b0a">PlottyFile::setDescX</a>(std::string desc_x)</div><div class="line"><a name="l00051"></a><span class="lineno">   51</span>&#160;{</div><div class="line"><a name="l00052"></a><span class="lineno">   52</span>&#160;    this-&gt;desc_x = desc_x;</div><div class="line"><a name="l00053"></a><span class="lineno">   53</span>&#160;}</div><div class="line"><a name="l00054"></a><span class="lineno">   54</span>&#160; </div><div class="line"><a name="l00055"></a><span class="lineno"><a class="line" href="classPlottyFile.html#abb18c814f435926f741f7ceb310f3059">   55</a></span>&#160;<span class="keywordtype">void</span> <a class="code" href="classPlottyFile.html#abb18c814f435926f741f7ceb310f3059">PlottyFile::setUnitY</a>(std::string unit_y)</div><div class="line"><a name="l00056"></a><span class="lineno">   56</span>&#160;{</div><div class="line"><a name="l00057"></a><span class="lineno">   57</span>&#160;    this-&gt;unit_y = unit_y;</div><div class="line"><a name="l00058"></a><span class="lineno">   58</span>&#160;}</div><div class="line"><a name="l00059"></a><span class="lineno">   59</span>&#160; </div><div class="line"><a name="l00060"></a><span class="lineno"><a class="line" href="classPlottyFile.html#a38a3a4dfc76bc70523727584bf01d590">   60</a></span>&#160;<span class="keywordtype">void</span> <a class="code" href="classPlottyFile.html#a38a3a4dfc76bc70523727584bf01d590">PlottyFile::setDescY</a>(std::string desc_y)</div><div class="line"><a name="l00061"></a><span class="lineno">   61</span>&#160;{</div><div class="line"><a name="l00062"></a><span class="lineno">   62</span>&#160;    this-&gt;desc_y = desc_y;</div><div class="line"><a name="l00063"></a><span class="lineno">   63</span>&#160;}</div><div class="line"><a name="l00064"></a><span class="lineno">   64</span>&#160; </div><div class="line"><a name="l00065"></a><span class="lineno"><a class="line" href="classPlottyFile.html#abbac84109a1e0958a4ca5c270fac0986">   65</a></span>&#160;<span class="keywordtype">void</span> <a class="code" href="classPlottyFile.html#abbac84109a1e0958a4ca5c270fac0986">PlottyFile::setUnitPara</a>(std::string unit_para)</div><div class="line"><a name="l00066"></a><span class="lineno">   66</span>&#160;{</div><div class="line"><a name="l00067"></a><span class="lineno">   67</span>&#160;    this-&gt;unit_para = unit_para;</div><div class="line"><a name="l00068"></a><span class="lineno">   68</span>&#160;}</div><div class="line"><a name="l00069"></a><span class="lineno">   69</span>&#160; </div><div class="line"><a name="l00070"></a><span class="lineno"><a class="line" href="classPlottyFile.html#a431904143c3c1164a2e8b8cfec3c77ab">   70</a></span>&#160;<span class="keywordtype">void</span> <a class="code" href="classPlottyFile.html#a431904143c3c1164a2e8b8cfec3c77ab">PlottyFile::setDescPara</a>(std::string desc_para)</div><div class="line"><a name="l00071"></a><span class="lineno">   71</span>&#160;{</div><div class="line"><a name="l00072"></a><span class="lineno">   72</span>&#160;    this-&gt;desc_para = desc_para;</div><div class="line"><a name="l00073"></a><span class="lineno">   73</span>&#160;}</div><div class="line"><a name="l00074"></a><span class="lineno">   74</span>&#160; </div><div class="line"><a name="l00075"></a><span class="lineno"><a class="line" href="classPlottyFile.html#a88bb7d8350ed5fbc7a40e8d903c94bdb">   75</a></span>&#160;FunctionType <a class="code" href="classPlottyFile.html#a88bb7d8350ed5fbc7a40e8d903c94bdb">PlottyFile::getFunctionType</a>()<span class="keyword"> const</span></div><div class="line"><a name="l00076"></a><span class="lineno">   76</span>&#160;<span class="keyword"></span>{</div><div class="line"><a name="l00077"></a><span class="lineno">   77</span>&#160;    <span class="keywordflow">return</span> function_type;</div><div class="line"><a name="l00078"></a><span class="lineno">   78</span>&#160;}</div><div class="line"><a name="l00079"></a><span class="lineno">   79</span>&#160; </div><div class="line"><a name="l00080"></a><span class="lineno"><a class="line" href="classPlottyFile.html#a54e94e80061a27614f2d4d63697d3376">   80</a></span>&#160;uint8_t <a class="code" href="classPlottyFile.html#a54e94e80061a27614f2d4d63697d3376">PlottyFile::getQuadrant</a>()<span class="keyword"> const</span></div><div class="line"><a name="l00081"></a><span class="lineno">   81</span>&#160;<span class="keyword"></span>{</div><div class="line"><a name="l00082"></a><span class="lineno">   82</span>&#160;    <span class="keywordflow">return</span> quadrant;</div><div class="line"><a name="l00083"></a><span class="lineno">   83</span>&#160;}</div><div class="line"><a name="l00084"></a><span class="lineno">   84</span>&#160; </div><div class="line"><a name="l00085"></a><span class="lineno"><a class="line" href="classPlottyFile.html#a7dd84b9f0826f3220fc6b5a4f1ce9890">   85</a></span>&#160;uint16_t <a class="code" href="classPlottyFile.html#a7dd84b9f0826f3220fc6b5a4f1ce9890">PlottyFile::getRefX</a>()<span class="keyword"> const</span></div><div class="line"><a name="l00086"></a><span class="lineno">   86</span>&#160;<span class="keyword"></span>{</div><div class="line"><a name="l00087"></a><span class="lineno">   87</span>&#160;    <span class="keywordflow">return</span> ref_x;</div><div class="line"><a name="l00088"></a><span class="lineno">   88</span>&#160;}</div><div class="line"><a name="l00089"></a><span class="lineno">   89</span>&#160; </div><div class="line"><a name="l00090"></a><span class="lineno"><a class="line" href="classPlottyFile.html#ae6650c61a3b1a610ce716253418bd7f2">   90</a></span>&#160;uint16_t <a class="code" href="classPlottyFile.html#ae6650c61a3b1a610ce716253418bd7f2">PlottyFile::getRefY</a>()<span class="keyword"> const</span></div><div class="line"><a name="l00091"></a><span class="lineno">   91</span>&#160;<span class="keyword"></span>{</div><div class="line"><a name="l00092"></a><span class="lineno">   92</span>&#160;    <span class="keywordflow">return</span> ref_y;</div><div class="line"><a name="l00093"></a><span class="lineno">   93</span>&#160;}</div><div class="line"><a name="l00094"></a><span class="lineno">   94</span>&#160; </div><div class="line"><a name="l00095"></a><span class="lineno"><a class="line" href="classPlottyFile.html#a40828c93d66fe80166c4f603d5bdfa48">   95</a></span>&#160;uint16_t <a class="code" href="classPlottyFile.html#a40828c93d66fe80166c4f603d5bdfa48">PlottyFile::getParaFirstCurve</a>()<span class="keyword"> const</span></div><div class="line"><a name="l00096"></a><span class="lineno">   96</span>&#160;<span class="keyword"></span>{</div><div class="line"><a name="l00097"></a><span class="lineno">   97</span>&#160;    <span class="keywordflow">return</span> para_first;</div><div class="line"><a name="l00098"></a><span class="lineno">   98</span>&#160;}</div><div class="line"><a name="l00099"></a><span class="lineno">   99</span>&#160; </div><div class="line"><a name="l00100"></a><span class="lineno"><a class="line" href="classPlottyFile.html#a9da23f2bb8e6eb1837fc992ffd4057db">  100</a></span>&#160;uint16_t <a class="code" href="classPlottyFile.html#a9da23f2bb8e6eb1837fc992ffd4057db">PlottyFile::getParaStepWidth</a>()<span class="keyword"> const</span></div><div class="line"><a name="l00101"></a><span class="lineno">  101</span>&#160;<span class="keyword"></span>{</div><div class="line"><a name="l00102"></a><span class="lineno">  102</span>&#160;    <span class="keywordflow">return</span> para_stepwidth;</div><div class="line"><a name="l00103"></a><span class="lineno">  103</span>&#160;}</div><div class="line"><a name="l00104"></a><span class="lineno">  104</span>&#160; </div><div class="line"><a name="l00105"></a><span class="lineno"><a class="line" href="classPlottyFile.html#af952ac5e2c40896acaf6a86063874fe3">  105</a></span>&#160;std::string <a class="code" href="classPlottyFile.html#af952ac5e2c40896acaf6a86063874fe3">PlottyFile::getUnitX</a>()<span class="keyword"> const</span></div><div class="line"><a name="l00106"></a><span class="lineno">  106</span>&#160;<span class="keyword"></span>{</div><div class="line"><a name="l00107"></a><span class="lineno">  107</span>&#160;    <span class="keywordflow">return</span> unit_x;</div><div class="line"><a name="l00108"></a><span class="lineno">  108</span>&#160;}</div><div class="line"><a name="l00109"></a><span class="lineno">  109</span>&#160; </div><div class="line"><a name="l00110"></a><span class="lineno"><a class="line" href="classPlottyFile.html#a9cf7baa569be308c2cf6e07cadded09d">  110</a></span>&#160;std::string <a class="code" href="classPlottyFile.html#a9cf7baa569be308c2cf6e07cadded09d">PlottyFile::getDescX</a>()<span class="keyword"> const</span></div><div class="line"><a name="l00111"></a><span class="lineno">  111</span>&#160;<span class="keyword"></span>{</div><div class="line"><a name="l00112"></a><span class="lineno">  112</span>&#160;    <span class="keywordflow">return</span> desc_x;</div><div class="line"><a name="l00113"></a><span class="lineno">  113</span>&#160;}</div><div class="line"><a name="l00114"></a><span class="lineno">  114</span>&#160; </div><div class="line"><a name="l00115"></a><span class="lineno"><a class="line" href="classPlottyFile.html#a746b96036872dbece204e9739f3413b6">  115</a></span>&#160;std::string <a class="code" href="classPlottyFile.html#a746b96036872dbece204e9739f3413b6">PlottyFile::getUnitY</a>()<span class="keyword"> const</span></div><div class="line"><a name="l00116"></a><span class="lineno">  116</span>&#160;<span class="keyword"></span>{</div><div class="line"><a name="l00117"></a><span class="lineno">  117</span>&#160;    <span class="keywordflow">return</span> unit_y;</div><div class="line"><a name="l00118"></a><span class="lineno">  118</span>&#160;}</div><div class="line"><a name="l00119"></a><span class="lineno">  119</span>&#160; </div><div class="line"><a name="l00120"></a><span class="lineno"><a class="line" href="classPlottyFile.html#ab4a847fd71a804182f211233e194df45">  120</a></span>&#160;std::string <a class="code" href="classPlottyFile.html#ab4a847fd71a804182f211233e194df45">PlottyFile::getDescY</a>()<span class="keyword"> const</span></div><div class="line"><a name="l00121"></a><span class="lineno">  121</span>&#160;<span class="keyword"></span>{</div><div class="line"><a name="l00122"></a><span class="lineno">  122</span>&#160;    <span class="keywordflow">return</span> desc_y;</div><div class="line"><a name="l00123"></a><span class="lineno">  123</span>&#160;}</div><div class="line"><a name="l00124"></a><span class="lineno">  124</span>&#160; </div><div class="line"><a name="l00125"></a><span class="lineno"><a class="line" href="classPlottyFile.html#abcda4139adf8c5ab8a93b13b84ac097c">  125</a></span>&#160;std::string <a class="code" href="classPlottyFile.html#abcda4139adf8c5ab8a93b13b84ac097c">PlottyFile::getUnitPara</a>()<span class="keyword"> const</span></div><div class="line"><a name="l00126"></a><span class="lineno">  126</span>&#160;<span class="keyword"></span>{</div><div class="line"><a name="l00127"></a><span class="lineno">  127</span>&#160;    <span class="keywordflow">return</span> unit_para;</div><div class="line"><a name="l00128"></a><span class="lineno">  128</span>&#160;}</div><div class="line"><a name="l00129"></a><span class="lineno">  129</span>&#160; </div><div class="line"><a name="l00130"></a><span class="lineno"><a class="line" href="classPlottyFile.html#a536967daae3b382a5d6575f55450e198">  130</a></span>&#160;std::string <a class="code" href="classPlottyFile.html#a536967daae3b382a5d6575f55450e198">PlottyFile::getDescPara</a>()<span class="keyword"> const</span></div><div class="line"><a name="l00131"></a><span class="lineno">  131</span>&#160;<span class="keyword"></span>{</div><div class="line"><a name="l00132"></a><span class="lineno">  132</span>&#160;    <span class="keywordflow">return</span> desc_para;</div><div class="line"><a name="l00133"></a><span class="lineno">  133</span>&#160;}</div><div class="line"><a name="l00134"></a><span class="lineno">  134</span>&#160; </div><div class="line"><a name="l00135"></a><span class="lineno">  135</span>&#160;<span class="keywordtype">void</span> PlottyFile::prepStr(std::string&amp; str, uint8_t len)</div><div class="line"><a name="l00136"></a><span class="lineno">  136</span>&#160;{</div><div class="line"><a name="l00137"></a><span class="lineno">  137</span>&#160;    <span class="keywordflow">if</span>(str.length() &gt; len)</div><div class="line"><a name="l00138"></a><span class="lineno">  138</span>&#160;        <span class="keywordflow">throw</span> std::runtime_error(<span class="stringliteral">&quot;Zu grosser String.&quot;</span>);</div><div class="line"><a name="l00139"></a><span class="lineno">  139</span>&#160; </div><div class="line"><a name="l00140"></a><span class="lineno">  140</span>&#160;    <span class="keywordflow">if</span>(str.length() != len)</div><div class="line"><a name="l00141"></a><span class="lineno">  141</span>&#160;        str += <span class="charliteral">&#39;\n&#39;</span>;</div><div class="line"><a name="l00142"></a><span class="lineno">  142</span>&#160; </div><div class="line"><a name="l00143"></a><span class="lineno">  143</span>&#160;    <span class="keywordflow">while</span>(str.length() &lt; len)</div><div class="line"><a name="l00144"></a><span class="lineno">  144</span>&#160;        str += <span class="charliteral">&#39;\0&#39;</span>;</div><div class="line"><a name="l00145"></a><span class="lineno">  145</span>&#160;}</div><div class="line"><a name="l00146"></a><span class="lineno">  146</span>&#160; </div><div class="line"><a name="l00147"></a><span class="lineno"><a class="line" href="classPlottyFile.html#a82c348e7fade2edcbc907e7c2bc2e305">  147</a></span>&#160;<span class="keywordtype">void</span> <a class="code" href="classPlottyFile.html#a82c348e7fade2edcbc907e7c2bc2e305">PlottyFile::writeToFile</a>(std::string filename)</div><div class="line"><a name="l00148"></a><span class="lineno">  148</span>&#160;{</div><div class="line"><a name="l00149"></a><span class="lineno">  149</span>&#160;    <span class="keywordflow">if</span>(dots.empty())</div><div class="line"><a name="l00150"></a><span class="lineno">  150</span>&#160;        <span class="keywordflow">throw</span> std::length_error(<span class="stringliteral">&quot;Es wurden keine Punkte gespeichert.&quot;</span>);</div><div class="line"><a name="l00151"></a><span class="lineno">  151</span>&#160; </div><div class="line"><a name="l00152"></a><span class="lineno">  152</span>&#160;    prepStr(unit_x, STR_LEN_SHORT);</div><div class="line"><a name="l00153"></a><span class="lineno">  153</span>&#160;    prepStr(desc_x, STR_LEN_LARGE);</div><div class="line"><a name="l00154"></a><span class="lineno">  154</span>&#160;    prepStr(unit_y, STR_LEN_SHORT);</div><div class="line"><a name="l00155"></a><span class="lineno">  155</span>&#160;    prepStr(desc_y, STR_LEN_LARGE);</div><div class="line"><a name="l00156"></a><span class="lineno">  156</span>&#160;    prepStr(unit_para, STR_LEN_SHORT);</div><div class="line"><a name="l00157"></a><span class="lineno">  157</span>&#160;    prepStr(desc_para, STR_LEN_LARGE);</div><div class="line"><a name="l00158"></a><span class="lineno">  158</span>&#160; </div><div class="line"><a name="l00159"></a><span class="lineno">  159</span>&#160;    std::ofstream file(filename);</div><div class="line"><a name="l00160"></a><span class="lineno">  160</span>&#160; </div><div class="line"><a name="l00161"></a><span class="lineno">  161</span>&#160;    <span class="comment">// write file header</span></div><div class="line"><a name="l00162"></a><span class="lineno">  162</span>&#160;    file.write(reinterpret_cast&lt;char*&gt;(&amp;command), 1);</div><div class="line"><a name="l00163"></a><span class="lineno">  163</span>&#160;    file.write(head.c_str(), head.length());</div><div class="line"><a name="l00164"></a><span class="lineno">  164</span>&#160;    file.write(filetype.c_str(), filetype.length());</div><div class="line"><a name="l00165"></a><span class="lineno">  165</span>&#160;    file.write(reinterpret_cast&lt;char*&gt;(&amp;version), 2);</div><div class="line"><a name="l00166"></a><span class="lineno">  166</span>&#160;    file.write(reinterpret_cast&lt;char*&gt;(&amp;subversion), 2);</div><div class="line"><a name="l00167"></a><span class="lineno">  167</span>&#160;    file.put(static_cast&lt;uint8_t&gt;(function_type));</div><div class="line"><a name="l00168"></a><span class="lineno">  168</span>&#160;    file.write(reinterpret_cast&lt;char*&gt;(&amp;quadrant), 1);</div><div class="line"><a name="l00169"></a><span class="lineno">  169</span>&#160;    file.write(reinterpret_cast&lt;char*&gt;(&amp;ref_x), 2);</div><div class="line"><a name="l00170"></a><span class="lineno">  170</span>&#160;    file.write(reinterpret_cast&lt;char*&gt;(&amp;ref_y), 2);</div><div class="line"><a name="l00171"></a><span class="lineno">  171</span>&#160;    file.write(reinterpret_cast&lt;char*&gt;(&amp;para_first), 2);</div><div class="line"><a name="l00172"></a><span class="lineno">  172</span>&#160;    file.write(reinterpret_cast&lt;char*&gt;(&amp;para_stepwidth), 2);</div><div class="line"><a name="l00173"></a><span class="lineno">  173</span>&#160;    file.write(unit_x.c_str(), unit_x.length());</div><div class="line"><a name="l00174"></a><span class="lineno">  174</span>&#160;    file.write(desc_x.c_str(), desc_x.length());</div><div class="line"><a name="l00175"></a><span class="lineno">  175</span>&#160;    file.write(unit_y.c_str(), unit_y.length());</div><div class="line"><a name="l00176"></a><span class="lineno">  176</span>&#160;    file.write(desc_y.c_str(), desc_y.length());</div><div class="line"><a name="l00177"></a><span class="lineno">  177</span>&#160;    file.write(unit_para.c_str(), unit_para.length());</div><div class="line"><a name="l00178"></a><span class="lineno">  178</span>&#160;    file.write(desc_para.c_str(), desc_para.length());</div><div class="line"><a name="l00179"></a><span class="lineno">  179</span>&#160;    file.write(reinterpret_cast&lt;const char*&gt;(&amp;eof), 1);</div><div class="line"><a name="l00180"></a><span class="lineno">  180</span>&#160; </div><div class="line"><a name="l00181"></a><span class="lineno">  181</span>&#160;    <span class="comment">// make sure header size is 256 Byte</span></div><div class="line"><a name="l00182"></a><span class="lineno">  182</span>&#160;    <span class="keywordflow">while</span>(file.tellp() &lt; 256)</div><div class="line"><a name="l00183"></a><span class="lineno">  183</span>&#160;        file.put(0);</div><div class="line"><a name="l00184"></a><span class="lineno">  184</span>&#160; </div><div class="line"><a name="l00185"></a><span class="lineno">  185</span>&#160;    <span class="keywordflow">for</span>(<a class="code" href="classDot.html">Dot</a>&amp; dot : dots)</div><div class="line"><a name="l00186"></a><span class="lineno">  186</span>&#160;    {</div><div class="line"><a name="l00187"></a><span class="lineno">  187</span>&#160;        file.put((dot.getX() &gt;&gt; 8) | (static_cast&lt;uint8_t&gt;(dot.getCurve()) &lt;&lt; 2));</div><div class="line"><a name="l00188"></a><span class="lineno">  188</span>&#160;        file.put(dot.getX() &amp; 0xFF);</div><div class="line"><a name="l00189"></a><span class="lineno">  189</span>&#160;        file.put(dot.getY() &gt;&gt; 8);</div><div class="line"><a name="l00190"></a><span class="lineno">  190</span>&#160;        file.put(dot.getY() &amp; 0xFF);</div><div class="line"><a name="l00191"></a><span class="lineno">  191</span>&#160;    }</div><div class="line"><a name="l00192"></a><span class="lineno">  192</span>&#160; </div><div class="line"><a name="l00193"></a><span class="lineno">  193</span>&#160;    file.close();</div><div class="line"><a name="l00194"></a><span class="lineno">  194</span>&#160;}</div><div class="line"><a name="l00195"></a><span class="lineno">  195</span>&#160; </div><div class="line"><a name="l00196"></a><span class="lineno"><a class="line" href="classPlottyFile.html#a08a115ef10458cadfe76077d623313df">  196</a></span>&#160;<span class="keywordtype">void</span> <a class="code" href="classPlottyFile.html#a08a115ef10458cadfe76077d623313df">PlottyFile::startPlotty</a>(std::string filename)</div><div class="line"><a name="l00197"></a><span class="lineno">  197</span>&#160;{</div><div class="line"><a name="l00198"></a><span class="lineno">  198</span>&#160;    <span class="keywordtype">int</span> code = system((<span class="stringliteral">&quot;plotty --in &quot;</span> + filename).c_str());</div><div class="line"><a name="l00199"></a><span class="lineno">  199</span>&#160;    <span class="keywordflow">if</span>(code)</div><div class="line"><a name="l00200"></a><span class="lineno">  200</span>&#160;        <span class="keywordflow">throw</span> std::runtime_error(<span class="stringliteral">&quot;Fehler beim Aufruf von plotty&quot;</span>);</div><div class="line"><a name="l00201"></a><span class="lineno">  201</span>&#160;}</div></div><!-- fragment --></div><!-- contents -->
-<div class="ttc" id="aclassPlottyFile_html_a6caebd31e04e2e7081cc007047350355"><div class="ttname"><a href="classPlottyFile.html#a6caebd31e04e2e7081cc007047350355">PlottyFile::setParaStepWidth</a></div><div class="ttdeci">void setParaStepWidth(uint16_t para_stepwidth)</div><div class="ttdef"><b>Definition:</b> <a href="plottyfile_8cpp_source.html#l00040">plottyfile.cpp:40</a></div></div>
-<div class="ttc" id="aclassPlottyFile_html_a54e94e80061a27614f2d4d63697d3376"><div class="ttname"><a href="classPlottyFile.html#a54e94e80061a27614f2d4d63697d3376">PlottyFile::getQuadrant</a></div><div class="ttdeci">uint8_t getQuadrant(void) const</div><div class="ttdef"><b>Definition:</b> <a href="plottyfile_8cpp_source.html#l00080">plottyfile.cpp:80</a></div></div>
-<div class="ttc" id="aclassPlottyFile_html_a08a115ef10458cadfe76077d623313df"><div class="ttname"><a href="classPlottyFile.html#a08a115ef10458cadfe76077d623313df">PlottyFile::startPlotty</a></div><div class="ttdeci">void startPlotty(std::string filename)</div><div class="ttdef"><b>Definition:</b> <a href="plottyfile_8cpp_source.html#l00196">plottyfile.cpp:196</a></div></div>
-<div class="ttc" id="aclassPlottyFile_html_a82c348e7fade2edcbc907e7c2bc2e305"><div class="ttname"><a href="classPlottyFile.html#a82c348e7fade2edcbc907e7c2bc2e305">PlottyFile::writeToFile</a></div><div class="ttdeci">void writeToFile(std::string filename)</div><div class="ttdef"><b>Definition:</b> <a href="plottyfile_8cpp_source.html#l00147">plottyfile.cpp:147</a></div></div>
-<div class="ttc" id="aclassPlottyFile_html_ab8d35a841ca9c325fca671cf34e03527"><div class="ttname"><a href="classPlottyFile.html#ab8d35a841ca9c325fca671cf34e03527">PlottyFile::setUnitX</a></div><div class="ttdeci">void setUnitX(std::string unit_x)</div><div class="ttdef"><b>Definition:</b> <a href="plottyfile_8cpp_source.html#l00045">plottyfile.cpp:45</a></div></div>
-<div class="ttc" id="aclassPlottyFile_html_abbac84109a1e0958a4ca5c270fac0986"><div class="ttname"><a href="classPlottyFile.html#abbac84109a1e0958a4ca5c270fac0986">PlottyFile::setUnitPara</a></div><div class="ttdeci">void setUnitPara(std::string unit_para)</div><div class="ttdef"><b>Definition:</b> <a href="plottyfile_8cpp_source.html#l00065">plottyfile.cpp:65</a></div></div>
-<div class="ttc" id="aclassPlottyFile_html_a38a3a4dfc76bc70523727584bf01d590"><div class="ttname"><a href="classPlottyFile.html#a38a3a4dfc76bc70523727584bf01d590">PlottyFile::setDescY</a></div><div class="ttdeci">void setDescY(std::string desc_y)</div><div class="ttdef"><b>Definition:</b> <a href="plottyfile_8cpp_source.html#l00060">plottyfile.cpp:60</a></div></div>
-<div class="ttc" id="aclassPlottyFile_html_a1953ee0d9a87b7353c16139584e9c2ae"><div class="ttname"><a href="classPlottyFile.html#a1953ee0d9a87b7353c16139584e9c2ae">PlottyFile::setQuadrant</a></div><div class="ttdeci">void setQuadrant(uint8_t quadrant)</div><div class="ttdef"><b>Definition:</b> <a href="plottyfile_8cpp_source.html#l00018">plottyfile.cpp:18</a></div></div>
-<div class="ttc" id="aclassPlottyFile_html_ab4a847fd71a804182f211233e194df45"><div class="ttname"><a href="classPlottyFile.html#ab4a847fd71a804182f211233e194df45">PlottyFile::getDescY</a></div><div class="ttdeci">std::string getDescY(void) const</div><div class="ttdef"><b>Definition:</b> <a href="plottyfile_8cpp_source.html#l00120">plottyfile.cpp:120</a></div></div>
-<div class="ttc" id="aclassPlottyFile_html_a3a371228ddcc007e97eebe7cc04dffc2"><div class="ttname"><a href="classPlottyFile.html#a3a371228ddcc007e97eebe7cc04dffc2">PlottyFile::setRefY</a></div><div class="ttdeci">void setRefY(uint16_t ref_y)</div><div class="ttdef"><b>Definition:</b> <a href="plottyfile_8cpp_source.html#l00030">plottyfile.cpp:30</a></div></div>
-<div class="ttc" id="aclassPlottyFile_html_a9cf7baa569be308c2cf6e07cadded09d"><div class="ttname"><a href="classPlottyFile.html#a9cf7baa569be308c2cf6e07cadded09d">PlottyFile::getDescX</a></div><div class="ttdeci">std::string getDescX(void) const</div><div class="ttdef"><b>Definition:</b> <a href="plottyfile_8cpp_source.html#l00110">plottyfile.cpp:110</a></div></div>
-<div class="ttc" id="aclassPlottyFile_html_a4e5ab1ebb012a5cc1a3d6458a4cd512f"><div class="ttname"><a href="classPlottyFile.html#a4e5ab1ebb012a5cc1a3d6458a4cd512f">PlottyFile::setFunctionType</a></div><div class="ttdeci">void setFunctionType(FunctionType function_type)</div><div class="ttdef"><b>Definition:</b> <a href="plottyfile_8cpp_source.html#l00013">plottyfile.cpp:13</a></div></div>
-<div class="ttc" id="aclassPlottyFile_html_aa0449c290265d55d6223b19cf0a88b0a"><div class="ttname"><a href="classPlottyFile.html#aa0449c290265d55d6223b19cf0a88b0a">PlottyFile::setDescX</a></div><div class="ttdeci">void setDescX(std::string desc_x)</div><div class="ttdef"><b>Definition:</b> <a href="plottyfile_8cpp_source.html#l00050">plottyfile.cpp:50</a></div></div>
-<div class="ttc" id="aclassDot_html"><div class="ttname"><a href="classDot.html">Dot</a></div><div class="ttdef"><b>Definition:</b> <a href="dot_8h_source.html#l00012">dot.h:12</a></div></div>
-<div class="ttc" id="aclassPlottyFile_html_a80c2c2e97a454566f9c1f2c51e1d7f3e"><div class="ttname"><a href="classPlottyFile.html#a80c2c2e97a454566f9c1f2c51e1d7f3e">PlottyFile::setRefX</a></div><div class="ttdeci">void setRefX(uint16_t ref_x)</div><div class="ttdef"><b>Definition:</b> <a href="plottyfile_8cpp_source.html#l00025">plottyfile.cpp:25</a></div></div>
-<div class="ttc" id="aclassPlottyFile_html_abb18c814f435926f741f7ceb310f3059"><div class="ttname"><a href="classPlottyFile.html#abb18c814f435926f741f7ceb310f3059">PlottyFile::setUnitY</a></div><div class="ttdeci">void setUnitY(std::string unit_y)</div><div class="ttdef"><b>Definition:</b> <a href="plottyfile_8cpp_source.html#l00055">plottyfile.cpp:55</a></div></div>
-<div class="ttc" id="aclassPlottyFile_html_ae091e6eaaca16302f17572ac7dec6f7c"><div class="ttname"><a href="classPlottyFile.html#ae091e6eaaca16302f17572ac7dec6f7c">PlottyFile::addDot</a></div><div class="ttdeci">void addDot(Dot &amp;dot)</div><div class="ttdef"><b>Definition:</b> <a href="plottyfile_8cpp_source.html#l00003">plottyfile.cpp:3</a></div></div>
-<div class="ttc" id="aclassPlottyFile_html_a431904143c3c1164a2e8b8cfec3c77ab"><div class="ttname"><a href="classPlottyFile.html#a431904143c3c1164a2e8b8cfec3c77ab">PlottyFile::setDescPara</a></div><div class="ttdeci">void setDescPara(std::string desc_para)</div><div class="ttdef"><b>Definition:</b> <a href="plottyfile_8cpp_source.html#l00070">plottyfile.cpp:70</a></div></div>
-<div class="ttc" id="aclassPlottyFile_html_a9da23f2bb8e6eb1837fc992ffd4057db"><div class="ttname"><a href="classPlottyFile.html#a9da23f2bb8e6eb1837fc992ffd4057db">PlottyFile::getParaStepWidth</a></div><div class="ttdeci">uint16_t getParaStepWidth(void) const</div><div class="ttdef"><b>Definition:</b> <a href="plottyfile_8cpp_source.html#l00100">plottyfile.cpp:100</a></div></div>
-<div class="ttc" id="aclassPlottyFile_html_a536967daae3b382a5d6575f55450e198"><div class="ttname"><a href="classPlottyFile.html#a536967daae3b382a5d6575f55450e198">PlottyFile::getDescPara</a></div><div class="ttdeci">std::string getDescPara(void) const</div><div class="ttdef"><b>Definition:</b> <a href="plottyfile_8cpp_source.html#l00130">plottyfile.cpp:130</a></div></div>
-<div class="ttc" id="aclassPlottyFile_html_aa676414793becb975506f48d6e949dd0"><div class="ttname"><a href="classPlottyFile.html#aa676414793becb975506f48d6e949dd0">PlottyFile::setParaFirstCurve</a></div><div class="ttdeci">void setParaFirstCurve(uint16_t para_first)</div><div class="ttdef"><b>Definition:</b> <a href="plottyfile_8cpp_source.html#l00035">plottyfile.cpp:35</a></div></div>
-<div class="ttc" id="aclassPlottyFile_html_a746b96036872dbece204e9739f3413b6"><div class="ttname"><a href="classPlottyFile.html#a746b96036872dbece204e9739f3413b6">PlottyFile::getUnitY</a></div><div class="ttdeci">std::string getUnitY(void) const</div><div class="ttdef"><b>Definition:</b> <a href="plottyfile_8cpp_source.html#l00115">plottyfile.cpp:115</a></div></div>
-<div class="ttc" id="aclassPlottyFile_html_a40828c93d66fe80166c4f603d5bdfa48"><div class="ttname"><a href="classPlottyFile.html#a40828c93d66fe80166c4f603d5bdfa48">PlottyFile::getParaFirstCurve</a></div><div class="ttdeci">uint16_t getParaFirstCurve(void) const</div><div class="ttdef"><b>Definition:</b> <a href="plottyfile_8cpp_source.html#l00095">plottyfile.cpp:95</a></div></div>
-<div class="ttc" id="aclassPlottyFile_html_a7dd84b9f0826f3220fc6b5a4f1ce9890"><div class="ttname"><a href="classPlottyFile.html#a7dd84b9f0826f3220fc6b5a4f1ce9890">PlottyFile::getRefX</a></div><div class="ttdeci">uint16_t getRefX(void) const</div><div class="ttdef"><b>Definition:</b> <a href="plottyfile_8cpp_source.html#l00085">plottyfile.cpp:85</a></div></div>
-<div class="ttc" id="aclassPlottyFile_html_abcda4139adf8c5ab8a93b13b84ac097c"><div class="ttname"><a href="classPlottyFile.html#abcda4139adf8c5ab8a93b13b84ac097c">PlottyFile::getUnitPara</a></div><div class="ttdeci">std::string getUnitPara(void) const</div><div class="ttdef"><b>Definition:</b> <a href="plottyfile_8cpp_source.html#l00125">plottyfile.cpp:125</a></div></div>
-<div class="ttc" id="aclassPlottyFile_html_a88bb7d8350ed5fbc7a40e8d903c94bdb"><div class="ttname"><a href="classPlottyFile.html#a88bb7d8350ed5fbc7a40e8d903c94bdb">PlottyFile::getFunctionType</a></div><div class="ttdeci">FunctionType getFunctionType(void) const</div><div class="ttdef"><b>Definition:</b> <a href="plottyfile_8cpp_source.html#l00075">plottyfile.cpp:75</a></div></div>
-<div class="ttc" id="aclassPlottyFile_html_ae6650c61a3b1a610ce716253418bd7f2"><div class="ttname"><a href="classPlottyFile.html#ae6650c61a3b1a610ce716253418bd7f2">PlottyFile::getRefY</a></div><div class="ttdeci">uint16_t getRefY(void) const</div><div class="ttdef"><b>Definition:</b> <a href="plottyfile_8cpp_source.html#l00090">plottyfile.cpp:90</a></div></div>
-<div class="ttc" id="aclassPlottyFile_html_af952ac5e2c40896acaf6a86063874fe3"><div class="ttname"><a href="classPlottyFile.html#af952ac5e2c40896acaf6a86063874fe3">PlottyFile::getUnitX</a></div><div class="ttdeci">std::string getUnitX(void) const</div><div class="ttdef"><b>Definition:</b> <a href="plottyfile_8cpp_source.html#l00105">plottyfile.cpp:105</a></div></div>
-<!-- start footer part -->
-<hr class="footer"/><address class="footer"><small>
-Generated on Fri Jun 7 2019 14:50:45 for B15F by &#160;<a href="http://www.doxygen.org/index.html">
-<img class="footer" src="doxygen.png" alt="doxygen"/>
-</a> 1.8.16
-</small></address>
-</body>
-</html>
diff --git a/docs/html/plottyfile_8h_source.html b/docs/html/plottyfile_8h_source.html
deleted file mode 100644
index 1dd1556..0000000
--- a/docs/html/plottyfile_8h_source.html
+++ /dev/null
@@ -1,110 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml">
-<head>
-<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
-<meta http-equiv="X-UA-Compatible" content="IE=9"/>
-<meta name="generator" content="Doxygen 1.8.16"/>
-<meta name="viewport" content="width=device-width, initial-scale=1"/>
-<title>B15F: drv/plottyfile.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">B15F
-   </div>
-   <div id="projectbrief">Board 15 Famulus Edition</div>
-  </td>
- </tr>
- </tbody>
-</table>
-</div>
-<!-- end header part -->
-<!-- Generated by Doxygen 1.8.16 -->
-<script type="text/javascript">
-/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
-var searchBox = new SearchBox("searchBox", "search",false,'Search');
-/* @license-end */
-</script>
-<script type="text/javascript" src="menudata.js"></script>
-<script type="text/javascript" src="menu.js"></script>
-<script type="text/javascript">
-/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
-$(function() {
-  initMenu('',true,false,'search.php','Search');
-  $(document).ready(function() { init_search(); });
-});
-/* @license-end */</script>
-<div id="main-nav"></div>
-<!-- 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 id="nav-path" class="navpath">
-  <ul>
-<li class="navelem"><a class="el" href="dir_587c94d866dbb2f408f78cf41f9b2f8d.html">drv</a></li>  </ul>
-</div>
-</div><!-- top -->
-<div class="header">
-  <div class="headertitle">
-<div class="title">plottyfile.h</div>  </div>
-</div><!--header-->
-<div class="contents">
-<div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno">    1</span>&#160;<span class="preprocessor">#ifndef PLOTTYFILE_H</span></div><div class="line"><a name="l00002"></a><span class="lineno">    2</span>&#160;<span class="preprocessor">#define PLOTTYFILE_H</span></div><div class="line"><a name="l00003"></a><span class="lineno">    3</span>&#160; </div><div class="line"><a name="l00004"></a><span class="lineno">    4</span>&#160;<span class="preprocessor">#include &lt;iostream&gt;</span></div><div class="line"><a name="l00005"></a><span class="lineno">    5</span>&#160;<span class="preprocessor">#include &lt;fstream&gt;</span></div><div class="line"><a name="l00006"></a><span class="lineno">    6</span>&#160;<span class="preprocessor">#include &lt;exception&gt;</span></div><div class="line"><a name="l00007"></a><span class="lineno">    7</span>&#160;<span class="preprocessor">#include &lt;vector&gt;</span></div><div class="line"><a name="l00008"></a><span class="lineno">    8</span>&#160;<span class="preprocessor">#include &lt;stdexcept&gt;</span></div><div class="line"><a name="l00009"></a><span class="lineno">    9</span>&#160;<span class="preprocessor">#include &quot;dot.h&quot;</span></div><div class="line"><a name="l00010"></a><span class="lineno">   10</span>&#160; </div><div class="line"><a name="l00011"></a><span class="lineno">   11</span>&#160;<span class="keyword">enum</span> FunctionType</div><div class="line"><a name="l00012"></a><span class="lineno">   12</span>&#160;{</div><div class="line"><a name="l00013"></a><span class="lineno">   13</span>&#160;    CurveFamily = <span class="charliteral">&#39;S&#39;</span>,</div><div class="line"><a name="l00014"></a><span class="lineno">   14</span>&#160;    Curve = <span class="charliteral">&#39;C&#39;</span>,</div><div class="line"><a name="l00015"></a><span class="lineno">   15</span>&#160;    Level = <span class="charliteral">&#39;P&#39;</span></div><div class="line"><a name="l00016"></a><span class="lineno">   16</span>&#160;};</div><div class="line"><a name="l00017"></a><span class="lineno">   17</span>&#160; </div><div class="line"><a name="l00020"></a><span class="lineno"><a class="line" href="classPlottyFile.html">   20</a></span>&#160;<span class="keyword">class </span><a class="code" href="classPlottyFile.html">PlottyFile</a></div><div class="line"><a name="l00021"></a><span class="lineno">   21</span>&#160;{</div><div class="line"><a name="l00022"></a><span class="lineno">   22</span>&#160;<span class="keyword">public</span>:</div><div class="line"><a name="l00027"></a><span class="lineno">   27</span>&#160;    <span class="keywordtype">void</span> <a class="code" href="classPlottyFile.html#ae091e6eaaca16302f17572ac7dec6f7c">addDot</a>(<a class="code" href="classDot.html">Dot</a>&amp; dot);</div><div class="line"><a name="l00028"></a><span class="lineno">   28</span>&#160; </div><div class="line"><a name="l00033"></a><span class="lineno">   33</span>&#160;    <span class="keywordtype">void</span> <a class="code" href="classPlottyFile.html#ae091e6eaaca16302f17572ac7dec6f7c">addDot</a>(<a class="code" href="classDot.html">Dot</a> dot);</div><div class="line"><a name="l00034"></a><span class="lineno">   34</span>&#160; </div><div class="line"><a name="l00039"></a><span class="lineno">   39</span>&#160;    <span class="keywordtype">void</span> <a class="code" href="classPlottyFile.html#a4e5ab1ebb012a5cc1a3d6458a4cd512f">setFunctionType</a>(FunctionType function_type);</div><div class="line"><a name="l00040"></a><span class="lineno">   40</span>&#160; </div><div class="line"><a name="l00045"></a><span class="lineno">   45</span>&#160;    <span class="keywordtype">void</span> <a class="code" href="classPlottyFile.html#a1953ee0d9a87b7353c16139584e9c2ae">setQuadrant</a>(uint8_t quadrant);</div><div class="line"><a name="l00046"></a><span class="lineno">   46</span>&#160; </div><div class="line"><a name="l00051"></a><span class="lineno">   51</span>&#160;    <span class="keywordtype">void</span> <a class="code" href="classPlottyFile.html#a80c2c2e97a454566f9c1f2c51e1d7f3e">setRefX</a>(uint16_t ref_x);</div><div class="line"><a name="l00052"></a><span class="lineno">   52</span>&#160; </div><div class="line"><a name="l00057"></a><span class="lineno">   57</span>&#160;    <span class="keywordtype">void</span> <a class="code" href="classPlottyFile.html#a3a371228ddcc007e97eebe7cc04dffc2">setRefY</a>(uint16_t ref_y);</div><div class="line"><a name="l00058"></a><span class="lineno">   58</span>&#160; </div><div class="line"><a name="l00064"></a><span class="lineno">   64</span>&#160;    <span class="keywordtype">void</span> <a class="code" href="classPlottyFile.html#aa676414793becb975506f48d6e949dd0">setParaFirstCurve</a>(uint16_t para_first);</div><div class="line"><a name="l00065"></a><span class="lineno">   65</span>&#160; </div><div class="line"><a name="l00070"></a><span class="lineno">   70</span>&#160;    <span class="keywordtype">void</span> <a class="code" href="classPlottyFile.html#a6caebd31e04e2e7081cc007047350355">setParaStepWidth</a>(uint16_t para_stepwidth);</div><div class="line"><a name="l00071"></a><span class="lineno">   71</span>&#160; </div><div class="line"><a name="l00076"></a><span class="lineno">   76</span>&#160;    <span class="keywordtype">void</span> <a class="code" href="classPlottyFile.html#ab8d35a841ca9c325fca671cf34e03527">setUnitX</a>(std::string unit_x);</div><div class="line"><a name="l00077"></a><span class="lineno">   77</span>&#160; </div><div class="line"><a name="l00082"></a><span class="lineno">   82</span>&#160;    <span class="keywordtype">void</span> <a class="code" href="classPlottyFile.html#aa0449c290265d55d6223b19cf0a88b0a">setDescX</a>(std::string desc_x);</div><div class="line"><a name="l00083"></a><span class="lineno">   83</span>&#160; </div><div class="line"><a name="l00088"></a><span class="lineno">   88</span>&#160;    <span class="keywordtype">void</span> <a class="code" href="classPlottyFile.html#abb18c814f435926f741f7ceb310f3059">setUnitY</a>(std::string unit_y);</div><div class="line"><a name="l00089"></a><span class="lineno">   89</span>&#160; </div><div class="line"><a name="l00094"></a><span class="lineno">   94</span>&#160;    <span class="keywordtype">void</span> <a class="code" href="classPlottyFile.html#a38a3a4dfc76bc70523727584bf01d590">setDescY</a>(std::string desc_y);</div><div class="line"><a name="l00095"></a><span class="lineno">   95</span>&#160; </div><div class="line"><a name="l00100"></a><span class="lineno">  100</span>&#160;    <span class="keywordtype">void</span> <a class="code" href="classPlottyFile.html#abbac84109a1e0958a4ca5c270fac0986">setUnitPara</a>(std::string unit_para);</div><div class="line"><a name="l00105"></a><span class="lineno">  105</span>&#160;    <span class="keywordtype">void</span> <a class="code" href="classPlottyFile.html#a431904143c3c1164a2e8b8cfec3c77ab">setDescPara</a>(std::string desc_para);</div><div class="line"><a name="l00106"></a><span class="lineno">  106</span>&#160; </div><div class="line"><a name="l00107"></a><span class="lineno">  107</span>&#160; </div><div class="line"><a name="l00108"></a><span class="lineno">  108</span>&#160; </div><div class="line"><a name="l00112"></a><span class="lineno">  112</span>&#160;    FunctionType <a class="code" href="classPlottyFile.html#a88bb7d8350ed5fbc7a40e8d903c94bdb">getFunctionType</a>(<span class="keywordtype">void</span>) <span class="keyword">const</span>;</div><div class="line"><a name="l00113"></a><span class="lineno">  113</span>&#160; </div><div class="line"><a name="l00117"></a><span class="lineno">  117</span>&#160;    uint8_t <a class="code" href="classPlottyFile.html#a54e94e80061a27614f2d4d63697d3376">getQuadrant</a>(<span class="keywordtype">void</span>) <span class="keyword">const</span>;</div><div class="line"><a name="l00118"></a><span class="lineno">  118</span>&#160; </div><div class="line"><a name="l00122"></a><span class="lineno">  122</span>&#160;    uint16_t <a class="code" href="classPlottyFile.html#a7dd84b9f0826f3220fc6b5a4f1ce9890">getRefX</a>(<span class="keywordtype">void</span>) <span class="keyword">const</span>;</div><div class="line"><a name="l00123"></a><span class="lineno">  123</span>&#160; </div><div class="line"><a name="l00127"></a><span class="lineno">  127</span>&#160;    uint16_t <a class="code" href="classPlottyFile.html#ae6650c61a3b1a610ce716253418bd7f2">getRefY</a>(<span class="keywordtype">void</span>) <span class="keyword">const</span>;</div><div class="line"><a name="l00128"></a><span class="lineno">  128</span>&#160; </div><div class="line"><a name="l00132"></a><span class="lineno">  132</span>&#160;    uint16_t <a class="code" href="classPlottyFile.html#a40828c93d66fe80166c4f603d5bdfa48">getParaFirstCurve</a>(<span class="keywordtype">void</span>) <span class="keyword">const</span>;</div><div class="line"><a name="l00133"></a><span class="lineno">  133</span>&#160; </div><div class="line"><a name="l00137"></a><span class="lineno">  137</span>&#160;    uint16_t <a class="code" href="classPlottyFile.html#a9da23f2bb8e6eb1837fc992ffd4057db">getParaStepWidth</a>(<span class="keywordtype">void</span>) <span class="keyword">const</span>;</div><div class="line"><a name="l00138"></a><span class="lineno">  138</span>&#160; </div><div class="line"><a name="l00142"></a><span class="lineno">  142</span>&#160;    std::string <a class="code" href="classPlottyFile.html#af952ac5e2c40896acaf6a86063874fe3">getUnitX</a>(<span class="keywordtype">void</span>) <span class="keyword">const</span>;</div><div class="line"><a name="l00143"></a><span class="lineno">  143</span>&#160; </div><div class="line"><a name="l00147"></a><span class="lineno">  147</span>&#160;    std::string <a class="code" href="classPlottyFile.html#a9cf7baa569be308c2cf6e07cadded09d">getDescX</a>(<span class="keywordtype">void</span>) <span class="keyword">const</span>;</div><div class="line"><a name="l00148"></a><span class="lineno">  148</span>&#160; </div><div class="line"><a name="l00152"></a><span class="lineno">  152</span>&#160;    std::string <a class="code" href="classPlottyFile.html#a746b96036872dbece204e9739f3413b6">getUnitY</a>(<span class="keywordtype">void</span>) <span class="keyword">const</span>;</div><div class="line"><a name="l00153"></a><span class="lineno">  153</span>&#160; </div><div class="line"><a name="l00157"></a><span class="lineno">  157</span>&#160;    std::string <a class="code" href="classPlottyFile.html#ab4a847fd71a804182f211233e194df45">getDescY</a>(<span class="keywordtype">void</span>) <span class="keyword">const</span>;</div><div class="line"><a name="l00158"></a><span class="lineno">  158</span>&#160; </div><div class="line"><a name="l00162"></a><span class="lineno">  162</span>&#160;    std::string <a class="code" href="classPlottyFile.html#abcda4139adf8c5ab8a93b13b84ac097c">getUnitPara</a>(<span class="keywordtype">void</span>) <span class="keyword">const</span>;</div><div class="line"><a name="l00163"></a><span class="lineno">  163</span>&#160; </div><div class="line"><a name="l00167"></a><span class="lineno">  167</span>&#160;    std::string <a class="code" href="classPlottyFile.html#a536967daae3b382a5d6575f55450e198">getDescPara</a>(<span class="keywordtype">void</span>) <span class="keyword">const</span>;</div><div class="line"><a name="l00168"></a><span class="lineno">  168</span>&#160; </div><div class="line"><a name="l00169"></a><span class="lineno">  169</span>&#160; </div><div class="line"><a name="l00174"></a><span class="lineno">  174</span>&#160;    <span class="keywordtype">void</span> <a class="code" href="classPlottyFile.html#a82c348e7fade2edcbc907e7c2bc2e305">writeToFile</a>(std::string filename);</div><div class="line"><a name="l00175"></a><span class="lineno">  175</span>&#160; </div><div class="line"><a name="l00180"></a><span class="lineno">  180</span>&#160;    <span class="keywordtype">void</span> <a class="code" href="classPlottyFile.html#a08a115ef10458cadfe76077d623313df">startPlotty</a>(std::string filename);</div><div class="line"><a name="l00181"></a><span class="lineno">  181</span>&#160;<span class="keyword">private</span>:</div><div class="line"><a name="l00182"></a><span class="lineno">  182</span>&#160;    <span class="keywordtype">void</span> prepStr(std::string&amp; str, uint8_t len);</div><div class="line"><a name="l00183"></a><span class="lineno">  183</span>&#160; </div><div class="line"><a name="l00184"></a><span class="lineno">  184</span>&#160;    std::vector&lt;Dot&gt; dots;</div><div class="line"><a name="l00185"></a><span class="lineno">  185</span>&#160; </div><div class="line"><a name="l00186"></a><span class="lineno">  186</span>&#160;    int8_t command = 0x1D;</div><div class="line"><a name="l00187"></a><span class="lineno">  187</span>&#160;    <span class="keyword">const</span> std::string head = <span class="stringliteral">&quot;HTWK-HWLab&quot;</span>;</div><div class="line"><a name="l00188"></a><span class="lineno">  188</span>&#160;    <span class="keyword">const</span> std::string filetype = <span class="stringliteral">&quot;MD&quot;</span>;</div><div class="line"><a name="l00189"></a><span class="lineno">  189</span>&#160;    int16_t version = 1;</div><div class="line"><a name="l00190"></a><span class="lineno">  190</span>&#160;    int16_t subversion = 0;</div><div class="line"><a name="l00191"></a><span class="lineno">  191</span>&#160;    FunctionType function_type = FunctionType::Curve;</div><div class="line"><a name="l00192"></a><span class="lineno">  192</span>&#160;    uint8_t quadrant = 1;</div><div class="line"><a name="l00193"></a><span class="lineno">  193</span>&#160;    uint16_t ref_x = 1023;</div><div class="line"><a name="l00194"></a><span class="lineno">  194</span>&#160;    uint16_t ref_y = 1023;</div><div class="line"><a name="l00195"></a><span class="lineno">  195</span>&#160;    uint16_t para_first = 1;</div><div class="line"><a name="l00196"></a><span class="lineno">  196</span>&#160;    uint16_t para_stepwidth = 1;</div><div class="line"><a name="l00197"></a><span class="lineno">  197</span>&#160;    std::string unit_x;</div><div class="line"><a name="l00198"></a><span class="lineno">  198</span>&#160;    std::string desc_x;</div><div class="line"><a name="l00199"></a><span class="lineno">  199</span>&#160;    std::string unit_y;</div><div class="line"><a name="l00200"></a><span class="lineno">  200</span>&#160;    std::string desc_y;</div><div class="line"><a name="l00201"></a><span class="lineno">  201</span>&#160;    std::string unit_para;</div><div class="line"><a name="l00202"></a><span class="lineno">  202</span>&#160;    std::string desc_para;</div><div class="line"><a name="l00203"></a><span class="lineno">  203</span>&#160;    <span class="keyword">const</span> uint8_t eof = 0xD;</div><div class="line"><a name="l00204"></a><span class="lineno">  204</span>&#160; </div><div class="line"><a name="l00205"></a><span class="lineno">  205</span>&#160;    constexpr <span class="keyword">static</span> uint8_t STR_LEN_SHORT = 10;</div><div class="line"><a name="l00206"></a><span class="lineno">  206</span>&#160;    constexpr <span class="keyword">static</span> uint8_t STR_LEN_LARGE = 20;</div><div class="line"><a name="l00207"></a><span class="lineno">  207</span>&#160;};</div><div class="line"><a name="l00208"></a><span class="lineno">  208</span>&#160; </div><div class="line"><a name="l00209"></a><span class="lineno">  209</span>&#160;<span class="preprocessor">#endif // PLOTTYFILE_H</span></div></div><!-- fragment --></div><!-- contents -->
-<div class="ttc" id="aclassPlottyFile_html_a6caebd31e04e2e7081cc007047350355"><div class="ttname"><a href="classPlottyFile.html#a6caebd31e04e2e7081cc007047350355">PlottyFile::setParaStepWidth</a></div><div class="ttdeci">void setParaStepWidth(uint16_t para_stepwidth)</div><div class="ttdef"><b>Definition:</b> <a href="plottyfile_8cpp_source.html#l00040">plottyfile.cpp:40</a></div></div>
-<div class="ttc" id="aclassPlottyFile_html_a54e94e80061a27614f2d4d63697d3376"><div class="ttname"><a href="classPlottyFile.html#a54e94e80061a27614f2d4d63697d3376">PlottyFile::getQuadrant</a></div><div class="ttdeci">uint8_t getQuadrant(void) const</div><div class="ttdef"><b>Definition:</b> <a href="plottyfile_8cpp_source.html#l00080">plottyfile.cpp:80</a></div></div>
-<div class="ttc" id="aclassPlottyFile_html_a08a115ef10458cadfe76077d623313df"><div class="ttname"><a href="classPlottyFile.html#a08a115ef10458cadfe76077d623313df">PlottyFile::startPlotty</a></div><div class="ttdeci">void startPlotty(std::string filename)</div><div class="ttdef"><b>Definition:</b> <a href="plottyfile_8cpp_source.html#l00196">plottyfile.cpp:196</a></div></div>
-<div class="ttc" id="aclassPlottyFile_html_a82c348e7fade2edcbc907e7c2bc2e305"><div class="ttname"><a href="classPlottyFile.html#a82c348e7fade2edcbc907e7c2bc2e305">PlottyFile::writeToFile</a></div><div class="ttdeci">void writeToFile(std::string filename)</div><div class="ttdef"><b>Definition:</b> <a href="plottyfile_8cpp_source.html#l00147">plottyfile.cpp:147</a></div></div>
-<div class="ttc" id="aclassPlottyFile_html_ab8d35a841ca9c325fca671cf34e03527"><div class="ttname"><a href="classPlottyFile.html#ab8d35a841ca9c325fca671cf34e03527">PlottyFile::setUnitX</a></div><div class="ttdeci">void setUnitX(std::string unit_x)</div><div class="ttdef"><b>Definition:</b> <a href="plottyfile_8cpp_source.html#l00045">plottyfile.cpp:45</a></div></div>
-<div class="ttc" id="aclassPlottyFile_html_abbac84109a1e0958a4ca5c270fac0986"><div class="ttname"><a href="classPlottyFile.html#abbac84109a1e0958a4ca5c270fac0986">PlottyFile::setUnitPara</a></div><div class="ttdeci">void setUnitPara(std::string unit_para)</div><div class="ttdef"><b>Definition:</b> <a href="plottyfile_8cpp_source.html#l00065">plottyfile.cpp:65</a></div></div>
-<div class="ttc" id="aclassPlottyFile_html_a38a3a4dfc76bc70523727584bf01d590"><div class="ttname"><a href="classPlottyFile.html#a38a3a4dfc76bc70523727584bf01d590">PlottyFile::setDescY</a></div><div class="ttdeci">void setDescY(std::string desc_y)</div><div class="ttdef"><b>Definition:</b> <a href="plottyfile_8cpp_source.html#l00060">plottyfile.cpp:60</a></div></div>
-<div class="ttc" id="aclassPlottyFile_html_a1953ee0d9a87b7353c16139584e9c2ae"><div class="ttname"><a href="classPlottyFile.html#a1953ee0d9a87b7353c16139584e9c2ae">PlottyFile::setQuadrant</a></div><div class="ttdeci">void setQuadrant(uint8_t quadrant)</div><div class="ttdef"><b>Definition:</b> <a href="plottyfile_8cpp_source.html#l00018">plottyfile.cpp:18</a></div></div>
-<div class="ttc" id="aclassPlottyFile_html_ab4a847fd71a804182f211233e194df45"><div class="ttname"><a href="classPlottyFile.html#ab4a847fd71a804182f211233e194df45">PlottyFile::getDescY</a></div><div class="ttdeci">std::string getDescY(void) const</div><div class="ttdef"><b>Definition:</b> <a href="plottyfile_8cpp_source.html#l00120">plottyfile.cpp:120</a></div></div>
-<div class="ttc" id="aclassPlottyFile_html"><div class="ttname"><a href="classPlottyFile.html">PlottyFile</a></div><div class="ttdef"><b>Definition:</b> <a href="plottyfile_8h_source.html#l00020">plottyfile.h:20</a></div></div>
-<div class="ttc" id="aclassPlottyFile_html_a3a371228ddcc007e97eebe7cc04dffc2"><div class="ttname"><a href="classPlottyFile.html#a3a371228ddcc007e97eebe7cc04dffc2">PlottyFile::setRefY</a></div><div class="ttdeci">void setRefY(uint16_t ref_y)</div><div class="ttdef"><b>Definition:</b> <a href="plottyfile_8cpp_source.html#l00030">plottyfile.cpp:30</a></div></div>
-<div class="ttc" id="aclassPlottyFile_html_a9cf7baa569be308c2cf6e07cadded09d"><div class="ttname"><a href="classPlottyFile.html#a9cf7baa569be308c2cf6e07cadded09d">PlottyFile::getDescX</a></div><div class="ttdeci">std::string getDescX(void) const</div><div class="ttdef"><b>Definition:</b> <a href="plottyfile_8cpp_source.html#l00110">plottyfile.cpp:110</a></div></div>
-<div class="ttc" id="aclassPlottyFile_html_a4e5ab1ebb012a5cc1a3d6458a4cd512f"><div class="ttname"><a href="classPlottyFile.html#a4e5ab1ebb012a5cc1a3d6458a4cd512f">PlottyFile::setFunctionType</a></div><div class="ttdeci">void setFunctionType(FunctionType function_type)</div><div class="ttdef"><b>Definition:</b> <a href="plottyfile_8cpp_source.html#l00013">plottyfile.cpp:13</a></div></div>
-<div class="ttc" id="aclassPlottyFile_html_aa0449c290265d55d6223b19cf0a88b0a"><div class="ttname"><a href="classPlottyFile.html#aa0449c290265d55d6223b19cf0a88b0a">PlottyFile::setDescX</a></div><div class="ttdeci">void setDescX(std::string desc_x)</div><div class="ttdef"><b>Definition:</b> <a href="plottyfile_8cpp_source.html#l00050">plottyfile.cpp:50</a></div></div>
-<div class="ttc" id="aclassDot_html"><div class="ttname"><a href="classDot.html">Dot</a></div><div class="ttdef"><b>Definition:</b> <a href="dot_8h_source.html#l00012">dot.h:12</a></div></div>
-<div class="ttc" id="aclassPlottyFile_html_a80c2c2e97a454566f9c1f2c51e1d7f3e"><div class="ttname"><a href="classPlottyFile.html#a80c2c2e97a454566f9c1f2c51e1d7f3e">PlottyFile::setRefX</a></div><div class="ttdeci">void setRefX(uint16_t ref_x)</div><div class="ttdef"><b>Definition:</b> <a href="plottyfile_8cpp_source.html#l00025">plottyfile.cpp:25</a></div></div>
-<div class="ttc" id="aclassPlottyFile_html_abb18c814f435926f741f7ceb310f3059"><div class="ttname"><a href="classPlottyFile.html#abb18c814f435926f741f7ceb310f3059">PlottyFile::setUnitY</a></div><div class="ttdeci">void setUnitY(std::string unit_y)</div><div class="ttdef"><b>Definition:</b> <a href="plottyfile_8cpp_source.html#l00055">plottyfile.cpp:55</a></div></div>
-<div class="ttc" id="aclassPlottyFile_html_ae091e6eaaca16302f17572ac7dec6f7c"><div class="ttname"><a href="classPlottyFile.html#ae091e6eaaca16302f17572ac7dec6f7c">PlottyFile::addDot</a></div><div class="ttdeci">void addDot(Dot &amp;dot)</div><div class="ttdef"><b>Definition:</b> <a href="plottyfile_8cpp_source.html#l00003">plottyfile.cpp:3</a></div></div>
-<div class="ttc" id="aclassPlottyFile_html_a431904143c3c1164a2e8b8cfec3c77ab"><div class="ttname"><a href="classPlottyFile.html#a431904143c3c1164a2e8b8cfec3c77ab">PlottyFile::setDescPara</a></div><div class="ttdeci">void setDescPara(std::string desc_para)</div><div class="ttdef"><b>Definition:</b> <a href="plottyfile_8cpp_source.html#l00070">plottyfile.cpp:70</a></div></div>
-<div class="ttc" id="aclassPlottyFile_html_a9da23f2bb8e6eb1837fc992ffd4057db"><div class="ttname"><a href="classPlottyFile.html#a9da23f2bb8e6eb1837fc992ffd4057db">PlottyFile::getParaStepWidth</a></div><div class="ttdeci">uint16_t getParaStepWidth(void) const</div><div class="ttdef"><b>Definition:</b> <a href="plottyfile_8cpp_source.html#l00100">plottyfile.cpp:100</a></div></div>
-<div class="ttc" id="aclassPlottyFile_html_a536967daae3b382a5d6575f55450e198"><div class="ttname"><a href="classPlottyFile.html#a536967daae3b382a5d6575f55450e198">PlottyFile::getDescPara</a></div><div class="ttdeci">std::string getDescPara(void) const</div><div class="ttdef"><b>Definition:</b> <a href="plottyfile_8cpp_source.html#l00130">plottyfile.cpp:130</a></div></div>
-<div class="ttc" id="aclassPlottyFile_html_aa676414793becb975506f48d6e949dd0"><div class="ttname"><a href="classPlottyFile.html#aa676414793becb975506f48d6e949dd0">PlottyFile::setParaFirstCurve</a></div><div class="ttdeci">void setParaFirstCurve(uint16_t para_first)</div><div class="ttdef"><b>Definition:</b> <a href="plottyfile_8cpp_source.html#l00035">plottyfile.cpp:35</a></div></div>
-<div class="ttc" id="aclassPlottyFile_html_a746b96036872dbece204e9739f3413b6"><div class="ttname"><a href="classPlottyFile.html#a746b96036872dbece204e9739f3413b6">PlottyFile::getUnitY</a></div><div class="ttdeci">std::string getUnitY(void) const</div><div class="ttdef"><b>Definition:</b> <a href="plottyfile_8cpp_source.html#l00115">plottyfile.cpp:115</a></div></div>
-<div class="ttc" id="aclassPlottyFile_html_a40828c93d66fe80166c4f603d5bdfa48"><div class="ttname"><a href="classPlottyFile.html#a40828c93d66fe80166c4f603d5bdfa48">PlottyFile::getParaFirstCurve</a></div><div class="ttdeci">uint16_t getParaFirstCurve(void) const</div><div class="ttdef"><b>Definition:</b> <a href="plottyfile_8cpp_source.html#l00095">plottyfile.cpp:95</a></div></div>
-<div class="ttc" id="aclassPlottyFile_html_a7dd84b9f0826f3220fc6b5a4f1ce9890"><div class="ttname"><a href="classPlottyFile.html#a7dd84b9f0826f3220fc6b5a4f1ce9890">PlottyFile::getRefX</a></div><div class="ttdeci">uint16_t getRefX(void) const</div><div class="ttdef"><b>Definition:</b> <a href="plottyfile_8cpp_source.html#l00085">plottyfile.cpp:85</a></div></div>
-<div class="ttc" id="aclassPlottyFile_html_abcda4139adf8c5ab8a93b13b84ac097c"><div class="ttname"><a href="classPlottyFile.html#abcda4139adf8c5ab8a93b13b84ac097c">PlottyFile::getUnitPara</a></div><div class="ttdeci">std::string getUnitPara(void) const</div><div class="ttdef"><b>Definition:</b> <a href="plottyfile_8cpp_source.html#l00125">plottyfile.cpp:125</a></div></div>
-<div class="ttc" id="aclassPlottyFile_html_a88bb7d8350ed5fbc7a40e8d903c94bdb"><div class="ttname"><a href="classPlottyFile.html#a88bb7d8350ed5fbc7a40e8d903c94bdb">PlottyFile::getFunctionType</a></div><div class="ttdeci">FunctionType getFunctionType(void) const</div><div class="ttdef"><b>Definition:</b> <a href="plottyfile_8cpp_source.html#l00075">plottyfile.cpp:75</a></div></div>
-<div class="ttc" id="aclassPlottyFile_html_ae6650c61a3b1a610ce716253418bd7f2"><div class="ttname"><a href="classPlottyFile.html#ae6650c61a3b1a610ce716253418bd7f2">PlottyFile::getRefY</a></div><div class="ttdeci">uint16_t getRefY(void) const</div><div class="ttdef"><b>Definition:</b> <a href="plottyfile_8cpp_source.html#l00090">plottyfile.cpp:90</a></div></div>
-<div class="ttc" id="aclassPlottyFile_html_af952ac5e2c40896acaf6a86063874fe3"><div class="ttname"><a href="classPlottyFile.html#af952ac5e2c40896acaf6a86063874fe3">PlottyFile::getUnitX</a></div><div class="ttdeci">std::string getUnitX(void) const</div><div class="ttdef"><b>Definition:</b> <a href="plottyfile_8cpp_source.html#l00105">plottyfile.cpp:105</a></div></div>
-<!-- start footer part -->
-<hr class="footer"/><address class="footer"><small>
-Generated on Fri Jun 7 2019 14:50:45 for B15F by &#160;<a href="http://www.doxygen.org/index.html">
-<img class="footer" src="doxygen.png" alt="doxygen"/>
-</a> 1.8.16
-</small></address>
-</body>
-</html>
diff --git a/docs/html/search/all_0.html b/docs/html/search/all_0.html
deleted file mode 100644
index a52d5f0..0000000
--- a/docs/html/search/all_0.html
+++ /dev/null
@@ -1,30 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<html><head><title></title>
-<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
-<meta name="generator" content="Doxygen 1.8.16"/>
-<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:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
-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:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
-document.getElementById("Loading").style.display="none";
-document.getElementById("NoMatches").style.display="none";
-var searchResults = new SearchResults("searchResults");
-searchResults.Search();
-/* @license-end */
---></script>
-</div>
-</body>
-</html>
diff --git a/docs/html/search/all_0.js b/docs/html/search/all_0.js
deleted file mode 100644
index c4bd927..0000000
--- a/docs/html/search/all_0.js
+++ /dev/null
@@ -1,10 +0,0 @@
-var searchData=
-[
-  ['abort',['abort',['../classB15F.html#a3f09a418f9e3be5d1d750e4515c96f1e',1,'B15F::abort(std::string msg)'],['../classB15F.html#ac962a6a49bddd0e261a8c7d3aded23f8',1,'B15F::abort(std::exception &amp;ex)']]],
-  ['activateselftestmode',['activateSelfTestMode',['../classB15F.html#ad9bf80ee2485fb5aac9926c6ef0731f1',1,'B15F']]],
-  ['adddot',['addDot',['../classPlottyFile.html#ae091e6eaaca16302f17572ac7dec6f7c',1,'PlottyFile::addDot(Dot &amp;dot)'],['../classPlottyFile.html#a80e4b45219b4e9571992edfc28a28568',1,'PlottyFile::addDot(Dot dot)']]],
-  ['analogread',['analogRead',['../classB15F.html#ae0bd1f69751e2dc3c462db9213fc4627',1,'B15F']]],
-  ['analogsequence',['analogSequence',['../classB15F.html#ab82a324426c3063318c6cafb3089ae02',1,'B15F']]],
-  ['analogwrite0',['analogWrite0',['../classB15F.html#afc55fd590c7fa5c942d100cb60c4b0d3',1,'B15F']]],
-  ['analogwrite1',['analogWrite1',['../classB15F.html#a7f1becceac744f5cd2ad529748fd836f',1,'B15F']]]
-];
diff --git a/docs/html/search/all_1.html b/docs/html/search/all_1.html
deleted file mode 100644
index 0fcb704..0000000
--- a/docs/html/search/all_1.html
+++ /dev/null
@@ -1,30 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<html><head><title></title>
-<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
-<meta name="generator" content="Doxygen 1.8.16"/>
-<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:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
-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:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
-document.getElementById("Loading").style.display="none";
-document.getElementById("NoMatches").style.display="none";
-var searchResults = new SearchResults("searchResults");
-searchResults.Search();
-/* @license-end */
---></script>
-</div>
-</body>
-</html>
diff --git a/docs/html/search/all_1.js b/docs/html/search/all_1.js
deleted file mode 100644
index 5156238..0000000
--- a/docs/html/search/all_1.js
+++ /dev/null
@@ -1,6 +0,0 @@
-var searchData=
-[
-  ['b15f',['B15F',['../classB15F.html',1,'']]],
-  ['baudrate',['BAUDRATE',['../classB15F.html#a7d548d6861cfc69753161bf9cda14f87',1,'B15F']]],
-  ['b15f_20benutzerhandbuch',['B15F Benutzerhandbuch',['../index.html',1,'']]]
-];
diff --git a/docs/html/search/all_10.html b/docs/html/search/all_10.html
deleted file mode 100644
index c234738..0000000
--- a/docs/html/search/all_10.html
+++ /dev/null
@@ -1,30 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<html><head><title></title>
-<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
-<meta name="generator" content="Doxygen 1.8.16"/>
-<link rel="stylesheet" type="text/css" href="search.css"/>
-<script type="text/javascript" src="all_10.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:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
-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:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
-document.getElementById("Loading").style.display="none";
-document.getElementById("NoMatches").style.display="none";
-var searchResults = new SearchResults("searchResults");
-searchResults.Search();
-/* @license-end */
---></script>
-</div>
-</body>
-</html>
diff --git a/docs/html/search/all_10.js b/docs/html/search/all_10.js
deleted file mode 100644
index f5a3874..0000000
--- a/docs/html/search/all_10.js
+++ /dev/null
@@ -1,6 +0,0 @@
-var searchData=
-[
-  ['_7etimeoutexception',['~TimeoutException',['../classTimeoutException.html#a2f686b262d2ccffa0090fda9b44ab540',1,'TimeoutException']]],
-  ['_7eusart',['~USART',['../classUSART.html#a0c8eb1a939ca00921e22f6cbcc7bb749',1,'USART']]],
-  ['_7eusartexception',['~USARTException',['../classUSARTException.html#a0e008b3cb4974859e6bc8c8f8eb480be',1,'USARTException']]]
-];
diff --git a/docs/html/search/all_2.html b/docs/html/search/all_2.html
deleted file mode 100644
index 19c530f..0000000
--- a/docs/html/search/all_2.html
+++ /dev/null
@@ -1,30 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<html><head><title></title>
-<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
-<meta name="generator" content="Doxygen 1.8.16"/>
-<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:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
-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:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
-document.getElementById("Loading").style.display="none";
-document.getElementById("NoMatches").style.display="none";
-var searchResults = new SearchResults("searchResults");
-searchResults.Search();
-/* @license-end */
---></script>
-</div>
-</body>
-</html>
diff --git a/docs/html/search/all_2.js b/docs/html/search/all_2.js
deleted file mode 100644
index 7200182..0000000
--- a/docs/html/search/all_2.js
+++ /dev/null
@@ -1,6 +0,0 @@
-var searchData=
-[
-  ['clearinputbuffer',['clearInputBuffer',['../classUSART.html#a28a2b4c5ed66b2c3a81196f76884f156',1,'USART']]],
-  ['clearoutputbuffer',['clearOutputBuffer',['../classUSART.html#a756d268a8762c316f91ca3238972b0c1',1,'USART']]],
-  ['closedevice',['closeDevice',['../classUSART.html#af80d6291ac1d2df04cfa1d8d27458cc5',1,'USART']]]
-];
diff --git a/docs/html/search/all_3.html b/docs/html/search/all_3.html
deleted file mode 100644
index 1ae887f..0000000
--- a/docs/html/search/all_3.html
+++ /dev/null
@@ -1,30 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<html><head><title></title>
-<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
-<meta name="generator" content="Doxygen 1.8.16"/>
-<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:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
-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:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
-document.getElementById("Loading").style.display="none";
-document.getElementById("NoMatches").style.display="none";
-var searchResults = new SearchResults("searchResults");
-searchResults.Search();
-/* @license-end */
---></script>
-</div>
-</body>
-</html>
diff --git a/docs/html/search/all_3.js b/docs/html/search/all_3.js
deleted file mode 100644
index 937a08b..0000000
--- a/docs/html/search/all_3.js
+++ /dev/null
@@ -1,13 +0,0 @@
-var searchData=
-[
-  ['delay_5fms',['delay_ms',['../classB15F.html#aaffce20afb9f06bc4b7556c70ce76416',1,'B15F']]],
-  ['delay_5fus',['delay_us',['../classB15F.html#adcaac8ae8db3c28eccb499fbd720361f',1,'B15F']]],
-  ['digitalread0',['digitalRead0',['../classB15F.html#ae0df6d423deeb2fd610968bd1c72060e',1,'B15F']]],
-  ['digitalread1',['digitalRead1',['../classB15F.html#afc76b612dd4faeee0ac02a66b65af5f2',1,'B15F']]],
-  ['digitalwrite0',['digitalWrite0',['../classB15F.html#a13797edea1c50278988373acbd110064',1,'B15F']]],
-  ['digitalwrite1',['digitalWrite1',['../classB15F.html#aa225e7fc813849634063e071ef25db1b',1,'B15F']]],
-  ['discard',['discard',['../classB15F.html#ae4740cd473f40a1a4121dfa66b25e1d5',1,'B15F']]],
-  ['dot',['Dot',['../classDot.html',1,'Dot'],['../classDot.html#ad975f119c0627a928790b3cd5ca6da05',1,'Dot::Dot()']]],
-  ['driverexception',['DriverException',['../classDriverException.html',1,'']]],
-  ['drop',['drop',['../classUSART.html#a038d00c0b3d8c0c13c3e7eae5dad7813',1,'USART']]]
-];
diff --git a/docs/html/search/all_4.html b/docs/html/search/all_4.html
deleted file mode 100644
index 14c90ef..0000000
--- a/docs/html/search/all_4.html
+++ /dev/null
@@ -1,30 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<html><head><title></title>
-<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
-<meta name="generator" content="Doxygen 1.8.16"/>
-<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:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
-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:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
-document.getElementById("Loading").style.display="none";
-document.getElementById("NoMatches").style.display="none";
-var searchResults = new SearchResults("searchResults");
-searchResults.Search();
-/* @license-end */
---></script>
-</div>
-</body>
-</html>
diff --git a/docs/html/search/all_4.js b/docs/html/search/all_4.js
deleted file mode 100644
index fb3f662..0000000
--- a/docs/html/search/all_4.js
+++ /dev/null
@@ -1,4 +0,0 @@
-var searchData=
-[
-  ['exec',['exec',['../classB15F.html#a1a7ac52984ed7ecac008a3e4060eee3a',1,'B15F']]]
-];
diff --git a/docs/html/search/all_5.html b/docs/html/search/all_5.html
deleted file mode 100644
index 60fa53e..0000000
--- a/docs/html/search/all_5.html
+++ /dev/null
@@ -1,30 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<html><head><title></title>
-<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
-<meta name="generator" content="Doxygen 1.8.16"/>
-<link rel="stylesheet" type="text/css" href="search.css"/>
-<script type="text/javascript" src="all_5.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:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
-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:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
-document.getElementById("Loading").style.display="none";
-document.getElementById("NoMatches").style.display="none";
-var searchResults = new SearchResults("searchResults");
-searchResults.Search();
-/* @license-end */
---></script>
-</div>
-</body>
-</html>
diff --git a/docs/html/search/all_5.js b/docs/html/search/all_5.js
deleted file mode 100644
index 3641ddc..0000000
--- a/docs/html/search/all_5.js
+++ /dev/null
@@ -1,4 +0,0 @@
-var searchData=
-[
-  ['flushoutputbuffer',['flushOutputBuffer',['../classUSART.html#adb6ff4d1cf1af79ca255c5a81780200d',1,'USART']]]
-];
diff --git a/docs/html/search/all_6.html b/docs/html/search/all_6.html
deleted file mode 100644
index 7180363..0000000
--- a/docs/html/search/all_6.html
+++ /dev/null
@@ -1,30 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<html><head><title></title>
-<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
-<meta name="generator" content="Doxygen 1.8.16"/>
-<link rel="stylesheet" type="text/css" href="search.css"/>
-<script type="text/javascript" src="all_6.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:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
-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:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
-document.getElementById("Loading").style.display="none";
-document.getElementById("NoMatches").style.display="none";
-var searchResults = new SearchResults("searchResults");
-searchResults.Search();
-/* @license-end */
---></script>
-</div>
-</body>
-</html>
diff --git a/docs/html/search/all_6.js b/docs/html/search/all_6.js
deleted file mode 100644
index 1982342..0000000
--- a/docs/html/search/all_6.js
+++ /dev/null
@@ -1,23 +0,0 @@
-var searchData=
-[
-  ['getbaudrate',['getBaudrate',['../classUSART.html#a4918672d8069df205378a528b1892db3',1,'USART']]],
-  ['getboardinfo',['getBoardInfo',['../classB15F.html#a4f01677e73d6d172a2c1cae9427a591b',1,'B15F']]],
-  ['getcurve',['getCurve',['../classDot.html#ad0ae7dc1a9be3d8d985affc089b34396',1,'Dot']]],
-  ['getdescpara',['getDescPara',['../classPlottyFile.html#a536967daae3b382a5d6575f55450e198',1,'PlottyFile']]],
-  ['getdescx',['getDescX',['../classPlottyFile.html#a9cf7baa569be308c2cf6e07cadded09d',1,'PlottyFile']]],
-  ['getdescy',['getDescY',['../classPlottyFile.html#ab4a847fd71a804182f211233e194df45',1,'PlottyFile']]],
-  ['getfunctiontype',['getFunctionType',['../classPlottyFile.html#a88bb7d8350ed5fbc7a40e8d903c94bdb',1,'PlottyFile']]],
-  ['getinstance',['getInstance',['../classB15F.html#a8b4533d232c55ef2aa967e39e2d23380',1,'B15F']]],
-  ['getparafirstcurve',['getParaFirstCurve',['../classPlottyFile.html#a40828c93d66fe80166c4f603d5bdfa48',1,'PlottyFile']]],
-  ['getparastepwidth',['getParaStepWidth',['../classPlottyFile.html#a9da23f2bb8e6eb1837fc992ffd4057db',1,'PlottyFile']]],
-  ['getquadrant',['getQuadrant',['../classPlottyFile.html#a54e94e80061a27614f2d4d63697d3376',1,'PlottyFile']]],
-  ['getrefx',['getRefX',['../classPlottyFile.html#a7dd84b9f0826f3220fc6b5a4f1ce9890',1,'PlottyFile']]],
-  ['getrefy',['getRefY',['../classPlottyFile.html#ae6650c61a3b1a610ce716253418bd7f2',1,'PlottyFile']]],
-  ['getregister',['getRegister',['../classB15F.html#a9bd47da39928af6f51075bdc3fe73ddc',1,'B15F']]],
-  ['gettimeout',['getTimeout',['../classUSART.html#a19cf777956a038878fc2d2b58c3d2b41',1,'USART']]],
-  ['getunitpara',['getUnitPara',['../classPlottyFile.html#abcda4139adf8c5ab8a93b13b84ac097c',1,'PlottyFile']]],
-  ['getunitx',['getUnitX',['../classPlottyFile.html#af952ac5e2c40896acaf6a86063874fe3',1,'PlottyFile']]],
-  ['getunity',['getUnitY',['../classPlottyFile.html#a746b96036872dbece204e9739f3413b6',1,'PlottyFile']]],
-  ['getx',['getX',['../classDot.html#a029f0cc99c474122b77a708a317e7f77',1,'Dot']]],
-  ['gety',['getY',['../classDot.html#a8fcb987e6308d8184d1a2c8692227e58',1,'Dot']]]
-];
diff --git a/docs/html/search/all_7.html b/docs/html/search/all_7.html
deleted file mode 100644
index ee6d2e4..0000000
--- a/docs/html/search/all_7.html
+++ /dev/null
@@ -1,30 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<html><head><title></title>
-<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
-<meta name="generator" content="Doxygen 1.8.16"/>
-<link rel="stylesheet" type="text/css" href="search.css"/>
-<script type="text/javascript" src="all_7.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:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
-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:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
-document.getElementById("Loading").style.display="none";
-document.getElementById("NoMatches").style.display="none";
-var searchResults = new SearchResults("searchResults");
-searchResults.Search();
-/* @license-end */
---></script>
-</div>
-</body>
-</html>
diff --git a/docs/html/search/all_7.js b/docs/html/search/all_7.js
deleted file mode 100644
index 66df4a3..0000000
--- a/docs/html/search/all_7.js
+++ /dev/null
@@ -1,6 +0,0 @@
-var searchData=
-[
-  ['msg',['msg',['../classTimeoutException.html#aa625fc0fae48a67737a98eafb91c9624',1,'TimeoutException::msg()'],['../classUSARTException.html#a14c80df95f216d221aa97cffbcd8dd79',1,'USARTException::msg()']]],
-  ['msg_5ffail',['MSG_FAIL',['../classB15F.html#a77d1ecf24b406c9204665d3b09c36f1e',1,'B15F']]],
-  ['msg_5fok',['MSG_OK',['../classB15F.html#ab01299858f74a6cec598688562e0ad02',1,'B15F']]]
-];
diff --git a/docs/html/search/all_8.html b/docs/html/search/all_8.html
deleted file mode 100644
index 7829aa4..0000000
--- a/docs/html/search/all_8.html
+++ /dev/null
@@ -1,30 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<html><head><title></title>
-<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
-<meta name="generator" content="Doxygen 1.8.16"/>
-<link rel="stylesheet" type="text/css" href="search.css"/>
-<script type="text/javascript" src="all_8.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:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
-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:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
-document.getElementById("Loading").style.display="none";
-document.getElementById("NoMatches").style.display="none";
-var searchResults = new SearchResults("searchResults");
-searchResults.Search();
-/* @license-end */
---></script>
-</div>
-</body>
-</html>
diff --git a/docs/html/search/all_8.js b/docs/html/search/all_8.js
deleted file mode 100644
index bd75d34..0000000
--- a/docs/html/search/all_8.js
+++ /dev/null
@@ -1,4 +0,0 @@
-var searchData=
-[
-  ['opendevice',['openDevice',['../classUSART.html#a5f7e2abda2ec4a68a5fdb8ee2f8a940a',1,'USART']]]
-];
diff --git a/docs/html/search/all_9.html b/docs/html/search/all_9.html
deleted file mode 100644
index e4242c7..0000000
--- a/docs/html/search/all_9.html
+++ /dev/null
@@ -1,30 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<html><head><title></title>
-<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
-<meta name="generator" content="Doxygen 1.8.16"/>
-<link rel="stylesheet" type="text/css" href="search.css"/>
-<script type="text/javascript" src="all_9.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:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
-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:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
-document.getElementById("Loading").style.display="none";
-document.getElementById("NoMatches").style.display="none";
-var searchResults = new SearchResults("searchResults");
-searchResults.Search();
-/* @license-end */
---></script>
-</div>
-</body>
-</html>
diff --git a/docs/html/search/all_9.js b/docs/html/search/all_9.js
deleted file mode 100644
index 1695de2..0000000
--- a/docs/html/search/all_9.js
+++ /dev/null
@@ -1,7 +0,0 @@
-var searchData=
-[
-  ['plottyfile',['PlottyFile',['../classPlottyFile.html',1,'']]],
-  ['pre',['PRE',['../classB15F.html#a3b0fc1f85954b2d9c145af4a3af5b1ec',1,'B15F']]],
-  ['pwmsetfrequency',['pwmSetFrequency',['../classB15F.html#ac6f6532bb9550a0632c28b98c157d0a1',1,'B15F']]],
-  ['pwmsetvalue',['pwmSetValue',['../classB15F.html#af9aad3c0db5d5a8b37219d713e1977ee',1,'B15F']]]
-];
diff --git a/docs/html/search/all_a.html b/docs/html/search/all_a.html
deleted file mode 100644
index 47a4a78..0000000
--- a/docs/html/search/all_a.html
+++ /dev/null
@@ -1,30 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<html><head><title></title>
-<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
-<meta name="generator" content="Doxygen 1.8.16"/>
-<link rel="stylesheet" type="text/css" href="search.css"/>
-<script type="text/javascript" src="all_a.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:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
-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:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
-document.getElementById("Loading").style.display="none";
-document.getElementById("NoMatches").style.display="none";
-var searchResults = new SearchResults("searchResults");
-searchResults.Search();
-/* @license-end */
---></script>
-</div>
-</body>
-</html>
diff --git a/docs/html/search/all_a.js b/docs/html/search/all_a.js
deleted file mode 100644
index 7ca61ac..0000000
--- a/docs/html/search/all_a.js
+++ /dev/null
@@ -1,8 +0,0 @@
-var searchData=
-[
-  ['readdipswitch',['readDipSwitch',['../classB15F.html#a6f858f21ea81d491b5031b3644a2239a',1,'B15F']]],
-  ['receive',['receive',['../classUSART.html#a0fdc238203852f00bd750127602b2a6a',1,'USART']]],
-  ['reconnect',['reconnect',['../classB15F.html#a52557b375443c180a044e7d4e80a1ae7',1,'B15F']]],
-  ['reconnect_5ftimeout',['RECONNECT_TIMEOUT',['../classB15F.html#a040951746fbfd632e12bd1ad14578816',1,'B15F']]],
-  ['reconnect_5ftries',['RECONNECT_TRIES',['../classB15F.html#a6c4895bdbcd71ff6743becf97985c2dc',1,'B15F']]]
-];
diff --git a/docs/html/search/all_b.html b/docs/html/search/all_b.html
deleted file mode 100644
index 1320a43..0000000
--- a/docs/html/search/all_b.html
+++ /dev/null
@@ -1,30 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<html><head><title></title>
-<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
-<meta name="generator" content="Doxygen 1.8.16"/>
-<link rel="stylesheet" type="text/css" href="search.css"/>
-<script type="text/javascript" src="all_b.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:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
-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:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
-document.getElementById("Loading").style.display="none";
-document.getElementById("NoMatches").style.display="none";
-var searchResults = new SearchResults("searchResults");
-searchResults.Search();
-/* @license-end */
---></script>
-</div>
-</body>
-</html>
diff --git a/docs/html/search/all_b.js b/docs/html/search/all_b.js
deleted file mode 100644
index db20ab4..0000000
--- a/docs/html/search/all_b.js
+++ /dev/null
@@ -1,20 +0,0 @@
-var searchData=
-[
-  ['setaborthandler',['setAbortHandler',['../classB15F.html#a55b0cd1ea582bda53d6979442640f8e9',1,'B15F']]],
-  ['setbaudrate',['setBaudrate',['../classUSART.html#aac63918a8b97ae63ee607cfa39e6d88d',1,'USART']]],
-  ['setdescpara',['setDescPara',['../classPlottyFile.html#a431904143c3c1164a2e8b8cfec3c77ab',1,'PlottyFile']]],
-  ['setdescx',['setDescX',['../classPlottyFile.html#aa0449c290265d55d6223b19cf0a88b0a',1,'PlottyFile']]],
-  ['setdescy',['setDescY',['../classPlottyFile.html#a38a3a4dfc76bc70523727584bf01d590',1,'PlottyFile']]],
-  ['setfunctiontype',['setFunctionType',['../classPlottyFile.html#a4e5ab1ebb012a5cc1a3d6458a4cd512f',1,'PlottyFile']]],
-  ['setparafirstcurve',['setParaFirstCurve',['../classPlottyFile.html#aa676414793becb975506f48d6e949dd0',1,'PlottyFile']]],
-  ['setparastepwidth',['setParaStepWidth',['../classPlottyFile.html#a6caebd31e04e2e7081cc007047350355',1,'PlottyFile']]],
-  ['setquadrant',['setQuadrant',['../classPlottyFile.html#a1953ee0d9a87b7353c16139584e9c2ae',1,'PlottyFile']]],
-  ['setrefx',['setRefX',['../classPlottyFile.html#a80c2c2e97a454566f9c1f2c51e1d7f3e',1,'PlottyFile']]],
-  ['setrefy',['setRefY',['../classPlottyFile.html#a3a371228ddcc007e97eebe7cc04dffc2',1,'PlottyFile']]],
-  ['setregister',['setRegister',['../classB15F.html#ab446ecffab28d4515dfade79a8efc93d',1,'B15F']]],
-  ['settimeout',['setTimeout',['../classUSART.html#ad7fe866cebe920784d2b17602824c7ff',1,'USART']]],
-  ['setunitpara',['setUnitPara',['../classPlottyFile.html#abbac84109a1e0958a4ca5c270fac0986',1,'PlottyFile']]],
-  ['setunitx',['setUnitX',['../classPlottyFile.html#ab8d35a841ca9c325fca671cf34e03527',1,'PlottyFile']]],
-  ['setunity',['setUnitY',['../classPlottyFile.html#abb18c814f435926f741f7ceb310f3059',1,'PlottyFile']]],
-  ['startplotty',['startPlotty',['../classPlottyFile.html#a08a115ef10458cadfe76077d623313df',1,'PlottyFile']]]
-];
diff --git a/docs/html/search/all_c.html b/docs/html/search/all_c.html
deleted file mode 100644
index 32a3a1b..0000000
--- a/docs/html/search/all_c.html
+++ /dev/null
@@ -1,30 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<html><head><title></title>
-<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
-<meta name="generator" content="Doxygen 1.8.16"/>
-<link rel="stylesheet" type="text/css" href="search.css"/>
-<script type="text/javascript" src="all_c.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:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
-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:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
-document.getElementById("Loading").style.display="none";
-document.getElementById("NoMatches").style.display="none";
-var searchResults = new SearchResults("searchResults");
-searchResults.Search();
-/* @license-end */
---></script>
-</div>
-</body>
-</html>
diff --git a/docs/html/search/all_c.js b/docs/html/search/all_c.js
deleted file mode 100644
index 37e3d29..0000000
--- a/docs/html/search/all_c.js
+++ /dev/null
@@ -1,7 +0,0 @@
-var searchData=
-[
-  ['testconnection',['testConnection',['../classB15F.html#af01983594f2af98ab2b1e514aa036a5d',1,'B15F']]],
-  ['testintconv',['testIntConv',['../classB15F.html#a7b8a0e2a9156f7dcb05d097f23666a78',1,'B15F']]],
-  ['timeoutexception',['TimeoutException',['../classTimeoutException.html',1,'TimeoutException'],['../classTimeoutException.html#aa45912234da11ffc9dd3594a1bbc0218',1,'TimeoutException::TimeoutException(const char *message)'],['../classTimeoutException.html#ad6e5c200fbfd276f48a6c1163e2d2988',1,'TimeoutException::TimeoutException(const std::string &amp;message)']]],
-  ['transmit',['transmit',['../classUSART.html#a41b19dd58f307015b73e154048cd74ca',1,'USART']]]
-];
diff --git a/docs/html/search/all_d.html b/docs/html/search/all_d.html
deleted file mode 100644
index a386096..0000000
--- a/docs/html/search/all_d.html
+++ /dev/null
@@ -1,30 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<html><head><title></title>
-<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
-<meta name="generator" content="Doxygen 1.8.16"/>
-<link rel="stylesheet" type="text/css" href="search.css"/>
-<script type="text/javascript" src="all_d.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:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
-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:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
-document.getElementById("Loading").style.display="none";
-document.getElementById("NoMatches").style.display="none";
-var searchResults = new SearchResults("searchResults");
-searchResults.Search();
-/* @license-end */
---></script>
-</div>
-</body>
-</html>
diff --git a/docs/html/search/all_d.js b/docs/html/search/all_d.js
deleted file mode 100644
index 7e9d9bc..0000000
--- a/docs/html/search/all_d.js
+++ /dev/null
@@ -1,5 +0,0 @@
-var searchData=
-[
-  ['usart',['USART',['../classUSART.html',1,'USART'],['../classUSART.html#a5daed20dc595c43d87c4c28bb08a7449',1,'USART::USART()']]],
-  ['usartexception',['USARTException',['../classUSARTException.html',1,'USARTException'],['../classUSARTException.html#a3c359db129825703b91392d5128cf93d',1,'USARTException::USARTException(const char *message)'],['../classUSARTException.html#a643c0a8b7f0d81e2f1693a75b378e6c2',1,'USARTException::USARTException(const std::string &amp;message)']]]
-];
diff --git a/docs/html/search/all_e.html b/docs/html/search/all_e.html
deleted file mode 100644
index 2931618..0000000
--- a/docs/html/search/all_e.html
+++ /dev/null
@@ -1,30 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<html><head><title></title>
-<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
-<meta name="generator" content="Doxygen 1.8.16"/>
-<link rel="stylesheet" type="text/css" href="search.css"/>
-<script type="text/javascript" src="all_e.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:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
-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:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
-document.getElementById("Loading").style.display="none";
-document.getElementById("NoMatches").style.display="none";
-var searchResults = new SearchResults("searchResults");
-searchResults.Search();
-/* @license-end */
---></script>
-</div>
-</body>
-</html>
diff --git a/docs/html/search/all_e.js b/docs/html/search/all_e.js
deleted file mode 100644
index 27f785f..0000000
--- a/docs/html/search/all_e.js
+++ /dev/null
@@ -1,8 +0,0 @@
-var searchData=
-[
-  ['view',['View',['../classView.html',1,'']]],
-  ['viewinfo',['ViewInfo',['../classViewInfo.html',1,'']]],
-  ['viewmonitor',['ViewMonitor',['../classViewMonitor.html',1,'']]],
-  ['viewpromt',['ViewPromt',['../classViewPromt.html',1,'']]],
-  ['viewselection',['ViewSelection',['../classViewSelection.html',1,'']]]
-];
diff --git a/docs/html/search/all_f.html b/docs/html/search/all_f.html
deleted file mode 100644
index ca42a52..0000000
--- a/docs/html/search/all_f.html
+++ /dev/null
@@ -1,30 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<html><head><title></title>
-<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
-<meta name="generator" content="Doxygen 1.8.16"/>
-<link rel="stylesheet" type="text/css" href="search.css"/>
-<script type="text/javascript" src="all_f.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:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
-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:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
-document.getElementById("Loading").style.display="none";
-document.getElementById("NoMatches").style.display="none";
-var searchResults = new SearchResults("searchResults");
-searchResults.Search();
-/* @license-end */
---></script>
-</div>
-</body>
-</html>
diff --git a/docs/html/search/all_f.js b/docs/html/search/all_f.js
deleted file mode 100644
index 38b315c..0000000
--- a/docs/html/search/all_f.js
+++ /dev/null
@@ -1,6 +0,0 @@
-var searchData=
-[
-  ['wdt_5ftimeout',['WDT_TIMEOUT',['../classB15F.html#a158d13bc84aed6430cdede1396384e06',1,'B15F']]],
-  ['what',['what',['../classTimeoutException.html#a97eaf01fc39ddb94b060020b42fefd6e',1,'TimeoutException::what()'],['../classUSARTException.html#a2af5e3c00cd0585c7427c2e0420a8f15',1,'USARTException::what()']]],
-  ['writetofile',['writeToFile',['../classPlottyFile.html#a82c348e7fade2edcbc907e7c2bc2e305',1,'PlottyFile']]]
-];
diff --git a/docs/html/search/classes_0.html b/docs/html/search/classes_0.html
deleted file mode 100644
index d585e6a..0000000
--- a/docs/html/search/classes_0.html
+++ /dev/null
@@ -1,30 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<html><head><title></title>
-<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
-<meta name="generator" content="Doxygen 1.8.16"/>
-<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:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
-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:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
-document.getElementById("Loading").style.display="none";
-document.getElementById("NoMatches").style.display="none";
-var searchResults = new SearchResults("searchResults");
-searchResults.Search();
-/* @license-end */
---></script>
-</div>
-</body>
-</html>
diff --git a/docs/html/search/classes_0.js b/docs/html/search/classes_0.js
deleted file mode 100644
index 7622f87..0000000
--- a/docs/html/search/classes_0.js
+++ /dev/null
@@ -1,4 +0,0 @@
-var searchData=
-[
-  ['b15f',['B15F',['../classB15F.html',1,'']]]
-];
diff --git a/docs/html/search/classes_1.html b/docs/html/search/classes_1.html
deleted file mode 100644
index baeb182..0000000
--- a/docs/html/search/classes_1.html
+++ /dev/null
@@ -1,30 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<html><head><title></title>
-<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
-<meta name="generator" content="Doxygen 1.8.16"/>
-<link rel="stylesheet" type="text/css" href="search.css"/>
-<script type="text/javascript" src="classes_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:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
-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:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
-document.getElementById("Loading").style.display="none";
-document.getElementById("NoMatches").style.display="none";
-var searchResults = new SearchResults("searchResults");
-searchResults.Search();
-/* @license-end */
---></script>
-</div>
-</body>
-</html>
diff --git a/docs/html/search/classes_1.js b/docs/html/search/classes_1.js
deleted file mode 100644
index c2d5cc3..0000000
--- a/docs/html/search/classes_1.js
+++ /dev/null
@@ -1,5 +0,0 @@
-var searchData=
-[
-  ['dot',['Dot',['../classDot.html',1,'']]],
-  ['driverexception',['DriverException',['../classDriverException.html',1,'']]]
-];
diff --git a/docs/html/search/classes_2.html b/docs/html/search/classes_2.html
deleted file mode 100644
index d267279..0000000
--- a/docs/html/search/classes_2.html
+++ /dev/null
@@ -1,30 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<html><head><title></title>
-<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
-<meta name="generator" content="Doxygen 1.8.16"/>
-<link rel="stylesheet" type="text/css" href="search.css"/>
-<script type="text/javascript" src="classes_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:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
-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:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
-document.getElementById("Loading").style.display="none";
-document.getElementById("NoMatches").style.display="none";
-var searchResults = new SearchResults("searchResults");
-searchResults.Search();
-/* @license-end */
---></script>
-</div>
-</body>
-</html>
diff --git a/docs/html/search/classes_2.js b/docs/html/search/classes_2.js
deleted file mode 100644
index ca8950f..0000000
--- a/docs/html/search/classes_2.js
+++ /dev/null
@@ -1,4 +0,0 @@
-var searchData=
-[
-  ['plottyfile',['PlottyFile',['../classPlottyFile.html',1,'']]]
-];
diff --git a/docs/html/search/classes_3.html b/docs/html/search/classes_3.html
deleted file mode 100644
index 8a5cbe1..0000000
--- a/docs/html/search/classes_3.html
+++ /dev/null
@@ -1,30 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<html><head><title></title>
-<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
-<meta name="generator" content="Doxygen 1.8.16"/>
-<link rel="stylesheet" type="text/css" href="search.css"/>
-<script type="text/javascript" src="classes_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:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
-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:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
-document.getElementById("Loading").style.display="none";
-document.getElementById("NoMatches").style.display="none";
-var searchResults = new SearchResults("searchResults");
-searchResults.Search();
-/* @license-end */
---></script>
-</div>
-</body>
-</html>
diff --git a/docs/html/search/classes_3.js b/docs/html/search/classes_3.js
deleted file mode 100644
index b7d0b63..0000000
--- a/docs/html/search/classes_3.js
+++ /dev/null
@@ -1,4 +0,0 @@
-var searchData=
-[
-  ['timeoutexception',['TimeoutException',['../classTimeoutException.html',1,'']]]
-];
diff --git a/docs/html/search/classes_4.html b/docs/html/search/classes_4.html
deleted file mode 100644
index 300b9ab..0000000
--- a/docs/html/search/classes_4.html
+++ /dev/null
@@ -1,30 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<html><head><title></title>
-<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
-<meta name="generator" content="Doxygen 1.8.16"/>
-<link rel="stylesheet" type="text/css" href="search.css"/>
-<script type="text/javascript" src="classes_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:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
-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:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
-document.getElementById("Loading").style.display="none";
-document.getElementById("NoMatches").style.display="none";
-var searchResults = new SearchResults("searchResults");
-searchResults.Search();
-/* @license-end */
---></script>
-</div>
-</body>
-</html>
diff --git a/docs/html/search/classes_4.js b/docs/html/search/classes_4.js
deleted file mode 100644
index c030e1b..0000000
--- a/docs/html/search/classes_4.js
+++ /dev/null
@@ -1,5 +0,0 @@
-var searchData=
-[
-  ['usart',['USART',['../classUSART.html',1,'']]],
-  ['usartexception',['USARTException',['../classUSARTException.html',1,'']]]
-];
diff --git a/docs/html/search/classes_5.html b/docs/html/search/classes_5.html
deleted file mode 100644
index e7afb2c..0000000
--- a/docs/html/search/classes_5.html
+++ /dev/null
@@ -1,30 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<html><head><title></title>
-<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
-<meta name="generator" content="Doxygen 1.8.16"/>
-<link rel="stylesheet" type="text/css" href="search.css"/>
-<script type="text/javascript" src="classes_5.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:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
-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:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
-document.getElementById("Loading").style.display="none";
-document.getElementById("NoMatches").style.display="none";
-var searchResults = new SearchResults("searchResults");
-searchResults.Search();
-/* @license-end */
---></script>
-</div>
-</body>
-</html>
diff --git a/docs/html/search/classes_5.js b/docs/html/search/classes_5.js
deleted file mode 100644
index 27f785f..0000000
--- a/docs/html/search/classes_5.js
+++ /dev/null
@@ -1,8 +0,0 @@
-var searchData=
-[
-  ['view',['View',['../classView.html',1,'']]],
-  ['viewinfo',['ViewInfo',['../classViewInfo.html',1,'']]],
-  ['viewmonitor',['ViewMonitor',['../classViewMonitor.html',1,'']]],
-  ['viewpromt',['ViewPromt',['../classViewPromt.html',1,'']]],
-  ['viewselection',['ViewSelection',['../classViewSelection.html',1,'']]]
-];
diff --git a/docs/html/search/close.png b/docs/html/search/close.png
deleted file mode 100644
index 9342d3d..0000000
Binary files a/docs/html/search/close.png and /dev/null differ
diff --git a/docs/html/search/functions_0.html b/docs/html/search/functions_0.html
deleted file mode 100644
index 8a729f7..0000000
--- a/docs/html/search/functions_0.html
+++ /dev/null
@@ -1,30 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<html><head><title></title>
-<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
-<meta name="generator" content="Doxygen 1.8.16"/>
-<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:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
-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:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
-document.getElementById("Loading").style.display="none";
-document.getElementById("NoMatches").style.display="none";
-var searchResults = new SearchResults("searchResults");
-searchResults.Search();
-/* @license-end */
---></script>
-</div>
-</body>
-</html>
diff --git a/docs/html/search/functions_0.js b/docs/html/search/functions_0.js
deleted file mode 100644
index c4bd927..0000000
--- a/docs/html/search/functions_0.js
+++ /dev/null
@@ -1,10 +0,0 @@
-var searchData=
-[
-  ['abort',['abort',['../classB15F.html#a3f09a418f9e3be5d1d750e4515c96f1e',1,'B15F::abort(std::string msg)'],['../classB15F.html#ac962a6a49bddd0e261a8c7d3aded23f8',1,'B15F::abort(std::exception &amp;ex)']]],
-  ['activateselftestmode',['activateSelfTestMode',['../classB15F.html#ad9bf80ee2485fb5aac9926c6ef0731f1',1,'B15F']]],
-  ['adddot',['addDot',['../classPlottyFile.html#ae091e6eaaca16302f17572ac7dec6f7c',1,'PlottyFile::addDot(Dot &amp;dot)'],['../classPlottyFile.html#a80e4b45219b4e9571992edfc28a28568',1,'PlottyFile::addDot(Dot dot)']]],
-  ['analogread',['analogRead',['../classB15F.html#ae0bd1f69751e2dc3c462db9213fc4627',1,'B15F']]],
-  ['analogsequence',['analogSequence',['../classB15F.html#ab82a324426c3063318c6cafb3089ae02',1,'B15F']]],
-  ['analogwrite0',['analogWrite0',['../classB15F.html#afc55fd590c7fa5c942d100cb60c4b0d3',1,'B15F']]],
-  ['analogwrite1',['analogWrite1',['../classB15F.html#a7f1becceac744f5cd2ad529748fd836f',1,'B15F']]]
-];
diff --git a/docs/html/search/functions_1.html b/docs/html/search/functions_1.html
deleted file mode 100644
index d4929aa..0000000
--- a/docs/html/search/functions_1.html
+++ /dev/null
@@ -1,30 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<html><head><title></title>
-<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
-<meta name="generator" content="Doxygen 1.8.16"/>
-<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:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
-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:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
-document.getElementById("Loading").style.display="none";
-document.getElementById("NoMatches").style.display="none";
-var searchResults = new SearchResults("searchResults");
-searchResults.Search();
-/* @license-end */
---></script>
-</div>
-</body>
-</html>
diff --git a/docs/html/search/functions_1.js b/docs/html/search/functions_1.js
deleted file mode 100644
index 7200182..0000000
--- a/docs/html/search/functions_1.js
+++ /dev/null
@@ -1,6 +0,0 @@
-var searchData=
-[
-  ['clearinputbuffer',['clearInputBuffer',['../classUSART.html#a28a2b4c5ed66b2c3a81196f76884f156',1,'USART']]],
-  ['clearoutputbuffer',['clearOutputBuffer',['../classUSART.html#a756d268a8762c316f91ca3238972b0c1',1,'USART']]],
-  ['closedevice',['closeDevice',['../classUSART.html#af80d6291ac1d2df04cfa1d8d27458cc5',1,'USART']]]
-];
diff --git a/docs/html/search/functions_2.html b/docs/html/search/functions_2.html
deleted file mode 100644
index 07e3fda..0000000
--- a/docs/html/search/functions_2.html
+++ /dev/null
@@ -1,30 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<html><head><title></title>
-<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
-<meta name="generator" content="Doxygen 1.8.16"/>
-<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:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
-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:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
-document.getElementById("Loading").style.display="none";
-document.getElementById("NoMatches").style.display="none";
-var searchResults = new SearchResults("searchResults");
-searchResults.Search();
-/* @license-end */
---></script>
-</div>
-</body>
-</html>
diff --git a/docs/html/search/functions_2.js b/docs/html/search/functions_2.js
deleted file mode 100644
index 06f50ef..0000000
--- a/docs/html/search/functions_2.js
+++ /dev/null
@@ -1,12 +0,0 @@
-var searchData=
-[
-  ['delay_5fms',['delay_ms',['../classB15F.html#aaffce20afb9f06bc4b7556c70ce76416',1,'B15F']]],
-  ['delay_5fus',['delay_us',['../classB15F.html#adcaac8ae8db3c28eccb499fbd720361f',1,'B15F']]],
-  ['digitalread0',['digitalRead0',['../classB15F.html#ae0df6d423deeb2fd610968bd1c72060e',1,'B15F']]],
-  ['digitalread1',['digitalRead1',['../classB15F.html#afc76b612dd4faeee0ac02a66b65af5f2',1,'B15F']]],
-  ['digitalwrite0',['digitalWrite0',['../classB15F.html#a13797edea1c50278988373acbd110064',1,'B15F']]],
-  ['digitalwrite1',['digitalWrite1',['../classB15F.html#aa225e7fc813849634063e071ef25db1b',1,'B15F']]],
-  ['discard',['discard',['../classB15F.html#ae4740cd473f40a1a4121dfa66b25e1d5',1,'B15F']]],
-  ['dot',['Dot',['../classDot.html#ad975f119c0627a928790b3cd5ca6da05',1,'Dot']]],
-  ['drop',['drop',['../classUSART.html#a038d00c0b3d8c0c13c3e7eae5dad7813',1,'USART']]]
-];
diff --git a/docs/html/search/functions_3.html b/docs/html/search/functions_3.html
deleted file mode 100644
index 40bd389..0000000
--- a/docs/html/search/functions_3.html
+++ /dev/null
@@ -1,30 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<html><head><title></title>
-<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
-<meta name="generator" content="Doxygen 1.8.16"/>
-<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:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
-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:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
-document.getElementById("Loading").style.display="none";
-document.getElementById("NoMatches").style.display="none";
-var searchResults = new SearchResults("searchResults");
-searchResults.Search();
-/* @license-end */
---></script>
-</div>
-</body>
-</html>
diff --git a/docs/html/search/functions_3.js b/docs/html/search/functions_3.js
deleted file mode 100644
index fb3f662..0000000
--- a/docs/html/search/functions_3.js
+++ /dev/null
@@ -1,4 +0,0 @@
-var searchData=
-[
-  ['exec',['exec',['../classB15F.html#a1a7ac52984ed7ecac008a3e4060eee3a',1,'B15F']]]
-];
diff --git a/docs/html/search/functions_4.html b/docs/html/search/functions_4.html
deleted file mode 100644
index 8a4df4c..0000000
--- a/docs/html/search/functions_4.html
+++ /dev/null
@@ -1,30 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<html><head><title></title>
-<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
-<meta name="generator" content="Doxygen 1.8.16"/>
-<link rel="stylesheet" type="text/css" href="search.css"/>
-<script type="text/javascript" src="functions_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:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
-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:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
-document.getElementById("Loading").style.display="none";
-document.getElementById("NoMatches").style.display="none";
-var searchResults = new SearchResults("searchResults");
-searchResults.Search();
-/* @license-end */
---></script>
-</div>
-</body>
-</html>
diff --git a/docs/html/search/functions_4.js b/docs/html/search/functions_4.js
deleted file mode 100644
index 3641ddc..0000000
--- a/docs/html/search/functions_4.js
+++ /dev/null
@@ -1,4 +0,0 @@
-var searchData=
-[
-  ['flushoutputbuffer',['flushOutputBuffer',['../classUSART.html#adb6ff4d1cf1af79ca255c5a81780200d',1,'USART']]]
-];
diff --git a/docs/html/search/functions_5.html b/docs/html/search/functions_5.html
deleted file mode 100644
index 2b983b2..0000000
--- a/docs/html/search/functions_5.html
+++ /dev/null
@@ -1,30 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<html><head><title></title>
-<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
-<meta name="generator" content="Doxygen 1.8.16"/>
-<link rel="stylesheet" type="text/css" href="search.css"/>
-<script type="text/javascript" src="functions_5.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:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
-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:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
-document.getElementById("Loading").style.display="none";
-document.getElementById("NoMatches").style.display="none";
-var searchResults = new SearchResults("searchResults");
-searchResults.Search();
-/* @license-end */
---></script>
-</div>
-</body>
-</html>
diff --git a/docs/html/search/functions_5.js b/docs/html/search/functions_5.js
deleted file mode 100644
index 1982342..0000000
--- a/docs/html/search/functions_5.js
+++ /dev/null
@@ -1,23 +0,0 @@
-var searchData=
-[
-  ['getbaudrate',['getBaudrate',['../classUSART.html#a4918672d8069df205378a528b1892db3',1,'USART']]],
-  ['getboardinfo',['getBoardInfo',['../classB15F.html#a4f01677e73d6d172a2c1cae9427a591b',1,'B15F']]],
-  ['getcurve',['getCurve',['../classDot.html#ad0ae7dc1a9be3d8d985affc089b34396',1,'Dot']]],
-  ['getdescpara',['getDescPara',['../classPlottyFile.html#a536967daae3b382a5d6575f55450e198',1,'PlottyFile']]],
-  ['getdescx',['getDescX',['../classPlottyFile.html#a9cf7baa569be308c2cf6e07cadded09d',1,'PlottyFile']]],
-  ['getdescy',['getDescY',['../classPlottyFile.html#ab4a847fd71a804182f211233e194df45',1,'PlottyFile']]],
-  ['getfunctiontype',['getFunctionType',['../classPlottyFile.html#a88bb7d8350ed5fbc7a40e8d903c94bdb',1,'PlottyFile']]],
-  ['getinstance',['getInstance',['../classB15F.html#a8b4533d232c55ef2aa967e39e2d23380',1,'B15F']]],
-  ['getparafirstcurve',['getParaFirstCurve',['../classPlottyFile.html#a40828c93d66fe80166c4f603d5bdfa48',1,'PlottyFile']]],
-  ['getparastepwidth',['getParaStepWidth',['../classPlottyFile.html#a9da23f2bb8e6eb1837fc992ffd4057db',1,'PlottyFile']]],
-  ['getquadrant',['getQuadrant',['../classPlottyFile.html#a54e94e80061a27614f2d4d63697d3376',1,'PlottyFile']]],
-  ['getrefx',['getRefX',['../classPlottyFile.html#a7dd84b9f0826f3220fc6b5a4f1ce9890',1,'PlottyFile']]],
-  ['getrefy',['getRefY',['../classPlottyFile.html#ae6650c61a3b1a610ce716253418bd7f2',1,'PlottyFile']]],
-  ['getregister',['getRegister',['../classB15F.html#a9bd47da39928af6f51075bdc3fe73ddc',1,'B15F']]],
-  ['gettimeout',['getTimeout',['../classUSART.html#a19cf777956a038878fc2d2b58c3d2b41',1,'USART']]],
-  ['getunitpara',['getUnitPara',['../classPlottyFile.html#abcda4139adf8c5ab8a93b13b84ac097c',1,'PlottyFile']]],
-  ['getunitx',['getUnitX',['../classPlottyFile.html#af952ac5e2c40896acaf6a86063874fe3',1,'PlottyFile']]],
-  ['getunity',['getUnitY',['../classPlottyFile.html#a746b96036872dbece204e9739f3413b6',1,'PlottyFile']]],
-  ['getx',['getX',['../classDot.html#a029f0cc99c474122b77a708a317e7f77',1,'Dot']]],
-  ['gety',['getY',['../classDot.html#a8fcb987e6308d8184d1a2c8692227e58',1,'Dot']]]
-];
diff --git a/docs/html/search/functions_6.html b/docs/html/search/functions_6.html
deleted file mode 100644
index f7d283d..0000000
--- a/docs/html/search/functions_6.html
+++ /dev/null
@@ -1,30 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<html><head><title></title>
-<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
-<meta name="generator" content="Doxygen 1.8.16"/>
-<link rel="stylesheet" type="text/css" href="search.css"/>
-<script type="text/javascript" src="functions_6.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:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
-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:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
-document.getElementById("Loading").style.display="none";
-document.getElementById("NoMatches").style.display="none";
-var searchResults = new SearchResults("searchResults");
-searchResults.Search();
-/* @license-end */
---></script>
-</div>
-</body>
-</html>
diff --git a/docs/html/search/functions_6.js b/docs/html/search/functions_6.js
deleted file mode 100644
index bd75d34..0000000
--- a/docs/html/search/functions_6.js
+++ /dev/null
@@ -1,4 +0,0 @@
-var searchData=
-[
-  ['opendevice',['openDevice',['../classUSART.html#a5f7e2abda2ec4a68a5fdb8ee2f8a940a',1,'USART']]]
-];
diff --git a/docs/html/search/functions_7.html b/docs/html/search/functions_7.html
deleted file mode 100644
index a74fe44..0000000
--- a/docs/html/search/functions_7.html
+++ /dev/null
@@ -1,30 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<html><head><title></title>
-<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
-<meta name="generator" content="Doxygen 1.8.16"/>
-<link rel="stylesheet" type="text/css" href="search.css"/>
-<script type="text/javascript" src="functions_7.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:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
-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:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
-document.getElementById("Loading").style.display="none";
-document.getElementById("NoMatches").style.display="none";
-var searchResults = new SearchResults("searchResults");
-searchResults.Search();
-/* @license-end */
---></script>
-</div>
-</body>
-</html>
diff --git a/docs/html/search/functions_7.js b/docs/html/search/functions_7.js
deleted file mode 100644
index b0de2bf..0000000
--- a/docs/html/search/functions_7.js
+++ /dev/null
@@ -1,5 +0,0 @@
-var searchData=
-[
-  ['pwmsetfrequency',['pwmSetFrequency',['../classB15F.html#ac6f6532bb9550a0632c28b98c157d0a1',1,'B15F']]],
-  ['pwmsetvalue',['pwmSetValue',['../classB15F.html#af9aad3c0db5d5a8b37219d713e1977ee',1,'B15F']]]
-];
diff --git a/docs/html/search/functions_8.html b/docs/html/search/functions_8.html
deleted file mode 100644
index 75fc0be..0000000
--- a/docs/html/search/functions_8.html
+++ /dev/null
@@ -1,30 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<html><head><title></title>
-<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
-<meta name="generator" content="Doxygen 1.8.16"/>
-<link rel="stylesheet" type="text/css" href="search.css"/>
-<script type="text/javascript" src="functions_8.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:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
-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:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
-document.getElementById("Loading").style.display="none";
-document.getElementById("NoMatches").style.display="none";
-var searchResults = new SearchResults("searchResults");
-searchResults.Search();
-/* @license-end */
---></script>
-</div>
-</body>
-</html>
diff --git a/docs/html/search/functions_8.js b/docs/html/search/functions_8.js
deleted file mode 100644
index b57cb64..0000000
--- a/docs/html/search/functions_8.js
+++ /dev/null
@@ -1,6 +0,0 @@
-var searchData=
-[
-  ['readdipswitch',['readDipSwitch',['../classB15F.html#a6f858f21ea81d491b5031b3644a2239a',1,'B15F']]],
-  ['receive',['receive',['../classUSART.html#a0fdc238203852f00bd750127602b2a6a',1,'USART']]],
-  ['reconnect',['reconnect',['../classB15F.html#a52557b375443c180a044e7d4e80a1ae7',1,'B15F']]]
-];
diff --git a/docs/html/search/functions_9.html b/docs/html/search/functions_9.html
deleted file mode 100644
index 7541c9e..0000000
--- a/docs/html/search/functions_9.html
+++ /dev/null
@@ -1,30 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<html><head><title></title>
-<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
-<meta name="generator" content="Doxygen 1.8.16"/>
-<link rel="stylesheet" type="text/css" href="search.css"/>
-<script type="text/javascript" src="functions_9.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:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
-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:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
-document.getElementById("Loading").style.display="none";
-document.getElementById("NoMatches").style.display="none";
-var searchResults = new SearchResults("searchResults");
-searchResults.Search();
-/* @license-end */
---></script>
-</div>
-</body>
-</html>
diff --git a/docs/html/search/functions_9.js b/docs/html/search/functions_9.js
deleted file mode 100644
index db20ab4..0000000
--- a/docs/html/search/functions_9.js
+++ /dev/null
@@ -1,20 +0,0 @@
-var searchData=
-[
-  ['setaborthandler',['setAbortHandler',['../classB15F.html#a55b0cd1ea582bda53d6979442640f8e9',1,'B15F']]],
-  ['setbaudrate',['setBaudrate',['../classUSART.html#aac63918a8b97ae63ee607cfa39e6d88d',1,'USART']]],
-  ['setdescpara',['setDescPara',['../classPlottyFile.html#a431904143c3c1164a2e8b8cfec3c77ab',1,'PlottyFile']]],
-  ['setdescx',['setDescX',['../classPlottyFile.html#aa0449c290265d55d6223b19cf0a88b0a',1,'PlottyFile']]],
-  ['setdescy',['setDescY',['../classPlottyFile.html#a38a3a4dfc76bc70523727584bf01d590',1,'PlottyFile']]],
-  ['setfunctiontype',['setFunctionType',['../classPlottyFile.html#a4e5ab1ebb012a5cc1a3d6458a4cd512f',1,'PlottyFile']]],
-  ['setparafirstcurve',['setParaFirstCurve',['../classPlottyFile.html#aa676414793becb975506f48d6e949dd0',1,'PlottyFile']]],
-  ['setparastepwidth',['setParaStepWidth',['../classPlottyFile.html#a6caebd31e04e2e7081cc007047350355',1,'PlottyFile']]],
-  ['setquadrant',['setQuadrant',['../classPlottyFile.html#a1953ee0d9a87b7353c16139584e9c2ae',1,'PlottyFile']]],
-  ['setrefx',['setRefX',['../classPlottyFile.html#a80c2c2e97a454566f9c1f2c51e1d7f3e',1,'PlottyFile']]],
-  ['setrefy',['setRefY',['../classPlottyFile.html#a3a371228ddcc007e97eebe7cc04dffc2',1,'PlottyFile']]],
-  ['setregister',['setRegister',['../classB15F.html#ab446ecffab28d4515dfade79a8efc93d',1,'B15F']]],
-  ['settimeout',['setTimeout',['../classUSART.html#ad7fe866cebe920784d2b17602824c7ff',1,'USART']]],
-  ['setunitpara',['setUnitPara',['../classPlottyFile.html#abbac84109a1e0958a4ca5c270fac0986',1,'PlottyFile']]],
-  ['setunitx',['setUnitX',['../classPlottyFile.html#ab8d35a841ca9c325fca671cf34e03527',1,'PlottyFile']]],
-  ['setunity',['setUnitY',['../classPlottyFile.html#abb18c814f435926f741f7ceb310f3059',1,'PlottyFile']]],
-  ['startplotty',['startPlotty',['../classPlottyFile.html#a08a115ef10458cadfe76077d623313df',1,'PlottyFile']]]
-];
diff --git a/docs/html/search/functions_a.html b/docs/html/search/functions_a.html
deleted file mode 100644
index 5a5be63..0000000
--- a/docs/html/search/functions_a.html
+++ /dev/null
@@ -1,30 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<html><head><title></title>
-<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
-<meta name="generator" content="Doxygen 1.8.16"/>
-<link rel="stylesheet" type="text/css" href="search.css"/>
-<script type="text/javascript" src="functions_a.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:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
-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:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
-document.getElementById("Loading").style.display="none";
-document.getElementById("NoMatches").style.display="none";
-var searchResults = new SearchResults("searchResults");
-searchResults.Search();
-/* @license-end */
---></script>
-</div>
-</body>
-</html>
diff --git a/docs/html/search/functions_a.js b/docs/html/search/functions_a.js
deleted file mode 100644
index c417073..0000000
--- a/docs/html/search/functions_a.js
+++ /dev/null
@@ -1,7 +0,0 @@
-var searchData=
-[
-  ['testconnection',['testConnection',['../classB15F.html#af01983594f2af98ab2b1e514aa036a5d',1,'B15F']]],
-  ['testintconv',['testIntConv',['../classB15F.html#a7b8a0e2a9156f7dcb05d097f23666a78',1,'B15F']]],
-  ['timeoutexception',['TimeoutException',['../classTimeoutException.html#aa45912234da11ffc9dd3594a1bbc0218',1,'TimeoutException::TimeoutException(const char *message)'],['../classTimeoutException.html#ad6e5c200fbfd276f48a6c1163e2d2988',1,'TimeoutException::TimeoutException(const std::string &amp;message)']]],
-  ['transmit',['transmit',['../classUSART.html#a41b19dd58f307015b73e154048cd74ca',1,'USART']]]
-];
diff --git a/docs/html/search/functions_b.html b/docs/html/search/functions_b.html
deleted file mode 100644
index fc2d5aa..0000000
--- a/docs/html/search/functions_b.html
+++ /dev/null
@@ -1,30 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<html><head><title></title>
-<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
-<meta name="generator" content="Doxygen 1.8.16"/>
-<link rel="stylesheet" type="text/css" href="search.css"/>
-<script type="text/javascript" src="functions_b.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:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
-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:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
-document.getElementById("Loading").style.display="none";
-document.getElementById("NoMatches").style.display="none";
-var searchResults = new SearchResults("searchResults");
-searchResults.Search();
-/* @license-end */
---></script>
-</div>
-</body>
-</html>
diff --git a/docs/html/search/functions_b.js b/docs/html/search/functions_b.js
deleted file mode 100644
index 7419b81..0000000
--- a/docs/html/search/functions_b.js
+++ /dev/null
@@ -1,5 +0,0 @@
-var searchData=
-[
-  ['usart',['USART',['../classUSART.html#a5daed20dc595c43d87c4c28bb08a7449',1,'USART']]],
-  ['usartexception',['USARTException',['../classUSARTException.html#a3c359db129825703b91392d5128cf93d',1,'USARTException::USARTException(const char *message)'],['../classUSARTException.html#a643c0a8b7f0d81e2f1693a75b378e6c2',1,'USARTException::USARTException(const std::string &amp;message)']]]
-];
diff --git a/docs/html/search/functions_c.html b/docs/html/search/functions_c.html
deleted file mode 100644
index a1a1437..0000000
--- a/docs/html/search/functions_c.html
+++ /dev/null
@@ -1,30 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<html><head><title></title>
-<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
-<meta name="generator" content="Doxygen 1.8.16"/>
-<link rel="stylesheet" type="text/css" href="search.css"/>
-<script type="text/javascript" src="functions_c.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:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
-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:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
-document.getElementById("Loading").style.display="none";
-document.getElementById("NoMatches").style.display="none";
-var searchResults = new SearchResults("searchResults");
-searchResults.Search();
-/* @license-end */
---></script>
-</div>
-</body>
-</html>
diff --git a/docs/html/search/functions_c.js b/docs/html/search/functions_c.js
deleted file mode 100644
index b730bff..0000000
--- a/docs/html/search/functions_c.js
+++ /dev/null
@@ -1,5 +0,0 @@
-var searchData=
-[
-  ['what',['what',['../classTimeoutException.html#a97eaf01fc39ddb94b060020b42fefd6e',1,'TimeoutException::what()'],['../classUSARTException.html#a2af5e3c00cd0585c7427c2e0420a8f15',1,'USARTException::what()']]],
-  ['writetofile',['writeToFile',['../classPlottyFile.html#a82c348e7fade2edcbc907e7c2bc2e305',1,'PlottyFile']]]
-];
diff --git a/docs/html/search/functions_d.html b/docs/html/search/functions_d.html
deleted file mode 100644
index 4375535..0000000
--- a/docs/html/search/functions_d.html
+++ /dev/null
@@ -1,30 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<html><head><title></title>
-<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
-<meta name="generator" content="Doxygen 1.8.16"/>
-<link rel="stylesheet" type="text/css" href="search.css"/>
-<script type="text/javascript" src="functions_d.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:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
-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:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
-document.getElementById("Loading").style.display="none";
-document.getElementById("NoMatches").style.display="none";
-var searchResults = new SearchResults("searchResults");
-searchResults.Search();
-/* @license-end */
---></script>
-</div>
-</body>
-</html>
diff --git a/docs/html/search/functions_d.js b/docs/html/search/functions_d.js
deleted file mode 100644
index f5a3874..0000000
--- a/docs/html/search/functions_d.js
+++ /dev/null
@@ -1,6 +0,0 @@
-var searchData=
-[
-  ['_7etimeoutexception',['~TimeoutException',['../classTimeoutException.html#a2f686b262d2ccffa0090fda9b44ab540',1,'TimeoutException']]],
-  ['_7eusart',['~USART',['../classUSART.html#a0c8eb1a939ca00921e22f6cbcc7bb749',1,'USART']]],
-  ['_7eusartexception',['~USARTException',['../classUSARTException.html#a0e008b3cb4974859e6bc8c8f8eb480be',1,'USARTException']]]
-];
diff --git a/docs/html/search/mag_sel.png b/docs/html/search/mag_sel.png
deleted file mode 100644
index 39c0ed5..0000000
Binary files a/docs/html/search/mag_sel.png and /dev/null differ
diff --git a/docs/html/search/nomatches.html b/docs/html/search/nomatches.html
deleted file mode 100644
index 4377320..0000000
--- a/docs/html/search/nomatches.html
+++ /dev/null
@@ -1,12 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<html><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>
diff --git a/docs/html/search/pages_0.html b/docs/html/search/pages_0.html
deleted file mode 100644
index 32cbf49..0000000
--- a/docs/html/search/pages_0.html
+++ /dev/null
@@ -1,30 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<html><head><title></title>
-<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
-<meta name="generator" content="Doxygen 1.8.16"/>
-<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:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
-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:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
-document.getElementById("Loading").style.display="none";
-document.getElementById("NoMatches").style.display="none";
-var searchResults = new SearchResults("searchResults");
-searchResults.Search();
-/* @license-end */
---></script>
-</div>
-</body>
-</html>
diff --git a/docs/html/search/pages_0.js b/docs/html/search/pages_0.js
deleted file mode 100644
index 31be983..0000000
--- a/docs/html/search/pages_0.js
+++ /dev/null
@@ -1,4 +0,0 @@
-var searchData=
-[
-  ['b15f_20benutzerhandbuch',['B15F Benutzerhandbuch',['../index.html',1,'']]]
-];
diff --git a/docs/html/search/search.css b/docs/html/search/search.css
deleted file mode 100644
index 3cf9df9..0000000
--- a/docs/html/search/search.css
+++ /dev/null
@@ -1,271 +0,0 @@
-/*---------------- Search Box */
-
-#FSearchBox {
-    float: left;
-}
-
-#MSearchBox {
-    white-space : nowrap;
-    float: none;
-    margin-top: 8px;
-    right: 0px;
-    width: 170px;
-    height: 24px;
-    z-index: 102;
-}
-
-#MSearchBox .left
-{
-    display:block;
-    position:absolute;
-    left:10px;
-    width:20px;
-    height:19px;
-    background:url('search_l.png') no-repeat;
-    background-position:right;
-}
-
-#MSearchSelect {
-    display:block;
-    position:absolute;
-    width:20px;
-    height:19px;
-}
-
-.left #MSearchSelect {
-    left:4px;
-}
-
-.right #MSearchSelect {
-    right:5px;
-}
-
-#MSearchField {
-    display:block;
-    position:absolute;
-    height:19px;
-    background:url('search_m.png') repeat-x;
-    border:none;
-    width:115px;
-    margin-left:20px;
-    padding-left:4px;
-    color: #909090;
-    outline: none;
-    font: 9pt Arial, Verdana, sans-serif;
-    -webkit-border-radius: 0px;
-}
-
-#FSearchBox #MSearchField {
-    margin-left:15px;
-}
-
-#MSearchBox .right {
-    display:block;
-    position:absolute;
-    right:10px;
-    top:8px;
-    width:20px;
-    height:19px;
-    background:url('search_r.png') no-repeat;
-    background-position:left;
-}
-
-#MSearchClose {
-    display: none;
-    position: absolute;
-    top: 4px;
-    background : none;
-    border: none;
-    margin: 0px 4px 0px 0px;
-    padding: 0px 0px;
-    outline: none;
-}
-
-.left #MSearchClose {
-    left: 6px;
-}
-
-.right #MSearchClose {
-    right: 2px;
-}
-
-.MSearchBoxActive #MSearchField {
-    color: #000000;
-}
-
-/*---------------- 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;
-}
-
-.SRPage .SRStatus {
-    padding: 2px 5px;
-    font-size: 8pt;
-    font-style: italic;
-}
-
-.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;
-}
-
diff --git a/docs/html/search/search.js b/docs/html/search/search.js
deleted file mode 100644
index a554ab9..0000000
--- a/docs/html/search/search.js
+++ /dev/null
@@ -1,814 +0,0 @@
-/*
- @licstart  The following is the entire license notice for the
- JavaScript code in this file.
-
- Copyright (C) 1997-2017 by Dimitri van Heesch
-
- This program is free software; you can redistribute it and/or modify
- it under the terms of the GNU General Public License as published by
- the Free Software Foundation; either version 2 of the License, or
- (at your option) any later version.
-
- This program is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- GNU General Public License for more details.
-
- You should have received a copy of the GNU General Public License along
- with this program; if not, write to the Free Software Foundation, Inc.,
- 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
-
- @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, inFrame, label)
-{
-  if (!name || !resultsPath) {  alert("Missing parameters to SearchBox."); }
-
-  // ---------- 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.insideFrame           = inFrame;
-  this.searchLabel           = label;
-
-  // ----------- 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();
-
-    if (this.insideFrame)
-    {
-      var left = getXPos(searchField);
-      var top  = getYPos(searchField);
-      left += searchField.offsetWidth + 6;
-      top += searchField.offsetHeight;
-
-      // show search selection popup
-      searchSelectWindow.style.display='block';
-      left -= searchSelectWindow.offsetWidth;
-      searchSelectWindow.style.left =  left + 'px';
-      searchSelectWindow.style.top  =  top  + 'px';
-    }
-    else
-    {
-      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 if (window.frames.MSearchResults.searchResults)
-      {
-        var elem = window.frames.MSearchResults.searchResults.NavNext(0);
-        if (elem) elem.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='&#8226;';
-        }
-        else
-        {
-          node.innerHTML='&#160;';
-        }
-        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 + '.html';
-       resultsPageWithSearch = resultsPage+'?'+escape(searchValue);
-       hasResultsPage = true;
-    }
-    else // nothing available for this search term
-    {
-       resultsPage = this.resultsPath + '/nomatches.html';
-       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';
-       if (this.insideFrame)
-       {
-         var domPopupSearchResults = this.DOMPopupSearchResults();
-         domPopupSearchResultsWindow.style.position = 'relative';
-         domPopupSearchResultsWindow.style.display  = 'block';
-         var width = document.body.clientWidth - 8; // the -8 is for IE :-(
-         domPopupSearchResultsWindow.style.width    = width + 'px';
-         domPopupSearchResults.style.width          = width + 'px';
-       }
-       else
-       {
-         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;
-         domPopupSearchResultsWindow.style.top     = top  + 'px';
-         domPopupSearchResultsWindow.style.left    = left + '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 == 'DIV' && element.className == 'SRChildren')
-        {
-          return element;
-        }
-
-        if (element.nodeName == '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]);
-      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]);
-        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">&#160;</span>'+indexSectionLabels[key];
-    results.appendChild(link);
-  }
-  searchBox.OnSelectItem(0);
-}
-/* @license-end */
diff --git a/docs/html/search/search_l.png b/docs/html/search/search_l.png
deleted file mode 100644
index fd5f7da..0000000
Binary files a/docs/html/search/search_l.png and /dev/null differ
diff --git a/docs/html/search/search_m.png b/docs/html/search/search_m.png
deleted file mode 100644
index b429a16..0000000
Binary files a/docs/html/search/search_m.png and /dev/null differ
diff --git a/docs/html/search/search_r.png b/docs/html/search/search_r.png
deleted file mode 100644
index 1af5d21..0000000
Binary files a/docs/html/search/search_r.png and /dev/null differ
diff --git a/docs/html/search/searchdata.js b/docs/html/search/searchdata.js
deleted file mode 100644
index 9ff7555..0000000
--- a/docs/html/search/searchdata.js
+++ /dev/null
@@ -1,27 +0,0 @@
-var indexSectionsWithContent =
-{
-  0: "abcdefgmoprstuvw~",
-  1: "bdptuv",
-  2: "acdefgoprstuw~",
-  3: "bmprw",
-  4: "b"
-};
-
-var indexSectionNames =
-{
-  0: "all",
-  1: "classes",
-  2: "functions",
-  3: "variables",
-  4: "pages"
-};
-
-var indexSectionLabels =
-{
-  0: "All",
-  1: "Classes",
-  2: "Functions",
-  3: "Variables",
-  4: "Pages"
-};
-
diff --git a/docs/html/search/variables_0.html b/docs/html/search/variables_0.html
deleted file mode 100644
index a2a3ae6..0000000
--- a/docs/html/search/variables_0.html
+++ /dev/null
@@ -1,30 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<html><head><title></title>
-<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
-<meta name="generator" content="Doxygen 1.8.16"/>
-<link rel="stylesheet" type="text/css" href="search.css"/>
-<script type="text/javascript" src="variables_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:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
-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:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
-document.getElementById("Loading").style.display="none";
-document.getElementById("NoMatches").style.display="none";
-var searchResults = new SearchResults("searchResults");
-searchResults.Search();
-/* @license-end */
---></script>
-</div>
-</body>
-</html>
diff --git a/docs/html/search/variables_0.js b/docs/html/search/variables_0.js
deleted file mode 100644
index d1fd2cf..0000000
--- a/docs/html/search/variables_0.js
+++ /dev/null
@@ -1,4 +0,0 @@
-var searchData=
-[
-  ['baudrate',['BAUDRATE',['../classB15F.html#a7d548d6861cfc69753161bf9cda14f87',1,'B15F']]]
-];
diff --git a/docs/html/search/variables_1.html b/docs/html/search/variables_1.html
deleted file mode 100644
index b243c42..0000000
--- a/docs/html/search/variables_1.html
+++ /dev/null
@@ -1,30 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<html><head><title></title>
-<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
-<meta name="generator" content="Doxygen 1.8.16"/>
-<link rel="stylesheet" type="text/css" href="search.css"/>
-<script type="text/javascript" src="variables_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:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
-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:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
-document.getElementById("Loading").style.display="none";
-document.getElementById("NoMatches").style.display="none";
-var searchResults = new SearchResults("searchResults");
-searchResults.Search();
-/* @license-end */
---></script>
-</div>
-</body>
-</html>
diff --git a/docs/html/search/variables_1.js b/docs/html/search/variables_1.js
deleted file mode 100644
index 66df4a3..0000000
--- a/docs/html/search/variables_1.js
+++ /dev/null
@@ -1,6 +0,0 @@
-var searchData=
-[
-  ['msg',['msg',['../classTimeoutException.html#aa625fc0fae48a67737a98eafb91c9624',1,'TimeoutException::msg()'],['../classUSARTException.html#a14c80df95f216d221aa97cffbcd8dd79',1,'USARTException::msg()']]],
-  ['msg_5ffail',['MSG_FAIL',['../classB15F.html#a77d1ecf24b406c9204665d3b09c36f1e',1,'B15F']]],
-  ['msg_5fok',['MSG_OK',['../classB15F.html#ab01299858f74a6cec598688562e0ad02',1,'B15F']]]
-];
diff --git a/docs/html/search/variables_2.html b/docs/html/search/variables_2.html
deleted file mode 100644
index 647df20..0000000
--- a/docs/html/search/variables_2.html
+++ /dev/null
@@ -1,30 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<html><head><title></title>
-<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
-<meta name="generator" content="Doxygen 1.8.16"/>
-<link rel="stylesheet" type="text/css" href="search.css"/>
-<script type="text/javascript" src="variables_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:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
-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:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
-document.getElementById("Loading").style.display="none";
-document.getElementById("NoMatches").style.display="none";
-var searchResults = new SearchResults("searchResults");
-searchResults.Search();
-/* @license-end */
---></script>
-</div>
-</body>
-</html>
diff --git a/docs/html/search/variables_2.js b/docs/html/search/variables_2.js
deleted file mode 100644
index 570beea..0000000
--- a/docs/html/search/variables_2.js
+++ /dev/null
@@ -1,4 +0,0 @@
-var searchData=
-[
-  ['pre',['PRE',['../classB15F.html#a3b0fc1f85954b2d9c145af4a3af5b1ec',1,'B15F']]]
-];
diff --git a/docs/html/search/variables_3.html b/docs/html/search/variables_3.html
deleted file mode 100644
index 9dc9b89..0000000
--- a/docs/html/search/variables_3.html
+++ /dev/null
@@ -1,30 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<html><head><title></title>
-<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
-<meta name="generator" content="Doxygen 1.8.16"/>
-<link rel="stylesheet" type="text/css" href="search.css"/>
-<script type="text/javascript" src="variables_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:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
-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:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
-document.getElementById("Loading").style.display="none";
-document.getElementById("NoMatches").style.display="none";
-var searchResults = new SearchResults("searchResults");
-searchResults.Search();
-/* @license-end */
---></script>
-</div>
-</body>
-</html>
diff --git a/docs/html/search/variables_3.js b/docs/html/search/variables_3.js
deleted file mode 100644
index fbf0a47..0000000
--- a/docs/html/search/variables_3.js
+++ /dev/null
@@ -1,5 +0,0 @@
-var searchData=
-[
-  ['reconnect_5ftimeout',['RECONNECT_TIMEOUT',['../classB15F.html#a040951746fbfd632e12bd1ad14578816',1,'B15F']]],
-  ['reconnect_5ftries',['RECONNECT_TRIES',['../classB15F.html#a6c4895bdbcd71ff6743becf97985c2dc',1,'B15F']]]
-];
diff --git a/docs/html/search/variables_4.html b/docs/html/search/variables_4.html
deleted file mode 100644
index 78cc2c7..0000000
--- a/docs/html/search/variables_4.html
+++ /dev/null
@@ -1,30 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<html><head><title></title>
-<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
-<meta name="generator" content="Doxygen 1.8.16"/>
-<link rel="stylesheet" type="text/css" href="search.css"/>
-<script type="text/javascript" src="variables_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:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
-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:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
-document.getElementById("Loading").style.display="none";
-document.getElementById("NoMatches").style.display="none";
-var searchResults = new SearchResults("searchResults");
-searchResults.Search();
-/* @license-end */
---></script>
-</div>
-</body>
-</html>
diff --git a/docs/html/search/variables_4.js b/docs/html/search/variables_4.js
deleted file mode 100644
index 9a9c561..0000000
--- a/docs/html/search/variables_4.js
+++ /dev/null
@@ -1,4 +0,0 @@
-var searchData=
-[
-  ['wdt_5ftimeout',['WDT_TIMEOUT',['../classB15F.html#a158d13bc84aed6430cdede1396384e06',1,'B15F']]]
-];
diff --git a/docs/html/splitbar.png b/docs/html/splitbar.png
deleted file mode 100644
index fe895f2..0000000
Binary files a/docs/html/splitbar.png and /dev/null differ
diff --git a/docs/html/sync_off.png b/docs/html/sync_off.png
deleted file mode 100644
index 3b443fc..0000000
Binary files a/docs/html/sync_off.png and /dev/null differ
diff --git a/docs/html/sync_on.png b/docs/html/sync_on.png
deleted file mode 100644
index e08320f..0000000
Binary files a/docs/html/sync_on.png and /dev/null differ
diff --git a/docs/html/tab_a.png b/docs/html/tab_a.png
deleted file mode 100644
index 3b725c4..0000000
Binary files a/docs/html/tab_a.png and /dev/null differ
diff --git a/docs/html/tab_b.png b/docs/html/tab_b.png
deleted file mode 100644
index e2b4a86..0000000
Binary files a/docs/html/tab_b.png and /dev/null differ
diff --git a/docs/html/tab_h.png b/docs/html/tab_h.png
deleted file mode 100644
index fd5cb70..0000000
Binary files a/docs/html/tab_h.png and /dev/null differ
diff --git a/docs/html/tab_s.png b/docs/html/tab_s.png
deleted file mode 100644
index ab478c9..0000000
Binary files a/docs/html/tab_s.png and /dev/null differ
diff --git a/docs/html/tabs.css b/docs/html/tabs.css
deleted file mode 100644
index 85a0cd5..0000000
--- a/docs/html/tabs.css
+++ /dev/null
@@ -1 +0,0 @@
-.sm{position:relative;z-index:9999}.sm,.sm ul,.sm li{display:block;list-style:none;margin:0;padding:0;line-height:normal;direction:ltr;text-align:left;-webkit-tap-highlight-color:rgba(0,0,0,0)}.sm-rtl,.sm-rtl ul,.sm-rtl li{direction:rtl;text-align:right}.sm>li>h1,.sm>li>h2,.sm>li>h3,.sm>li>h4,.sm>li>h5,.sm>li>h6{margin:0;padding:0}.sm ul{display:none}.sm li,.sm a{position:relative}.sm a{display:block}.sm a.disabled{cursor:not-allowed}.sm:after{content:"\00a0";display:block;height:0;font:0/0 serif;clear:both;visibility:hidden;overflow:hidden}.sm,.sm *,.sm *:before,.sm *:after{-moz-box-sizing:border-box;-webkit-box-sizing:border-box;box-sizing:border-box}.sm-dox{background-image:url("tab_b.png")}.sm-dox a,.sm-dox a:focus,.sm-dox a:hover,.sm-dox a:active{padding:0 12px;padding-right:43px;font-family:"Lucida Grande","Geneva","Helvetica",Arial,sans-serif;font-size:13px;font-weight:bold;line-height:36px;text-decoration:none;text-shadow:0 1px 1px rgba(255,255,255,0.9);color:#283a5d;outline:0}.sm-dox a:hover{background-image:url("tab_a.png");background-repeat:repeat-x;color:white;text-shadow:0 1px 1px black}.sm-dox a.current{color:#d23600}.sm-dox a.disabled{color:#bbb}.sm-dox a span.sub-arrow{position:absolute;top:50%;margin-top:-14px;left:auto;right:3px;width:28px;height:28px;overflow:hidden;font:bold 12px/28px monospace!important;text-align:center;text-shadow:none;background:rgba(255,255,255,0.5);-moz-border-radius:5px;-webkit-border-radius:5px;border-radius:5px}.sm-dox a.highlighted span.sub-arrow:before{display:block;content:'-'}.sm-dox>li:first-child>a,.sm-dox>li:first-child>:not(ul) a{-moz-border-radius:5px 5px 0 0;-webkit-border-radius:5px;border-radius:5px 5px 0 0}.sm-dox>li:last-child>a,.sm-dox>li:last-child>*:not(ul) a,.sm-dox>li:last-child>ul,.sm-dox>li:last-child>ul>li:last-child>a,.sm-dox>li:last-child>ul>li:last-child>*:not(ul) a,.sm-dox>li:last-child>ul>li:last-child>ul,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>a,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>*:not(ul) a,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>a,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>*:not(ul) a,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>ul,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>a,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>*:not(ul) a,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>ul{-moz-border-radius:0 0 5px 5px;-webkit-border-radius:0;border-radius:0 0 5px 5px}.sm-dox>li:last-child>a.highlighted,.sm-dox>li:last-child>*:not(ul) a.highlighted,.sm-dox>li:last-child>ul>li:last-child>a.highlighted,.sm-dox>li:last-child>ul>li:last-child>*:not(ul) a.highlighted,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>a.highlighted,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>*:not(ul) a.highlighted,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>a.highlighted,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>*:not(ul) a.highlighted,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>a.highlighted,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>*:not(ul) a.highlighted{-moz-border-radius:0;-webkit-border-radius:0;border-radius:0}.sm-dox ul{background:rgba(162,162,162,0.1)}.sm-dox ul a,.sm-dox ul a:focus,.sm-dox ul a:hover,.sm-dox ul a:active{font-size:12px;border-left:8px solid transparent;line-height:36px;text-shadow:none;background-color:white;background-image:none}.sm-dox ul a:hover{background-image:url("tab_a.png");background-repeat:repeat-x;color:white;text-shadow:0 1px 1px black}.sm-dox ul ul a,.sm-dox ul ul a:hover,.sm-dox ul ul a:focus,.sm-dox ul ul a:active{border-left:16px solid transparent}.sm-dox ul ul ul a,.sm-dox ul ul ul a:hover,.sm-dox ul ul ul a:focus,.sm-dox ul ul ul a:active{border-left:24px solid transparent}.sm-dox ul ul ul ul a,.sm-dox ul ul ul ul a:hover,.sm-dox ul ul ul ul a:focus,.sm-dox ul ul ul ul a:active{border-left:32px solid transparent}.sm-dox ul ul ul ul ul a,.sm-dox ul ul ul ul ul a:hover,.sm-dox ul ul ul ul ul a:focus,.sm-dox ul ul ul ul ul a:active{border-left:40px solid transparent}@media(min-width:768px){.sm-dox ul{position:absolute;width:12em}.sm-dox li{float:left}.sm-dox.sm-rtl li{float:right}.sm-dox ul li,.sm-dox.sm-rtl ul li,.sm-dox.sm-vertical li{float:none}.sm-dox a{white-space:nowrap}.sm-dox ul a,.sm-dox.sm-vertical a{white-space:normal}.sm-dox .sm-nowrap>li>a,.sm-dox .sm-nowrap>li>:not(ul) a{white-space:nowrap}.sm-dox{padding:0 10px;background-image:url("tab_b.png");line-height:36px}.sm-dox a span.sub-arrow{top:50%;margin-top:-2px;right:12px;width:0;height:0;border-width:4px;border-style:solid dashed dashed dashed;border-color:#283a5d transparent transparent transparent;background:transparent;-moz-border-radius:0;-webkit-border-radius:0;border-radius:0}.sm-dox a,.sm-dox a:focus,.sm-dox a:active,.sm-dox a:hover,.sm-dox a.highlighted{padding:0 12px;background-image:url("tab_s.png");background-repeat:no-repeat;background-position:right;-moz-border-radius:0!important;-webkit-border-radius:0;border-radius:0!important}.sm-dox a:hover{background-image:url("tab_a.png");background-repeat:repeat-x;color:white;text-shadow:0 1px 1px black}.sm-dox a:hover span.sub-arrow{border-color:white transparent transparent transparent}.sm-dox a.has-submenu{padding-right:24px}.sm-dox li{border-top:0}.sm-dox>li>ul:before,.sm-dox>li>ul:after{content:'';position:absolute;top:-18px;left:30px;width:0;height:0;overflow:hidden;border-width:9px;border-style:dashed dashed solid dashed;border-color:transparent transparent #bbb transparent}.sm-dox>li>ul:after{top:-16px;left:31px;border-width:8px;border-color:transparent transparent #fff transparent}.sm-dox ul{border:1px solid #bbb;padding:5px 0;background:#fff;-moz-border-radius:5px!important;-webkit-border-radius:5px;border-radius:5px!important;-moz-box-shadow:0 5px 9px rgba(0,0,0,0.2);-webkit-box-shadow:0 5px 9px rgba(0,0,0,0.2);box-shadow:0 5px 9px rgba(0,0,0,0.2)}.sm-dox ul a span.sub-arrow{right:8px;top:50%;margin-top:-5px;border-width:5px;border-color:transparent transparent transparent #555;border-style:dashed dashed dashed solid}.sm-dox ul a,.sm-dox ul a:hover,.sm-dox ul a:focus,.sm-dox ul a:active,.sm-dox ul a.highlighted{color:#555;background-image:none;border:0!important;color:#555;background-image:none}.sm-dox ul a:hover{background-image:url("tab_a.png");background-repeat:repeat-x;color:white;text-shadow:0 1px 1px black}.sm-dox ul a:hover span.sub-arrow{border-color:transparent transparent transparent white}.sm-dox span.scroll-up,.sm-dox span.scroll-down{position:absolute;display:none;visibility:hidden;overflow:hidden;background:#fff;height:36px}.sm-dox span.scroll-up:hover,.sm-dox span.scroll-down:hover{background:#eee}.sm-dox span.scroll-up:hover span.scroll-up-arrow,.sm-dox span.scroll-up:hover span.scroll-down-arrow{border-color:transparent transparent #d23600 transparent}.sm-dox span.scroll-down:hover span.scroll-down-arrow{border-color:#d23600 transparent transparent transparent}.sm-dox span.scroll-up-arrow,.sm-dox span.scroll-down-arrow{position:absolute;top:0;left:50%;margin-left:-6px;width:0;height:0;overflow:hidden;border-width:6px;border-style:dashed dashed solid dashed;border-color:transparent transparent #555 transparent}.sm-dox span.scroll-down-arrow{top:8px;border-style:solid dashed dashed dashed;border-color:#555 transparent transparent transparent}.sm-dox.sm-rtl a.has-submenu{padding-right:12px;padding-left:24px}.sm-dox.sm-rtl a span.sub-arrow{right:auto;left:12px}.sm-dox.sm-rtl.sm-vertical a.has-submenu{padding:10px 20px}.sm-dox.sm-rtl.sm-vertical a span.sub-arrow{right:auto;left:8px;border-style:dashed solid dashed dashed;border-color:transparent #555 transparent transparent}.sm-dox.sm-rtl>li>ul:before{left:auto;right:30px}.sm-dox.sm-rtl>li>ul:after{left:auto;right:31px}.sm-dox.sm-rtl ul a.has-submenu{padding:10px 20px!important}.sm-dox.sm-rtl ul a span.sub-arrow{right:auto;left:8px;border-style:dashed solid dashed dashed;border-color:transparent #555 transparent transparent}.sm-dox.sm-vertical{padding:10px 0;-moz-border-radius:5px;-webkit-border-radius:5px;border-radius:5px}.sm-dox.sm-vertical a{padding:10px 20px}.sm-dox.sm-vertical a:hover,.sm-dox.sm-vertical a:focus,.sm-dox.sm-vertical a:active,.sm-dox.sm-vertical a.highlighted{background:#fff}.sm-dox.sm-vertical a.disabled{background-image:url("tab_b.png")}.sm-dox.sm-vertical a span.sub-arrow{right:8px;top:50%;margin-top:-5px;border-width:5px;border-style:dashed dashed dashed solid;border-color:transparent transparent transparent #555}.sm-dox.sm-vertical>li>ul:before,.sm-dox.sm-vertical>li>ul:after{display:none}.sm-dox.sm-vertical ul a{padding:10px 20px}.sm-dox.sm-vertical ul a:hover,.sm-dox.sm-vertical ul a:focus,.sm-dox.sm-vertical ul a:active,.sm-dox.sm-vertical ul a.highlighted{background:#eee}.sm-dox.sm-vertical ul a.disabled{background:#fff}}
\ No newline at end of file
diff --git a/docs/html/timeoutexception_8h_source.html b/docs/html/timeoutexception_8h_source.html
deleted file mode 100644
index 1b5e3b4..0000000
--- a/docs/html/timeoutexception_8h_source.html
+++ /dev/null
@@ -1,87 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml">
-<head>
-<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
-<meta http-equiv="X-UA-Compatible" content="IE=9"/>
-<meta name="generator" content="Doxygen 1.8.16"/>
-<meta name="viewport" content="width=device-width, initial-scale=1"/>
-<title>B15F: drv/timeoutexception.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">B15F
-   </div>
-   <div id="projectbrief">Board 15 Famulus Edition</div>
-  </td>
- </tr>
- </tbody>
-</table>
-</div>
-<!-- end header part -->
-<!-- Generated by Doxygen 1.8.16 -->
-<script type="text/javascript">
-/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
-var searchBox = new SearchBox("searchBox", "search",false,'Search');
-/* @license-end */
-</script>
-<script type="text/javascript" src="menudata.js"></script>
-<script type="text/javascript" src="menu.js"></script>
-<script type="text/javascript">
-/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
-$(function() {
-  initMenu('',true,false,'search.php','Search');
-  $(document).ready(function() { init_search(); });
-});
-/* @license-end */</script>
-<div id="main-nav"></div>
-<!-- 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 id="nav-path" class="navpath">
-  <ul>
-<li class="navelem"><a class="el" href="dir_587c94d866dbb2f408f78cf41f9b2f8d.html">drv</a></li>  </ul>
-</div>
-</div><!-- top -->
-<div class="header">
-  <div class="headertitle">
-<div class="title">timeoutexception.h</div>  </div>
-</div><!--header-->
-<div class="contents">
-<div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno">    1</span>&#160;<span class="preprocessor">#ifndef TIMEOUTEXCEPTION_H</span></div><div class="line"><a name="l00002"></a><span class="lineno">    2</span>&#160;<span class="preprocessor">#define TIMEOUTEXCEPTION_H</span></div><div class="line"><a name="l00003"></a><span class="lineno">    3</span>&#160; </div><div class="line"><a name="l00004"></a><span class="lineno">    4</span>&#160;<span class="preprocessor">#include &lt;exception&gt;</span></div><div class="line"><a name="l00005"></a><span class="lineno">    5</span>&#160;<span class="preprocessor">#include &lt;string&gt;</span></div><div class="line"><a name="l00006"></a><span class="lineno">    6</span>&#160; </div><div class="line"><a name="l00009"></a><span class="lineno"><a class="line" href="classTimeoutException.html">    9</a></span>&#160;<span class="keyword">class </span><a class="code" href="classTimeoutException.html">TimeoutException</a>: <span class="keyword">public</span> std::exception</div><div class="line"><a name="l00010"></a><span class="lineno">   10</span>&#160;{</div><div class="line"><a name="l00011"></a><span class="lineno">   11</span>&#160;<span class="keyword">public</span>:</div><div class="line"><a name="l00016"></a><span class="lineno"><a class="line" href="classTimeoutException.html#aa45912234da11ffc9dd3594a1bbc0218">   16</a></span>&#160;    <span class="keyword">explicit</span> <a class="code" href="classTimeoutException.html#aa45912234da11ffc9dd3594a1bbc0218">TimeoutException</a>(<span class="keyword">const</span> <span class="keywordtype">char</span>* message) : <a class="code" href="classTimeoutException.html#aa625fc0fae48a67737a98eafb91c9624">msg</a>(message)</div><div class="line"><a name="l00017"></a><span class="lineno">   17</span>&#160;    {</div><div class="line"><a name="l00018"></a><span class="lineno">   18</span>&#160;    }</div><div class="line"><a name="l00019"></a><span class="lineno">   19</span>&#160; </div><div class="line"><a name="l00024"></a><span class="lineno"><a class="line" href="classTimeoutException.html#ad6e5c200fbfd276f48a6c1163e2d2988">   24</a></span>&#160;    <span class="keyword">explicit</span> <a class="code" href="classTimeoutException.html#ad6e5c200fbfd276f48a6c1163e2d2988">TimeoutException</a>(<span class="keyword">const</span> std::string&amp; message) : <a class="code" href="classTimeoutException.html#aa625fc0fae48a67737a98eafb91c9624">msg</a>(message)</div><div class="line"><a name="l00025"></a><span class="lineno">   25</span>&#160;    {</div><div class="line"><a name="l00026"></a><span class="lineno">   26</span>&#160;    }</div><div class="line"><a name="l00027"></a><span class="lineno">   27</span>&#160; </div><div class="line"><a name="l00031"></a><span class="lineno">   31</span>&#160;    <span class="keyword">virtual</span> <a class="code" href="classTimeoutException.html#a2f686b262d2ccffa0090fda9b44ab540">~TimeoutException</a>() = <span class="keywordflow">default</span>;</div><div class="line"><a name="l00032"></a><span class="lineno">   32</span>&#160; </div><div class="line"><a name="l00037"></a><span class="lineno"><a class="line" href="classTimeoutException.html#a97eaf01fc39ddb94b060020b42fefd6e">   37</a></span>&#160;    <span class="keyword">virtual</span> <span class="keyword">const</span> <span class="keywordtype">char</span>* <a class="code" href="classTimeoutException.html#a97eaf01fc39ddb94b060020b42fefd6e">what</a>() <span class="keyword">const</span> throw ()</div><div class="line"><a name="l00038"></a><span class="lineno">   38</span>&#160;    {</div><div class="line"><a name="l00039"></a><span class="lineno">   39</span>&#160;        <span class="keywordflow">return</span> <a class="code" href="classTimeoutException.html#aa625fc0fae48a67737a98eafb91c9624">msg</a>.c_str();</div><div class="line"><a name="l00040"></a><span class="lineno">   40</span>&#160;    }</div><div class="line"><a name="l00041"></a><span class="lineno">   41</span>&#160; </div><div class="line"><a name="l00042"></a><span class="lineno">   42</span>&#160;<span class="keyword">protected</span>:</div><div class="line"><a name="l00043"></a><span class="lineno"><a class="line" href="classTimeoutException.html#aa625fc0fae48a67737a98eafb91c9624">   43</a></span>&#160;    std::string <a class="code" href="classTimeoutException.html#aa625fc0fae48a67737a98eafb91c9624">msg</a>; </div><div class="line"><a name="l00044"></a><span class="lineno">   44</span>&#160;};</div><div class="line"><a name="l00045"></a><span class="lineno">   45</span>&#160; </div><div class="line"><a name="l00046"></a><span class="lineno">   46</span>&#160;<span class="preprocessor">#endif // TIMEOUTEXCEPTION_H</span></div></div><!-- fragment --></div><!-- contents -->
-<div class="ttc" id="aclassTimeoutException_html_a2f686b262d2ccffa0090fda9b44ab540"><div class="ttname"><a href="classTimeoutException.html#a2f686b262d2ccffa0090fda9b44ab540">TimeoutException::~TimeoutException</a></div><div class="ttdeci">virtual ~TimeoutException()=default</div></div>
-<div class="ttc" id="aclassTimeoutException_html_aa625fc0fae48a67737a98eafb91c9624"><div class="ttname"><a href="classTimeoutException.html#aa625fc0fae48a67737a98eafb91c9624">TimeoutException::msg</a></div><div class="ttdeci">std::string msg</div><div class="ttdoc">failure description</div><div class="ttdef"><b>Definition:</b> <a href="timeoutexception_8h_source.html#l00043">timeoutexception.h:43</a></div></div>
-<div class="ttc" id="aclassTimeoutException_html_a97eaf01fc39ddb94b060020b42fefd6e"><div class="ttname"><a href="classTimeoutException.html#a97eaf01fc39ddb94b060020b42fefd6e">TimeoutException::what</a></div><div class="ttdeci">virtual const char * what() const</div><div class="ttdef"><b>Definition:</b> <a href="timeoutexception_8h_source.html#l00037">timeoutexception.h:37</a></div></div>
-<div class="ttc" id="aclassTimeoutException_html_aa45912234da11ffc9dd3594a1bbc0218"><div class="ttname"><a href="classTimeoutException.html#aa45912234da11ffc9dd3594a1bbc0218">TimeoutException::TimeoutException</a></div><div class="ttdeci">TimeoutException(const char *message)</div><div class="ttdef"><b>Definition:</b> <a href="timeoutexception_8h_source.html#l00016">timeoutexception.h:16</a></div></div>
-<div class="ttc" id="aclassTimeoutException_html"><div class="ttname"><a href="classTimeoutException.html">TimeoutException</a></div><div class="ttdef"><b>Definition:</b> <a href="timeoutexception_8h_source.html#l00009">timeoutexception.h:9</a></div></div>
-<div class="ttc" id="aclassTimeoutException_html_ad6e5c200fbfd276f48a6c1163e2d2988"><div class="ttname"><a href="classTimeoutException.html#ad6e5c200fbfd276f48a6c1163e2d2988">TimeoutException::TimeoutException</a></div><div class="ttdeci">TimeoutException(const std::string &amp;message)</div><div class="ttdef"><b>Definition:</b> <a href="timeoutexception_8h_source.html#l00024">timeoutexception.h:24</a></div></div>
-<!-- start footer part -->
-<hr class="footer"/><address class="footer"><small>
-Generated on Fri Jun 7 2019 14:50:45 for B15F by &#160;<a href="http://www.doxygen.org/index.html">
-<img class="footer" src="doxygen.png" alt="doxygen"/>
-</a> 1.8.16
-</small></address>
-</body>
-</html>
diff --git a/docs/html/ui_8cpp_source.html b/docs/html/ui_8cpp_source.html
deleted file mode 100644
index 05cf05b..0000000
--- a/docs/html/ui_8cpp_source.html
+++ /dev/null
@@ -1,96 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml">
-<head>
-<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
-<meta http-equiv="X-UA-Compatible" content="IE=9"/>
-<meta name="generator" content="Doxygen 1.8.16"/>
-<meta name="viewport" content="width=device-width, initial-scale=1"/>
-<title>B15F: ui/ui.cpp 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">B15F
-   </div>
-   <div id="projectbrief">Board 15 Famulus Edition</div>
-  </td>
- </tr>
- </tbody>
-</table>
-</div>
-<!-- end header part -->
-<!-- Generated by Doxygen 1.8.16 -->
-<script type="text/javascript">
-/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
-var searchBox = new SearchBox("searchBox", "search",false,'Search');
-/* @license-end */
-</script>
-<script type="text/javascript" src="menudata.js"></script>
-<script type="text/javascript" src="menu.js"></script>
-<script type="text/javascript">
-/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
-$(function() {
-  initMenu('',true,false,'search.php','Search');
-  $(document).ready(function() { init_search(); });
-});
-/* @license-end */</script>
-<div id="main-nav"></div>
-<!-- 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 id="nav-path" class="navpath">
-  <ul>
-<li class="navelem"><a class="el" href="dir_1788f8309b1a812dcb800a185471cf6c.html">ui</a></li>  </ul>
-</div>
-</div><!-- top -->
-<div class="header">
-  <div class="headertitle">
-<div class="title">ui.cpp</div>  </div>
-</div><!--header-->
-<div class="contents">
-<div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno">    1</span>&#160;<span class="preprocessor">#include &quot;ui.h&quot;</span></div><div class="line"><a name="l00002"></a><span class="lineno">    2</span>&#160;<span class="preprocessor">#include &quot;../drv/b15f.h&quot;</span></div><div class="line"><a name="l00003"></a><span class="lineno">    3</span>&#160; </div><div class="line"><a name="l00004"></a><span class="lineno">    4</span>&#160;std::vector&lt;View*&gt; win_stack;</div><div class="line"><a name="l00005"></a><span class="lineno">    5</span>&#160;std::thread t_refresh;</div><div class="line"><a name="l00006"></a><span class="lineno">    6</span>&#160; </div><div class="line"><a name="l00007"></a><span class="lineno">    7</span>&#160;<span class="keywordtype">void</span> show_main(<span class="keywordtype">int</span>)</div><div class="line"><a name="l00008"></a><span class="lineno">    8</span>&#160;{</div><div class="line"><a name="l00009"></a><span class="lineno">    9</span>&#160;    <a class="code" href="classViewSelection.html">ViewSelection</a>* view = <span class="keyword">new</span> <a class="code" href="classViewSelection.html">ViewSelection</a>();</div><div class="line"><a name="l00010"></a><span class="lineno">   10</span>&#160;    view-&gt;setTitle(<span class="stringliteral">&quot;B15F - Command Line Interface&quot;</span>);</div><div class="line"><a name="l00011"></a><span class="lineno">   11</span>&#160;    view-&gt;addChoice(<span class="stringliteral">&quot;[ Monitor - Eingaben beobachten ]&quot;</span>, &amp;show_monitor);</div><div class="line"><a name="l00012"></a><span class="lineno">   12</span>&#160;    view-&gt;addChoice(<span class="stringliteral">&quot;[ Digitale Ausgabe BE0 ]&quot;</span>, &amp;show_digital_output0);</div><div class="line"><a name="l00013"></a><span class="lineno">   13</span>&#160;    view-&gt;addChoice(<span class="stringliteral">&quot;[ Digitale Ausgabe BE1 ]&quot;</span>, &amp;show_digital_output1);</div><div class="line"><a name="l00014"></a><span class="lineno">   14</span>&#160;    view-&gt;addChoice(<span class="stringliteral">&quot;[ Analoge  Ausgabe AA0 ]&quot;</span>, &amp;show_analog_output0);</div><div class="line"><a name="l00015"></a><span class="lineno">   15</span>&#160;    view-&gt;addChoice(<span class="stringliteral">&quot;[ Analoge  Ausgabe AA1 ]&quot;</span>, &amp;show_analog_output1);</div><div class="line"><a name="l00016"></a><span class="lineno">   16</span>&#160;    view-&gt;addChoice(<span class="stringliteral">&quot;[ Selbsttest des B15 ]&quot;</span>, &amp;show_selftest_info);</div><div class="line"><a name="l00017"></a><span class="lineno">   17</span>&#160;    view-&gt;addChoice(<span class="stringliteral">&quot;[ Informationen ]&quot;</span>, &amp;show_info);</div><div class="line"><a name="l00018"></a><span class="lineno">   18</span>&#160;    view-&gt;addChoice(<span class="stringliteral">&quot;&quot;</span>, <span class="keyword">nullptr</span>);</div><div class="line"><a name="l00019"></a><span class="lineno">   19</span>&#160;    view-&gt;addChoice(<span class="stringliteral">&quot;[ Beenden ]&quot;</span>, &amp;finish);</div><div class="line"><a name="l00020"></a><span class="lineno">   20</span>&#160;    view-&gt;repaint();</div><div class="line"><a name="l00021"></a><span class="lineno">   21</span>&#160; </div><div class="line"><a name="l00022"></a><span class="lineno">   22</span>&#160;    win_stack.push_back(view);</div><div class="line"><a name="l00023"></a><span class="lineno">   23</span>&#160;    input(0);</div><div class="line"><a name="l00024"></a><span class="lineno">   24</span>&#160;}</div><div class="line"><a name="l00025"></a><span class="lineno">   25</span>&#160; </div><div class="line"><a name="l00026"></a><span class="lineno">   26</span>&#160;<span class="keywordtype">void</span> input(<span class="keywordtype">int</span>)</div><div class="line"><a name="l00027"></a><span class="lineno">   27</span>&#160;{</div><div class="line"><a name="l00028"></a><span class="lineno">   28</span>&#160;    call_t nextCall;</div><div class="line"><a name="l00029"></a><span class="lineno">   29</span>&#160;    <span class="keywordtype">int</span> key;</div><div class="line"><a name="l00030"></a><span class="lineno">   30</span>&#160;    <span class="keywordflow">do</span></div><div class="line"><a name="l00031"></a><span class="lineno">   31</span>&#160;    {</div><div class="line"><a name="l00032"></a><span class="lineno">   32</span>&#160;        key = wgetch(View::getWinContext());</div><div class="line"><a name="l00033"></a><span class="lineno">   33</span>&#160;        win_stack.back()-&gt;repaint();</div><div class="line"><a name="l00034"></a><span class="lineno">   34</span>&#160;        nextCall = win_stack.back()-&gt;keypress(key);</div><div class="line"><a name="l00035"></a><span class="lineno">   35</span>&#160; </div><div class="line"><a name="l00036"></a><span class="lineno">   36</span>&#160;        <span class="keywordflow">if</span>(key == -1)</div><div class="line"><a name="l00037"></a><span class="lineno">   37</span>&#160;            view_back(key);</div><div class="line"><a name="l00038"></a><span class="lineno">   38</span>&#160; </div><div class="line"><a name="l00039"></a><span class="lineno">   39</span>&#160;        <span class="keywordflow">if</span>(nextCall)</div><div class="line"><a name="l00040"></a><span class="lineno">   40</span>&#160;            nextCall(key);</div><div class="line"><a name="l00041"></a><span class="lineno">   41</span>&#160;    }</div><div class="line"><a name="l00042"></a><span class="lineno">   42</span>&#160;    <span class="keywordflow">while</span>(win_stack.size());</div><div class="line"><a name="l00043"></a><span class="lineno">   43</span>&#160;}</div><div class="line"><a name="l00044"></a><span class="lineno">   44</span>&#160; </div><div class="line"><a name="l00045"></a><span class="lineno">   45</span>&#160;<span class="keywordtype">void</span> view_back(<span class="keywordtype">int</span>)</div><div class="line"><a name="l00046"></a><span class="lineno">   46</span>&#160;{</div><div class="line"><a name="l00047"></a><span class="lineno">   47</span>&#160;    <span class="keywordflow">if</span>(win_stack.size())</div><div class="line"><a name="l00048"></a><span class="lineno">   48</span>&#160;    {</div><div class="line"><a name="l00049"></a><span class="lineno">   49</span>&#160;        <span class="keyword">delete</span> win_stack.back();</div><div class="line"><a name="l00050"></a><span class="lineno">   50</span>&#160;        win_stack.pop_back();</div><div class="line"><a name="l00051"></a><span class="lineno">   51</span>&#160;    }</div><div class="line"><a name="l00052"></a><span class="lineno">   52</span>&#160;    <span class="keywordflow">if</span>(win_stack.size())</div><div class="line"><a name="l00053"></a><span class="lineno">   53</span>&#160;        win_stack.back()-&gt;repaint();</div><div class="line"><a name="l00054"></a><span class="lineno">   54</span>&#160;}</div><div class="line"><a name="l00055"></a><span class="lineno">   55</span>&#160; </div><div class="line"><a name="l00056"></a><span class="lineno">   56</span>&#160;<span class="keywordtype">void</span> finish(<span class="keywordtype">int</span>)</div><div class="line"><a name="l00057"></a><span class="lineno">   57</span>&#160;{</div><div class="line"><a name="l00058"></a><span class="lineno">   58</span>&#160;    cleanup();</div><div class="line"><a name="l00059"></a><span class="lineno">   59</span>&#160;    exit(EXIT_SUCCESS);</div><div class="line"><a name="l00060"></a><span class="lineno">   60</span>&#160;}</div><div class="line"><a name="l00061"></a><span class="lineno">   61</span>&#160; </div><div class="line"><a name="l00062"></a><span class="lineno">   62</span>&#160;<span class="keywordtype">void</span> cleanup()</div><div class="line"><a name="l00063"></a><span class="lineno">   63</span>&#160;{</div><div class="line"><a name="l00064"></a><span class="lineno">   64</span>&#160;    <span class="keywordflow">if</span>(t_refresh.joinable())</div><div class="line"><a name="l00065"></a><span class="lineno">   65</span>&#160;        t_refresh.join();</div><div class="line"><a name="l00066"></a><span class="lineno">   66</span>&#160;    clrtoeol();</div><div class="line"><a name="l00067"></a><span class="lineno">   67</span>&#160;    refresh();</div><div class="line"><a name="l00068"></a><span class="lineno">   68</span>&#160;    endwin();</div><div class="line"><a name="l00069"></a><span class="lineno">   69</span>&#160;}</div><div class="line"><a name="l00070"></a><span class="lineno">   70</span>&#160; </div><div class="line"><a name="l00071"></a><span class="lineno">   71</span>&#160;<span class="keywordtype">void</span> show_info(<span class="keywordtype">int</span>)</div><div class="line"><a name="l00072"></a><span class="lineno">   72</span>&#160;{</div><div class="line"><a name="l00073"></a><span class="lineno">   73</span>&#160;    <a class="code" href="classViewInfo.html">ViewInfo</a>* view = <span class="keyword">new</span> <a class="code" href="classViewInfo.html">ViewInfo</a>();</div><div class="line"><a name="l00074"></a><span class="lineno">   74</span>&#160;    view-&gt;setTitle(<span class="stringliteral">&quot;Info&quot;</span>);</div><div class="line"><a name="l00075"></a><span class="lineno">   75</span>&#160;    view-&gt;setText(<span class="stringliteral">&quot;Informationen zu Board 15 Famulus Edition\nEs war einmal...&quot;</span>);</div><div class="line"><a name="l00076"></a><span class="lineno">   76</span>&#160;    view-&gt;setLabelClose(<span class="stringliteral">&quot;[ Zurueck ]&quot;</span>);</div><div class="line"><a name="l00077"></a><span class="lineno">   77</span>&#160;    view-&gt;repaint();</div><div class="line"><a name="l00078"></a><span class="lineno">   78</span>&#160; </div><div class="line"><a name="l00079"></a><span class="lineno">   79</span>&#160;    win_stack.push_back(view);</div><div class="line"><a name="l00080"></a><span class="lineno">   80</span>&#160;    input(0);</div><div class="line"><a name="l00081"></a><span class="lineno">   81</span>&#160;}</div><div class="line"><a name="l00082"></a><span class="lineno">   82</span>&#160; </div><div class="line"><a name="l00083"></a><span class="lineno">   83</span>&#160;<span class="keywordtype">void</span> show_monitor(<span class="keywordtype">int</span>)</div><div class="line"><a name="l00084"></a><span class="lineno">   84</span>&#160;{</div><div class="line"><a name="l00085"></a><span class="lineno">   85</span>&#160;    <a class="code" href="classViewMonitor.html">ViewMonitor</a>* view = <span class="keyword">new</span> <a class="code" href="classViewMonitor.html">ViewMonitor</a>();</div><div class="line"><a name="l00086"></a><span class="lineno">   86</span>&#160;    view-&gt;setTitle(<span class="stringliteral">&quot;Monitor&quot;</span>);</div><div class="line"><a name="l00087"></a><span class="lineno">   87</span>&#160;    view-&gt;setText(<span class="stringliteral">&quot;\nErfasse Messwerte...&quot;</span>);</div><div class="line"><a name="l00088"></a><span class="lineno">   88</span>&#160;    view-&gt;setLabelClose(<span class="stringliteral">&quot;[ Zurueck ]&quot;</span>);</div><div class="line"><a name="l00089"></a><span class="lineno">   89</span>&#160;    view-&gt;repaint();</div><div class="line"><a name="l00090"></a><span class="lineno">   90</span>&#160; </div><div class="line"><a name="l00091"></a><span class="lineno">   91</span>&#160;    win_stack.push_back(view);</div><div class="line"><a name="l00092"></a><span class="lineno">   92</span>&#160;    input(0);</div><div class="line"><a name="l00093"></a><span class="lineno">   93</span>&#160;}</div><div class="line"><a name="l00094"></a><span class="lineno">   94</span>&#160; </div><div class="line"><a name="l00095"></a><span class="lineno">   95</span>&#160;<span class="keywordtype">void</span> show_invalid_port_input(<span class="keywordtype">int</span>)</div><div class="line"><a name="l00096"></a><span class="lineno">   96</span>&#160;{</div><div class="line"><a name="l00097"></a><span class="lineno">   97</span>&#160;    <a class="code" href="classViewInfo.html">ViewInfo</a>* view = <span class="keyword">new</span> <a class="code" href="classViewInfo.html">ViewInfo</a>();</div><div class="line"><a name="l00098"></a><span class="lineno">   98</span>&#160;    view-&gt;setTitle(<span class="stringliteral">&quot;Falsche Eingabe&quot;</span>);</div><div class="line"><a name="l00099"></a><span class="lineno">   99</span>&#160;    view-&gt;setText(<span class="stringliteral">&quot;Bitte geben Sie einen Wert aus dem Intervall [0, FF] an.&quot;</span>);</div><div class="line"><a name="l00100"></a><span class="lineno">  100</span>&#160;    view-&gt;setLabelClose(<span class="stringliteral">&quot;[ Schliessen ]&quot;</span>);</div><div class="line"><a name="l00101"></a><span class="lineno">  101</span>&#160;    view-&gt;repaint();</div><div class="line"><a name="l00102"></a><span class="lineno">  102</span>&#160; </div><div class="line"><a name="l00103"></a><span class="lineno">  103</span>&#160;    win_stack.push_back(view);</div><div class="line"><a name="l00104"></a><span class="lineno">  104</span>&#160;    input(0);</div><div class="line"><a name="l00105"></a><span class="lineno">  105</span>&#160;}</div><div class="line"><a name="l00106"></a><span class="lineno">  106</span>&#160; </div><div class="line"><a name="l00107"></a><span class="lineno">  107</span>&#160;<span class="keywordtype">void</span> show_invalid_dac_input(<span class="keywordtype">int</span>)</div><div class="line"><a name="l00108"></a><span class="lineno">  108</span>&#160;{</div><div class="line"><a name="l00109"></a><span class="lineno">  109</span>&#160;    <a class="code" href="classViewInfo.html">ViewInfo</a>* view = <span class="keyword">new</span> <a class="code" href="classViewInfo.html">ViewInfo</a>();</div><div class="line"><a name="l00110"></a><span class="lineno">  110</span>&#160;    view-&gt;setTitle(<span class="stringliteral">&quot;Falsche Eingabe&quot;</span>);</div><div class="line"><a name="l00111"></a><span class="lineno">  111</span>&#160;    view-&gt;setText(<span class="stringliteral">&quot;Bitte geben Sie einen Wert aus dem Intervall [0, 1023] an.&quot;</span>);</div><div class="line"><a name="l00112"></a><span class="lineno">  112</span>&#160;    view-&gt;setLabelClose(<span class="stringliteral">&quot;[ Schliessen ]&quot;</span>);</div><div class="line"><a name="l00113"></a><span class="lineno">  113</span>&#160;    view-&gt;repaint();</div><div class="line"><a name="l00114"></a><span class="lineno">  114</span>&#160; </div><div class="line"><a name="l00115"></a><span class="lineno">  115</span>&#160;    win_stack.push_back(view);</div><div class="line"><a name="l00116"></a><span class="lineno">  116</span>&#160;    input(0);</div><div class="line"><a name="l00117"></a><span class="lineno">  117</span>&#160;}</div><div class="line"><a name="l00118"></a><span class="lineno">  118</span>&#160; </div><div class="line"><a name="l00119"></a><span class="lineno">  119</span>&#160;<span class="keywordtype">void</span> write_digital_output0(<span class="keywordtype">int</span>)</div><div class="line"><a name="l00120"></a><span class="lineno">  120</span>&#160;{</div><div class="line"><a name="l00121"></a><span class="lineno">  121</span>&#160;    <span class="keywordflow">try</span></div><div class="line"><a name="l00122"></a><span class="lineno">  122</span>&#160;    {</div><div class="line"><a name="l00123"></a><span class="lineno">  123</span>&#160;        <span class="keywordtype">int</span> d = std::stoi(static_cast&lt;ViewPromt*&gt;(win_stack.back())-&gt;getInput(), 0, 16);</div><div class="line"><a name="l00124"></a><span class="lineno">  124</span>&#160;        <span class="keywordflow">if</span>(d &gt; 255 || 0 &gt; d)</div><div class="line"><a name="l00125"></a><span class="lineno">  125</span>&#160;            <span class="keywordflow">throw</span> std::invalid_argument(<span class="stringliteral">&quot;bad value&quot;</span>);</div><div class="line"><a name="l00126"></a><span class="lineno">  126</span>&#160;        uint8_t port = static_cast&lt;uint8_t&gt;(d);</div><div class="line"><a name="l00127"></a><span class="lineno">  127</span>&#160; </div><div class="line"><a name="l00128"></a><span class="lineno">  128</span>&#160;        <a class="code" href="classB15F.html">B15F</a>&amp; drv = <a class="code" href="classB15F.html#a8b4533d232c55ef2aa967e39e2d23380">B15F::getInstance</a>();</div><div class="line"><a name="l00129"></a><span class="lineno">  129</span>&#160;        drv.<a class="code" href="classB15F.html#a13797edea1c50278988373acbd110064">digitalWrite0</a>(port);</div><div class="line"><a name="l00130"></a><span class="lineno">  130</span>&#160;        view_back(0);</div><div class="line"><a name="l00131"></a><span class="lineno">  131</span>&#160;    }</div><div class="line"><a name="l00132"></a><span class="lineno">  132</span>&#160;    <span class="keywordflow">catch</span>(std::invalid_argument&amp; ex)</div><div class="line"><a name="l00133"></a><span class="lineno">  133</span>&#160;    {</div><div class="line"><a name="l00134"></a><span class="lineno">  134</span>&#160;        show_invalid_port_input(0);</div><div class="line"><a name="l00135"></a><span class="lineno">  135</span>&#160;    }</div><div class="line"><a name="l00136"></a><span class="lineno">  136</span>&#160;}</div><div class="line"><a name="l00137"></a><span class="lineno">  137</span>&#160; </div><div class="line"><a name="l00138"></a><span class="lineno">  138</span>&#160;<span class="keywordtype">void</span> write_digital_output1(<span class="keywordtype">int</span>)</div><div class="line"><a name="l00139"></a><span class="lineno">  139</span>&#160;{</div><div class="line"><a name="l00140"></a><span class="lineno">  140</span>&#160;    <span class="keywordflow">try</span></div><div class="line"><a name="l00141"></a><span class="lineno">  141</span>&#160;    {</div><div class="line"><a name="l00142"></a><span class="lineno">  142</span>&#160;        <span class="keywordtype">int</span> d = std::stoi(static_cast&lt;ViewPromt*&gt;(win_stack.back())-&gt;getInput(), 0, 16);</div><div class="line"><a name="l00143"></a><span class="lineno">  143</span>&#160;        <span class="keywordflow">if</span>(d &gt; 255 || 0 &gt; d)</div><div class="line"><a name="l00144"></a><span class="lineno">  144</span>&#160;            <span class="keywordflow">throw</span> std::invalid_argument(<span class="stringliteral">&quot;bad value&quot;</span>);</div><div class="line"><a name="l00145"></a><span class="lineno">  145</span>&#160;        uint8_t port = static_cast&lt;uint8_t&gt;(d);</div><div class="line"><a name="l00146"></a><span class="lineno">  146</span>&#160; </div><div class="line"><a name="l00147"></a><span class="lineno">  147</span>&#160;        <a class="code" href="classB15F.html">B15F</a>&amp; drv = <a class="code" href="classB15F.html#a8b4533d232c55ef2aa967e39e2d23380">B15F::getInstance</a>();</div><div class="line"><a name="l00148"></a><span class="lineno">  148</span>&#160;        drv.<a class="code" href="classB15F.html#aa225e7fc813849634063e071ef25db1b">digitalWrite1</a>(port);</div><div class="line"><a name="l00149"></a><span class="lineno">  149</span>&#160;        view_back(0);</div><div class="line"><a name="l00150"></a><span class="lineno">  150</span>&#160;    }</div><div class="line"><a name="l00151"></a><span class="lineno">  151</span>&#160;    <span class="keywordflow">catch</span>(std::invalid_argument&amp; ex)</div><div class="line"><a name="l00152"></a><span class="lineno">  152</span>&#160;    {</div><div class="line"><a name="l00153"></a><span class="lineno">  153</span>&#160;        show_invalid_port_input(0);</div><div class="line"><a name="l00154"></a><span class="lineno">  154</span>&#160;    }</div><div class="line"><a name="l00155"></a><span class="lineno">  155</span>&#160;}</div><div class="line"><a name="l00156"></a><span class="lineno">  156</span>&#160; </div><div class="line"><a name="l00157"></a><span class="lineno">  157</span>&#160;<span class="keywordtype">void</span> write_analog_output0(<span class="keywordtype">int</span>)</div><div class="line"><a name="l00158"></a><span class="lineno">  158</span>&#160;{</div><div class="line"><a name="l00159"></a><span class="lineno">  159</span>&#160;    <span class="keywordflow">try</span></div><div class="line"><a name="l00160"></a><span class="lineno">  160</span>&#160;    {</div><div class="line"><a name="l00161"></a><span class="lineno">  161</span>&#160;        uint16_t port = std::stoi(static_cast&lt;ViewPromt*&gt;(win_stack.back())-&gt;getInput());</div><div class="line"><a name="l00162"></a><span class="lineno">  162</span>&#160;        <span class="keywordflow">if</span>(port &gt; 1023)</div><div class="line"><a name="l00163"></a><span class="lineno">  163</span>&#160;            <span class="keywordflow">throw</span> std::invalid_argument(<span class="stringliteral">&quot;bad value&quot;</span>);</div><div class="line"><a name="l00164"></a><span class="lineno">  164</span>&#160; </div><div class="line"><a name="l00165"></a><span class="lineno">  165</span>&#160;        <a class="code" href="classB15F.html">B15F</a>&amp; drv = <a class="code" href="classB15F.html#a8b4533d232c55ef2aa967e39e2d23380">B15F::getInstance</a>();</div><div class="line"><a name="l00166"></a><span class="lineno">  166</span>&#160;        drv.<a class="code" href="classB15F.html#afc55fd590c7fa5c942d100cb60c4b0d3">analogWrite0</a>(port);</div><div class="line"><a name="l00167"></a><span class="lineno">  167</span>&#160;        view_back(0);</div><div class="line"><a name="l00168"></a><span class="lineno">  168</span>&#160;    }</div><div class="line"><a name="l00169"></a><span class="lineno">  169</span>&#160;    <span class="keywordflow">catch</span>(std::invalid_argument&amp; ex)</div><div class="line"><a name="l00170"></a><span class="lineno">  170</span>&#160;    {</div><div class="line"><a name="l00171"></a><span class="lineno">  171</span>&#160;        show_invalid_dac_input(0);</div><div class="line"><a name="l00172"></a><span class="lineno">  172</span>&#160;    }</div><div class="line"><a name="l00173"></a><span class="lineno">  173</span>&#160;}</div><div class="line"><a name="l00174"></a><span class="lineno">  174</span>&#160; </div><div class="line"><a name="l00175"></a><span class="lineno">  175</span>&#160;<span class="keywordtype">void</span> write_analog_output1(<span class="keywordtype">int</span>)</div><div class="line"><a name="l00176"></a><span class="lineno">  176</span>&#160;{</div><div class="line"><a name="l00177"></a><span class="lineno">  177</span>&#160;    <span class="keywordflow">try</span></div><div class="line"><a name="l00178"></a><span class="lineno">  178</span>&#160;    {</div><div class="line"><a name="l00179"></a><span class="lineno">  179</span>&#160;        uint16_t port = std::stoi(static_cast&lt;ViewPromt*&gt;(win_stack.back())-&gt;getInput());</div><div class="line"><a name="l00180"></a><span class="lineno">  180</span>&#160;        <span class="keywordflow">if</span>(port &gt; 1023)</div><div class="line"><a name="l00181"></a><span class="lineno">  181</span>&#160;            <span class="keywordflow">throw</span> std::invalid_argument(<span class="stringliteral">&quot;bad value&quot;</span>);</div><div class="line"><a name="l00182"></a><span class="lineno">  182</span>&#160; </div><div class="line"><a name="l00183"></a><span class="lineno">  183</span>&#160;        <a class="code" href="classB15F.html">B15F</a>&amp; drv = <a class="code" href="classB15F.html#a8b4533d232c55ef2aa967e39e2d23380">B15F::getInstance</a>();</div><div class="line"><a name="l00184"></a><span class="lineno">  184</span>&#160;        drv.<a class="code" href="classB15F.html#a7f1becceac744f5cd2ad529748fd836f">analogWrite1</a>(port);</div><div class="line"><a name="l00185"></a><span class="lineno">  185</span>&#160;        view_back(0);</div><div class="line"><a name="l00186"></a><span class="lineno">  186</span>&#160;    }</div><div class="line"><a name="l00187"></a><span class="lineno">  187</span>&#160;    <span class="keywordflow">catch</span>(std::invalid_argument&amp; ex)</div><div class="line"><a name="l00188"></a><span class="lineno">  188</span>&#160;    {</div><div class="line"><a name="l00189"></a><span class="lineno">  189</span>&#160;        show_invalid_dac_input(0);</div><div class="line"><a name="l00190"></a><span class="lineno">  190</span>&#160;    }</div><div class="line"><a name="l00191"></a><span class="lineno">  191</span>&#160;}</div><div class="line"><a name="l00192"></a><span class="lineno">  192</span>&#160; </div><div class="line"><a name="l00193"></a><span class="lineno">  193</span>&#160;<span class="keywordtype">void</span> show_digital_output0(<span class="keywordtype">int</span>)</div><div class="line"><a name="l00194"></a><span class="lineno">  194</span>&#160;{</div><div class="line"><a name="l00195"></a><span class="lineno">  195</span>&#160;    <a class="code" href="classViewPromt.html">ViewPromt</a>* view = <span class="keyword">new</span> <a class="code" href="classViewPromt.html">ViewPromt</a>();</div><div class="line"><a name="l00196"></a><span class="lineno">  196</span>&#160;    view-&gt;setTitle(<span class="stringliteral">&quot;Digitale Ausgabe BE0&quot;</span>);</div><div class="line"><a name="l00197"></a><span class="lineno">  197</span>&#160;    view-&gt;setMessage(<span class="stringliteral">&quot;\nAusgabe Port-Wert (hex): 0x&quot;</span>);</div><div class="line"><a name="l00198"></a><span class="lineno">  198</span>&#160;    view-&gt;setCancel(<span class="stringliteral">&quot;[ Zurueck ]&quot;</span>, <span class="keyword">true</span>);</div><div class="line"><a name="l00199"></a><span class="lineno">  199</span>&#160;    view-&gt;setConfirm(<span class="stringliteral">&quot;[ OK ]&quot;</span>, &amp;write_digital_output0);</div><div class="line"><a name="l00200"></a><span class="lineno">  200</span>&#160;    view-&gt;repaint();</div><div class="line"><a name="l00201"></a><span class="lineno">  201</span>&#160; </div><div class="line"><a name="l00202"></a><span class="lineno">  202</span>&#160;    win_stack.push_back(view);</div><div class="line"><a name="l00203"></a><span class="lineno">  203</span>&#160;    input(0);</div><div class="line"><a name="l00204"></a><span class="lineno">  204</span>&#160;}</div><div class="line"><a name="l00205"></a><span class="lineno">  205</span>&#160; </div><div class="line"><a name="l00206"></a><span class="lineno">  206</span>&#160;<span class="keywordtype">void</span> show_digital_output1(<span class="keywordtype">int</span>)</div><div class="line"><a name="l00207"></a><span class="lineno">  207</span>&#160;{</div><div class="line"><a name="l00208"></a><span class="lineno">  208</span>&#160;    <a class="code" href="classViewPromt.html">ViewPromt</a>* view = <span class="keyword">new</span> <a class="code" href="classViewPromt.html">ViewPromt</a>();</div><div class="line"><a name="l00209"></a><span class="lineno">  209</span>&#160;    view-&gt;setTitle(<span class="stringliteral">&quot;Digitale Ausgabe BE1&quot;</span>);</div><div class="line"><a name="l00210"></a><span class="lineno">  210</span>&#160;    view-&gt;setMessage(<span class="stringliteral">&quot;\nAusgabe Port-Wert (hex): 0x&quot;</span>);</div><div class="line"><a name="l00211"></a><span class="lineno">  211</span>&#160;    view-&gt;setCancel(<span class="stringliteral">&quot;[ Zurueck ]&quot;</span>, <span class="keyword">true</span>);</div><div class="line"><a name="l00212"></a><span class="lineno">  212</span>&#160;    view-&gt;setConfirm(<span class="stringliteral">&quot;[ OK ]&quot;</span>, &amp;write_digital_output1);</div><div class="line"><a name="l00213"></a><span class="lineno">  213</span>&#160;    view-&gt;repaint();</div><div class="line"><a name="l00214"></a><span class="lineno">  214</span>&#160; </div><div class="line"><a name="l00215"></a><span class="lineno">  215</span>&#160;    win_stack.push_back(view);</div><div class="line"><a name="l00216"></a><span class="lineno">  216</span>&#160;    input(0);</div><div class="line"><a name="l00217"></a><span class="lineno">  217</span>&#160;}</div><div class="line"><a name="l00218"></a><span class="lineno">  218</span>&#160; </div><div class="line"><a name="l00219"></a><span class="lineno">  219</span>&#160;<span class="keywordtype">void</span> show_analog_output0(<span class="keywordtype">int</span>)</div><div class="line"><a name="l00220"></a><span class="lineno">  220</span>&#160;{</div><div class="line"><a name="l00221"></a><span class="lineno">  221</span>&#160;    <a class="code" href="classViewPromt.html">ViewPromt</a>* view = <span class="keyword">new</span> <a class="code" href="classViewPromt.html">ViewPromt</a>();</div><div class="line"><a name="l00222"></a><span class="lineno">  222</span>&#160;    view-&gt;setTitle(<span class="stringliteral">&quot;Analoge Ausgabe AA0&quot;</span>);</div><div class="line"><a name="l00223"></a><span class="lineno">  223</span>&#160;    view-&gt;setMessage(<span class="stringliteral">&quot;\nAusgabe 10-Bit-Wert (0...1023): &quot;</span>);</div><div class="line"><a name="l00224"></a><span class="lineno">  224</span>&#160;    view-&gt;setCancel(<span class="stringliteral">&quot;[ Zurueck ]&quot;</span>, <span class="keyword">true</span>);</div><div class="line"><a name="l00225"></a><span class="lineno">  225</span>&#160;    view-&gt;setConfirm(<span class="stringliteral">&quot;[ OK ]&quot;</span>, &amp;write_analog_output0);</div><div class="line"><a name="l00226"></a><span class="lineno">  226</span>&#160;    view-&gt;repaint();</div><div class="line"><a name="l00227"></a><span class="lineno">  227</span>&#160; </div><div class="line"><a name="l00228"></a><span class="lineno">  228</span>&#160;    win_stack.push_back(view);</div><div class="line"><a name="l00229"></a><span class="lineno">  229</span>&#160;    input(0);</div><div class="line"><a name="l00230"></a><span class="lineno">  230</span>&#160;}</div><div class="line"><a name="l00231"></a><span class="lineno">  231</span>&#160; </div><div class="line"><a name="l00232"></a><span class="lineno">  232</span>&#160;<span class="keywordtype">void</span> show_analog_output1(<span class="keywordtype">int</span>)</div><div class="line"><a name="l00233"></a><span class="lineno">  233</span>&#160;{</div><div class="line"><a name="l00234"></a><span class="lineno">  234</span>&#160;    <a class="code" href="classViewPromt.html">ViewPromt</a>* view = <span class="keyword">new</span> <a class="code" href="classViewPromt.html">ViewPromt</a>();</div><div class="line"><a name="l00235"></a><span class="lineno">  235</span>&#160;    view-&gt;setTitle(<span class="stringliteral">&quot;Analoge Ausgabe AA1&quot;</span>);</div><div class="line"><a name="l00236"></a><span class="lineno">  236</span>&#160;    view-&gt;setMessage(<span class="stringliteral">&quot;\nAusgabe 10-Bit-Wert (0...1023): &quot;</span>);</div><div class="line"><a name="l00237"></a><span class="lineno">  237</span>&#160;    view-&gt;setCancel(<span class="stringliteral">&quot;[ Zurueck ]&quot;</span>, <span class="keyword">true</span>);</div><div class="line"><a name="l00238"></a><span class="lineno">  238</span>&#160;    view-&gt;setConfirm(<span class="stringliteral">&quot;[ OK ]&quot;</span>, &amp;write_analog_output1);</div><div class="line"><a name="l00239"></a><span class="lineno">  239</span>&#160;    view-&gt;repaint();</div><div class="line"><a name="l00240"></a><span class="lineno">  240</span>&#160; </div><div class="line"><a name="l00241"></a><span class="lineno">  241</span>&#160;    win_stack.push_back(view);</div><div class="line"><a name="l00242"></a><span class="lineno">  242</span>&#160;    input(0);</div><div class="line"><a name="l00243"></a><span class="lineno">  243</span>&#160;}</div><div class="line"><a name="l00244"></a><span class="lineno">  244</span>&#160; </div><div class="line"><a name="l00245"></a><span class="lineno">  245</span>&#160;<span class="keywordtype">void</span> start_selftest(<span class="keywordtype">int</span>)</div><div class="line"><a name="l00246"></a><span class="lineno">  246</span>&#160;{</div><div class="line"><a name="l00247"></a><span class="lineno">  247</span>&#160;    <a class="code" href="classB15F.html">B15F</a>&amp; drv = <a class="code" href="classB15F.html#a8b4533d232c55ef2aa967e39e2d23380">B15F::getInstance</a>();</div><div class="line"><a name="l00248"></a><span class="lineno">  248</span>&#160;    drv.<a class="code" href="classB15F.html#ad9bf80ee2485fb5aac9926c6ef0731f1">activateSelfTestMode</a>();</div><div class="line"><a name="l00249"></a><span class="lineno">  249</span>&#160; </div><div class="line"><a name="l00250"></a><span class="lineno">  250</span>&#160;    <a class="code" href="classViewInfo.html">ViewInfo</a>* view = <span class="keyword">new</span> <a class="code" href="classViewInfo.html">ViewInfo</a>();</div><div class="line"><a name="l00251"></a><span class="lineno">  251</span>&#160;    view-&gt;setTitle(<span class="stringliteral">&quot;Selbsttest aktiv&quot;</span>);</div><div class="line"><a name="l00252"></a><span class="lineno">  252</span>&#160;    view-&gt;setText(<span class="stringliteral">&quot;Das B15 befindet sich jetzt im Selbsttestmodus.\n \nSelbsttest:\nZu Beginn geht der Reihe nach jede LED von BA0 bis BA1 an.\nDanach leuchten die LEDs an AA0 und AA1 kurz auf.\nZum Schluss spiegelt in einer Endlosschleife:\n* BA0 Port BE0\n* BA1 die DIP-Schalter S7\n* AA0 ADC0\n* AA1 ADC1&quot;</span>);</div><div class="line"><a name="l00253"></a><span class="lineno">  253</span>&#160;    view-&gt;setLabelClose(<span class="stringliteral">&quot;[ Selbsttest Beenden ]&quot;</span>);</div><div class="line"><a name="l00254"></a><span class="lineno">  254</span>&#160;    view-&gt;setCall(&amp;stop_selftest);</div><div class="line"><a name="l00255"></a><span class="lineno">  255</span>&#160;    view-&gt;repaint();</div><div class="line"><a name="l00256"></a><span class="lineno">  256</span>&#160; </div><div class="line"><a name="l00257"></a><span class="lineno">  257</span>&#160;    win_stack.push_back(view);</div><div class="line"><a name="l00258"></a><span class="lineno">  258</span>&#160;    input(0);</div><div class="line"><a name="l00259"></a><span class="lineno">  259</span>&#160;}</div><div class="line"><a name="l00260"></a><span class="lineno">  260</span>&#160; </div><div class="line"><a name="l00261"></a><span class="lineno">  261</span>&#160;<span class="keywordtype">void</span> stop_selftest(<span class="keywordtype">int</span>)</div><div class="line"><a name="l00262"></a><span class="lineno">  262</span>&#160;{</div><div class="line"><a name="l00263"></a><span class="lineno">  263</span>&#160;    <a class="code" href="classB15F.html">B15F</a>&amp; drv = <a class="code" href="classB15F.html#a8b4533d232c55ef2aa967e39e2d23380">B15F::getInstance</a>();</div><div class="line"><a name="l00264"></a><span class="lineno">  264</span>&#160;    drv.<a class="code" href="classB15F.html#ae4740cd473f40a1a4121dfa66b25e1d5">discard</a>();</div><div class="line"><a name="l00265"></a><span class="lineno">  265</span>&#160;    drv.<a class="code" href="classB15F.html#aaffce20afb9f06bc4b7556c70ce76416">delay_ms</a>(<a class="code" href="classB15F.html#a158d13bc84aed6430cdede1396384e06">B15F::WDT_TIMEOUT</a>);</div><div class="line"><a name="l00266"></a><span class="lineno">  266</span>&#160;    drv.<a class="code" href="classB15F.html#a52557b375443c180a044e7d4e80a1ae7">reconnect</a>();</div><div class="line"><a name="l00267"></a><span class="lineno">  267</span>&#160;    drv.<a class="code" href="classB15F.html#a13797edea1c50278988373acbd110064">digitalWrite0</a>(0);</div><div class="line"><a name="l00268"></a><span class="lineno">  268</span>&#160;    drv.<a class="code" href="classB15F.html#aa225e7fc813849634063e071ef25db1b">digitalWrite1</a>(0);</div><div class="line"><a name="l00269"></a><span class="lineno">  269</span>&#160;}</div><div class="line"><a name="l00270"></a><span class="lineno">  270</span>&#160; </div><div class="line"><a name="l00271"></a><span class="lineno">  271</span>&#160;<span class="keywordtype">void</span> show_selftest_info(<span class="keywordtype">int</span>)</div><div class="line"><a name="l00272"></a><span class="lineno">  272</span>&#160;{</div><div class="line"><a name="l00273"></a><span class="lineno">  273</span>&#160;    <a class="code" href="classViewInfo.html">ViewInfo</a>* view = <span class="keyword">new</span> <a class="code" href="classViewInfo.html">ViewInfo</a>();</div><div class="line"><a name="l00274"></a><span class="lineno">  274</span>&#160;    view-&gt;setTitle(<span class="stringliteral">&quot;Selbsttest&quot;</span>);</div><div class="line"><a name="l00275"></a><span class="lineno">  275</span>&#160;    view-&gt;setText(<span class="stringliteral">&quot;Bitte entfernen Sie jetzt alle Draehte von den Anschlussklemmen und bestaetigen\nmit Enter.&quot;</span>);</div><div class="line"><a name="l00276"></a><span class="lineno">  276</span>&#160;    view-&gt;setLabelClose(<span class="stringliteral">&quot;[ Weiter ]&quot;</span>);</div><div class="line"><a name="l00277"></a><span class="lineno">  277</span>&#160;    view-&gt;setCall(&amp;start_selftest);</div><div class="line"><a name="l00278"></a><span class="lineno">  278</span>&#160;    view-&gt;repaint();</div><div class="line"><a name="l00279"></a><span class="lineno">  279</span>&#160; </div><div class="line"><a name="l00280"></a><span class="lineno">  280</span>&#160;    win_stack.push_back(view);</div><div class="line"><a name="l00281"></a><span class="lineno">  281</span>&#160;    input(0);</div><div class="line"><a name="l00282"></a><span class="lineno">  282</span>&#160;}</div></div><!-- fragment --></div><!-- contents -->
-<div class="ttc" id="aclassViewMonitor_html"><div class="ttname"><a href="classViewMonitor.html">ViewMonitor</a></div><div class="ttdef"><b>Definition:</b> <a href="view__monitor_8h_source.html#l00013">view_monitor.h:13</a></div></div>
-<div class="ttc" id="aclassViewInfo_html"><div class="ttname"><a href="classViewInfo.html">ViewInfo</a></div><div class="ttdef"><b>Definition:</b> <a href="view__info_8h_source.html#l00008">view_info.h:8</a></div></div>
-<div class="ttc" id="aclassB15F_html_aaffce20afb9f06bc4b7556c70ce76416"><div class="ttname"><a href="classB15F.html#aaffce20afb9f06bc4b7556c70ce76416">B15F::delay_ms</a></div><div class="ttdeci">void delay_ms(uint16_t ms)</div><div class="ttdef"><b>Definition:</b> <a href="b15f_8cpp_source.html#l00432">b15f.cpp:432</a></div></div>
-<div class="ttc" id="aclassB15F_html_a8b4533d232c55ef2aa967e39e2d23380"><div class="ttname"><a href="classB15F.html#a8b4533d232c55ef2aa967e39e2d23380">B15F::getInstance</a></div><div class="ttdeci">static B15F &amp; getInstance(void)</div><div class="ttdef"><b>Definition:</b> <a href="b15f_8cpp_source.html#l00442">b15f.cpp:442</a></div></div>
-<div class="ttc" id="aclassB15F_html"><div class="ttname"><a href="classB15F.html">B15F</a></div><div class="ttdef"><b>Definition:</b> <a href="b15f_8h_source.html#l00031">b15f.h:31</a></div></div>
-<div class="ttc" id="aclassB15F_html_a13797edea1c50278988373acbd110064"><div class="ttname"><a href="classB15F.html#a13797edea1c50278988373acbd110064">B15F::digitalWrite0</a></div><div class="ttdeci">bool digitalWrite0(uint8_t)</div><div class="ttdef"><b>Definition:</b> <a href="b15f_8cpp_source.html#l00179">b15f.cpp:179</a></div></div>
-<div class="ttc" id="aclassB15F_html_ad9bf80ee2485fb5aac9926c6ef0731f1"><div class="ttname"><a href="classB15F.html#ad9bf80ee2485fb5aac9926c6ef0731f1">B15F::activateSelfTestMode</a></div><div class="ttdeci">bool activateSelfTestMode(void)</div><div class="ttdef"><b>Definition:</b> <a href="b15f_8cpp_source.html#l00166">b15f.cpp:166</a></div></div>
-<div class="ttc" id="aclassViewSelection_html"><div class="ttname"><a href="classViewSelection.html">ViewSelection</a></div><div class="ttdef"><b>Definition:</b> <a href="view__selection_8h_source.html#l00010">view_selection.h:10</a></div></div>
-<div class="ttc" id="aclassB15F_html_a7f1becceac744f5cd2ad529748fd836f"><div class="ttname"><a href="classB15F.html#a7f1becceac744f5cd2ad529748fd836f">B15F::analogWrite1</a></div><div class="ttdeci">bool analogWrite1(uint16_t port)</div><div class="ttdef"><b>Definition:</b> <a href="b15f_8cpp_source.html#l00264">b15f.cpp:264</a></div></div>
-<div class="ttc" id="aclassViewPromt_html"><div class="ttname"><a href="classViewPromt.html">ViewPromt</a></div><div class="ttdef"><b>Definition:</b> <a href="view__promt_8h_source.html#l00010">view_promt.h:10</a></div></div>
-<div class="ttc" id="aclassB15F_html_aa225e7fc813849634063e071ef25db1b"><div class="ttname"><a href="classB15F.html#aa225e7fc813849634063e071ef25db1b">B15F::digitalWrite1</a></div><div class="ttdeci">bool digitalWrite1(uint8_t)</div><div class="ttdef"><b>Definition:</b> <a href="b15f_8cpp_source.html#l00193">b15f.cpp:193</a></div></div>
-<div class="ttc" id="aclassB15F_html_ae4740cd473f40a1a4121dfa66b25e1d5"><div class="ttname"><a href="classB15F.html#ae4740cd473f40a1a4121dfa66b25e1d5">B15F::discard</a></div><div class="ttdeci">void discard(void)</div><div class="ttdef"><b>Definition:</b> <a href="b15f_8cpp_source.html#l00072">b15f.cpp:72</a></div></div>
-<div class="ttc" id="aclassB15F_html_a158d13bc84aed6430cdede1396384e06"><div class="ttname"><a href="classB15F.html#a158d13bc84aed6430cdede1396384e06">B15F::WDT_TIMEOUT</a></div><div class="ttdeci">constexpr static uint16_t WDT_TIMEOUT</div><div class="ttdoc">Time in ms after which the watch dog timer resets the MCU.</div><div class="ttdef"><b>Definition:</b> <a href="b15f_8h_source.html#l00241">b15f.h:241</a></div></div>
-<div class="ttc" id="aclassB15F_html_a52557b375443c180a044e7d4e80a1ae7"><div class="ttname"><a href="classB15F.html#a52557b375443c180a044e7d4e80a1ae7">B15F::reconnect</a></div><div class="ttdeci">void reconnect(void)</div><div class="ttdef"><b>Definition:</b> <a href="b15f_8cpp_source.html#l00057">b15f.cpp:57</a></div></div>
-<div class="ttc" id="aclassB15F_html_afc55fd590c7fa5c942d100cb60c4b0d3"><div class="ttname"><a href="classB15F.html#afc55fd590c7fa5c942d100cb60c4b0d3">B15F::analogWrite0</a></div><div class="ttdeci">bool analogWrite0(uint16_t port)</div><div class="ttdef"><b>Definition:</b> <a href="b15f_8cpp_source.html#l00249">b15f.cpp:249</a></div></div>
-<!-- start footer part -->
-<hr class="footer"/><address class="footer"><small>
-Generated on Fri Jun 7 2019 14:50:45 for B15F by &#160;<a href="http://www.doxygen.org/index.html">
-<img class="footer" src="doxygen.png" alt="doxygen"/>
-</a> 1.8.16
-</small></address>
-</body>
-</html>
diff --git a/docs/html/ui_8h_source.html b/docs/html/ui_8h_source.html
deleted file mode 100644
index 771cbdd..0000000
--- a/docs/html/ui_8h_source.html
+++ /dev/null
@@ -1,81 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml">
-<head>
-<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
-<meta http-equiv="X-UA-Compatible" content="IE=9"/>
-<meta name="generator" content="Doxygen 1.8.16"/>
-<meta name="viewport" content="width=device-width, initial-scale=1"/>
-<title>B15F: ui/ui.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">B15F
-   </div>
-   <div id="projectbrief">Board 15 Famulus Edition</div>
-  </td>
- </tr>
- </tbody>
-</table>
-</div>
-<!-- end header part -->
-<!-- Generated by Doxygen 1.8.16 -->
-<script type="text/javascript">
-/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
-var searchBox = new SearchBox("searchBox", "search",false,'Search');
-/* @license-end */
-</script>
-<script type="text/javascript" src="menudata.js"></script>
-<script type="text/javascript" src="menu.js"></script>
-<script type="text/javascript">
-/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
-$(function() {
-  initMenu('',true,false,'search.php','Search');
-  $(document).ready(function() { init_search(); });
-});
-/* @license-end */</script>
-<div id="main-nav"></div>
-<!-- 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 id="nav-path" class="navpath">
-  <ul>
-<li class="navelem"><a class="el" href="dir_1788f8309b1a812dcb800a185471cf6c.html">ui</a></li>  </ul>
-</div>
-</div><!-- top -->
-<div class="header">
-  <div class="headertitle">
-<div class="title">ui.h</div>  </div>
-</div><!--header-->
-<div class="contents">
-<div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno">    1</span>&#160;<span class="preprocessor">#ifndef UI_H</span></div><div class="line"><a name="l00002"></a><span class="lineno">    2</span>&#160;<span class="preprocessor">#define UI_H</span></div><div class="line"><a name="l00003"></a><span class="lineno">    3</span>&#160; </div><div class="line"><a name="l00004"></a><span class="lineno">    4</span>&#160;<span class="preprocessor">#include &lt;vector&gt;</span></div><div class="line"><a name="l00005"></a><span class="lineno">    5</span>&#160;<span class="preprocessor">#include &quot;view_selection.h&quot;</span></div><div class="line"><a name="l00006"></a><span class="lineno">    6</span>&#160;<span class="preprocessor">#include &quot;view_info.h&quot;</span></div><div class="line"><a name="l00007"></a><span class="lineno">    7</span>&#160;<span class="preprocessor">#include &quot;view_monitor.h&quot;</span></div><div class="line"><a name="l00008"></a><span class="lineno">    8</span>&#160;<span class="preprocessor">#include &quot;view_promt.h&quot;</span></div><div class="line"><a name="l00009"></a><span class="lineno">    9</span>&#160; </div><div class="line"><a name="l00010"></a><span class="lineno">   10</span>&#160;<span class="keywordtype">void</span> show_main(<span class="keywordtype">int</span>);</div><div class="line"><a name="l00011"></a><span class="lineno">   11</span>&#160;<span class="keywordtype">void</span> input(<span class="keywordtype">int</span>);</div><div class="line"><a name="l00012"></a><span class="lineno">   12</span>&#160;<span class="keywordtype">void</span> view_back(<span class="keywordtype">int</span>);</div><div class="line"><a name="l00013"></a><span class="lineno">   13</span>&#160;<span class="keywordtype">void</span> finish(<span class="keywordtype">int</span>);</div><div class="line"><a name="l00014"></a><span class="lineno">   14</span>&#160;<span class="keywordtype">void</span> cleanup();</div><div class="line"><a name="l00015"></a><span class="lineno">   15</span>&#160; </div><div class="line"><a name="l00016"></a><span class="lineno">   16</span>&#160;<span class="keywordtype">void</span> show_info(<span class="keywordtype">int</span>);</div><div class="line"><a name="l00017"></a><span class="lineno">   17</span>&#160;<span class="keywordtype">void</span> show_monitor(<span class="keywordtype">int</span>);</div><div class="line"><a name="l00018"></a><span class="lineno">   18</span>&#160;<span class="keywordtype">void</span> show_invalid_port_input(<span class="keywordtype">int</span>);</div><div class="line"><a name="l00019"></a><span class="lineno">   19</span>&#160;<span class="keywordtype">void</span> show_invalid_dac_input(<span class="keywordtype">int</span>);</div><div class="line"><a name="l00020"></a><span class="lineno">   20</span>&#160;<span class="keywordtype">void</span> write_digital_output0(<span class="keywordtype">int</span>);</div><div class="line"><a name="l00021"></a><span class="lineno">   21</span>&#160;<span class="keywordtype">void</span> write_digital_output1(<span class="keywordtype">int</span>);</div><div class="line"><a name="l00022"></a><span class="lineno">   22</span>&#160;<span class="keywordtype">void</span> write_analog_output0(<span class="keywordtype">int</span>);</div><div class="line"><a name="l00023"></a><span class="lineno">   23</span>&#160;<span class="keywordtype">void</span> write_analog_output1(<span class="keywordtype">int</span>);</div><div class="line"><a name="l00024"></a><span class="lineno">   24</span>&#160;<span class="keywordtype">void</span> show_digital_output0(<span class="keywordtype">int</span>);</div><div class="line"><a name="l00025"></a><span class="lineno">   25</span>&#160;<span class="keywordtype">void</span> show_digital_output1(<span class="keywordtype">int</span>);</div><div class="line"><a name="l00026"></a><span class="lineno">   26</span>&#160;<span class="keywordtype">void</span> show_analog_output0(<span class="keywordtype">int</span>);</div><div class="line"><a name="l00027"></a><span class="lineno">   27</span>&#160;<span class="keywordtype">void</span> show_analog_output1(<span class="keywordtype">int</span>);</div><div class="line"><a name="l00028"></a><span class="lineno">   28</span>&#160; </div><div class="line"><a name="l00029"></a><span class="lineno">   29</span>&#160;<span class="comment">// selftest group</span></div><div class="line"><a name="l00030"></a><span class="lineno">   30</span>&#160;<span class="keywordtype">void</span> show_selftest_info(<span class="keywordtype">int</span>);</div><div class="line"><a name="l00031"></a><span class="lineno">   31</span>&#160;<span class="keywordtype">void</span> start_selftest(<span class="keywordtype">int</span>);</div><div class="line"><a name="l00032"></a><span class="lineno">   32</span>&#160;<span class="keywordtype">void</span> stop_selftest(<span class="keywordtype">int</span>);</div><div class="line"><a name="l00033"></a><span class="lineno">   33</span>&#160; </div><div class="line"><a name="l00034"></a><span class="lineno">   34</span>&#160; </div><div class="line"><a name="l00035"></a><span class="lineno">   35</span>&#160;<span class="keyword">extern</span> std::vector&lt;View*&gt; win_stack;</div><div class="line"><a name="l00036"></a><span class="lineno">   36</span>&#160;<span class="keyword">extern</span> std::thread t_refresh;</div><div class="line"><a name="l00037"></a><span class="lineno">   37</span>&#160; </div><div class="line"><a name="l00038"></a><span class="lineno">   38</span>&#160;<span class="preprocessor">#endif // UI_H</span></div></div><!-- fragment --></div><!-- contents -->
-<!-- start footer part -->
-<hr class="footer"/><address class="footer"><small>
-Generated on Fri Jun 7 2019 14:50:45 for B15F by &#160;<a href="http://www.doxygen.org/index.html">
-<img class="footer" src="doxygen.png" alt="doxygen"/>
-</a> 1.8.16
-</small></address>
-</body>
-</html>
diff --git a/docs/html/usart_8cpp_source.html b/docs/html/usart_8cpp_source.html
deleted file mode 100644
index 3406759..0000000
--- a/docs/html/usart_8cpp_source.html
+++ /dev/null
@@ -1,96 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml">
-<head>
-<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
-<meta http-equiv="X-UA-Compatible" content="IE=9"/>
-<meta name="generator" content="Doxygen 1.8.16"/>
-<meta name="viewport" content="width=device-width, initial-scale=1"/>
-<title>B15F: drv/usart.cpp 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">B15F
-   </div>
-   <div id="projectbrief">Board 15 Famulus Edition</div>
-  </td>
- </tr>
- </tbody>
-</table>
-</div>
-<!-- end header part -->
-<!-- Generated by Doxygen 1.8.16 -->
-<script type="text/javascript">
-/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
-var searchBox = new SearchBox("searchBox", "search",false,'Search');
-/* @license-end */
-</script>
-<script type="text/javascript" src="menudata.js"></script>
-<script type="text/javascript" src="menu.js"></script>
-<script type="text/javascript">
-/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
-$(function() {
-  initMenu('',true,false,'search.php','Search');
-  $(document).ready(function() { init_search(); });
-});
-/* @license-end */</script>
-<div id="main-nav"></div>
-<!-- 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 id="nav-path" class="navpath">
-  <ul>
-<li class="navelem"><a class="el" href="dir_587c94d866dbb2f408f78cf41f9b2f8d.html">drv</a></li>  </ul>
-</div>
-</div><!-- top -->
-<div class="header">
-  <div class="headertitle">
-<div class="title">usart.cpp</div>  </div>
-</div><!--header-->
-<div class="contents">
-<div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno">    1</span>&#160;<span class="preprocessor">#include &lt;stdexcept&gt;</span></div><div class="line"><a name="l00002"></a><span class="lineno">    2</span>&#160;<span class="preprocessor">#include &quot;usart.h&quot;</span></div><div class="line"><a name="l00003"></a><span class="lineno">    3</span>&#160; </div><div class="line"><a name="l00004"></a><span class="lineno"><a class="line" href="classUSART.html#a0c8eb1a939ca00921e22f6cbcc7bb749">    4</a></span>&#160;<a class="code" href="classUSART.html#a0c8eb1a939ca00921e22f6cbcc7bb749">USART::~USART</a>()</div><div class="line"><a name="l00005"></a><span class="lineno">    5</span>&#160;{</div><div class="line"><a name="l00006"></a><span class="lineno">    6</span>&#160;    <a class="code" href="classUSART.html#af80d6291ac1d2df04cfa1d8d27458cc5">closeDevice</a>();</div><div class="line"><a name="l00007"></a><span class="lineno">    7</span>&#160;}</div><div class="line"><a name="l00008"></a><span class="lineno">    8</span>&#160; </div><div class="line"><a name="l00009"></a><span class="lineno"><a class="line" href="classUSART.html#a5f7e2abda2ec4a68a5fdb8ee2f8a940a">    9</a></span>&#160;<span class="keywordtype">void</span> <a class="code" href="classUSART.html#a5f7e2abda2ec4a68a5fdb8ee2f8a940a">USART::openDevice</a>(std::string device)</div><div class="line"><a name="l00010"></a><span class="lineno">   10</span>&#160;{</div><div class="line"><a name="l00011"></a><span class="lineno">   11</span>&#160;    <span class="comment">// Benutze blockierenden Modus</span></div><div class="line"><a name="l00012"></a><span class="lineno">   12</span>&#160;    file_desc = open(device.c_str(), O_RDWR | O_NOCTTY);<span class="comment">// | O_NDELAY</span></div><div class="line"><a name="l00013"></a><span class="lineno">   13</span>&#160;    <span class="keywordflow">if</span> (file_desc &lt;= 0)</div><div class="line"><a name="l00014"></a><span class="lineno">   14</span>&#160;        <span class="keywordflow">throw</span> <a class="code" href="classUSARTException.html">USARTException</a>(<span class="stringliteral">&quot;Fehler beim Öffnen des Gerätes&quot;</span>);</div><div class="line"><a name="l00015"></a><span class="lineno">   15</span>&#160; </div><div class="line"><a name="l00016"></a><span class="lineno">   16</span>&#160;    <span class="keyword">struct </span>termios options;</div><div class="line"><a name="l00017"></a><span class="lineno">   17</span>&#160;    <span class="keywordtype">int</span> code = tcgetattr(file_desc, &amp;options);</div><div class="line"><a name="l00018"></a><span class="lineno">   18</span>&#160;    <span class="keywordflow">if</span> (code)</div><div class="line"><a name="l00019"></a><span class="lineno">   19</span>&#160;        <span class="keywordflow">throw</span> <a class="code" href="classUSARTException.html">USARTException</a>(<span class="stringliteral">&quot;Fehler beim Lesen der Geräteparameter&quot;</span>);</div><div class="line"><a name="l00020"></a><span class="lineno">   20</span>&#160; </div><div class="line"><a name="l00021"></a><span class="lineno">   21</span>&#160;    options.c_cflag = CS8 | CLOCAL | CREAD;</div><div class="line"><a name="l00022"></a><span class="lineno">   22</span>&#160;    options.c_iflag = IGNPAR;</div><div class="line"><a name="l00023"></a><span class="lineno">   23</span>&#160;    options.c_oflag = 0;</div><div class="line"><a name="l00024"></a><span class="lineno">   24</span>&#160;    options.c_lflag = 0;</div><div class="line"><a name="l00025"></a><span class="lineno">   25</span>&#160;    options.c_cc[VMIN] = 0;</div><div class="line"><a name="l00026"></a><span class="lineno">   26</span>&#160;    options.c_cc[VTIME] = timeout;</div><div class="line"><a name="l00027"></a><span class="lineno">   27</span>&#160;    code = cfsetspeed(&amp;options, baudrate);</div><div class="line"><a name="l00028"></a><span class="lineno">   28</span>&#160;    <span class="keywordflow">if</span> (code)</div><div class="line"><a name="l00029"></a><span class="lineno">   29</span>&#160;        <span class="keywordflow">throw</span> <a class="code" href="classUSARTException.html">USARTException</a>(<span class="stringliteral">&quot;Fehler beim Setzen der Baudrate&quot;</span>);</div><div class="line"><a name="l00030"></a><span class="lineno">   30</span>&#160; </div><div class="line"><a name="l00031"></a><span class="lineno">   31</span>&#160;    code = tcsetattr(file_desc, TCSANOW, &amp;options);</div><div class="line"><a name="l00032"></a><span class="lineno">   32</span>&#160;    <span class="keywordflow">if</span> (code)</div><div class="line"><a name="l00033"></a><span class="lineno">   33</span>&#160;        <span class="keywordflow">throw</span> <a class="code" href="classUSARTException.html">USARTException</a>(<span class="stringliteral">&quot;Fehler beim Setzen der Geräteparameter&quot;</span>);</div><div class="line"><a name="l00034"></a><span class="lineno">   34</span>&#160; </div><div class="line"><a name="l00035"></a><span class="lineno">   35</span>&#160;    code = fcntl(file_desc, F_SETFL, 0); <span class="comment">// blockierender Modus</span></div><div class="line"><a name="l00036"></a><span class="lineno">   36</span>&#160;    <span class="keywordflow">if</span> (code)</div><div class="line"><a name="l00037"></a><span class="lineno">   37</span>&#160;        <span class="keywordflow">throw</span> <a class="code" href="classUSARTException.html">USARTException</a>(<span class="stringliteral">&quot;Fehler beim Aktivieren des blockierenden Modus&#39;&quot;</span>);</div><div class="line"><a name="l00038"></a><span class="lineno">   38</span>&#160; </div><div class="line"><a name="l00039"></a><span class="lineno">   39</span>&#160;    <a class="code" href="classUSART.html#a756d268a8762c316f91ca3238972b0c1">clearOutputBuffer</a>();</div><div class="line"><a name="l00040"></a><span class="lineno">   40</span>&#160;    <a class="code" href="classUSART.html#a28a2b4c5ed66b2c3a81196f76884f156">clearInputBuffer</a>();</div><div class="line"><a name="l00041"></a><span class="lineno">   41</span>&#160;}</div><div class="line"><a name="l00042"></a><span class="lineno">   42</span>&#160; </div><div class="line"><a name="l00043"></a><span class="lineno"><a class="line" href="classUSART.html#af80d6291ac1d2df04cfa1d8d27458cc5">   43</a></span>&#160;<span class="keywordtype">void</span> <a class="code" href="classUSART.html#af80d6291ac1d2df04cfa1d8d27458cc5">USART::closeDevice</a>()</div><div class="line"><a name="l00044"></a><span class="lineno">   44</span>&#160;{</div><div class="line"><a name="l00045"></a><span class="lineno">   45</span>&#160;    <span class="keywordflow">if</span> (file_desc &gt; 0)</div><div class="line"><a name="l00046"></a><span class="lineno">   46</span>&#160;    {</div><div class="line"><a name="l00047"></a><span class="lineno">   47</span>&#160;        <span class="keywordtype">int</span> code = close(file_desc);</div><div class="line"><a name="l00048"></a><span class="lineno">   48</span>&#160;        <span class="keywordflow">if</span> (code)</div><div class="line"><a name="l00049"></a><span class="lineno">   49</span>&#160;            <span class="keywordflow">throw</span> <a class="code" href="classUSARTException.html">USARTException</a>(<span class="stringliteral">&quot;Fehler beim Schließen des Gerätes&quot;</span>);</div><div class="line"><a name="l00050"></a><span class="lineno">   50</span>&#160;        file_desc = -1;</div><div class="line"><a name="l00051"></a><span class="lineno">   51</span>&#160;    }</div><div class="line"><a name="l00052"></a><span class="lineno">   52</span>&#160;}</div><div class="line"><a name="l00053"></a><span class="lineno">   53</span>&#160; </div><div class="line"><a name="l00054"></a><span class="lineno"><a class="line" href="classUSART.html#a28a2b4c5ed66b2c3a81196f76884f156">   54</a></span>&#160;<span class="keywordtype">void</span> <a class="code" href="classUSART.html#a28a2b4c5ed66b2c3a81196f76884f156">USART::clearInputBuffer</a>()</div><div class="line"><a name="l00055"></a><span class="lineno">   55</span>&#160;{</div><div class="line"><a name="l00056"></a><span class="lineno">   56</span>&#160;    <span class="keywordtype">int</span> code = tcflush(file_desc, TCIFLUSH);</div><div class="line"><a name="l00057"></a><span class="lineno">   57</span>&#160;    <span class="keywordflow">if</span> (code)</div><div class="line"><a name="l00058"></a><span class="lineno">   58</span>&#160;        <span class="keywordflow">throw</span> <a class="code" href="classUSARTException.html">USARTException</a>(<span class="stringliteral">&quot;Fehler beim Leeren des Eingangspuffers&quot;</span>);</div><div class="line"><a name="l00059"></a><span class="lineno">   59</span>&#160;}</div><div class="line"><a name="l00060"></a><span class="lineno">   60</span>&#160; </div><div class="line"><a name="l00061"></a><span class="lineno"><a class="line" href="classUSART.html#a756d268a8762c316f91ca3238972b0c1">   61</a></span>&#160;<span class="keywordtype">void</span> <a class="code" href="classUSART.html#a756d268a8762c316f91ca3238972b0c1">USART::clearOutputBuffer</a>()</div><div class="line"><a name="l00062"></a><span class="lineno">   62</span>&#160;{</div><div class="line"><a name="l00063"></a><span class="lineno">   63</span>&#160;    <span class="keywordtype">int</span> code = tcflush(file_desc, TCOFLUSH);</div><div class="line"><a name="l00064"></a><span class="lineno">   64</span>&#160;    <span class="keywordflow">if</span> (code)</div><div class="line"><a name="l00065"></a><span class="lineno">   65</span>&#160;        <span class="keywordflow">throw</span> <a class="code" href="classUSARTException.html">USARTException</a>(<span class="stringliteral">&quot;Fehler beim Leeren des Ausgangspuffers&quot;</span>);</div><div class="line"><a name="l00066"></a><span class="lineno">   66</span>&#160;}</div><div class="line"><a name="l00067"></a><span class="lineno">   67</span>&#160; </div><div class="line"><a name="l00068"></a><span class="lineno"><a class="line" href="classUSART.html#adb6ff4d1cf1af79ca255c5a81780200d">   68</a></span>&#160;<span class="keywordtype">void</span> <a class="code" href="classUSART.html#adb6ff4d1cf1af79ca255c5a81780200d">USART::flushOutputBuffer</a>()</div><div class="line"><a name="l00069"></a><span class="lineno">   69</span>&#160;{</div><div class="line"><a name="l00070"></a><span class="lineno">   70</span>&#160;    <span class="keywordtype">int</span> code = tcdrain(file_desc);</div><div class="line"><a name="l00071"></a><span class="lineno">   71</span>&#160;    <span class="keywordflow">if</span> (code)</div><div class="line"><a name="l00072"></a><span class="lineno">   72</span>&#160;        <span class="keywordflow">throw</span> <a class="code" href="classUSARTException.html">USARTException</a>(<span class="stringliteral">&quot;Fehler beim Versenden des Ausgangspuffers&quot;</span>);</div><div class="line"><a name="l00073"></a><span class="lineno">   73</span>&#160;}</div><div class="line"><a name="l00074"></a><span class="lineno">   74</span>&#160; </div><div class="line"><a name="l00075"></a><span class="lineno"><a class="line" href="classUSART.html#a41b19dd58f307015b73e154048cd74ca">   75</a></span>&#160;<span class="keywordtype">void</span> <a class="code" href="classUSART.html#a41b19dd58f307015b73e154048cd74ca">USART::transmit</a>(uint8_t *buffer, uint16_t offset, uint8_t len)</div><div class="line"><a name="l00076"></a><span class="lineno">   76</span>&#160;{</div><div class="line"><a name="l00077"></a><span class="lineno">   77</span>&#160;    <span class="keywordtype">int</span> code = write(file_desc, buffer + offset, len);</div><div class="line"><a name="l00078"></a><span class="lineno">   78</span>&#160;    <span class="keywordflow">if</span> (code != len)</div><div class="line"><a name="l00079"></a><span class="lineno">   79</span>&#160;        <span class="keywordflow">throw</span> <a class="code" href="classUSARTException.html">USARTException</a>(</div><div class="line"><a name="l00080"></a><span class="lineno">   80</span>&#160;            std::string(__FUNCTION__) + <span class="stringliteral">&quot; failed: &quot;</span> + std::string(__FILE__) + <span class="stringliteral">&quot;#&quot;</span> + std::to_string(__LINE__) +</div><div class="line"><a name="l00081"></a><span class="lineno">   81</span>&#160;            <span class="stringliteral">&quot;, &quot;</span> + strerror(code) + <span class="stringliteral">&quot; (code &quot;</span> + std::to_string(code) + <span class="stringliteral">&quot; / &quot;</span> + std::to_string(len) + <span class="stringliteral">&quot;)&quot;</span>);</div><div class="line"><a name="l00082"></a><span class="lineno">   82</span>&#160;}</div><div class="line"><a name="l00083"></a><span class="lineno">   83</span>&#160; </div><div class="line"><a name="l00084"></a><span class="lineno"><a class="line" href="classUSART.html#a0fdc238203852f00bd750127602b2a6a">   84</a></span>&#160;<span class="keywordtype">void</span> <a class="code" href="classUSART.html#a0fdc238203852f00bd750127602b2a6a">USART::receive</a>(uint8_t *buffer, uint16_t offset, uint8_t len)</div><div class="line"><a name="l00085"></a><span class="lineno">   85</span>&#160;{</div><div class="line"><a name="l00086"></a><span class="lineno">   86</span>&#160;    <span class="keywordtype">int</span> bytes_avail, code;</div><div class="line"><a name="l00087"></a><span class="lineno">   87</span>&#160;    <span class="keyword">auto</span> start = std::chrono::steady_clock::now();</div><div class="line"><a name="l00088"></a><span class="lineno">   88</span>&#160;    <span class="keyword">auto</span> end = std::chrono::steady_clock::now();</div><div class="line"><a name="l00089"></a><span class="lineno">   89</span>&#160;    <span class="keywordflow">do</span></div><div class="line"><a name="l00090"></a><span class="lineno">   90</span>&#160;    {</div><div class="line"><a name="l00091"></a><span class="lineno">   91</span>&#160;        code = ioctl(file_desc, FIONREAD, &amp;bytes_avail);</div><div class="line"><a name="l00092"></a><span class="lineno">   92</span>&#160;        <span class="keywordflow">if</span> (code)</div><div class="line"><a name="l00093"></a><span class="lineno">   93</span>&#160;            <span class="keywordflow">throw</span> <a class="code" href="classUSARTException.html">USARTException</a>(</div><div class="line"><a name="l00094"></a><span class="lineno">   94</span>&#160;                std::string(__FUNCTION__) + <span class="stringliteral">&quot; failed: &quot;</span> + std::string(__FILE__) + <span class="stringliteral">&quot;#&quot;</span> + std::to_string(__LINE__) +</div><div class="line"><a name="l00095"></a><span class="lineno">   95</span>&#160;                <span class="stringliteral">&quot;, &quot;</span> + strerror(code) + <span class="stringliteral">&quot; (code &quot;</span> + std::to_string(code) + <span class="stringliteral">&quot;)&quot;</span>);</div><div class="line"><a name="l00096"></a><span class="lineno">   96</span>&#160; </div><div class="line"><a name="l00097"></a><span class="lineno">   97</span>&#160;        end = std::chrono::steady_clock::now();</div><div class="line"><a name="l00098"></a><span class="lineno">   98</span>&#160;        <span class="keywordtype">long</span> elapsed =</div><div class="line"><a name="l00099"></a><span class="lineno">   99</span>&#160;            std::chrono::duration_cast&lt;std::chrono::milliseconds&gt;(end - start).count() / 100; <span class="comment">// in Dezisekunden</span></div><div class="line"><a name="l00100"></a><span class="lineno">  100</span>&#160;        <span class="keywordflow">if</span> (elapsed &gt;= timeout)</div><div class="line"><a name="l00101"></a><span class="lineno">  101</span>&#160;            <span class="keywordflow">throw</span> <a class="code" href="classTimeoutException.html">TimeoutException</a>(</div><div class="line"><a name="l00102"></a><span class="lineno">  102</span>&#160;                std::string(__FUNCTION__) + <span class="stringliteral">&quot; failed: &quot;</span> + std::string(__FILE__) + <span class="stringliteral">&quot;#&quot;</span> + std::to_string(__LINE__) +</div><div class="line"><a name="l00103"></a><span class="lineno">  103</span>&#160;                <span class="stringliteral">&quot;, &quot;</span> + std::to_string(elapsed) + <span class="stringliteral">&quot; / &quot;</span> + std::to_string(timeout) + <span class="stringliteral">&quot; ds&quot;</span>);</div><div class="line"><a name="l00104"></a><span class="lineno">  104</span>&#160;    }</div><div class="line"><a name="l00105"></a><span class="lineno">  105</span>&#160;    <span class="keywordflow">while</span> (bytes_avail &lt; len);</div><div class="line"><a name="l00106"></a><span class="lineno">  106</span>&#160; </div><div class="line"><a name="l00107"></a><span class="lineno">  107</span>&#160;    code = read(file_desc, buffer + offset, len);</div><div class="line"><a name="l00108"></a><span class="lineno">  108</span>&#160;    <span class="keywordflow">if</span> (code != len)</div><div class="line"><a name="l00109"></a><span class="lineno">  109</span>&#160;        <span class="keywordflow">throw</span> <a class="code" href="classUSARTException.html">USARTException</a>(</div><div class="line"><a name="l00110"></a><span class="lineno">  110</span>&#160;            std::string(__FUNCTION__) + <span class="stringliteral">&quot; failed: &quot;</span> + std::string(__FILE__) + <span class="stringliteral">&quot;#&quot;</span> + std::to_string(__LINE__) +</div><div class="line"><a name="l00111"></a><span class="lineno">  111</span>&#160;            <span class="stringliteral">&quot;, &quot;</span> + strerror(code) + <span class="stringliteral">&quot; (code &quot;</span> + std::to_string(code) + <span class="stringliteral">&quot; / &quot;</span> + std::to_string(len) + <span class="stringliteral">&quot;)&quot;</span>);</div><div class="line"><a name="l00112"></a><span class="lineno">  112</span>&#160;}</div><div class="line"><a name="l00113"></a><span class="lineno">  113</span>&#160; </div><div class="line"><a name="l00114"></a><span class="lineno"><a class="line" href="classUSART.html#a038d00c0b3d8c0c13c3e7eae5dad7813">  114</a></span>&#160;<span class="keywordtype">void</span> <a class="code" href="classUSART.html#a038d00c0b3d8c0c13c3e7eae5dad7813">USART::drop</a>(uint8_t len)</div><div class="line"><a name="l00115"></a><span class="lineno">  115</span>&#160;{</div><div class="line"><a name="l00116"></a><span class="lineno">  116</span>&#160;    <span class="comment">// Kann bestimmt noch eleganter gelöst werden</span></div><div class="line"><a name="l00117"></a><span class="lineno">  117</span>&#160;    uint8_t dummy[len];</div><div class="line"><a name="l00118"></a><span class="lineno">  118</span>&#160;    <a class="code" href="classUSART.html#a0fdc238203852f00bd750127602b2a6a">receive</a>(&amp;dummy[0], 0, len);</div><div class="line"><a name="l00119"></a><span class="lineno">  119</span>&#160;}</div><div class="line"><a name="l00120"></a><span class="lineno">  120</span>&#160; </div><div class="line"><a name="l00121"></a><span class="lineno"><a class="line" href="classUSART.html#a4918672d8069df205378a528b1892db3">  121</a></span>&#160;uint32_t <a class="code" href="classUSART.html#a4918672d8069df205378a528b1892db3">USART::getBaudrate</a>()</div><div class="line"><a name="l00122"></a><span class="lineno">  122</span>&#160;{</div><div class="line"><a name="l00123"></a><span class="lineno">  123</span>&#160;    <span class="keywordflow">return</span> baudrate;</div><div class="line"><a name="l00124"></a><span class="lineno">  124</span>&#160;}</div><div class="line"><a name="l00125"></a><span class="lineno">  125</span>&#160; </div><div class="line"><a name="l00126"></a><span class="lineno"><a class="line" href="classUSART.html#a19cf777956a038878fc2d2b58c3d2b41">  126</a></span>&#160;uint8_t <a class="code" href="classUSART.html#a19cf777956a038878fc2d2b58c3d2b41">USART::getTimeout</a>()</div><div class="line"><a name="l00127"></a><span class="lineno">  127</span>&#160;{</div><div class="line"><a name="l00128"></a><span class="lineno">  128</span>&#160;    <span class="keywordflow">return</span> timeout;</div><div class="line"><a name="l00129"></a><span class="lineno">  129</span>&#160;}</div><div class="line"><a name="l00130"></a><span class="lineno">  130</span>&#160; </div><div class="line"><a name="l00131"></a><span class="lineno"><a class="line" href="classUSART.html#aac63918a8b97ae63ee607cfa39e6d88d">  131</a></span>&#160;<span class="keywordtype">void</span> <a class="code" href="classUSART.html#aac63918a8b97ae63ee607cfa39e6d88d">USART::setBaudrate</a>(uint32_t baudrate)</div><div class="line"><a name="l00132"></a><span class="lineno">  132</span>&#160;{</div><div class="line"><a name="l00133"></a><span class="lineno">  133</span>&#160;    this-&gt;baudrate = baudrate;</div><div class="line"><a name="l00134"></a><span class="lineno">  134</span>&#160;}</div><div class="line"><a name="l00135"></a><span class="lineno">  135</span>&#160; </div><div class="line"><a name="l00136"></a><span class="lineno"><a class="line" href="classUSART.html#ad7fe866cebe920784d2b17602824c7ff">  136</a></span>&#160;<span class="keywordtype">void</span> <a class="code" href="classUSART.html#ad7fe866cebe920784d2b17602824c7ff">USART::setTimeout</a>(uint8_t timeout)</div><div class="line"><a name="l00137"></a><span class="lineno">  137</span>&#160;{</div><div class="line"><a name="l00138"></a><span class="lineno">  138</span>&#160;    this-&gt;timeout = timeout;</div><div class="line"><a name="l00139"></a><span class="lineno">  139</span>&#160;}</div></div><!-- fragment --></div><!-- contents -->
-<div class="ttc" id="aclassUSART_html_a4918672d8069df205378a528b1892db3"><div class="ttname"><a href="classUSART.html#a4918672d8069df205378a528b1892db3">USART::getBaudrate</a></div><div class="ttdeci">uint32_t getBaudrate(void)</div><div class="ttdef"><b>Definition:</b> <a href="usart_8cpp_source.html#l00121">usart.cpp:121</a></div></div>
-<div class="ttc" id="aclassUSARTException_html"><div class="ttname"><a href="classUSARTException.html">USARTException</a></div><div class="ttdef"><b>Definition:</b> <a href="usartexception_8h_source.html#l00009">usartexception.h:9</a></div></div>
-<div class="ttc" id="aclassUSART_html_af80d6291ac1d2df04cfa1d8d27458cc5"><div class="ttname"><a href="classUSART.html#af80d6291ac1d2df04cfa1d8d27458cc5">USART::closeDevice</a></div><div class="ttdeci">void closeDevice(void)</div><div class="ttdef"><b>Definition:</b> <a href="usart_8cpp_source.html#l00043">usart.cpp:43</a></div></div>
-<div class="ttc" id="aclassUSART_html_a41b19dd58f307015b73e154048cd74ca"><div class="ttname"><a href="classUSART.html#a41b19dd58f307015b73e154048cd74ca">USART::transmit</a></div><div class="ttdeci">void transmit(uint8_t *buffer, uint16_t offset, uint8_t len)</div><div class="ttdef"><b>Definition:</b> <a href="usart_8cpp_source.html#l00075">usart.cpp:75</a></div></div>
-<div class="ttc" id="aclassUSART_html_a0fdc238203852f00bd750127602b2a6a"><div class="ttname"><a href="classUSART.html#a0fdc238203852f00bd750127602b2a6a">USART::receive</a></div><div class="ttdeci">void receive(uint8_t *buffer, uint16_t offset, uint8_t len)</div><div class="ttdef"><b>Definition:</b> <a href="usart_8cpp_source.html#l00084">usart.cpp:84</a></div></div>
-<div class="ttc" id="aclassUSART_html_a28a2b4c5ed66b2c3a81196f76884f156"><div class="ttname"><a href="classUSART.html#a28a2b4c5ed66b2c3a81196f76884f156">USART::clearInputBuffer</a></div><div class="ttdeci">void clearInputBuffer(void)</div><div class="ttdef"><b>Definition:</b> <a href="usart_8cpp_source.html#l00054">usart.cpp:54</a></div></div>
-<div class="ttc" id="aclassUSART_html_a19cf777956a038878fc2d2b58c3d2b41"><div class="ttname"><a href="classUSART.html#a19cf777956a038878fc2d2b58c3d2b41">USART::getTimeout</a></div><div class="ttdeci">uint8_t getTimeout(void)</div><div class="ttdef"><b>Definition:</b> <a href="usart_8cpp_source.html#l00126">usart.cpp:126</a></div></div>
-<div class="ttc" id="aclassUSART_html_a756d268a8762c316f91ca3238972b0c1"><div class="ttname"><a href="classUSART.html#a756d268a8762c316f91ca3238972b0c1">USART::clearOutputBuffer</a></div><div class="ttdeci">void clearOutputBuffer(void)</div><div class="ttdef"><b>Definition:</b> <a href="usart_8cpp_source.html#l00061">usart.cpp:61</a></div></div>
-<div class="ttc" id="aclassUSART_html_aac63918a8b97ae63ee607cfa39e6d88d"><div class="ttname"><a href="classUSART.html#aac63918a8b97ae63ee607cfa39e6d88d">USART::setBaudrate</a></div><div class="ttdeci">void setBaudrate(uint32_t baudrate)</div><div class="ttdef"><b>Definition:</b> <a href="usart_8cpp_source.html#l00131">usart.cpp:131</a></div></div>
-<div class="ttc" id="aclassUSART_html_a0c8eb1a939ca00921e22f6cbcc7bb749"><div class="ttname"><a href="classUSART.html#a0c8eb1a939ca00921e22f6cbcc7bb749">USART::~USART</a></div><div class="ttdeci">virtual ~USART(void)</div><div class="ttdef"><b>Definition:</b> <a href="usart_8cpp_source.html#l00004">usart.cpp:4</a></div></div>
-<div class="ttc" id="aclassUSART_html_a5f7e2abda2ec4a68a5fdb8ee2f8a940a"><div class="ttname"><a href="classUSART.html#a5f7e2abda2ec4a68a5fdb8ee2f8a940a">USART::openDevice</a></div><div class="ttdeci">void openDevice(std::string device)</div><div class="ttdef"><b>Definition:</b> <a href="usart_8cpp_source.html#l00009">usart.cpp:9</a></div></div>
-<div class="ttc" id="aclassUSART_html_a038d00c0b3d8c0c13c3e7eae5dad7813"><div class="ttname"><a href="classUSART.html#a038d00c0b3d8c0c13c3e7eae5dad7813">USART::drop</a></div><div class="ttdeci">void drop(uint8_t len)</div><div class="ttdef"><b>Definition:</b> <a href="usart_8cpp_source.html#l00114">usart.cpp:114</a></div></div>
-<div class="ttc" id="aclassUSART_html_ad7fe866cebe920784d2b17602824c7ff"><div class="ttname"><a href="classUSART.html#ad7fe866cebe920784d2b17602824c7ff">USART::setTimeout</a></div><div class="ttdeci">void setTimeout(uint8_t timeout)</div><div class="ttdef"><b>Definition:</b> <a href="usart_8cpp_source.html#l00136">usart.cpp:136</a></div></div>
-<div class="ttc" id="aclassUSART_html_adb6ff4d1cf1af79ca255c5a81780200d"><div class="ttname"><a href="classUSART.html#adb6ff4d1cf1af79ca255c5a81780200d">USART::flushOutputBuffer</a></div><div class="ttdeci">void flushOutputBuffer(void)</div><div class="ttdef"><b>Definition:</b> <a href="usart_8cpp_source.html#l00068">usart.cpp:68</a></div></div>
-<div class="ttc" id="aclassTimeoutException_html"><div class="ttname"><a href="classTimeoutException.html">TimeoutException</a></div><div class="ttdef"><b>Definition:</b> <a href="timeoutexception_8h_source.html#l00009">timeoutexception.h:9</a></div></div>
-<!-- start footer part -->
-<hr class="footer"/><address class="footer"><small>
-Generated on Fri Jun 7 2019 14:50:45 for B15F by &#160;<a href="http://www.doxygen.org/index.html">
-<img class="footer" src="doxygen.png" alt="doxygen"/>
-</a> 1.8.16
-</small></address>
-</body>
-</html>
diff --git a/docs/html/usart_8h_source.html b/docs/html/usart_8h_source.html
deleted file mode 100644
index 1f7e31f..0000000
--- a/docs/html/usart_8h_source.html
+++ /dev/null
@@ -1,96 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml">
-<head>
-<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
-<meta http-equiv="X-UA-Compatible" content="IE=9"/>
-<meta name="generator" content="Doxygen 1.8.16"/>
-<meta name="viewport" content="width=device-width, initial-scale=1"/>
-<title>B15F: drv/usart.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">B15F
-   </div>
-   <div id="projectbrief">Board 15 Famulus Edition</div>
-  </td>
- </tr>
- </tbody>
-</table>
-</div>
-<!-- end header part -->
-<!-- Generated by Doxygen 1.8.16 -->
-<script type="text/javascript">
-/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
-var searchBox = new SearchBox("searchBox", "search",false,'Search');
-/* @license-end */
-</script>
-<script type="text/javascript" src="menudata.js"></script>
-<script type="text/javascript" src="menu.js"></script>
-<script type="text/javascript">
-/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
-$(function() {
-  initMenu('',true,false,'search.php','Search');
-  $(document).ready(function() { init_search(); });
-});
-/* @license-end */</script>
-<div id="main-nav"></div>
-<!-- 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 id="nav-path" class="navpath">
-  <ul>
-<li class="navelem"><a class="el" href="dir_587c94d866dbb2f408f78cf41f9b2f8d.html">drv</a></li>  </ul>
-</div>
-</div><!-- top -->
-<div class="header">
-  <div class="headertitle">
-<div class="title">usart.h</div>  </div>
-</div><!--header-->
-<div class="contents">
-<div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno">    1</span>&#160;<span class="preprocessor">#ifndef USART_H</span></div><div class="line"><a name="l00002"></a><span class="lineno">    2</span>&#160;<span class="preprocessor">#define USART_H</span></div><div class="line"><a name="l00003"></a><span class="lineno">    3</span>&#160; </div><div class="line"><a name="l00004"></a><span class="lineno">    4</span>&#160;<span class="preprocessor">#include &lt;cstdint&gt;</span></div><div class="line"><a name="l00005"></a><span class="lineno">    5</span>&#160;<span class="preprocessor">#include &lt;chrono&gt;</span></div><div class="line"><a name="l00006"></a><span class="lineno">    6</span>&#160;<span class="preprocessor">#include &lt;fcntl.h&gt;</span></div><div class="line"><a name="l00007"></a><span class="lineno">    7</span>&#160;<span class="preprocessor">#include &lt;unistd.h&gt;</span></div><div class="line"><a name="l00008"></a><span class="lineno">    8</span>&#160;<span class="preprocessor">#include &lt;termios.h&gt;</span></div><div class="line"><a name="l00009"></a><span class="lineno">    9</span>&#160;<span class="preprocessor">#include &lt;sys/ioctl.h&gt;</span></div><div class="line"><a name="l00010"></a><span class="lineno">   10</span>&#160;<span class="preprocessor">#include &lt;string.h&gt;</span></div><div class="line"><a name="l00011"></a><span class="lineno">   11</span>&#160;<span class="preprocessor">#include &quot;usartexception.h&quot;</span></div><div class="line"><a name="l00012"></a><span class="lineno">   12</span>&#160;<span class="preprocessor">#include &quot;timeoutexception.h&quot;</span></div><div class="line"><a name="l00013"></a><span class="lineno">   13</span>&#160; </div><div class="line"><a name="l00016"></a><span class="lineno"><a class="line" href="classUSART.html">   16</a></span>&#160;<span class="keyword">class </span><a class="code" href="classUSART.html">USART</a></div><div class="line"><a name="l00017"></a><span class="lineno">   17</span>&#160;{</div><div class="line"><a name="l00018"></a><span class="lineno">   18</span>&#160;<span class="keyword">public</span>:</div><div class="line"><a name="l00019"></a><span class="lineno">   19</span>&#160; </div><div class="line"><a name="l00020"></a><span class="lineno">   20</span>&#160;<span class="comment">    /*************************************************</span></div><div class="line"><a name="l00021"></a><span class="lineno">   21</span>&#160;<span class="comment">     * Methoden für die Verwaltung der Schnittstelle *</span></div><div class="line"><a name="l00022"></a><span class="lineno">   22</span>&#160;<span class="comment">     *************************************************/</span></div><div class="line"><a name="l00023"></a><span class="lineno">   23</span>&#160; </div><div class="line"><a name="l00027"></a><span class="lineno">   27</span>&#160;    <span class="keyword">explicit</span> <a class="code" href="classUSART.html#a5daed20dc595c43d87c4c28bb08a7449">USART</a>() = <span class="keywordflow">default</span>;</div><div class="line"><a name="l00028"></a><span class="lineno">   28</span>&#160; </div><div class="line"><a name="l00032"></a><span class="lineno">   32</span>&#160;    <span class="keyword">virtual</span> <a class="code" href="classUSART.html#a0c8eb1a939ca00921e22f6cbcc7bb749">~USART</a>(<span class="keywordtype">void</span>);</div><div class="line"><a name="l00033"></a><span class="lineno">   33</span>&#160; </div><div class="line"><a name="l00039"></a><span class="lineno">   39</span>&#160;    <span class="keywordtype">void</span> <a class="code" href="classUSART.html#a5f7e2abda2ec4a68a5fdb8ee2f8a940a">openDevice</a>(std::string device);</div><div class="line"><a name="l00040"></a><span class="lineno">   40</span>&#160; </div><div class="line"><a name="l00045"></a><span class="lineno">   45</span>&#160;    <span class="keywordtype">void</span> <a class="code" href="classUSART.html#af80d6291ac1d2df04cfa1d8d27458cc5">closeDevice</a>(<span class="keywordtype">void</span>);</div><div class="line"><a name="l00046"></a><span class="lineno">   46</span>&#160; </div><div class="line"><a name="l00051"></a><span class="lineno">   51</span>&#160;    <span class="keywordtype">void</span> <a class="code" href="classUSART.html#a28a2b4c5ed66b2c3a81196f76884f156">clearInputBuffer</a>(<span class="keywordtype">void</span>);</div><div class="line"><a name="l00052"></a><span class="lineno">   52</span>&#160; </div><div class="line"><a name="l00057"></a><span class="lineno">   57</span>&#160;    <span class="keywordtype">void</span> <a class="code" href="classUSART.html#a756d268a8762c316f91ca3238972b0c1">clearOutputBuffer</a>(<span class="keywordtype">void</span>);</div><div class="line"><a name="l00058"></a><span class="lineno">   58</span>&#160; </div><div class="line"><a name="l00063"></a><span class="lineno">   63</span>&#160;    <span class="keywordtype">void</span> <a class="code" href="classUSART.html#adb6ff4d1cf1af79ca255c5a81780200d">flushOutputBuffer</a>(<span class="keywordtype">void</span>);</div><div class="line"><a name="l00064"></a><span class="lineno">   64</span>&#160; </div><div class="line"><a name="l00065"></a><span class="lineno">   65</span>&#160;<span class="comment">    /*************************************************/</span></div><div class="line"><a name="l00066"></a><span class="lineno">   66</span>&#160; </div><div class="line"><a name="l00067"></a><span class="lineno">   67</span>&#160; </div><div class="line"><a name="l00068"></a><span class="lineno">   68</span>&#160; </div><div class="line"><a name="l00069"></a><span class="lineno">   69</span>&#160;<span class="comment">    /*************************************</span></div><div class="line"><a name="l00070"></a><span class="lineno">   70</span>&#160;<span class="comment">     * Methoden für die Datenübertragung *</span></div><div class="line"><a name="l00071"></a><span class="lineno">   71</span>&#160;<span class="comment">     *************************************/</span></div><div class="line"><a name="l00072"></a><span class="lineno">   72</span>&#160; </div><div class="line"><a name="l00080"></a><span class="lineno">   80</span>&#160;    <span class="keywordtype">void</span> <a class="code" href="classUSART.html#a41b19dd58f307015b73e154048cd74ca">transmit</a>(uint8_t *buffer, uint16_t offset, uint8_t len);</div><div class="line"><a name="l00081"></a><span class="lineno">   81</span>&#160; </div><div class="line"><a name="l00089"></a><span class="lineno">   89</span>&#160;    <span class="keywordtype">void</span> <a class="code" href="classUSART.html#a0fdc238203852f00bd750127602b2a6a">receive</a>(uint8_t *buffer, uint16_t offset, uint8_t len);</div><div class="line"><a name="l00090"></a><span class="lineno">   90</span>&#160; </div><div class="line"><a name="l00096"></a><span class="lineno">   96</span>&#160;    <span class="keywordtype">void</span> <a class="code" href="classUSART.html#a038d00c0b3d8c0c13c3e7eae5dad7813">drop</a>(uint8_t len);</div><div class="line"><a name="l00097"></a><span class="lineno">   97</span>&#160; </div><div class="line"><a name="l00098"></a><span class="lineno">   98</span>&#160;<span class="comment">    /*************************************/</span></div><div class="line"><a name="l00099"></a><span class="lineno">   99</span>&#160; </div><div class="line"><a name="l00100"></a><span class="lineno">  100</span>&#160; </div><div class="line"><a name="l00101"></a><span class="lineno">  101</span>&#160; </div><div class="line"><a name="l00102"></a><span class="lineno">  102</span>&#160;<span class="comment">    /***************************************</span></div><div class="line"><a name="l00103"></a><span class="lineno">  103</span>&#160;<span class="comment">     * Methoden für einstellbare Parameter *</span></div><div class="line"><a name="l00104"></a><span class="lineno">  104</span>&#160;<span class="comment">     ***************************************/</span></div><div class="line"><a name="l00105"></a><span class="lineno">  105</span>&#160; </div><div class="line"><a name="l00110"></a><span class="lineno">  110</span>&#160;    uint32_t <a class="code" href="classUSART.html#a4918672d8069df205378a528b1892db3">getBaudrate</a>(<span class="keywordtype">void</span>);</div><div class="line"><a name="l00111"></a><span class="lineno">  111</span>&#160; </div><div class="line"><a name="l00116"></a><span class="lineno">  116</span>&#160;    uint8_t <a class="code" href="classUSART.html#a19cf777956a038878fc2d2b58c3d2b41">getTimeout</a>(<span class="keywordtype">void</span>);</div><div class="line"><a name="l00117"></a><span class="lineno">  117</span>&#160; </div><div class="line"><a name="l00122"></a><span class="lineno">  122</span>&#160;    <span class="keywordtype">void</span> <a class="code" href="classUSART.html#aac63918a8b97ae63ee607cfa39e6d88d">setBaudrate</a>(uint32_t baudrate);</div><div class="line"><a name="l00123"></a><span class="lineno">  123</span>&#160; </div><div class="line"><a name="l00128"></a><span class="lineno">  128</span>&#160;    <span class="keywordtype">void</span> <a class="code" href="classUSART.html#ad7fe866cebe920784d2b17602824c7ff">setTimeout</a>(uint8_t timeout);</div><div class="line"><a name="l00129"></a><span class="lineno">  129</span>&#160; </div><div class="line"><a name="l00130"></a><span class="lineno">  130</span>&#160;<span class="comment">    /***************************************/</span></div><div class="line"><a name="l00131"></a><span class="lineno">  131</span>&#160; </div><div class="line"><a name="l00132"></a><span class="lineno">  132</span>&#160;<span class="keyword">private</span>:</div><div class="line"><a name="l00133"></a><span class="lineno">  133</span>&#160; </div><div class="line"><a name="l00134"></a><span class="lineno">  134</span>&#160;    <span class="keywordtype">int</span> file_desc = -1; </div><div class="line"><a name="l00135"></a><span class="lineno">  135</span>&#160;    uint32_t baudrate = 9600; </div><div class="line"><a name="l00136"></a><span class="lineno">  136</span>&#160;    uint8_t timeout = 10; </div><div class="line"><a name="l00137"></a><span class="lineno">  137</span>&#160;};</div><div class="line"><a name="l00138"></a><span class="lineno">  138</span>&#160; </div><div class="line"><a name="l00139"></a><span class="lineno">  139</span>&#160;<span class="preprocessor">#endif // USART_H</span></div></div><!-- fragment --></div><!-- contents -->
-<div class="ttc" id="aclassUSART_html_a4918672d8069df205378a528b1892db3"><div class="ttname"><a href="classUSART.html#a4918672d8069df205378a528b1892db3">USART::getBaudrate</a></div><div class="ttdeci">uint32_t getBaudrate(void)</div><div class="ttdef"><b>Definition:</b> <a href="usart_8cpp_source.html#l00121">usart.cpp:121</a></div></div>
-<div class="ttc" id="aclassUSART_html_a5daed20dc595c43d87c4c28bb08a7449"><div class="ttname"><a href="classUSART.html#a5daed20dc595c43d87c4c28bb08a7449">USART::USART</a></div><div class="ttdeci">USART()=default</div></div>
-<div class="ttc" id="aclassUSART_html_af80d6291ac1d2df04cfa1d8d27458cc5"><div class="ttname"><a href="classUSART.html#af80d6291ac1d2df04cfa1d8d27458cc5">USART::closeDevice</a></div><div class="ttdeci">void closeDevice(void)</div><div class="ttdef"><b>Definition:</b> <a href="usart_8cpp_source.html#l00043">usart.cpp:43</a></div></div>
-<div class="ttc" id="aclassUSART_html_a41b19dd58f307015b73e154048cd74ca"><div class="ttname"><a href="classUSART.html#a41b19dd58f307015b73e154048cd74ca">USART::transmit</a></div><div class="ttdeci">void transmit(uint8_t *buffer, uint16_t offset, uint8_t len)</div><div class="ttdef"><b>Definition:</b> <a href="usart_8cpp_source.html#l00075">usart.cpp:75</a></div></div>
-<div class="ttc" id="aclassUSART_html_a0fdc238203852f00bd750127602b2a6a"><div class="ttname"><a href="classUSART.html#a0fdc238203852f00bd750127602b2a6a">USART::receive</a></div><div class="ttdeci">void receive(uint8_t *buffer, uint16_t offset, uint8_t len)</div><div class="ttdef"><b>Definition:</b> <a href="usart_8cpp_source.html#l00084">usart.cpp:84</a></div></div>
-<div class="ttc" id="aclassUSART_html_a28a2b4c5ed66b2c3a81196f76884f156"><div class="ttname"><a href="classUSART.html#a28a2b4c5ed66b2c3a81196f76884f156">USART::clearInputBuffer</a></div><div class="ttdeci">void clearInputBuffer(void)</div><div class="ttdef"><b>Definition:</b> <a href="usart_8cpp_source.html#l00054">usart.cpp:54</a></div></div>
-<div class="ttc" id="aclassUSART_html_a19cf777956a038878fc2d2b58c3d2b41"><div class="ttname"><a href="classUSART.html#a19cf777956a038878fc2d2b58c3d2b41">USART::getTimeout</a></div><div class="ttdeci">uint8_t getTimeout(void)</div><div class="ttdef"><b>Definition:</b> <a href="usart_8cpp_source.html#l00126">usart.cpp:126</a></div></div>
-<div class="ttc" id="aclassUSART_html"><div class="ttname"><a href="classUSART.html">USART</a></div><div class="ttdef"><b>Definition:</b> <a href="usart_8h_source.html#l00016">usart.h:16</a></div></div>
-<div class="ttc" id="aclassUSART_html_a756d268a8762c316f91ca3238972b0c1"><div class="ttname"><a href="classUSART.html#a756d268a8762c316f91ca3238972b0c1">USART::clearOutputBuffer</a></div><div class="ttdeci">void clearOutputBuffer(void)</div><div class="ttdef"><b>Definition:</b> <a href="usart_8cpp_source.html#l00061">usart.cpp:61</a></div></div>
-<div class="ttc" id="aclassUSART_html_aac63918a8b97ae63ee607cfa39e6d88d"><div class="ttname"><a href="classUSART.html#aac63918a8b97ae63ee607cfa39e6d88d">USART::setBaudrate</a></div><div class="ttdeci">void setBaudrate(uint32_t baudrate)</div><div class="ttdef"><b>Definition:</b> <a href="usart_8cpp_source.html#l00131">usart.cpp:131</a></div></div>
-<div class="ttc" id="aclassUSART_html_a0c8eb1a939ca00921e22f6cbcc7bb749"><div class="ttname"><a href="classUSART.html#a0c8eb1a939ca00921e22f6cbcc7bb749">USART::~USART</a></div><div class="ttdeci">virtual ~USART(void)</div><div class="ttdef"><b>Definition:</b> <a href="usart_8cpp_source.html#l00004">usart.cpp:4</a></div></div>
-<div class="ttc" id="aclassUSART_html_a5f7e2abda2ec4a68a5fdb8ee2f8a940a"><div class="ttname"><a href="classUSART.html#a5f7e2abda2ec4a68a5fdb8ee2f8a940a">USART::openDevice</a></div><div class="ttdeci">void openDevice(std::string device)</div><div class="ttdef"><b>Definition:</b> <a href="usart_8cpp_source.html#l00009">usart.cpp:9</a></div></div>
-<div class="ttc" id="aclassUSART_html_a038d00c0b3d8c0c13c3e7eae5dad7813"><div class="ttname"><a href="classUSART.html#a038d00c0b3d8c0c13c3e7eae5dad7813">USART::drop</a></div><div class="ttdeci">void drop(uint8_t len)</div><div class="ttdef"><b>Definition:</b> <a href="usart_8cpp_source.html#l00114">usart.cpp:114</a></div></div>
-<div class="ttc" id="aclassUSART_html_ad7fe866cebe920784d2b17602824c7ff"><div class="ttname"><a href="classUSART.html#ad7fe866cebe920784d2b17602824c7ff">USART::setTimeout</a></div><div class="ttdeci">void setTimeout(uint8_t timeout)</div><div class="ttdef"><b>Definition:</b> <a href="usart_8cpp_source.html#l00136">usart.cpp:136</a></div></div>
-<div class="ttc" id="aclassUSART_html_adb6ff4d1cf1af79ca255c5a81780200d"><div class="ttname"><a href="classUSART.html#adb6ff4d1cf1af79ca255c5a81780200d">USART::flushOutputBuffer</a></div><div class="ttdeci">void flushOutputBuffer(void)</div><div class="ttdef"><b>Definition:</b> <a href="usart_8cpp_source.html#l00068">usart.cpp:68</a></div></div>
-<!-- start footer part -->
-<hr class="footer"/><address class="footer"><small>
-Generated on Fri Jun 7 2019 14:50:45 for B15F by &#160;<a href="http://www.doxygen.org/index.html">
-<img class="footer" src="doxygen.png" alt="doxygen"/>
-</a> 1.8.16
-</small></address>
-</body>
-</html>
diff --git a/docs/html/usartexception_8h_source.html b/docs/html/usartexception_8h_source.html
deleted file mode 100644
index 7efabc8..0000000
--- a/docs/html/usartexception_8h_source.html
+++ /dev/null
@@ -1,87 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml">
-<head>
-<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
-<meta http-equiv="X-UA-Compatible" content="IE=9"/>
-<meta name="generator" content="Doxygen 1.8.16"/>
-<meta name="viewport" content="width=device-width, initial-scale=1"/>
-<title>B15F: drv/usartexception.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">B15F
-   </div>
-   <div id="projectbrief">Board 15 Famulus Edition</div>
-  </td>
- </tr>
- </tbody>
-</table>
-</div>
-<!-- end header part -->
-<!-- Generated by Doxygen 1.8.16 -->
-<script type="text/javascript">
-/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
-var searchBox = new SearchBox("searchBox", "search",false,'Search');
-/* @license-end */
-</script>
-<script type="text/javascript" src="menudata.js"></script>
-<script type="text/javascript" src="menu.js"></script>
-<script type="text/javascript">
-/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
-$(function() {
-  initMenu('',true,false,'search.php','Search');
-  $(document).ready(function() { init_search(); });
-});
-/* @license-end */</script>
-<div id="main-nav"></div>
-<!-- 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 id="nav-path" class="navpath">
-  <ul>
-<li class="navelem"><a class="el" href="dir_587c94d866dbb2f408f78cf41f9b2f8d.html">drv</a></li>  </ul>
-</div>
-</div><!-- top -->
-<div class="header">
-  <div class="headertitle">
-<div class="title">usartexception.h</div>  </div>
-</div><!--header-->
-<div class="contents">
-<div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno">    1</span>&#160;<span class="preprocessor">#ifndef USARTEXCEPTION_H</span></div><div class="line"><a name="l00002"></a><span class="lineno">    2</span>&#160;<span class="preprocessor">#define USARTEXCEPTION_H</span></div><div class="line"><a name="l00003"></a><span class="lineno">    3</span>&#160; </div><div class="line"><a name="l00004"></a><span class="lineno">    4</span>&#160;<span class="preprocessor">#include &lt;exception&gt;</span></div><div class="line"><a name="l00005"></a><span class="lineno">    5</span>&#160;<span class="preprocessor">#include &lt;string&gt;</span></div><div class="line"><a name="l00006"></a><span class="lineno">    6</span>&#160; </div><div class="line"><a name="l00009"></a><span class="lineno"><a class="line" href="classUSARTException.html">    9</a></span>&#160;<span class="keyword">class </span><a class="code" href="classUSARTException.html">USARTException</a>: <span class="keyword">public</span> std::exception</div><div class="line"><a name="l00010"></a><span class="lineno">   10</span>&#160;{</div><div class="line"><a name="l00011"></a><span class="lineno">   11</span>&#160;<span class="keyword">public</span>:</div><div class="line"><a name="l00016"></a><span class="lineno"><a class="line" href="classUSARTException.html#a3c359db129825703b91392d5128cf93d">   16</a></span>&#160;    <span class="keyword">explicit</span> <a class="code" href="classUSARTException.html#a3c359db129825703b91392d5128cf93d">USARTException</a>(<span class="keyword">const</span> <span class="keywordtype">char</span>* message) : <a class="code" href="classUSARTException.html#a14c80df95f216d221aa97cffbcd8dd79">msg</a>(message)</div><div class="line"><a name="l00017"></a><span class="lineno">   17</span>&#160;    {</div><div class="line"><a name="l00018"></a><span class="lineno">   18</span>&#160;    }</div><div class="line"><a name="l00019"></a><span class="lineno">   19</span>&#160; </div><div class="line"><a name="l00024"></a><span class="lineno"><a class="line" href="classUSARTException.html#a643c0a8b7f0d81e2f1693a75b378e6c2">   24</a></span>&#160;    <span class="keyword">explicit</span> <a class="code" href="classUSARTException.html#a643c0a8b7f0d81e2f1693a75b378e6c2">USARTException</a>(<span class="keyword">const</span> std::string&amp; message) : <a class="code" href="classUSARTException.html#a14c80df95f216d221aa97cffbcd8dd79">msg</a>(message)</div><div class="line"><a name="l00025"></a><span class="lineno">   25</span>&#160;    {</div><div class="line"><a name="l00026"></a><span class="lineno">   26</span>&#160;    }</div><div class="line"><a name="l00027"></a><span class="lineno">   27</span>&#160; </div><div class="line"><a name="l00031"></a><span class="lineno">   31</span>&#160;    <span class="keyword">virtual</span> <a class="code" href="classUSARTException.html#a0e008b3cb4974859e6bc8c8f8eb480be">~USARTException</a>() = <span class="keywordflow">default</span>;</div><div class="line"><a name="l00032"></a><span class="lineno">   32</span>&#160; </div><div class="line"><a name="l00037"></a><span class="lineno"><a class="line" href="classUSARTException.html#a2af5e3c00cd0585c7427c2e0420a8f15">   37</a></span>&#160;    <span class="keyword">virtual</span> <span class="keyword">const</span> <span class="keywordtype">char</span>* <a class="code" href="classUSARTException.html#a2af5e3c00cd0585c7427c2e0420a8f15">what</a>() <span class="keyword">const</span> throw ()</div><div class="line"><a name="l00038"></a><span class="lineno">   38</span>&#160;    {</div><div class="line"><a name="l00039"></a><span class="lineno">   39</span>&#160;        <span class="keywordflow">return</span> <a class="code" href="classUSARTException.html#a14c80df95f216d221aa97cffbcd8dd79">msg</a>.c_str();</div><div class="line"><a name="l00040"></a><span class="lineno">   40</span>&#160;    }</div><div class="line"><a name="l00041"></a><span class="lineno">   41</span>&#160; </div><div class="line"><a name="l00042"></a><span class="lineno">   42</span>&#160;<span class="keyword">protected</span>:</div><div class="line"><a name="l00043"></a><span class="lineno"><a class="line" href="classUSARTException.html#a14c80df95f216d221aa97cffbcd8dd79">   43</a></span>&#160;    std::string <a class="code" href="classUSARTException.html#a14c80df95f216d221aa97cffbcd8dd79">msg</a>; </div><div class="line"><a name="l00044"></a><span class="lineno">   44</span>&#160;};</div><div class="line"><a name="l00045"></a><span class="lineno">   45</span>&#160; </div><div class="line"><a name="l00046"></a><span class="lineno">   46</span>&#160;<span class="preprocessor">#endif // USARTEXCEPTION_H</span></div></div><!-- fragment --></div><!-- contents -->
-<div class="ttc" id="aclassUSARTException_html_a3c359db129825703b91392d5128cf93d"><div class="ttname"><a href="classUSARTException.html#a3c359db129825703b91392d5128cf93d">USARTException::USARTException</a></div><div class="ttdeci">USARTException(const char *message)</div><div class="ttdef"><b>Definition:</b> <a href="usartexception_8h_source.html#l00016">usartexception.h:16</a></div></div>
-<div class="ttc" id="aclassUSARTException_html"><div class="ttname"><a href="classUSARTException.html">USARTException</a></div><div class="ttdef"><b>Definition:</b> <a href="usartexception_8h_source.html#l00009">usartexception.h:9</a></div></div>
-<div class="ttc" id="aclassUSARTException_html_a2af5e3c00cd0585c7427c2e0420a8f15"><div class="ttname"><a href="classUSARTException.html#a2af5e3c00cd0585c7427c2e0420a8f15">USARTException::what</a></div><div class="ttdeci">virtual const char * what() const</div><div class="ttdef"><b>Definition:</b> <a href="usartexception_8h_source.html#l00037">usartexception.h:37</a></div></div>
-<div class="ttc" id="aclassUSARTException_html_a14c80df95f216d221aa97cffbcd8dd79"><div class="ttname"><a href="classUSARTException.html#a14c80df95f216d221aa97cffbcd8dd79">USARTException::msg</a></div><div class="ttdeci">std::string msg</div><div class="ttdoc">failure description</div><div class="ttdef"><b>Definition:</b> <a href="usartexception_8h_source.html#l00043">usartexception.h:43</a></div></div>
-<div class="ttc" id="aclassUSARTException_html_a643c0a8b7f0d81e2f1693a75b378e6c2"><div class="ttname"><a href="classUSARTException.html#a643c0a8b7f0d81e2f1693a75b378e6c2">USARTException::USARTException</a></div><div class="ttdeci">USARTException(const std::string &amp;message)</div><div class="ttdef"><b>Definition:</b> <a href="usartexception_8h_source.html#l00024">usartexception.h:24</a></div></div>
-<div class="ttc" id="aclassUSARTException_html_a0e008b3cb4974859e6bc8c8f8eb480be"><div class="ttname"><a href="classUSARTException.html#a0e008b3cb4974859e6bc8c8f8eb480be">USARTException::~USARTException</a></div><div class="ttdeci">virtual ~USARTException()=default</div></div>
-<!-- start footer part -->
-<hr class="footer"/><address class="footer"><small>
-Generated on Fri Jun 7 2019 14:50:45 for B15F by &#160;<a href="http://www.doxygen.org/index.html">
-<img class="footer" src="doxygen.png" alt="doxygen"/>
-</a> 1.8.16
-</small></address>
-</body>
-</html>
diff --git a/docs/html/view_8cpp_source.html b/docs/html/view_8cpp_source.html
deleted file mode 100644
index f267e7e..0000000
--- a/docs/html/view_8cpp_source.html
+++ /dev/null
@@ -1,82 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml">
-<head>
-<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
-<meta http-equiv="X-UA-Compatible" content="IE=9"/>
-<meta name="generator" content="Doxygen 1.8.16"/>
-<meta name="viewport" content="width=device-width, initial-scale=1"/>
-<title>B15F: ui/view.cpp 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">B15F
-   </div>
-   <div id="projectbrief">Board 15 Famulus Edition</div>
-  </td>
- </tr>
- </tbody>
-</table>
-</div>
-<!-- end header part -->
-<!-- Generated by Doxygen 1.8.16 -->
-<script type="text/javascript">
-/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
-var searchBox = new SearchBox("searchBox", "search",false,'Search');
-/* @license-end */
-</script>
-<script type="text/javascript" src="menudata.js"></script>
-<script type="text/javascript" src="menu.js"></script>
-<script type="text/javascript">
-/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
-$(function() {
-  initMenu('',true,false,'search.php','Search');
-  $(document).ready(function() { init_search(); });
-});
-/* @license-end */</script>
-<div id="main-nav"></div>
-<!-- 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 id="nav-path" class="navpath">
-  <ul>
-<li class="navelem"><a class="el" href="dir_1788f8309b1a812dcb800a185471cf6c.html">ui</a></li>  </ul>
-</div>
-</div><!-- top -->
-<div class="header">
-  <div class="headertitle">
-<div class="title">view.cpp</div>  </div>
-</div><!--header-->
-<div class="contents">
-<div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno">    1</span>&#160;<span class="preprocessor">#include &quot;view.h&quot;</span></div><div class="line"><a name="l00002"></a><span class="lineno">    2</span>&#160; </div><div class="line"><a name="l00003"></a><span class="lineno">    3</span>&#160;WINDOW* View::win = <span class="keyword">nullptr</span>;</div><div class="line"><a name="l00004"></a><span class="lineno">    4</span>&#160; </div><div class="line"><a name="l00005"></a><span class="lineno">    5</span>&#160;View::View()</div><div class="line"><a name="l00006"></a><span class="lineno">    6</span>&#160;{</div><div class="line"><a name="l00007"></a><span class="lineno">    7</span>&#160;    <span class="keywordflow">if</span>(!win)</div><div class="line"><a name="l00008"></a><span class="lineno">    8</span>&#160;    {</div><div class="line"><a name="l00009"></a><span class="lineno">    9</span>&#160;        <a class="code" href="classB15F.html#a3f09a418f9e3be5d1d750e4515c96f1e">B15F::abort</a>(<span class="stringliteral">&quot;View::win not initialized, missing context&quot;</span>);</div><div class="line"><a name="l00010"></a><span class="lineno">   10</span>&#160;    }</div><div class="line"><a name="l00011"></a><span class="lineno">   11</span>&#160;    getmaxyx(win, height, width); <span class="comment">// init width and height</span></div><div class="line"><a name="l00012"></a><span class="lineno">   12</span>&#160;    keypad(win, TRUE);</div><div class="line"><a name="l00013"></a><span class="lineno">   13</span>&#160;}</div><div class="line"><a name="l00014"></a><span class="lineno">   14</span>&#160; </div><div class="line"><a name="l00015"></a><span class="lineno">   15</span>&#160;View::~View()</div><div class="line"><a name="l00016"></a><span class="lineno">   16</span>&#160;{</div><div class="line"><a name="l00017"></a><span class="lineno">   17</span>&#160;}</div><div class="line"><a name="l00018"></a><span class="lineno">   18</span>&#160; </div><div class="line"><a name="l00019"></a><span class="lineno">   19</span>&#160;<span class="keywordtype">void</span> View::setWinContext(WINDOW* win)</div><div class="line"><a name="l00020"></a><span class="lineno">   20</span>&#160;{</div><div class="line"><a name="l00021"></a><span class="lineno">   21</span>&#160;    View::win = win;</div><div class="line"><a name="l00022"></a><span class="lineno">   22</span>&#160;}</div><div class="line"><a name="l00023"></a><span class="lineno">   23</span>&#160; </div><div class="line"><a name="l00024"></a><span class="lineno">   24</span>&#160;WINDOW* View::getWinContext()</div><div class="line"><a name="l00025"></a><span class="lineno">   25</span>&#160;{</div><div class="line"><a name="l00026"></a><span class="lineno">   26</span>&#160;    <span class="keywordflow">return</span> win;</div><div class="line"><a name="l00027"></a><span class="lineno">   27</span>&#160;}</div><div class="line"><a name="l00028"></a><span class="lineno">   28</span>&#160; </div><div class="line"><a name="l00029"></a><span class="lineno">   29</span>&#160;<span class="comment">// from: https://stackoverflow.com/a/37454181</span></div><div class="line"><a name="l00030"></a><span class="lineno">   30</span>&#160;std::vector&lt;std::string&gt; View::str_split(<span class="keyword">const</span> std::string&amp; str, <span class="keyword">const</span> std::string delim)</div><div class="line"><a name="l00031"></a><span class="lineno">   31</span>&#160;{</div><div class="line"><a name="l00032"></a><span class="lineno">   32</span>&#160;    std::vector&lt;std::string&gt; tokens;</div><div class="line"><a name="l00033"></a><span class="lineno">   33</span>&#160;    <span class="keywordtype">size_t</span> prev = 0, pos = 0;</div><div class="line"><a name="l00034"></a><span class="lineno">   34</span>&#160;    <span class="keywordflow">do</span></div><div class="line"><a name="l00035"></a><span class="lineno">   35</span>&#160;    {</div><div class="line"><a name="l00036"></a><span class="lineno">   36</span>&#160;        pos = str.find(delim, prev);</div><div class="line"><a name="l00037"></a><span class="lineno">   37</span>&#160;        <span class="keywordflow">if</span> (pos == std::string::npos) pos = str.length();</div><div class="line"><a name="l00038"></a><span class="lineno">   38</span>&#160;        std::string token = str.substr(prev, pos-prev);</div><div class="line"><a name="l00039"></a><span class="lineno">   39</span>&#160;        <span class="keywordflow">if</span> (!token.empty()) tokens.push_back(token);</div><div class="line"><a name="l00040"></a><span class="lineno">   40</span>&#160;        prev = pos + delim.length();</div><div class="line"><a name="l00041"></a><span class="lineno">   41</span>&#160;    }</div><div class="line"><a name="l00042"></a><span class="lineno">   42</span>&#160;    <span class="keywordflow">while</span> (pos &lt; str.length() &amp;&amp; prev &lt; str.length());</div><div class="line"><a name="l00043"></a><span class="lineno">   43</span>&#160;    <span class="keywordflow">return</span> tokens;</div><div class="line"><a name="l00044"></a><span class="lineno">   44</span>&#160;}</div><div class="line"><a name="l00045"></a><span class="lineno">   45</span>&#160; </div><div class="line"><a name="l00046"></a><span class="lineno">   46</span>&#160; </div><div class="line"><a name="l00047"></a><span class="lineno">   47</span>&#160;<span class="keywordtype">void</span> View::setTitle(std::string title)</div><div class="line"><a name="l00048"></a><span class="lineno">   48</span>&#160;{</div><div class="line"><a name="l00049"></a><span class="lineno">   49</span>&#160;    this-&gt;title = title;</div><div class="line"><a name="l00050"></a><span class="lineno">   50</span>&#160;}</div><div class="line"><a name="l00051"></a><span class="lineno">   51</span>&#160; </div><div class="line"><a name="l00052"></a><span class="lineno">   52</span>&#160;<span class="keywordtype">void</span> View::repaint()</div><div class="line"><a name="l00053"></a><span class="lineno">   53</span>&#160;{</div><div class="line"><a name="l00054"></a><span class="lineno">   54</span>&#160;    <span class="comment">// get screen size</span></div><div class="line"><a name="l00055"></a><span class="lineno">   55</span>&#160;    <span class="keyword">struct </span>winsize size;</div><div class="line"><a name="l00056"></a><span class="lineno">   56</span>&#160;    <span class="keywordflow">if</span> (ioctl(0, TIOCGWINSZ, (<span class="keywordtype">char</span> *) &amp;size) &lt; 0)</div><div class="line"><a name="l00057"></a><span class="lineno">   57</span>&#160;        <span class="keywordflow">throw</span> std::runtime_error(<span class="stringliteral">&quot;TIOCGWINSZ error&quot;</span>);</div><div class="line"><a name="l00058"></a><span class="lineno">   58</span>&#160; </div><div class="line"><a name="l00059"></a><span class="lineno">   59</span>&#160; </div><div class="line"><a name="l00060"></a><span class="lineno">   60</span>&#160;    start_x = floor((size.ws_col - width) / 2.);</div><div class="line"><a name="l00061"></a><span class="lineno">   61</span>&#160;    start_y = floor((size.ws_row - height) / 2.);</div><div class="line"><a name="l00062"></a><span class="lineno">   62</span>&#160; </div><div class="line"><a name="l00063"></a><span class="lineno">   63</span>&#160;    curs_set(0); <span class="comment">// hide cursor</span></div><div class="line"><a name="l00064"></a><span class="lineno">   64</span>&#160;    mvwin(win, start_y, start_x);</div><div class="line"><a name="l00065"></a><span class="lineno">   65</span>&#160;    clear();</div><div class="line"><a name="l00066"></a><span class="lineno">   66</span>&#160;    wclear(win);</div><div class="line"><a name="l00067"></a><span class="lineno">   67</span>&#160; </div><div class="line"><a name="l00068"></a><span class="lineno">   68</span>&#160;    <span class="comment">// generic draw</span></div><div class="line"><a name="l00069"></a><span class="lineno">   69</span>&#160;    box(win, 0, 0);</div><div class="line"><a name="l00070"></a><span class="lineno">   70</span>&#160;    <span class="keywordtype">int</span> offset_x = (width - title.length()) / 2;</div><div class="line"><a name="l00071"></a><span class="lineno">   71</span>&#160;    mvwprintw(win, 1, offset_x, <span class="stringliteral">&quot;%s&quot;</span>, title.c_str());</div><div class="line"><a name="l00072"></a><span class="lineno">   72</span>&#160; </div><div class="line"><a name="l00073"></a><span class="lineno">   73</span>&#160;    <span class="comment">// specific draw</span></div><div class="line"><a name="l00074"></a><span class="lineno">   74</span>&#160;    draw();</div><div class="line"><a name="l00075"></a><span class="lineno">   75</span>&#160; </div><div class="line"><a name="l00076"></a><span class="lineno">   76</span>&#160;    refresh();</div><div class="line"><a name="l00077"></a><span class="lineno">   77</span>&#160;    wrefresh(win);</div><div class="line"><a name="l00078"></a><span class="lineno">   78</span>&#160;}</div></div><!-- fragment --></div><!-- contents -->
-<div class="ttc" id="aclassB15F_html_a3f09a418f9e3be5d1d750e4515c96f1e"><div class="ttname"><a href="classB15F.html#a3f09a418f9e3be5d1d750e4515c96f1e">B15F::abort</a></div><div class="ttdeci">static void abort(std::string msg)</div><div class="ttdef"><b>Definition:</b> <a href="b15f_8cpp_source.html#l00467">b15f.cpp:467</a></div></div>
-<!-- start footer part -->
-<hr class="footer"/><address class="footer"><small>
-Generated on Fri Jun 7 2019 14:50:45 for B15F by &#160;<a href="http://www.doxygen.org/index.html">
-<img class="footer" src="doxygen.png" alt="doxygen"/>
-</a> 1.8.16
-</small></address>
-</body>
-</html>
diff --git a/docs/html/view_8h_source.html b/docs/html/view_8h_source.html
deleted file mode 100644
index bb66e1b..0000000
--- a/docs/html/view_8h_source.html
+++ /dev/null
@@ -1,82 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml">
-<head>
-<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
-<meta http-equiv="X-UA-Compatible" content="IE=9"/>
-<meta name="generator" content="Doxygen 1.8.16"/>
-<meta name="viewport" content="width=device-width, initial-scale=1"/>
-<title>B15F: ui/view.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">B15F
-   </div>
-   <div id="projectbrief">Board 15 Famulus Edition</div>
-  </td>
- </tr>
- </tbody>
-</table>
-</div>
-<!-- end header part -->
-<!-- Generated by Doxygen 1.8.16 -->
-<script type="text/javascript">
-/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
-var searchBox = new SearchBox("searchBox", "search",false,'Search');
-/* @license-end */
-</script>
-<script type="text/javascript" src="menudata.js"></script>
-<script type="text/javascript" src="menu.js"></script>
-<script type="text/javascript">
-/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
-$(function() {
-  initMenu('',true,false,'search.php','Search');
-  $(document).ready(function() { init_search(); });
-});
-/* @license-end */</script>
-<div id="main-nav"></div>
-<!-- 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 id="nav-path" class="navpath">
-  <ul>
-<li class="navelem"><a class="el" href="dir_1788f8309b1a812dcb800a185471cf6c.html">ui</a></li>  </ul>
-</div>
-</div><!-- top -->
-<div class="header">
-  <div class="headertitle">
-<div class="title">view.h</div>  </div>
-</div><!--header-->
-<div class="contents">
-<div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno">    1</span>&#160;<span class="preprocessor">#ifndef VIEW_H</span></div><div class="line"><a name="l00002"></a><span class="lineno">    2</span>&#160;<span class="preprocessor">#define VIEW_H</span></div><div class="line"><a name="l00003"></a><span class="lineno">    3</span>&#160; </div><div class="line"><a name="l00004"></a><span class="lineno">    4</span>&#160;<span class="preprocessor">#include &lt;iostream&gt;</span></div><div class="line"><a name="l00005"></a><span class="lineno">    5</span>&#160;<span class="preprocessor">#include &lt;cmath&gt;</span></div><div class="line"><a name="l00006"></a><span class="lineno">    6</span>&#160;<span class="preprocessor">#include &lt;vector&gt;</span></div><div class="line"><a name="l00007"></a><span class="lineno">    7</span>&#160;<span class="preprocessor">#include &lt;functional&gt;</span></div><div class="line"><a name="l00008"></a><span class="lineno">    8</span>&#160;<span class="preprocessor">#include &lt;ncurses.h&gt;</span> <span class="comment">// sudo apt-get install libncurses5-dev</span></div><div class="line"><a name="l00009"></a><span class="lineno">    9</span>&#160;<span class="preprocessor">#include &lt;sys/ioctl.h&gt;</span></div><div class="line"><a name="l00010"></a><span class="lineno">   10</span>&#160;<span class="preprocessor">#include &lt;unistd.h&gt;</span></div><div class="line"><a name="l00011"></a><span class="lineno">   11</span>&#160;<span class="preprocessor">#include &lt;signal.h&gt;</span></div><div class="line"><a name="l00012"></a><span class="lineno">   12</span>&#160;<span class="preprocessor">#include &quot;../drv/b15f.h&quot;</span></div><div class="line"><a name="l00013"></a><span class="lineno">   13</span>&#160; </div><div class="line"><a name="l00014"></a><span class="lineno">   14</span>&#160;<span class="keyword">extern</span> std::string ERR_MSG;</div><div class="line"><a name="l00015"></a><span class="lineno">   15</span>&#160;<span class="keyword">typedef</span> std::function&lt;void(<span class="keywordtype">int</span>)&gt; call_t;</div><div class="line"><a name="l00016"></a><span class="lineno">   16</span>&#160; </div><div class="line"><a name="l00019"></a><span class="lineno"><a class="line" href="classView.html">   19</a></span>&#160;<span class="keyword">class </span><a class="code" href="classView.html">View</a></div><div class="line"><a name="l00020"></a><span class="lineno">   20</span>&#160;{</div><div class="line"><a name="l00021"></a><span class="lineno">   21</span>&#160;<span class="keyword">public</span>:</div><div class="line"><a name="l00022"></a><span class="lineno">   22</span>&#160;    <a class="code" href="classView.html">View</a>(<span class="keywordtype">void</span>);</div><div class="line"><a name="l00023"></a><span class="lineno">   23</span>&#160;    <span class="keyword">virtual</span> ~<a class="code" href="classView.html">View</a>(<span class="keywordtype">void</span>);</div><div class="line"><a name="l00024"></a><span class="lineno">   24</span>&#160; </div><div class="line"><a name="l00025"></a><span class="lineno">   25</span>&#160;    <span class="keyword">static</span> <span class="keywordtype">void</span> setWinContext(WINDOW* win);</div><div class="line"><a name="l00026"></a><span class="lineno">   26</span>&#160;    <span class="keyword">static</span> WINDOW* getWinContext(<span class="keywordtype">void</span>);</div><div class="line"><a name="l00027"></a><span class="lineno">   27</span>&#160;    <span class="keyword">static</span> std::vector&lt;std::string&gt; str_split(<span class="keyword">const</span> std::string&amp; str, <span class="keyword">const</span> std::string delim);</div><div class="line"><a name="l00028"></a><span class="lineno">   28</span>&#160; </div><div class="line"><a name="l00029"></a><span class="lineno">   29</span>&#160;    <span class="keyword">virtual</span> <span class="keywordtype">void</span> setTitle(std::string title);</div><div class="line"><a name="l00030"></a><span class="lineno">   30</span>&#160; </div><div class="line"><a name="l00031"></a><span class="lineno">   31</span>&#160;    <span class="keyword">virtual</span> <span class="keywordtype">void</span> repaint(<span class="keywordtype">void</span>);</div><div class="line"><a name="l00032"></a><span class="lineno">   32</span>&#160; </div><div class="line"><a name="l00033"></a><span class="lineno">   33</span>&#160;    <span class="keyword">virtual</span> <span class="keywordtype">void</span> draw(<span class="keywordtype">void</span>) = 0;</div><div class="line"><a name="l00034"></a><span class="lineno">   34</span>&#160;    <span class="keyword">virtual</span> call_t keypress(<span class="keywordtype">int</span>&amp; key) = 0;</div><div class="line"><a name="l00035"></a><span class="lineno">   35</span>&#160; </div><div class="line"><a name="l00036"></a><span class="lineno">   36</span>&#160; </div><div class="line"><a name="l00037"></a><span class="lineno">   37</span>&#160;<span class="keyword">protected</span>:</div><div class="line"><a name="l00038"></a><span class="lineno">   38</span>&#160;    <span class="keywordtype">int</span> width, height;</div><div class="line"><a name="l00039"></a><span class="lineno">   39</span>&#160;    <span class="keywordtype">int</span> start_x = 0, start_y = 0;</div><div class="line"><a name="l00040"></a><span class="lineno">   40</span>&#160;    std::string title;</div><div class="line"><a name="l00041"></a><span class="lineno">   41</span>&#160;    std::vector&lt;call_t&gt; calls;</div><div class="line"><a name="l00042"></a><span class="lineno">   42</span>&#160; </div><div class="line"><a name="l00043"></a><span class="lineno">   43</span>&#160;    <span class="keyword">static</span> WINDOW* win;</div><div class="line"><a name="l00044"></a><span class="lineno">   44</span>&#160;    constexpr <span class="keyword">static</span> <span class="keywordtype">int</span> KEY_ENT = 10;</div><div class="line"><a name="l00045"></a><span class="lineno">   45</span>&#160;};</div><div class="line"><a name="l00046"></a><span class="lineno">   46</span>&#160; </div><div class="line"><a name="l00047"></a><span class="lineno">   47</span>&#160;<span class="preprocessor">#endif // VIEW_H</span></div></div><!-- fragment --></div><!-- contents -->
-<div class="ttc" id="aclassView_html"><div class="ttname"><a href="classView.html">View</a></div><div class="ttdef"><b>Definition:</b> <a href="view_8h_source.html#l00019">view.h:19</a></div></div>
-<!-- start footer part -->
-<hr class="footer"/><address class="footer"><small>
-Generated on Fri Jun 7 2019 14:50:45 for B15F by &#160;<a href="http://www.doxygen.org/index.html">
-<img class="footer" src="doxygen.png" alt="doxygen"/>
-</a> 1.8.16
-</small></address>
-</body>
-</html>
diff --git a/docs/html/view__info_8cpp_source.html b/docs/html/view__info_8cpp_source.html
deleted file mode 100644
index 551a1e9..0000000
--- a/docs/html/view__info_8cpp_source.html
+++ /dev/null
@@ -1,81 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml">
-<head>
-<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
-<meta http-equiv="X-UA-Compatible" content="IE=9"/>
-<meta name="generator" content="Doxygen 1.8.16"/>
-<meta name="viewport" content="width=device-width, initial-scale=1"/>
-<title>B15F: ui/view_info.cpp 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">B15F
-   </div>
-   <div id="projectbrief">Board 15 Famulus Edition</div>
-  </td>
- </tr>
- </tbody>
-</table>
-</div>
-<!-- end header part -->
-<!-- Generated by Doxygen 1.8.16 -->
-<script type="text/javascript">
-/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
-var searchBox = new SearchBox("searchBox", "search",false,'Search');
-/* @license-end */
-</script>
-<script type="text/javascript" src="menudata.js"></script>
-<script type="text/javascript" src="menu.js"></script>
-<script type="text/javascript">
-/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
-$(function() {
-  initMenu('',true,false,'search.php','Search');
-  $(document).ready(function() { init_search(); });
-});
-/* @license-end */</script>
-<div id="main-nav"></div>
-<!-- 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 id="nav-path" class="navpath">
-  <ul>
-<li class="navelem"><a class="el" href="dir_1788f8309b1a812dcb800a185471cf6c.html">ui</a></li>  </ul>
-</div>
-</div><!-- top -->
-<div class="header">
-  <div class="headertitle">
-<div class="title">view_info.cpp</div>  </div>
-</div><!--header-->
-<div class="contents">
-<div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno">    1</span>&#160;<span class="preprocessor">#include &quot;view_info.h&quot;</span></div><div class="line"><a name="l00002"></a><span class="lineno">    2</span>&#160; </div><div class="line"><a name="l00003"></a><span class="lineno">    3</span>&#160;ViewInfo::ViewInfo()</div><div class="line"><a name="l00004"></a><span class="lineno">    4</span>&#160;{</div><div class="line"><a name="l00005"></a><span class="lineno">    5</span>&#160;    calls.push_back(<span class="keyword">nullptr</span>);</div><div class="line"><a name="l00006"></a><span class="lineno">    6</span>&#160;}</div><div class="line"><a name="l00007"></a><span class="lineno">    7</span>&#160; </div><div class="line"><a name="l00008"></a><span class="lineno">    8</span>&#160;<span class="keywordtype">void</span> ViewInfo::setText(std::string text)</div><div class="line"><a name="l00009"></a><span class="lineno">    9</span>&#160;{</div><div class="line"><a name="l00010"></a><span class="lineno">   10</span>&#160;    this-&gt;text = text;</div><div class="line"><a name="l00011"></a><span class="lineno">   11</span>&#160;}</div><div class="line"><a name="l00012"></a><span class="lineno">   12</span>&#160; </div><div class="line"><a name="l00013"></a><span class="lineno">   13</span>&#160;<span class="keywordtype">void</span> ViewInfo::setLabelClose(std::string label)</div><div class="line"><a name="l00014"></a><span class="lineno">   14</span>&#160;{</div><div class="line"><a name="l00015"></a><span class="lineno">   15</span>&#160;    this-&gt;label_close = label;</div><div class="line"><a name="l00016"></a><span class="lineno">   16</span>&#160;}</div><div class="line"><a name="l00017"></a><span class="lineno">   17</span>&#160; </div><div class="line"><a name="l00018"></a><span class="lineno">   18</span>&#160;<span class="keywordtype">void</span> ViewInfo::setCall(call_t call)</div><div class="line"><a name="l00019"></a><span class="lineno">   19</span>&#160;{</div><div class="line"><a name="l00020"></a><span class="lineno">   20</span>&#160;    calls[0] = call;</div><div class="line"><a name="l00021"></a><span class="lineno">   21</span>&#160;}</div><div class="line"><a name="l00022"></a><span class="lineno">   22</span>&#160; </div><div class="line"><a name="l00023"></a><span class="lineno">   23</span>&#160;<span class="keywordtype">void</span> ViewInfo::draw()</div><div class="line"><a name="l00024"></a><span class="lineno">   24</span>&#160;{</div><div class="line"><a name="l00025"></a><span class="lineno">   25</span>&#160;    <span class="keywordtype">int</span> li = 0;</div><div class="line"><a name="l00026"></a><span class="lineno">   26</span>&#160;    <span class="keywordflow">for</span>(std::string line : str_split(text, <span class="stringliteral">&quot;\n&quot;</span>))</div><div class="line"><a name="l00027"></a><span class="lineno">   27</span>&#160;        mvwprintw(win, text_offset_y + li++, text_offset_x, <span class="stringliteral">&quot;%s&quot;</span>, line.c_str());</div><div class="line"><a name="l00028"></a><span class="lineno">   28</span>&#160; </div><div class="line"><a name="l00029"></a><span class="lineno">   29</span>&#160;    close_offset_x = (width - label_close.length()) / 2;</div><div class="line"><a name="l00030"></a><span class="lineno">   30</span>&#160;    close_offset_y = height - 2;</div><div class="line"><a name="l00031"></a><span class="lineno">   31</span>&#160; </div><div class="line"><a name="l00032"></a><span class="lineno">   32</span>&#160;    wattron(win, A_REVERSE);</div><div class="line"><a name="l00033"></a><span class="lineno">   33</span>&#160;    mvwprintw(win, close_offset_y, close_offset_x, <span class="stringliteral">&quot;%s&quot;</span>, label_close.c_str());</div><div class="line"><a name="l00034"></a><span class="lineno">   34</span>&#160;    wattroff(win, A_REVERSE);</div><div class="line"><a name="l00035"></a><span class="lineno">   35</span>&#160;}</div><div class="line"><a name="l00036"></a><span class="lineno">   36</span>&#160; </div><div class="line"><a name="l00037"></a><span class="lineno">   37</span>&#160;call_t ViewInfo::keypress(<span class="keywordtype">int</span>&amp; key)</div><div class="line"><a name="l00038"></a><span class="lineno">   38</span>&#160;{</div><div class="line"><a name="l00039"></a><span class="lineno">   39</span>&#160;    <span class="keywordflow">switch</span>(key)</div><div class="line"><a name="l00040"></a><span class="lineno">   40</span>&#160;    {</div><div class="line"><a name="l00041"></a><span class="lineno">   41</span>&#160; </div><div class="line"><a name="l00042"></a><span class="lineno">   42</span>&#160;    <span class="keywordflow">case</span> KEY_MOUSE:</div><div class="line"><a name="l00043"></a><span class="lineno">   43</span>&#160;    {</div><div class="line"><a name="l00044"></a><span class="lineno">   44</span>&#160;        <span class="comment">// http://pronix.linuxdelta.de/C/Linuxprogrammierung/Linuxsystemprogrammieren_C_Kurs_Kapitel10b.shtml</span></div><div class="line"><a name="l00045"></a><span class="lineno">   45</span>&#160;        MEVENT event;</div><div class="line"><a name="l00046"></a><span class="lineno">   46</span>&#160;        <span class="keywordflow">if</span>(getmouse(&amp;event) == OK &amp;&amp; event.bstate &amp; (BUTTON1_CLICKED | BUTTON1_DOUBLE_CLICKED))</div><div class="line"><a name="l00047"></a><span class="lineno">   47</span>&#160;        {</div><div class="line"><a name="l00048"></a><span class="lineno">   48</span>&#160;            <span class="keywordtype">size_t</span> column = start_x + close_offset_x;</div><div class="line"><a name="l00049"></a><span class="lineno">   49</span>&#160;            <span class="keywordtype">size_t</span> row = start_y + close_offset_y;</div><div class="line"><a name="l00050"></a><span class="lineno">   50</span>&#160;            <span class="keywordtype">size_t</span> mouse_x = <span class="keyword">event</span>.x, mouse_y = <span class="keyword">event</span>.y;</div><div class="line"><a name="l00051"></a><span class="lineno">   51</span>&#160;            <span class="keywordflow">if</span>(mouse_y == row &amp;&amp; mouse_x &gt;= column &amp;&amp; mouse_x &lt; column + label_close.length())</div><div class="line"><a name="l00052"></a><span class="lineno">   52</span>&#160;                key = -1; <span class="comment">// do return from view</span></div><div class="line"><a name="l00053"></a><span class="lineno">   53</span>&#160;        }</div><div class="line"><a name="l00054"></a><span class="lineno">   54</span>&#160;        <span class="keywordflow">break</span>;</div><div class="line"><a name="l00055"></a><span class="lineno">   55</span>&#160;    }</div><div class="line"><a name="l00056"></a><span class="lineno">   56</span>&#160;    <span class="keywordflow">case</span> KEY_ENT:</div><div class="line"><a name="l00057"></a><span class="lineno">   57</span>&#160;        key = -1; <span class="comment">// do return from view</span></div><div class="line"><a name="l00058"></a><span class="lineno">   58</span>&#160;        <span class="keywordflow">break</span>;</div><div class="line"><a name="l00059"></a><span class="lineno">   59</span>&#160;    <span class="keywordflow">default</span>:</div><div class="line"><a name="l00060"></a><span class="lineno">   60</span>&#160;        <span class="keywordflow">break</span>;</div><div class="line"><a name="l00061"></a><span class="lineno">   61</span>&#160;    }</div><div class="line"><a name="l00062"></a><span class="lineno">   62</span>&#160;    <span class="keywordflow">return</span> calls[0];</div><div class="line"><a name="l00063"></a><span class="lineno">   63</span>&#160;}</div></div><!-- fragment --></div><!-- contents -->
-<!-- start footer part -->
-<hr class="footer"/><address class="footer"><small>
-Generated on Fri Jun 7 2019 14:50:45 for B15F by &#160;<a href="http://www.doxygen.org/index.html">
-<img class="footer" src="doxygen.png" alt="doxygen"/>
-</a> 1.8.16
-</small></address>
-</body>
-</html>
diff --git a/docs/html/view__info_8h_source.html b/docs/html/view__info_8h_source.html
deleted file mode 100644
index d86cbb2..0000000
--- a/docs/html/view__info_8h_source.html
+++ /dev/null
@@ -1,83 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml">
-<head>
-<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
-<meta http-equiv="X-UA-Compatible" content="IE=9"/>
-<meta name="generator" content="Doxygen 1.8.16"/>
-<meta name="viewport" content="width=device-width, initial-scale=1"/>
-<title>B15F: ui/view_info.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">B15F
-   </div>
-   <div id="projectbrief">Board 15 Famulus Edition</div>
-  </td>
- </tr>
- </tbody>
-</table>
-</div>
-<!-- end header part -->
-<!-- Generated by Doxygen 1.8.16 -->
-<script type="text/javascript">
-/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
-var searchBox = new SearchBox("searchBox", "search",false,'Search');
-/* @license-end */
-</script>
-<script type="text/javascript" src="menudata.js"></script>
-<script type="text/javascript" src="menu.js"></script>
-<script type="text/javascript">
-/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
-$(function() {
-  initMenu('',true,false,'search.php','Search');
-  $(document).ready(function() { init_search(); });
-});
-/* @license-end */</script>
-<div id="main-nav"></div>
-<!-- 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 id="nav-path" class="navpath">
-  <ul>
-<li class="navelem"><a class="el" href="dir_1788f8309b1a812dcb800a185471cf6c.html">ui</a></li>  </ul>
-</div>
-</div><!-- top -->
-<div class="header">
-  <div class="headertitle">
-<div class="title">view_info.h</div>  </div>
-</div><!--header-->
-<div class="contents">
-<div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno">    1</span>&#160;<span class="preprocessor">#ifndef VIEW_INFO</span></div><div class="line"><a name="l00002"></a><span class="lineno">    2</span>&#160;<span class="preprocessor">#define VIEW_INFO</span></div><div class="line"><a name="l00003"></a><span class="lineno">    3</span>&#160; </div><div class="line"><a name="l00004"></a><span class="lineno">    4</span>&#160;<span class="preprocessor">#include &quot;view.h&quot;</span></div><div class="line"><a name="l00005"></a><span class="lineno">    5</span>&#160; </div><div class="line"><a name="l00008"></a><span class="lineno"><a class="line" href="classViewInfo.html">    8</a></span>&#160;<span class="keyword">class </span><a class="code" href="classViewInfo.html">ViewInfo</a> : <span class="keyword">public</span> <a class="code" href="classView.html">View</a></div><div class="line"><a name="l00009"></a><span class="lineno">    9</span>&#160;{</div><div class="line"><a name="l00010"></a><span class="lineno">   10</span>&#160;<span class="keyword">public</span>:</div><div class="line"><a name="l00011"></a><span class="lineno">   11</span>&#160;    <a class="code" href="classViewInfo.html">ViewInfo</a>(<span class="keywordtype">void</span>);</div><div class="line"><a name="l00012"></a><span class="lineno">   12</span>&#160;    <span class="keyword">virtual</span> <span class="keywordtype">void</span> setText(std::string text);</div><div class="line"><a name="l00013"></a><span class="lineno">   13</span>&#160;    <span class="keyword">virtual</span> <span class="keywordtype">void</span> setLabelClose(std::string label);;</div><div class="line"><a name="l00014"></a><span class="lineno">   14</span>&#160;    <span class="keyword">virtual</span> <span class="keywordtype">void</span> setCall(call_t call);</div><div class="line"><a name="l00015"></a><span class="lineno">   15</span>&#160;    <span class="keyword">virtual</span> <span class="keywordtype">void</span> draw(<span class="keywordtype">void</span>) <span class="keyword">override</span>;</div><div class="line"><a name="l00016"></a><span class="lineno">   16</span>&#160;    <span class="keyword">virtual</span> call_t keypress(<span class="keywordtype">int</span>&amp; key) <span class="keyword">override</span>;</div><div class="line"><a name="l00017"></a><span class="lineno">   17</span>&#160; </div><div class="line"><a name="l00018"></a><span class="lineno">   18</span>&#160;<span class="keyword">protected</span>:</div><div class="line"><a name="l00019"></a><span class="lineno">   19</span>&#160;    std::string text;</div><div class="line"><a name="l00020"></a><span class="lineno">   20</span>&#160;    std::string label_close;</div><div class="line"><a name="l00021"></a><span class="lineno">   21</span>&#160;    <span class="keywordtype">int</span> close_offset_x = 0;</div><div class="line"><a name="l00022"></a><span class="lineno">   22</span>&#160;    <span class="keywordtype">int</span> close_offset_y = 0;</div><div class="line"><a name="l00023"></a><span class="lineno">   23</span>&#160;    constexpr <span class="keyword">static</span> <span class="keywordtype">int</span> text_offset_x = 2;</div><div class="line"><a name="l00024"></a><span class="lineno">   24</span>&#160;    constexpr <span class="keyword">static</span> <span class="keywordtype">int</span> text_offset_y = 3;</div><div class="line"><a name="l00025"></a><span class="lineno">   25</span>&#160;};</div><div class="line"><a name="l00026"></a><span class="lineno">   26</span>&#160; </div><div class="line"><a name="l00027"></a><span class="lineno">   27</span>&#160;<span class="preprocessor">#endif // VIEW_INFO</span></div></div><!-- fragment --></div><!-- contents -->
-<div class="ttc" id="aclassViewInfo_html"><div class="ttname"><a href="classViewInfo.html">ViewInfo</a></div><div class="ttdef"><b>Definition:</b> <a href="view__info_8h_source.html#l00008">view_info.h:8</a></div></div>
-<div class="ttc" id="aclassView_html"><div class="ttname"><a href="classView.html">View</a></div><div class="ttdef"><b>Definition:</b> <a href="view_8h_source.html#l00019">view.h:19</a></div></div>
-<!-- start footer part -->
-<hr class="footer"/><address class="footer"><small>
-Generated on Fri Jun 7 2019 14:50:45 for B15F by &#160;<a href="http://www.doxygen.org/index.html">
-<img class="footer" src="doxygen.png" alt="doxygen"/>
-</a> 1.8.16
-</small></address>
-</body>
-</html>
diff --git a/docs/html/view__monitor_8cpp_source.html b/docs/html/view__monitor_8cpp_source.html
deleted file mode 100644
index 8b8f287..0000000
--- a/docs/html/view__monitor_8cpp_source.html
+++ /dev/null
@@ -1,92 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml">
-<head>
-<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
-<meta http-equiv="X-UA-Compatible" content="IE=9"/>
-<meta name="generator" content="Doxygen 1.8.16"/>
-<meta name="viewport" content="width=device-width, initial-scale=1"/>
-<title>B15F: ui/view_monitor.cpp 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">B15F
-   </div>
-   <div id="projectbrief">Board 15 Famulus Edition</div>
-  </td>
- </tr>
- </tbody>
-</table>
-</div>
-<!-- end header part -->
-<!-- Generated by Doxygen 1.8.16 -->
-<script type="text/javascript">
-/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
-var searchBox = new SearchBox("searchBox", "search",false,'Search');
-/* @license-end */
-</script>
-<script type="text/javascript" src="menudata.js"></script>
-<script type="text/javascript" src="menu.js"></script>
-<script type="text/javascript">
-/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
-$(function() {
-  initMenu('',true,false,'search.php','Search');
-  $(document).ready(function() { init_search(); });
-});
-/* @license-end */</script>
-<div id="main-nav"></div>
-<!-- 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 id="nav-path" class="navpath">
-  <ul>
-<li class="navelem"><a class="el" href="dir_1788f8309b1a812dcb800a185471cf6c.html">ui</a></li>  </ul>
-</div>
-</div><!-- top -->
-<div class="header">
-  <div class="headertitle">
-<div class="title">view_monitor.cpp</div>  </div>
-</div><!--header-->
-<div class="contents">
-<div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno">    1</span>&#160;<span class="preprocessor">#include &quot;view_monitor.h&quot;</span></div><div class="line"><a name="l00002"></a><span class="lineno">    2</span>&#160; </div><div class="line"><a name="l00003"></a><span class="lineno">    3</span>&#160;ViewMonitor::ViewMonitor() : t_worker(&amp;<a class="code" href="classViewMonitor.html">ViewMonitor</a>::worker, this)</div><div class="line"><a name="l00004"></a><span class="lineno">    4</span>&#160;{</div><div class="line"><a name="l00005"></a><span class="lineno">    5</span>&#160;}</div><div class="line"><a name="l00006"></a><span class="lineno">    6</span>&#160; </div><div class="line"><a name="l00007"></a><span class="lineno">    7</span>&#160;call_t ViewMonitor::keypress(<span class="keywordtype">int</span>&amp; key)</div><div class="line"><a name="l00008"></a><span class="lineno">    8</span>&#160;{</div><div class="line"><a name="l00009"></a><span class="lineno">    9</span>&#160;    <span class="keywordflow">switch</span>(key)</div><div class="line"><a name="l00010"></a><span class="lineno">   10</span>&#160;    {</div><div class="line"><a name="l00011"></a><span class="lineno">   11</span>&#160; </div><div class="line"><a name="l00012"></a><span class="lineno">   12</span>&#160;    <span class="keywordflow">case</span> KEY_MOUSE:</div><div class="line"><a name="l00013"></a><span class="lineno">   13</span>&#160;    {</div><div class="line"><a name="l00014"></a><span class="lineno">   14</span>&#160;        <span class="comment">// http://pronix.linuxdelta.de/C/Linuxprogrammierung/Linuxsystemprogrammieren_C_Kurs_Kapitel10b.shtml</span></div><div class="line"><a name="l00015"></a><span class="lineno">   15</span>&#160;        MEVENT event;</div><div class="line"><a name="l00016"></a><span class="lineno">   16</span>&#160;        <span class="keywordtype">bool</span> hit = <span class="keyword">false</span>;</div><div class="line"><a name="l00017"></a><span class="lineno">   17</span>&#160;        <span class="keywordflow">if</span>(getmouse(&amp;event) == OK &amp;&amp; event.bstate &amp; (BUTTON1_CLICKED | BUTTON1_DOUBLE_CLICKED))</div><div class="line"><a name="l00018"></a><span class="lineno">   18</span>&#160;        {</div><div class="line"><a name="l00019"></a><span class="lineno">   19</span>&#160;            <span class="keywordtype">size_t</span> column = start_x + close_offset_x;</div><div class="line"><a name="l00020"></a><span class="lineno">   20</span>&#160;            <span class="keywordtype">size_t</span> row = start_y + close_offset_y;</div><div class="line"><a name="l00021"></a><span class="lineno">   21</span>&#160;            <span class="keywordtype">size_t</span> mouse_x = <span class="keyword">event</span>.x, mouse_y = <span class="keyword">event</span>.y;</div><div class="line"><a name="l00022"></a><span class="lineno">   22</span>&#160;            <span class="keywordflow">if</span>(mouse_y == row &amp;&amp; mouse_x &gt;= column &amp;&amp; mouse_x &lt; column + label_close.length())</div><div class="line"><a name="l00023"></a><span class="lineno">   23</span>&#160;                hit = <span class="keyword">true</span>;</div><div class="line"><a name="l00024"></a><span class="lineno">   24</span>&#160;        }</div><div class="line"><a name="l00025"></a><span class="lineno">   25</span>&#160;        <span class="keywordflow">if</span>(!hit)</div><div class="line"><a name="l00026"></a><span class="lineno">   26</span>&#160;            <span class="keywordflow">break</span>;</div><div class="line"><a name="l00027"></a><span class="lineno">   27</span>&#160; </div><div class="line"><a name="l00028"></a><span class="lineno">   28</span>&#160;        <span class="comment">// fall through to next case</span></div><div class="line"><a name="l00029"></a><span class="lineno">   29</span>&#160;        [[fallthrough]];</div><div class="line"><a name="l00030"></a><span class="lineno">   30</span>&#160;    }</div><div class="line"><a name="l00031"></a><span class="lineno">   31</span>&#160;    <span class="keywordflow">case</span> KEY_ENT:</div><div class="line"><a name="l00032"></a><span class="lineno">   32</span>&#160;        run_worker = <span class="keyword">false</span>;</div><div class="line"><a name="l00033"></a><span class="lineno">   33</span>&#160;        key = -1; <span class="comment">// do return from view</span></div><div class="line"><a name="l00034"></a><span class="lineno">   34</span>&#160;        wclear(win);</div><div class="line"><a name="l00035"></a><span class="lineno">   35</span>&#160;        wrefresh(win);</div><div class="line"><a name="l00036"></a><span class="lineno">   36</span>&#160;        t_worker.join();</div><div class="line"><a name="l00037"></a><span class="lineno">   37</span>&#160;        <span class="keywordflow">break</span>;</div><div class="line"><a name="l00038"></a><span class="lineno">   38</span>&#160;    <span class="keywordflow">default</span>:</div><div class="line"><a name="l00039"></a><span class="lineno">   39</span>&#160;        <span class="keywordflow">break</span>;</div><div class="line"><a name="l00040"></a><span class="lineno">   40</span>&#160;    }</div><div class="line"><a name="l00041"></a><span class="lineno">   41</span>&#160;    <span class="keywordflow">return</span> calls[0];</div><div class="line"><a name="l00042"></a><span class="lineno">   42</span>&#160;}</div><div class="line"><a name="l00043"></a><span class="lineno">   43</span>&#160; </div><div class="line"><a name="l00044"></a><span class="lineno">   44</span>&#160;std::string ViewMonitor::fancyDigitalString(uint8_t&amp; b)</div><div class="line"><a name="l00045"></a><span class="lineno">   45</span>&#160;{</div><div class="line"><a name="l00046"></a><span class="lineno">   46</span>&#160;    std::stringstream str;</div><div class="line"><a name="l00047"></a><span class="lineno">   47</span>&#160;    str &lt;&lt; std::bitset&lt;8&gt;(b).to_string();</div><div class="line"><a name="l00048"></a><span class="lineno">   48</span>&#160;    str &lt;&lt; <span class="stringliteral">&quot; &quot;</span>;</div><div class="line"><a name="l00049"></a><span class="lineno">   49</span>&#160;    str &lt;&lt; <span class="stringliteral">&quot;0x&quot;</span> &lt;&lt; std::setfill (<span class="charliteral">&#39;0&#39;</span>) &lt;&lt; std::setw(2) &lt;&lt; std::hex &lt;&lt; (int) b &lt;&lt; std::dec;</div><div class="line"><a name="l00050"></a><span class="lineno">   50</span>&#160;    <span class="keywordflow">return</span> str.str();</div><div class="line"><a name="l00051"></a><span class="lineno">   51</span>&#160;}</div><div class="line"><a name="l00052"></a><span class="lineno">   52</span>&#160; </div><div class="line"><a name="l00053"></a><span class="lineno">   53</span>&#160;std::string ViewMonitor::fancyAnalogString(uint16_t&amp; v)</div><div class="line"><a name="l00054"></a><span class="lineno">   54</span>&#160;{</div><div class="line"><a name="l00055"></a><span class="lineno">   55</span>&#160;    std::stringstream str;</div><div class="line"><a name="l00056"></a><span class="lineno">   56</span>&#160;    <span class="keywordtype">double</span> volt = round(v * 100.0 * 5.0 / 1023.0) / 100.0;</div><div class="line"><a name="l00057"></a><span class="lineno">   57</span>&#160; </div><div class="line"><a name="l00058"></a><span class="lineno">   58</span>&#160;    str &lt;&lt; std::setfill (<span class="charliteral">&#39;0&#39;</span>) &lt;&lt; std::setw(4) &lt;&lt; (int) v &lt;&lt; <span class="stringliteral">&quot;   &quot;</span> &lt;&lt; std::fixed &lt;&lt; std::setprecision(2) &lt;&lt; volt &lt;&lt; <span class="stringliteral">&quot; V   &quot;</span>;</div><div class="line"><a name="l00059"></a><span class="lineno">   59</span>&#160; </div><div class="line"><a name="l00060"></a><span class="lineno">   60</span>&#160;    str &lt;&lt; <span class="stringliteral">&quot;[&quot;</span>;</div><div class="line"><a name="l00061"></a><span class="lineno">   61</span>&#160;    uint8_t p = round(v * 40.0 / 1023.0);</div><div class="line"><a name="l00062"></a><span class="lineno">   62</span>&#160;    <span class="keywordflow">for</span>(uint8_t i = 0; i &lt; p; i++)</div><div class="line"><a name="l00063"></a><span class="lineno">   63</span>&#160;        str &lt;&lt; <span class="stringliteral">&quot;X&quot;</span>;</div><div class="line"><a name="l00064"></a><span class="lineno">   64</span>&#160;    <span class="keywordflow">for</span>(uint8_t i = 0; i &lt; 40 - p; i++)</div><div class="line"><a name="l00065"></a><span class="lineno">   65</span>&#160;        str &lt;&lt; <span class="stringliteral">&quot; &quot;</span>;</div><div class="line"><a name="l00066"></a><span class="lineno">   66</span>&#160;    str &lt;&lt; <span class="stringliteral">&quot;]&quot;</span> &lt;&lt; std::endl;</div><div class="line"><a name="l00067"></a><span class="lineno">   67</span>&#160; </div><div class="line"><a name="l00068"></a><span class="lineno">   68</span>&#160;    <span class="keywordflow">return</span> str.str();</div><div class="line"><a name="l00069"></a><span class="lineno">   69</span>&#160;}</div><div class="line"><a name="l00070"></a><span class="lineno">   70</span>&#160; </div><div class="line"><a name="l00071"></a><span class="lineno">   71</span>&#160;<span class="keywordtype">void</span> ViewMonitor::worker()</div><div class="line"><a name="l00072"></a><span class="lineno">   72</span>&#160;{</div><div class="line"><a name="l00073"></a><span class="lineno">   73</span>&#160;    <a class="code" href="classB15F.html">B15F</a>&amp; drv = <a class="code" href="classB15F.html#a8b4533d232c55ef2aa967e39e2d23380">B15F::getInstance</a>();</div><div class="line"><a name="l00074"></a><span class="lineno">   74</span>&#160;    <span class="keywordflow">while</span>(run_worker)</div><div class="line"><a name="l00075"></a><span class="lineno">   75</span>&#160;    {</div><div class="line"><a name="l00076"></a><span class="lineno">   76</span>&#160;        <span class="keywordflow">try</span></div><div class="line"><a name="l00077"></a><span class="lineno">   77</span>&#160;        {</div><div class="line"><a name="l00078"></a><span class="lineno">   78</span>&#160;            std::this_thread::sleep_for(std::chrono::milliseconds(100));</div><div class="line"><a name="l00079"></a><span class="lineno">   79</span>&#160; </div><div class="line"><a name="l00080"></a><span class="lineno">   80</span>&#160;            uint8_t be0 = drv.<a class="code" href="classB15F.html#ae0df6d423deeb2fd610968bd1c72060e">digitalRead0</a>();</div><div class="line"><a name="l00081"></a><span class="lineno">   81</span>&#160;            uint8_t be1 = drv.<a class="code" href="classB15F.html#afc76b612dd4faeee0ac02a66b65af5f2">digitalRead1</a>();</div><div class="line"><a name="l00082"></a><span class="lineno">   82</span>&#160;            uint8_t dsw = drv.<a class="code" href="classB15F.html#a6f858f21ea81d491b5031b3644a2239a">readDipSwitch</a>();</div><div class="line"><a name="l00083"></a><span class="lineno">   83</span>&#160;            uint16_t adc[8];</div><div class="line"><a name="l00084"></a><span class="lineno">   84</span>&#160;            <span class="keywordflow">for</span>(uint8_t i = 0; i &lt; <span class="keyword">sizeof</span>(adc) / <span class="keyword">sizeof</span>(adc[0]); i++)</div><div class="line"><a name="l00085"></a><span class="lineno">   85</span>&#160;                adc[i] = drv.<a class="code" href="classB15F.html#ae0bd1f69751e2dc3c462db9213fc4627">analogRead</a>(i);</div><div class="line"><a name="l00086"></a><span class="lineno">   86</span>&#160; </div><div class="line"><a name="l00087"></a><span class="lineno">   87</span>&#160; </div><div class="line"><a name="l00088"></a><span class="lineno">   88</span>&#160;            std::stringstream str;</div><div class="line"><a name="l00089"></a><span class="lineno">   89</span>&#160; </div><div class="line"><a name="l00090"></a><span class="lineno">   90</span>&#160;            <span class="comment">// hline</span></div><div class="line"><a name="l00091"></a><span class="lineno">   91</span>&#160;            <span class="keywordflow">for</span>(uint8_t i = 0; i &lt; width - 2 * text_offset_x; i++)</div><div class="line"><a name="l00092"></a><span class="lineno">   92</span>&#160;                <span class="keywordflow">if</span>(i % 2 == 0)</div><div class="line"><a name="l00093"></a><span class="lineno">   93</span>&#160;                    str &lt;&lt; <span class="stringliteral">&quot;-&quot;</span>;</div><div class="line"><a name="l00094"></a><span class="lineno">   94</span>&#160;                <span class="keywordflow">else</span></div><div class="line"><a name="l00095"></a><span class="lineno">   95</span>&#160;                    str &lt;&lt; <span class="stringliteral">&quot; &quot;</span>;</div><div class="line"><a name="l00096"></a><span class="lineno">   96</span>&#160;            str &lt;&lt; std::endl;</div><div class="line"><a name="l00097"></a><span class="lineno">   97</span>&#160; </div><div class="line"><a name="l00098"></a><span class="lineno">   98</span>&#160;            str &lt;&lt; <span class="stringliteral">&quot;Digitale Enigaenge:&quot;</span> &lt;&lt; std::endl;</div><div class="line"><a name="l00099"></a><span class="lineno">   99</span>&#160;            str &lt;&lt; <span class="stringliteral">&quot;Binaere Eingabe 0: &quot;</span> &lt;&lt; fancyDigitalString(be0) &lt;&lt; std::endl;</div><div class="line"><a name="l00100"></a><span class="lineno">  100</span>&#160;            str &lt;&lt; <span class="stringliteral">&quot;Binaere Eingabe 1: &quot;</span> &lt;&lt; fancyDigitalString(be1) &lt;&lt; std::endl;</div><div class="line"><a name="l00101"></a><span class="lineno">  101</span>&#160;            str &lt;&lt; <span class="stringliteral">&quot;Dip Schalter (S7): &quot;</span> &lt;&lt; fancyDigitalString(dsw) &lt;&lt; std::endl;</div><div class="line"><a name="l00102"></a><span class="lineno">  102</span>&#160; </div><div class="line"><a name="l00103"></a><span class="lineno">  103</span>&#160;            <span class="comment">// hline</span></div><div class="line"><a name="l00104"></a><span class="lineno">  104</span>&#160;            <span class="keywordflow">for</span>(uint8_t i = 0; i &lt; width - 2 * text_offset_x; i++)</div><div class="line"><a name="l00105"></a><span class="lineno">  105</span>&#160;                <span class="keywordflow">if</span>(i % 2 == 0)</div><div class="line"><a name="l00106"></a><span class="lineno">  106</span>&#160;                    str &lt;&lt; <span class="stringliteral">&quot;-&quot;</span>;</div><div class="line"><a name="l00107"></a><span class="lineno">  107</span>&#160;                <span class="keywordflow">else</span></div><div class="line"><a name="l00108"></a><span class="lineno">  108</span>&#160;                    str &lt;&lt; <span class="stringliteral">&quot; &quot;</span>;</div><div class="line"><a name="l00109"></a><span class="lineno">  109</span>&#160;            str &lt;&lt; std::endl;</div><div class="line"><a name="l00110"></a><span class="lineno">  110</span>&#160; </div><div class="line"><a name="l00111"></a><span class="lineno">  111</span>&#160;            str &lt;&lt; <span class="stringliteral">&quot;Analoge Eingaenge:&quot;</span> &lt;&lt; std::endl;</div><div class="line"><a name="l00112"></a><span class="lineno">  112</span>&#160;            <span class="keywordflow">for</span>(uint8_t i = 0; i &lt; <span class="keyword">sizeof</span>(adc) / <span class="keyword">sizeof</span>(adc[0]); i++)</div><div class="line"><a name="l00113"></a><span class="lineno">  113</span>&#160;            {</div><div class="line"><a name="l00114"></a><span class="lineno">  114</span>&#160;                str &lt;&lt; <span class="stringliteral">&quot;Kanal &quot;</span> &lt;&lt; std::to_string((<span class="keywordtype">int</span>) i) &lt;&lt; <span class="stringliteral">&quot;: &quot;</span>;</div><div class="line"><a name="l00115"></a><span class="lineno">  115</span>&#160;                str &lt;&lt; fancyAnalogString(adc[i]) &lt;&lt; std::endl;</div><div class="line"><a name="l00116"></a><span class="lineno">  116</span>&#160;            }</div><div class="line"><a name="l00117"></a><span class="lineno">  117</span>&#160; </div><div class="line"><a name="l00118"></a><span class="lineno">  118</span>&#160;            text = str.str();</div><div class="line"><a name="l00119"></a><span class="lineno">  119</span>&#160;            repaint();</div><div class="line"><a name="l00120"></a><span class="lineno">  120</span>&#160;        }</div><div class="line"><a name="l00121"></a><span class="lineno">  121</span>&#160;        <span class="keywordflow">catch</span>(<a class="code" href="classDriverException.html">DriverException</a>&amp; ex)</div><div class="line"><a name="l00122"></a><span class="lineno">  122</span>&#160;        {</div><div class="line"><a name="l00123"></a><span class="lineno">  123</span>&#160;            std::cout &lt;&lt; <span class="stringliteral">&quot;DriverException: &quot;</span> &lt;&lt; ex.what() &lt;&lt; std::endl;</div><div class="line"><a name="l00124"></a><span class="lineno">  124</span>&#160;            drv.<a class="code" href="classB15F.html#aaffce20afb9f06bc4b7556c70ce76416">delay_ms</a>(1000);</div><div class="line"><a name="l00125"></a><span class="lineno">  125</span>&#160;        }</div><div class="line"><a name="l00126"></a><span class="lineno">  126</span>&#160;        <span class="keywordflow">catch</span>(...)</div><div class="line"><a name="l00127"></a><span class="lineno">  127</span>&#160;        {</div><div class="line"><a name="l00128"></a><span class="lineno">  128</span>&#160;            <span class="keywordflow">try</span></div><div class="line"><a name="l00129"></a><span class="lineno">  129</span>&#160;            {</div><div class="line"><a name="l00130"></a><span class="lineno">  130</span>&#160;                drv.<a class="code" href="classB15F.html#a52557b375443c180a044e7d4e80a1ae7">reconnect</a>();</div><div class="line"><a name="l00131"></a><span class="lineno">  131</span>&#160;            }</div><div class="line"><a name="l00132"></a><span class="lineno">  132</span>&#160;            <span class="keywordflow">catch</span>(...)</div><div class="line"><a name="l00133"></a><span class="lineno">  133</span>&#160;            {</div><div class="line"><a name="l00134"></a><span class="lineno">  134</span>&#160;                <a class="code" href="classB15F.html#a3f09a418f9e3be5d1d750e4515c96f1e">B15F::abort</a>(<span class="stringliteral">&quot;yoho meine dudes&quot;</span>);</div><div class="line"><a name="l00135"></a><span class="lineno">  135</span>&#160;                <span class="keywordflow">return</span>;</div><div class="line"><a name="l00136"></a><span class="lineno">  136</span>&#160;            }</div><div class="line"><a name="l00137"></a><span class="lineno">  137</span>&#160;        }</div><div class="line"><a name="l00138"></a><span class="lineno">  138</span>&#160;    }</div><div class="line"><a name="l00139"></a><span class="lineno">  139</span>&#160;}</div></div><!-- fragment --></div><!-- contents -->
-<div class="ttc" id="aclassViewMonitor_html"><div class="ttname"><a href="classViewMonitor.html">ViewMonitor</a></div><div class="ttdef"><b>Definition:</b> <a href="view__monitor_8h_source.html#l00013">view_monitor.h:13</a></div></div>
-<div class="ttc" id="aclassB15F_html_ae0df6d423deeb2fd610968bd1c72060e"><div class="ttname"><a href="classB15F.html#ae0df6d423deeb2fd610968bd1c72060e">B15F::digitalRead0</a></div><div class="ttdeci">uint8_t digitalRead0(void)</div><div class="ttdef"><b>Definition:</b> <a href="b15f_8cpp_source.html#l00207">b15f.cpp:207</a></div></div>
-<div class="ttc" id="aclassB15F_html_a6f858f21ea81d491b5031b3644a2239a"><div class="ttname"><a href="classB15F.html#a6f858f21ea81d491b5031b3644a2239a">B15F::readDipSwitch</a></div><div class="ttdeci">uint8_t readDipSwitch(void)</div><div class="ttdef"><b>Definition:</b> <a href="b15f_8cpp_source.html#l00235">b15f.cpp:235</a></div></div>
-<div class="ttc" id="aclassB15F_html_aaffce20afb9f06bc4b7556c70ce76416"><div class="ttname"><a href="classB15F.html#aaffce20afb9f06bc4b7556c70ce76416">B15F::delay_ms</a></div><div class="ttdeci">void delay_ms(uint16_t ms)</div><div class="ttdef"><b>Definition:</b> <a href="b15f_8cpp_source.html#l00432">b15f.cpp:432</a></div></div>
-<div class="ttc" id="aclassB15F_html_a8b4533d232c55ef2aa967e39e2d23380"><div class="ttname"><a href="classB15F.html#a8b4533d232c55ef2aa967e39e2d23380">B15F::getInstance</a></div><div class="ttdeci">static B15F &amp; getInstance(void)</div><div class="ttdef"><b>Definition:</b> <a href="b15f_8cpp_source.html#l00442">b15f.cpp:442</a></div></div>
-<div class="ttc" id="aclassB15F_html"><div class="ttname"><a href="classB15F.html">B15F</a></div><div class="ttdef"><b>Definition:</b> <a href="b15f_8h_source.html#l00031">b15f.h:31</a></div></div>
-<div class="ttc" id="aclassB15F_html_a3f09a418f9e3be5d1d750e4515c96f1e"><div class="ttname"><a href="classB15F.html#a3f09a418f9e3be5d1d750e4515c96f1e">B15F::abort</a></div><div class="ttdeci">static void abort(std::string msg)</div><div class="ttdef"><b>Definition:</b> <a href="b15f_8cpp_source.html#l00467">b15f.cpp:467</a></div></div>
-<div class="ttc" id="aclassB15F_html_ae0bd1f69751e2dc3c462db9213fc4627"><div class="ttname"><a href="classB15F.html#ae0bd1f69751e2dc3c462db9213fc4627">B15F::analogRead</a></div><div class="ttdeci">uint16_t analogRead(uint8_t channel)</div><div class="ttdef"><b>Definition:</b> <a href="b15f_8cpp_source.html#l00279">b15f.cpp:279</a></div></div>
-<div class="ttc" id="aclassB15F_html_afc76b612dd4faeee0ac02a66b65af5f2"><div class="ttname"><a href="classB15F.html#afc76b612dd4faeee0ac02a66b65af5f2">B15F::digitalRead1</a></div><div class="ttdeci">uint8_t digitalRead1(void)</div><div class="ttdef"><b>Definition:</b> <a href="b15f_8cpp_source.html#l00221">b15f.cpp:221</a></div></div>
-<div class="ttc" id="aclassB15F_html_a52557b375443c180a044e7d4e80a1ae7"><div class="ttname"><a href="classB15F.html#a52557b375443c180a044e7d4e80a1ae7">B15F::reconnect</a></div><div class="ttdeci">void reconnect(void)</div><div class="ttdef"><b>Definition:</b> <a href="b15f_8cpp_source.html#l00057">b15f.cpp:57</a></div></div>
-<div class="ttc" id="aclassDriverException_html"><div class="ttname"><a href="classDriverException.html">DriverException</a></div><div class="ttdef"><b>Definition:</b> <a href="driverexception_8h_source.html#l00010">driverexception.h:10</a></div></div>
-<!-- start footer part -->
-<hr class="footer"/><address class="footer"><small>
-Generated on Fri Jun 7 2019 14:50:45 for B15F by &#160;<a href="http://www.doxygen.org/index.html">
-<img class="footer" src="doxygen.png" alt="doxygen"/>
-</a> 1.8.16
-</small></address>
-</body>
-</html>
diff --git a/docs/html/view__monitor_8h_source.html b/docs/html/view__monitor_8h_source.html
deleted file mode 100644
index 4b40af7..0000000
--- a/docs/html/view__monitor_8h_source.html
+++ /dev/null
@@ -1,83 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml">
-<head>
-<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
-<meta http-equiv="X-UA-Compatible" content="IE=9"/>
-<meta name="generator" content="Doxygen 1.8.16"/>
-<meta name="viewport" content="width=device-width, initial-scale=1"/>
-<title>B15F: ui/view_monitor.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">B15F
-   </div>
-   <div id="projectbrief">Board 15 Famulus Edition</div>
-  </td>
- </tr>
- </tbody>
-</table>
-</div>
-<!-- end header part -->
-<!-- Generated by Doxygen 1.8.16 -->
-<script type="text/javascript">
-/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
-var searchBox = new SearchBox("searchBox", "search",false,'Search');
-/* @license-end */
-</script>
-<script type="text/javascript" src="menudata.js"></script>
-<script type="text/javascript" src="menu.js"></script>
-<script type="text/javascript">
-/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
-$(function() {
-  initMenu('',true,false,'search.php','Search');
-  $(document).ready(function() { init_search(); });
-});
-/* @license-end */</script>
-<div id="main-nav"></div>
-<!-- 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 id="nav-path" class="navpath">
-  <ul>
-<li class="navelem"><a class="el" href="dir_1788f8309b1a812dcb800a185471cf6c.html">ui</a></li>  </ul>
-</div>
-</div><!-- top -->
-<div class="header">
-  <div class="headertitle">
-<div class="title">view_monitor.h</div>  </div>
-</div><!--header-->
-<div class="contents">
-<div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno">    1</span>&#160;<span class="preprocessor">#ifndef VIEW_MONITOR_H</span></div><div class="line"><a name="l00002"></a><span class="lineno">    2</span>&#160;<span class="preprocessor">#define VIEW_MONITOR_H</span></div><div class="line"><a name="l00003"></a><span class="lineno">    3</span>&#160; </div><div class="line"><a name="l00004"></a><span class="lineno">    4</span>&#160;<span class="preprocessor">#include &lt;thread&gt;</span></div><div class="line"><a name="l00005"></a><span class="lineno">    5</span>&#160;<span class="preprocessor">#include &lt;chrono&gt;</span></div><div class="line"><a name="l00006"></a><span class="lineno">    6</span>&#160;<span class="preprocessor">#include &lt;sstream&gt;</span></div><div class="line"><a name="l00007"></a><span class="lineno">    7</span>&#160;<span class="preprocessor">#include &lt;bitset&gt;</span></div><div class="line"><a name="l00008"></a><span class="lineno">    8</span>&#160;<span class="preprocessor">#include &quot;view_info.h&quot;</span></div><div class="line"><a name="l00009"></a><span class="lineno">    9</span>&#160;<span class="preprocessor">#include &quot;../drv/b15f.h&quot;</span></div><div class="line"><a name="l00010"></a><span class="lineno">   10</span>&#160; </div><div class="line"><a name="l00013"></a><span class="lineno"><a class="line" href="classViewMonitor.html">   13</a></span>&#160;<span class="keyword">class </span><a class="code" href="classViewMonitor.html">ViewMonitor</a> : <span class="keyword">public</span> <a class="code" href="classViewInfo.html">ViewInfo</a></div><div class="line"><a name="l00014"></a><span class="lineno">   14</span>&#160;{</div><div class="line"><a name="l00015"></a><span class="lineno">   15</span>&#160; </div><div class="line"><a name="l00016"></a><span class="lineno">   16</span>&#160;<span class="keyword">public</span>:</div><div class="line"><a name="l00017"></a><span class="lineno">   17</span>&#160;    <a class="code" href="classViewMonitor.html">ViewMonitor</a>(<span class="keywordtype">void</span>);</div><div class="line"><a name="l00018"></a><span class="lineno">   18</span>&#160;    <span class="keyword">virtual</span> call_t keypress(<span class="keywordtype">int</span>&amp; key) <span class="keyword">override</span>;</div><div class="line"><a name="l00019"></a><span class="lineno">   19</span>&#160; </div><div class="line"><a name="l00020"></a><span class="lineno">   20</span>&#160;<span class="keyword">private</span>:</div><div class="line"><a name="l00021"></a><span class="lineno">   21</span>&#160;    std::string fancyDigitalString(uint8_t&amp; b);</div><div class="line"><a name="l00022"></a><span class="lineno">   22</span>&#160;    std::string fancyAnalogString(uint16_t&amp; v);</div><div class="line"><a name="l00023"></a><span class="lineno">   23</span>&#160; </div><div class="line"><a name="l00024"></a><span class="lineno">   24</span>&#160;<span class="keyword">protected</span>:</div><div class="line"><a name="l00025"></a><span class="lineno">   25</span>&#160;    <span class="keyword">virtual</span> <span class="keywordtype">void</span> worker(<span class="keywordtype">void</span>);</div><div class="line"><a name="l00026"></a><span class="lineno">   26</span>&#160;    <span class="keyword">volatile</span> <span class="keywordtype">bool</span> run_worker = <span class="keyword">true</span>;</div><div class="line"><a name="l00027"></a><span class="lineno">   27</span>&#160;    std::thread t_worker;</div><div class="line"><a name="l00028"></a><span class="lineno">   28</span>&#160; </div><div class="line"><a name="l00029"></a><span class="lineno">   29</span>&#160;};</div><div class="line"><a name="l00030"></a><span class="lineno">   30</span>&#160; </div><div class="line"><a name="l00031"></a><span class="lineno">   31</span>&#160;<span class="preprocessor">#endif // VIEW_MONITOR_H</span></div></div><!-- fragment --></div><!-- contents -->
-<div class="ttc" id="aclassViewMonitor_html"><div class="ttname"><a href="classViewMonitor.html">ViewMonitor</a></div><div class="ttdef"><b>Definition:</b> <a href="view__monitor_8h_source.html#l00013">view_monitor.h:13</a></div></div>
-<div class="ttc" id="aclassViewInfo_html"><div class="ttname"><a href="classViewInfo.html">ViewInfo</a></div><div class="ttdef"><b>Definition:</b> <a href="view__info_8h_source.html#l00008">view_info.h:8</a></div></div>
-<!-- start footer part -->
-<hr class="footer"/><address class="footer"><small>
-Generated on Fri Jun 7 2019 14:50:45 for B15F by &#160;<a href="http://www.doxygen.org/index.html">
-<img class="footer" src="doxygen.png" alt="doxygen"/>
-</a> 1.8.16
-</small></address>
-</body>
-</html>
diff --git a/docs/html/view__promt_8cpp_source.html b/docs/html/view__promt_8cpp_source.html
deleted file mode 100644
index 9efc8de..0000000
--- a/docs/html/view__promt_8cpp_source.html
+++ /dev/null
@@ -1,81 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml">
-<head>
-<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
-<meta http-equiv="X-UA-Compatible" content="IE=9"/>
-<meta name="generator" content="Doxygen 1.8.16"/>
-<meta name="viewport" content="width=device-width, initial-scale=1"/>
-<title>B15F: ui/view_promt.cpp 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">B15F
-   </div>
-   <div id="projectbrief">Board 15 Famulus Edition</div>
-  </td>
- </tr>
- </tbody>
-</table>
-</div>
-<!-- end header part -->
-<!-- Generated by Doxygen 1.8.16 -->
-<script type="text/javascript">
-/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
-var searchBox = new SearchBox("searchBox", "search",false,'Search');
-/* @license-end */
-</script>
-<script type="text/javascript" src="menudata.js"></script>
-<script type="text/javascript" src="menu.js"></script>
-<script type="text/javascript">
-/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
-$(function() {
-  initMenu('',true,false,'search.php','Search');
-  $(document).ready(function() { init_search(); });
-});
-/* @license-end */</script>
-<div id="main-nav"></div>
-<!-- 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 id="nav-path" class="navpath">
-  <ul>
-<li class="navelem"><a class="el" href="dir_1788f8309b1a812dcb800a185471cf6c.html">ui</a></li>  </ul>
-</div>
-</div><!-- top -->
-<div class="header">
-  <div class="headertitle">
-<div class="title">view_promt.cpp</div>  </div>
-</div><!--header-->
-<div class="contents">
-<div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno">    1</span>&#160;<span class="preprocessor">#include &quot;view_promt.h&quot;</span></div><div class="line"><a name="l00002"></a><span class="lineno">    2</span>&#160; </div><div class="line"><a name="l00003"></a><span class="lineno">    3</span>&#160;<span class="keywordtype">void</span> ViewPromt::draw()</div><div class="line"><a name="l00004"></a><span class="lineno">    4</span>&#160;{</div><div class="line"><a name="l00005"></a><span class="lineno">    5</span>&#160;    curs_set(1); <span class="comment">// show cursor</span></div><div class="line"><a name="l00006"></a><span class="lineno">    6</span>&#160; </div><div class="line"><a name="l00007"></a><span class="lineno">    7</span>&#160;    <span class="keywordtype">int</span> li = text_offset_y;</div><div class="line"><a name="l00008"></a><span class="lineno">    8</span>&#160;    <span class="keywordtype">int</span> ci = 0;</div><div class="line"><a name="l00009"></a><span class="lineno">    9</span>&#160;    <span class="keywordflow">for</span>(std::string line : str_split(message + input, <span class="stringliteral">&quot;\n&quot;</span>))</div><div class="line"><a name="l00010"></a><span class="lineno">   10</span>&#160;    {</div><div class="line"><a name="l00011"></a><span class="lineno">   11</span>&#160;        mvwprintw(win, ++li, text_offset_x, <span class="stringliteral">&quot;%s&quot;</span>, line.c_str());</div><div class="line"><a name="l00012"></a><span class="lineno">   12</span>&#160;        ci = line.length() + text_offset_x;</div><div class="line"><a name="l00013"></a><span class="lineno">   13</span>&#160;    }</div><div class="line"><a name="l00014"></a><span class="lineno">   14</span>&#160; </div><div class="line"><a name="l00015"></a><span class="lineno">   15</span>&#160;    button_offset_x = (width - label_cancel.length() - sep.length() - label_confirm.length()) / 2;</div><div class="line"><a name="l00016"></a><span class="lineno">   16</span>&#160;    button_offset_y = height - text_offset_y;</div><div class="line"><a name="l00017"></a><span class="lineno">   17</span>&#160; </div><div class="line"><a name="l00018"></a><span class="lineno">   18</span>&#160;    <span class="keywordflow">if</span>(selection == 0)</div><div class="line"><a name="l00019"></a><span class="lineno">   19</span>&#160;    {</div><div class="line"><a name="l00020"></a><span class="lineno">   20</span>&#160;        wattron(win, A_REVERSE);</div><div class="line"><a name="l00021"></a><span class="lineno">   21</span>&#160;        mvwprintw(win, button_offset_y, button_offset_x, <span class="stringliteral">&quot;%s&quot;</span>, label_cancel.c_str());</div><div class="line"><a name="l00022"></a><span class="lineno">   22</span>&#160;        wattroff(win, A_REVERSE);</div><div class="line"><a name="l00023"></a><span class="lineno">   23</span>&#160;        mvwprintw(win, button_offset_y, button_offset_x + label_cancel.length(), <span class="stringliteral">&quot;%s&quot;</span>, sep.c_str());</div><div class="line"><a name="l00024"></a><span class="lineno">   24</span>&#160;        mvwprintw(win, button_offset_y, button_offset_x + label_cancel.length() + sep.length(), <span class="stringliteral">&quot;%s&quot;</span>, label_confirm.c_str());</div><div class="line"><a name="l00025"></a><span class="lineno">   25</span>&#160;    }</div><div class="line"><a name="l00026"></a><span class="lineno">   26</span>&#160;    <span class="keywordflow">else</span></div><div class="line"><a name="l00027"></a><span class="lineno">   27</span>&#160;    {</div><div class="line"><a name="l00028"></a><span class="lineno">   28</span>&#160;        mvwprintw(win, button_offset_y, button_offset_x, <span class="stringliteral">&quot;%s&quot;</span>, label_cancel.c_str());</div><div class="line"><a name="l00029"></a><span class="lineno">   29</span>&#160;        mvwprintw(win, button_offset_y, button_offset_x + label_cancel.length(), <span class="stringliteral">&quot;%s&quot;</span>, sep.c_str());</div><div class="line"><a name="l00030"></a><span class="lineno">   30</span>&#160;        wattron(win, A_REVERSE);</div><div class="line"><a name="l00031"></a><span class="lineno">   31</span>&#160;        mvwprintw(win, button_offset_y, button_offset_x + label_cancel.length() + sep.length(), <span class="stringliteral">&quot;%s&quot;</span>, label_confirm.c_str());</div><div class="line"><a name="l00032"></a><span class="lineno">   32</span>&#160;        wattroff(win, A_REVERSE);</div><div class="line"><a name="l00033"></a><span class="lineno">   33</span>&#160;    }</div><div class="line"><a name="l00034"></a><span class="lineno">   34</span>&#160;    wmove(win, li, ci);</div><div class="line"><a name="l00035"></a><span class="lineno">   35</span>&#160;}</div><div class="line"><a name="l00036"></a><span class="lineno">   36</span>&#160; </div><div class="line"><a name="l00037"></a><span class="lineno">   37</span>&#160;<span class="keywordtype">void</span> ViewPromt::setMessage(std::string message)</div><div class="line"><a name="l00038"></a><span class="lineno">   38</span>&#160;{</div><div class="line"><a name="l00039"></a><span class="lineno">   39</span>&#160;    this-&gt;message = message;</div><div class="line"><a name="l00040"></a><span class="lineno">   40</span>&#160;}</div><div class="line"><a name="l00041"></a><span class="lineno">   41</span>&#160; </div><div class="line"><a name="l00042"></a><span class="lineno">   42</span>&#160;<span class="keywordtype">void</span> ViewPromt::setConfirm(std::string name, std::function&lt;<span class="keywordtype">void</span>(<span class="keywordtype">int</span>)&gt; call)</div><div class="line"><a name="l00043"></a><span class="lineno">   43</span>&#160;{</div><div class="line"><a name="l00044"></a><span class="lineno">   44</span>&#160;    label_confirm = name;</div><div class="line"><a name="l00045"></a><span class="lineno">   45</span>&#160;    call_confirm = call;</div><div class="line"><a name="l00046"></a><span class="lineno">   46</span>&#160;}</div><div class="line"><a name="l00047"></a><span class="lineno">   47</span>&#160; </div><div class="line"><a name="l00048"></a><span class="lineno">   48</span>&#160;<span class="keywordtype">void</span> ViewPromt::setCancel(std::string name, <span class="keywordtype">bool</span> cancelable)</div><div class="line"><a name="l00049"></a><span class="lineno">   49</span>&#160;{</div><div class="line"><a name="l00050"></a><span class="lineno">   50</span>&#160;    label_cancel = name;</div><div class="line"><a name="l00051"></a><span class="lineno">   51</span>&#160;    this-&gt;cancelable = cancelable;</div><div class="line"><a name="l00052"></a><span class="lineno">   52</span>&#160;}</div><div class="line"><a name="l00053"></a><span class="lineno">   53</span>&#160; </div><div class="line"><a name="l00054"></a><span class="lineno">   54</span>&#160;std::string ViewPromt::getInput()</div><div class="line"><a name="l00055"></a><span class="lineno">   55</span>&#160;{</div><div class="line"><a name="l00056"></a><span class="lineno">   56</span>&#160;    <span class="keywordflow">return</span> input;</div><div class="line"><a name="l00057"></a><span class="lineno">   57</span>&#160;}</div><div class="line"><a name="l00058"></a><span class="lineno">   58</span>&#160; </div><div class="line"><a name="l00059"></a><span class="lineno">   59</span>&#160;std::function&lt;void(<span class="keywordtype">int</span>)&gt; ViewPromt::keypress(<span class="keywordtype">int</span>&amp; key)</div><div class="line"><a name="l00060"></a><span class="lineno">   60</span>&#160;{</div><div class="line"><a name="l00061"></a><span class="lineno">   61</span>&#160;    std::function&lt;void(<span class="keywordtype">int</span>)&gt; ret = <span class="keyword">nullptr</span>;</div><div class="line"><a name="l00062"></a><span class="lineno">   62</span>&#160;    <span class="keywordflow">switch</span>(key)</div><div class="line"><a name="l00063"></a><span class="lineno">   63</span>&#160;    {</div><div class="line"><a name="l00064"></a><span class="lineno">   64</span>&#160;    <span class="keywordflow">case</span> KEY_BACKSPACE:</div><div class="line"><a name="l00065"></a><span class="lineno">   65</span>&#160;        <span class="keywordflow">if</span>(input.length())</div><div class="line"><a name="l00066"></a><span class="lineno">   66</span>&#160;            input.pop_back();</div><div class="line"><a name="l00067"></a><span class="lineno">   67</span>&#160;        <span class="keywordflow">break</span>;</div><div class="line"><a name="l00068"></a><span class="lineno">   68</span>&#160;    <span class="keywordflow">case</span> <span class="charliteral">&#39;\t&#39;</span>:</div><div class="line"><a name="l00069"></a><span class="lineno">   69</span>&#160;    <span class="keywordflow">case</span> KEY_LEFT:</div><div class="line"><a name="l00070"></a><span class="lineno">   70</span>&#160;    <span class="keywordflow">case</span> KEY_RIGHT:</div><div class="line"><a name="l00071"></a><span class="lineno">   71</span>&#160;        selection = (selection + 1 ) % 2;</div><div class="line"><a name="l00072"></a><span class="lineno">   72</span>&#160;        <span class="keywordflow">break</span>;</div><div class="line"><a name="l00073"></a><span class="lineno">   73</span>&#160;    <span class="keywordflow">case</span> KEY_MOUSE:</div><div class="line"><a name="l00074"></a><span class="lineno">   74</span>&#160;    {</div><div class="line"><a name="l00075"></a><span class="lineno">   75</span>&#160;        <span class="comment">// http://pronix.linuxdelta.de/C/Linuxprogrammierung/Linuxsystemprogrammieren_C_Kurs_Kapitel10b.shtml</span></div><div class="line"><a name="l00076"></a><span class="lineno">   76</span>&#160;        MEVENT event;</div><div class="line"><a name="l00077"></a><span class="lineno">   77</span>&#160;        <span class="keywordtype">bool</span> hit = <span class="keyword">false</span>;</div><div class="line"><a name="l00078"></a><span class="lineno">   78</span>&#160;        <span class="keywordflow">if</span>(getmouse(&amp;event) == OK &amp;&amp; <span class="keyword">event</span>.bstate &amp; (BUTTON1_CLICKED | BUTTON1_DOUBLE_CLICKED))</div><div class="line"><a name="l00079"></a><span class="lineno">   79</span>&#160;        {</div><div class="line"><a name="l00080"></a><span class="lineno">   80</span>&#160;            <span class="keywordtype">size_t</span> column_start = start_x + button_offset_x;</div><div class="line"><a name="l00081"></a><span class="lineno">   81</span>&#160;            <span class="keywordtype">size_t</span> row_start = start_y + button_offset_y;</div><div class="line"><a name="l00082"></a><span class="lineno">   82</span>&#160;            <span class="keywordtype">size_t</span> mouse_x = <span class="keyword">event</span>.x, mouse_y = <span class="keyword">event</span>.y;</div><div class="line"><a name="l00083"></a><span class="lineno">   83</span>&#160;            <span class="keywordflow">if</span>(mouse_y == row_start)</div><div class="line"><a name="l00084"></a><span class="lineno">   84</span>&#160;            {</div><div class="line"><a name="l00085"></a><span class="lineno">   85</span>&#160;                <span class="keywordflow">if</span>(cancelable &amp;&amp; mouse_x &gt;= column_start &amp;&amp; mouse_x &lt; column_start + label_cancel.length())</div><div class="line"><a name="l00086"></a><span class="lineno">   86</span>&#160;                {</div><div class="line"><a name="l00087"></a><span class="lineno">   87</span>&#160;                    <span class="keywordflow">if</span>(selection == 0 || event.bstate &amp; BUTTON1_DOUBLE_CLICKED)</div><div class="line"><a name="l00088"></a><span class="lineno">   88</span>&#160;                        hit = <span class="keyword">true</span>;</div><div class="line"><a name="l00089"></a><span class="lineno">   89</span>&#160;                    selection = 0;</div><div class="line"><a name="l00090"></a><span class="lineno">   90</span>&#160;                }</div><div class="line"><a name="l00091"></a><span class="lineno">   91</span>&#160;                <span class="keywordflow">if</span>(mouse_x &gt;= column_start + label_cancel.length() + sep.length() &amp;&amp; mouse_x &lt; column_start + label_cancel.length() + sep.length()  + label_confirm.length())</div><div class="line"><a name="l00092"></a><span class="lineno">   92</span>&#160;                {</div><div class="line"><a name="l00093"></a><span class="lineno">   93</span>&#160;                    <span class="keywordflow">if</span>(selection == 1 || event.bstate &amp; BUTTON1_DOUBLE_CLICKED)</div><div class="line"><a name="l00094"></a><span class="lineno">   94</span>&#160;                        hit = <span class="keyword">true</span>;</div><div class="line"><a name="l00095"></a><span class="lineno">   95</span>&#160;                    selection = 1;</div><div class="line"><a name="l00096"></a><span class="lineno">   96</span>&#160;                }</div><div class="line"><a name="l00097"></a><span class="lineno">   97</span>&#160;            }</div><div class="line"><a name="l00098"></a><span class="lineno">   98</span>&#160;        }</div><div class="line"><a name="l00099"></a><span class="lineno">   99</span>&#160;        <span class="keywordflow">if</span>(!hit)</div><div class="line"><a name="l00100"></a><span class="lineno">  100</span>&#160;            <span class="keywordflow">break</span>;</div><div class="line"><a name="l00101"></a><span class="lineno">  101</span>&#160; </div><div class="line"><a name="l00102"></a><span class="lineno">  102</span>&#160;        <span class="comment">// fall through to next case</span></div><div class="line"><a name="l00103"></a><span class="lineno">  103</span>&#160;        [[fallthrough]];</div><div class="line"><a name="l00104"></a><span class="lineno">  104</span>&#160;    }</div><div class="line"><a name="l00105"></a><span class="lineno">  105</span>&#160;    <span class="keywordflow">case</span> KEY_ENT:</div><div class="line"><a name="l00106"></a><span class="lineno">  106</span>&#160;        <span class="keywordflow">if</span>(selection == 0) <span class="comment">// exit</span></div><div class="line"><a name="l00107"></a><span class="lineno">  107</span>&#160;            key = -1; <span class="comment">// do return from view</span></div><div class="line"><a name="l00108"></a><span class="lineno">  108</span>&#160;        <span class="keywordflow">else</span></div><div class="line"><a name="l00109"></a><span class="lineno">  109</span>&#160;            ret = call_confirm;</div><div class="line"><a name="l00110"></a><span class="lineno">  110</span>&#160;        <span class="keywordflow">break</span>;</div><div class="line"><a name="l00111"></a><span class="lineno">  111</span>&#160;    <span class="keywordflow">default</span>:</div><div class="line"><a name="l00112"></a><span class="lineno">  112</span>&#160;        <span class="keywordflow">break</span>;</div><div class="line"><a name="l00113"></a><span class="lineno">  113</span>&#160;    }</div><div class="line"><a name="l00114"></a><span class="lineno">  114</span>&#160; </div><div class="line"><a name="l00115"></a><span class="lineno">  115</span>&#160;    <span class="keywordflow">if</span>(key &gt;= <span class="charliteral">&#39; &#39;</span> &amp;&amp; key &lt;= <span class="charliteral">&#39;~&#39;</span>)</div><div class="line"><a name="l00116"></a><span class="lineno">  116</span>&#160;        input += (char) key;</div><div class="line"><a name="l00117"></a><span class="lineno">  117</span>&#160; </div><div class="line"><a name="l00118"></a><span class="lineno">  118</span>&#160;    <span class="keywordflow">if</span>(key != KEY_ENT)</div><div class="line"><a name="l00119"></a><span class="lineno">  119</span>&#160;        repaint();</div><div class="line"><a name="l00120"></a><span class="lineno">  120</span>&#160;    <span class="keywordflow">return</span> ret;</div><div class="line"><a name="l00121"></a><span class="lineno">  121</span>&#160;}</div></div><!-- fragment --></div><!-- contents -->
-<!-- start footer part -->
-<hr class="footer"/><address class="footer"><small>
-Generated on Fri Jun 7 2019 14:50:45 for B15F by &#160;<a href="http://www.doxygen.org/index.html">
-<img class="footer" src="doxygen.png" alt="doxygen"/>
-</a> 1.8.16
-</small></address>
-</body>
-</html>
diff --git a/docs/html/view__promt_8h_source.html b/docs/html/view__promt_8h_source.html
deleted file mode 100644
index 1250d42..0000000
--- a/docs/html/view__promt_8h_source.html
+++ /dev/null
@@ -1,83 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml">
-<head>
-<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
-<meta http-equiv="X-UA-Compatible" content="IE=9"/>
-<meta name="generator" content="Doxygen 1.8.16"/>
-<meta name="viewport" content="width=device-width, initial-scale=1"/>
-<title>B15F: ui/view_promt.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">B15F
-   </div>
-   <div id="projectbrief">Board 15 Famulus Edition</div>
-  </td>
- </tr>
- </tbody>
-</table>
-</div>
-<!-- end header part -->
-<!-- Generated by Doxygen 1.8.16 -->
-<script type="text/javascript">
-/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
-var searchBox = new SearchBox("searchBox", "search",false,'Search');
-/* @license-end */
-</script>
-<script type="text/javascript" src="menudata.js"></script>
-<script type="text/javascript" src="menu.js"></script>
-<script type="text/javascript">
-/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
-$(function() {
-  initMenu('',true,false,'search.php','Search');
-  $(document).ready(function() { init_search(); });
-});
-/* @license-end */</script>
-<div id="main-nav"></div>
-<!-- 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 id="nav-path" class="navpath">
-  <ul>
-<li class="navelem"><a class="el" href="dir_1788f8309b1a812dcb800a185471cf6c.html">ui</a></li>  </ul>
-</div>
-</div><!-- top -->
-<div class="header">
-  <div class="headertitle">
-<div class="title">view_promt.h</div>  </div>
-</div><!--header-->
-<div class="contents">
-<div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno">    1</span>&#160;<span class="preprocessor">#ifndef VIEW_PROMT_H</span></div><div class="line"><a name="l00002"></a><span class="lineno">    2</span>&#160;<span class="preprocessor">#define VIEW_PROMT_H</span></div><div class="line"><a name="l00003"></a><span class="lineno">    3</span>&#160; </div><div class="line"><a name="l00004"></a><span class="lineno">    4</span>&#160;<span class="preprocessor">#include &lt;vector&gt;</span></div><div class="line"><a name="l00005"></a><span class="lineno">    5</span>&#160;<span class="preprocessor">#include &lt;string&gt;</span></div><div class="line"><a name="l00006"></a><span class="lineno">    6</span>&#160;<span class="preprocessor">#include &quot;view.h&quot;</span></div><div class="line"><a name="l00007"></a><span class="lineno">    7</span>&#160; </div><div class="line"><a name="l00010"></a><span class="lineno"><a class="line" href="classViewPromt.html">   10</a></span>&#160;<span class="keyword">class </span><a class="code" href="classViewPromt.html">ViewPromt</a> : <span class="keyword">public</span> <a class="code" href="classView.html">View</a></div><div class="line"><a name="l00011"></a><span class="lineno">   11</span>&#160;{</div><div class="line"><a name="l00012"></a><span class="lineno">   12</span>&#160;<span class="keyword">public</span>:</div><div class="line"><a name="l00013"></a><span class="lineno">   13</span>&#160;    <span class="keyword">virtual</span> <span class="keywordtype">void</span> draw(<span class="keywordtype">void</span>) <span class="keyword">override</span>;</div><div class="line"><a name="l00014"></a><span class="lineno">   14</span>&#160;    <span class="keyword">virtual</span> <span class="keywordtype">void</span> setMessage(std::string message);</div><div class="line"><a name="l00015"></a><span class="lineno">   15</span>&#160;    <span class="keyword">virtual</span> <span class="keywordtype">void</span> setConfirm(std::string name, call_t call);</div><div class="line"><a name="l00016"></a><span class="lineno">   16</span>&#160;    <span class="keyword">virtual</span> <span class="keywordtype">void</span> setCancel(std::string name, <span class="keywordtype">bool</span> cancelable);</div><div class="line"><a name="l00017"></a><span class="lineno">   17</span>&#160;    <span class="keyword">virtual</span> std::string getInput(<span class="keywordtype">void</span>);</div><div class="line"><a name="l00018"></a><span class="lineno">   18</span>&#160;    <span class="keyword">virtual</span> call_t keypress(<span class="keywordtype">int</span>&amp; key) <span class="keyword">override</span>;</div><div class="line"><a name="l00019"></a><span class="lineno">   19</span>&#160; </div><div class="line"><a name="l00020"></a><span class="lineno">   20</span>&#160;<span class="keyword">protected</span>:</div><div class="line"><a name="l00021"></a><span class="lineno">   21</span>&#160;    <span class="keywordtype">size_t</span> selection = 1;</div><div class="line"><a name="l00022"></a><span class="lineno">   22</span>&#160;    std::string input;</div><div class="line"><a name="l00023"></a><span class="lineno">   23</span>&#160;    std::string message = <span class="stringliteral">&quot;Input&quot;</span>;</div><div class="line"><a name="l00024"></a><span class="lineno">   24</span>&#160;    std::string label_confirm = <span class="stringliteral">&quot;[ OK ]&quot;</span>;</div><div class="line"><a name="l00025"></a><span class="lineno">   25</span>&#160;    std::string sep = <span class="stringliteral">&quot;   &quot;</span>;</div><div class="line"><a name="l00026"></a><span class="lineno">   26</span>&#160;    std::string label_cancel = <span class="stringliteral">&quot;[ Cancel ]&quot;</span>;</div><div class="line"><a name="l00027"></a><span class="lineno">   27</span>&#160;    call_t call_confirm = <span class="keyword">nullptr</span>;</div><div class="line"><a name="l00028"></a><span class="lineno">   28</span>&#160;    <span class="keywordtype">bool</span> cancelable = <span class="keyword">true</span>;</div><div class="line"><a name="l00029"></a><span class="lineno">   29</span>&#160;    <span class="keywordtype">int</span> button_offset_x = 0, button_offset_y = 0;</div><div class="line"><a name="l00030"></a><span class="lineno">   30</span>&#160;    constexpr <span class="keyword">static</span> <span class="keywordtype">int</span> text_offset_x = 2;</div><div class="line"><a name="l00031"></a><span class="lineno">   31</span>&#160;    constexpr <span class="keyword">static</span> <span class="keywordtype">int</span> text_offset_y = 2;</div><div class="line"><a name="l00032"></a><span class="lineno">   32</span>&#160;};</div><div class="line"><a name="l00033"></a><span class="lineno">   33</span>&#160; </div><div class="line"><a name="l00034"></a><span class="lineno">   34</span>&#160;<span class="preprocessor">#endif // VIEW_PROMT_H</span></div></div><!-- fragment --></div><!-- contents -->
-<div class="ttc" id="aclassView_html"><div class="ttname"><a href="classView.html">View</a></div><div class="ttdef"><b>Definition:</b> <a href="view_8h_source.html#l00019">view.h:19</a></div></div>
-<div class="ttc" id="aclassViewPromt_html"><div class="ttname"><a href="classViewPromt.html">ViewPromt</a></div><div class="ttdef"><b>Definition:</b> <a href="view__promt_8h_source.html#l00010">view_promt.h:10</a></div></div>
-<!-- start footer part -->
-<hr class="footer"/><address class="footer"><small>
-Generated on Fri Jun 7 2019 14:50:45 for B15F by &#160;<a href="http://www.doxygen.org/index.html">
-<img class="footer" src="doxygen.png" alt="doxygen"/>
-</a> 1.8.16
-</small></address>
-</body>
-</html>
diff --git a/docs/html/view__selection_8cpp_source.html b/docs/html/view__selection_8cpp_source.html
deleted file mode 100644
index b6eab9b..0000000
--- a/docs/html/view__selection_8cpp_source.html
+++ /dev/null
@@ -1,81 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml">
-<head>
-<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
-<meta http-equiv="X-UA-Compatible" content="IE=9"/>
-<meta name="generator" content="Doxygen 1.8.16"/>
-<meta name="viewport" content="width=device-width, initial-scale=1"/>
-<title>B15F: ui/view_selection.cpp 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">B15F
-   </div>
-   <div id="projectbrief">Board 15 Famulus Edition</div>
-  </td>
- </tr>
- </tbody>
-</table>
-</div>
-<!-- end header part -->
-<!-- Generated by Doxygen 1.8.16 -->
-<script type="text/javascript">
-/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
-var searchBox = new SearchBox("searchBox", "search",false,'Search');
-/* @license-end */
-</script>
-<script type="text/javascript" src="menudata.js"></script>
-<script type="text/javascript" src="menu.js"></script>
-<script type="text/javascript">
-/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
-$(function() {
-  initMenu('',true,false,'search.php','Search');
-  $(document).ready(function() { init_search(); });
-});
-/* @license-end */</script>
-<div id="main-nav"></div>
-<!-- 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 id="nav-path" class="navpath">
-  <ul>
-<li class="navelem"><a class="el" href="dir_1788f8309b1a812dcb800a185471cf6c.html">ui</a></li>  </ul>
-</div>
-</div><!-- top -->
-<div class="header">
-  <div class="headertitle">
-<div class="title">view_selection.cpp</div>  </div>
-</div><!--header-->
-<div class="contents">
-<div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno">    1</span>&#160;<span class="preprocessor">#include &quot;view_selection.h&quot;</span></div><div class="line"><a name="l00002"></a><span class="lineno">    2</span>&#160; </div><div class="line"><a name="l00003"></a><span class="lineno">    3</span>&#160;<span class="keywordtype">void</span> ViewSelection::draw()</div><div class="line"><a name="l00004"></a><span class="lineno">    4</span>&#160;{</div><div class="line"><a name="l00005"></a><span class="lineno">    5</span>&#160;    <span class="comment">//curs_set(0); // hide cursor</span></div><div class="line"><a name="l00006"></a><span class="lineno">    6</span>&#160;    <span class="keywordflow">for</span>(<span class="keywordtype">size_t</span> i = 0; i &lt; choices.size(); i++)</div><div class="line"><a name="l00007"></a><span class="lineno">    7</span>&#160;    {</div><div class="line"><a name="l00008"></a><span class="lineno">    8</span>&#160;        <span class="keywordflow">if</span>(selection == i)</div><div class="line"><a name="l00009"></a><span class="lineno">    9</span>&#160;            wattron(win, A_REVERSE);</div><div class="line"><a name="l00010"></a><span class="lineno">   10</span>&#160;        mvwprintw(win, i + choice_offset_y, choice_offset_x, <span class="stringliteral">&quot;%s&quot;</span>, choices[i].c_str());</div><div class="line"><a name="l00011"></a><span class="lineno">   11</span>&#160;        <span class="keywordflow">if</span>(selection == i)</div><div class="line"><a name="l00012"></a><span class="lineno">   12</span>&#160;            wattroff(win, A_REVERSE);</div><div class="line"><a name="l00013"></a><span class="lineno">   13</span>&#160;    }</div><div class="line"><a name="l00014"></a><span class="lineno">   14</span>&#160;}</div><div class="line"><a name="l00015"></a><span class="lineno">   15</span>&#160; </div><div class="line"><a name="l00016"></a><span class="lineno">   16</span>&#160;<span class="keywordtype">void</span> ViewSelection::addChoice(std::string name, call_t call)</div><div class="line"><a name="l00017"></a><span class="lineno">   17</span>&#160;{</div><div class="line"><a name="l00018"></a><span class="lineno">   18</span>&#160;    choices.push_back(name);</div><div class="line"><a name="l00019"></a><span class="lineno">   19</span>&#160;    calls.push_back(call);</div><div class="line"><a name="l00020"></a><span class="lineno">   20</span>&#160;}</div><div class="line"><a name="l00021"></a><span class="lineno">   21</span>&#160; </div><div class="line"><a name="l00022"></a><span class="lineno">   22</span>&#160;call_t ViewSelection::keypress(<span class="keywordtype">int</span>&amp; key)</div><div class="line"><a name="l00023"></a><span class="lineno">   23</span>&#160;{</div><div class="line"><a name="l00024"></a><span class="lineno">   24</span>&#160;    call_t ret = <span class="keyword">nullptr</span>;</div><div class="line"><a name="l00025"></a><span class="lineno">   25</span>&#160;    <span class="keywordflow">switch</span>(key)</div><div class="line"><a name="l00026"></a><span class="lineno">   26</span>&#160;    {</div><div class="line"><a name="l00027"></a><span class="lineno">   27</span>&#160;    <span class="keywordflow">case</span> KEY_UP:</div><div class="line"><a name="l00028"></a><span class="lineno">   28</span>&#160;        <span class="keywordflow">do</span></div><div class="line"><a name="l00029"></a><span class="lineno">   29</span>&#160;            selection = (selection - 1 + choices.size()) % choices.size();</div><div class="line"><a name="l00030"></a><span class="lineno">   30</span>&#160;        <span class="keywordflow">while</span>(!choices[selection].length() &amp;&amp; choices.size());</div><div class="line"><a name="l00031"></a><span class="lineno">   31</span>&#160;        <span class="keywordflow">break</span>;</div><div class="line"><a name="l00032"></a><span class="lineno">   32</span>&#160; </div><div class="line"><a name="l00033"></a><span class="lineno">   33</span>&#160;    <span class="keywordflow">case</span> <span class="charliteral">&#39;\t&#39;</span>:</div><div class="line"><a name="l00034"></a><span class="lineno">   34</span>&#160;    <span class="keywordflow">case</span> KEY_DOWN:</div><div class="line"><a name="l00035"></a><span class="lineno">   35</span>&#160;        <span class="keywordflow">do</span></div><div class="line"><a name="l00036"></a><span class="lineno">   36</span>&#160;            selection = (selection + 1) % choices.size();</div><div class="line"><a name="l00037"></a><span class="lineno">   37</span>&#160;        <span class="keywordflow">while</span>(!choices[selection].length() &amp;&amp; choices.size());</div><div class="line"><a name="l00038"></a><span class="lineno">   38</span>&#160;        <span class="keywordflow">break</span>;</div><div class="line"><a name="l00039"></a><span class="lineno">   39</span>&#160; </div><div class="line"><a name="l00040"></a><span class="lineno">   40</span>&#160;    <span class="keywordflow">case</span> KEY_MOUSE:</div><div class="line"><a name="l00041"></a><span class="lineno">   41</span>&#160;    {</div><div class="line"><a name="l00042"></a><span class="lineno">   42</span>&#160;        <span class="comment">// http://pronix.linuxdelta.de/C/Linuxprogrammierung/Linuxsystemprogrammieren_C_Kurs_Kapitel10b.shtml</span></div><div class="line"><a name="l00043"></a><span class="lineno">   43</span>&#160;        MEVENT event;</div><div class="line"><a name="l00044"></a><span class="lineno">   44</span>&#160;        <span class="keywordtype">bool</span> hit = <span class="keyword">false</span>;</div><div class="line"><a name="l00045"></a><span class="lineno">   45</span>&#160;        <span class="keywordflow">if</span>(getmouse(&amp;event) == OK &amp;&amp; <span class="keyword">event</span>.bstate &amp; (BUTTON1_CLICKED | BUTTON1_DOUBLE_CLICKED))</div><div class="line"><a name="l00046"></a><span class="lineno">   46</span>&#160;        {</div><div class="line"><a name="l00047"></a><span class="lineno">   47</span>&#160;            <span class="keywordtype">size_t</span> column_start = start_x + choice_offset_x;</div><div class="line"><a name="l00048"></a><span class="lineno">   48</span>&#160;            <span class="keywordtype">size_t</span> row_start = start_y + choice_offset_y;</div><div class="line"><a name="l00049"></a><span class="lineno">   49</span>&#160;            <span class="keywordtype">size_t</span> mouse_x = <span class="keyword">event</span>.x, mouse_y = <span class="keyword">event</span>.y;</div><div class="line"><a name="l00050"></a><span class="lineno">   50</span>&#160;            <span class="keywordflow">for</span>(<span class="keywordtype">size_t</span> i = 0; i &lt; choices.size(); i++)</div><div class="line"><a name="l00051"></a><span class="lineno">   51</span>&#160;                <span class="keywordflow">if</span>(choices[i].length() &amp;&amp; mouse_y == row_start + i &amp;&amp; mouse_x &gt;= column_start &amp;&amp; mouse_x &lt; column_start + choices[i].length())</div><div class="line"><a name="l00052"></a><span class="lineno">   52</span>&#160;                {</div><div class="line"><a name="l00053"></a><span class="lineno">   53</span>&#160;                    <span class="keywordflow">if</span>(selection == i || event.bstate &amp; BUTTON1_DOUBLE_CLICKED)</div><div class="line"><a name="l00054"></a><span class="lineno">   54</span>&#160;                        hit = <span class="keyword">true</span>;</div><div class="line"><a name="l00055"></a><span class="lineno">   55</span>&#160;                    selection = i;</div><div class="line"><a name="l00056"></a><span class="lineno">   56</span>&#160;                }</div><div class="line"><a name="l00057"></a><span class="lineno">   57</span>&#160;        }</div><div class="line"><a name="l00058"></a><span class="lineno">   58</span>&#160;        <span class="keywordflow">if</span>(!hit)</div><div class="line"><a name="l00059"></a><span class="lineno">   59</span>&#160;            <span class="keywordflow">break</span>;</div><div class="line"><a name="l00060"></a><span class="lineno">   60</span>&#160; </div><div class="line"><a name="l00061"></a><span class="lineno">   61</span>&#160;        <span class="comment">// fall through to next case</span></div><div class="line"><a name="l00062"></a><span class="lineno">   62</span>&#160;        [[fallthrough]];</div><div class="line"><a name="l00063"></a><span class="lineno">   63</span>&#160;    }</div><div class="line"><a name="l00064"></a><span class="lineno">   64</span>&#160; </div><div class="line"><a name="l00065"></a><span class="lineno">   65</span>&#160;    <span class="keywordflow">case</span> KEY_ENT:</div><div class="line"><a name="l00066"></a><span class="lineno">   66</span>&#160;        <span class="keywordflow">if</span>(selection == choices.size() - 1) <span class="comment">// exit</span></div><div class="line"><a name="l00067"></a><span class="lineno">   67</span>&#160;            key = -1; <span class="comment">// do return from view</span></div><div class="line"><a name="l00068"></a><span class="lineno">   68</span>&#160;        <span class="keywordflow">else</span></div><div class="line"><a name="l00069"></a><span class="lineno">   69</span>&#160;            ret = calls[selection];</div><div class="line"><a name="l00070"></a><span class="lineno">   70</span>&#160;        <span class="keywordflow">break</span>;</div><div class="line"><a name="l00071"></a><span class="lineno">   71</span>&#160;    <span class="keywordflow">default</span>:</div><div class="line"><a name="l00072"></a><span class="lineno">   72</span>&#160;        <span class="keywordflow">break</span>;</div><div class="line"><a name="l00073"></a><span class="lineno">   73</span>&#160;    }</div><div class="line"><a name="l00074"></a><span class="lineno">   74</span>&#160;    repaint();</div><div class="line"><a name="l00075"></a><span class="lineno">   75</span>&#160;    <span class="keywordflow">return</span> ret;</div><div class="line"><a name="l00076"></a><span class="lineno">   76</span>&#160;}</div></div><!-- fragment --></div><!-- contents -->
-<!-- start footer part -->
-<hr class="footer"/><address class="footer"><small>
-Generated on Fri Jun 7 2019 14:50:45 for B15F by &#160;<a href="http://www.doxygen.org/index.html">
-<img class="footer" src="doxygen.png" alt="doxygen"/>
-</a> 1.8.16
-</small></address>
-</body>
-</html>
diff --git a/docs/html/view__selection_8h_source.html b/docs/html/view__selection_8h_source.html
deleted file mode 100644
index d2ea6f5..0000000
--- a/docs/html/view__selection_8h_source.html
+++ /dev/null
@@ -1,83 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml">
-<head>
-<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
-<meta http-equiv="X-UA-Compatible" content="IE=9"/>
-<meta name="generator" content="Doxygen 1.8.16"/>
-<meta name="viewport" content="width=device-width, initial-scale=1"/>
-<title>B15F: ui/view_selection.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">B15F
-   </div>
-   <div id="projectbrief">Board 15 Famulus Edition</div>
-  </td>
- </tr>
- </tbody>
-</table>
-</div>
-<!-- end header part -->
-<!-- Generated by Doxygen 1.8.16 -->
-<script type="text/javascript">
-/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
-var searchBox = new SearchBox("searchBox", "search",false,'Search');
-/* @license-end */
-</script>
-<script type="text/javascript" src="menudata.js"></script>
-<script type="text/javascript" src="menu.js"></script>
-<script type="text/javascript">
-/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
-$(function() {
-  initMenu('',true,false,'search.php','Search');
-  $(document).ready(function() { init_search(); });
-});
-/* @license-end */</script>
-<div id="main-nav"></div>
-<!-- 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 id="nav-path" class="navpath">
-  <ul>
-<li class="navelem"><a class="el" href="dir_1788f8309b1a812dcb800a185471cf6c.html">ui</a></li>  </ul>
-</div>
-</div><!-- top -->
-<div class="header">
-  <div class="headertitle">
-<div class="title">view_selection.h</div>  </div>
-</div><!--header-->
-<div class="contents">
-<div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno">    1</span>&#160;<span class="preprocessor">#ifndef VIEW_SELECTION_H</span></div><div class="line"><a name="l00002"></a><span class="lineno">    2</span>&#160;<span class="preprocessor">#define VIEW_SELECTION_H</span></div><div class="line"><a name="l00003"></a><span class="lineno">    3</span>&#160; </div><div class="line"><a name="l00004"></a><span class="lineno">    4</span>&#160;<span class="preprocessor">#include &lt;vector&gt;</span></div><div class="line"><a name="l00005"></a><span class="lineno">    5</span>&#160;<span class="preprocessor">#include &lt;string&gt;</span></div><div class="line"><a name="l00006"></a><span class="lineno">    6</span>&#160;<span class="preprocessor">#include &quot;view.h&quot;</span></div><div class="line"><a name="l00007"></a><span class="lineno">    7</span>&#160; </div><div class="line"><a name="l00010"></a><span class="lineno"><a class="line" href="classViewSelection.html">   10</a></span>&#160;<span class="keyword">class </span><a class="code" href="classViewSelection.html">ViewSelection</a> : <span class="keyword">public</span> <a class="code" href="classView.html">View</a></div><div class="line"><a name="l00011"></a><span class="lineno">   11</span>&#160;{</div><div class="line"><a name="l00012"></a><span class="lineno">   12</span>&#160;<span class="keyword">public</span>:</div><div class="line"><a name="l00013"></a><span class="lineno">   13</span>&#160;    <span class="keyword">virtual</span> <span class="keywordtype">void</span> draw(<span class="keywordtype">void</span>) <span class="keyword">override</span>;</div><div class="line"><a name="l00014"></a><span class="lineno">   14</span>&#160;    <span class="keyword">virtual</span> <span class="keywordtype">void</span> addChoice(std::string name, call_t call);</div><div class="line"><a name="l00015"></a><span class="lineno">   15</span>&#160;    <span class="keyword">virtual</span> call_t keypress(<span class="keywordtype">int</span>&amp; key) <span class="keyword">override</span>;</div><div class="line"><a name="l00016"></a><span class="lineno">   16</span>&#160; </div><div class="line"><a name="l00017"></a><span class="lineno">   17</span>&#160; </div><div class="line"><a name="l00018"></a><span class="lineno">   18</span>&#160;<span class="keyword">protected</span>:</div><div class="line"><a name="l00019"></a><span class="lineno">   19</span>&#160;    <span class="keywordtype">size_t</span> selection = 0;</div><div class="line"><a name="l00020"></a><span class="lineno">   20</span>&#160;    std::vector&lt;std::string&gt; choices;</div><div class="line"><a name="l00021"></a><span class="lineno">   21</span>&#160; </div><div class="line"><a name="l00022"></a><span class="lineno">   22</span>&#160;    constexpr <span class="keyword">static</span> <span class="keywordtype">int</span> choice_offset_x = 2;</div><div class="line"><a name="l00023"></a><span class="lineno">   23</span>&#160;    constexpr <span class="keyword">static</span> <span class="keywordtype">int</span> choice_offset_y = 3;</div><div class="line"><a name="l00024"></a><span class="lineno">   24</span>&#160;};</div><div class="line"><a name="l00025"></a><span class="lineno">   25</span>&#160; </div><div class="line"><a name="l00026"></a><span class="lineno">   26</span>&#160;<span class="preprocessor">#endif // VIEW_SELECTION_H</span></div></div><!-- fragment --></div><!-- contents -->
-<div class="ttc" id="aclassView_html"><div class="ttname"><a href="classView.html">View</a></div><div class="ttdef"><b>Definition:</b> <a href="view_8h_source.html#l00019">view.h:19</a></div></div>
-<div class="ttc" id="aclassViewSelection_html"><div class="ttname"><a href="classViewSelection.html">ViewSelection</a></div><div class="ttdef"><b>Definition:</b> <a href="view__selection_8h_source.html#l00010">view_selection.h:10</a></div></div>
-<!-- start footer part -->
-<hr class="footer"/><address class="footer"><small>
-Generated on Fri Jun 7 2019 14:50:45 for B15F by &#160;<a href="http://www.doxygen.org/index.html">
-<img class="footer" src="doxygen.png" alt="doxygen"/>
-</a> 1.8.16
-</small></address>
-</body>
-</html>