Kaynağa Gözat

First doxygen documentation generated and added

Philipp Hinz 8 yıl önce
ebeveyn
işleme
2fd59110f1
100 değiştirilmiş dosya ile 15110 ekleme ve 0 silme
  1. 96 0
      CoffeeCode/html/README_8md.html
  2. 103 0
      CoffeeCode/html/annotated.html
  3. BIN
      CoffeeCode/html/arrowdown.png
  4. BIN
      CoffeeCode/html/arrowright.png
  5. BIN
      CoffeeCode/html/bc_s.png
  6. BIN
      CoffeeCode/html/bdwn.png
  7. 107 0
      CoffeeCode/html/classes.html
  8. 312 0
      CoffeeCode/html/classtimer.html
  9. BIN
      CoffeeCode/html/closed.png
  10. 266 0
      CoffeeCode/html/crc_8cpp.html
  11. 343 0
      CoffeeCode/html/crc_8h.html
  12. 177 0
      CoffeeCode/html/crc_8h_source.html
  13. 501 0
      CoffeeCode/html/database_8cpp.html
  14. 516 0
      CoffeeCode/html/database_8h.html
  15. 165 0
      CoffeeCode/html/database_8h_source.html
  16. BIN
      CoffeeCode/html/doc.png
  17. 1454 0
      CoffeeCode/html/doxygen.css
  18. BIN
      CoffeeCode/html/doxygen.png
  19. 97 0
      CoffeeCode/html/dynsections.js
  20. 118 0
      CoffeeCode/html/files.html
  21. BIN
      CoffeeCode/html/folderclosed.png
  22. BIN
      CoffeeCode/html/folderopen.png
  23. 135 0
      CoffeeCode/html/functions.html
  24. 123 0
      CoffeeCode/html/functions_func.html
  25. 114 0
      CoffeeCode/html/functions_vars.html
  26. 350 0
      CoffeeCode/html/global_8h.html
  27. 143 0
      CoffeeCode/html/global_8h_source.html
  28. 134 0
      CoffeeCode/html/globals.html
  29. 134 0
      CoffeeCode/html/globals_b.html
  30. 189 0
      CoffeeCode/html/globals_c.html
  31. 134 0
      CoffeeCode/html/globals_d.html
  32. 416 0
      CoffeeCode/html/globals_defs.html
  33. 137 0
      CoffeeCode/html/globals_e.html
  34. 120 0
      CoffeeCode/html/globals_enum.html
  35. 239 0
      CoffeeCode/html/globals_eval.html
  36. 150 0
      CoffeeCode/html/globals_f.html
  37. 489 0
      CoffeeCode/html/globals_func.html
  38. 205 0
      CoffeeCode/html/globals_h.html
  39. 162 0
      CoffeeCode/html/globals_i.html
  40. 162 0
      CoffeeCode/html/globals_k.html
  41. 307 0
      CoffeeCode/html/globals_l.html
  42. 144 0
      CoffeeCode/html/globals_m.html
  43. 135 0
      CoffeeCode/html/globals_n.html
  44. 139 0
      CoffeeCode/html/globals_o.html
  45. 143 0
      CoffeeCode/html/globals_p.html
  46. 148 0
      CoffeeCode/html/globals_r.html
  47. 357 0
      CoffeeCode/html/globals_s.html
  48. 184 0
      CoffeeCode/html/globals_t.html
  49. 108 0
      CoffeeCode/html/globals_type.html
  50. 137 0
      CoffeeCode/html/globals_u.html
  51. 156 0
      CoffeeCode/html/globals_v.html
  52. 183 0
      CoffeeCode/html/globals_vars.html
  53. 134 0
      CoffeeCode/html/globals_w.html
  54. 524 0
      CoffeeCode/html/hal_8cpp.html
  55. 698 0
      CoffeeCode/html/hal_8h.html
  56. 186 0
      CoffeeCode/html/hal_8h_source.html
  57. 105 0
      CoffeeCode/html/index.html
  58. 15 0
      CoffeeCode/html/jquery.js
  59. 770 0
      CoffeeCode/html/lcd_8cpp.html
  60. 536 0
      CoffeeCode/html/lcd_8h.html
  61. 156 0
      CoffeeCode/html/lcd_8h_source.html
  62. 307 0
      CoffeeCode/html/logger_8cpp.html
  63. 499 0
      CoffeeCode/html/logger_8h.html
  64. 182 0
      CoffeeCode/html/logger_8h_source.html
  65. 423 0
      CoffeeCode/html/main_8cpp.html
  66. BIN
      CoffeeCode/html/nav_f.png
  67. BIN
      CoffeeCode/html/nav_g.png
  68. BIN
      CoffeeCode/html/nav_h.png
  69. BIN
      CoffeeCode/html/open.png
  70. 26 0
      CoffeeCode/html/search/all_0.html
  71. 4 0
      CoffeeCode/html/search/all_0.js
  72. 26 0
      CoffeeCode/html/search/all_1.html
  73. 5 0
      CoffeeCode/html/search/all_1.js
  74. 26 0
      CoffeeCode/html/search/all_10.html
  75. 76 0
      CoffeeCode/html/search/all_10.js
  76. 26 0
      CoffeeCode/html/search/all_11.html
  77. 23 0
      CoffeeCode/html/search/all_11.js
  78. 26 0
      CoffeeCode/html/search/all_12.html
  79. 5 0
      CoffeeCode/html/search/all_12.js
  80. 26 0
      CoffeeCode/html/search/all_13.html
  81. 11 0
      CoffeeCode/html/search/all_13.js
  82. 26 0
      CoffeeCode/html/search/all_14.html
  83. 4 0
      CoffeeCode/html/search/all_14.js
  84. 26 0
      CoffeeCode/html/search/all_2.html
  85. 23 0
      CoffeeCode/html/search/all_2.js
  86. 26 0
      CoffeeCode/html/search/all_3.html
  87. 6 0
      CoffeeCode/html/search/all_3.js
  88. 26 0
      CoffeeCode/html/search/all_4.html
  89. 5 0
      CoffeeCode/html/search/all_4.js
  90. 26 0
      CoffeeCode/html/search/all_5.html
  91. 9 0
      CoffeeCode/html/search/all_5.js
  92. 26 0
      CoffeeCode/html/search/all_6.html
  93. 6 0
      CoffeeCode/html/search/all_6.js
  94. 26 0
      CoffeeCode/html/search/all_7.html
  95. 24 0
      CoffeeCode/html/search/all_7.js
  96. 26 0
      CoffeeCode/html/search/all_8.html
  97. 13 0
      CoffeeCode/html/search/all_8.js
  98. 26 0
      CoffeeCode/html/search/all_9.html
  99. 13 0
      CoffeeCode/html/search/all_9.js
  100. 26 0
      CoffeeCode/html/search/all_a.html

+ 96 - 0
CoffeeCode/html/README_8md.html

@@ -0,0 +1,96 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.10"/>
+<title>CoffeePi: README.md File 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>
+<script type="text/javascript">
+  $(document).ready(function() { init_search(); });
+</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">CoffeePi
+   </div>
+   <div id="projectbrief">Coffee machine control for Raspberry Pi</div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.10 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+  <div id="navrow1" class="tabs">
+    <ul class="tablist">
+      <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+      <li><a href="annotated.html"><span>Data&#160;Structures</span></a></li>
+      <li class="current"><a href="files.html"><span>Files</span></a></li>
+      <li>
+        <div id="MSearchBox" class="MSearchBoxInactive">
+        <span class="left">
+          <img id="MSearchSelect" src="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="search/close.png" alt=""/></a>
+          </span>
+        </div>
+      </li>
+    </ul>
+  </div>
+  <div id="navrow2" class="tabs2">
+    <ul class="tablist">
+      <li><a href="files.html"><span>File&#160;List</span></a></li>
+      <li><a href="globals.html"><span>Globals</span></a></li>
+    </ul>
+  </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">README.md File Reference</div>  </div>
+</div><!--header-->
+<div class="contents">
+</div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.10
+</small></address>
+</body>
+</html>

+ 103 - 0
CoffeeCode/html/annotated.html

@@ -0,0 +1,103 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.10"/>
+<title>CoffeePi: Data Structures</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>
+<script type="text/javascript">
+  $(document).ready(function() { init_search(); });
+</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">CoffeePi
+   </div>
+   <div id="projectbrief">Coffee machine control for Raspberry Pi</div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.10 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+  <div id="navrow1" class="tabs">
+    <ul class="tablist">
+      <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+      <li class="current"><a href="annotated.html"><span>Data&#160;Structures</span></a></li>
+      <li><a href="files.html"><span>Files</span></a></li>
+      <li>
+        <div id="MSearchBox" class="MSearchBoxInactive">
+        <span class="left">
+          <img id="MSearchSelect" src="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="search/close.png" alt=""/></a>
+          </span>
+        </div>
+      </li>
+    </ul>
+  </div>
+  <div id="navrow2" class="tabs2">
+    <ul class="tablist">
+      <li class="current"><a href="annotated.html"><span>Data&#160;Structures</span></a></li>
+      <li><a href="classes.html"><span>Data&#160;Structure&#160;Index</span></a></li>
+      <li><a href="functions.html"><span>Data&#160;Fields</span></a></li>
+    </ul>
+  </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">Data Structures</div>  </div>
+</div><!--header-->
+<div class="contents">
+<div class="textblock">Here are the data structures 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="structstripe__color.html" target="_self">stripe_color</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="classtimer.html" target="_self">timer</a></td><td class="desc">Timer Class This class allows the creation of multiple timers that are based by a divider on a single system timer </td></tr>
+</table>
+</div><!-- directory -->
+</div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.10
+</small></address>
+</body>
+</html>

BIN
CoffeeCode/html/arrowdown.png


BIN
CoffeeCode/html/arrowright.png


BIN
CoffeeCode/html/bc_s.png


BIN
CoffeeCode/html/bdwn.png


+ 107 - 0
CoffeeCode/html/classes.html

@@ -0,0 +1,107 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.10"/>
+<title>CoffeePi: Data Structure 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>
+<script type="text/javascript">
+  $(document).ready(function() { init_search(); });
+</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">CoffeePi
+   </div>
+   <div id="projectbrief">Coffee machine control for Raspberry Pi</div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.10 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+  <div id="navrow1" class="tabs">
+    <ul class="tablist">
+      <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+      <li class="current"><a href="annotated.html"><span>Data&#160;Structures</span></a></li>
+      <li><a href="files.html"><span>Files</span></a></li>
+      <li>
+        <div id="MSearchBox" class="MSearchBoxInactive">
+        <span class="left">
+          <img id="MSearchSelect" src="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="search/close.png" alt=""/></a>
+          </span>
+        </div>
+      </li>
+    </ul>
+  </div>
+  <div id="navrow2" class="tabs2">
+    <ul class="tablist">
+      <li><a href="annotated.html"><span>Data&#160;Structures</span></a></li>
+      <li class="current"><a href="classes.html"><span>Data&#160;Structure&#160;Index</span></a></li>
+      <li><a href="functions.html"><span>Data&#160;Fields</span></a></li>
+    </ul>
+  </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">Data Structure Index</div>  </div>
+</div><!--header-->
+<div class="contents">
+<div class="qindex"><a class="qindex" href="#letter_S">S</a>&#160;|&#160;<a class="qindex" href="#letter_T">T</a></div>
+<table style="margin: 10px; white-space: nowrap;" align="center" width="95%" border="0" cellspacing="0" cellpadding="0">
+<tr><td rowspan="2" valign="bottom"><a name="letter_s"></a><table border="0" cellspacing="0" cellpadding="0"><tr><td><div class="ah">&#160;&#160;s&#160;&#160;</div></td></tr></table>
+</td><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></td></tr>
+<tr><td></td></tr>
+<tr><td valign="top"><a class="el" href="structstripe__color.html">stripe_color</a>&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtimer.html">timer</a>&#160;&#160;&#160;</td><td></td></tr>
+<tr><td></td><td></td><td></td></tr>
+</table>
+<div class="qindex"><a class="qindex" href="#letter_S">S</a>&#160;|&#160;<a class="qindex" href="#letter_T">T</a></div>
+</div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.10
+</small></address>
+</body>
+</html>

+ 312 - 0
CoffeeCode/html/classtimer.html

@@ -0,0 +1,312 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.10"/>
+<title>CoffeePi: timer 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>
+<script type="text/javascript">
+  $(document).ready(function() { init_search(); });
+</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">CoffeePi
+   </div>
+   <div id="projectbrief">Coffee machine control for Raspberry Pi</div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.10 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+  <div id="navrow1" class="tabs">
+    <ul class="tablist">
+      <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+      <li class="current"><a href="annotated.html"><span>Data&#160;Structures</span></a></li>
+      <li><a href="files.html"><span>Files</span></a></li>
+      <li>
+        <div id="MSearchBox" class="MSearchBoxInactive">
+        <span class="left">
+          <img id="MSearchSelect" src="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="search/close.png" alt=""/></a>
+          </span>
+        </div>
+      </li>
+    </ul>
+  </div>
+  <div id="navrow2" class="tabs2">
+    <ul class="tablist">
+      <li><a href="annotated.html"><span>Data&#160;Structures</span></a></li>
+      <li><a href="classes.html"><span>Data&#160;Structure&#160;Index</span></a></li>
+      <li><a href="functions.html"><span>Data&#160;Fields</span></a></li>
+    </ul>
+  </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-attribs">Data Fields</a>  </div>
+  <div class="headertitle">
+<div class="title">timer Class Reference</div>  </div>
+</div><!--header-->
+<div class="contents">
+
+<p>Timer Class This class allows the creation of multiple timers that are based by a divider on a single system timer.  
+ <a href="classtimer.html#details">More...</a></p>
+
+<p><code>#include &lt;<a class="el" href="timer_8h_source.html">timer.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:a863dd9a194499a5ebbaf6937969916f2"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classtimer.html#a863dd9a194499a5ebbaf6937969916f2">timer</a> (void(*handler)(void))</td></tr>
+<tr class="memdesc:a863dd9a194499a5ebbaf6937969916f2"><td class="mdescLeft">&#160;</td><td class="mdescRight">Timer constructor Depending on the call of the constructor the handler will be called as thread or not.  <a href="#a863dd9a194499a5ebbaf6937969916f2">More...</a><br /></td></tr>
+<tr class="separator:a863dd9a194499a5ebbaf6937969916f2"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a36730b19460d9576fe6d7535f969105a"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classtimer.html#a36730b19460d9576fe6d7535f969105a">timer</a> (void *(*handler)(void *))</td></tr>
+<tr class="separator:a36730b19460d9576fe6d7535f969105a"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a0a4b48605728320ce7a5a825e34e16f2"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classtimer.html#a0a4b48605728320ce7a5a825e34e16f2">setDivider</a> (int divider)</td></tr>
+<tr class="memdesc:a0a4b48605728320ce7a5a825e34e16f2"><td class="mdescLeft">&#160;</td><td class="mdescRight">sets the divider for this timer (based on system timer)  <a href="#a0a4b48605728320ce7a5a825e34e16f2">More...</a><br /></td></tr>
+<tr class="separator:a0a4b48605728320ce7a5a825e34e16f2"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a3d5386a682a23df5c6a841ce8fc55bd4"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classtimer.html#a3d5386a682a23df5c6a841ce8fc55bd4">getDivider</a> ()</td></tr>
+<tr class="memdesc:a3d5386a682a23df5c6a841ce8fc55bd4"><td class="mdescLeft">&#160;</td><td class="mdescRight">reads the timer divider  <a href="#a3d5386a682a23df5c6a841ce8fc55bd4">More...</a><br /></td></tr>
+<tr class="separator:a3d5386a682a23df5c6a841ce8fc55bd4"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a7d9f6d9f98d51534be127d57f497b345"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classtimer.html#a7d9f6d9f98d51534be127d57f497b345">call</a> ()</td></tr>
+<tr class="memdesc:a7d9f6d9f98d51534be127d57f497b345"><td class="mdescLeft">&#160;</td><td class="mdescRight">Calls the timer handler if enabled.  <a href="#a7d9f6d9f98d51534be127d57f497b345">More...</a><br /></td></tr>
+<tr class="separator:a7d9f6d9f98d51534be127d57f497b345"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a9aa894a57748b2bdf3adce46f5736794"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classtimer.html#a9aa894a57748b2bdf3adce46f5736794">start</a> ()</td></tr>
+<tr class="memdesc:a9aa894a57748b2bdf3adce46f5736794"><td class="mdescLeft">&#160;</td><td class="mdescRight">enables the timer  <a href="#a9aa894a57748b2bdf3adce46f5736794">More...</a><br /></td></tr>
+<tr class="separator:a9aa894a57748b2bdf3adce46f5736794"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a3218d61649e284071544b17c8c915ecc"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classtimer.html#a3218d61649e284071544b17c8c915ecc">stop</a> ()</td></tr>
+<tr class="memdesc:a3218d61649e284071544b17c8c915ecc"><td class="mdescLeft">&#160;</td><td class="mdescRight">disables the timer  <a href="#a3218d61649e284071544b17c8c915ecc">More...</a><br /></td></tr>
+<tr class="separator:a3218d61649e284071544b17c8c915ecc"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:abbb117c0ae32aa48df5df60328e224f9"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classtimer.html#abbb117c0ae32aa48df5df60328e224f9">isActive</a> ()</td></tr>
+<tr class="memdesc:abbb117c0ae32aa48df5df60328e224f9"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the timers active state.  <a href="#abbb117c0ae32aa48df5df60328e224f9">More...</a><br /></td></tr>
+<tr class="separator:abbb117c0ae32aa48df5df60328e224f9"><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>
+Data Fields</h2></td></tr>
+<tr class="memitem:a296c5e65582e19eaf61ae0bffa4071dc"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classtimer.html">timer</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classtimer.html#a296c5e65582e19eaf61ae0bffa4071dc">next</a></td></tr>
+<tr class="memdesc:a296c5e65582e19eaf61ae0bffa4071dc"><td class="mdescLeft">&#160;</td><td class="mdescRight">contains the pointer on the next timer element of the list  <a href="#a296c5e65582e19eaf61ae0bffa4071dc">More...</a><br /></td></tr>
+<tr class="separator:a296c5e65582e19eaf61ae0bffa4071dc"><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>Timer Class This class allows the creation of multiple timers that are based by a divider on a single system timer. </p>
+</div><h2 class="groupheader">Constructor &amp; Destructor Documentation</h2>
+<a class="anchor" id="a863dd9a194499a5ebbaf6937969916f2"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">timer::timer </td>
+          <td>(</td>
+          <td class="paramtype">void(*)(void)&#160;</td>
+          <td class="paramname"><em>handler</em></td><td>)</td>
+          <td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Timer constructor Depending on the call of the constructor the handler will be called as thread or not. </p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">*handler</td><td>target pointer to the method </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+<a class="anchor" id="a36730b19460d9576fe6d7535f969105a"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">timer::timer </td>
+          <td>(</td>
+          <td class="paramtype">void *(*)(void *)&#160;</td>
+          <td class="paramname"><em>handler</em></td><td>)</td>
+          <td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<h2 class="groupheader">Member Function Documentation</h2>
+<a class="anchor" id="a7d9f6d9f98d51534be127d57f497b345"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void timer::call </td>
+          <td>(</td>
+          <td class="paramname"></td><td>)</td>
+          <td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Calls the timer handler if enabled. </p>
+
+</div>
+</div>
+<a class="anchor" id="a3d5386a682a23df5c6a841ce8fc55bd4"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">int timer::getDivider </td>
+          <td>(</td>
+          <td class="paramname"></td><td>)</td>
+          <td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>reads the timer divider </p>
+<dl class="section return"><dt>Returns</dt><dd>timer divider </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="abbb117c0ae32aa48df5df60328e224f9"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">bool timer::isActive </td>
+          <td>(</td>
+          <td class="paramname"></td><td>)</td>
+          <td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Returns the timers active state. </p>
+<dl class="section return"><dt>Returns</dt><dd>true if active </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="a0a4b48605728320ce7a5a825e34e16f2"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void timer::setDivider </td>
+          <td>(</td>
+          <td class="paramtype">int&#160;</td>
+          <td class="paramname"><em>divider</em></td><td>)</td>
+          <td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>sets the divider for this timer (based on system timer) </p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">divider</td><td>integer timer divider </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+<a class="anchor" id="a9aa894a57748b2bdf3adce46f5736794"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void timer::start </td>
+          <td>(</td>
+          <td class="paramname"></td><td>)</td>
+          <td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>enables the timer </p>
+
+</div>
+</div>
+<a class="anchor" id="a3218d61649e284071544b17c8c915ecc"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void timer::stop </td>
+          <td>(</td>
+          <td class="paramname"></td><td>)</td>
+          <td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>disables the timer </p>
+
+</div>
+</div>
+<h2 class="groupheader">Field Documentation</h2>
+<a class="anchor" id="a296c5e65582e19eaf61ae0bffa4071dc"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname"><a class="el" href="classtimer.html">timer</a>* timer::next</td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>contains the pointer on the next timer element of the list </p>
+
+</div>
+</div>
+<hr/>The documentation for this class was generated from the following files:<ul>
+<li><a class="el" href="timer_8h_source.html">timer.h</a></li>
+<li><a class="el" href="timer_8cpp.html">timer.cpp</a></li>
+</ul>
+</div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.10
+</small></address>
+</body>
+</html>

BIN
CoffeeCode/html/closed.png


+ 266 - 0
CoffeeCode/html/crc_8cpp.html

@@ -0,0 +1,266 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.10"/>
+<title>CoffeePi: crc.cpp File 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>
+<script type="text/javascript">
+  $(document).ready(function() { init_search(); });
+</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">CoffeePi
+   </div>
+   <div id="projectbrief">Coffee machine control for Raspberry Pi</div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.10 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+  <div id="navrow1" class="tabs">
+    <ul class="tablist">
+      <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+      <li><a href="annotated.html"><span>Data&#160;Structures</span></a></li>
+      <li class="current"><a href="files.html"><span>Files</span></a></li>
+      <li>
+        <div id="MSearchBox" class="MSearchBoxInactive">
+        <span class="left">
+          <img id="MSearchSelect" src="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="search/close.png" alt=""/></a>
+          </span>
+        </div>
+      </li>
+    </ul>
+  </div>
+  <div id="navrow2" class="tabs2">
+    <ul class="tablist">
+      <li><a href="files.html"><span>File&#160;List</span></a></li>
+      <li><a href="globals.html"><span>Globals</span></a></li>
+    </ul>
+  </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="#define-members">Macros</a> &#124;
+<a href="#func-members">Functions</a> &#124;
+<a href="#var-members">Variables</a>  </div>
+  <div class="headertitle">
+<div class="title">crc.cpp File Reference</div>  </div>
+</div><!--header-->
+<div class="contents">
+<div class="textblock"><code>#include &quot;<a class="el" href="crc_8h_source.html">crc.h</a>&quot;</code><br />
+</div><table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="define-members"></a>
+Macros</h2></td></tr>
+<tr class="memitem:a241aeeb764887ae5e3de58b98f04b16d"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="crc_8cpp.html#a241aeeb764887ae5e3de58b98f04b16d">WIDTH</a>&#160;&#160;&#160;(8 * sizeof(<a class="el" href="crc_8h.html#a73364f0434186bc77eaa8e3b03a437be">crc</a>))</td></tr>
+<tr class="separator:a241aeeb764887ae5e3de58b98f04b16d"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a118ad552670dbefa1df0ba72d147f5e1"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="crc_8cpp.html#a118ad552670dbefa1df0ba72d147f5e1">TOPBIT</a>&#160;&#160;&#160;(1 &lt;&lt; (<a class="el" href="crc_8cpp.html#a241aeeb764887ae5e3de58b98f04b16d">WIDTH</a> - 1))</td></tr>
+<tr class="separator:a118ad552670dbefa1df0ba72d147f5e1"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ac5944d40ab44731450a57acd7f027f6a"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="crc_8cpp.html#ac5944d40ab44731450a57acd7f027f6a">REFLECT_DATA</a>(X)&#160;&#160;&#160;((unsigned char) reflect((X), 8))</td></tr>
+<tr class="separator:ac5944d40ab44731450a57acd7f027f6a"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a2354513de80cf643198f44d7030b74d7"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="crc_8cpp.html#a2354513de80cf643198f44d7030b74d7">REFLECT_REMAINDER</a>(X)&#160;&#160;&#160;((<a class="el" href="crc_8h.html#a73364f0434186bc77eaa8e3b03a437be">crc</a>) reflect((X), <a class="el" href="crc_8cpp.html#a241aeeb764887ae5e3de58b98f04b16d">WIDTH</a>))</td></tr>
+<tr class="separator:a2354513de80cf643198f44d7030b74d7"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table><table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
+Functions</h2></td></tr>
+<tr class="memitem:a027c2916f24b3daaf662408cc72026b1"><td class="memItemLeft" align="right" valign="top"><a class="el" href="crc_8h.html#a73364f0434186bc77eaa8e3b03a437be">crc</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="crc_8cpp.html#a027c2916f24b3daaf662408cc72026b1">crcSlow</a> (unsigned char const message[], int nBytes)</td></tr>
+<tr class="separator:a027c2916f24b3daaf662408cc72026b1"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a5a735798e6972adc694a5428dd7ccaf9"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="crc_8cpp.html#a5a735798e6972adc694a5428dd7ccaf9">crcInit</a> (void)</td></tr>
+<tr class="separator:a5a735798e6972adc694a5428dd7ccaf9"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a31e9ca3a3979a4c1e5043f5bfa5befaf"><td class="memItemLeft" align="right" valign="top"><a class="el" href="crc_8h.html#a73364f0434186bc77eaa8e3b03a437be">crc</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="crc_8cpp.html#a31e9ca3a3979a4c1e5043f5bfa5befaf">crcFast</a> (unsigned char const message[], int nBytes)</td></tr>
+<tr class="separator:a31e9ca3a3979a4c1e5043f5bfa5befaf"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table><table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="var-members"></a>
+Variables</h2></td></tr>
+<tr class="memitem:aa0b98c402a809d26602bb9a693083720"><td class="memItemLeft" align="right" valign="top"><a class="el" href="crc_8h.html#a73364f0434186bc77eaa8e3b03a437be">crc</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="crc_8cpp.html#aa0b98c402a809d26602bb9a693083720">crcTable</a> [256]</td></tr>
+<tr class="separator:aa0b98c402a809d26602bb9a693083720"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+<h2 class="groupheader">Macro Definition Documentation</h2>
+<a class="anchor" id="ac5944d40ab44731450a57acd7f027f6a"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">#define REFLECT_DATA</td>
+          <td>(</td>
+          <td class="paramtype">&#160;</td>
+          <td class="paramname">X</td><td>)</td>
+          <td>&#160;&#160;&#160;((unsigned char) reflect((X), 8))</td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="a2354513de80cf643198f44d7030b74d7"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">#define REFLECT_REMAINDER</td>
+          <td>(</td>
+          <td class="paramtype">&#160;</td>
+          <td class="paramname">X</td><td>)</td>
+          <td>&#160;&#160;&#160;((<a class="el" href="crc_8h.html#a73364f0434186bc77eaa8e3b03a437be">crc</a>) reflect((X), <a class="el" href="crc_8cpp.html#a241aeeb764887ae5e3de58b98f04b16d">WIDTH</a>))</td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="a118ad552670dbefa1df0ba72d147f5e1"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">#define TOPBIT&#160;&#160;&#160;(1 &lt;&lt; (<a class="el" href="crc_8cpp.html#a241aeeb764887ae5e3de58b98f04b16d">WIDTH</a> - 1))</td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="a241aeeb764887ae5e3de58b98f04b16d"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">#define WIDTH&#160;&#160;&#160;(8 * sizeof(<a class="el" href="crc_8h.html#a73364f0434186bc77eaa8e3b03a437be">crc</a>))</td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<h2 class="groupheader">Function Documentation</h2>
+<a class="anchor" id="a31e9ca3a3979a4c1e5043f5bfa5befaf"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname"><a class="el" href="crc_8h.html#a73364f0434186bc77eaa8e3b03a437be">crc</a> crcFast </td>
+          <td>(</td>
+          <td class="paramtype">unsigned char const&#160;</td>
+          <td class="paramname"><em>message</em>[], </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">int&#160;</td>
+          <td class="paramname"><em>nBytes</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="a5a735798e6972adc694a5428dd7ccaf9"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void crcInit </td>
+          <td>(</td>
+          <td class="paramtype">void&#160;</td>
+          <td class="paramname"></td><td>)</td>
+          <td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="a027c2916f24b3daaf662408cc72026b1"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname"><a class="el" href="crc_8h.html#a73364f0434186bc77eaa8e3b03a437be">crc</a> crcSlow </td>
+          <td>(</td>
+          <td class="paramtype">unsigned char const&#160;</td>
+          <td class="paramname"><em>message</em>[], </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">int&#160;</td>
+          <td class="paramname"><em>nBytes</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<h2 class="groupheader">Variable Documentation</h2>
+<a class="anchor" id="aa0b98c402a809d26602bb9a693083720"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname"><a class="el" href="crc_8h.html#a73364f0434186bc77eaa8e3b03a437be">crc</a> crcTable[256]</td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+</div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.10
+</small></address>
+</body>
+</html>

+ 343 - 0
CoffeeCode/html/crc_8h.html

@@ -0,0 +1,343 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.10"/>
+<title>CoffeePi: crc.h File 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>
+<script type="text/javascript">
+  $(document).ready(function() { init_search(); });
+</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">CoffeePi
+   </div>
+   <div id="projectbrief">Coffee machine control for Raspberry Pi</div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.10 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+  <div id="navrow1" class="tabs">
+    <ul class="tablist">
+      <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+      <li><a href="annotated.html"><span>Data&#160;Structures</span></a></li>
+      <li class="current"><a href="files.html"><span>Files</span></a></li>
+      <li>
+        <div id="MSearchBox" class="MSearchBoxInactive">
+        <span class="left">
+          <img id="MSearchSelect" src="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="search/close.png" alt=""/></a>
+          </span>
+        </div>
+      </li>
+    </ul>
+  </div>
+  <div id="navrow2" class="tabs2">
+    <ul class="tablist">
+      <li><a href="files.html"><span>File&#160;List</span></a></li>
+      <li><a href="globals.html"><span>Globals</span></a></li>
+    </ul>
+  </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="#define-members">Macros</a> &#124;
+<a href="#typedef-members">Typedefs</a> &#124;
+<a href="#func-members">Functions</a>  </div>
+  <div class="headertitle">
+<div class="title">crc.h File Reference</div>  </div>
+</div><!--header-->
+<div class="contents">
+
+<p><a href="crc_8h_source.html">Go to the source code of this file.</a></p>
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="define-members"></a>
+Macros</h2></td></tr>
+<tr class="memitem:aa93f0eb578d23995850d61f7d61c55c1"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="crc_8h.html#aa93f0eb578d23995850d61f7d61c55c1">FALSE</a>&#160;&#160;&#160;0</td></tr>
+<tr class="separator:aa93f0eb578d23995850d61f7d61c55c1"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:aa8cecfc5c5c054d2875c03e77b7be15d"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="crc_8h.html#aa8cecfc5c5c054d2875c03e77b7be15d">TRUE</a>&#160;&#160;&#160;!<a class="el" href="lcd_8cpp.html#aa93f0eb578d23995850d61f7d61c55c1">FALSE</a></td></tr>
+<tr class="separator:aa8cecfc5c5c054d2875c03e77b7be15d"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a491e419c18fbc5c7cb4a2cd901e31440"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="crc_8h.html#a491e419c18fbc5c7cb4a2cd901e31440">CRC32</a></td></tr>
+<tr class="separator:a491e419c18fbc5c7cb4a2cd901e31440"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ad679f457b8d23bfed7ccf1b9584e8514"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="crc_8h.html#ad679f457b8d23bfed7ccf1b9584e8514">CRC_NAME</a>&#160;&#160;&#160;&quot;CRC-32&quot;</td></tr>
+<tr class="separator:ad679f457b8d23bfed7ccf1b9584e8514"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ae13d91fe6e514f0aa1caba701ef1ff92"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="crc_8h.html#ae13d91fe6e514f0aa1caba701ef1ff92">POLYNOMIAL</a>&#160;&#160;&#160;0x04C11DB7</td></tr>
+<tr class="separator:ae13d91fe6e514f0aa1caba701ef1ff92"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:acce5b79e1a8ad8ffe40fb9f7d63b2fdc"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="crc_8h.html#acce5b79e1a8ad8ffe40fb9f7d63b2fdc">INITIAL_REMAINDER</a>&#160;&#160;&#160;0xFFFFFFFF</td></tr>
+<tr class="separator:acce5b79e1a8ad8ffe40fb9f7d63b2fdc"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a5e491822bb6a5bf7114dd453ab48891e"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="crc_8h.html#a5e491822bb6a5bf7114dd453ab48891e">FINAL_XOR_VALUE</a>&#160;&#160;&#160;0xFFFFFFFF</td></tr>
+<tr class="separator:a5e491822bb6a5bf7114dd453ab48891e"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:af6653e78d37b912d592ffc6e96eb7abb"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="crc_8h.html#af6653e78d37b912d592ffc6e96eb7abb">REFLECT_DATA</a>&#160;&#160;&#160;<a class="el" href="lcd_8cpp.html#aa8cecfc5c5c054d2875c03e77b7be15d">TRUE</a></td></tr>
+<tr class="separator:af6653e78d37b912d592ffc6e96eb7abb"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a5aa89bef30ad5bd061deda3eef36e327"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="crc_8h.html#a5aa89bef30ad5bd061deda3eef36e327">REFLECT_REMAINDER</a>&#160;&#160;&#160;<a class="el" href="lcd_8cpp.html#aa8cecfc5c5c054d2875c03e77b7be15d">TRUE</a></td></tr>
+<tr class="separator:a5aa89bef30ad5bd061deda3eef36e327"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:aee81a10f43f9dc645ba69a7407c151d0"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="crc_8h.html#aee81a10f43f9dc645ba69a7407c151d0">CHECK_VALUE</a>&#160;&#160;&#160;0xCBF43926</td></tr>
+<tr class="separator:aee81a10f43f9dc645ba69a7407c151d0"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table><table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="typedef-members"></a>
+Typedefs</h2></td></tr>
+<tr class="memitem:a73364f0434186bc77eaa8e3b03a437be"><td class="memItemLeft" align="right" valign="top">typedef unsigned long&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="crc_8h.html#a73364f0434186bc77eaa8e3b03a437be">crc</a></td></tr>
+<tr class="separator:a73364f0434186bc77eaa8e3b03a437be"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table><table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
+Functions</h2></td></tr>
+<tr class="memitem:a5a735798e6972adc694a5428dd7ccaf9"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="crc_8h.html#a5a735798e6972adc694a5428dd7ccaf9">crcInit</a> (void)</td></tr>
+<tr class="separator:a5a735798e6972adc694a5428dd7ccaf9"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a027c2916f24b3daaf662408cc72026b1"><td class="memItemLeft" align="right" valign="top"><a class="el" href="crc_8h.html#a73364f0434186bc77eaa8e3b03a437be">crc</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="crc_8h.html#a027c2916f24b3daaf662408cc72026b1">crcSlow</a> (unsigned char const message[], int nBytes)</td></tr>
+<tr class="separator:a027c2916f24b3daaf662408cc72026b1"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a31e9ca3a3979a4c1e5043f5bfa5befaf"><td class="memItemLeft" align="right" valign="top"><a class="el" href="crc_8h.html#a73364f0434186bc77eaa8e3b03a437be">crc</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="crc_8h.html#a31e9ca3a3979a4c1e5043f5bfa5befaf">crcFast</a> (unsigned char const message[], int nBytes)</td></tr>
+<tr class="separator:a31e9ca3a3979a4c1e5043f5bfa5befaf"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+<h2 class="groupheader">Macro Definition Documentation</h2>
+<a class="anchor" id="aee81a10f43f9dc645ba69a7407c151d0"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">#define CHECK_VALUE&#160;&#160;&#160;0xCBF43926</td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="a491e419c18fbc5c7cb4a2cd901e31440"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">#define CRC32</td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="ad679f457b8d23bfed7ccf1b9584e8514"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">#define CRC_NAME&#160;&#160;&#160;&quot;CRC-32&quot;</td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="aa93f0eb578d23995850d61f7d61c55c1"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">#define FALSE&#160;&#160;&#160;0</td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="a5e491822bb6a5bf7114dd453ab48891e"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">#define FINAL_XOR_VALUE&#160;&#160;&#160;0xFFFFFFFF</td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="acce5b79e1a8ad8ffe40fb9f7d63b2fdc"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">#define INITIAL_REMAINDER&#160;&#160;&#160;0xFFFFFFFF</td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="ae13d91fe6e514f0aa1caba701ef1ff92"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">#define POLYNOMIAL&#160;&#160;&#160;0x04C11DB7</td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="af6653e78d37b912d592ffc6e96eb7abb"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">#define REFLECT_DATA&#160;&#160;&#160;<a class="el" href="lcd_8cpp.html#aa8cecfc5c5c054d2875c03e77b7be15d">TRUE</a></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="a5aa89bef30ad5bd061deda3eef36e327"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">#define REFLECT_REMAINDER&#160;&#160;&#160;<a class="el" href="lcd_8cpp.html#aa8cecfc5c5c054d2875c03e77b7be15d">TRUE</a></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="aa8cecfc5c5c054d2875c03e77b7be15d"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">#define TRUE&#160;&#160;&#160;!<a class="el" href="lcd_8cpp.html#aa93f0eb578d23995850d61f7d61c55c1">FALSE</a></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<h2 class="groupheader">Typedef Documentation</h2>
+<a class="anchor" id="a73364f0434186bc77eaa8e3b03a437be"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">typedef unsigned long <a class="el" href="crc_8h.html#a73364f0434186bc77eaa8e3b03a437be">crc</a></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<h2 class="groupheader">Function Documentation</h2>
+<a class="anchor" id="a31e9ca3a3979a4c1e5043f5bfa5befaf"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname"><a class="el" href="crc_8h.html#a73364f0434186bc77eaa8e3b03a437be">crc</a> crcFast </td>
+          <td>(</td>
+          <td class="paramtype">unsigned char const&#160;</td>
+          <td class="paramname"><em>message</em>[], </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">int&#160;</td>
+          <td class="paramname"><em>nBytes</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="a5a735798e6972adc694a5428dd7ccaf9"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void crcInit </td>
+          <td>(</td>
+          <td class="paramtype">void&#160;</td>
+          <td class="paramname"></td><td>)</td>
+          <td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="a027c2916f24b3daaf662408cc72026b1"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname"><a class="el" href="crc_8h.html#a73364f0434186bc77eaa8e3b03a437be">crc</a> crcSlow </td>
+          <td>(</td>
+          <td class="paramtype">unsigned char const&#160;</td>
+          <td class="paramname"><em>message</em>[], </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">int&#160;</td>
+          <td class="paramname"><em>nBytes</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+</div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.10
+</small></address>
+</body>
+</html>

+ 177 - 0
CoffeeCode/html/crc_8h_source.html

@@ -0,0 +1,177 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.10"/>
+<title>CoffeePi: crc.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>
+<script type="text/javascript">
+  $(document).ready(function() { init_search(); });
+</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">CoffeePi
+   </div>
+   <div id="projectbrief">Coffee machine control for Raspberry Pi</div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.10 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+  <div id="navrow1" class="tabs">
+    <ul class="tablist">
+      <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+      <li><a href="annotated.html"><span>Data&#160;Structures</span></a></li>
+      <li class="current"><a href="files.html"><span>Files</span></a></li>
+      <li>
+        <div id="MSearchBox" class="MSearchBoxInactive">
+        <span class="left">
+          <img id="MSearchSelect" src="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="search/close.png" alt=""/></a>
+          </span>
+        </div>
+      </li>
+    </ul>
+  </div>
+  <div id="navrow2" class="tabs2">
+    <ul class="tablist">
+      <li><a href="files.html"><span>File&#160;List</span></a></li>
+      <li><a href="globals.html"><span>Globals</span></a></li>
+    </ul>
+  </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">crc.h</div>  </div>
+</div><!--header-->
+<div class="contents">
+<a href="crc_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno">    1</span>&#160;<span class="comment">/**********************************************************************</span></div>
+<div class="line"><a name="l00002"></a><span class="lineno">    2</span>&#160;<span class="comment"> *</span></div>
+<div class="line"><a name="l00003"></a><span class="lineno">    3</span>&#160;<span class="comment"> * Filename:    crc.h</span></div>
+<div class="line"><a name="l00004"></a><span class="lineno">    4</span>&#160;<span class="comment"> * </span></div>
+<div class="line"><a name="l00005"></a><span class="lineno">    5</span>&#160;<span class="comment"> * Description: A header file describing the various CRC standards.</span></div>
+<div class="line"><a name="l00006"></a><span class="lineno">    6</span>&#160;<span class="comment"> *</span></div>
+<div class="line"><a name="l00007"></a><span class="lineno">    7</span>&#160;<span class="comment"> * Notes:       </span></div>
+<div class="line"><a name="l00008"></a><span class="lineno">    8</span>&#160;<span class="comment"> *</span></div>
+<div class="line"><a name="l00009"></a><span class="lineno">    9</span>&#160;<span class="comment"> * </span></div>
+<div class="line"><a name="l00010"></a><span class="lineno">   10</span>&#160;<span class="comment"> * Copyright (c) 2000 by Michael Barr.  This software is placed into</span></div>
+<div class="line"><a name="l00011"></a><span class="lineno">   11</span>&#160;<span class="comment"> * the public domain and may be used for any purpose.  However, this</span></div>
+<div class="line"><a name="l00012"></a><span class="lineno">   12</span>&#160;<span class="comment"> * notice must not be changed or removed and no warranty is either</span></div>
+<div class="line"><a name="l00013"></a><span class="lineno">   13</span>&#160;<span class="comment"> * expressed or implied by its publication or distribution.</span></div>
+<div class="line"><a name="l00014"></a><span class="lineno">   14</span>&#160;<span class="comment"> **********************************************************************/</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="preprocessor">#ifndef _crc_h</span></div>
+<div class="line"><a name="l00017"></a><span class="lineno">   17</span>&#160;<span class="preprocessor">#define _crc_h</span></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"><a class="line" href="crc_8h.html#aa93f0eb578d23995850d61f7d61c55c1">   20</a></span>&#160;<span class="preprocessor">#define FALSE   0</span></div>
+<div class="line"><a name="l00021"></a><span class="lineno"><a class="line" href="crc_8h.html#aa8cecfc5c5c054d2875c03e77b7be15d">   21</a></span>&#160;<span class="preprocessor">#define TRUE    !FALSE</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;<span class="comment">/*</span></div>
+<div class="line"><a name="l00024"></a><span class="lineno">   24</span>&#160;<span class="comment"> * Select the CRC standard from the list that follows.</span></div>
+<div class="line"><a name="l00025"></a><span class="lineno">   25</span>&#160;<span class="comment"> */</span></div>
+<div class="line"><a name="l00026"></a><span class="lineno"><a class="line" href="crc_8h.html#a491e419c18fbc5c7cb4a2cd901e31440">   26</a></span>&#160;<span class="preprocessor">#define CRC32</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;</div>
+<div class="line"><a name="l00029"></a><span class="lineno">   29</span>&#160;<span class="preprocessor">#if defined(CRC_CCITT)</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="keyword">typedef</span> <span class="keywordtype">unsigned</span> <span class="keywordtype">short</span>  <a class="code" href="crc_8h.html#a73364f0434186bc77eaa8e3b03a437be">crc</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="preprocessor">#define CRC_NAME            &quot;CRC-CCITT&quot;</span></div>
+<div class="line"><a name="l00034"></a><span class="lineno">   34</span>&#160;<span class="preprocessor">#define POLYNOMIAL          0x1021</span></div>
+<div class="line"><a name="l00035"></a><span class="lineno">   35</span>&#160;<span class="preprocessor">#define INITIAL_REMAINDER   0xFFFF</span></div>
+<div class="line"><a name="l00036"></a><span class="lineno">   36</span>&#160;<span class="preprocessor">#define FINAL_XOR_VALUE     0x0000</span></div>
+<div class="line"><a name="l00037"></a><span class="lineno">   37</span>&#160;<span class="preprocessor">#define REFLECT_DATA        FALSE</span></div>
+<div class="line"><a name="l00038"></a><span class="lineno">   38</span>&#160;<span class="preprocessor">#define REFLECT_REMAINDER   FALSE</span></div>
+<div class="line"><a name="l00039"></a><span class="lineno">   39</span>&#160;<span class="preprocessor">#define CHECK_VALUE         0x29B1</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="preprocessor">#elif defined(CRC16)</span></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">typedef</span> <span class="keywordtype">unsigned</span> <span class="keywordtype">short</span>  <a class="code" href="crc_8h.html#a73364f0434186bc77eaa8e3b03a437be">crc</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="preprocessor">#define CRC_NAME            &quot;CRC-16&quot;</span></div>
+<div class="line"><a name="l00046"></a><span class="lineno">   46</span>&#160;<span class="preprocessor">#define POLYNOMIAL          0x8005</span></div>
+<div class="line"><a name="l00047"></a><span class="lineno">   47</span>&#160;<span class="preprocessor">#define INITIAL_REMAINDER   0x0000</span></div>
+<div class="line"><a name="l00048"></a><span class="lineno">   48</span>&#160;<span class="preprocessor">#define FINAL_XOR_VALUE     0x0000</span></div>
+<div class="line"><a name="l00049"></a><span class="lineno">   49</span>&#160;<span class="preprocessor">#define REFLECT_DATA        TRUE</span></div>
+<div class="line"><a name="l00050"></a><span class="lineno">   50</span>&#160;<span class="preprocessor">#define REFLECT_REMAINDER   TRUE</span></div>
+<div class="line"><a name="l00051"></a><span class="lineno">   51</span>&#160;<span class="preprocessor">#define CHECK_VALUE         0xBB3D</span></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="preprocessor">#elif defined(CRC32)</span></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="crc_8h.html#a73364f0434186bc77eaa8e3b03a437be">   55</a></span>&#160;<span class="keyword">typedef</span> <span class="keywordtype">unsigned</span> <span class="keywordtype">long</span>  <a class="code" href="crc_8h.html#a73364f0434186bc77eaa8e3b03a437be">crc</a>;</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="crc_8h.html#ad679f457b8d23bfed7ccf1b9584e8514">   57</a></span>&#160;<span class="preprocessor">#define CRC_NAME            &quot;CRC-32&quot;</span></div>
+<div class="line"><a name="l00058"></a><span class="lineno"><a class="line" href="crc_8h.html#ae13d91fe6e514f0aa1caba701ef1ff92">   58</a></span>&#160;<span class="preprocessor">#define POLYNOMIAL          0x04C11DB7</span></div>
+<div class="line"><a name="l00059"></a><span class="lineno"><a class="line" href="crc_8h.html#acce5b79e1a8ad8ffe40fb9f7d63b2fdc">   59</a></span>&#160;<span class="preprocessor">#define INITIAL_REMAINDER   0xFFFFFFFF</span></div>
+<div class="line"><a name="l00060"></a><span class="lineno"><a class="line" href="crc_8h.html#a5e491822bb6a5bf7114dd453ab48891e">   60</a></span>&#160;<span class="preprocessor">#define FINAL_XOR_VALUE     0xFFFFFFFF</span></div>
+<div class="line"><a name="l00061"></a><span class="lineno"><a class="line" href="crc_8h.html#af6653e78d37b912d592ffc6e96eb7abb">   61</a></span>&#160;<span class="preprocessor">#define REFLECT_DATA        TRUE</span></div>
+<div class="line"><a name="l00062"></a><span class="lineno"><a class="line" href="crc_8h.html#a5aa89bef30ad5bd061deda3eef36e327">   62</a></span>&#160;<span class="preprocessor">#define REFLECT_REMAINDER   TRUE</span></div>
+<div class="line"><a name="l00063"></a><span class="lineno"><a class="line" href="crc_8h.html#aee81a10f43f9dc645ba69a7407c151d0">   63</a></span>&#160;<span class="preprocessor">#define CHECK_VALUE         0xCBF43926</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="preprocessor">#else</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;<span class="preprocessor">#error &quot;One of CRC_CCITT, CRC16, or CRC32 must be #define&#39;d.&quot;</span></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="preprocessor">#endif</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">   72</span>&#160;<span class="keywordtype">void</span>  <a class="code" href="crc_8h.html#a5a735798e6972adc694a5428dd7ccaf9">crcInit</a>(<span class="keywordtype">void</span>);</div>
+<div class="line"><a name="l00073"></a><span class="lineno">   73</span>&#160;<a class="code" href="crc_8h.html#a73364f0434186bc77eaa8e3b03a437be">crc</a>   <a class="code" href="crc_8h.html#a027c2916f24b3daaf662408cc72026b1">crcSlow</a>(<span class="keywordtype">unsigned</span> <span class="keywordtype">char</span> <span class="keyword">const</span> message[], <span class="keywordtype">int</span> nBytes);</div>
+<div class="line"><a name="l00074"></a><span class="lineno">   74</span>&#160;<a class="code" href="crc_8h.html#a73364f0434186bc77eaa8e3b03a437be">crc</a>   <a class="code" href="crc_8h.html#a31e9ca3a3979a4c1e5043f5bfa5befaf">crcFast</a>(<span class="keywordtype">unsigned</span> <span class="keywordtype">char</span> <span class="keyword">const</span> message[], <span class="keywordtype">int</span> nBytes);</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;</div>
+<div class="line"><a name="l00077"></a><span class="lineno">   77</span>&#160;<span class="preprocessor">#endif </span><span class="comment">/* _crc_h */</span><span class="preprocessor"></span></div>
+<div class="ttc" id="crc_8h_html_a73364f0434186bc77eaa8e3b03a437be"><div class="ttname"><a href="crc_8h.html#a73364f0434186bc77eaa8e3b03a437be">crc</a></div><div class="ttdeci">unsigned long crc</div><div class="ttdef"><b>Definition:</b> crc.h:55</div></div>
+<div class="ttc" id="crc_8h_html_a027c2916f24b3daaf662408cc72026b1"><div class="ttname"><a href="crc_8h.html#a027c2916f24b3daaf662408cc72026b1">crcSlow</a></div><div class="ttdeci">crc crcSlow(unsigned char const message[], int nBytes)</div><div class="ttdef"><b>Definition:</b> crc.cpp:95</div></div>
+<div class="ttc" id="crc_8h_html_a31e9ca3a3979a4c1e5043f5bfa5befaf"><div class="ttname"><a href="crc_8h.html#a31e9ca3a3979a4c1e5043f5bfa5befaf">crcFast</a></div><div class="ttdeci">crc crcFast(unsigned char const message[], int nBytes)</div><div class="ttdef"><b>Definition:</b> crc.cpp:212</div></div>
+<div class="ttc" id="crc_8h_html_a5a735798e6972adc694a5428dd7ccaf9"><div class="ttname"><a href="crc_8h.html#a5a735798e6972adc694a5428dd7ccaf9">crcInit</a></div><div class="ttdeci">void crcInit(void)</div><div class="ttdef"><b>Definition:</b> crc.cpp:156</div></div>
+</div><!-- fragment --></div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.10
+</small></address>
+</body>
+</html>

+ 501 - 0
CoffeeCode/html/database_8cpp.html

@@ -0,0 +1,501 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.10"/>
+<title>CoffeePi: database.cpp File 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>
+<script type="text/javascript">
+  $(document).ready(function() { init_search(); });
+</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">CoffeePi
+   </div>
+   <div id="projectbrief">Coffee machine control for Raspberry Pi</div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.10 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+  <div id="navrow1" class="tabs">
+    <ul class="tablist">
+      <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+      <li><a href="annotated.html"><span>Data&#160;Structures</span></a></li>
+      <li class="current"><a href="files.html"><span>Files</span></a></li>
+      <li>
+        <div id="MSearchBox" class="MSearchBoxInactive">
+        <span class="left">
+          <img id="MSearchSelect" src="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="search/close.png" alt=""/></a>
+          </span>
+        </div>
+      </li>
+    </ul>
+  </div>
+  <div id="navrow2" class="tabs2">
+    <ul class="tablist">
+      <li><a href="files.html"><span>File&#160;List</span></a></li>
+      <li><a href="globals.html"><span>Globals</span></a></li>
+    </ul>
+  </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="#func-members">Functions</a> &#124;
+<a href="#var-members">Variables</a>  </div>
+  <div class="headertitle">
+<div class="title">database.cpp File Reference</div>  </div>
+</div><!--header-->
+<div class="contents">
+<div class="textblock"><code>#include &lt;cstdio&gt;</code><br />
+<code>#include &lt;stdlib.h&gt;</code><br />
+<code>#include &lt;inttypes.h&gt;</code><br />
+<code>#include &lt;cstdarg&gt;</code><br />
+<code>#include &lt;cstring&gt;</code><br />
+<code>#include &lt;string&gt;</code><br />
+<code>#include &lt;stdexcept&gt;</code><br />
+<code>#include &lt;pthread.h&gt;</code><br />
+<code>#include &lt;sys/time.h&gt;</code><br />
+<code>#include &quot;sqlite/sqlite3.h&quot;</code><br />
+<code>#include &quot;<a class="el" href="global_8h_source.html">global.h</a>&quot;</code><br />
+<code>#include &quot;<a class="el" href="database_8h_source.html">database.h</a>&quot;</code><br />
+<code>#include &quot;<a class="el" href="logger_8h_source.html">logger.h</a>&quot;</code><br />
+</div><table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
+Functions</h2></td></tr>
+<tr class="memitem:ac240bb02efe882b4e82da48676301d89"><td class="memItemLeft" align="right" valign="top">std::string&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="database_8cpp.html#ac240bb02efe882b4e82da48676301d89">string_vsprintf</a> (const char *format, std::va_list args)</td></tr>
+<tr class="memdesc:ac240bb02efe882b4e82da48676301d89"><td class="mdescLeft">&#160;</td><td class="mdescRight">Helper function to allow the use of vsprintf() with a string See: <a href="http://codereview.stackexchange.com/questions/52522/mimic-sprintf-with-stdstring-output">http://codereview.stackexchange.com/questions/52522/mimic-sprintf-with-stdstring-output</a>.  <a href="#ac240bb02efe882b4e82da48676301d89">More...</a><br /></td></tr>
+<tr class="separator:ac240bb02efe882b4e82da48676301d89"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:acd0eb5a18168fa3c37fab8ed0958c043"><td class="memItemLeft" align="right" valign="top">std::string&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="database_8cpp.html#acd0eb5a18168fa3c37fab8ed0958c043">string_sprintf</a> (const char *format,...) __attribute__((format(printf</td></tr>
+<tr class="memdesc:acd0eb5a18168fa3c37fab8ed0958c043"><td class="mdescLeft">&#160;</td><td class="mdescRight">Allows the format of printf but returns a string Source: <a href="http://codereview.stackexchange.com/questions/52522/mimic-sprintf-with-stdstring-output">http://codereview.stackexchange.com/questions/52522/mimic-sprintf-with-stdstring-output</a>.  <a href="#acd0eb5a18168fa3c37fab8ed0958c043">More...</a><br /></td></tr>
+<tr class="separator:acd0eb5a18168fa3c37fab8ed0958c043"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a1885a74e6af3ee510f30f98e60372e3e"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="database_8cpp.html#a1885a74e6af3ee510f30f98e60372e3e">sqlOpen</a> ()</td></tr>
+<tr class="memdesc:a1885a74e6af3ee510f30f98e60372e3e"><td class="mdescLeft">&#160;</td><td class="mdescRight">Opens and initializes a sqlite3 database connection.  <a href="#a1885a74e6af3ee510f30f98e60372e3e">More...</a><br /></td></tr>
+<tr class="separator:a1885a74e6af3ee510f30f98e60372e3e"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a7264f51f982e908b32635e91e6dc0062"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="database_8cpp.html#a7264f51f982e908b32635e91e6dc0062">sqlClose</a> ()</td></tr>
+<tr class="memdesc:a7264f51f982e908b32635e91e6dc0062"><td class="mdescLeft">&#160;</td><td class="mdescRight">Closes the database connection.  <a href="#a7264f51f982e908b32635e91e6dc0062">More...</a><br /></td></tr>
+<tr class="separator:a7264f51f982e908b32635e91e6dc0062"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:afd88a963f835215b8dad9ee9e49866dc"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="database_8cpp.html#afd88a963f835215b8dad9ee9e49866dc">sqlExecute</a> (string query)</td></tr>
+<tr class="memdesc:afd88a963f835215b8dad9ee9e49866dc"><td class="mdescLeft">&#160;</td><td class="mdescRight">Executes a SQL statement.  <a href="#afd88a963f835215b8dad9ee9e49866dc">More...</a><br /></td></tr>
+<tr class="separator:afd88a963f835215b8dad9ee9e49866dc"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a53458fb936962d23efec505a545a9cb8"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="database_8cpp.html#a53458fb936962d23efec505a545a9cb8">sqlExecute2</a> (char *query)</td></tr>
+<tr class="separator:a53458fb936962d23efec505a545a9cb8"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:aaed3fb776c9dc76d262df026803d3b8c"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="database_8cpp.html#aaed3fb776c9dc76d262df026803d3b8c">sqlSetup</a> ()</td></tr>
+<tr class="memdesc:aaed3fb776c9dc76d262df026803d3b8c"><td class="mdescLeft">&#160;</td><td class="mdescRight">Sets up the database and creates the needed structure.  <a href="#aaed3fb776c9dc76d262df026803d3b8c">More...</a><br /></td></tr>
+<tr class="separator:aaed3fb776c9dc76d262df026803d3b8c"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:aad0e803eda7a440a6063a447cfeca0cd"><td class="memItemLeft" align="right" valign="top">uint64_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="database_8cpp.html#aad0e803eda7a440a6063a447cfeca0cd">sqlGetConf</a> (<a class="el" href="database_8h.html#ae1822373f950fb4881633b7ec843f4df">config_key_t</a> id)</td></tr>
+<tr class="memdesc:aad0e803eda7a440a6063a447cfeca0cd"><td class="mdescLeft">&#160;</td><td class="mdescRight">Reads a configuration key from the database.  <a href="#aad0e803eda7a440a6063a447cfeca0cd">More...</a><br /></td></tr>
+<tr class="separator:aad0e803eda7a440a6063a447cfeca0cd"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a1ce0ac0c58916c138a92d3282f569784"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="database_8cpp.html#a1ce0ac0c58916c138a92d3282f569784">sqlSetConf</a> (<a class="el" href="database_8h.html#ae1822373f950fb4881633b7ec843f4df">config_key_t</a> id, uint64_t value)</td></tr>
+<tr class="memdesc:a1ce0ac0c58916c138a92d3282f569784"><td class="mdescLeft">&#160;</td><td class="mdescRight">Saves a configuration key to the database.  <a href="#a1ce0ac0c58916c138a92d3282f569784">More...</a><br /></td></tr>
+<tr class="separator:a1ce0ac0c58916c138a92d3282f569784"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a437086982a7400d7205f3ab6600e6dcf"><td class="memItemLeft" align="right" valign="top">char *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="database_8cpp.html#a437086982a7400d7205f3ab6600e6dcf">inttochar</a> (uint8_t *guid)</td></tr>
+<tr class="memdesc:a437086982a7400d7205f3ab6600e6dcf"><td class="mdescLeft">&#160;</td><td class="mdescRight">Converts the GUID from int to char array.  <a href="#a437086982a7400d7205f3ab6600e6dcf">More...</a><br /></td></tr>
+<tr class="separator:a437086982a7400d7205f3ab6600e6dcf"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ad2d2a73c367513b8b71aff5546276a3c"><td class="memItemLeft" align="right" valign="top">uint8_t *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="database_8cpp.html#ad2d2a73c367513b8b71aff5546276a3c">chartoint</a> (const unsigned char *guid)</td></tr>
+<tr class="memdesc:ad2d2a73c367513b8b71aff5546276a3c"><td class="mdescLeft">&#160;</td><td class="mdescRight">Converts the GUID from char to int array.  <a href="#ad2d2a73c367513b8b71aff5546276a3c">More...</a><br /></td></tr>
+<tr class="separator:ad2d2a73c367513b8b71aff5546276a3c"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a28dbbb9e24e2035535645629105aea46"><td class="memItemLeft" align="right" valign="top">uint8_t *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="database_8cpp.html#a28dbbb9e24e2035535645629105aea46">int64to8bit</a> (sqlite_int64 guid)</td></tr>
+<tr class="memdesc:a28dbbb9e24e2035535645629105aea46"><td class="mdescLeft">&#160;</td><td class="mdescRight">Converts the GUID from int64 to int8 array.  <a href="#a28dbbb9e24e2035535645629105aea46">More...</a><br /></td></tr>
+<tr class="separator:a28dbbb9e24e2035535645629105aea46"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a99cc529fd785c752cd4b73ea7989521d"><td class="memItemLeft" align="right" valign="top">sqlite_int64&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="database_8cpp.html#a99cc529fd785c752cd4b73ea7989521d">int8to64bit</a> (uint8_t *guid)</td></tr>
+<tr class="separator:a99cc529fd785c752cd4b73ea7989521d"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a5d0363e5d886e2c3e4bb5ca46d265ba7"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="database_8cpp.html#a5d0363e5d886e2c3e4bb5ca46d265ba7">sqltest</a> ()</td></tr>
+<tr class="separator:a5d0363e5d886e2c3e4bb5ca46d265ba7"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table><table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="var-members"></a>
+Variables</h2></td></tr>
+<tr class="memitem:ad6e663497d2c934364b3bcf07496b30b"><td class="memItemLeft" align="right" valign="top">sqlite3 *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="database_8cpp.html#ad6e663497d2c934364b3bcf07496b30b">db</a></td></tr>
+<tr class="memdesc:ad6e663497d2c934364b3bcf07496b30b"><td class="mdescLeft">&#160;</td><td class="mdescRight">The database connector.  <a href="#ad6e663497d2c934364b3bcf07496b30b">More...</a><br /></td></tr>
+<tr class="separator:ad6e663497d2c934364b3bcf07496b30b"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+<h2 class="groupheader">Function Documentation</h2>
+<a class="anchor" id="ad2d2a73c367513b8b71aff5546276a3c"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">uint8_t* chartoint </td>
+          <td>(</td>
+          <td class="paramtype">const unsigned char *&#160;</td>
+          <td class="paramname"><em>guid</em></td><td>)</td>
+          <td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Converts the GUID from char to int array. </p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">*guid</td><td>Pointer to the char GUID </td></tr>
+  </table>
+  </dd>
+</dl>
+<dl class="section return"><dt>Returns</dt><dd>pointer to the converted int array </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="a28dbbb9e24e2035535645629105aea46"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">uint8_t* int64to8bit </td>
+          <td>(</td>
+          <td class="paramtype">sqlite_int64&#160;</td>
+          <td class="paramname"><em>guid</em></td><td>)</td>
+          <td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Converts the GUID from int64 to int8 array. </p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">guid</td><td>64bit GUID </td></tr>
+  </table>
+  </dd>
+</dl>
+<dl class="section return"><dt>Returns</dt><dd>pointer to the converted int array </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="a99cc529fd785c752cd4b73ea7989521d"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">sqlite_int64 int8to64bit </td>
+          <td>(</td>
+          <td class="paramtype">uint8_t *&#160;</td>
+          <td class="paramname"><em>guid</em></td><td>)</td>
+          <td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="a437086982a7400d7205f3ab6600e6dcf"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">char* inttochar </td>
+          <td>(</td>
+          <td class="paramtype">uint8_t *&#160;</td>
+          <td class="paramname"><em>guid</em></td><td>)</td>
+          <td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Converts the GUID from int to char array. </p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">*guid</td><td>Pointer to the uint8_t GUID </td></tr>
+  </table>
+  </dd>
+</dl>
+<dl class="section return"><dt>Returns</dt><dd>pointer to the converted string </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="a7264f51f982e908b32635e91e6dc0062"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void sqlClose </td>
+          <td>(</td>
+          <td class="paramname"></td><td>)</td>
+          <td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Closes the database connection. </p>
+
+</div>
+</div>
+<a class="anchor" id="afd88a963f835215b8dad9ee9e49866dc"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">int sqlExecute </td>
+          <td>(</td>
+          <td class="paramtype">string&#160;</td>
+          <td class="paramname"><em>query</em></td><td>)</td>
+          <td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Executes a SQL statement. </p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">*query</td><td>SQL query string </td></tr>
+  </table>
+  </dd>
+</dl>
+<dl class="section return"><dt>Returns</dt><dd>0 on success </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="a53458fb936962d23efec505a545a9cb8"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">int sqlExecute2 </td>
+          <td>(</td>
+          <td class="paramtype">char *&#160;</td>
+          <td class="paramname"><em>query</em></td><td>)</td>
+          <td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="aad0e803eda7a440a6063a447cfeca0cd"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">uint64_t sqlGetConf </td>
+          <td>(</td>
+          <td class="paramtype"><a class="el" href="database_8h.html#ae1822373f950fb4881633b7ec843f4df">config_key_t</a>&#160;</td>
+          <td class="paramname"><em>id</em></td><td>)</td>
+          <td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Reads a configuration key from the database. </p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">id</td><td>Config ID key </td></tr>
+  </table>
+  </dd>
+</dl>
+<dl class="section return"><dt>Returns</dt><dd>value as integer (up to 64bit), 0 for not found </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="a1885a74e6af3ee510f30f98e60372e3e"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">int sqlOpen </td>
+          <td>(</td>
+          <td class="paramname"></td><td>)</td>
+          <td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Opens and initializes a sqlite3 database connection. </p>
+<dl class="section return"><dt>Returns</dt><dd>0 on success </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="a1ce0ac0c58916c138a92d3282f569784"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">int sqlSetConf </td>
+          <td>(</td>
+          <td class="paramtype"><a class="el" href="database_8h.html#ae1822373f950fb4881633b7ec843f4df">config_key_t</a>&#160;</td>
+          <td class="paramname"><em>id</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">uint64_t&#160;</td>
+          <td class="paramname"><em>value</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Saves a configuration key to the database. </p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">id</td><td>Config ID key </td></tr>
+    <tr><td class="paramname">value</td><td>Integer value </td></tr>
+  </table>
+  </dd>
+</dl>
+<dl class="section return"><dt>Returns</dt><dd>0 on success </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="aaed3fb776c9dc76d262df026803d3b8c"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">int sqlSetup </td>
+          <td>(</td>
+          <td class="paramname"></td><td>)</td>
+          <td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Sets up the database and creates the needed structure. </p>
+<dl class="section return"><dt>Returns</dt><dd>0 on success </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="a5d0363e5d886e2c3e4bb5ca46d265ba7"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void sqltest </td>
+          <td>(</td>
+          <td class="paramname"></td><td>)</td>
+          <td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="acd0eb5a18168fa3c37fab8ed0958c043"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">std::string std::string string_sprintf </td>
+          <td>(</td>
+          <td class="paramtype">const char *&#160;</td>
+          <td class="paramname"><em>format</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&#160;</td>
+          <td class="paramname"><em>...</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Allows the format of printf but returns a string Source: <a href="http://codereview.stackexchange.com/questions/52522/mimic-sprintf-with-stdstring-output">http://codereview.stackexchange.com/questions/52522/mimic-sprintf-with-stdstring-output</a>. </p>
+<dl class="section return"><dt>Returns</dt><dd>printf formatted string </dd></dl>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">format</td><td>input string as char array </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+<a class="anchor" id="ac240bb02efe882b4e82da48676301d89"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">std::string string_vsprintf </td>
+          <td>(</td>
+          <td class="paramtype">const char *&#160;</td>
+          <td class="paramname"><em>format</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">std::va_list&#160;</td>
+          <td class="paramname"><em>args</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Helper function to allow the use of vsprintf() with a string See: <a href="http://codereview.stackexchange.com/questions/52522/mimic-sprintf-with-stdstring-output">http://codereview.stackexchange.com/questions/52522/mimic-sprintf-with-stdstring-output</a>. </p>
+
+</div>
+</div>
+<h2 class="groupheader">Variable Documentation</h2>
+<a class="anchor" id="ad6e663497d2c934364b3bcf07496b30b"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">sqlite3* db</td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>The database connector. </p>
+
+</div>
+</div>
+</div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.10
+</small></address>
+</body>
+</html>

+ 516 - 0
CoffeeCode/html/database_8h.html

@@ -0,0 +1,516 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.10"/>
+<title>CoffeePi: database.h File 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>
+<script type="text/javascript">
+  $(document).ready(function() { init_search(); });
+</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">CoffeePi
+   </div>
+   <div id="projectbrief">Coffee machine control for Raspberry Pi</div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.10 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+  <div id="navrow1" class="tabs">
+    <ul class="tablist">
+      <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+      <li><a href="annotated.html"><span>Data&#160;Structures</span></a></li>
+      <li class="current"><a href="files.html"><span>Files</span></a></li>
+      <li>
+        <div id="MSearchBox" class="MSearchBoxInactive">
+        <span class="left">
+          <img id="MSearchSelect" src="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="search/close.png" alt=""/></a>
+          </span>
+        </div>
+      </li>
+    </ul>
+  </div>
+  <div id="navrow2" class="tabs2">
+    <ul class="tablist">
+      <li><a href="files.html"><span>File&#160;List</span></a></li>
+      <li><a href="globals.html"><span>Globals</span></a></li>
+    </ul>
+  </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="#enum-members">Enumerations</a> &#124;
+<a href="#func-members">Functions</a>  </div>
+  <div class="headertitle">
+<div class="title">database.h File Reference</div>  </div>
+</div><!--header-->
+<div class="contents">
+<div class="textblock"><code>#include &lt;string&gt;</code><br />
+<code>#include &lt;stdexcept&gt;</code><br />
+<code>#include &lt;cstdio&gt;</code><br />
+<code>#include &lt;stdlib.h&gt;</code><br />
+<code>#include &lt;inttypes.h&gt;</code><br />
+<code>#include &lt;cstdarg&gt;</code><br />
+<code>#include &quot;sqlite/sqlite3.h&quot;</code><br />
+</div>
+<p><a href="database_8h_source.html">Go to the source code of this file.</a></p>
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="enum-members"></a>
+Enumerations</h2></td></tr>
+<tr class="memitem:ae1822373f950fb4881633b7ec843f4df"><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="database_8h.html#ae1822373f950fb4881633b7ec843f4df">config_key_t</a> { <br />
+&#160;&#160;<a class="el" href="database_8h.html#ae1822373f950fb4881633b7ec843f4dfaadc75f07a97300078de1c92bf6414827">CRC</a> = 1, 
+<a class="el" href="database_8h.html#ae1822373f950fb4881633b7ec843f4dfababedca157bd5e1f8c299e61c197f62f">AliveCRC</a> = 2, 
+<a class="el" href="database_8h.html#ae1822373f950fb4881633b7ec843f4dfa8408e147e8a938136f8a861d49dc9424">lastTC1</a> = 3, 
+<a class="el" href="database_8h.html#ae1822373f950fb4881633b7ec843f4dfa59e22dd6cca23a1fc16c27b051e515b5">lastTC2</a> = 4, 
+<br />
+&#160;&#160;<a class="el" href="database_8h.html#ae1822373f950fb4881633b7ec843f4dfa3e3cdc9f9da298c1b6d46c49b1421848">lastTC3</a> = 5, 
+<a class="el" href="database_8h.html#ae1822373f950fb4881633b7ec843f4dfa6e580e65e5c126a239a8e27157ec96a4">lastTerm</a> = 6, 
+<a class="el" href="database_8h.html#ae1822373f950fb4881633b7ec843f4dfa221e2bd4755481003e8fe6ca37c66eb1">testSlowCnt</a> = 7
+<br />
+ }<tr class="separator:ae1822373f950fb4881633b7ec843f4df"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</td></tr>
+</table><table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
+Functions</h2></td></tr>
+<tr class="memitem:a1885a74e6af3ee510f30f98e60372e3e"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="database_8h.html#a1885a74e6af3ee510f30f98e60372e3e">sqlOpen</a> ()</td></tr>
+<tr class="memdesc:a1885a74e6af3ee510f30f98e60372e3e"><td class="mdescLeft">&#160;</td><td class="mdescRight">Opens and initializes a sqlite3 database connection.  <a href="#a1885a74e6af3ee510f30f98e60372e3e">More...</a><br /></td></tr>
+<tr class="separator:a1885a74e6af3ee510f30f98e60372e3e"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a7264f51f982e908b32635e91e6dc0062"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="database_8h.html#a7264f51f982e908b32635e91e6dc0062">sqlClose</a> ()</td></tr>
+<tr class="memdesc:a7264f51f982e908b32635e91e6dc0062"><td class="mdescLeft">&#160;</td><td class="mdescRight">Closes the database connection.  <a href="#a7264f51f982e908b32635e91e6dc0062">More...</a><br /></td></tr>
+<tr class="separator:a7264f51f982e908b32635e91e6dc0062"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:aaed3fb776c9dc76d262df026803d3b8c"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="database_8h.html#aaed3fb776c9dc76d262df026803d3b8c">sqlSetup</a> ()</td></tr>
+<tr class="memdesc:aaed3fb776c9dc76d262df026803d3b8c"><td class="mdescLeft">&#160;</td><td class="mdescRight">Sets up the database and creates the needed structure.  <a href="#aaed3fb776c9dc76d262df026803d3b8c">More...</a><br /></td></tr>
+<tr class="separator:aaed3fb776c9dc76d262df026803d3b8c"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:afd88a963f835215b8dad9ee9e49866dc"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="database_8h.html#afd88a963f835215b8dad9ee9e49866dc">sqlExecute</a> (string query)</td></tr>
+<tr class="memdesc:afd88a963f835215b8dad9ee9e49866dc"><td class="mdescLeft">&#160;</td><td class="mdescRight">Executes a SQL statement.  <a href="#afd88a963f835215b8dad9ee9e49866dc">More...</a><br /></td></tr>
+<tr class="separator:afd88a963f835215b8dad9ee9e49866dc"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a6ad9c375b101ce2cb461975eb2748b93"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="database_8h.html#a6ad9c375b101ce2cb461975eb2748b93">sqlInsertNode</a> (uint8_t *guid, bool terminal)</td></tr>
+<tr class="separator:a6ad9c375b101ce2cb461975eb2748b93"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ae28580072312f213d923d9b145e3dc90"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="database_8h.html#ae28580072312f213d923d9b145e3dc90">sqlReadNodes</a> ()</td></tr>
+<tr class="separator:ae28580072312f213d923d9b145e3dc90"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a437086982a7400d7205f3ab6600e6dcf"><td class="memItemLeft" align="right" valign="top">char *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="database_8h.html#a437086982a7400d7205f3ab6600e6dcf">inttochar</a> (uint8_t *guid)</td></tr>
+<tr class="memdesc:a437086982a7400d7205f3ab6600e6dcf"><td class="mdescLeft">&#160;</td><td class="mdescRight">Converts the GUID from int to char array.  <a href="#a437086982a7400d7205f3ab6600e6dcf">More...</a><br /></td></tr>
+<tr class="separator:a437086982a7400d7205f3ab6600e6dcf"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ad2d2a73c367513b8b71aff5546276a3c"><td class="memItemLeft" align="right" valign="top">uint8_t *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="database_8h.html#ad2d2a73c367513b8b71aff5546276a3c">chartoint</a> (const unsigned char *guid)</td></tr>
+<tr class="memdesc:ad2d2a73c367513b8b71aff5546276a3c"><td class="mdescLeft">&#160;</td><td class="mdescRight">Converts the GUID from char to int array.  <a href="#ad2d2a73c367513b8b71aff5546276a3c">More...</a><br /></td></tr>
+<tr class="separator:ad2d2a73c367513b8b71aff5546276a3c"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a28dbbb9e24e2035535645629105aea46"><td class="memItemLeft" align="right" valign="top">uint8_t *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="database_8h.html#a28dbbb9e24e2035535645629105aea46">int64to8bit</a> (sqlite_int64 guid)</td></tr>
+<tr class="memdesc:a28dbbb9e24e2035535645629105aea46"><td class="mdescLeft">&#160;</td><td class="mdescRight">Converts the GUID from int64 to int8 array.  <a href="#a28dbbb9e24e2035535645629105aea46">More...</a><br /></td></tr>
+<tr class="separator:a28dbbb9e24e2035535645629105aea46"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a99cc529fd785c752cd4b73ea7989521d"><td class="memItemLeft" align="right" valign="top">sqlite_int64&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="database_8h.html#a99cc529fd785c752cd4b73ea7989521d">int8to64bit</a> (uint8_t *guid)</td></tr>
+<tr class="separator:a99cc529fd785c752cd4b73ea7989521d"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a5d0363e5d886e2c3e4bb5ca46d265ba7"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="database_8h.html#a5d0363e5d886e2c3e4bb5ca46d265ba7">sqltest</a> ()</td></tr>
+<tr class="separator:a5d0363e5d886e2c3e4bb5ca46d265ba7"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a6c0bc3256310fd400a26243d8a8f1652"><td class="memItemLeft" align="right" valign="top">std::string&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="database_8h.html#a6c0bc3256310fd400a26243d8a8f1652">string_sprintf</a> (const char *format,...)</td></tr>
+<tr class="memdesc:a6c0bc3256310fd400a26243d8a8f1652"><td class="mdescLeft">&#160;</td><td class="mdescRight">Allows the format of printf but returns a string Source: <a href="http://codereview.stackexchange.com/questions/52522/mimic-sprintf-with-stdstring-output">http://codereview.stackexchange.com/questions/52522/mimic-sprintf-with-stdstring-output</a>.  <a href="#a6c0bc3256310fd400a26243d8a8f1652">More...</a><br /></td></tr>
+<tr class="separator:a6c0bc3256310fd400a26243d8a8f1652"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:aad0e803eda7a440a6063a447cfeca0cd"><td class="memItemLeft" align="right" valign="top">uint64_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="database_8h.html#aad0e803eda7a440a6063a447cfeca0cd">sqlGetConf</a> (<a class="el" href="database_8h.html#ae1822373f950fb4881633b7ec843f4df">config_key_t</a> id)</td></tr>
+<tr class="memdesc:aad0e803eda7a440a6063a447cfeca0cd"><td class="mdescLeft">&#160;</td><td class="mdescRight">Reads a configuration key from the database.  <a href="#aad0e803eda7a440a6063a447cfeca0cd">More...</a><br /></td></tr>
+<tr class="separator:aad0e803eda7a440a6063a447cfeca0cd"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a1ce0ac0c58916c138a92d3282f569784"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="database_8h.html#a1ce0ac0c58916c138a92d3282f569784">sqlSetConf</a> (<a class="el" href="database_8h.html#ae1822373f950fb4881633b7ec843f4df">config_key_t</a> id, uint64_t value)</td></tr>
+<tr class="memdesc:a1ce0ac0c58916c138a92d3282f569784"><td class="mdescLeft">&#160;</td><td class="mdescRight">Saves a configuration key to the database.  <a href="#a1ce0ac0c58916c138a92d3282f569784">More...</a><br /></td></tr>
+<tr class="separator:a1ce0ac0c58916c138a92d3282f569784"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+<h2 class="groupheader">Enumeration Type Documentation</h2>
+<a class="anchor" id="ae1822373f950fb4881633b7ec843f4df"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">enum <a class="el" href="database_8h.html#ae1822373f950fb4881633b7ec843f4df">config_key_t</a></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+<table class="fieldtable">
+<tr><th colspan="2">Enumerator</th></tr><tr><td class="fieldname"><a class="anchor" id="ae1822373f950fb4881633b7ec843f4dfaadc75f07a97300078de1c92bf6414827"></a>CRC&#160;</td><td class="fielddoc">
+</td></tr>
+<tr><td class="fieldname"><a class="anchor" id="ae1822373f950fb4881633b7ec843f4dfababedca157bd5e1f8c299e61c197f62f"></a>AliveCRC&#160;</td><td class="fielddoc">
+</td></tr>
+<tr><td class="fieldname"><a class="anchor" id="ae1822373f950fb4881633b7ec843f4dfa8408e147e8a938136f8a861d49dc9424"></a>lastTC1&#160;</td><td class="fielddoc">
+</td></tr>
+<tr><td class="fieldname"><a class="anchor" id="ae1822373f950fb4881633b7ec843f4dfa59e22dd6cca23a1fc16c27b051e515b5"></a>lastTC2&#160;</td><td class="fielddoc">
+</td></tr>
+<tr><td class="fieldname"><a class="anchor" id="ae1822373f950fb4881633b7ec843f4dfa3e3cdc9f9da298c1b6d46c49b1421848"></a>lastTC3&#160;</td><td class="fielddoc">
+</td></tr>
+<tr><td class="fieldname"><a class="anchor" id="ae1822373f950fb4881633b7ec843f4dfa6e580e65e5c126a239a8e27157ec96a4"></a>lastTerm&#160;</td><td class="fielddoc">
+</td></tr>
+<tr><td class="fieldname"><a class="anchor" id="ae1822373f950fb4881633b7ec843f4dfa221e2bd4755481003e8fe6ca37c66eb1"></a>testSlowCnt&#160;</td><td class="fielddoc">
+</td></tr>
+</table>
+
+</div>
+</div>
+<h2 class="groupheader">Function Documentation</h2>
+<a class="anchor" id="ad2d2a73c367513b8b71aff5546276a3c"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">uint8_t* chartoint </td>
+          <td>(</td>
+          <td class="paramtype">const unsigned char *&#160;</td>
+          <td class="paramname"><em>guid</em></td><td>)</td>
+          <td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Converts the GUID from char to int array. </p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">*guid</td><td>Pointer to the char GUID </td></tr>
+  </table>
+  </dd>
+</dl>
+<dl class="section return"><dt>Returns</dt><dd>pointer to the converted int array </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="a28dbbb9e24e2035535645629105aea46"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">uint8_t* int64to8bit </td>
+          <td>(</td>
+          <td class="paramtype">sqlite_int64&#160;</td>
+          <td class="paramname"><em>guid</em></td><td>)</td>
+          <td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Converts the GUID from int64 to int8 array. </p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">guid</td><td>64bit GUID </td></tr>
+  </table>
+  </dd>
+</dl>
+<dl class="section return"><dt>Returns</dt><dd>pointer to the converted int array </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="a99cc529fd785c752cd4b73ea7989521d"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">sqlite_int64 int8to64bit </td>
+          <td>(</td>
+          <td class="paramtype">uint8_t *&#160;</td>
+          <td class="paramname"><em>guid</em></td><td>)</td>
+          <td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="a437086982a7400d7205f3ab6600e6dcf"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">char* inttochar </td>
+          <td>(</td>
+          <td class="paramtype">uint8_t *&#160;</td>
+          <td class="paramname"><em>guid</em></td><td>)</td>
+          <td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Converts the GUID from int to char array. </p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">*guid</td><td>Pointer to the uint8_t GUID </td></tr>
+  </table>
+  </dd>
+</dl>
+<dl class="section return"><dt>Returns</dt><dd>pointer to the converted string </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="a7264f51f982e908b32635e91e6dc0062"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void sqlClose </td>
+          <td>(</td>
+          <td class="paramname"></td><td>)</td>
+          <td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Closes the database connection. </p>
+
+</div>
+</div>
+<a class="anchor" id="afd88a963f835215b8dad9ee9e49866dc"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">int sqlExecute </td>
+          <td>(</td>
+          <td class="paramtype">string&#160;</td>
+          <td class="paramname"><em>query</em></td><td>)</td>
+          <td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Executes a SQL statement. </p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">*query</td><td>SQL query string </td></tr>
+  </table>
+  </dd>
+</dl>
+<dl class="section return"><dt>Returns</dt><dd>0 on success </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="aad0e803eda7a440a6063a447cfeca0cd"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">uint64_t sqlGetConf </td>
+          <td>(</td>
+          <td class="paramtype"><a class="el" href="database_8h.html#ae1822373f950fb4881633b7ec843f4df">config_key_t</a>&#160;</td>
+          <td class="paramname"><em>id</em></td><td>)</td>
+          <td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Reads a configuration key from the database. </p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">id</td><td>Config ID key </td></tr>
+  </table>
+  </dd>
+</dl>
+<dl class="section return"><dt>Returns</dt><dd>value as integer (up to 64bit), 0 for not found </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="a6ad9c375b101ce2cb461975eb2748b93"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">int sqlInsertNode </td>
+          <td>(</td>
+          <td class="paramtype">uint8_t *&#160;</td>
+          <td class="paramname"><em>guid</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">bool&#160;</td>
+          <td class="paramname"><em>terminal</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="a1885a74e6af3ee510f30f98e60372e3e"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">int sqlOpen </td>
+          <td>(</td>
+          <td class="paramname"></td><td>)</td>
+          <td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Opens and initializes a sqlite3 database connection. </p>
+<dl class="section return"><dt>Returns</dt><dd>0 on success </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="ae28580072312f213d923d9b145e3dc90"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">int sqlReadNodes </td>
+          <td>(</td>
+          <td class="paramname"></td><td>)</td>
+          <td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="a1ce0ac0c58916c138a92d3282f569784"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">int sqlSetConf </td>
+          <td>(</td>
+          <td class="paramtype"><a class="el" href="database_8h.html#ae1822373f950fb4881633b7ec843f4df">config_key_t</a>&#160;</td>
+          <td class="paramname"><em>id</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">uint64_t&#160;</td>
+          <td class="paramname"><em>value</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Saves a configuration key to the database. </p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">id</td><td>Config ID key </td></tr>
+    <tr><td class="paramname">value</td><td>Integer value </td></tr>
+  </table>
+  </dd>
+</dl>
+<dl class="section return"><dt>Returns</dt><dd>0 on success </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="aaed3fb776c9dc76d262df026803d3b8c"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">int sqlSetup </td>
+          <td>(</td>
+          <td class="paramname"></td><td>)</td>
+          <td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Sets up the database and creates the needed structure. </p>
+<dl class="section return"><dt>Returns</dt><dd>0 on success </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="a5d0363e5d886e2c3e4bb5ca46d265ba7"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void sqltest </td>
+          <td>(</td>
+          <td class="paramname"></td><td>)</td>
+          <td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="a6c0bc3256310fd400a26243d8a8f1652"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">std::string string_sprintf </td>
+          <td>(</td>
+          <td class="paramtype">const char *&#160;</td>
+          <td class="paramname"><em>format</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&#160;</td>
+          <td class="paramname"><em>...</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Allows the format of printf but returns a string Source: <a href="http://codereview.stackexchange.com/questions/52522/mimic-sprintf-with-stdstring-output">http://codereview.stackexchange.com/questions/52522/mimic-sprintf-with-stdstring-output</a>. </p>
+<dl class="section return"><dt>Returns</dt><dd>printf formatted string </dd></dl>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">format</td><td>input string as char array </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+</div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.10
+</small></address>
+</body>
+</html>

+ 165 - 0
CoffeeCode/html/database_8h_source.html

@@ -0,0 +1,165 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.10"/>
+<title>CoffeePi: database.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>
+<script type="text/javascript">
+  $(document).ready(function() { init_search(); });
+</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">CoffeePi
+   </div>
+   <div id="projectbrief">Coffee machine control for Raspberry Pi</div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.10 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+  <div id="navrow1" class="tabs">
+    <ul class="tablist">
+      <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+      <li><a href="annotated.html"><span>Data&#160;Structures</span></a></li>
+      <li class="current"><a href="files.html"><span>Files</span></a></li>
+      <li>
+        <div id="MSearchBox" class="MSearchBoxInactive">
+        <span class="left">
+          <img id="MSearchSelect" src="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="search/close.png" alt=""/></a>
+          </span>
+        </div>
+      </li>
+    </ul>
+  </div>
+  <div id="navrow2" class="tabs2">
+    <ul class="tablist">
+      <li><a href="files.html"><span>File&#160;List</span></a></li>
+      <li><a href="globals.html"><span>Globals</span></a></li>
+    </ul>
+  </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">database.h</div>  </div>
+</div><!--header-->
+<div class="contents">
+<a href="database_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno">    1</span>&#160;<span class="comment">/*</span></div>
+<div class="line"><a name="l00002"></a><span class="lineno">    2</span>&#160;<span class="comment"> * database.h</span></div>
+<div class="line"><a name="l00003"></a><span class="lineno">    3</span>&#160;<span class="comment"> *</span></div>
+<div class="line"><a name="l00004"></a><span class="lineno">    4</span>&#160;<span class="comment"> *  Created on: Dec 4, 2015</span></div>
+<div class="line"><a name="l00005"></a><span class="lineno">    5</span>&#160;<span class="comment"> *      Author: Philipp Hinz</span></div>
+<div class="line"><a name="l00006"></a><span class="lineno">    6</span>&#160;<span class="comment"> */</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;<span class="preprocessor">#ifndef DATABASE_H_</span></div>
+<div class="line"><a name="l00009"></a><span class="lineno">    9</span>&#160;<span class="preprocessor">#define DATABASE_H_</span></div>
+<div class="line"><a name="l00010"></a><span class="lineno">   10</span>&#160;<span class="preprocessor">#include &lt;string&gt;</span></div>
+<div class="line"><a name="l00011"></a><span class="lineno">   11</span>&#160;<span class="preprocessor">#include &lt;stdexcept&gt;</span></div>
+<div class="line"><a name="l00012"></a><span class="lineno">   12</span>&#160;<span class="preprocessor">#include &lt;cstdio&gt;</span></div>
+<div class="line"><a name="l00013"></a><span class="lineno">   13</span>&#160;<span class="preprocessor">#include &lt;stdlib.h&gt;</span></div>
+<div class="line"><a name="l00014"></a><span class="lineno">   14</span>&#160;<span class="preprocessor">#include &lt;inttypes.h&gt;</span></div>
+<div class="line"><a name="l00015"></a><span class="lineno">   15</span>&#160;<span class="preprocessor">#include &lt;cstdarg&gt;</span></div>
+<div class="line"><a name="l00016"></a><span class="lineno">   16</span>&#160;<span class="preprocessor">#include &quot;sqlite/sqlite3.h&quot;</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">using namespace </span><a class="code" href="namespacestd.html">std</a>;</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">// Config Keys</span></div>
+<div class="line"><a name="l00021"></a><span class="lineno"><a class="line" href="database_8h.html#ae1822373f950fb4881633b7ec843f4df">   21</a></span>&#160;<span class="keyword">typedef</span> <span class="keyword">enum</span> {</div>
+<div class="line"><a name="l00022"></a><span class="lineno"><a class="line" href="database_8h.html#ae1822373f950fb4881633b7ec843f4dfaadc75f07a97300078de1c92bf6414827">   22</a></span>&#160;    <a class="code" href="database_8h.html#ae1822373f950fb4881633b7ec843f4dfaadc75f07a97300078de1c92bf6414827">CRC</a> = 1,</div>
+<div class="line"><a name="l00023"></a><span class="lineno"><a class="line" href="database_8h.html#ae1822373f950fb4881633b7ec843f4dfababedca157bd5e1f8c299e61c197f62f">   23</a></span>&#160;    <a class="code" href="database_8h.html#ae1822373f950fb4881633b7ec843f4dfababedca157bd5e1f8c299e61c197f62f">AliveCRC</a> = 2,</div>
+<div class="line"><a name="l00024"></a><span class="lineno"><a class="line" href="database_8h.html#ae1822373f950fb4881633b7ec843f4dfa8408e147e8a938136f8a861d49dc9424">   24</a></span>&#160;    <a class="code" href="database_8h.html#ae1822373f950fb4881633b7ec843f4dfa8408e147e8a938136f8a861d49dc9424">lastTC1</a> = 3,</div>
+<div class="line"><a name="l00025"></a><span class="lineno"><a class="line" href="database_8h.html#ae1822373f950fb4881633b7ec843f4dfa59e22dd6cca23a1fc16c27b051e515b5">   25</a></span>&#160;    <a class="code" href="database_8h.html#ae1822373f950fb4881633b7ec843f4dfa59e22dd6cca23a1fc16c27b051e515b5">lastTC2</a> = 4,</div>
+<div class="line"><a name="l00026"></a><span class="lineno"><a class="line" href="database_8h.html#ae1822373f950fb4881633b7ec843f4dfa3e3cdc9f9da298c1b6d46c49b1421848">   26</a></span>&#160;    <a class="code" href="database_8h.html#ae1822373f950fb4881633b7ec843f4dfa3e3cdc9f9da298c1b6d46c49b1421848">lastTC3</a> = 5,</div>
+<div class="line"><a name="l00027"></a><span class="lineno"><a class="line" href="database_8h.html#ae1822373f950fb4881633b7ec843f4dfa6e580e65e5c126a239a8e27157ec96a4">   27</a></span>&#160;    <a class="code" href="database_8h.html#ae1822373f950fb4881633b7ec843f4dfa6e580e65e5c126a239a8e27157ec96a4">lastTerm</a> = 6,</div>
+<div class="line"><a name="l00028"></a><span class="lineno"><a class="line" href="database_8h.html#ae1822373f950fb4881633b7ec843f4dfa221e2bd4755481003e8fe6ca37c66eb1">   28</a></span>&#160;    <a class="code" href="database_8h.html#ae1822373f950fb4881633b7ec843f4dfa221e2bd4755481003e8fe6ca37c66eb1">testSlowCnt</a> = 7,</div>
+<div class="line"><a name="l00029"></a><span class="lineno">   29</span>&#160;} <a class="code" href="database_8h.html#ae1822373f950fb4881633b7ec843f4df">config_key_t</a>;</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="keywordtype">int</span> <a class="code" href="database_8h.html#a1885a74e6af3ee510f30f98e60372e3e">sqlOpen</a>();</div>
+<div class="line"><a name="l00032"></a><span class="lineno">   32</span>&#160;<span class="keywordtype">void</span> <a class="code" href="database_8h.html#a7264f51f982e908b32635e91e6dc0062">sqlClose</a>();</div>
+<div class="line"><a name="l00033"></a><span class="lineno">   33</span>&#160;<span class="keywordtype">int</span> <a class="code" href="database_8h.html#aaed3fb776c9dc76d262df026803d3b8c">sqlSetup</a>();</div>
+<div class="line"><a name="l00034"></a><span class="lineno">   34</span>&#160;<span class="keywordtype">int</span> <a class="code" href="database_8h.html#afd88a963f835215b8dad9ee9e49866dc">sqlExecute</a>(<span class="keywordtype">string</span> query);</div>
+<div class="line"><a name="l00035"></a><span class="lineno">   35</span>&#160;<span class="keywordtype">int</span> <a class="code" href="database_8h.html#a6ad9c375b101ce2cb461975eb2748b93">sqlInsertNode</a>(uint8_t *guid, <span class="keywordtype">bool</span> terminal);</div>
+<div class="line"><a name="l00036"></a><span class="lineno">   36</span>&#160;<span class="keywordtype">int</span> <a class="code" href="database_8h.html#ae28580072312f213d923d9b145e3dc90">sqlReadNodes</a>();</div>
+<div class="line"><a name="l00037"></a><span class="lineno">   37</span>&#160;<span class="keywordtype">char</span> *<a class="code" href="database_8h.html#a437086982a7400d7205f3ab6600e6dcf">inttochar</a>(uint8_t *guid);</div>
+<div class="line"><a name="l00038"></a><span class="lineno">   38</span>&#160;uint8_t *<a class="code" href="database_8h.html#ad2d2a73c367513b8b71aff5546276a3c">chartoint</a>(<span class="keyword">const</span> <span class="keywordtype">unsigned</span> <span class="keywordtype">char</span> *guid);</div>
+<div class="line"><a name="l00039"></a><span class="lineno">   39</span>&#160;uint8_t *<a class="code" href="database_8h.html#a28dbbb9e24e2035535645629105aea46">int64to8bit</a>(sqlite_int64 guid);</div>
+<div class="line"><a name="l00040"></a><span class="lineno">   40</span>&#160;sqlite_int64 <a class="code" href="database_8h.html#a99cc529fd785c752cd4b73ea7989521d">int8to64bit</a>(uint8_t *guid);</div>
+<div class="line"><a name="l00041"></a><span class="lineno">   41</span>&#160;<span class="keywordtype">void</span> <a class="code" href="database_8h.html#a5d0363e5d886e2c3e4bb5ca46d265ba7">sqltest</a>();</div>
+<div class="line"><a name="l00042"></a><span class="lineno">   42</span>&#160;std::string <a class="code" href="database_8h.html#a6c0bc3256310fd400a26243d8a8f1652">string_sprintf</a>(<span class="keyword">const</span> <span class="keywordtype">char</span>* format, ...);</div>
+<div class="line"><a name="l00043"></a><span class="lineno">   43</span>&#160;uint64_t <a class="code" href="database_8h.html#aad0e803eda7a440a6063a447cfeca0cd">sqlGetConf</a>(<a class="code" href="database_8h.html#ae1822373f950fb4881633b7ec843f4df">config_key_t</a> <span class="keywordtype">id</span>);</div>
+<div class="line"><a name="l00044"></a><span class="lineno">   44</span>&#160;<span class="keywordtype">int</span> <a class="code" href="database_8h.html#a1ce0ac0c58916c138a92d3282f569784">sqlSetConf</a>(<a class="code" href="database_8h.html#ae1822373f950fb4881633b7ec843f4df">config_key_t</a> <span class="keywordtype">id</span>, uint64_t value);</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 </span><span class="comment">/* DATABASE_H_ */</span><span class="preprocessor"></span></div>
+<div class="ttc" id="database_8h_html_a1ce0ac0c58916c138a92d3282f569784"><div class="ttname"><a href="database_8h.html#a1ce0ac0c58916c138a92d3282f569784">sqlSetConf</a></div><div class="ttdeci">int sqlSetConf(config_key_t id, uint64_t value)</div><div class="ttdoc">Saves a configuration key to the database. </div><div class="ttdef"><b>Definition:</b> database.cpp:231</div></div>
+<div class="ttc" id="database_8h_html_ae1822373f950fb4881633b7ec843f4dfa6e580e65e5c126a239a8e27157ec96a4"><div class="ttname"><a href="database_8h.html#ae1822373f950fb4881633b7ec843f4dfa6e580e65e5c126a239a8e27157ec96a4">lastTerm</a></div><div class="ttdef"><b>Definition:</b> database.h:27</div></div>
+<div class="ttc" id="database_8h_html_ae1822373f950fb4881633b7ec843f4dfaadc75f07a97300078de1c92bf6414827"><div class="ttname"><a href="database_8h.html#ae1822373f950fb4881633b7ec843f4dfaadc75f07a97300078de1c92bf6414827">CRC</a></div><div class="ttdef"><b>Definition:</b> database.h:22</div></div>
+<div class="ttc" id="database_8h_html_a6ad9c375b101ce2cb461975eb2748b93"><div class="ttname"><a href="database_8h.html#a6ad9c375b101ce2cb461975eb2748b93">sqlInsertNode</a></div><div class="ttdeci">int sqlInsertNode(uint8_t *guid, bool terminal)</div></div>
+<div class="ttc" id="database_8h_html_a6c0bc3256310fd400a26243d8a8f1652"><div class="ttname"><a href="database_8h.html#a6c0bc3256310fd400a26243d8a8f1652">string_sprintf</a></div><div class="ttdeci">std::string string_sprintf(const char *format,...)</div><div class="ttdoc">Allows the format of printf but returns a string Source: http://codereview.stackexchange.com/questions/52522/mimic-sprintf-with-stdstring-output. </div><div class="ttdef"><b>Definition:</b> database.cpp:54</div></div>
+<div class="ttc" id="database_8h_html_ae1822373f950fb4881633b7ec843f4df"><div class="ttname"><a href="database_8h.html#ae1822373f950fb4881633b7ec843f4df">config_key_t</a></div><div class="ttdeci">config_key_t</div><div class="ttdef"><b>Definition:</b> database.h:21</div></div>
+<div class="ttc" id="namespacestd_html"><div class="ttname"><a href="namespacestd.html">std</a></div></div>
+<div class="ttc" id="database_8h_html_ad2d2a73c367513b8b71aff5546276a3c"><div class="ttname"><a href="database_8h.html#ad2d2a73c367513b8b71aff5546276a3c">chartoint</a></div><div class="ttdeci">uint8_t * chartoint(const unsigned char *guid)</div><div class="ttdoc">Converts the GUID from char to int array. </div><div class="ttdef"><b>Definition:</b> database.cpp:260</div></div>
+<div class="ttc" id="database_8h_html_ae1822373f950fb4881633b7ec843f4dfa221e2bd4755481003e8fe6ca37c66eb1"><div class="ttname"><a href="database_8h.html#ae1822373f950fb4881633b7ec843f4dfa221e2bd4755481003e8fe6ca37c66eb1">testSlowCnt</a></div><div class="ttdef"><b>Definition:</b> database.h:28</div></div>
+<div class="ttc" id="database_8h_html_a1885a74e6af3ee510f30f98e60372e3e"><div class="ttname"><a href="database_8h.html#a1885a74e6af3ee510f30f98e60372e3e">sqlOpen</a></div><div class="ttdeci">int sqlOpen()</div><div class="ttdoc">Opens and initializes a sqlite3 database connection. </div><div class="ttdef"><b>Definition:</b> database.cpp:76</div></div>
+<div class="ttc" id="database_8h_html_ae1822373f950fb4881633b7ec843f4dfa3e3cdc9f9da298c1b6d46c49b1421848"><div class="ttname"><a href="database_8h.html#ae1822373f950fb4881633b7ec843f4dfa3e3cdc9f9da298c1b6d46c49b1421848">lastTC3</a></div><div class="ttdef"><b>Definition:</b> database.h:26</div></div>
+<div class="ttc" id="database_8h_html_ae28580072312f213d923d9b145e3dc90"><div class="ttname"><a href="database_8h.html#ae28580072312f213d923d9b145e3dc90">sqlReadNodes</a></div><div class="ttdeci">int sqlReadNodes()</div></div>
+<div class="ttc" id="database_8h_html_afd88a963f835215b8dad9ee9e49866dc"><div class="ttname"><a href="database_8h.html#afd88a963f835215b8dad9ee9e49866dc">sqlExecute</a></div><div class="ttdeci">int sqlExecute(string query)</div><div class="ttdoc">Executes a SQL statement. </div><div class="ttdef"><b>Definition:</b> database.cpp:103</div></div>
+<div class="ttc" id="database_8h_html_a7264f51f982e908b32635e91e6dc0062"><div class="ttname"><a href="database_8h.html#a7264f51f982e908b32635e91e6dc0062">sqlClose</a></div><div class="ttdeci">void sqlClose()</div><div class="ttdoc">Closes the database connection. </div><div class="ttdef"><b>Definition:</b> database.cpp:92</div></div>
+<div class="ttc" id="database_8h_html_ae1822373f950fb4881633b7ec843f4dfa8408e147e8a938136f8a861d49dc9424"><div class="ttname"><a href="database_8h.html#ae1822373f950fb4881633b7ec843f4dfa8408e147e8a938136f8a861d49dc9424">lastTC1</a></div><div class="ttdef"><b>Definition:</b> database.h:24</div></div>
+<div class="ttc" id="database_8h_html_a437086982a7400d7205f3ab6600e6dcf"><div class="ttname"><a href="database_8h.html#a437086982a7400d7205f3ab6600e6dcf">inttochar</a></div><div class="ttdeci">char * inttochar(uint8_t *guid)</div><div class="ttdoc">Converts the GUID from int to char array. </div><div class="ttdef"><b>Definition:</b> database.cpp:245</div></div>
+<div class="ttc" id="database_8h_html_a5d0363e5d886e2c3e4bb5ca46d265ba7"><div class="ttname"><a href="database_8h.html#a5d0363e5d886e2c3e4bb5ca46d265ba7">sqltest</a></div><div class="ttdeci">void sqltest()</div><div class="ttdef"><b>Definition:</b> database.cpp:291</div></div>
+<div class="ttc" id="database_8h_html_aaed3fb776c9dc76d262df026803d3b8c"><div class="ttname"><a href="database_8h.html#aaed3fb776c9dc76d262df026803d3b8c">sqlSetup</a></div><div class="ttdeci">int sqlSetup()</div><div class="ttdoc">Sets up the database and creates the needed structure. </div><div class="ttdef"><b>Definition:</b> database.cpp:150</div></div>
+<div class="ttc" id="database_8h_html_aad0e803eda7a440a6063a447cfeca0cd"><div class="ttname"><a href="database_8h.html#aad0e803eda7a440a6063a447cfeca0cd">sqlGetConf</a></div><div class="ttdeci">uint64_t sqlGetConf(config_key_t id)</div><div class="ttdoc">Reads a configuration key from the database. </div><div class="ttdef"><b>Definition:</b> database.cpp:196</div></div>
+<div class="ttc" id="database_8h_html_ae1822373f950fb4881633b7ec843f4dfababedca157bd5e1f8c299e61c197f62f"><div class="ttname"><a href="database_8h.html#ae1822373f950fb4881633b7ec843f4dfababedca157bd5e1f8c299e61c197f62f">AliveCRC</a></div><div class="ttdef"><b>Definition:</b> database.h:23</div></div>
+<div class="ttc" id="database_8h_html_ae1822373f950fb4881633b7ec843f4dfa59e22dd6cca23a1fc16c27b051e515b5"><div class="ttname"><a href="database_8h.html#ae1822373f950fb4881633b7ec843f4dfa59e22dd6cca23a1fc16c27b051e515b5">lastTC2</a></div><div class="ttdef"><b>Definition:</b> database.h:25</div></div>
+<div class="ttc" id="database_8h_html_a99cc529fd785c752cd4b73ea7989521d"><div class="ttname"><a href="database_8h.html#a99cc529fd785c752cd4b73ea7989521d">int8to64bit</a></div><div class="ttdeci">sqlite_int64 int8to64bit(uint8_t *guid)</div><div class="ttdef"><b>Definition:</b> database.cpp:283</div></div>
+<div class="ttc" id="database_8h_html_a28dbbb9e24e2035535645629105aea46"><div class="ttname"><a href="database_8h.html#a28dbbb9e24e2035535645629105aea46">int64to8bit</a></div><div class="ttdeci">uint8_t * int64to8bit(sqlite_int64 guid)</div><div class="ttdoc">Converts the GUID from int64 to int8 array. </div><div class="ttdef"><b>Definition:</b> database.cpp:274</div></div>
+</div><!-- fragment --></div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.10
+</small></address>
+</body>
+</html>

BIN
CoffeeCode/html/doc.png


+ 1454 - 0
CoffeeCode/html/doxygen.css

@@ -0,0 +1,1454 @@
+/* The standard CSS for doxygen 1.8.10 */
+
+body, table, div, p, dl {
+	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;
+}
+
+div.multicol {
+	-moz-column-gap: 1em;
+	-webkit-column-gap: 1em;
+	-moz-column-count: 3;
+	-webkit-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;
+}
+
+/* @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;
+}
+
+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: 4px 6px;
+        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.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;
+}
+
+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);
+}
+
+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 {
+	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;
+}
+
+/* @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 */
+
+.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: bold;
+        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-image:url('nav_f.png');
+        background-repeat:repeat-x;
+        background-color: #E2E8F2;
+        /* opera specific markup */
+        box-shadow: 5px 5px 5px rgba(0, 0, 0, 0.15);
+        border-top-right-radius: 4px;
+        border-top-left-radius: 4px;
+        /* firefox specific markup */
+        -moz-box-shadow: rgba(0, 0, 0, 0.15) 5px 5px 5px;
+        -moz-border-radius-topright: 4px;
+        -moz-border-radius-topleft: 4px;
+        /* webkit specific markup */
+        -webkit-box-shadow: 5px 5px 5px rgba(0, 0, 0, 0.15);
+        -webkit-border-top-right-radius: 4px;
+        -webkit-border-top-left-radius: 4px;
+
+}
+
+.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 {
+        font-weight: bold;
+        vertical-align: top;
+}
+        
+.params .paramtype {
+        font-style: italic;
+        vertical-align: top;
+}       
+        
+.params .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 {
+	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;
+        -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;
+}
+
+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;
+}
+
+dl
+{
+        padding: 0 0 0 10px;
+}
+
+/* dl.note, dl.warning, dl.attention, dl.pre, dl.post, dl.invariant, dl.deprecated, dl.todo, dl.test, dl.bug */
+dl.section
+{
+	margin-left: 0px;
+	padding-left: 0px;
+}
+
+dl.note
+{
+        margin-left:-7px;
+        padding-left: 3px;
+        border-left:4px solid;
+        border-color: #D0C000;
+}
+
+dl.warning, dl.attention
+{
+        margin-left:-7px;
+        padding-left: 3px;
+        border-left: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.deprecated
+{
+        margin-left:-7px;
+        padding-left: 3px;
+        border-left:4px solid;
+        border-color: #505050;
+}
+
+dl.todo
+{
+        margin-left:-7px;
+        padding-left: 3px;
+        border-left:4px solid;
+        border-color: #00C0E0;
+}
+
+dl.test
+{
+        margin-left:-7px;
+        padding-left: 3px;
+        border-left:4px solid;
+        border-color: #3030E0;
+}
+
+dl.bug
+{
+        margin-left:-7px;
+        padding-left: 3px;
+        border-left: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;
+}
+
+.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 20px 10px 10px;
+        width: 200px;
+}
+
+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;
+}
+
+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;
+}
+
+.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;
+  }
+}
+

BIN
CoffeeCode/html/doxygen.png


+ 97 - 0
CoffeeCode/html/dynsections.js

@@ -0,0 +1,97 @@
+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');
+  }
+}
+

+ 118 - 0
CoffeeCode/html/files.html

@@ -0,0 +1,118 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.10"/>
+<title>CoffeePi: 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>
+<script type="text/javascript">
+  $(document).ready(function() { init_search(); });
+</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">CoffeePi
+   </div>
+   <div id="projectbrief">Coffee machine control for Raspberry Pi</div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.10 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+  <div id="navrow1" class="tabs">
+    <ul class="tablist">
+      <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+      <li><a href="annotated.html"><span>Data&#160;Structures</span></a></li>
+      <li class="current"><a href="files.html"><span>Files</span></a></li>
+      <li>
+        <div id="MSearchBox" class="MSearchBoxInactive">
+        <span class="left">
+          <img id="MSearchSelect" src="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="search/close.png" alt=""/></a>
+          </span>
+        </div>
+      </li>
+    </ul>
+  </div>
+  <div id="navrow2" class="tabs2">
+    <ul class="tablist">
+      <li class="current"><a href="files.html"><span>File&#160;List</span></a></li>
+      <li><a href="globals.html"><span>Globals</span></a></li>
+    </ul>
+  </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 files with brief descriptions:</div><div class="directory">
+<table class="directory">
+<tr id="row_0_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icondoc"></span><a class="el" href="crc_8cpp.html" target="_self">crc.cpp</a></td><td class="desc"></td></tr>
+<tr id="row_1_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><a href="crc_8h_source.html"><span class="icondoc"></span></a><a class="el" href="crc_8h.html" target="_self">crc.h</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="icondoc"></span><a class="el" href="database_8cpp.html" target="_self">database.cpp</a></td><td class="desc"></td></tr>
+<tr id="row_3_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><a href="database_8h_source.html"><span class="icondoc"></span></a><a class="el" href="database_8h.html" target="_self">database.h</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><a href="global_8h_source.html"><span class="icondoc"></span></a><a class="el" href="global_8h.html" target="_self">global.h</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="icondoc"></span><a class="el" href="hal_8cpp.html" target="_self">hal.cpp</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><a href="hal_8h_source.html"><span class="icondoc"></span></a><a class="el" href="hal_8h.html" target="_self">hal.h</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="icondoc"></span><a class="el" href="lcd_8cpp.html" target="_self">lcd.cpp</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><a href="lcd_8h_source.html"><span class="icondoc"></span></a><a class="el" href="lcd_8h.html" target="_self">lcd.h</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="icondoc"></span><a class="el" href="logger_8cpp.html" target="_self">logger.cpp</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><a href="logger_8h_source.html"><span class="icondoc"></span></a><a class="el" href="logger_8h.html" target="_self">logger.h</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="icondoc"></span><a class="el" href="main_8cpp.html" target="_self">main.cpp</a></td><td class="desc"></td></tr>
+<tr id="row_12_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icondoc"></span><a class="el" href="spi_8cpp.html" target="_self">spi.cpp</a></td><td class="desc"></td></tr>
+<tr id="row_13_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><a href="spi_8h_source.html"><span class="icondoc"></span></a><a class="el" href="spi_8h.html" target="_self">spi.h</a></td><td class="desc"></td></tr>
+<tr id="row_14_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icondoc"></span><a class="el" href="stripe_8cpp.html" target="_self">stripe.cpp</a></td><td class="desc"></td></tr>
+<tr id="row_15_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><a href="stripe_8h_source.html"><span class="icondoc"></span></a><a class="el" href="stripe_8h.html" target="_self">stripe.h</a></td><td class="desc"></td></tr>
+<tr id="row_16_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icondoc"></span><a class="el" href="timer_8cpp.html" target="_self">timer.cpp</a></td><td class="desc"></td></tr>
+<tr id="row_17_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><a href="timer_8h_source.html"><span class="icondoc"></span></a><a class="el" href="timer_8h.html" target="_self">timer.h</a></td><td class="desc"></td></tr>
+</table>
+</div><!-- directory -->
+</div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.10
+</small></address>
+</body>
+</html>

BIN
CoffeeCode/html/folderclosed.png


BIN
CoffeeCode/html/folderopen.png


+ 135 - 0
CoffeeCode/html/functions.html

@@ -0,0 +1,135 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.10"/>
+<title>CoffeePi: Data Fields</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>
+<script type="text/javascript">
+  $(document).ready(function() { init_search(); });
+</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">CoffeePi
+   </div>
+   <div id="projectbrief">Coffee machine control for Raspberry Pi</div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.10 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+  <div id="navrow1" class="tabs">
+    <ul class="tablist">
+      <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+      <li class="current"><a href="annotated.html"><span>Data&#160;Structures</span></a></li>
+      <li><a href="files.html"><span>Files</span></a></li>
+      <li>
+        <div id="MSearchBox" class="MSearchBoxInactive">
+        <span class="left">
+          <img id="MSearchSelect" src="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="search/close.png" alt=""/></a>
+          </span>
+        </div>
+      </li>
+    </ul>
+  </div>
+  <div id="navrow2" class="tabs2">
+    <ul class="tablist">
+      <li><a href="annotated.html"><span>Data&#160;Structures</span></a></li>
+      <li><a href="classes.html"><span>Data&#160;Structure&#160;Index</span></a></li>
+      <li class="current"><a href="functions.html"><span>Data&#160;Fields</span></a></li>
+    </ul>
+  </div>
+  <div id="navrow3" class="tabs2">
+    <ul class="tablist">
+      <li class="current"><a href="functions.html"><span>All</span></a></li>
+      <li><a href="functions_func.html"><span>Functions</span></a></li>
+      <li><a href="functions_vars.html"><span>Variables</span></a></li>
+    </ul>
+  </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 struct and union fields with links to the structures/unions they belong to:</div><ul>
+<li>blue
+: <a class="el" href="structstripe__color.html#a2de85b974fc4ec0bcea12d6a270e53a9">stripe_color</a>
+</li>
+<li>call()
+: <a class="el" href="classtimer.html#a7d9f6d9f98d51534be127d57f497b345">timer</a>
+</li>
+<li>getDivider()
+: <a class="el" href="classtimer.html#a3d5386a682a23df5c6a841ce8fc55bd4">timer</a>
+</li>
+<li>green
+: <a class="el" href="structstripe__color.html#ab650b31353bfddd30e9ea11f8adb870f">stripe_color</a>
+</li>
+<li>isActive()
+: <a class="el" href="classtimer.html#abbb117c0ae32aa48df5df60328e224f9">timer</a>
+</li>
+<li>next
+: <a class="el" href="classtimer.html#a296c5e65582e19eaf61ae0bffa4071dc">timer</a>
+</li>
+<li>red
+: <a class="el" href="structstripe__color.html#a784aa14cb8856664e9533883d8add33b">stripe_color</a>
+</li>
+<li>setDivider()
+: <a class="el" href="classtimer.html#a0a4b48605728320ce7a5a825e34e16f2">timer</a>
+</li>
+<li>start()
+: <a class="el" href="classtimer.html#a9aa894a57748b2bdf3adce46f5736794">timer</a>
+</li>
+<li>stop()
+: <a class="el" href="classtimer.html#a3218d61649e284071544b17c8c915ecc">timer</a>
+</li>
+<li>timer()
+: <a class="el" href="classtimer.html#a863dd9a194499a5ebbaf6937969916f2">timer</a>
+</li>
+</ul>
+</div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.10
+</small></address>
+</body>
+</html>

+ 123 - 0
CoffeeCode/html/functions_func.html

@@ -0,0 +1,123 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.10"/>
+<title>CoffeePi: Data Fields - 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>
+<script type="text/javascript">
+  $(document).ready(function() { init_search(); });
+</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">CoffeePi
+   </div>
+   <div id="projectbrief">Coffee machine control for Raspberry Pi</div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.10 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+  <div id="navrow1" class="tabs">
+    <ul class="tablist">
+      <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+      <li class="current"><a href="annotated.html"><span>Data&#160;Structures</span></a></li>
+      <li><a href="files.html"><span>Files</span></a></li>
+      <li>
+        <div id="MSearchBox" class="MSearchBoxInactive">
+        <span class="left">
+          <img id="MSearchSelect" src="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="search/close.png" alt=""/></a>
+          </span>
+        </div>
+      </li>
+    </ul>
+  </div>
+  <div id="navrow2" class="tabs2">
+    <ul class="tablist">
+      <li><a href="annotated.html"><span>Data&#160;Structures</span></a></li>
+      <li><a href="classes.html"><span>Data&#160;Structure&#160;Index</span></a></li>
+      <li class="current"><a href="functions.html"><span>Data&#160;Fields</span></a></li>
+    </ul>
+  </div>
+  <div id="navrow3" class="tabs2">
+    <ul class="tablist">
+      <li><a href="functions.html"><span>All</span></a></li>
+      <li class="current"><a href="functions_func.html"><span>Functions</span></a></li>
+      <li><a href="functions_vars.html"><span>Variables</span></a></li>
+    </ul>
+  </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>call()
+: <a class="el" href="classtimer.html#a7d9f6d9f98d51534be127d57f497b345">timer</a>
+</li>
+<li>getDivider()
+: <a class="el" href="classtimer.html#a3d5386a682a23df5c6a841ce8fc55bd4">timer</a>
+</li>
+<li>isActive()
+: <a class="el" href="classtimer.html#abbb117c0ae32aa48df5df60328e224f9">timer</a>
+</li>
+<li>setDivider()
+: <a class="el" href="classtimer.html#a0a4b48605728320ce7a5a825e34e16f2">timer</a>
+</li>
+<li>start()
+: <a class="el" href="classtimer.html#a9aa894a57748b2bdf3adce46f5736794">timer</a>
+</li>
+<li>stop()
+: <a class="el" href="classtimer.html#a3218d61649e284071544b17c8c915ecc">timer</a>
+</li>
+<li>timer()
+: <a class="el" href="classtimer.html#a863dd9a194499a5ebbaf6937969916f2">timer</a>
+</li>
+</ul>
+</div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.10
+</small></address>
+</body>
+</html>

+ 114 - 0
CoffeeCode/html/functions_vars.html

@@ -0,0 +1,114 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.10"/>
+<title>CoffeePi: Data Fields - 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>
+<script type="text/javascript">
+  $(document).ready(function() { init_search(); });
+</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">CoffeePi
+   </div>
+   <div id="projectbrief">Coffee machine control for Raspberry Pi</div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.10 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+  <div id="navrow1" class="tabs">
+    <ul class="tablist">
+      <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+      <li class="current"><a href="annotated.html"><span>Data&#160;Structures</span></a></li>
+      <li><a href="files.html"><span>Files</span></a></li>
+      <li>
+        <div id="MSearchBox" class="MSearchBoxInactive">
+        <span class="left">
+          <img id="MSearchSelect" src="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="search/close.png" alt=""/></a>
+          </span>
+        </div>
+      </li>
+    </ul>
+  </div>
+  <div id="navrow2" class="tabs2">
+    <ul class="tablist">
+      <li><a href="annotated.html"><span>Data&#160;Structures</span></a></li>
+      <li><a href="classes.html"><span>Data&#160;Structure&#160;Index</span></a></li>
+      <li class="current"><a href="functions.html"><span>Data&#160;Fields</span></a></li>
+    </ul>
+  </div>
+  <div id="navrow3" class="tabs2">
+    <ul class="tablist">
+      <li><a href="functions.html"><span>All</span></a></li>
+      <li><a href="functions_func.html"><span>Functions</span></a></li>
+      <li class="current"><a href="functions_vars.html"><span>Variables</span></a></li>
+    </ul>
+  </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>blue
+: <a class="el" href="structstripe__color.html#a2de85b974fc4ec0bcea12d6a270e53a9">stripe_color</a>
+</li>
+<li>green
+: <a class="el" href="structstripe__color.html#ab650b31353bfddd30e9ea11f8adb870f">stripe_color</a>
+</li>
+<li>next
+: <a class="el" href="classtimer.html#a296c5e65582e19eaf61ae0bffa4071dc">timer</a>
+</li>
+<li>red
+: <a class="el" href="structstripe__color.html#a784aa14cb8856664e9533883d8add33b">stripe_color</a>
+</li>
+</ul>
+</div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.10
+</small></address>
+</body>
+</html>

+ 350 - 0
CoffeeCode/html/global_8h.html

@@ -0,0 +1,350 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.10"/>
+<title>CoffeePi: global.h File 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>
+<script type="text/javascript">
+  $(document).ready(function() { init_search(); });
+</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">CoffeePi
+   </div>
+   <div id="projectbrief">Coffee machine control for Raspberry Pi</div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.10 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+  <div id="navrow1" class="tabs">
+    <ul class="tablist">
+      <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+      <li><a href="annotated.html"><span>Data&#160;Structures</span></a></li>
+      <li class="current"><a href="files.html"><span>Files</span></a></li>
+      <li>
+        <div id="MSearchBox" class="MSearchBoxInactive">
+        <span class="left">
+          <img id="MSearchSelect" src="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="search/close.png" alt=""/></a>
+          </span>
+        </div>
+      </li>
+    </ul>
+  </div>
+  <div id="navrow2" class="tabs2">
+    <ul class="tablist">
+      <li><a href="files.html"><span>File&#160;List</span></a></li>
+      <li><a href="globals.html"><span>Globals</span></a></li>
+    </ul>
+  </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="#define-members">Macros</a> &#124;
+<a href="#func-members">Functions</a> &#124;
+<a href="#var-members">Variables</a>  </div>
+  <div class="headertitle">
+<div class="title">global.h File Reference</div>  </div>
+</div><!--header-->
+<div class="contents">
+<div class="textblock"><code>#include &lt;pthread.h&gt;</code><br />
+</div>
+<p><a href="global_8h_source.html">Go to the source code of this file.</a></p>
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="define-members"></a>
+Macros</h2></td></tr>
+<tr class="memitem:aa8cbb3355883e35c18820bfa63c4ce3a"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="global_8h.html#aa8cbb3355883e35c18820bfa63c4ce3a">SPI_CHANNEL</a>&#160;&#160;&#160;1</td></tr>
+<tr class="separator:aa8cbb3355883e35c18820bfa63c4ce3a"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a0056b7fdd0f81fad9cd38e9fd389a4b6"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="global_8h.html#a0056b7fdd0f81fad9cd38e9fd389a4b6">SPI_SPEED</a>&#160;&#160;&#160;200000</td></tr>
+<tr class="separator:a0056b7fdd0f81fad9cd38e9fd389a4b6"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a91dee3a4ce745234c8a4998388d6c645"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="global_8h.html#a91dee3a4ce745234c8a4998388d6c645">TIMER_DELAY_US</a>&#160;&#160;&#160;50000</td></tr>
+<tr class="separator:a91dee3a4ce745234c8a4998388d6c645"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ad55c274bf698014e01dbc9afde3fc610"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="global_8h.html#ad55c274bf698014e01dbc9afde3fc610">SQL_DATABASE</a>&#160;&#160;&#160;&quot;nodes.sqlite&quot;</td></tr>
+<tr class="separator:ad55c274bf698014e01dbc9afde3fc610"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a67a7c5f1e4a75f1508395d450895990d"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="global_8h.html#a67a7c5f1e4a75f1508395d450895990d">THREAD_MAIN</a>&#160;&#160;&#160;0</td></tr>
+<tr class="separator:a67a7c5f1e4a75f1508395d450895990d"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a77f390a98c0e73ae38abd20f467d6cce"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="global_8h.html#a77f390a98c0e73ae38abd20f467d6cce">THREAD_STRIPE</a>&#160;&#160;&#160;1</td></tr>
+<tr class="separator:a77f390a98c0e73ae38abd20f467d6cce"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a843e1fa4b4de70b9f31d42a41a896c1c"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="global_8h.html#a843e1fa4b4de70b9f31d42a41a896c1c">THREAD_DISPLAY</a>&#160;&#160;&#160;2</td></tr>
+<tr class="separator:a843e1fa4b4de70b9f31d42a41a896c1c"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a5f697926bb7bcc4722a9e650a1acdb6a"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="global_8h.html#a5f697926bb7bcc4722a9e650a1acdb6a">THREAD_COFFEE</a>&#160;&#160;&#160;3</td></tr>
+<tr class="separator:a5f697926bb7bcc4722a9e650a1acdb6a"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table><table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
+Functions</h2></td></tr>
+<tr class="memitem:ab6e46b0071bb3330546b7f2b601d0a6c"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="global_8h.html#ab6e46b0071bb3330546b7f2b601d0a6c">killThread</a> (int threadid, int sig)</td></tr>
+<tr class="memdesc:ab6e46b0071bb3330546b7f2b601d0a6c"><td class="mdescLeft">&#160;</td><td class="mdescRight">Sends a signal to a thread.  <a href="#ab6e46b0071bb3330546b7f2b601d0a6c">More...</a><br /></td></tr>
+<tr class="separator:ab6e46b0071bb3330546b7f2b601d0a6c"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table><table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="var-members"></a>
+Variables</h2></td></tr>
+<tr class="memitem:a0b2caeb4b6f130be43e5a2f0267dd453"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="global_8h.html#a0b2caeb4b6f130be43e5a2f0267dd453">verbose</a></td></tr>
+<tr class="separator:a0b2caeb4b6f130be43e5a2f0267dd453"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ae88c926fe2a10f736eb01b1d1e899a1c"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="global_8h.html#ae88c926fe2a10f736eb01b1d1e899a1c">optDate</a></td></tr>
+<tr class="separator:ae88c926fe2a10f736eb01b1d1e899a1c"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a7bfeade3d2f19e8baecdcddd7f9162fa"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="global_8h.html#a7bfeade3d2f19e8baecdcddd7f9162fa">optPower</a></td></tr>
+<tr class="separator:a7bfeade3d2f19e8baecdcddd7f9162fa"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a4acff8232e4aec9cd5c6dc200ac55ef3"><td class="memItemLeft" align="right" valign="top">pthread_mutex_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="global_8h.html#a4acff8232e4aec9cd5c6dc200ac55ef3">mutex</a></td></tr>
+<tr class="separator:a4acff8232e4aec9cd5c6dc200ac55ef3"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a9d1129916cfa4cbd7489638ce470c3a4"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="global_8h.html#a9d1129916cfa4cbd7489638ce470c3a4">lcd</a></td></tr>
+<tr class="separator:a9d1129916cfa4cbd7489638ce470c3a4"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a5e61240888e929e526f41e19b6c0bd46"><td class="memItemLeft" align="right" valign="top">pthread_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="global_8h.html#a5e61240888e929e526f41e19b6c0bd46">thread</a> []</td></tr>
+<tr class="separator:a5e61240888e929e526f41e19b6c0bd46"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+<h2 class="groupheader">Macro Definition Documentation</h2>
+<a class="anchor" id="aa8cbb3355883e35c18820bfa63c4ce3a"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">#define SPI_CHANNEL&#160;&#160;&#160;1</td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="a0056b7fdd0f81fad9cd38e9fd389a4b6"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">#define SPI_SPEED&#160;&#160;&#160;200000</td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="ad55c274bf698014e01dbc9afde3fc610"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">#define SQL_DATABASE&#160;&#160;&#160;&quot;nodes.sqlite&quot;</td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="a5f697926bb7bcc4722a9e650a1acdb6a"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">#define THREAD_COFFEE&#160;&#160;&#160;3</td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="a843e1fa4b4de70b9f31d42a41a896c1c"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">#define THREAD_DISPLAY&#160;&#160;&#160;2</td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="a67a7c5f1e4a75f1508395d450895990d"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">#define THREAD_MAIN&#160;&#160;&#160;0</td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="a77f390a98c0e73ae38abd20f467d6cce"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">#define THREAD_STRIPE&#160;&#160;&#160;1</td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="a91dee3a4ce745234c8a4998388d6c645"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">#define TIMER_DELAY_US&#160;&#160;&#160;50000</td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<h2 class="groupheader">Function Documentation</h2>
+<a class="anchor" id="ab6e46b0071bb3330546b7f2b601d0a6c"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void killThread </td>
+          <td>(</td>
+          <td class="paramtype">int&#160;</td>
+          <td class="paramname"><em>threadid</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">int&#160;</td>
+          <td class="paramname"><em>sig</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Sends a signal to a thread. </p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">threadid</td><td>ID of the thread </td></tr>
+    <tr><td class="paramname">sig</td><td>Signal to send </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+<h2 class="groupheader">Variable Documentation</h2>
+<a class="anchor" id="a9d1129916cfa4cbd7489638ce470c3a4"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">int lcd</td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="a4acff8232e4aec9cd5c6dc200ac55ef3"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">pthread_mutex_t mutex</td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="ae88c926fe2a10f736eb01b1d1e899a1c"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">bool optDate</td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="a7bfeade3d2f19e8baecdcddd7f9162fa"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">bool optPower</td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="a5e61240888e929e526f41e19b6c0bd46"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">pthread_t thread[]</td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="a0b2caeb4b6f130be43e5a2f0267dd453"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">int verbose</td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+</div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.10
+</small></address>
+</body>
+</html>

+ 143 - 0
CoffeeCode/html/global_8h_source.html

@@ -0,0 +1,143 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.10"/>
+<title>CoffeePi: global.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>
+<script type="text/javascript">
+  $(document).ready(function() { init_search(); });
+</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">CoffeePi
+   </div>
+   <div id="projectbrief">Coffee machine control for Raspberry Pi</div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.10 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+  <div id="navrow1" class="tabs">
+    <ul class="tablist">
+      <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+      <li><a href="annotated.html"><span>Data&#160;Structures</span></a></li>
+      <li class="current"><a href="files.html"><span>Files</span></a></li>
+      <li>
+        <div id="MSearchBox" class="MSearchBoxInactive">
+        <span class="left">
+          <img id="MSearchSelect" src="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="search/close.png" alt=""/></a>
+          </span>
+        </div>
+      </li>
+    </ul>
+  </div>
+  <div id="navrow2" class="tabs2">
+    <ul class="tablist">
+      <li><a href="files.html"><span>File&#160;List</span></a></li>
+      <li><a href="globals.html"><span>Globals</span></a></li>
+    </ul>
+  </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">global.h</div>  </div>
+</div><!--header-->
+<div class="contents">
+<a href="global_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno">    1</span>&#160;<span class="comment">/**********************************************************************</span></div>
+<div class="line"><a name="l00002"></a><span class="lineno">    2</span>&#160;<span class="comment"> Universitaet Ulm</span></div>
+<div class="line"><a name="l00003"></a><span class="lineno">    3</span>&#160;<span class="comment"> Abteilung Organisation und Management von Informationssystemen</span></div>
+<div class="line"><a name="l00004"></a><span class="lineno">    4</span>&#160;<span class="comment"></span></div>
+<div class="line"><a name="l00005"></a><span class="lineno">    5</span>&#160;<span class="comment"> Author: Philipp Hinz</span></div>
+<div class="line"><a name="l00006"></a><span class="lineno">    6</span>&#160;<span class="comment"></span></div>
+<div class="line"><a name="l00007"></a><span class="lineno">    7</span>&#160;<span class="comment"> **********************************************************************/</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;<span class="preprocessor">#ifndef _GLOBAL_H_</span></div>
+<div class="line"><a name="l00010"></a><span class="lineno">   10</span>&#160;<span class="preprocessor">#define _GLOBAL_H_</span></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="preprocessor">#include &lt;pthread.h&gt;</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"><a class="line" href="global_8h.html#aa8cbb3355883e35c18820bfa63c4ce3a">   14</a></span>&#160;<span class="preprocessor">#define SPI_CHANNEL     1       // 0 or 1 on Raspberry Pi</span></div>
+<div class="line"><a name="l00015"></a><span class="lineno"><a class="line" href="global_8h.html#a0056b7fdd0f81fad9cd38e9fd389a4b6">   15</a></span>&#160;<span class="preprocessor">#define SPI_SPEED       200000  // SPI clock speed in Hz</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"><a class="line" href="global_8h.html#a91dee3a4ce745234c8a4998388d6c645">   17</a></span>&#160;<span class="preprocessor">#define TIMER_DELAY_US  50000   // Basic timer delay in us</span></div>
+<div class="line"><a name="l00018"></a><span class="lineno">   18</span>&#160;<span class="comment">// SQL config</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"><a class="line" href="global_8h.html#ad55c274bf698014e01dbc9afde3fc610">   20</a></span>&#160;<span class="preprocessor">#define SQL_DATABASE    &quot;nodes.sqlite&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="comment">// Global variables</span></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">extern</span> <span class="keywordtype">int</span> <a class="code" href="global_8h.html#a0b2caeb4b6f130be43e5a2f0267dd453">verbose</a>;</div>
+<div class="line"><a name="l00025"></a><span class="lineno">   25</span>&#160;<span class="keyword">extern</span> <span class="keywordtype">bool</span> <a class="code" href="global_8h.html#ae88c926fe2a10f736eb01b1d1e899a1c">optDate</a>, <a class="code" href="global_8h.html#a7bfeade3d2f19e8baecdcddd7f9162fa">optPower</a>;</div>
+<div class="line"><a name="l00026"></a><span class="lineno">   26</span>&#160;<span class="keyword">extern</span> pthread_mutex_t <a class="code" href="global_8h.html#a4acff8232e4aec9cd5c6dc200ac55ef3">mutex</a>;</div>
+<div class="line"><a name="l00027"></a><span class="lineno">   27</span>&#160;<span class="keyword">extern</span> <span class="keywordtype">int</span> <a class="code" href="global_8h.html#a9d1129916cfa4cbd7489638ce470c3a4">lcd</a>;</div>
+<div class="line"><a name="l00028"></a><span class="lineno">   28</span>&#160;<span class="keyword">extern</span> pthread_t <a class="code" href="global_8h.html#a5e61240888e929e526f41e19b6c0bd46">thread</a>[];</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="comment">// Thread IDs</span></div>
+<div class="line"><a name="l00032"></a><span class="lineno"><a class="line" href="global_8h.html#a67a7c5f1e4a75f1508395d450895990d">   32</a></span>&#160;<span class="preprocessor">#define THREAD_MAIN     0</span></div>
+<div class="line"><a name="l00033"></a><span class="lineno"><a class="line" href="global_8h.html#a77f390a98c0e73ae38abd20f467d6cce">   33</a></span>&#160;<span class="preprocessor">#define THREAD_STRIPE   1</span></div>
+<div class="line"><a name="l00034"></a><span class="lineno"><a class="line" href="global_8h.html#a843e1fa4b4de70b9f31d42a41a896c1c">   34</a></span>&#160;<span class="preprocessor">#define THREAD_DISPLAY  2</span></div>
+<div class="line"><a name="l00035"></a><span class="lineno"><a class="line" href="global_8h.html#a5f697926bb7bcc4722a9e650a1acdb6a">   35</a></span>&#160;<span class="preprocessor">#define THREAD_COFFEE   3</span></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;</div>
+<div class="line"><a name="l00038"></a><span class="lineno">   38</span>&#160;<span class="keywordtype">void</span> <a class="code" href="global_8h.html#ab6e46b0071bb3330546b7f2b601d0a6c">killThread</a>(<span class="keywordtype">int</span> threadid, <span class="keywordtype">int</span> sig);</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="preprocessor">#endif</span></div>
+<div class="ttc" id="global_8h_html_ab6e46b0071bb3330546b7f2b601d0a6c"><div class="ttname"><a href="global_8h.html#ab6e46b0071bb3330546b7f2b601d0a6c">killThread</a></div><div class="ttdeci">void killThread(int threadid, int sig)</div><div class="ttdoc">Sends a signal to a thread. </div><div class="ttdef"><b>Definition:</b> main.cpp:215</div></div>
+<div class="ttc" id="global_8h_html_ae88c926fe2a10f736eb01b1d1e899a1c"><div class="ttname"><a href="global_8h.html#ae88c926fe2a10f736eb01b1d1e899a1c">optDate</a></div><div class="ttdeci">bool optDate</div><div class="ttdef"><b>Definition:</b> main.cpp:34</div></div>
+<div class="ttc" id="global_8h_html_a5e61240888e929e526f41e19b6c0bd46"><div class="ttname"><a href="global_8h.html#a5e61240888e929e526f41e19b6c0bd46">thread</a></div><div class="ttdeci">pthread_t thread[]</div><div class="ttdef"><b>Definition:</b> main.cpp:43</div></div>
+<div class="ttc" id="global_8h_html_a4acff8232e4aec9cd5c6dc200ac55ef3"><div class="ttname"><a href="global_8h.html#a4acff8232e4aec9cd5c6dc200ac55ef3">mutex</a></div><div class="ttdeci">pthread_mutex_t mutex</div><div class="ttdef"><b>Definition:</b> main.cpp:44</div></div>
+<div class="ttc" id="global_8h_html_a0b2caeb4b6f130be43e5a2f0267dd453"><div class="ttname"><a href="global_8h.html#a0b2caeb4b6f130be43e5a2f0267dd453">verbose</a></div><div class="ttdeci">int verbose</div><div class="ttdef"><b>Definition:</b> main.cpp:33</div></div>
+<div class="ttc" id="global_8h_html_a7bfeade3d2f19e8baecdcddd7f9162fa"><div class="ttname"><a href="global_8h.html#a7bfeade3d2f19e8baecdcddd7f9162fa">optPower</a></div><div class="ttdeci">bool optPower</div><div class="ttdef"><b>Definition:</b> main.cpp:35</div></div>
+<div class="ttc" id="global_8h_html_a9d1129916cfa4cbd7489638ce470c3a4"><div class="ttname"><a href="global_8h.html#a9d1129916cfa4cbd7489638ce470c3a4">lcd</a></div><div class="ttdeci">int lcd</div><div class="ttdef"><b>Definition:</b> main.cpp:32</div></div>
+</div><!-- fragment --></div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.10
+</small></address>
+</body>
+</html>

+ 134 - 0
CoffeeCode/html/globals.html

@@ -0,0 +1,134 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.10"/>
+<title>CoffeePi: Globals</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>
+<script type="text/javascript">
+  $(document).ready(function() { init_search(); });
+</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">CoffeePi
+   </div>
+   <div id="projectbrief">Coffee machine control for Raspberry Pi</div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.10 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+  <div id="navrow1" class="tabs">
+    <ul class="tablist">
+      <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+      <li><a href="annotated.html"><span>Data&#160;Structures</span></a></li>
+      <li class="current"><a href="files.html"><span>Files</span></a></li>
+      <li>
+        <div id="MSearchBox" class="MSearchBoxInactive">
+        <span class="left">
+          <img id="MSearchSelect" src="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="search/close.png" alt=""/></a>
+          </span>
+        </div>
+      </li>
+    </ul>
+  </div>
+  <div id="navrow2" class="tabs2">
+    <ul class="tablist">
+      <li><a href="files.html"><span>File&#160;List</span></a></li>
+      <li class="current"><a href="globals.html"><span>Globals</span></a></li>
+    </ul>
+  </div>
+  <div id="navrow3" class="tabs2">
+    <ul class="tablist">
+      <li class="current"><a href="globals.html"><span>All</span></a></li>
+      <li><a href="globals_func.html"><span>Functions</span></a></li>
+      <li><a href="globals_vars.html"><span>Variables</span></a></li>
+      <li><a href="globals_type.html"><span>Typedefs</span></a></li>
+      <li><a href="globals_enum.html"><span>Enumerations</span></a></li>
+      <li><a href="globals_eval.html"><span>Enumerator</span></a></li>
+      <li><a href="globals_defs.html"><span>Macros</span></a></li>
+    </ul>
+  </div>
+  <div id="navrow4" class="tabs3">
+    <ul class="tablist">
+      <li class="current"><a href="globals.html#index_a"><span>a</span></a></li>
+      <li><a href="globals_b.html#index_b"><span>b</span></a></li>
+      <li><a href="globals_c.html#index_c"><span>c</span></a></li>
+      <li><a href="globals_d.html#index_d"><span>d</span></a></li>
+      <li><a href="globals_e.html#index_e"><span>e</span></a></li>
+      <li><a href="globals_f.html#index_f"><span>f</span></a></li>
+      <li><a href="globals_h.html#index_h"><span>h</span></a></li>
+      <li><a href="globals_i.html#index_i"><span>i</span></a></li>
+      <li><a href="globals_k.html#index_k"><span>k</span></a></li>
+      <li><a href="globals_l.html#index_l"><span>l</span></a></li>
+      <li><a href="globals_m.html#index_m"><span>m</span></a></li>
+      <li><a href="globals_n.html#index_n"><span>n</span></a></li>
+      <li><a href="globals_o.html#index_o"><span>o</span></a></li>
+      <li><a href="globals_p.html#index_p"><span>p</span></a></li>
+      <li><a href="globals_r.html#index_r"><span>r</span></a></li>
+      <li><a href="globals_s.html#index_s"><span>s</span></a></li>
+      <li><a href="globals_t.html#index_t"><span>t</span></a></li>
+      <li><a href="globals_u.html#index_u"><span>u</span></a></li>
+      <li><a href="globals_v.html#index_v"><span>v</span></a></li>
+      <li><a href="globals_w.html#index_w"><span>w</span></a></li>
+    </ul>
+  </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 functions, variables, defines, enums, and typedefs with links to the files they belong to:</div>
+
+<h3><a class="anchor" id="index_a"></a>- a -</h3><ul>
+<li>AliveCRC
+: <a class="el" href="database_8h.html#ae1822373f950fb4881633b7ec843f4dfababedca157bd5e1f8c299e61c197f62f">database.h</a>
+</li>
+</ul>
+</div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.10
+</small></address>
+</body>
+</html>

+ 134 - 0
CoffeeCode/html/globals_b.html

@@ -0,0 +1,134 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.10"/>
+<title>CoffeePi: Globals</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>
+<script type="text/javascript">
+  $(document).ready(function() { init_search(); });
+</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">CoffeePi
+   </div>
+   <div id="projectbrief">Coffee machine control for Raspberry Pi</div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.10 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+  <div id="navrow1" class="tabs">
+    <ul class="tablist">
+      <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+      <li><a href="annotated.html"><span>Data&#160;Structures</span></a></li>
+      <li class="current"><a href="files.html"><span>Files</span></a></li>
+      <li>
+        <div id="MSearchBox" class="MSearchBoxInactive">
+        <span class="left">
+          <img id="MSearchSelect" src="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="search/close.png" alt=""/></a>
+          </span>
+        </div>
+      </li>
+    </ul>
+  </div>
+  <div id="navrow2" class="tabs2">
+    <ul class="tablist">
+      <li><a href="files.html"><span>File&#160;List</span></a></li>
+      <li class="current"><a href="globals.html"><span>Globals</span></a></li>
+    </ul>
+  </div>
+  <div id="navrow3" class="tabs2">
+    <ul class="tablist">
+      <li class="current"><a href="globals.html"><span>All</span></a></li>
+      <li><a href="globals_func.html"><span>Functions</span></a></li>
+      <li><a href="globals_vars.html"><span>Variables</span></a></li>
+      <li><a href="globals_type.html"><span>Typedefs</span></a></li>
+      <li><a href="globals_enum.html"><span>Enumerations</span></a></li>
+      <li><a href="globals_eval.html"><span>Enumerator</span></a></li>
+      <li><a href="globals_defs.html"><span>Macros</span></a></li>
+    </ul>
+  </div>
+  <div id="navrow4" class="tabs3">
+    <ul class="tablist">
+      <li><a href="globals.html#index_a"><span>a</span></a></li>
+      <li class="current"><a href="globals_b.html#index_b"><span>b</span></a></li>
+      <li><a href="globals_c.html#index_c"><span>c</span></a></li>
+      <li><a href="globals_d.html#index_d"><span>d</span></a></li>
+      <li><a href="globals_e.html#index_e"><span>e</span></a></li>
+      <li><a href="globals_f.html#index_f"><span>f</span></a></li>
+      <li><a href="globals_h.html#index_h"><span>h</span></a></li>
+      <li><a href="globals_i.html#index_i"><span>i</span></a></li>
+      <li><a href="globals_k.html#index_k"><span>k</span></a></li>
+      <li><a href="globals_l.html#index_l"><span>l</span></a></li>
+      <li><a href="globals_m.html#index_m"><span>m</span></a></li>
+      <li><a href="globals_n.html#index_n"><span>n</span></a></li>
+      <li><a href="globals_o.html#index_o"><span>o</span></a></li>
+      <li><a href="globals_p.html#index_p"><span>p</span></a></li>
+      <li><a href="globals_r.html#index_r"><span>r</span></a></li>
+      <li><a href="globals_s.html#index_s"><span>s</span></a></li>
+      <li><a href="globals_t.html#index_t"><span>t</span></a></li>
+      <li><a href="globals_u.html#index_u"><span>u</span></a></li>
+      <li><a href="globals_v.html#index_v"><span>v</span></a></li>
+      <li><a href="globals_w.html#index_w"><span>w</span></a></li>
+    </ul>
+  </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 functions, variables, defines, enums, and typedefs with links to the files they belong to:</div>
+
+<h3><a class="anchor" id="index_b"></a>- b -</h3><ul>
+<li>buildno
+: <a class="el" href="main_8cpp.html#ac70430026dcf56f46e5426e1d01d7e89">main.cpp</a>
+</li>
+</ul>
+</div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.10
+</small></address>
+</body>
+</html>

+ 189 - 0
CoffeeCode/html/globals_c.html

@@ -0,0 +1,189 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.10"/>
+<title>CoffeePi: Globals</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>
+<script type="text/javascript">
+  $(document).ready(function() { init_search(); });
+</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">CoffeePi
+   </div>
+   <div id="projectbrief">Coffee machine control for Raspberry Pi</div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.10 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+  <div id="navrow1" class="tabs">
+    <ul class="tablist">
+      <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+      <li><a href="annotated.html"><span>Data&#160;Structures</span></a></li>
+      <li class="current"><a href="files.html"><span>Files</span></a></li>
+      <li>
+        <div id="MSearchBox" class="MSearchBoxInactive">
+        <span class="left">
+          <img id="MSearchSelect" src="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="search/close.png" alt=""/></a>
+          </span>
+        </div>
+      </li>
+    </ul>
+  </div>
+  <div id="navrow2" class="tabs2">
+    <ul class="tablist">
+      <li><a href="files.html"><span>File&#160;List</span></a></li>
+      <li class="current"><a href="globals.html"><span>Globals</span></a></li>
+    </ul>
+  </div>
+  <div id="navrow3" class="tabs2">
+    <ul class="tablist">
+      <li class="current"><a href="globals.html"><span>All</span></a></li>
+      <li><a href="globals_func.html"><span>Functions</span></a></li>
+      <li><a href="globals_vars.html"><span>Variables</span></a></li>
+      <li><a href="globals_type.html"><span>Typedefs</span></a></li>
+      <li><a href="globals_enum.html"><span>Enumerations</span></a></li>
+      <li><a href="globals_eval.html"><span>Enumerator</span></a></li>
+      <li><a href="globals_defs.html"><span>Macros</span></a></li>
+    </ul>
+  </div>
+  <div id="navrow4" class="tabs3">
+    <ul class="tablist">
+      <li><a href="globals.html#index_a"><span>a</span></a></li>
+      <li><a href="globals_b.html#index_b"><span>b</span></a></li>
+      <li class="current"><a href="globals_c.html#index_c"><span>c</span></a></li>
+      <li><a href="globals_d.html#index_d"><span>d</span></a></li>
+      <li><a href="globals_e.html#index_e"><span>e</span></a></li>
+      <li><a href="globals_f.html#index_f"><span>f</span></a></li>
+      <li><a href="globals_h.html#index_h"><span>h</span></a></li>
+      <li><a href="globals_i.html#index_i"><span>i</span></a></li>
+      <li><a href="globals_k.html#index_k"><span>k</span></a></li>
+      <li><a href="globals_l.html#index_l"><span>l</span></a></li>
+      <li><a href="globals_m.html#index_m"><span>m</span></a></li>
+      <li><a href="globals_n.html#index_n"><span>n</span></a></li>
+      <li><a href="globals_o.html#index_o"><span>o</span></a></li>
+      <li><a href="globals_p.html#index_p"><span>p</span></a></li>
+      <li><a href="globals_r.html#index_r"><span>r</span></a></li>
+      <li><a href="globals_s.html#index_s"><span>s</span></a></li>
+      <li><a href="globals_t.html#index_t"><span>t</span></a></li>
+      <li><a href="globals_u.html#index_u"><span>u</span></a></li>
+      <li><a href="globals_v.html#index_v"><span>v</span></a></li>
+      <li><a href="globals_w.html#index_w"><span>w</span></a></li>
+    </ul>
+  </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 functions, variables, defines, enums, and typedefs with links to the files they belong to:</div>
+
+<h3><a class="anchor" id="index_c"></a>- c -</h3><ul>
+<li>chartoint()
+: <a class="el" href="database_8cpp.html#ad2d2a73c367513b8b71aff5546276a3c">database.cpp</a>
+, <a class="el" href="database_8h.html#ad2d2a73c367513b8b71aff5546276a3c">database.h</a>
+</li>
+<li>CHECK_VALUE
+: <a class="el" href="crc_8h.html#aee81a10f43f9dc645ba69a7407c151d0">crc.h</a>
+</li>
+<li>CLEARLINE
+: <a class="el" href="logger_8h.html#ae39a97a19b2e372929dabdc0e3822910">logger.h</a>
+</li>
+<li>CLOCKID
+: <a class="el" href="timer_8h.html#a2694a39dfd1fa087ca6f9f391c91dae7">timer.h</a>
+</li>
+<li>config_key_t
+: <a class="el" href="database_8h.html#ae1822373f950fb4881633b7ec843f4df">database.h</a>
+</li>
+<li>counter
+: <a class="el" href="timer_8cpp.html#a617a47c70795bcff659815ad0efd2266">timer.cpp</a>
+</li>
+<li>crc
+: <a class="el" href="crc_8h.html#a73364f0434186bc77eaa8e3b03a437be">crc.h</a>
+</li>
+<li>CRC
+: <a class="el" href="database_8h.html#ae1822373f950fb4881633b7ec843f4dfaadc75f07a97300078de1c92bf6414827">database.h</a>
+</li>
+<li>CRC32
+: <a class="el" href="crc_8h.html#a491e419c18fbc5c7cb4a2cd901e31440">crc.h</a>
+</li>
+<li>CRC_NAME
+: <a class="el" href="crc_8h.html#ad679f457b8d23bfed7ccf1b9584e8514">crc.h</a>
+</li>
+<li>crcFast()
+: <a class="el" href="crc_8cpp.html#a31e9ca3a3979a4c1e5043f5bfa5befaf">crc.cpp</a>
+, <a class="el" href="crc_8h.html#a31e9ca3a3979a4c1e5043f5bfa5befaf">crc.h</a>
+</li>
+<li>crcInit()
+: <a class="el" href="crc_8h.html#a5a735798e6972adc694a5428dd7ccaf9">crc.h</a>
+, <a class="el" href="crc_8cpp.html#a5a735798e6972adc694a5428dd7ccaf9">crc.cpp</a>
+</li>
+<li>crcSlow()
+: <a class="el" href="crc_8cpp.html#a027c2916f24b3daaf662408cc72026b1">crc.cpp</a>
+, <a class="el" href="crc_8h.html#a027c2916f24b3daaf662408cc72026b1">crc.h</a>
+</li>
+<li>crcTable
+: <a class="el" href="crc_8cpp.html#aa0b98c402a809d26602bb9a693083720">crc.cpp</a>
+</li>
+<li>currentColor
+: <a class="el" href="stripe_8cpp.html#af149226ff674cac78ce47ce7261cb2dc">stripe.cpp</a>
+</li>
+<li>currentDim
+: <a class="el" href="stripe_8cpp.html#a5a820ae4564b095447dffb1f75fbb930">stripe.cpp</a>
+</li>
+<li>currentTransient
+: <a class="el" href="stripe_8cpp.html#a601572ab87622859faa74bd5d948e672">stripe.cpp</a>
+</li>
+<li>currentWhite
+: <a class="el" href="stripe_8cpp.html#aeb79ac3025329db68dba76aa2e830532">stripe.cpp</a>
+</li>
+</ul>
+</div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.10
+</small></address>
+</body>
+</html>

+ 134 - 0
CoffeeCode/html/globals_d.html

@@ -0,0 +1,134 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.10"/>
+<title>CoffeePi: Globals</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>
+<script type="text/javascript">
+  $(document).ready(function() { init_search(); });
+</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">CoffeePi
+   </div>
+   <div id="projectbrief">Coffee machine control for Raspberry Pi</div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.10 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+  <div id="navrow1" class="tabs">
+    <ul class="tablist">
+      <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+      <li><a href="annotated.html"><span>Data&#160;Structures</span></a></li>
+      <li class="current"><a href="files.html"><span>Files</span></a></li>
+      <li>
+        <div id="MSearchBox" class="MSearchBoxInactive">
+        <span class="left">
+          <img id="MSearchSelect" src="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="search/close.png" alt=""/></a>
+          </span>
+        </div>
+      </li>
+    </ul>
+  </div>
+  <div id="navrow2" class="tabs2">
+    <ul class="tablist">
+      <li><a href="files.html"><span>File&#160;List</span></a></li>
+      <li class="current"><a href="globals.html"><span>Globals</span></a></li>
+    </ul>
+  </div>
+  <div id="navrow3" class="tabs2">
+    <ul class="tablist">
+      <li class="current"><a href="globals.html"><span>All</span></a></li>
+      <li><a href="globals_func.html"><span>Functions</span></a></li>
+      <li><a href="globals_vars.html"><span>Variables</span></a></li>
+      <li><a href="globals_type.html"><span>Typedefs</span></a></li>
+      <li><a href="globals_enum.html"><span>Enumerations</span></a></li>
+      <li><a href="globals_eval.html"><span>Enumerator</span></a></li>
+      <li><a href="globals_defs.html"><span>Macros</span></a></li>
+    </ul>
+  </div>
+  <div id="navrow4" class="tabs3">
+    <ul class="tablist">
+      <li><a href="globals.html#index_a"><span>a</span></a></li>
+      <li><a href="globals_b.html#index_b"><span>b</span></a></li>
+      <li><a href="globals_c.html#index_c"><span>c</span></a></li>
+      <li class="current"><a href="globals_d.html#index_d"><span>d</span></a></li>
+      <li><a href="globals_e.html#index_e"><span>e</span></a></li>
+      <li><a href="globals_f.html#index_f"><span>f</span></a></li>
+      <li><a href="globals_h.html#index_h"><span>h</span></a></li>
+      <li><a href="globals_i.html#index_i"><span>i</span></a></li>
+      <li><a href="globals_k.html#index_k"><span>k</span></a></li>
+      <li><a href="globals_l.html#index_l"><span>l</span></a></li>
+      <li><a href="globals_m.html#index_m"><span>m</span></a></li>
+      <li><a href="globals_n.html#index_n"><span>n</span></a></li>
+      <li><a href="globals_o.html#index_o"><span>o</span></a></li>
+      <li><a href="globals_p.html#index_p"><span>p</span></a></li>
+      <li><a href="globals_r.html#index_r"><span>r</span></a></li>
+      <li><a href="globals_s.html#index_s"><span>s</span></a></li>
+      <li><a href="globals_t.html#index_t"><span>t</span></a></li>
+      <li><a href="globals_u.html#index_u"><span>u</span></a></li>
+      <li><a href="globals_v.html#index_v"><span>v</span></a></li>
+      <li><a href="globals_w.html#index_w"><span>w</span></a></li>
+    </ul>
+  </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 functions, variables, defines, enums, and typedefs with links to the files they belong to:</div>
+
+<h3><a class="anchor" id="index_d"></a>- d -</h3><ul>
+<li>db
+: <a class="el" href="database_8cpp.html#ad6e663497d2c934364b3bcf07496b30b">database.cpp</a>
+</li>
+</ul>
+</div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.10
+</small></address>
+</body>
+</html>

+ 416 - 0
CoffeeCode/html/globals_defs.html

@@ -0,0 +1,416 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.10"/>
+<title>CoffeePi: Globals</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>
+<script type="text/javascript">
+  $(document).ready(function() { init_search(); });
+</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">CoffeePi
+   </div>
+   <div id="projectbrief">Coffee machine control for Raspberry Pi</div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.10 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+  <div id="navrow1" class="tabs">
+    <ul class="tablist">
+      <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+      <li><a href="annotated.html"><span>Data&#160;Structures</span></a></li>
+      <li class="current"><a href="files.html"><span>Files</span></a></li>
+      <li>
+        <div id="MSearchBox" class="MSearchBoxInactive">
+        <span class="left">
+          <img id="MSearchSelect" src="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="search/close.png" alt=""/></a>
+          </span>
+        </div>
+      </li>
+    </ul>
+  </div>
+  <div id="navrow2" class="tabs2">
+    <ul class="tablist">
+      <li><a href="files.html"><span>File&#160;List</span></a></li>
+      <li class="current"><a href="globals.html"><span>Globals</span></a></li>
+    </ul>
+  </div>
+  <div id="navrow3" class="tabs2">
+    <ul class="tablist">
+      <li><a href="globals.html"><span>All</span></a></li>
+      <li><a href="globals_func.html"><span>Functions</span></a></li>
+      <li><a href="globals_vars.html"><span>Variables</span></a></li>
+      <li><a href="globals_type.html"><span>Typedefs</span></a></li>
+      <li><a href="globals_enum.html"><span>Enumerations</span></a></li>
+      <li><a href="globals_eval.html"><span>Enumerator</span></a></li>
+      <li class="current"><a href="globals_defs.html"><span>Macros</span></a></li>
+    </ul>
+  </div>
+  <div id="navrow4" class="tabs3">
+    <ul class="tablist">
+      <li><a href="#index_c"><span>c</span></a></li>
+      <li><a href="#index_e"><span>e</span></a></li>
+      <li><a href="#index_f"><span>f</span></a></li>
+      <li><a href="#index_i"><span>i</span></a></li>
+      <li><a href="#index_k"><span>k</span></a></li>
+      <li><a href="#index_l"><span>l</span></a></li>
+      <li><a href="#index_m"><span>m</span></a></li>
+      <li><a href="#index_p"><span>p</span></a></li>
+      <li><a href="#index_r"><span>r</span></a></li>
+      <li><a href="#index_s"><span>s</span></a></li>
+      <li><a href="#index_t"><span>t</span></a></li>
+      <li><a href="#index_u"><span>u</span></a></li>
+      <li class="current"><a href="#index_w"><span>w</span></a></li>
+    </ul>
+  </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 class="anchor" id="index_c"></a>- c -</h3><ul>
+<li>CHECK_VALUE
+: <a class="el" href="crc_8h.html#aee81a10f43f9dc645ba69a7407c151d0">crc.h</a>
+</li>
+<li>CLEARLINE
+: <a class="el" href="logger_8h.html#ae39a97a19b2e372929dabdc0e3822910">logger.h</a>
+</li>
+<li>CLOCKID
+: <a class="el" href="timer_8h.html#a2694a39dfd1fa087ca6f9f391c91dae7">timer.h</a>
+</li>
+<li>CRC32
+: <a class="el" href="crc_8h.html#a491e419c18fbc5c7cb4a2cd901e31440">crc.h</a>
+</li>
+<li>CRC_NAME
+: <a class="el" href="crc_8h.html#ad679f457b8d23bfed7ccf1b9584e8514">crc.h</a>
+</li>
+</ul>
+
+
+<h3><a class="anchor" id="index_e"></a>- e -</h3><ul>
+<li>errExit
+: <a class="el" href="timer_8h.html#af3ec03c16ee82e8578cfd8fd133d7a6f">timer.h</a>
+</li>
+</ul>
+
+
+<h3><a class="anchor" id="index_f"></a>- f -</h3><ul>
+<li>FALSE
+: <a class="el" href="crc_8h.html#aa93f0eb578d23995850d61f7d61c55c1">crc.h</a>
+, <a class="el" href="lcd_8cpp.html#aa93f0eb578d23995850d61f7d61c55c1">lcd.cpp</a>
+</li>
+<li>FINAL_XOR_VALUE
+: <a class="el" href="crc_8h.html#a5e491822bb6a5bf7114dd453ab48891e">crc.h</a>
+</li>
+<li>FLOW
+: <a class="el" href="hal_8h.html#a249f9f89b3a190ddd62999b1afa847c3">hal.h</a>
+</li>
+<li>FLOW_ML_PULSE
+: <a class="el" href="hal_8h.html#a957d80982673bb087a5d29380720f59d">hal.h</a>
+</li>
+</ul>
+
+
+<h3><a class="anchor" id="index_i"></a>- i -</h3><ul>
+<li>I2C_ADDRESS_STRIPE
+: <a class="el" href="stripe_8h.html#a52f9fc93ce25c487d4f72b9f2f400545">stripe.h</a>
+</li>
+<li>INITIAL_REMAINDER
+: <a class="el" href="crc_8h.html#acce5b79e1a8ad8ffe40fb9f7d63b2fdc">crc.h</a>
+</li>
+<li>INT0
+: <a class="el" href="hal_8h.html#a7521122e23c8d5c83b2a033b2505c86c">hal.h</a>
+</li>
+<li>INT1
+: <a class="el" href="hal_8h.html#ae4728496f2ab826d5fc6a63da6cb600b">hal.h</a>
+</li>
+</ul>
+
+
+<h3><a class="anchor" id="index_k"></a>- k -</h3><ul>
+<li>KBLU
+: <a class="el" href="logger_8h.html#a3f838f2fc3a9a3b434be606fc908964b">logger.h</a>
+</li>
+<li>KBOLD
+: <a class="el" href="logger_8h.html#a815022697da1d2d7744ff178e940078c">logger.h</a>
+</li>
+<li>KCYN
+: <a class="el" href="logger_8h.html#a32036c94dbb166a3f874b7efc169841f">logger.h</a>
+</li>
+<li>KGRN
+: <a class="el" href="logger_8h.html#ac081c83b067273757f7a2e54a5957d41">logger.h</a>
+</li>
+<li>KMAG
+: <a class="el" href="logger_8h.html#a6825f05d3b9d619d91d79d0ef18bb8b2">logger.h</a>
+</li>
+<li>KNRM
+: <a class="el" href="logger_8h.html#a137aa83ec74421d226a90c92ec032ac9">logger.h</a>
+</li>
+<li>KRED
+: <a class="el" href="logger_8h.html#a66290957baed5df3930ada4cb8caccf1">logger.h</a>
+</li>
+<li>KWHT
+: <a class="el" href="logger_8h.html#af0036c8022c9980079ab17e5c87fd478">logger.h</a>
+</li>
+<li>KYEL
+: <a class="el" href="logger_8h.html#a897b10d246533c95ba86cb79f92e465a">logger.h</a>
+</li>
+</ul>
+
+
+<h3><a class="anchor" id="index_l"></a>- l -</h3><ul>
+<li>LCD_BLINK_CTRL
+: <a class="el" href="lcd_8cpp.html#aa52bab70fab9c117f20d71442de77452">lcd.cpp</a>
+</li>
+<li>LCD_CDSHIFT
+: <a class="el" href="lcd_8cpp.html#a93e4bb4b824f5b8f5d572d9b4a943ad2">lcd.cpp</a>
+</li>
+<li>LCD_CDSHIFT_RL
+: <a class="el" href="lcd_8cpp.html#afb0c5015365d7e200edec8967d32195c">lcd.cpp</a>
+</li>
+<li>LCD_CGRAM
+: <a class="el" href="lcd_8cpp.html#a3b38de74c362be1781fef1136aa9684c">lcd.cpp</a>
+</li>
+<li>LCD_CLEAR
+: <a class="el" href="lcd_8cpp.html#a6aa8aa2057294b7d06088e834299b369">lcd.cpp</a>
+</li>
+<li>LCD_CTRL
+: <a class="el" href="lcd_8cpp.html#a8e945df7ca614325cafa08258e82a63c">lcd.cpp</a>
+</li>
+<li>LCD_CURSOR_CTRL
+: <a class="el" href="lcd_8cpp.html#a3da48db16c1e7844567542273a5578c7">lcd.cpp</a>
+</li>
+<li>LCD_DGRAM
+: <a class="el" href="lcd_8cpp.html#a9f40873eaf6a8f0a93971b3e0ab3fd12">lcd.cpp</a>
+</li>
+<li>LCD_DISPLAY_CTRL
+: <a class="el" href="lcd_8cpp.html#a1a166a796cbaf4cdd6a3af584ec067d5">lcd.cpp</a>
+</li>
+<li>LCD_EN
+: <a class="el" href="lcd_8h.html#a1640ffbc0d8ec0f7edb04a2b93918072">lcd.h</a>
+</li>
+<li>LCD_ENTRY
+: <a class="el" href="lcd_8cpp.html#a28d2c8d621da114a0fe438db2e58507a">lcd.cpp</a>
+</li>
+<li>LCD_ENTRY_ID
+: <a class="el" href="lcd_8cpp.html#a58e84458e964afcac51877bd13e7703f">lcd.cpp</a>
+</li>
+<li>LCD_ENTRY_SH
+: <a class="el" href="lcd_8cpp.html#aff5b4fcb87ea2eef9bb3af0234b14f53">lcd.cpp</a>
+</li>
+<li>LCD_FUNC
+: <a class="el" href="lcd_8cpp.html#a387bfe42ea7284ba0f154f00df579cad">lcd.cpp</a>
+</li>
+<li>LCD_FUNC_DL
+: <a class="el" href="lcd_8cpp.html#ae4b9a3bcb0dc315afc03412237c5a3ea">lcd.cpp</a>
+</li>
+<li>LCD_FUNC_F
+: <a class="el" href="lcd_8cpp.html#a5ea7976aa137e8d043d3dfab474cf0b4">lcd.cpp</a>
+</li>
+<li>LCD_FUNC_N
+: <a class="el" href="lcd_8cpp.html#a0741cad05d62ff28d92a05ea11aa6fdc">lcd.cpp</a>
+</li>
+<li>LCD_HOME
+: <a class="el" href="lcd_8cpp.html#ae0e309ccad89222eb3457f2da9f2bb8d">lcd.cpp</a>
+</li>
+<li>LCD_RS
+: <a class="el" href="lcd_8h.html#a4781e073871c6f27f89b9463ad3a4ed1">lcd.h</a>
+</li>
+<li>LCD_RW
+: <a class="el" href="lcd_8h.html#a26089a10ddd59a0dc7283c19ccc02533">lcd.h</a>
+</li>
+</ul>
+
+
+<h3><a class="anchor" id="index_m"></a>- m -</h3><ul>
+<li>MAX_LCDS
+: <a class="el" href="lcd_8h.html#a6bfe3f4a880b075a72d2a8318bd10f8e">lcd.h</a>
+</li>
+</ul>
+
+
+<h3><a class="anchor" id="index_p"></a>- p -</h3><ul>
+<li>POLYNOMIAL
+: <a class="el" href="crc_8h.html#ae13d91fe6e514f0aa1caba701ef1ff92">crc.h</a>
+</li>
+<li>PRESSURE_CTRL
+: <a class="el" href="hal_8h.html#af9f618757de2bf9051de55c831802f30">hal.h</a>
+</li>
+<li>PROX_COVERED
+: <a class="el" href="hal_8h.html#a7c6e51c86f643b69623e53eaa62e6cd4">hal.h</a>
+</li>
+<li>PROXIMITY_SENSOR
+: <a class="el" href="hal_8h.html#a60cdc9e2a5c04bd14c4c3c6f872ddf29">hal.h</a>
+</li>
+</ul>
+
+
+<h3><a class="anchor" id="index_r"></a>- r -</h3><ul>
+<li>REFLECT_DATA
+: <a class="el" href="crc_8cpp.html#ac5944d40ab44731450a57acd7f027f6a">crc.cpp</a>
+, <a class="el" href="crc_8h.html#af6653e78d37b912d592ffc6e96eb7abb">crc.h</a>
+</li>
+<li>REFLECT_REMAINDER
+: <a class="el" href="crc_8h.html#a5aa89bef30ad5bd061deda3eef36e327">crc.h</a>
+, <a class="el" href="crc_8cpp.html#a2354513de80cf643198f44d7030b74d7">crc.cpp</a>
+</li>
+<li>RELAIS_HEAT
+: <a class="el" href="hal_8h.html#a9b57e326c17e793a2c70b909256734ab">hal.h</a>
+</li>
+<li>RELAIS_POWER
+: <a class="el" href="hal_8h.html#a56489df9a2d1844419f2b0c104516657">hal.h</a>
+</li>
+<li>RELAIS_PUMP
+: <a class="el" href="hal_8h.html#a9723c5da9e57e2b3a1c3ec7b635cee53">hal.h</a>
+</li>
+</ul>
+
+
+<h3><a class="anchor" id="index_s"></a>- s -</h3><ul>
+<li>SHIFT_G
+: <a class="el" href="spi_8h.html#aa846752b3dc2a7a280e1c97191c1e378">spi.h</a>
+</li>
+<li>SHIFT_RCK
+: <a class="el" href="spi_8h.html#aed6e9b64896ee902a2f02b1e49e65a11">spi.h</a>
+</li>
+<li>SHIFT_SCLR
+: <a class="el" href="spi_8h.html#aa9f52b418d31ac71ce93f2d7846ded90">spi.h</a>
+</li>
+<li>SIG
+: <a class="el" href="timer_8h.html#ad6f1d374549d22100d676d5fcac0a7e5">timer.h</a>
+</li>
+<li>SPI_CHANNEL
+: <a class="el" href="global_8h.html#aa8cbb3355883e35c18820bfa63c4ce3a">global.h</a>
+</li>
+<li>SPI_SPEED
+: <a class="el" href="global_8h.html#a0056b7fdd0f81fad9cd38e9fd389a4b6">global.h</a>
+</li>
+<li>SQL_DATABASE
+: <a class="el" href="global_8h.html#ad55c274bf698014e01dbc9afde3fc610">global.h</a>
+</li>
+<li>STRIPE_CMD_FADEOUT
+: <a class="el" href="stripe_8h.html#a14287ccb3789c724603c28910512a0b3">stripe.h</a>
+</li>
+<li>STRIPE_CMD_FADESTOP
+: <a class="el" href="stripe_8h.html#a2e4a6f31f6823ec2592e9216a51232f2">stripe.h</a>
+</li>
+<li>STRIPE_CMD_FADETO
+: <a class="el" href="stripe_8h.html#a80ccf336e21703504faf1b3acba2c98b">stripe.h</a>
+</li>
+<li>STRIPE_CMD_RESET
+: <a class="el" href="stripe_8h.html#a0a2c9ea1a805ca03af6c43c107c98e8e">stripe.h</a>
+</li>
+<li>STRIPE_CMD_SET
+: <a class="el" href="stripe_8h.html#ab495a56c339e141ecbecfd9872f81fbb">stripe.h</a>
+</li>
+<li>STRIPE_CMD_SET2
+: <a class="el" href="stripe_8h.html#aead1e6fe1bdc60cade5b071a293864cc">stripe.h</a>
+</li>
+<li>STRIPE_CMD_SETB
+: <a class="el" href="stripe_8h.html#a25c93d4301c3ad1064adfb9eff952211">stripe.h</a>
+</li>
+<li>STRIPE_CMD_SETDIM
+: <a class="el" href="stripe_8h.html#aedb99f1c6b67c005f5a2cd6dea06c6b7">stripe.h</a>
+</li>
+<li>STRIPE_CMD_SETG
+: <a class="el" href="stripe_8h.html#ac62893e9f8f3793a3f6de3338a9a93ff">stripe.h</a>
+</li>
+<li>STRIPE_CMD_SETR
+: <a class="el" href="stripe_8h.html#ad06bb775e1f72bc21a5f17a19eb62e80">stripe.h</a>
+</li>
+<li>STRIPE_CMD_SETW
+: <a class="el" href="stripe_8h.html#a3c5fd782e0479daf6bb272d5197c8877">stripe.h</a>
+</li>
+</ul>
+
+
+<h3><a class="anchor" id="index_t"></a>- t -</h3><ul>
+<li>THREAD_COFFEE
+: <a class="el" href="global_8h.html#a5f697926bb7bcc4722a9e650a1acdb6a">global.h</a>
+</li>
+<li>THREAD_DISPLAY
+: <a class="el" href="global_8h.html#a843e1fa4b4de70b9f31d42a41a896c1c">global.h</a>
+</li>
+<li>THREAD_MAIN
+: <a class="el" href="global_8h.html#a67a7c5f1e4a75f1508395d450895990d">global.h</a>
+</li>
+<li>THREAD_STRIPE
+: <a class="el" href="global_8h.html#a77f390a98c0e73ae38abd20f467d6cce">global.h</a>
+</li>
+<li>TIMER_DELAY_US
+: <a class="el" href="global_8h.html#a91dee3a4ce745234c8a4998388d6c645">global.h</a>
+</li>
+<li>TOPBIT
+: <a class="el" href="crc_8cpp.html#a118ad552670dbefa1df0ba72d147f5e1">crc.cpp</a>
+</li>
+<li>TRUE
+: <a class="el" href="lcd_8cpp.html#aa8cecfc5c5c054d2875c03e77b7be15d">lcd.cpp</a>
+, <a class="el" href="crc_8h.html#aa8cecfc5c5c054d2875c03e77b7be15d">crc.h</a>
+</li>
+</ul>
+
+
+<h3><a class="anchor" id="index_u"></a>- u -</h3><ul>
+<li>USE_COLORS
+: <a class="el" href="logger_8h.html#acdbdbd1e0c5422f3d1f7aa3960957e0a">logger.h</a>
+</li>
+</ul>
+
+
+<h3><a class="anchor" id="index_w"></a>- w -</h3><ul>
+<li>WIDTH
+: <a class="el" href="crc_8cpp.html#a241aeeb764887ae5e3de58b98f04b16d">crc.cpp</a>
+</li>
+</ul>
+</div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.10
+</small></address>
+</body>
+</html>

+ 137 - 0
CoffeeCode/html/globals_e.html

@@ -0,0 +1,137 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.10"/>
+<title>CoffeePi: Globals</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>
+<script type="text/javascript">
+  $(document).ready(function() { init_search(); });
+</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">CoffeePi
+   </div>
+   <div id="projectbrief">Coffee machine control for Raspberry Pi</div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.10 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+  <div id="navrow1" class="tabs">
+    <ul class="tablist">
+      <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+      <li><a href="annotated.html"><span>Data&#160;Structures</span></a></li>
+      <li class="current"><a href="files.html"><span>Files</span></a></li>
+      <li>
+        <div id="MSearchBox" class="MSearchBoxInactive">
+        <span class="left">
+          <img id="MSearchSelect" src="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="search/close.png" alt=""/></a>
+          </span>
+        </div>
+      </li>
+    </ul>
+  </div>
+  <div id="navrow2" class="tabs2">
+    <ul class="tablist">
+      <li><a href="files.html"><span>File&#160;List</span></a></li>
+      <li class="current"><a href="globals.html"><span>Globals</span></a></li>
+    </ul>
+  </div>
+  <div id="navrow3" class="tabs2">
+    <ul class="tablist">
+      <li class="current"><a href="globals.html"><span>All</span></a></li>
+      <li><a href="globals_func.html"><span>Functions</span></a></li>
+      <li><a href="globals_vars.html"><span>Variables</span></a></li>
+      <li><a href="globals_type.html"><span>Typedefs</span></a></li>
+      <li><a href="globals_enum.html"><span>Enumerations</span></a></li>
+      <li><a href="globals_eval.html"><span>Enumerator</span></a></li>
+      <li><a href="globals_defs.html"><span>Macros</span></a></li>
+    </ul>
+  </div>
+  <div id="navrow4" class="tabs3">
+    <ul class="tablist">
+      <li><a href="globals.html#index_a"><span>a</span></a></li>
+      <li><a href="globals_b.html#index_b"><span>b</span></a></li>
+      <li><a href="globals_c.html#index_c"><span>c</span></a></li>
+      <li><a href="globals_d.html#index_d"><span>d</span></a></li>
+      <li class="current"><a href="globals_e.html#index_e"><span>e</span></a></li>
+      <li><a href="globals_f.html#index_f"><span>f</span></a></li>
+      <li><a href="globals_h.html#index_h"><span>h</span></a></li>
+      <li><a href="globals_i.html#index_i"><span>i</span></a></li>
+      <li><a href="globals_k.html#index_k"><span>k</span></a></li>
+      <li><a href="globals_l.html#index_l"><span>l</span></a></li>
+      <li><a href="globals_m.html#index_m"><span>m</span></a></li>
+      <li><a href="globals_n.html#index_n"><span>n</span></a></li>
+      <li><a href="globals_o.html#index_o"><span>o</span></a></li>
+      <li><a href="globals_p.html#index_p"><span>p</span></a></li>
+      <li><a href="globals_r.html#index_r"><span>r</span></a></li>
+      <li><a href="globals_s.html#index_s"><span>s</span></a></li>
+      <li><a href="globals_t.html#index_t"><span>t</span></a></li>
+      <li><a href="globals_u.html#index_u"><span>u</span></a></li>
+      <li><a href="globals_v.html#index_v"><span>v</span></a></li>
+      <li><a href="globals_w.html#index_w"><span>w</span></a></li>
+    </ul>
+  </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 functions, variables, defines, enums, and typedefs with links to the files they belong to:</div>
+
+<h3><a class="anchor" id="index_e"></a>- e -</h3><ul>
+<li>effectColor
+: <a class="el" href="stripe_8cpp.html#a8b61b922f1ae5a0c5854e3a318b74421">stripe.cpp</a>
+</li>
+<li>errExit
+: <a class="el" href="timer_8h.html#af3ec03c16ee82e8578cfd8fd133d7a6f">timer.h</a>
+</li>
+</ul>
+</div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.10
+</small></address>
+</body>
+</html>

+ 120 - 0
CoffeeCode/html/globals_enum.html

@@ -0,0 +1,120 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.10"/>
+<title>CoffeePi: Globals</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>
+<script type="text/javascript">
+  $(document).ready(function() { init_search(); });
+</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">CoffeePi
+   </div>
+   <div id="projectbrief">Coffee machine control for Raspberry Pi</div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.10 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+  <div id="navrow1" class="tabs">
+    <ul class="tablist">
+      <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+      <li><a href="annotated.html"><span>Data&#160;Structures</span></a></li>
+      <li class="current"><a href="files.html"><span>Files</span></a></li>
+      <li>
+        <div id="MSearchBox" class="MSearchBoxInactive">
+        <span class="left">
+          <img id="MSearchSelect" src="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="search/close.png" alt=""/></a>
+          </span>
+        </div>
+      </li>
+    </ul>
+  </div>
+  <div id="navrow2" class="tabs2">
+    <ul class="tablist">
+      <li><a href="files.html"><span>File&#160;List</span></a></li>
+      <li class="current"><a href="globals.html"><span>Globals</span></a></li>
+    </ul>
+  </div>
+  <div id="navrow3" class="tabs2">
+    <ul class="tablist">
+      <li><a href="globals.html"><span>All</span></a></li>
+      <li><a href="globals_func.html"><span>Functions</span></a></li>
+      <li><a href="globals_vars.html"><span>Variables</span></a></li>
+      <li><a href="globals_type.html"><span>Typedefs</span></a></li>
+      <li class="current"><a href="globals_enum.html"><span>Enumerations</span></a></li>
+      <li><a href="globals_eval.html"><span>Enumerator</span></a></li>
+      <li><a href="globals_defs.html"><span>Macros</span></a></li>
+    </ul>
+  </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>config_key_t
+: <a class="el" href="database_8h.html#ae1822373f950fb4881633b7ec843f4df">database.h</a>
+</li>
+<li>HalSig
+: <a class="el" href="hal_8h.html#aa51a8c9f6b926aa9e9c5dd38249d3f68">hal.h</a>
+</li>
+<li>logger_type_t
+: <a class="el" href="logger_8h.html#a60cbc432422370d29ed1b783be884823">logger.h</a>
+</li>
+<li>logger_verbose_t
+: <a class="el" href="logger_8h.html#a1cfb4eb1363ea2e4d18f9052a7a98131">logger.h</a>
+</li>
+<li>stripe_transient_t
+: <a class="el" href="stripe_8h.html#aa761062faf633557e537e07a781965e9">stripe.h</a>
+</li>
+</ul>
+</div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.10
+</small></address>
+</body>
+</html>

+ 239 - 0
CoffeeCode/html/globals_eval.html

@@ -0,0 +1,239 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.10"/>
+<title>CoffeePi: Globals</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>
+<script type="text/javascript">
+  $(document).ready(function() { init_search(); });
+</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">CoffeePi
+   </div>
+   <div id="projectbrief">Coffee machine control for Raspberry Pi</div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.10 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+  <div id="navrow1" class="tabs">
+    <ul class="tablist">
+      <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+      <li><a href="annotated.html"><span>Data&#160;Structures</span></a></li>
+      <li class="current"><a href="files.html"><span>Files</span></a></li>
+      <li>
+        <div id="MSearchBox" class="MSearchBoxInactive">
+        <span class="left">
+          <img id="MSearchSelect" src="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="search/close.png" alt=""/></a>
+          </span>
+        </div>
+      </li>
+    </ul>
+  </div>
+  <div id="navrow2" class="tabs2">
+    <ul class="tablist">
+      <li><a href="files.html"><span>File&#160;List</span></a></li>
+      <li class="current"><a href="globals.html"><span>Globals</span></a></li>
+    </ul>
+  </div>
+  <div id="navrow3" class="tabs2">
+    <ul class="tablist">
+      <li><a href="globals.html"><span>All</span></a></li>
+      <li><a href="globals_func.html"><span>Functions</span></a></li>
+      <li><a href="globals_vars.html"><span>Variables</span></a></li>
+      <li><a href="globals_type.html"><span>Typedefs</span></a></li>
+      <li><a href="globals_enum.html"><span>Enumerations</span></a></li>
+      <li class="current"><a href="globals_eval.html"><span>Enumerator</span></a></li>
+      <li><a href="globals_defs.html"><span>Macros</span></a></li>
+    </ul>
+  </div>
+  <div id="navrow4" class="tabs3">
+    <ul class="tablist">
+      <li><a href="#index_a"><span>a</span></a></li>
+      <li><a href="#index_c"><span>c</span></a></li>
+      <li><a href="#index_l"><span>l</span></a></li>
+      <li><a href="#index_s"><span>s</span></a></li>
+      <li><a href="#index_t"><span>t</span></a></li>
+      <li class="current"><a href="#index_v"><span>v</span></a></li>
+    </ul>
+  </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 class="anchor" id="index_a"></a>- a -</h3><ul>
+<li>AliveCRC
+: <a class="el" href="database_8h.html#ae1822373f950fb4881633b7ec843f4dfababedca157bd5e1f8c299e61c197f62f">database.h</a>
+</li>
+</ul>
+
+
+<h3><a class="anchor" id="index_c"></a>- c -</h3><ul>
+<li>CRC
+: <a class="el" href="database_8h.html#ae1822373f950fb4881633b7ec843f4dfaadc75f07a97300078de1c92bf6414827">database.h</a>
+</li>
+</ul>
+
+
+<h3><a class="anchor" id="index_l"></a>- l -</h3><ul>
+<li>lastTC1
+: <a class="el" href="database_8h.html#ae1822373f950fb4881633b7ec843f4dfa8408e147e8a938136f8a861d49dc9424">database.h</a>
+</li>
+<li>lastTC2
+: <a class="el" href="database_8h.html#ae1822373f950fb4881633b7ec843f4dfa59e22dd6cca23a1fc16c27b051e515b5">database.h</a>
+</li>
+<li>lastTC3
+: <a class="el" href="database_8h.html#ae1822373f950fb4881633b7ec843f4dfa3e3cdc9f9da298c1b6d46c49b1421848">database.h</a>
+</li>
+<li>lastTerm
+: <a class="el" href="database_8h.html#ae1822373f950fb4881633b7ec843f4dfa6e580e65e5c126a239a8e27157ec96a4">database.h</a>
+</li>
+<li>LOG_CAN
+: <a class="el" href="logger_8h.html#a60cbc432422370d29ed1b783be884823a854a22c1c382f9b7a93bf8e556191c5f">logger.h</a>
+</li>
+<li>LOG_ERROR
+: <a class="el" href="logger_8h.html#a60cbc432422370d29ed1b783be884823a230506cce5c68c3bac5a821c42ed3473">logger.h</a>
+</li>
+<li>LOG_ERRORC
+: <a class="el" href="logger_8h.html#a60cbc432422370d29ed1b783be884823a1ee7c46e5fb6cad577d81e275a4f8218">logger.h</a>
+</li>
+<li>LOG_INFO
+: <a class="el" href="logger_8h.html#a60cbc432422370d29ed1b783be884823a6e98ff471e3ce6c4ef2d75c37ee51837">logger.h</a>
+</li>
+<li>LOG_OK
+: <a class="el" href="logger_8h.html#a60cbc432422370d29ed1b783be884823a746c53b13e16f15d1d885f75efaf58b1">logger.h</a>
+</li>
+<li>LOG_WARN
+: <a class="el" href="logger_8h.html#a60cbc432422370d29ed1b783be884823ac8041ffa22bc823d4726701cdb13fc13">logger.h</a>
+</li>
+</ul>
+
+
+<h3><a class="anchor" id="index_s"></a>- s -</h3><ul>
+<li>SigBrewOff
+: <a class="el" href="hal_8h.html#aa51a8c9f6b926aa9e9c5dd38249d3f68a6d3fe49429343ea09a007c2236db9382">hal.h</a>
+</li>
+<li>SigBrewOn
+: <a class="el" href="hal_8h.html#aa51a8c9f6b926aa9e9c5dd38249d3f68a4f8316fcd4daf8fdee99ad3414c00857">hal.h</a>
+</li>
+<li>SigInt0Psh
+: <a class="el" href="hal_8h.html#aa51a8c9f6b926aa9e9c5dd38249d3f68a4f6585385aaee8e6a336fb31e8713751">hal.h</a>
+</li>
+<li>SigInt0Rls
+: <a class="el" href="hal_8h.html#aa51a8c9f6b926aa9e9c5dd38249d3f68ae70d75d9c016f72d315ce0f375425ae3">hal.h</a>
+</li>
+<li>SigInt1Psh
+: <a class="el" href="hal_8h.html#aa51a8c9f6b926aa9e9c5dd38249d3f68a5fd8970919f375d9f3baaaa053865ce2">hal.h</a>
+</li>
+<li>SigInt1Rls
+: <a class="el" href="hal_8h.html#aa51a8c9f6b926aa9e9c5dd38249d3f68aa85940fc659570c5b7ec2d8e0ed3eeae">hal.h</a>
+</li>
+<li>SigPressCls
+: <a class="el" href="hal_8h.html#aa51a8c9f6b926aa9e9c5dd38249d3f68abdd48e173224114754f253d764540ec9">hal.h</a>
+</li>
+<li>SigPressOpn
+: <a class="el" href="hal_8h.html#aa51a8c9f6b926aa9e9c5dd38249d3f68a683f7a77d5c63e835b2a72ab1c540fe4">hal.h</a>
+</li>
+<li>SigProxCvrd
+: <a class="el" href="hal_8h.html#aa51a8c9f6b926aa9e9c5dd38249d3f68ac53b2d92b9e3b1652f173e29db5b523d">hal.h</a>
+</li>
+<li>SigProxOpn
+: <a class="el" href="hal_8h.html#aa51a8c9f6b926aa9e9c5dd38249d3f68a7f18f13ecf372adaf681e706ad051fd3">hal.h</a>
+</li>
+</ul>
+
+
+<h3><a class="anchor" id="index_t"></a>- t -</h3><ul>
+<li>testSlowCnt
+: <a class="el" href="database_8h.html#ae1822373f950fb4881633b7ec843f4dfa221e2bd4755481003e8fe6ca37c66eb1">database.h</a>
+</li>
+<li>TRANS_DIRECT
+: <a class="el" href="stripe_8h.html#aa761062faf633557e537e07a781965e9ad41450786f0c8b404231dfaff4c14931">stripe.h</a>
+</li>
+<li>TRANS_FAST
+: <a class="el" href="stripe_8h.html#aa761062faf633557e537e07a781965e9a37991877080c17224eaa0268947a545c">stripe.h</a>
+</li>
+<li>TRANS_MEDIUM
+: <a class="el" href="stripe_8h.html#aa761062faf633557e537e07a781965e9a26be047607e612751d1979597dd21185">stripe.h</a>
+</li>
+<li>TRANS_SLOW
+: <a class="el" href="stripe_8h.html#aa761062faf633557e537e07a781965e9ad1105b7089df16f505a8c28ef4e31f04">stripe.h</a>
+</li>
+</ul>
+
+
+<h3><a class="anchor" id="index_v"></a>- v -</h3><ul>
+<li>V_BASIC
+: <a class="el" href="logger_8h.html#a1cfb4eb1363ea2e4d18f9052a7a98131a8470d917f387c308f571d2f370c238a3">logger.h</a>
+</li>
+<li>V_BREW
+: <a class="el" href="logger_8h.html#a1cfb4eb1363ea2e4d18f9052a7a98131ac26291e5906a8e13146ec8dc56a0869a">logger.h</a>
+</li>
+<li>V_HAL
+: <a class="el" href="logger_8h.html#a1cfb4eb1363ea2e4d18f9052a7a98131a9a36496e8d624d5ea70b3f86bc2c0bed">logger.h</a>
+</li>
+<li>V_NONE
+: <a class="el" href="logger_8h.html#a1cfb4eb1363ea2e4d18f9052a7a98131afa973d27e66919a26910ccef33a3606a">logger.h</a>
+</li>
+<li>V_SPI
+: <a class="el" href="logger_8h.html#a1cfb4eb1363ea2e4d18f9052a7a98131a86acf22e226ebf319ce306ea1af2d95a">logger.h</a>
+</li>
+<li>V_SQL
+: <a class="el" href="logger_8h.html#a1cfb4eb1363ea2e4d18f9052a7a98131acf3ff5c46ec466c2d7438651b46cc17c">logger.h</a>
+</li>
+<li>V_STRIPE
+: <a class="el" href="logger_8h.html#a1cfb4eb1363ea2e4d18f9052a7a98131a6af331195d8ce87720090a3eece459e4">logger.h</a>
+</li>
+</ul>
+</div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.10
+</small></address>
+</body>
+</html>

+ 150 - 0
CoffeeCode/html/globals_f.html

@@ -0,0 +1,150 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.10"/>
+<title>CoffeePi: Globals</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>
+<script type="text/javascript">
+  $(document).ready(function() { init_search(); });
+</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">CoffeePi
+   </div>
+   <div id="projectbrief">Coffee machine control for Raspberry Pi</div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.10 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+  <div id="navrow1" class="tabs">
+    <ul class="tablist">
+      <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+      <li><a href="annotated.html"><span>Data&#160;Structures</span></a></li>
+      <li class="current"><a href="files.html"><span>Files</span></a></li>
+      <li>
+        <div id="MSearchBox" class="MSearchBoxInactive">
+        <span class="left">
+          <img id="MSearchSelect" src="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="search/close.png" alt=""/></a>
+          </span>
+        </div>
+      </li>
+    </ul>
+  </div>
+  <div id="navrow2" class="tabs2">
+    <ul class="tablist">
+      <li><a href="files.html"><span>File&#160;List</span></a></li>
+      <li class="current"><a href="globals.html"><span>Globals</span></a></li>
+    </ul>
+  </div>
+  <div id="navrow3" class="tabs2">
+    <ul class="tablist">
+      <li class="current"><a href="globals.html"><span>All</span></a></li>
+      <li><a href="globals_func.html"><span>Functions</span></a></li>
+      <li><a href="globals_vars.html"><span>Variables</span></a></li>
+      <li><a href="globals_type.html"><span>Typedefs</span></a></li>
+      <li><a href="globals_enum.html"><span>Enumerations</span></a></li>
+      <li><a href="globals_eval.html"><span>Enumerator</span></a></li>
+      <li><a href="globals_defs.html"><span>Macros</span></a></li>
+    </ul>
+  </div>
+  <div id="navrow4" class="tabs3">
+    <ul class="tablist">
+      <li><a href="globals.html#index_a"><span>a</span></a></li>
+      <li><a href="globals_b.html#index_b"><span>b</span></a></li>
+      <li><a href="globals_c.html#index_c"><span>c</span></a></li>
+      <li><a href="globals_d.html#index_d"><span>d</span></a></li>
+      <li><a href="globals_e.html#index_e"><span>e</span></a></li>
+      <li class="current"><a href="globals_f.html#index_f"><span>f</span></a></li>
+      <li><a href="globals_h.html#index_h"><span>h</span></a></li>
+      <li><a href="globals_i.html#index_i"><span>i</span></a></li>
+      <li><a href="globals_k.html#index_k"><span>k</span></a></li>
+      <li><a href="globals_l.html#index_l"><span>l</span></a></li>
+      <li><a href="globals_m.html#index_m"><span>m</span></a></li>
+      <li><a href="globals_n.html#index_n"><span>n</span></a></li>
+      <li><a href="globals_o.html#index_o"><span>o</span></a></li>
+      <li><a href="globals_p.html#index_p"><span>p</span></a></li>
+      <li><a href="globals_r.html#index_r"><span>r</span></a></li>
+      <li><a href="globals_s.html#index_s"><span>s</span></a></li>
+      <li><a href="globals_t.html#index_t"><span>t</span></a></li>
+      <li><a href="globals_u.html#index_u"><span>u</span></a></li>
+      <li><a href="globals_v.html#index_v"><span>v</span></a></li>
+      <li><a href="globals_w.html#index_w"><span>w</span></a></li>
+    </ul>
+  </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 functions, variables, defines, enums, and typedefs with links to the files they belong to:</div>
+
+<h3><a class="anchor" id="index_f"></a>- f -</h3><ul>
+<li>FALSE
+: <a class="el" href="crc_8h.html#aa93f0eb578d23995850d61f7d61c55c1">crc.h</a>
+, <a class="el" href="lcd_8cpp.html#aa93f0eb578d23995850d61f7d61c55c1">lcd.cpp</a>
+</li>
+<li>FINAL_XOR_VALUE
+: <a class="el" href="crc_8h.html#a5e491822bb6a5bf7114dd453ab48891e">crc.h</a>
+</li>
+<li>firstTimer
+: <a class="el" href="timer_8cpp.html#acb6f6b56b317d16d17fd2f6df17547c3">timer.cpp</a>
+</li>
+<li>FLOW
+: <a class="el" href="hal_8h.html#a249f9f89b3a190ddd62999b1afa847c3">hal.h</a>
+</li>
+<li>FLOW_ML_PULSE
+: <a class="el" href="hal_8h.html#a957d80982673bb087a5d29380720f59d">hal.h</a>
+</li>
+<li>flowcnt
+: <a class="el" href="hal_8cpp.html#ae5ae572f06dd4838027976f9ab3fdc62">hal.cpp</a>
+</li>
+</ul>
+</div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.10
+</small></address>
+</body>
+</html>

+ 489 - 0
CoffeeCode/html/globals_func.html

@@ -0,0 +1,489 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.10"/>
+<title>CoffeePi: Globals</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>
+<script type="text/javascript">
+  $(document).ready(function() { init_search(); });
+</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">CoffeePi
+   </div>
+   <div id="projectbrief">Coffee machine control for Raspberry Pi</div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.10 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+  <div id="navrow1" class="tabs">
+    <ul class="tablist">
+      <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+      <li><a href="annotated.html"><span>Data&#160;Structures</span></a></li>
+      <li class="current"><a href="files.html"><span>Files</span></a></li>
+      <li>
+        <div id="MSearchBox" class="MSearchBoxInactive">
+        <span class="left">
+          <img id="MSearchSelect" src="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="search/close.png" alt=""/></a>
+          </span>
+        </div>
+      </li>
+    </ul>
+  </div>
+  <div id="navrow2" class="tabs2">
+    <ul class="tablist">
+      <li><a href="files.html"><span>File&#160;List</span></a></li>
+      <li class="current"><a href="globals.html"><span>Globals</span></a></li>
+    </ul>
+  </div>
+  <div id="navrow3" class="tabs2">
+    <ul class="tablist">
+      <li><a href="globals.html"><span>All</span></a></li>
+      <li class="current"><a href="globals_func.html"><span>Functions</span></a></li>
+      <li><a href="globals_vars.html"><span>Variables</span></a></li>
+      <li><a href="globals_type.html"><span>Typedefs</span></a></li>
+      <li><a href="globals_enum.html"><span>Enumerations</span></a></li>
+      <li><a href="globals_eval.html"><span>Enumerator</span></a></li>
+      <li><a href="globals_defs.html"><span>Macros</span></a></li>
+    </ul>
+  </div>
+  <div id="navrow4" class="tabs3">
+    <ul class="tablist">
+      <li><a href="#index_c"><span>c</span></a></li>
+      <li><a href="#index_h"><span>h</span></a></li>
+      <li><a href="#index_i"><span>i</span></a></li>
+      <li><a href="#index_k"><span>k</span></a></li>
+      <li><a href="#index_l"><span>l</span></a></li>
+      <li><a href="#index_m"><span>m</span></a></li>
+      <li><a href="#index_n"><span>n</span></a></li>
+      <li><a href="#index_s"><span>s</span></a></li>
+      <li><a href="#index_t"><span>t</span></a></li>
+      <li class="current"><a href="#index_u"><span>u</span></a></li>
+    </ul>
+  </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 class="anchor" id="index_c"></a>- c -</h3><ul>
+<li>chartoint()
+: <a class="el" href="database_8cpp.html#ad2d2a73c367513b8b71aff5546276a3c">database.cpp</a>
+, <a class="el" href="database_8h.html#ad2d2a73c367513b8b71aff5546276a3c">database.h</a>
+</li>
+<li>crcFast()
+: <a class="el" href="crc_8cpp.html#a31e9ca3a3979a4c1e5043f5bfa5befaf">crc.cpp</a>
+, <a class="el" href="crc_8h.html#a31e9ca3a3979a4c1e5043f5bfa5befaf">crc.h</a>
+</li>
+<li>crcInit()
+: <a class="el" href="crc_8cpp.html#a5a735798e6972adc694a5428dd7ccaf9">crc.cpp</a>
+, <a class="el" href="crc_8h.html#a5a735798e6972adc694a5428dd7ccaf9">crc.h</a>
+</li>
+<li>crcSlow()
+: <a class="el" href="crc_8cpp.html#a027c2916f24b3daaf662408cc72026b1">crc.cpp</a>
+, <a class="el" href="crc_8h.html#a027c2916f24b3daaf662408cc72026b1">crc.h</a>
+</li>
+</ul>
+
+
+<h3><a class="anchor" id="index_h"></a>- h -</h3><ul>
+<li>halGetFlow()
+: <a class="el" href="hal_8cpp.html#a1a0d534518ff19bf5b023dfe64d141db">hal.cpp</a>
+, <a class="el" href="hal_8h.html#a1a0d534518ff19bf5b023dfe64d141db">hal.h</a>
+</li>
+<li>halGetInt0()
+: <a class="el" href="hal_8cpp.html#af5609d1b9c9b6bde787cdca47b3b0a4f">hal.cpp</a>
+, <a class="el" href="hal_8h.html#af5609d1b9c9b6bde787cdca47b3b0a4f">hal.h</a>
+</li>
+<li>halGetInt1()
+: <a class="el" href="hal_8cpp.html#afe1e8d0d1237d0f128d50a5b146002a2">hal.cpp</a>
+, <a class="el" href="hal_8h.html#afe1e8d0d1237d0f128d50a5b146002a2">hal.h</a>
+</li>
+<li>halGetRelaisState()
+: <a class="el" href="hal_8cpp.html#a1d22d01f1a6a6789f2816e27bbcb0504">hal.cpp</a>
+, <a class="el" href="hal_8h.html#a1d22d01f1a6a6789f2816e27bbcb0504">hal.h</a>
+</li>
+<li>halInit()
+: <a class="el" href="hal_8cpp.html#afd89c1650df524d95aef39b8bc38170d">hal.cpp</a>
+, <a class="el" href="hal_8h.html#afd89c1650df524d95aef39b8bc38170d">hal.h</a>
+</li>
+<li>halInt0()
+: <a class="el" href="hal_8cpp.html#a597258a80a0bb18db649d01b0893c99f">hal.cpp</a>
+, <a class="el" href="hal_8h.html#a597258a80a0bb18db649d01b0893c99f">hal.h</a>
+</li>
+<li>halInt1()
+: <a class="el" href="hal_8cpp.html#a603aaa9c0c3cfef8b185df5c7f4921c3">hal.cpp</a>
+, <a class="el" href="hal_8h.html#a603aaa9c0c3cfef8b185df5c7f4921c3">hal.h</a>
+</li>
+<li>halIntFlow()
+: <a class="el" href="hal_8cpp.html#ace9ace8c7e0012157569f446d4cb8c52">hal.cpp</a>
+, <a class="el" href="hal_8h.html#ace9ace8c7e0012157569f446d4cb8c52">hal.h</a>
+</li>
+<li>halIntPressure()
+: <a class="el" href="hal_8cpp.html#a73067106de2bbcf98bcc3a06cbf3b000">hal.cpp</a>
+, <a class="el" href="hal_8h.html#a73067106de2bbcf98bcc3a06cbf3b000">hal.h</a>
+</li>
+<li>halIntProximity()
+: <a class="el" href="hal_8cpp.html#a0622583e0c8453a6d6963964ad7e7122">hal.cpp</a>
+, <a class="el" href="hal_8h.html#a0622583e0c8453a6d6963964ad7e7122">hal.h</a>
+</li>
+<li>halIsHeating()
+: <a class="el" href="hal_8cpp.html#a01f43f0666520e8d8af65e94fd82a5eb">hal.cpp</a>
+, <a class="el" href="hal_8h.html#a01f43f0666520e8d8af65e94fd82a5eb">hal.h</a>
+</li>
+<li>halProxSensorCovered()
+: <a class="el" href="hal_8cpp.html#a52c001b5136b02e19bd00282a137631d">hal.cpp</a>
+, <a class="el" href="hal_8h.html#a52c001b5136b02e19bd00282a137631d">hal.h</a>
+</li>
+<li>halRelaisOff()
+: <a class="el" href="hal_8cpp.html#a25c63f62c18555fc1b9b50bcd29f1c7d">hal.cpp</a>
+, <a class="el" href="hal_8h.html#a25c63f62c18555fc1b9b50bcd29f1c7d">hal.h</a>
+</li>
+<li>halRelaisOn()
+: <a class="el" href="hal_8cpp.html#a33e09a3806bdcd5c711e557178335763">hal.cpp</a>
+, <a class="el" href="hal_8h.html#a33e09a3806bdcd5c711e557178335763">hal.h</a>
+</li>
+<li>halRelaisSet()
+: <a class="el" href="hal_8cpp.html#a9b67b274703f0c42834f4b447d5c04a2">hal.cpp</a>
+, <a class="el" href="hal_8h.html#a9b67b274703f0c42834f4b447d5c04a2">hal.h</a>
+</li>
+<li>halResetFlow()
+: <a class="el" href="hal_8cpp.html#a99d0fb6a80635b679cf4cd1fa90b483d">hal.cpp</a>
+, <a class="el" href="hal_8h.html#a99d0fb6a80635b679cf4cd1fa90b483d">hal.h</a>
+</li>
+<li>halSendSignal()
+: <a class="el" href="hal_8cpp.html#a252f49661ac23a045bb0d9d20997dfa4">hal.cpp</a>
+, <a class="el" href="hal_8h.html#a4fa1c41f2dd3c24e13feaa6be70ad426">hal.h</a>
+</li>
+<li>hupHandler()
+: <a class="el" href="main_8cpp.html#aa5f8eab61a77d6d566215bcf12144422">main.cpp</a>
+</li>
+</ul>
+
+
+<h3><a class="anchor" id="index_i"></a>- i -</h3><ul>
+<li>initTimers()
+: <a class="el" href="timer_8cpp.html#a9e737e3249388fb2e50d868bad69c688">timer.cpp</a>
+, <a class="el" href="timer_8h.html#a9e737e3249388fb2e50d868bad69c688">timer.h</a>
+</li>
+<li>int64to8bit()
+: <a class="el" href="database_8cpp.html#a28dbbb9e24e2035535645629105aea46">database.cpp</a>
+, <a class="el" href="database_8h.html#a28dbbb9e24e2035535645629105aea46">database.h</a>
+</li>
+<li>int8to64bit()
+: <a class="el" href="database_8cpp.html#a99cc529fd785c752cd4b73ea7989521d">database.cpp</a>
+, <a class="el" href="database_8h.html#a99cc529fd785c752cd4b73ea7989521d">database.h</a>
+</li>
+<li>inttochar()
+: <a class="el" href="database_8cpp.html#a437086982a7400d7205f3ab6600e6dcf">database.cpp</a>
+, <a class="el" href="database_8h.html#a437086982a7400d7205f3ab6600e6dcf">database.h</a>
+</li>
+</ul>
+
+
+<h3><a class="anchor" id="index_k"></a>- k -</h3><ul>
+<li>killThread()
+: <a class="el" href="global_8h.html#ab6e46b0071bb3330546b7f2b601d0a6c">global.h</a>
+, <a class="el" href="main_8cpp.html#ab6e46b0071bb3330546b7f2b601d0a6c">main.cpp</a>
+</li>
+</ul>
+
+
+<h3><a class="anchor" id="index_l"></a>- l -</h3><ul>
+<li>lcdCharDef()
+: <a class="el" href="lcd_8cpp.html#a74d902393394e4d3cebdcf0d81bbaeeb">lcd.cpp</a>
+, <a class="el" href="lcd_8h.html#a74d902393394e4d3cebdcf0d81bbaeeb">lcd.h</a>
+</li>
+<li>lcdClear()
+: <a class="el" href="lcd_8cpp.html#ae1b4dfd9571742b5ca0aba92882b57a6">lcd.cpp</a>
+, <a class="el" href="lcd_8h.html#ae1b4dfd9571742b5ca0aba92882b57a6">lcd.h</a>
+</li>
+<li>lcdCursor()
+: <a class="el" href="lcd_8cpp.html#a8aa13c894973d52eeed51d10bf869df2">lcd.cpp</a>
+, <a class="el" href="lcd_8h.html#a8aa13c894973d52eeed51d10bf869df2">lcd.h</a>
+</li>
+<li>lcdCursorBlink()
+: <a class="el" href="lcd_8cpp.html#af39d67df7e36291184f69691bb97285b">lcd.cpp</a>
+, <a class="el" href="lcd_8h.html#af39d67df7e36291184f69691bb97285b">lcd.h</a>
+</li>
+<li>lcdDisplay()
+: <a class="el" href="lcd_8cpp.html#af08385cd21eea125d63d6919ecfbea4a">lcd.cpp</a>
+, <a class="el" href="lcd_8h.html#af08385cd21eea125d63d6919ecfbea4a">lcd.h</a>
+</li>
+<li>lcdHome()
+: <a class="el" href="lcd_8cpp.html#a688913764edb3a241c26da5e51d70ac2">lcd.cpp</a>
+, <a class="el" href="lcd_8h.html#a688913764edb3a241c26da5e51d70ac2">lcd.h</a>
+</li>
+<li>lcdInit()
+: <a class="el" href="lcd_8cpp.html#a88d70347308e92cb29eb45b505cad39e">lcd.cpp</a>
+, <a class="el" href="lcd_8h.html#a88d70347308e92cb29eb45b505cad39e">lcd.h</a>
+</li>
+<li>lcdInitI()
+: <a class="el" href="lcd_8cpp.html#a47f05b4cef2cf066cf1cbb1beb7ceb31">lcd.cpp</a>
+, <a class="el" href="lcd_8h.html#a47f05b4cef2cf066cf1cbb1beb7ceb31">lcd.h</a>
+</li>
+<li>lcdPosition()
+: <a class="el" href="lcd_8cpp.html#a5d09137f6373e95a692c4b3403729254">lcd.cpp</a>
+, <a class="el" href="lcd_8h.html#a5d09137f6373e95a692c4b3403729254">lcd.h</a>
+</li>
+<li>lcdPrintf()
+: <a class="el" href="lcd_8cpp.html#a49c322ad29410ea292f8d976baf6deb9">lcd.cpp</a>
+, <a class="el" href="lcd_8h.html#a49c322ad29410ea292f8d976baf6deb9">lcd.h</a>
+</li>
+<li>lcdPutchar()
+: <a class="el" href="lcd_8cpp.html#a21c60441ee22710add0c9bda1310ed66">lcd.cpp</a>
+, <a class="el" href="lcd_8h.html#a21c60441ee22710add0c9bda1310ed66">lcd.h</a>
+</li>
+<li>lcdPuts()
+: <a class="el" href="lcd_8cpp.html#a805efc4a96cca29544672151a9594c20">lcd.cpp</a>
+, <a class="el" href="lcd_8h.html#a805efc4a96cca29544672151a9594c20">lcd.h</a>
+</li>
+<li>lcdSendCommand()
+: <a class="el" href="lcd_8cpp.html#abb6341df42d0e652db66e51fbf0ba486">lcd.cpp</a>
+, <a class="el" href="lcd_8h.html#abb6341df42d0e652db66e51fbf0ba486">lcd.h</a>
+</li>
+<li>logger()
+: <a class="el" href="logger_8cpp.html#a1f2dbdf600d66c1c1bcc820d0282d132">logger.cpp</a>
+, <a class="el" href="logger_8h.html#a1f2dbdf600d66c1c1bcc820d0282d132">logger.h</a>
+</li>
+<li>logger_error()
+: <a class="el" href="logger_8cpp.html#ab5a2104bf520b79d590c6ef11cdeeb02">logger.cpp</a>
+, <a class="el" href="logger_8h.html#ab5a2104bf520b79d590c6ef11cdeeb02">logger.h</a>
+</li>
+<li>logger_print_time()
+: <a class="el" href="logger_8cpp.html#aeb33ace0bb24787befc4a34c561634b4">logger.cpp</a>
+</li>
+<li>logger_reset()
+: <a class="el" href="logger_8cpp.html#abd01f221b7a194e67bb39d88822c9772">logger.cpp</a>
+, <a class="el" href="logger_8h.html#abd01f221b7a194e67bb39d88822c9772">logger.h</a>
+</li>
+</ul>
+
+
+<h3><a class="anchor" id="index_m"></a>- m -</h3><ul>
+<li>main()
+: <a class="el" href="main_8cpp.html#a0ddf1224851353fc92bfbff6f499fa97">main.cpp</a>
+</li>
+<li>mainLoop()
+: <a class="el" href="main_8cpp.html#a9a66b873229b4d46cb9f39dddfc1bddb">main.cpp</a>
+</li>
+</ul>
+
+
+<h3><a class="anchor" id="index_n"></a>- n -</h3><ul>
+<li>nullThread()
+: <a class="el" href="timer_8cpp.html#ae9859727c0e51a70b4ff5f47d2527a77">timer.cpp</a>
+, <a class="el" href="timer_8h.html#ae9859727c0e51a70b4ff5f47d2527a77">timer.h</a>
+</li>
+</ul>
+
+
+<h3><a class="anchor" id="index_s"></a>- s -</h3><ul>
+<li>shift_data()
+: <a class="el" href="spi_8cpp.html#aec7140cda479ce5f88361739e86ccecd">spi.cpp</a>
+, <a class="el" href="spi_8h.html#aec7140cda479ce5f88361739e86ccecd">spi.h</a>
+</li>
+<li>shift_init()
+: <a class="el" href="spi_8cpp.html#ac7600504b8cf1ac90ce331a5ed23c3db">spi.cpp</a>
+, <a class="el" href="spi_8h.html#ac7600504b8cf1ac90ce331a5ed23c3db">spi.h</a>
+</li>
+<li>spi_init()
+: <a class="el" href="spi_8cpp.html#ae909944aa85ae98323073c628be541aa">spi.cpp</a>
+, <a class="el" href="spi_8h.html#ae909944aa85ae98323073c628be541aa">spi.h</a>
+</li>
+<li>spi_readwrite()
+: <a class="el" href="spi_8cpp.html#a7402e4a56146a9e3df480b206a3f7e7e">spi.cpp</a>
+, <a class="el" href="spi_8h.html#a7402e4a56146a9e3df480b206a3f7e7e">spi.h</a>
+</li>
+<li>sqlClose()
+: <a class="el" href="database_8cpp.html#a7264f51f982e908b32635e91e6dc0062">database.cpp</a>
+, <a class="el" href="database_8h.html#a7264f51f982e908b32635e91e6dc0062">database.h</a>
+</li>
+<li>sqlExecute()
+: <a class="el" href="database_8cpp.html#afd88a963f835215b8dad9ee9e49866dc">database.cpp</a>
+, <a class="el" href="database_8h.html#afd88a963f835215b8dad9ee9e49866dc">database.h</a>
+</li>
+<li>sqlExecute2()
+: <a class="el" href="database_8cpp.html#a53458fb936962d23efec505a545a9cb8">database.cpp</a>
+</li>
+<li>sqlGetConf()
+: <a class="el" href="database_8cpp.html#aad0e803eda7a440a6063a447cfeca0cd">database.cpp</a>
+, <a class="el" href="database_8h.html#aad0e803eda7a440a6063a447cfeca0cd">database.h</a>
+</li>
+<li>sqlInsertNode()
+: <a class="el" href="database_8h.html#a6ad9c375b101ce2cb461975eb2748b93">database.h</a>
+</li>
+<li>sqlOpen()
+: <a class="el" href="database_8cpp.html#a1885a74e6af3ee510f30f98e60372e3e">database.cpp</a>
+, <a class="el" href="database_8h.html#a1885a74e6af3ee510f30f98e60372e3e">database.h</a>
+</li>
+<li>sqlReadNodes()
+: <a class="el" href="database_8h.html#ae28580072312f213d923d9b145e3dc90">database.h</a>
+</li>
+<li>sqlSetConf()
+: <a class="el" href="database_8cpp.html#a1ce0ac0c58916c138a92d3282f569784">database.cpp</a>
+, <a class="el" href="database_8h.html#a1ce0ac0c58916c138a92d3282f569784">database.h</a>
+</li>
+<li>sqlSetup()
+: <a class="el" href="database_8cpp.html#aaed3fb776c9dc76d262df026803d3b8c">database.cpp</a>
+, <a class="el" href="database_8h.html#aaed3fb776c9dc76d262df026803d3b8c">database.h</a>
+</li>
+<li>sqltest()
+: <a class="el" href="database_8cpp.html#a5d0363e5d886e2c3e4bb5ca46d265ba7">database.cpp</a>
+, <a class="el" href="database_8h.html#a5d0363e5d886e2c3e4bb5ca46d265ba7">database.h</a>
+</li>
+<li>string_sprintf()
+: <a class="el" href="database_8cpp.html#acd0eb5a18168fa3c37fab8ed0958c043">database.cpp</a>
+, <a class="el" href="database_8h.html#a6c0bc3256310fd400a26243d8a8f1652">database.h</a>
+</li>
+<li>string_vsprintf()
+: <a class="el" href="database_8cpp.html#ac240bb02efe882b4e82da48676301d89">database.cpp</a>
+</li>
+<li>stripeCommand()
+: <a class="el" href="stripe_8cpp.html#ab58f9b853bd6c2deb11f6b64e6275cd7">stripe.cpp</a>
+, <a class="el" href="stripe_8h.html#ab58f9b853bd6c2deb11f6b64e6275cd7">stripe.h</a>
+</li>
+<li>stripeEffectDisable()
+: <a class="el" href="stripe_8cpp.html#a40cca6b9cc8aeca2f28442126528163b">stripe.cpp</a>
+, <a class="el" href="stripe_8h.html#a40cca6b9cc8aeca2f28442126528163b">stripe.h</a>
+</li>
+<li>stripeEffectHeating()
+: <a class="el" href="stripe_8cpp.html#a97c35798100bbf3208fd15cc5615cd97">stripe.cpp</a>
+, <a class="el" href="stripe_8h.html#a97c35798100bbf3208fd15cc5615cd97">stripe.h</a>
+</li>
+<li>stripeEffectPulse()
+: <a class="el" href="stripe_8cpp.html#aea3ed8a6a2d07ed7f8f2ff59f6fa3a01">stripe.cpp</a>
+, <a class="el" href="stripe_8h.html#aea3ed8a6a2d07ed7f8f2ff59f6fa3a01">stripe.h</a>
+</li>
+<li>stripeGetDim()
+: <a class="el" href="stripe_8cpp.html#ab479c1db854476cf80b86d1fe33a908e">stripe.cpp</a>
+, <a class="el" href="stripe_8h.html#ab479c1db854476cf80b86d1fe33a908e">stripe.h</a>
+</li>
+<li>stripeGetRGB()
+: <a class="el" href="stripe_8cpp.html#ac5379b3ade62c829d19654c22efd90de">stripe.cpp</a>
+, <a class="el" href="stripe_8h.html#ac5379b3ade62c829d19654c22efd90de">stripe.h</a>
+</li>
+<li>stripeGetWhite()
+: <a class="el" href="stripe_8cpp.html#aa67941dfd018cc2e0ba62a76a3d9136d">stripe.cpp</a>
+, <a class="el" href="stripe_8h.html#aa67941dfd018cc2e0ba62a76a3d9136d">stripe.h</a>
+</li>
+<li>stripeInit()
+: <a class="el" href="stripe_8cpp.html#a21c653d98b869951f96654ccb3a4b290">stripe.cpp</a>
+, <a class="el" href="stripe_8h.html#a21c653d98b869951f96654ccb3a4b290">stripe.h</a>
+</li>
+<li>stripeOff()
+: <a class="el" href="stripe_8cpp.html#a40d444a306464fa8547feea96737ae0d">stripe.cpp</a>
+, <a class="el" href="stripe_8h.html#a40d444a306464fa8547feea96737ae0d">stripe.h</a>
+</li>
+<li>stripeOn()
+: <a class="el" href="stripe_8cpp.html#a9130dbeb208c1b9e5519834f7de6a530">stripe.cpp</a>
+, <a class="el" href="stripe_8h.html#a9130dbeb208c1b9e5519834f7de6a530">stripe.h</a>
+</li>
+<li>stripeSetColor()
+: <a class="el" href="stripe_8cpp.html#a32197a6a1a75aaf54a2a19dbc31be4e0">stripe.cpp</a>
+, <a class="el" href="stripe_8h.html#a32197a6a1a75aaf54a2a19dbc31be4e0">stripe.h</a>
+</li>
+<li>stripeSetDim()
+: <a class="el" href="stripe_8cpp.html#ade9bc3e5b3fabc99922d78df6ae96434">stripe.cpp</a>
+, <a class="el" href="stripe_8h.html#ade9bc3e5b3fabc99922d78df6ae96434">stripe.h</a>
+</li>
+<li>stripeSetRGB()
+: <a class="el" href="stripe_8cpp.html#a405699059b25eae6001d1e989a1da5d6">stripe.cpp</a>
+, <a class="el" href="stripe_8h.html#a405699059b25eae6001d1e989a1da5d6">stripe.h</a>
+</li>
+<li>stripeSetTransient()
+: <a class="el" href="stripe_8cpp.html#a26524f75c9d72587489d20bba6c61da6">stripe.cpp</a>
+, <a class="el" href="stripe_8h.html#a26524f75c9d72587489d20bba6c61da6">stripe.h</a>
+</li>
+<li>stripeSetWhite()
+: <a class="el" href="stripe_8cpp.html#a2ae73653f2098fdae40bb0916949e77e">stripe.cpp</a>
+, <a class="el" href="stripe_8h.html#a2ae73653f2098fdae40bb0916949e77e">stripe.h</a>
+</li>
+<li>stripeThread()
+: <a class="el" href="stripe_8cpp.html#a914baf734bc672a910769802c1e882c8">stripe.cpp</a>
+, <a class="el" href="stripe_8h.html#a914baf734bc672a910769802c1e882c8">stripe.h</a>
+</li>
+<li>stripeTimerHandler()
+: <a class="el" href="stripe_8cpp.html#a630b80b8bd1e8a0f535b21a720de76b8">stripe.cpp</a>
+, <a class="el" href="stripe_8h.html#a630b80b8bd1e8a0f535b21a720de76b8">stripe.h</a>
+</li>
+<li>stripeUpdate()
+: <a class="el" href="stripe_8cpp.html#a79a7d75b45ddbb2b3324ec450658136c">stripe.cpp</a>
+, <a class="el" href="stripe_8h.html#a79a7d75b45ddbb2b3324ec450658136c">stripe.h</a>
+</li>
+<li>stripeUpdateDim()
+: <a class="el" href="stripe_8cpp.html#a849e5953dbdb82fb8405b1ab43067eed">stripe.cpp</a>
+, <a class="el" href="stripe_8h.html#a849e5953dbdb82fb8405b1ab43067eed">stripe.h</a>
+</li>
+</ul>
+
+
+<h3><a class="anchor" id="index_t"></a>- t -</h3><ul>
+<li>terminationHandler()
+: <a class="el" href="main_8cpp.html#acd303e48c6d5b8d8bbf55db887f1e7e8">main.cpp</a>
+</li>
+<li>timeHandler()
+: <a class="el" href="main_8cpp.html#a069c1b36dcf7099c23ee7382fd95573b">main.cpp</a>
+</li>
+<li>timer_handler()
+: <a class="el" href="timer_8cpp.html#a69a9ecb245422cbf03f28336a3cde462">timer.cpp</a>
+</li>
+</ul>
+
+
+<h3><a class="anchor" id="index_u"></a>- u -</h3><ul>
+<li>usr1Handler()
+: <a class="el" href="main_8cpp.html#a6b9ec8ce27cbec14222dfd2db55e8bad">main.cpp</a>
+</li>
+</ul>
+</div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.10
+</small></address>
+</body>
+</html>

+ 205 - 0
CoffeeCode/html/globals_h.html

@@ -0,0 +1,205 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.10"/>
+<title>CoffeePi: Globals</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>
+<script type="text/javascript">
+  $(document).ready(function() { init_search(); });
+</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">CoffeePi
+   </div>
+   <div id="projectbrief">Coffee machine control for Raspberry Pi</div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.10 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+  <div id="navrow1" class="tabs">
+    <ul class="tablist">
+      <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+      <li><a href="annotated.html"><span>Data&#160;Structures</span></a></li>
+      <li class="current"><a href="files.html"><span>Files</span></a></li>
+      <li>
+        <div id="MSearchBox" class="MSearchBoxInactive">
+        <span class="left">
+          <img id="MSearchSelect" src="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="search/close.png" alt=""/></a>
+          </span>
+        </div>
+      </li>
+    </ul>
+  </div>
+  <div id="navrow2" class="tabs2">
+    <ul class="tablist">
+      <li><a href="files.html"><span>File&#160;List</span></a></li>
+      <li class="current"><a href="globals.html"><span>Globals</span></a></li>
+    </ul>
+  </div>
+  <div id="navrow3" class="tabs2">
+    <ul class="tablist">
+      <li class="current"><a href="globals.html"><span>All</span></a></li>
+      <li><a href="globals_func.html"><span>Functions</span></a></li>
+      <li><a href="globals_vars.html"><span>Variables</span></a></li>
+      <li><a href="globals_type.html"><span>Typedefs</span></a></li>
+      <li><a href="globals_enum.html"><span>Enumerations</span></a></li>
+      <li><a href="globals_eval.html"><span>Enumerator</span></a></li>
+      <li><a href="globals_defs.html"><span>Macros</span></a></li>
+    </ul>
+  </div>
+  <div id="navrow4" class="tabs3">
+    <ul class="tablist">
+      <li><a href="globals.html#index_a"><span>a</span></a></li>
+      <li><a href="globals_b.html#index_b"><span>b</span></a></li>
+      <li><a href="globals_c.html#index_c"><span>c</span></a></li>
+      <li><a href="globals_d.html#index_d"><span>d</span></a></li>
+      <li><a href="globals_e.html#index_e"><span>e</span></a></li>
+      <li><a href="globals_f.html#index_f"><span>f</span></a></li>
+      <li class="current"><a href="globals_h.html#index_h"><span>h</span></a></li>
+      <li><a href="globals_i.html#index_i"><span>i</span></a></li>
+      <li><a href="globals_k.html#index_k"><span>k</span></a></li>
+      <li><a href="globals_l.html#index_l"><span>l</span></a></li>
+      <li><a href="globals_m.html#index_m"><span>m</span></a></li>
+      <li><a href="globals_n.html#index_n"><span>n</span></a></li>
+      <li><a href="globals_o.html#index_o"><span>o</span></a></li>
+      <li><a href="globals_p.html#index_p"><span>p</span></a></li>
+      <li><a href="globals_r.html#index_r"><span>r</span></a></li>
+      <li><a href="globals_s.html#index_s"><span>s</span></a></li>
+      <li><a href="globals_t.html#index_t"><span>t</span></a></li>
+      <li><a href="globals_u.html#index_u"><span>u</span></a></li>
+      <li><a href="globals_v.html#index_v"><span>v</span></a></li>
+      <li><a href="globals_w.html#index_w"><span>w</span></a></li>
+    </ul>
+  </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 functions, variables, defines, enums, and typedefs with links to the files they belong to:</div>
+
+<h3><a class="anchor" id="index_h"></a>- h -</h3><ul>
+<li>halGetFlow()
+: <a class="el" href="hal_8cpp.html#a1a0d534518ff19bf5b023dfe64d141db">hal.cpp</a>
+, <a class="el" href="hal_8h.html#a1a0d534518ff19bf5b023dfe64d141db">hal.h</a>
+</li>
+<li>halGetInt0()
+: <a class="el" href="hal_8h.html#af5609d1b9c9b6bde787cdca47b3b0a4f">hal.h</a>
+, <a class="el" href="hal_8cpp.html#af5609d1b9c9b6bde787cdca47b3b0a4f">hal.cpp</a>
+</li>
+<li>halGetInt1()
+: <a class="el" href="hal_8cpp.html#afe1e8d0d1237d0f128d50a5b146002a2">hal.cpp</a>
+, <a class="el" href="hal_8h.html#afe1e8d0d1237d0f128d50a5b146002a2">hal.h</a>
+</li>
+<li>halGetRelaisState()
+: <a class="el" href="hal_8h.html#a1d22d01f1a6a6789f2816e27bbcb0504">hal.h</a>
+, <a class="el" href="hal_8cpp.html#a1d22d01f1a6a6789f2816e27bbcb0504">hal.cpp</a>
+</li>
+<li>halInit()
+: <a class="el" href="hal_8cpp.html#afd89c1650df524d95aef39b8bc38170d">hal.cpp</a>
+, <a class="el" href="hal_8h.html#afd89c1650df524d95aef39b8bc38170d">hal.h</a>
+</li>
+<li>halInt0()
+: <a class="el" href="hal_8cpp.html#a597258a80a0bb18db649d01b0893c99f">hal.cpp</a>
+, <a class="el" href="hal_8h.html#a597258a80a0bb18db649d01b0893c99f">hal.h</a>
+</li>
+<li>halInt1()
+: <a class="el" href="hal_8cpp.html#a603aaa9c0c3cfef8b185df5c7f4921c3">hal.cpp</a>
+, <a class="el" href="hal_8h.html#a603aaa9c0c3cfef8b185df5c7f4921c3">hal.h</a>
+</li>
+<li>halIntFlow()
+: <a class="el" href="hal_8h.html#ace9ace8c7e0012157569f446d4cb8c52">hal.h</a>
+, <a class="el" href="hal_8cpp.html#ace9ace8c7e0012157569f446d4cb8c52">hal.cpp</a>
+</li>
+<li>halIntPressure()
+: <a class="el" href="hal_8cpp.html#a73067106de2bbcf98bcc3a06cbf3b000">hal.cpp</a>
+, <a class="el" href="hal_8h.html#a73067106de2bbcf98bcc3a06cbf3b000">hal.h</a>
+</li>
+<li>halIntProximity()
+: <a class="el" href="hal_8cpp.html#a0622583e0c8453a6d6963964ad7e7122">hal.cpp</a>
+, <a class="el" href="hal_8h.html#a0622583e0c8453a6d6963964ad7e7122">hal.h</a>
+</li>
+<li>halIsHeating()
+: <a class="el" href="hal_8cpp.html#a01f43f0666520e8d8af65e94fd82a5eb">hal.cpp</a>
+, <a class="el" href="hal_8h.html#a01f43f0666520e8d8af65e94fd82a5eb">hal.h</a>
+</li>
+<li>halProxSensorCovered()
+: <a class="el" href="hal_8cpp.html#a52c001b5136b02e19bd00282a137631d">hal.cpp</a>
+, <a class="el" href="hal_8h.html#a52c001b5136b02e19bd00282a137631d">hal.h</a>
+</li>
+<li>halRelaisOff()
+: <a class="el" href="hal_8cpp.html#a25c63f62c18555fc1b9b50bcd29f1c7d">hal.cpp</a>
+, <a class="el" href="hal_8h.html#a25c63f62c18555fc1b9b50bcd29f1c7d">hal.h</a>
+</li>
+<li>halRelaisOn()
+: <a class="el" href="hal_8cpp.html#a33e09a3806bdcd5c711e557178335763">hal.cpp</a>
+, <a class="el" href="hal_8h.html#a33e09a3806bdcd5c711e557178335763">hal.h</a>
+</li>
+<li>halRelaisSet()
+: <a class="el" href="hal_8h.html#a9b67b274703f0c42834f4b447d5c04a2">hal.h</a>
+, <a class="el" href="hal_8cpp.html#a9b67b274703f0c42834f4b447d5c04a2">hal.cpp</a>
+</li>
+<li>halResetFlow()
+: <a class="el" href="hal_8h.html#a99d0fb6a80635b679cf4cd1fa90b483d">hal.h</a>
+, <a class="el" href="hal_8cpp.html#a99d0fb6a80635b679cf4cd1fa90b483d">hal.cpp</a>
+</li>
+<li>halSendSignal()
+: <a class="el" href="hal_8cpp.html#a252f49661ac23a045bb0d9d20997dfa4">hal.cpp</a>
+, <a class="el" href="hal_8h.html#a4fa1c41f2dd3c24e13feaa6be70ad426">hal.h</a>
+</li>
+<li>HalSig
+: <a class="el" href="hal_8h.html#aa51a8c9f6b926aa9e9c5dd38249d3f68">hal.h</a>
+</li>
+<li>hupHandler()
+: <a class="el" href="main_8cpp.html#aa5f8eab61a77d6d566215bcf12144422">main.cpp</a>
+</li>
+</ul>
+</div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.10
+</small></address>
+</body>
+</html>

+ 162 - 0
CoffeeCode/html/globals_i.html

@@ -0,0 +1,162 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.10"/>
+<title>CoffeePi: Globals</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>
+<script type="text/javascript">
+  $(document).ready(function() { init_search(); });
+</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">CoffeePi
+   </div>
+   <div id="projectbrief">Coffee machine control for Raspberry Pi</div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.10 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+  <div id="navrow1" class="tabs">
+    <ul class="tablist">
+      <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+      <li><a href="annotated.html"><span>Data&#160;Structures</span></a></li>
+      <li class="current"><a href="files.html"><span>Files</span></a></li>
+      <li>
+        <div id="MSearchBox" class="MSearchBoxInactive">
+        <span class="left">
+          <img id="MSearchSelect" src="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="search/close.png" alt=""/></a>
+          </span>
+        </div>
+      </li>
+    </ul>
+  </div>
+  <div id="navrow2" class="tabs2">
+    <ul class="tablist">
+      <li><a href="files.html"><span>File&#160;List</span></a></li>
+      <li class="current"><a href="globals.html"><span>Globals</span></a></li>
+    </ul>
+  </div>
+  <div id="navrow3" class="tabs2">
+    <ul class="tablist">
+      <li class="current"><a href="globals.html"><span>All</span></a></li>
+      <li><a href="globals_func.html"><span>Functions</span></a></li>
+      <li><a href="globals_vars.html"><span>Variables</span></a></li>
+      <li><a href="globals_type.html"><span>Typedefs</span></a></li>
+      <li><a href="globals_enum.html"><span>Enumerations</span></a></li>
+      <li><a href="globals_eval.html"><span>Enumerator</span></a></li>
+      <li><a href="globals_defs.html"><span>Macros</span></a></li>
+    </ul>
+  </div>
+  <div id="navrow4" class="tabs3">
+    <ul class="tablist">
+      <li><a href="globals.html#index_a"><span>a</span></a></li>
+      <li><a href="globals_b.html#index_b"><span>b</span></a></li>
+      <li><a href="globals_c.html#index_c"><span>c</span></a></li>
+      <li><a href="globals_d.html#index_d"><span>d</span></a></li>
+      <li><a href="globals_e.html#index_e"><span>e</span></a></li>
+      <li><a href="globals_f.html#index_f"><span>f</span></a></li>
+      <li><a href="globals_h.html#index_h"><span>h</span></a></li>
+      <li class="current"><a href="globals_i.html#index_i"><span>i</span></a></li>
+      <li><a href="globals_k.html#index_k"><span>k</span></a></li>
+      <li><a href="globals_l.html#index_l"><span>l</span></a></li>
+      <li><a href="globals_m.html#index_m"><span>m</span></a></li>
+      <li><a href="globals_n.html#index_n"><span>n</span></a></li>
+      <li><a href="globals_o.html#index_o"><span>o</span></a></li>
+      <li><a href="globals_p.html#index_p"><span>p</span></a></li>
+      <li><a href="globals_r.html#index_r"><span>r</span></a></li>
+      <li><a href="globals_s.html#index_s"><span>s</span></a></li>
+      <li><a href="globals_t.html#index_t"><span>t</span></a></li>
+      <li><a href="globals_u.html#index_u"><span>u</span></a></li>
+      <li><a href="globals_v.html#index_v"><span>v</span></a></li>
+      <li><a href="globals_w.html#index_w"><span>w</span></a></li>
+    </ul>
+  </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 functions, variables, defines, enums, and typedefs with links to the files they belong to:</div>
+
+<h3><a class="anchor" id="index_i"></a>- i -</h3><ul>
+<li>I2C_ADDRESS_STRIPE
+: <a class="el" href="stripe_8h.html#a52f9fc93ce25c487d4f72b9f2f400545">stripe.h</a>
+</li>
+<li>i2cfd
+: <a class="el" href="stripe_8cpp.html#ad82fe3818283681900e35187390d4b84">stripe.cpp</a>
+</li>
+<li>INITIAL_REMAINDER
+: <a class="el" href="crc_8h.html#acce5b79e1a8ad8ffe40fb9f7d63b2fdc">crc.h</a>
+</li>
+<li>initTimers()
+: <a class="el" href="timer_8cpp.html#a9e737e3249388fb2e50d868bad69c688">timer.cpp</a>
+, <a class="el" href="timer_8h.html#a9e737e3249388fb2e50d868bad69c688">timer.h</a>
+</li>
+<li>INT0
+: <a class="el" href="hal_8h.html#a7521122e23c8d5c83b2a033b2505c86c">hal.h</a>
+</li>
+<li>INT1
+: <a class="el" href="hal_8h.html#ae4728496f2ab826d5fc6a63da6cb600b">hal.h</a>
+</li>
+<li>int64to8bit()
+: <a class="el" href="database_8cpp.html#a28dbbb9e24e2035535645629105aea46">database.cpp</a>
+, <a class="el" href="database_8h.html#a28dbbb9e24e2035535645629105aea46">database.h</a>
+</li>
+<li>int8to64bit()
+: <a class="el" href="database_8h.html#a99cc529fd785c752cd4b73ea7989521d">database.h</a>
+, <a class="el" href="database_8cpp.html#a99cc529fd785c752cd4b73ea7989521d">database.cpp</a>
+</li>
+<li>inttochar()
+: <a class="el" href="database_8h.html#a437086982a7400d7205f3ab6600e6dcf">database.h</a>
+, <a class="el" href="database_8cpp.html#a437086982a7400d7205f3ab6600e6dcf">database.cpp</a>
+</li>
+</ul>
+</div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.10
+</small></address>
+</body>
+</html>

+ 162 - 0
CoffeeCode/html/globals_k.html

@@ -0,0 +1,162 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.10"/>
+<title>CoffeePi: Globals</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>
+<script type="text/javascript">
+  $(document).ready(function() { init_search(); });
+</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">CoffeePi
+   </div>
+   <div id="projectbrief">Coffee machine control for Raspberry Pi</div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.10 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+  <div id="navrow1" class="tabs">
+    <ul class="tablist">
+      <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+      <li><a href="annotated.html"><span>Data&#160;Structures</span></a></li>
+      <li class="current"><a href="files.html"><span>Files</span></a></li>
+      <li>
+        <div id="MSearchBox" class="MSearchBoxInactive">
+        <span class="left">
+          <img id="MSearchSelect" src="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="search/close.png" alt=""/></a>
+          </span>
+        </div>
+      </li>
+    </ul>
+  </div>
+  <div id="navrow2" class="tabs2">
+    <ul class="tablist">
+      <li><a href="files.html"><span>File&#160;List</span></a></li>
+      <li class="current"><a href="globals.html"><span>Globals</span></a></li>
+    </ul>
+  </div>
+  <div id="navrow3" class="tabs2">
+    <ul class="tablist">
+      <li class="current"><a href="globals.html"><span>All</span></a></li>
+      <li><a href="globals_func.html"><span>Functions</span></a></li>
+      <li><a href="globals_vars.html"><span>Variables</span></a></li>
+      <li><a href="globals_type.html"><span>Typedefs</span></a></li>
+      <li><a href="globals_enum.html"><span>Enumerations</span></a></li>
+      <li><a href="globals_eval.html"><span>Enumerator</span></a></li>
+      <li><a href="globals_defs.html"><span>Macros</span></a></li>
+    </ul>
+  </div>
+  <div id="navrow4" class="tabs3">
+    <ul class="tablist">
+      <li><a href="globals.html#index_a"><span>a</span></a></li>
+      <li><a href="globals_b.html#index_b"><span>b</span></a></li>
+      <li><a href="globals_c.html#index_c"><span>c</span></a></li>
+      <li><a href="globals_d.html#index_d"><span>d</span></a></li>
+      <li><a href="globals_e.html#index_e"><span>e</span></a></li>
+      <li><a href="globals_f.html#index_f"><span>f</span></a></li>
+      <li><a href="globals_h.html#index_h"><span>h</span></a></li>
+      <li><a href="globals_i.html#index_i"><span>i</span></a></li>
+      <li class="current"><a href="globals_k.html#index_k"><span>k</span></a></li>
+      <li><a href="globals_l.html#index_l"><span>l</span></a></li>
+      <li><a href="globals_m.html#index_m"><span>m</span></a></li>
+      <li><a href="globals_n.html#index_n"><span>n</span></a></li>
+      <li><a href="globals_o.html#index_o"><span>o</span></a></li>
+      <li><a href="globals_p.html#index_p"><span>p</span></a></li>
+      <li><a href="globals_r.html#index_r"><span>r</span></a></li>
+      <li><a href="globals_s.html#index_s"><span>s</span></a></li>
+      <li><a href="globals_t.html#index_t"><span>t</span></a></li>
+      <li><a href="globals_u.html#index_u"><span>u</span></a></li>
+      <li><a href="globals_v.html#index_v"><span>v</span></a></li>
+      <li><a href="globals_w.html#index_w"><span>w</span></a></li>
+    </ul>
+  </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 functions, variables, defines, enums, and typedefs with links to the files they belong to:</div>
+
+<h3><a class="anchor" id="index_k"></a>- k -</h3><ul>
+<li>KBLU
+: <a class="el" href="logger_8h.html#a3f838f2fc3a9a3b434be606fc908964b">logger.h</a>
+</li>
+<li>KBOLD
+: <a class="el" href="logger_8h.html#a815022697da1d2d7744ff178e940078c">logger.h</a>
+</li>
+<li>KCYN
+: <a class="el" href="logger_8h.html#a32036c94dbb166a3f874b7efc169841f">logger.h</a>
+</li>
+<li>KGRN
+: <a class="el" href="logger_8h.html#ac081c83b067273757f7a2e54a5957d41">logger.h</a>
+</li>
+<li>killThread()
+: <a class="el" href="global_8h.html#ab6e46b0071bb3330546b7f2b601d0a6c">global.h</a>
+, <a class="el" href="main_8cpp.html#ab6e46b0071bb3330546b7f2b601d0a6c">main.cpp</a>
+</li>
+<li>KMAG
+: <a class="el" href="logger_8h.html#a6825f05d3b9d619d91d79d0ef18bb8b2">logger.h</a>
+</li>
+<li>KNRM
+: <a class="el" href="logger_8h.html#a137aa83ec74421d226a90c92ec032ac9">logger.h</a>
+</li>
+<li>KRED
+: <a class="el" href="logger_8h.html#a66290957baed5df3930ada4cb8caccf1">logger.h</a>
+</li>
+<li>KWHT
+: <a class="el" href="logger_8h.html#af0036c8022c9980079ab17e5c87fd478">logger.h</a>
+</li>
+<li>KYEL
+: <a class="el" href="logger_8h.html#a897b10d246533c95ba86cb79f92e465a">logger.h</a>
+</li>
+</ul>
+</div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.10
+</small></address>
+</body>
+</html>

+ 307 - 0
CoffeeCode/html/globals_l.html

@@ -0,0 +1,307 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.10"/>
+<title>CoffeePi: Globals</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>
+<script type="text/javascript">
+  $(document).ready(function() { init_search(); });
+</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">CoffeePi
+   </div>
+   <div id="projectbrief">Coffee machine control for Raspberry Pi</div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.10 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+  <div id="navrow1" class="tabs">
+    <ul class="tablist">
+      <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+      <li><a href="annotated.html"><span>Data&#160;Structures</span></a></li>
+      <li class="current"><a href="files.html"><span>Files</span></a></li>
+      <li>
+        <div id="MSearchBox" class="MSearchBoxInactive">
+        <span class="left">
+          <img id="MSearchSelect" src="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="search/close.png" alt=""/></a>
+          </span>
+        </div>
+      </li>
+    </ul>
+  </div>
+  <div id="navrow2" class="tabs2">
+    <ul class="tablist">
+      <li><a href="files.html"><span>File&#160;List</span></a></li>
+      <li class="current"><a href="globals.html"><span>Globals</span></a></li>
+    </ul>
+  </div>
+  <div id="navrow3" class="tabs2">
+    <ul class="tablist">
+      <li class="current"><a href="globals.html"><span>All</span></a></li>
+      <li><a href="globals_func.html"><span>Functions</span></a></li>
+      <li><a href="globals_vars.html"><span>Variables</span></a></li>
+      <li><a href="globals_type.html"><span>Typedefs</span></a></li>
+      <li><a href="globals_enum.html"><span>Enumerations</span></a></li>
+      <li><a href="globals_eval.html"><span>Enumerator</span></a></li>
+      <li><a href="globals_defs.html"><span>Macros</span></a></li>
+    </ul>
+  </div>
+  <div id="navrow4" class="tabs3">
+    <ul class="tablist">
+      <li><a href="globals.html#index_a"><span>a</span></a></li>
+      <li><a href="globals_b.html#index_b"><span>b</span></a></li>
+      <li><a href="globals_c.html#index_c"><span>c</span></a></li>
+      <li><a href="globals_d.html#index_d"><span>d</span></a></li>
+      <li><a href="globals_e.html#index_e"><span>e</span></a></li>
+      <li><a href="globals_f.html#index_f"><span>f</span></a></li>
+      <li><a href="globals_h.html#index_h"><span>h</span></a></li>
+      <li><a href="globals_i.html#index_i"><span>i</span></a></li>
+      <li><a href="globals_k.html#index_k"><span>k</span></a></li>
+      <li class="current"><a href="globals_l.html#index_l"><span>l</span></a></li>
+      <li><a href="globals_m.html#index_m"><span>m</span></a></li>
+      <li><a href="globals_n.html#index_n"><span>n</span></a></li>
+      <li><a href="globals_o.html#index_o"><span>o</span></a></li>
+      <li><a href="globals_p.html#index_p"><span>p</span></a></li>
+      <li><a href="globals_r.html#index_r"><span>r</span></a></li>
+      <li><a href="globals_s.html#index_s"><span>s</span></a></li>
+      <li><a href="globals_t.html#index_t"><span>t</span></a></li>
+      <li><a href="globals_u.html#index_u"><span>u</span></a></li>
+      <li><a href="globals_v.html#index_v"><span>v</span></a></li>
+      <li><a href="globals_w.html#index_w"><span>w</span></a></li>
+    </ul>
+  </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 functions, variables, defines, enums, and typedefs with links to the files they belong to:</div>
+
+<h3><a class="anchor" id="index_l"></a>- l -</h3><ul>
+<li>lastlog
+: <a class="el" href="logger_8cpp.html#a05db4cbb4a1c322f0adebb466081c99e">logger.cpp</a>
+</li>
+<li>lastTC1
+: <a class="el" href="database_8h.html#ae1822373f950fb4881633b7ec843f4dfa8408e147e8a938136f8a861d49dc9424">database.h</a>
+</li>
+<li>lastTC2
+: <a class="el" href="database_8h.html#ae1822373f950fb4881633b7ec843f4dfa59e22dd6cca23a1fc16c27b051e515b5">database.h</a>
+</li>
+<li>lastTC3
+: <a class="el" href="database_8h.html#ae1822373f950fb4881633b7ec843f4dfa3e3cdc9f9da298c1b6d46c49b1421848">database.h</a>
+</li>
+<li>lastTerm
+: <a class="el" href="database_8h.html#ae1822373f950fb4881633b7ec843f4dfa6e580e65e5c126a239a8e27157ec96a4">database.h</a>
+</li>
+<li>lastTimer
+: <a class="el" href="timer_8cpp.html#a16ed619aa4eb3fda56a001d0d7a8975d">timer.cpp</a>
+</li>
+<li>lcd
+: <a class="el" href="main_8cpp.html#a9d1129916cfa4cbd7489638ce470c3a4">main.cpp</a>
+, <a class="el" href="global_8h.html#a9d1129916cfa4cbd7489638ce470c3a4">global.h</a>
+</li>
+<li>LCD_BLINK_CTRL
+: <a class="el" href="lcd_8cpp.html#aa52bab70fab9c117f20d71442de77452">lcd.cpp</a>
+</li>
+<li>LCD_CDSHIFT
+: <a class="el" href="lcd_8cpp.html#a93e4bb4b824f5b8f5d572d9b4a943ad2">lcd.cpp</a>
+</li>
+<li>LCD_CDSHIFT_RL
+: <a class="el" href="lcd_8cpp.html#afb0c5015365d7e200edec8967d32195c">lcd.cpp</a>
+</li>
+<li>LCD_CGRAM
+: <a class="el" href="lcd_8cpp.html#a3b38de74c362be1781fef1136aa9684c">lcd.cpp</a>
+</li>
+<li>LCD_CLEAR
+: <a class="el" href="lcd_8cpp.html#a6aa8aa2057294b7d06088e834299b369">lcd.cpp</a>
+</li>
+<li>LCD_CTRL
+: <a class="el" href="lcd_8cpp.html#a8e945df7ca614325cafa08258e82a63c">lcd.cpp</a>
+</li>
+<li>LCD_CURSOR_CTRL
+: <a class="el" href="lcd_8cpp.html#a3da48db16c1e7844567542273a5578c7">lcd.cpp</a>
+</li>
+<li>LCD_DGRAM
+: <a class="el" href="lcd_8cpp.html#a9f40873eaf6a8f0a93971b3e0ab3fd12">lcd.cpp</a>
+</li>
+<li>LCD_DISPLAY_CTRL
+: <a class="el" href="lcd_8cpp.html#a1a166a796cbaf4cdd6a3af584ec067d5">lcd.cpp</a>
+</li>
+<li>LCD_EN
+: <a class="el" href="lcd_8h.html#a1640ffbc0d8ec0f7edb04a2b93918072">lcd.h</a>
+</li>
+<li>LCD_ENTRY
+: <a class="el" href="lcd_8cpp.html#a28d2c8d621da114a0fe438db2e58507a">lcd.cpp</a>
+</li>
+<li>LCD_ENTRY_ID
+: <a class="el" href="lcd_8cpp.html#a58e84458e964afcac51877bd13e7703f">lcd.cpp</a>
+</li>
+<li>LCD_ENTRY_SH
+: <a class="el" href="lcd_8cpp.html#aff5b4fcb87ea2eef9bb3af0234b14f53">lcd.cpp</a>
+</li>
+<li>LCD_FUNC
+: <a class="el" href="lcd_8cpp.html#a387bfe42ea7284ba0f154f00df579cad">lcd.cpp</a>
+</li>
+<li>LCD_FUNC_DL
+: <a class="el" href="lcd_8cpp.html#ae4b9a3bcb0dc315afc03412237c5a3ea">lcd.cpp</a>
+</li>
+<li>LCD_FUNC_F
+: <a class="el" href="lcd_8cpp.html#a5ea7976aa137e8d043d3dfab474cf0b4">lcd.cpp</a>
+</li>
+<li>LCD_FUNC_N
+: <a class="el" href="lcd_8cpp.html#a0741cad05d62ff28d92a05ea11aa6fdc">lcd.cpp</a>
+</li>
+<li>LCD_HOME
+: <a class="el" href="lcd_8cpp.html#ae0e309ccad89222eb3457f2da9f2bb8d">lcd.cpp</a>
+</li>
+<li>LCD_RS
+: <a class="el" href="lcd_8h.html#a4781e073871c6f27f89b9463ad3a4ed1">lcd.h</a>
+</li>
+<li>LCD_RW
+: <a class="el" href="lcd_8h.html#a26089a10ddd59a0dc7283c19ccc02533">lcd.h</a>
+</li>
+<li>lcdCharDef()
+: <a class="el" href="lcd_8cpp.html#a74d902393394e4d3cebdcf0d81bbaeeb">lcd.cpp</a>
+, <a class="el" href="lcd_8h.html#a74d902393394e4d3cebdcf0d81bbaeeb">lcd.h</a>
+</li>
+<li>lcdClear()
+: <a class="el" href="lcd_8h.html#ae1b4dfd9571742b5ca0aba92882b57a6">lcd.h</a>
+, <a class="el" href="lcd_8cpp.html#ae1b4dfd9571742b5ca0aba92882b57a6">lcd.cpp</a>
+</li>
+<li>lcdCursor()
+: <a class="el" href="lcd_8cpp.html#a8aa13c894973d52eeed51d10bf869df2">lcd.cpp</a>
+, <a class="el" href="lcd_8h.html#a8aa13c894973d52eeed51d10bf869df2">lcd.h</a>
+</li>
+<li>lcdCursorBlink()
+: <a class="el" href="lcd_8cpp.html#af39d67df7e36291184f69691bb97285b">lcd.cpp</a>
+, <a class="el" href="lcd_8h.html#af39d67df7e36291184f69691bb97285b">lcd.h</a>
+</li>
+<li>lcdDisplay()
+: <a class="el" href="lcd_8cpp.html#af08385cd21eea125d63d6919ecfbea4a">lcd.cpp</a>
+, <a class="el" href="lcd_8h.html#af08385cd21eea125d63d6919ecfbea4a">lcd.h</a>
+</li>
+<li>lcdHome()
+: <a class="el" href="lcd_8cpp.html#a688913764edb3a241c26da5e51d70ac2">lcd.cpp</a>
+, <a class="el" href="lcd_8h.html#a688913764edb3a241c26da5e51d70ac2">lcd.h</a>
+</li>
+<li>lcdInit()
+: <a class="el" href="lcd_8cpp.html#a88d70347308e92cb29eb45b505cad39e">lcd.cpp</a>
+, <a class="el" href="lcd_8h.html#a88d70347308e92cb29eb45b505cad39e">lcd.h</a>
+</li>
+<li>lcdInitI()
+: <a class="el" href="lcd_8cpp.html#a47f05b4cef2cf066cf1cbb1beb7ceb31">lcd.cpp</a>
+, <a class="el" href="lcd_8h.html#a47f05b4cef2cf066cf1cbb1beb7ceb31">lcd.h</a>
+</li>
+<li>lcdPosition()
+: <a class="el" href="lcd_8cpp.html#a5d09137f6373e95a692c4b3403729254">lcd.cpp</a>
+, <a class="el" href="lcd_8h.html#a5d09137f6373e95a692c4b3403729254">lcd.h</a>
+</li>
+<li>lcdPrintf()
+: <a class="el" href="lcd_8h.html#a49c322ad29410ea292f8d976baf6deb9">lcd.h</a>
+, <a class="el" href="lcd_8cpp.html#a49c322ad29410ea292f8d976baf6deb9">lcd.cpp</a>
+</li>
+<li>lcdPutchar()
+: <a class="el" href="lcd_8cpp.html#a21c60441ee22710add0c9bda1310ed66">lcd.cpp</a>
+, <a class="el" href="lcd_8h.html#a21c60441ee22710add0c9bda1310ed66">lcd.h</a>
+</li>
+<li>lcdPuts()
+: <a class="el" href="lcd_8cpp.html#a805efc4a96cca29544672151a9594c20">lcd.cpp</a>
+, <a class="el" href="lcd_8h.html#a805efc4a96cca29544672151a9594c20">lcd.h</a>
+</li>
+<li>lcds
+: <a class="el" href="lcd_8cpp.html#a6e3994c5175d8609dee2cc8d3bcd66e9">lcd.cpp</a>
+</li>
+<li>lcdSendCommand()
+: <a class="el" href="lcd_8h.html#abb6341df42d0e652db66e51fbf0ba486">lcd.h</a>
+, <a class="el" href="lcd_8cpp.html#abb6341df42d0e652db66e51fbf0ba486">lcd.cpp</a>
+</li>
+<li>LOG_CAN
+: <a class="el" href="logger_8h.html#a60cbc432422370d29ed1b783be884823a854a22c1c382f9b7a93bf8e556191c5f">logger.h</a>
+</li>
+<li>LOG_ERROR
+: <a class="el" href="logger_8h.html#a60cbc432422370d29ed1b783be884823a230506cce5c68c3bac5a821c42ed3473">logger.h</a>
+</li>
+<li>LOG_ERRORC
+: <a class="el" href="logger_8h.html#a60cbc432422370d29ed1b783be884823a1ee7c46e5fb6cad577d81e275a4f8218">logger.h</a>
+</li>
+<li>LOG_INFO
+: <a class="el" href="logger_8h.html#a60cbc432422370d29ed1b783be884823a6e98ff471e3ce6c4ef2d75c37ee51837">logger.h</a>
+</li>
+<li>LOG_OK
+: <a class="el" href="logger_8h.html#a60cbc432422370d29ed1b783be884823a746c53b13e16f15d1d885f75efaf58b1">logger.h</a>
+</li>
+<li>LOG_WARN
+: <a class="el" href="logger_8h.html#a60cbc432422370d29ed1b783be884823ac8041ffa22bc823d4726701cdb13fc13">logger.h</a>
+</li>
+<li>logger()
+: <a class="el" href="logger_8h.html#a1f2dbdf600d66c1c1bcc820d0282d132">logger.h</a>
+, <a class="el" href="logger_8cpp.html#a1f2dbdf600d66c1c1bcc820d0282d132">logger.cpp</a>
+</li>
+<li>logger_error()
+: <a class="el" href="logger_8cpp.html#ab5a2104bf520b79d590c6ef11cdeeb02">logger.cpp</a>
+, <a class="el" href="logger_8h.html#ab5a2104bf520b79d590c6ef11cdeeb02">logger.h</a>
+</li>
+<li>logger_print_time()
+: <a class="el" href="logger_8cpp.html#aeb33ace0bb24787befc4a34c561634b4">logger.cpp</a>
+</li>
+<li>logger_reset()
+: <a class="el" href="logger_8cpp.html#abd01f221b7a194e67bb39d88822c9772">logger.cpp</a>
+, <a class="el" href="logger_8h.html#abd01f221b7a194e67bb39d88822c9772">logger.h</a>
+</li>
+<li>logger_type_t
+: <a class="el" href="logger_8h.html#a60cbc432422370d29ed1b783be884823">logger.h</a>
+</li>
+<li>logger_verbose_t
+: <a class="el" href="logger_8h.html#a1cfb4eb1363ea2e4d18f9052a7a98131">logger.h</a>
+</li>
+</ul>
+</div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.10
+</small></address>
+</body>
+</html>

+ 144 - 0
CoffeeCode/html/globals_m.html

@@ -0,0 +1,144 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.10"/>
+<title>CoffeePi: Globals</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>
+<script type="text/javascript">
+  $(document).ready(function() { init_search(); });
+</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">CoffeePi
+   </div>
+   <div id="projectbrief">Coffee machine control for Raspberry Pi</div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.10 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+  <div id="navrow1" class="tabs">
+    <ul class="tablist">
+      <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+      <li><a href="annotated.html"><span>Data&#160;Structures</span></a></li>
+      <li class="current"><a href="files.html"><span>Files</span></a></li>
+      <li>
+        <div id="MSearchBox" class="MSearchBoxInactive">
+        <span class="left">
+          <img id="MSearchSelect" src="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="search/close.png" alt=""/></a>
+          </span>
+        </div>
+      </li>
+    </ul>
+  </div>
+  <div id="navrow2" class="tabs2">
+    <ul class="tablist">
+      <li><a href="files.html"><span>File&#160;List</span></a></li>
+      <li class="current"><a href="globals.html"><span>Globals</span></a></li>
+    </ul>
+  </div>
+  <div id="navrow3" class="tabs2">
+    <ul class="tablist">
+      <li class="current"><a href="globals.html"><span>All</span></a></li>
+      <li><a href="globals_func.html"><span>Functions</span></a></li>
+      <li><a href="globals_vars.html"><span>Variables</span></a></li>
+      <li><a href="globals_type.html"><span>Typedefs</span></a></li>
+      <li><a href="globals_enum.html"><span>Enumerations</span></a></li>
+      <li><a href="globals_eval.html"><span>Enumerator</span></a></li>
+      <li><a href="globals_defs.html"><span>Macros</span></a></li>
+    </ul>
+  </div>
+  <div id="navrow4" class="tabs3">
+    <ul class="tablist">
+      <li><a href="globals.html#index_a"><span>a</span></a></li>
+      <li><a href="globals_b.html#index_b"><span>b</span></a></li>
+      <li><a href="globals_c.html#index_c"><span>c</span></a></li>
+      <li><a href="globals_d.html#index_d"><span>d</span></a></li>
+      <li><a href="globals_e.html#index_e"><span>e</span></a></li>
+      <li><a href="globals_f.html#index_f"><span>f</span></a></li>
+      <li><a href="globals_h.html#index_h"><span>h</span></a></li>
+      <li><a href="globals_i.html#index_i"><span>i</span></a></li>
+      <li><a href="globals_k.html#index_k"><span>k</span></a></li>
+      <li><a href="globals_l.html#index_l"><span>l</span></a></li>
+      <li class="current"><a href="globals_m.html#index_m"><span>m</span></a></li>
+      <li><a href="globals_n.html#index_n"><span>n</span></a></li>
+      <li><a href="globals_o.html#index_o"><span>o</span></a></li>
+      <li><a href="globals_p.html#index_p"><span>p</span></a></li>
+      <li><a href="globals_r.html#index_r"><span>r</span></a></li>
+      <li><a href="globals_s.html#index_s"><span>s</span></a></li>
+      <li><a href="globals_t.html#index_t"><span>t</span></a></li>
+      <li><a href="globals_u.html#index_u"><span>u</span></a></li>
+      <li><a href="globals_v.html#index_v"><span>v</span></a></li>
+      <li><a href="globals_w.html#index_w"><span>w</span></a></li>
+    </ul>
+  </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 functions, variables, defines, enums, and typedefs with links to the files they belong to:</div>
+
+<h3><a class="anchor" id="index_m"></a>- m -</h3><ul>
+<li>main()
+: <a class="el" href="main_8cpp.html#a0ddf1224851353fc92bfbff6f499fa97">main.cpp</a>
+</li>
+<li>mainLoop()
+: <a class="el" href="main_8cpp.html#a9a66b873229b4d46cb9f39dddfc1bddb">main.cpp</a>
+</li>
+<li>MAX_LCDS
+: <a class="el" href="lcd_8h.html#a6bfe3f4a880b075a72d2a8318bd10f8e">lcd.h</a>
+</li>
+<li>mutex
+: <a class="el" href="global_8h.html#a4acff8232e4aec9cd5c6dc200ac55ef3">global.h</a>
+, <a class="el" href="main_8cpp.html#a4acff8232e4aec9cd5c6dc200ac55ef3">main.cpp</a>
+</li>
+</ul>
+</div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.10
+</small></address>
+</body>
+</html>

+ 135 - 0
CoffeeCode/html/globals_n.html

@@ -0,0 +1,135 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.10"/>
+<title>CoffeePi: Globals</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>
+<script type="text/javascript">
+  $(document).ready(function() { init_search(); });
+</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">CoffeePi
+   </div>
+   <div id="projectbrief">Coffee machine control for Raspberry Pi</div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.10 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+  <div id="navrow1" class="tabs">
+    <ul class="tablist">
+      <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+      <li><a href="annotated.html"><span>Data&#160;Structures</span></a></li>
+      <li class="current"><a href="files.html"><span>Files</span></a></li>
+      <li>
+        <div id="MSearchBox" class="MSearchBoxInactive">
+        <span class="left">
+          <img id="MSearchSelect" src="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="search/close.png" alt=""/></a>
+          </span>
+        </div>
+      </li>
+    </ul>
+  </div>
+  <div id="navrow2" class="tabs2">
+    <ul class="tablist">
+      <li><a href="files.html"><span>File&#160;List</span></a></li>
+      <li class="current"><a href="globals.html"><span>Globals</span></a></li>
+    </ul>
+  </div>
+  <div id="navrow3" class="tabs2">
+    <ul class="tablist">
+      <li class="current"><a href="globals.html"><span>All</span></a></li>
+      <li><a href="globals_func.html"><span>Functions</span></a></li>
+      <li><a href="globals_vars.html"><span>Variables</span></a></li>
+      <li><a href="globals_type.html"><span>Typedefs</span></a></li>
+      <li><a href="globals_enum.html"><span>Enumerations</span></a></li>
+      <li><a href="globals_eval.html"><span>Enumerator</span></a></li>
+      <li><a href="globals_defs.html"><span>Macros</span></a></li>
+    </ul>
+  </div>
+  <div id="navrow4" class="tabs3">
+    <ul class="tablist">
+      <li><a href="globals.html#index_a"><span>a</span></a></li>
+      <li><a href="globals_b.html#index_b"><span>b</span></a></li>
+      <li><a href="globals_c.html#index_c"><span>c</span></a></li>
+      <li><a href="globals_d.html#index_d"><span>d</span></a></li>
+      <li><a href="globals_e.html#index_e"><span>e</span></a></li>
+      <li><a href="globals_f.html#index_f"><span>f</span></a></li>
+      <li><a href="globals_h.html#index_h"><span>h</span></a></li>
+      <li><a href="globals_i.html#index_i"><span>i</span></a></li>
+      <li><a href="globals_k.html#index_k"><span>k</span></a></li>
+      <li><a href="globals_l.html#index_l"><span>l</span></a></li>
+      <li><a href="globals_m.html#index_m"><span>m</span></a></li>
+      <li class="current"><a href="globals_n.html#index_n"><span>n</span></a></li>
+      <li><a href="globals_o.html#index_o"><span>o</span></a></li>
+      <li><a href="globals_p.html#index_p"><span>p</span></a></li>
+      <li><a href="globals_r.html#index_r"><span>r</span></a></li>
+      <li><a href="globals_s.html#index_s"><span>s</span></a></li>
+      <li><a href="globals_t.html#index_t"><span>t</span></a></li>
+      <li><a href="globals_u.html#index_u"><span>u</span></a></li>
+      <li><a href="globals_v.html#index_v"><span>v</span></a></li>
+      <li><a href="globals_w.html#index_w"><span>w</span></a></li>
+    </ul>
+  </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 functions, variables, defines, enums, and typedefs with links to the files they belong to:</div>
+
+<h3><a class="anchor" id="index_n"></a>- n -</h3><ul>
+<li>nullThread()
+: <a class="el" href="timer_8cpp.html#ae9859727c0e51a70b4ff5f47d2527a77">timer.cpp</a>
+, <a class="el" href="timer_8h.html#ae9859727c0e51a70b4ff5f47d2527a77">timer.h</a>
+</li>
+</ul>
+</div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.10
+</small></address>
+</body>
+</html>

+ 139 - 0
CoffeeCode/html/globals_o.html

@@ -0,0 +1,139 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.10"/>
+<title>CoffeePi: Globals</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>
+<script type="text/javascript">
+  $(document).ready(function() { init_search(); });
+</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">CoffeePi
+   </div>
+   <div id="projectbrief">Coffee machine control for Raspberry Pi</div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.10 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+  <div id="navrow1" class="tabs">
+    <ul class="tablist">
+      <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+      <li><a href="annotated.html"><span>Data&#160;Structures</span></a></li>
+      <li class="current"><a href="files.html"><span>Files</span></a></li>
+      <li>
+        <div id="MSearchBox" class="MSearchBoxInactive">
+        <span class="left">
+          <img id="MSearchSelect" src="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="search/close.png" alt=""/></a>
+          </span>
+        </div>
+      </li>
+    </ul>
+  </div>
+  <div id="navrow2" class="tabs2">
+    <ul class="tablist">
+      <li><a href="files.html"><span>File&#160;List</span></a></li>
+      <li class="current"><a href="globals.html"><span>Globals</span></a></li>
+    </ul>
+  </div>
+  <div id="navrow3" class="tabs2">
+    <ul class="tablist">
+      <li class="current"><a href="globals.html"><span>All</span></a></li>
+      <li><a href="globals_func.html"><span>Functions</span></a></li>
+      <li><a href="globals_vars.html"><span>Variables</span></a></li>
+      <li><a href="globals_type.html"><span>Typedefs</span></a></li>
+      <li><a href="globals_enum.html"><span>Enumerations</span></a></li>
+      <li><a href="globals_eval.html"><span>Enumerator</span></a></li>
+      <li><a href="globals_defs.html"><span>Macros</span></a></li>
+    </ul>
+  </div>
+  <div id="navrow4" class="tabs3">
+    <ul class="tablist">
+      <li><a href="globals.html#index_a"><span>a</span></a></li>
+      <li><a href="globals_b.html#index_b"><span>b</span></a></li>
+      <li><a href="globals_c.html#index_c"><span>c</span></a></li>
+      <li><a href="globals_d.html#index_d"><span>d</span></a></li>
+      <li><a href="globals_e.html#index_e"><span>e</span></a></li>
+      <li><a href="globals_f.html#index_f"><span>f</span></a></li>
+      <li><a href="globals_h.html#index_h"><span>h</span></a></li>
+      <li><a href="globals_i.html#index_i"><span>i</span></a></li>
+      <li><a href="globals_k.html#index_k"><span>k</span></a></li>
+      <li><a href="globals_l.html#index_l"><span>l</span></a></li>
+      <li><a href="globals_m.html#index_m"><span>m</span></a></li>
+      <li><a href="globals_n.html#index_n"><span>n</span></a></li>
+      <li class="current"><a href="globals_o.html#index_o"><span>o</span></a></li>
+      <li><a href="globals_p.html#index_p"><span>p</span></a></li>
+      <li><a href="globals_r.html#index_r"><span>r</span></a></li>
+      <li><a href="globals_s.html#index_s"><span>s</span></a></li>
+      <li><a href="globals_t.html#index_t"><span>t</span></a></li>
+      <li><a href="globals_u.html#index_u"><span>u</span></a></li>
+      <li><a href="globals_v.html#index_v"><span>v</span></a></li>
+      <li><a href="globals_w.html#index_w"><span>w</span></a></li>
+    </ul>
+  </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 functions, variables, defines, enums, and typedefs with links to the files they belong to:</div>
+
+<h3><a class="anchor" id="index_o"></a>- o -</h3><ul>
+<li>optDate
+: <a class="el" href="global_8h.html#ae88c926fe2a10f736eb01b1d1e899a1c">global.h</a>
+, <a class="el" href="main_8cpp.html#ae88c926fe2a10f736eb01b1d1e899a1c">main.cpp</a>
+</li>
+<li>optPower
+: <a class="el" href="global_8h.html#a7bfeade3d2f19e8baecdcddd7f9162fa">global.h</a>
+, <a class="el" href="main_8cpp.html#a7bfeade3d2f19e8baecdcddd7f9162fa">main.cpp</a>
+</li>
+</ul>
+</div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.10
+</small></address>
+</body>
+</html>

+ 143 - 0
CoffeeCode/html/globals_p.html

@@ -0,0 +1,143 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.10"/>
+<title>CoffeePi: Globals</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>
+<script type="text/javascript">
+  $(document).ready(function() { init_search(); });
+</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">CoffeePi
+   </div>
+   <div id="projectbrief">Coffee machine control for Raspberry Pi</div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.10 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+  <div id="navrow1" class="tabs">
+    <ul class="tablist">
+      <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+      <li><a href="annotated.html"><span>Data&#160;Structures</span></a></li>
+      <li class="current"><a href="files.html"><span>Files</span></a></li>
+      <li>
+        <div id="MSearchBox" class="MSearchBoxInactive">
+        <span class="left">
+          <img id="MSearchSelect" src="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="search/close.png" alt=""/></a>
+          </span>
+        </div>
+      </li>
+    </ul>
+  </div>
+  <div id="navrow2" class="tabs2">
+    <ul class="tablist">
+      <li><a href="files.html"><span>File&#160;List</span></a></li>
+      <li class="current"><a href="globals.html"><span>Globals</span></a></li>
+    </ul>
+  </div>
+  <div id="navrow3" class="tabs2">
+    <ul class="tablist">
+      <li class="current"><a href="globals.html"><span>All</span></a></li>
+      <li><a href="globals_func.html"><span>Functions</span></a></li>
+      <li><a href="globals_vars.html"><span>Variables</span></a></li>
+      <li><a href="globals_type.html"><span>Typedefs</span></a></li>
+      <li><a href="globals_enum.html"><span>Enumerations</span></a></li>
+      <li><a href="globals_eval.html"><span>Enumerator</span></a></li>
+      <li><a href="globals_defs.html"><span>Macros</span></a></li>
+    </ul>
+  </div>
+  <div id="navrow4" class="tabs3">
+    <ul class="tablist">
+      <li><a href="globals.html#index_a"><span>a</span></a></li>
+      <li><a href="globals_b.html#index_b"><span>b</span></a></li>
+      <li><a href="globals_c.html#index_c"><span>c</span></a></li>
+      <li><a href="globals_d.html#index_d"><span>d</span></a></li>
+      <li><a href="globals_e.html#index_e"><span>e</span></a></li>
+      <li><a href="globals_f.html#index_f"><span>f</span></a></li>
+      <li><a href="globals_h.html#index_h"><span>h</span></a></li>
+      <li><a href="globals_i.html#index_i"><span>i</span></a></li>
+      <li><a href="globals_k.html#index_k"><span>k</span></a></li>
+      <li><a href="globals_l.html#index_l"><span>l</span></a></li>
+      <li><a href="globals_m.html#index_m"><span>m</span></a></li>
+      <li><a href="globals_n.html#index_n"><span>n</span></a></li>
+      <li><a href="globals_o.html#index_o"><span>o</span></a></li>
+      <li class="current"><a href="globals_p.html#index_p"><span>p</span></a></li>
+      <li><a href="globals_r.html#index_r"><span>r</span></a></li>
+      <li><a href="globals_s.html#index_s"><span>s</span></a></li>
+      <li><a href="globals_t.html#index_t"><span>t</span></a></li>
+      <li><a href="globals_u.html#index_u"><span>u</span></a></li>
+      <li><a href="globals_v.html#index_v"><span>v</span></a></li>
+      <li><a href="globals_w.html#index_w"><span>w</span></a></li>
+    </ul>
+  </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 functions, variables, defines, enums, and typedefs with links to the files they belong to:</div>
+
+<h3><a class="anchor" id="index_p"></a>- p -</h3><ul>
+<li>POLYNOMIAL
+: <a class="el" href="crc_8h.html#ae13d91fe6e514f0aa1caba701ef1ff92">crc.h</a>
+</li>
+<li>PRESSURE_CTRL
+: <a class="el" href="hal_8h.html#af9f618757de2bf9051de55c831802f30">hal.h</a>
+</li>
+<li>PROX_COVERED
+: <a class="el" href="hal_8h.html#a7c6e51c86f643b69623e53eaa62e6cd4">hal.h</a>
+</li>
+<li>PROXIMITY_SENSOR
+: <a class="el" href="hal_8h.html#a60cdc9e2a5c04bd14c4c3c6f872ddf29">hal.h</a>
+</li>
+</ul>
+</div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.10
+</small></address>
+</body>
+</html>

+ 148 - 0
CoffeeCode/html/globals_r.html

@@ -0,0 +1,148 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.10"/>
+<title>CoffeePi: Globals</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>
+<script type="text/javascript">
+  $(document).ready(function() { init_search(); });
+</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">CoffeePi
+   </div>
+   <div id="projectbrief">Coffee machine control for Raspberry Pi</div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.10 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+  <div id="navrow1" class="tabs">
+    <ul class="tablist">
+      <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+      <li><a href="annotated.html"><span>Data&#160;Structures</span></a></li>
+      <li class="current"><a href="files.html"><span>Files</span></a></li>
+      <li>
+        <div id="MSearchBox" class="MSearchBoxInactive">
+        <span class="left">
+          <img id="MSearchSelect" src="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="search/close.png" alt=""/></a>
+          </span>
+        </div>
+      </li>
+    </ul>
+  </div>
+  <div id="navrow2" class="tabs2">
+    <ul class="tablist">
+      <li><a href="files.html"><span>File&#160;List</span></a></li>
+      <li class="current"><a href="globals.html"><span>Globals</span></a></li>
+    </ul>
+  </div>
+  <div id="navrow3" class="tabs2">
+    <ul class="tablist">
+      <li class="current"><a href="globals.html"><span>All</span></a></li>
+      <li><a href="globals_func.html"><span>Functions</span></a></li>
+      <li><a href="globals_vars.html"><span>Variables</span></a></li>
+      <li><a href="globals_type.html"><span>Typedefs</span></a></li>
+      <li><a href="globals_enum.html"><span>Enumerations</span></a></li>
+      <li><a href="globals_eval.html"><span>Enumerator</span></a></li>
+      <li><a href="globals_defs.html"><span>Macros</span></a></li>
+    </ul>
+  </div>
+  <div id="navrow4" class="tabs3">
+    <ul class="tablist">
+      <li><a href="globals.html#index_a"><span>a</span></a></li>
+      <li><a href="globals_b.html#index_b"><span>b</span></a></li>
+      <li><a href="globals_c.html#index_c"><span>c</span></a></li>
+      <li><a href="globals_d.html#index_d"><span>d</span></a></li>
+      <li><a href="globals_e.html#index_e"><span>e</span></a></li>
+      <li><a href="globals_f.html#index_f"><span>f</span></a></li>
+      <li><a href="globals_h.html#index_h"><span>h</span></a></li>
+      <li><a href="globals_i.html#index_i"><span>i</span></a></li>
+      <li><a href="globals_k.html#index_k"><span>k</span></a></li>
+      <li><a href="globals_l.html#index_l"><span>l</span></a></li>
+      <li><a href="globals_m.html#index_m"><span>m</span></a></li>
+      <li><a href="globals_n.html#index_n"><span>n</span></a></li>
+      <li><a href="globals_o.html#index_o"><span>o</span></a></li>
+      <li><a href="globals_p.html#index_p"><span>p</span></a></li>
+      <li class="current"><a href="globals_r.html#index_r"><span>r</span></a></li>
+      <li><a href="globals_s.html#index_s"><span>s</span></a></li>
+      <li><a href="globals_t.html#index_t"><span>t</span></a></li>
+      <li><a href="globals_u.html#index_u"><span>u</span></a></li>
+      <li><a href="globals_v.html#index_v"><span>v</span></a></li>
+      <li><a href="globals_w.html#index_w"><span>w</span></a></li>
+    </ul>
+  </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 functions, variables, defines, enums, and typedefs with links to the files they belong to:</div>
+
+<h3><a class="anchor" id="index_r"></a>- r -</h3><ul>
+<li>REFLECT_DATA
+: <a class="el" href="crc_8cpp.html#ac5944d40ab44731450a57acd7f027f6a">crc.cpp</a>
+, <a class="el" href="crc_8h.html#af6653e78d37b912d592ffc6e96eb7abb">crc.h</a>
+</li>
+<li>REFLECT_REMAINDER
+: <a class="el" href="crc_8h.html#a5aa89bef30ad5bd061deda3eef36e327">crc.h</a>
+, <a class="el" href="crc_8cpp.html#a2354513de80cf643198f44d7030b74d7">crc.cpp</a>
+</li>
+<li>RELAIS_HEAT
+: <a class="el" href="hal_8h.html#a9b57e326c17e793a2c70b909256734ab">hal.h</a>
+</li>
+<li>RELAIS_POWER
+: <a class="el" href="hal_8h.html#a56489df9a2d1844419f2b0c104516657">hal.h</a>
+</li>
+<li>RELAIS_PUMP
+: <a class="el" href="hal_8h.html#a9723c5da9e57e2b3a1c3ec7b635cee53">hal.h</a>
+</li>
+</ul>
+</div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.10
+</small></address>
+</body>
+</html>

+ 357 - 0
CoffeeCode/html/globals_s.html

@@ -0,0 +1,357 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.10"/>
+<title>CoffeePi: Globals</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>
+<script type="text/javascript">
+  $(document).ready(function() { init_search(); });
+</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">CoffeePi
+   </div>
+   <div id="projectbrief">Coffee machine control for Raspberry Pi</div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.10 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+  <div id="navrow1" class="tabs">
+    <ul class="tablist">
+      <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+      <li><a href="annotated.html"><span>Data&#160;Structures</span></a></li>
+      <li class="current"><a href="files.html"><span>Files</span></a></li>
+      <li>
+        <div id="MSearchBox" class="MSearchBoxInactive">
+        <span class="left">
+          <img id="MSearchSelect" src="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="search/close.png" alt=""/></a>
+          </span>
+        </div>
+      </li>
+    </ul>
+  </div>
+  <div id="navrow2" class="tabs2">
+    <ul class="tablist">
+      <li><a href="files.html"><span>File&#160;List</span></a></li>
+      <li class="current"><a href="globals.html"><span>Globals</span></a></li>
+    </ul>
+  </div>
+  <div id="navrow3" class="tabs2">
+    <ul class="tablist">
+      <li class="current"><a href="globals.html"><span>All</span></a></li>
+      <li><a href="globals_func.html"><span>Functions</span></a></li>
+      <li><a href="globals_vars.html"><span>Variables</span></a></li>
+      <li><a href="globals_type.html"><span>Typedefs</span></a></li>
+      <li><a href="globals_enum.html"><span>Enumerations</span></a></li>
+      <li><a href="globals_eval.html"><span>Enumerator</span></a></li>
+      <li><a href="globals_defs.html"><span>Macros</span></a></li>
+    </ul>
+  </div>
+  <div id="navrow4" class="tabs3">
+    <ul class="tablist">
+      <li><a href="globals.html#index_a"><span>a</span></a></li>
+      <li><a href="globals_b.html#index_b"><span>b</span></a></li>
+      <li><a href="globals_c.html#index_c"><span>c</span></a></li>
+      <li><a href="globals_d.html#index_d"><span>d</span></a></li>
+      <li><a href="globals_e.html#index_e"><span>e</span></a></li>
+      <li><a href="globals_f.html#index_f"><span>f</span></a></li>
+      <li><a href="globals_h.html#index_h"><span>h</span></a></li>
+      <li><a href="globals_i.html#index_i"><span>i</span></a></li>
+      <li><a href="globals_k.html#index_k"><span>k</span></a></li>
+      <li><a href="globals_l.html#index_l"><span>l</span></a></li>
+      <li><a href="globals_m.html#index_m"><span>m</span></a></li>
+      <li><a href="globals_n.html#index_n"><span>n</span></a></li>
+      <li><a href="globals_o.html#index_o"><span>o</span></a></li>
+      <li><a href="globals_p.html#index_p"><span>p</span></a></li>
+      <li><a href="globals_r.html#index_r"><span>r</span></a></li>
+      <li class="current"><a href="globals_s.html#index_s"><span>s</span></a></li>
+      <li><a href="globals_t.html#index_t"><span>t</span></a></li>
+      <li><a href="globals_u.html#index_u"><span>u</span></a></li>
+      <li><a href="globals_v.html#index_v"><span>v</span></a></li>
+      <li><a href="globals_w.html#index_w"><span>w</span></a></li>
+    </ul>
+  </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 functions, variables, defines, enums, and typedefs with links to the files they belong to:</div>
+
+<h3><a class="anchor" id="index_s"></a>- s -</h3><ul>
+<li>shift_data()
+: <a class="el" href="spi_8cpp.html#aec7140cda479ce5f88361739e86ccecd">spi.cpp</a>
+, <a class="el" href="spi_8h.html#aec7140cda479ce5f88361739e86ccecd">spi.h</a>
+</li>
+<li>SHIFT_G
+: <a class="el" href="spi_8h.html#aa846752b3dc2a7a280e1c97191c1e378">spi.h</a>
+</li>
+<li>shift_init()
+: <a class="el" href="spi_8cpp.html#ac7600504b8cf1ac90ce331a5ed23c3db">spi.cpp</a>
+, <a class="el" href="spi_8h.html#ac7600504b8cf1ac90ce331a5ed23c3db">spi.h</a>
+</li>
+<li>SHIFT_RCK
+: <a class="el" href="spi_8h.html#aed6e9b64896ee902a2f02b1e49e65a11">spi.h</a>
+</li>
+<li>SHIFT_SCLR
+: <a class="el" href="spi_8h.html#aa9f52b418d31ac71ce93f2d7846ded90">spi.h</a>
+</li>
+<li>SIG
+: <a class="el" href="timer_8h.html#ad6f1d374549d22100d676d5fcac0a7e5">timer.h</a>
+</li>
+<li>SigBrewOff
+: <a class="el" href="hal_8h.html#aa51a8c9f6b926aa9e9c5dd38249d3f68a6d3fe49429343ea09a007c2236db9382">hal.h</a>
+</li>
+<li>SigBrewOn
+: <a class="el" href="hal_8h.html#aa51a8c9f6b926aa9e9c5dd38249d3f68a4f8316fcd4daf8fdee99ad3414c00857">hal.h</a>
+</li>
+<li>SigInt0Psh
+: <a class="el" href="hal_8h.html#aa51a8c9f6b926aa9e9c5dd38249d3f68a4f6585385aaee8e6a336fb31e8713751">hal.h</a>
+</li>
+<li>SigInt0Rls
+: <a class="el" href="hal_8h.html#aa51a8c9f6b926aa9e9c5dd38249d3f68ae70d75d9c016f72d315ce0f375425ae3">hal.h</a>
+</li>
+<li>SigInt1Psh
+: <a class="el" href="hal_8h.html#aa51a8c9f6b926aa9e9c5dd38249d3f68a5fd8970919f375d9f3baaaa053865ce2">hal.h</a>
+</li>
+<li>SigInt1Rls
+: <a class="el" href="hal_8h.html#aa51a8c9f6b926aa9e9c5dd38249d3f68aa85940fc659570c5b7ec2d8e0ed3eeae">hal.h</a>
+</li>
+<li>SigPressCls
+: <a class="el" href="hal_8h.html#aa51a8c9f6b926aa9e9c5dd38249d3f68abdd48e173224114754f253d764540ec9">hal.h</a>
+</li>
+<li>SigPressOpn
+: <a class="el" href="hal_8h.html#aa51a8c9f6b926aa9e9c5dd38249d3f68a683f7a77d5c63e835b2a72ab1c540fe4">hal.h</a>
+</li>
+<li>SigProxCvrd
+: <a class="el" href="hal_8h.html#aa51a8c9f6b926aa9e9c5dd38249d3f68ac53b2d92b9e3b1652f173e29db5b523d">hal.h</a>
+</li>
+<li>SigProxOpn
+: <a class="el" href="hal_8h.html#aa51a8c9f6b926aa9e9c5dd38249d3f68a7f18f13ecf372adaf681e706ad051fd3">hal.h</a>
+</li>
+<li>SPI_CHANNEL
+: <a class="el" href="global_8h.html#aa8cbb3355883e35c18820bfa63c4ce3a">global.h</a>
+</li>
+<li>spi_init()
+: <a class="el" href="spi_8cpp.html#ae909944aa85ae98323073c628be541aa">spi.cpp</a>
+, <a class="el" href="spi_8h.html#ae909944aa85ae98323073c628be541aa">spi.h</a>
+</li>
+<li>spi_readwrite()
+: <a class="el" href="spi_8cpp.html#a7402e4a56146a9e3df480b206a3f7e7e">spi.cpp</a>
+, <a class="el" href="spi_8h.html#a7402e4a56146a9e3df480b206a3f7e7e">spi.h</a>
+</li>
+<li>SPI_SPEED
+: <a class="el" href="global_8h.html#a0056b7fdd0f81fad9cd38e9fd389a4b6">global.h</a>
+</li>
+<li>SQL_DATABASE
+: <a class="el" href="global_8h.html#ad55c274bf698014e01dbc9afde3fc610">global.h</a>
+</li>
+<li>sqlClose()
+: <a class="el" href="database_8cpp.html#a7264f51f982e908b32635e91e6dc0062">database.cpp</a>
+, <a class="el" href="database_8h.html#a7264f51f982e908b32635e91e6dc0062">database.h</a>
+</li>
+<li>sqlExecute()
+: <a class="el" href="database_8cpp.html#afd88a963f835215b8dad9ee9e49866dc">database.cpp</a>
+, <a class="el" href="database_8h.html#afd88a963f835215b8dad9ee9e49866dc">database.h</a>
+</li>
+<li>sqlExecute2()
+: <a class="el" href="database_8cpp.html#a53458fb936962d23efec505a545a9cb8">database.cpp</a>
+</li>
+<li>sqlGetConf()
+: <a class="el" href="database_8h.html#aad0e803eda7a440a6063a447cfeca0cd">database.h</a>
+, <a class="el" href="database_8cpp.html#aad0e803eda7a440a6063a447cfeca0cd">database.cpp</a>
+</li>
+<li>sqlInsertNode()
+: <a class="el" href="database_8h.html#a6ad9c375b101ce2cb461975eb2748b93">database.h</a>
+</li>
+<li>sqlOpen()
+: <a class="el" href="database_8cpp.html#a1885a74e6af3ee510f30f98e60372e3e">database.cpp</a>
+, <a class="el" href="database_8h.html#a1885a74e6af3ee510f30f98e60372e3e">database.h</a>
+</li>
+<li>sqlReadNodes()
+: <a class="el" href="database_8h.html#ae28580072312f213d923d9b145e3dc90">database.h</a>
+</li>
+<li>sqlSetConf()
+: <a class="el" href="database_8cpp.html#a1ce0ac0c58916c138a92d3282f569784">database.cpp</a>
+, <a class="el" href="database_8h.html#a1ce0ac0c58916c138a92d3282f569784">database.h</a>
+</li>
+<li>sqlSetup()
+: <a class="el" href="database_8cpp.html#aaed3fb776c9dc76d262df026803d3b8c">database.cpp</a>
+, <a class="el" href="database_8h.html#aaed3fb776c9dc76d262df026803d3b8c">database.h</a>
+</li>
+<li>sqltest()
+: <a class="el" href="database_8cpp.html#a5d0363e5d886e2c3e4bb5ca46d265ba7">database.cpp</a>
+, <a class="el" href="database_8h.html#a5d0363e5d886e2c3e4bb5ca46d265ba7">database.h</a>
+</li>
+<li>string_sprintf()
+: <a class="el" href="database_8cpp.html#acd0eb5a18168fa3c37fab8ed0958c043">database.cpp</a>
+, <a class="el" href="database_8h.html#a6c0bc3256310fd400a26243d8a8f1652">database.h</a>
+</li>
+<li>string_vsprintf()
+: <a class="el" href="database_8cpp.html#ac240bb02efe882b4e82da48676301d89">database.cpp</a>
+</li>
+<li>STRIPE_CMD_FADEOUT
+: <a class="el" href="stripe_8h.html#a14287ccb3789c724603c28910512a0b3">stripe.h</a>
+</li>
+<li>STRIPE_CMD_FADESTOP
+: <a class="el" href="stripe_8h.html#a2e4a6f31f6823ec2592e9216a51232f2">stripe.h</a>
+</li>
+<li>STRIPE_CMD_FADETO
+: <a class="el" href="stripe_8h.html#a80ccf336e21703504faf1b3acba2c98b">stripe.h</a>
+</li>
+<li>STRIPE_CMD_RESET
+: <a class="el" href="stripe_8h.html#a0a2c9ea1a805ca03af6c43c107c98e8e">stripe.h</a>
+</li>
+<li>STRIPE_CMD_SET
+: <a class="el" href="stripe_8h.html#ab495a56c339e141ecbecfd9872f81fbb">stripe.h</a>
+</li>
+<li>STRIPE_CMD_SET2
+: <a class="el" href="stripe_8h.html#aead1e6fe1bdc60cade5b071a293864cc">stripe.h</a>
+</li>
+<li>STRIPE_CMD_SETB
+: <a class="el" href="stripe_8h.html#a25c93d4301c3ad1064adfb9eff952211">stripe.h</a>
+</li>
+<li>STRIPE_CMD_SETDIM
+: <a class="el" href="stripe_8h.html#aedb99f1c6b67c005f5a2cd6dea06c6b7">stripe.h</a>
+</li>
+<li>STRIPE_CMD_SETG
+: <a class="el" href="stripe_8h.html#ac62893e9f8f3793a3f6de3338a9a93ff">stripe.h</a>
+</li>
+<li>STRIPE_CMD_SETR
+: <a class="el" href="stripe_8h.html#ad06bb775e1f72bc21a5f17a19eb62e80">stripe.h</a>
+</li>
+<li>STRIPE_CMD_SETW
+: <a class="el" href="stripe_8h.html#a3c5fd782e0479daf6bb272d5197c8877">stripe.h</a>
+</li>
+<li>stripe_transient_t
+: <a class="el" href="stripe_8h.html#aa761062faf633557e537e07a781965e9">stripe.h</a>
+</li>
+<li>stripeCommand()
+: <a class="el" href="stripe_8h.html#ab58f9b853bd6c2deb11f6b64e6275cd7">stripe.h</a>
+, <a class="el" href="stripe_8cpp.html#ab58f9b853bd6c2deb11f6b64e6275cd7">stripe.cpp</a>
+</li>
+<li>stripeEffectDisable()
+: <a class="el" href="stripe_8cpp.html#a40cca6b9cc8aeca2f28442126528163b">stripe.cpp</a>
+, <a class="el" href="stripe_8h.html#a40cca6b9cc8aeca2f28442126528163b">stripe.h</a>
+</li>
+<li>stripeEffectHeating()
+: <a class="el" href="stripe_8h.html#a97c35798100bbf3208fd15cc5615cd97">stripe.h</a>
+, <a class="el" href="stripe_8cpp.html#a97c35798100bbf3208fd15cc5615cd97">stripe.cpp</a>
+</li>
+<li>stripeEffectPulse()
+: <a class="el" href="stripe_8cpp.html#aea3ed8a6a2d07ed7f8f2ff59f6fa3a01">stripe.cpp</a>
+, <a class="el" href="stripe_8h.html#aea3ed8a6a2d07ed7f8f2ff59f6fa3a01">stripe.h</a>
+</li>
+<li>stripeGetDim()
+: <a class="el" href="stripe_8cpp.html#ab479c1db854476cf80b86d1fe33a908e">stripe.cpp</a>
+, <a class="el" href="stripe_8h.html#ab479c1db854476cf80b86d1fe33a908e">stripe.h</a>
+</li>
+<li>stripeGetRGB()
+: <a class="el" href="stripe_8cpp.html#ac5379b3ade62c829d19654c22efd90de">stripe.cpp</a>
+, <a class="el" href="stripe_8h.html#ac5379b3ade62c829d19654c22efd90de">stripe.h</a>
+</li>
+<li>stripeGetWhite()
+: <a class="el" href="stripe_8cpp.html#aa67941dfd018cc2e0ba62a76a3d9136d">stripe.cpp</a>
+, <a class="el" href="stripe_8h.html#aa67941dfd018cc2e0ba62a76a3d9136d">stripe.h</a>
+</li>
+<li>stripeInit()
+: <a class="el" href="stripe_8cpp.html#a21c653d98b869951f96654ccb3a4b290">stripe.cpp</a>
+, <a class="el" href="stripe_8h.html#a21c653d98b869951f96654ccb3a4b290">stripe.h</a>
+</li>
+<li>stripeOff()
+: <a class="el" href="stripe_8h.html#a40d444a306464fa8547feea96737ae0d">stripe.h</a>
+, <a class="el" href="stripe_8cpp.html#a40d444a306464fa8547feea96737ae0d">stripe.cpp</a>
+</li>
+<li>stripeOn()
+: <a class="el" href="stripe_8h.html#a9130dbeb208c1b9e5519834f7de6a530">stripe.h</a>
+, <a class="el" href="stripe_8cpp.html#a9130dbeb208c1b9e5519834f7de6a530">stripe.cpp</a>
+</li>
+<li>stripeSetColor()
+: <a class="el" href="stripe_8h.html#a32197a6a1a75aaf54a2a19dbc31be4e0">stripe.h</a>
+, <a class="el" href="stripe_8cpp.html#a32197a6a1a75aaf54a2a19dbc31be4e0">stripe.cpp</a>
+</li>
+<li>stripeSetDim()
+: <a class="el" href="stripe_8cpp.html#ade9bc3e5b3fabc99922d78df6ae96434">stripe.cpp</a>
+, <a class="el" href="stripe_8h.html#ade9bc3e5b3fabc99922d78df6ae96434">stripe.h</a>
+</li>
+<li>stripeSetRGB()
+: <a class="el" href="stripe_8cpp.html#a405699059b25eae6001d1e989a1da5d6">stripe.cpp</a>
+, <a class="el" href="stripe_8h.html#a405699059b25eae6001d1e989a1da5d6">stripe.h</a>
+</li>
+<li>stripeSetTransient()
+: <a class="el" href="stripe_8h.html#a26524f75c9d72587489d20bba6c61da6">stripe.h</a>
+, <a class="el" href="stripe_8cpp.html#a26524f75c9d72587489d20bba6c61da6">stripe.cpp</a>
+</li>
+<li>stripeSetWhite()
+: <a class="el" href="stripe_8h.html#a2ae73653f2098fdae40bb0916949e77e">stripe.h</a>
+, <a class="el" href="stripe_8cpp.html#a2ae73653f2098fdae40bb0916949e77e">stripe.cpp</a>
+</li>
+<li>stripeThread()
+: <a class="el" href="stripe_8cpp.html#a914baf734bc672a910769802c1e882c8">stripe.cpp</a>
+, <a class="el" href="stripe_8h.html#a914baf734bc672a910769802c1e882c8">stripe.h</a>
+</li>
+<li>stripeTimer
+: <a class="el" href="stripe_8cpp.html#abfdd13da6d6e41a44deb095184750c8e">stripe.cpp</a>
+</li>
+<li>stripeTimerHandler()
+: <a class="el" href="stripe_8h.html#a630b80b8bd1e8a0f535b21a720de76b8">stripe.h</a>
+, <a class="el" href="stripe_8cpp.html#a630b80b8bd1e8a0f535b21a720de76b8">stripe.cpp</a>
+</li>
+<li>stripeUpdate()
+: <a class="el" href="stripe_8cpp.html#a79a7d75b45ddbb2b3324ec450658136c">stripe.cpp</a>
+, <a class="el" href="stripe_8h.html#a79a7d75b45ddbb2b3324ec450658136c">stripe.h</a>
+</li>
+<li>stripeUpdateDim()
+: <a class="el" href="stripe_8h.html#a849e5953dbdb82fb8405b1ab43067eed">stripe.h</a>
+, <a class="el" href="stripe_8cpp.html#a849e5953dbdb82fb8405b1ab43067eed">stripe.cpp</a>
+</li>
+</ul>
+</div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.10
+</small></address>
+</body>
+</html>

+ 184 - 0
CoffeeCode/html/globals_t.html

@@ -0,0 +1,184 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.10"/>
+<title>CoffeePi: Globals</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>
+<script type="text/javascript">
+  $(document).ready(function() { init_search(); });
+</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">CoffeePi
+   </div>
+   <div id="projectbrief">Coffee machine control for Raspberry Pi</div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.10 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+  <div id="navrow1" class="tabs">
+    <ul class="tablist">
+      <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+      <li><a href="annotated.html"><span>Data&#160;Structures</span></a></li>
+      <li class="current"><a href="files.html"><span>Files</span></a></li>
+      <li>
+        <div id="MSearchBox" class="MSearchBoxInactive">
+        <span class="left">
+          <img id="MSearchSelect" src="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="search/close.png" alt=""/></a>
+          </span>
+        </div>
+      </li>
+    </ul>
+  </div>
+  <div id="navrow2" class="tabs2">
+    <ul class="tablist">
+      <li><a href="files.html"><span>File&#160;List</span></a></li>
+      <li class="current"><a href="globals.html"><span>Globals</span></a></li>
+    </ul>
+  </div>
+  <div id="navrow3" class="tabs2">
+    <ul class="tablist">
+      <li class="current"><a href="globals.html"><span>All</span></a></li>
+      <li><a href="globals_func.html"><span>Functions</span></a></li>
+      <li><a href="globals_vars.html"><span>Variables</span></a></li>
+      <li><a href="globals_type.html"><span>Typedefs</span></a></li>
+      <li><a href="globals_enum.html"><span>Enumerations</span></a></li>
+      <li><a href="globals_eval.html"><span>Enumerator</span></a></li>
+      <li><a href="globals_defs.html"><span>Macros</span></a></li>
+    </ul>
+  </div>
+  <div id="navrow4" class="tabs3">
+    <ul class="tablist">
+      <li><a href="globals.html#index_a"><span>a</span></a></li>
+      <li><a href="globals_b.html#index_b"><span>b</span></a></li>
+      <li><a href="globals_c.html#index_c"><span>c</span></a></li>
+      <li><a href="globals_d.html#index_d"><span>d</span></a></li>
+      <li><a href="globals_e.html#index_e"><span>e</span></a></li>
+      <li><a href="globals_f.html#index_f"><span>f</span></a></li>
+      <li><a href="globals_h.html#index_h"><span>h</span></a></li>
+      <li><a href="globals_i.html#index_i"><span>i</span></a></li>
+      <li><a href="globals_k.html#index_k"><span>k</span></a></li>
+      <li><a href="globals_l.html#index_l"><span>l</span></a></li>
+      <li><a href="globals_m.html#index_m"><span>m</span></a></li>
+      <li><a href="globals_n.html#index_n"><span>n</span></a></li>
+      <li><a href="globals_o.html#index_o"><span>o</span></a></li>
+      <li><a href="globals_p.html#index_p"><span>p</span></a></li>
+      <li><a href="globals_r.html#index_r"><span>r</span></a></li>
+      <li><a href="globals_s.html#index_s"><span>s</span></a></li>
+      <li class="current"><a href="globals_t.html#index_t"><span>t</span></a></li>
+      <li><a href="globals_u.html#index_u"><span>u</span></a></li>
+      <li><a href="globals_v.html#index_v"><span>v</span></a></li>
+      <li><a href="globals_w.html#index_w"><span>w</span></a></li>
+    </ul>
+  </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 functions, variables, defines, enums, and typedefs with links to the files they belong to:</div>
+
+<h3><a class="anchor" id="index_t"></a>- t -</h3><ul>
+<li>terminationHandler()
+: <a class="el" href="main_8cpp.html#acd303e48c6d5b8d8bbf55db887f1e7e8">main.cpp</a>
+</li>
+<li>testSlowCnt
+: <a class="el" href="database_8h.html#ae1822373f950fb4881633b7ec843f4dfa221e2bd4755481003e8fe6ca37c66eb1">database.h</a>
+</li>
+<li>thread
+: <a class="el" href="main_8cpp.html#ad1c21fd320f05c652f120ad167628c14">main.cpp</a>
+, <a class="el" href="global_8h.html#a5e61240888e929e526f41e19b6c0bd46">global.h</a>
+</li>
+<li>THREAD_COFFEE
+: <a class="el" href="global_8h.html#a5f697926bb7bcc4722a9e650a1acdb6a">global.h</a>
+</li>
+<li>THREAD_DISPLAY
+: <a class="el" href="global_8h.html#a843e1fa4b4de70b9f31d42a41a896c1c">global.h</a>
+</li>
+<li>THREAD_MAIN
+: <a class="el" href="global_8h.html#a67a7c5f1e4a75f1508395d450895990d">global.h</a>
+</li>
+<li>THREAD_STRIPE
+: <a class="el" href="global_8h.html#a77f390a98c0e73ae38abd20f467d6cce">global.h</a>
+</li>
+<li>timeHandler
+: <a class="el" href="main_8cpp.html#a00359617f7973ce34d269f7dfd41c11b">main.cpp</a>
+</li>
+<li>TIMER_DELAY_US
+: <a class="el" href="global_8h.html#a91dee3a4ce745234c8a4998388d6c645">global.h</a>
+</li>
+<li>timer_handler()
+: <a class="el" href="timer_8cpp.html#a69a9ecb245422cbf03f28336a3cde462">timer.cpp</a>
+</li>
+<li>timercnt
+: <a class="el" href="timer_8cpp.html#a0f94d5829b547df53531ff4c3ec325c0">timer.cpp</a>
+</li>
+<li>TOPBIT
+: <a class="el" href="crc_8cpp.html#a118ad552670dbefa1df0ba72d147f5e1">crc.cpp</a>
+</li>
+<li>TRANS_DIRECT
+: <a class="el" href="stripe_8h.html#aa761062faf633557e537e07a781965e9ad41450786f0c8b404231dfaff4c14931">stripe.h</a>
+</li>
+<li>TRANS_FAST
+: <a class="el" href="stripe_8h.html#aa761062faf633557e537e07a781965e9a37991877080c17224eaa0268947a545c">stripe.h</a>
+</li>
+<li>TRANS_MEDIUM
+: <a class="el" href="stripe_8h.html#aa761062faf633557e537e07a781965e9a26be047607e612751d1979597dd21185">stripe.h</a>
+</li>
+<li>TRANS_SLOW
+: <a class="el" href="stripe_8h.html#aa761062faf633557e537e07a781965e9ad1105b7089df16f505a8c28ef4e31f04">stripe.h</a>
+</li>
+<li>TRUE
+: <a class="el" href="crc_8h.html#aa8cecfc5c5c054d2875c03e77b7be15d">crc.h</a>
+, <a class="el" href="lcd_8cpp.html#aa8cecfc5c5c054d2875c03e77b7be15d">lcd.cpp</a>
+</li>
+</ul>
+</div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.10
+</small></address>
+</body>
+</html>

+ 108 - 0
CoffeeCode/html/globals_type.html

@@ -0,0 +1,108 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.10"/>
+<title>CoffeePi: Globals</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>
+<script type="text/javascript">
+  $(document).ready(function() { init_search(); });
+</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">CoffeePi
+   </div>
+   <div id="projectbrief">Coffee machine control for Raspberry Pi</div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.10 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+  <div id="navrow1" class="tabs">
+    <ul class="tablist">
+      <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+      <li><a href="annotated.html"><span>Data&#160;Structures</span></a></li>
+      <li class="current"><a href="files.html"><span>Files</span></a></li>
+      <li>
+        <div id="MSearchBox" class="MSearchBoxInactive">
+        <span class="left">
+          <img id="MSearchSelect" src="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="search/close.png" alt=""/></a>
+          </span>
+        </div>
+      </li>
+    </ul>
+  </div>
+  <div id="navrow2" class="tabs2">
+    <ul class="tablist">
+      <li><a href="files.html"><span>File&#160;List</span></a></li>
+      <li class="current"><a href="globals.html"><span>Globals</span></a></li>
+    </ul>
+  </div>
+  <div id="navrow3" class="tabs2">
+    <ul class="tablist">
+      <li><a href="globals.html"><span>All</span></a></li>
+      <li><a href="globals_func.html"><span>Functions</span></a></li>
+      <li><a href="globals_vars.html"><span>Variables</span></a></li>
+      <li class="current"><a href="globals_type.html"><span>Typedefs</span></a></li>
+      <li><a href="globals_enum.html"><span>Enumerations</span></a></li>
+      <li><a href="globals_eval.html"><span>Enumerator</span></a></li>
+      <li><a href="globals_defs.html"><span>Macros</span></a></li>
+    </ul>
+  </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>crc
+: <a class="el" href="crc_8h.html#a73364f0434186bc77eaa8e3b03a437be">crc.h</a>
+</li>
+</ul>
+</div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.10
+</small></address>
+</body>
+</html>

+ 137 - 0
CoffeeCode/html/globals_u.html

@@ -0,0 +1,137 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.10"/>
+<title>CoffeePi: Globals</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>
+<script type="text/javascript">
+  $(document).ready(function() { init_search(); });
+</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">CoffeePi
+   </div>
+   <div id="projectbrief">Coffee machine control for Raspberry Pi</div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.10 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+  <div id="navrow1" class="tabs">
+    <ul class="tablist">
+      <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+      <li><a href="annotated.html"><span>Data&#160;Structures</span></a></li>
+      <li class="current"><a href="files.html"><span>Files</span></a></li>
+      <li>
+        <div id="MSearchBox" class="MSearchBoxInactive">
+        <span class="left">
+          <img id="MSearchSelect" src="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="search/close.png" alt=""/></a>
+          </span>
+        </div>
+      </li>
+    </ul>
+  </div>
+  <div id="navrow2" class="tabs2">
+    <ul class="tablist">
+      <li><a href="files.html"><span>File&#160;List</span></a></li>
+      <li class="current"><a href="globals.html"><span>Globals</span></a></li>
+    </ul>
+  </div>
+  <div id="navrow3" class="tabs2">
+    <ul class="tablist">
+      <li class="current"><a href="globals.html"><span>All</span></a></li>
+      <li><a href="globals_func.html"><span>Functions</span></a></li>
+      <li><a href="globals_vars.html"><span>Variables</span></a></li>
+      <li><a href="globals_type.html"><span>Typedefs</span></a></li>
+      <li><a href="globals_enum.html"><span>Enumerations</span></a></li>
+      <li><a href="globals_eval.html"><span>Enumerator</span></a></li>
+      <li><a href="globals_defs.html"><span>Macros</span></a></li>
+    </ul>
+  </div>
+  <div id="navrow4" class="tabs3">
+    <ul class="tablist">
+      <li><a href="globals.html#index_a"><span>a</span></a></li>
+      <li><a href="globals_b.html#index_b"><span>b</span></a></li>
+      <li><a href="globals_c.html#index_c"><span>c</span></a></li>
+      <li><a href="globals_d.html#index_d"><span>d</span></a></li>
+      <li><a href="globals_e.html#index_e"><span>e</span></a></li>
+      <li><a href="globals_f.html#index_f"><span>f</span></a></li>
+      <li><a href="globals_h.html#index_h"><span>h</span></a></li>
+      <li><a href="globals_i.html#index_i"><span>i</span></a></li>
+      <li><a href="globals_k.html#index_k"><span>k</span></a></li>
+      <li><a href="globals_l.html#index_l"><span>l</span></a></li>
+      <li><a href="globals_m.html#index_m"><span>m</span></a></li>
+      <li><a href="globals_n.html#index_n"><span>n</span></a></li>
+      <li><a href="globals_o.html#index_o"><span>o</span></a></li>
+      <li><a href="globals_p.html#index_p"><span>p</span></a></li>
+      <li><a href="globals_r.html#index_r"><span>r</span></a></li>
+      <li><a href="globals_s.html#index_s"><span>s</span></a></li>
+      <li><a href="globals_t.html#index_t"><span>t</span></a></li>
+      <li class="current"><a href="globals_u.html#index_u"><span>u</span></a></li>
+      <li><a href="globals_v.html#index_v"><span>v</span></a></li>
+      <li><a href="globals_w.html#index_w"><span>w</span></a></li>
+    </ul>
+  </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 functions, variables, defines, enums, and typedefs with links to the files they belong to:</div>
+
+<h3><a class="anchor" id="index_u"></a>- u -</h3><ul>
+<li>USE_COLORS
+: <a class="el" href="logger_8h.html#acdbdbd1e0c5422f3d1f7aa3960957e0a">logger.h</a>
+</li>
+<li>usr1Handler()
+: <a class="el" href="main_8cpp.html#a6b9ec8ce27cbec14222dfd2db55e8bad">main.cpp</a>
+</li>
+</ul>
+</div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.10
+</small></address>
+</body>
+</html>

+ 156 - 0
CoffeeCode/html/globals_v.html

@@ -0,0 +1,156 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.10"/>
+<title>CoffeePi: Globals</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>
+<script type="text/javascript">
+  $(document).ready(function() { init_search(); });
+</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">CoffeePi
+   </div>
+   <div id="projectbrief">Coffee machine control for Raspberry Pi</div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.10 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+  <div id="navrow1" class="tabs">
+    <ul class="tablist">
+      <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+      <li><a href="annotated.html"><span>Data&#160;Structures</span></a></li>
+      <li class="current"><a href="files.html"><span>Files</span></a></li>
+      <li>
+        <div id="MSearchBox" class="MSearchBoxInactive">
+        <span class="left">
+          <img id="MSearchSelect" src="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="search/close.png" alt=""/></a>
+          </span>
+        </div>
+      </li>
+    </ul>
+  </div>
+  <div id="navrow2" class="tabs2">
+    <ul class="tablist">
+      <li><a href="files.html"><span>File&#160;List</span></a></li>
+      <li class="current"><a href="globals.html"><span>Globals</span></a></li>
+    </ul>
+  </div>
+  <div id="navrow3" class="tabs2">
+    <ul class="tablist">
+      <li class="current"><a href="globals.html"><span>All</span></a></li>
+      <li><a href="globals_func.html"><span>Functions</span></a></li>
+      <li><a href="globals_vars.html"><span>Variables</span></a></li>
+      <li><a href="globals_type.html"><span>Typedefs</span></a></li>
+      <li><a href="globals_enum.html"><span>Enumerations</span></a></li>
+      <li><a href="globals_eval.html"><span>Enumerator</span></a></li>
+      <li><a href="globals_defs.html"><span>Macros</span></a></li>
+    </ul>
+  </div>
+  <div id="navrow4" class="tabs3">
+    <ul class="tablist">
+      <li><a href="globals.html#index_a"><span>a</span></a></li>
+      <li><a href="globals_b.html#index_b"><span>b</span></a></li>
+      <li><a href="globals_c.html#index_c"><span>c</span></a></li>
+      <li><a href="globals_d.html#index_d"><span>d</span></a></li>
+      <li><a href="globals_e.html#index_e"><span>e</span></a></li>
+      <li><a href="globals_f.html#index_f"><span>f</span></a></li>
+      <li><a href="globals_h.html#index_h"><span>h</span></a></li>
+      <li><a href="globals_i.html#index_i"><span>i</span></a></li>
+      <li><a href="globals_k.html#index_k"><span>k</span></a></li>
+      <li><a href="globals_l.html#index_l"><span>l</span></a></li>
+      <li><a href="globals_m.html#index_m"><span>m</span></a></li>
+      <li><a href="globals_n.html#index_n"><span>n</span></a></li>
+      <li><a href="globals_o.html#index_o"><span>o</span></a></li>
+      <li><a href="globals_p.html#index_p"><span>p</span></a></li>
+      <li><a href="globals_r.html#index_r"><span>r</span></a></li>
+      <li><a href="globals_s.html#index_s"><span>s</span></a></li>
+      <li><a href="globals_t.html#index_t"><span>t</span></a></li>
+      <li><a href="globals_u.html#index_u"><span>u</span></a></li>
+      <li class="current"><a href="globals_v.html#index_v"><span>v</span></a></li>
+      <li><a href="globals_w.html#index_w"><span>w</span></a></li>
+    </ul>
+  </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 functions, variables, defines, enums, and typedefs with links to the files they belong to:</div>
+
+<h3><a class="anchor" id="index_v"></a>- v -</h3><ul>
+<li>V_BASIC
+: <a class="el" href="logger_8h.html#a1cfb4eb1363ea2e4d18f9052a7a98131a8470d917f387c308f571d2f370c238a3">logger.h</a>
+</li>
+<li>V_BREW
+: <a class="el" href="logger_8h.html#a1cfb4eb1363ea2e4d18f9052a7a98131ac26291e5906a8e13146ec8dc56a0869a">logger.h</a>
+</li>
+<li>V_HAL
+: <a class="el" href="logger_8h.html#a1cfb4eb1363ea2e4d18f9052a7a98131a9a36496e8d624d5ea70b3f86bc2c0bed">logger.h</a>
+</li>
+<li>V_NONE
+: <a class="el" href="logger_8h.html#a1cfb4eb1363ea2e4d18f9052a7a98131afa973d27e66919a26910ccef33a3606a">logger.h</a>
+</li>
+<li>V_SPI
+: <a class="el" href="logger_8h.html#a1cfb4eb1363ea2e4d18f9052a7a98131a86acf22e226ebf319ce306ea1af2d95a">logger.h</a>
+</li>
+<li>V_SQL
+: <a class="el" href="logger_8h.html#a1cfb4eb1363ea2e4d18f9052a7a98131acf3ff5c46ec466c2d7438651b46cc17c">logger.h</a>
+</li>
+<li>V_STRIPE
+: <a class="el" href="logger_8h.html#a1cfb4eb1363ea2e4d18f9052a7a98131a6af331195d8ce87720090a3eece459e4">logger.h</a>
+</li>
+<li>verbose
+: <a class="el" href="global_8h.html#a0b2caeb4b6f130be43e5a2f0267dd453">global.h</a>
+, <a class="el" href="main_8cpp.html#a0b2caeb4b6f130be43e5a2f0267dd453">main.cpp</a>
+</li>
+</ul>
+</div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.10
+</small></address>
+</body>
+</html>

+ 183 - 0
CoffeeCode/html/globals_vars.html

@@ -0,0 +1,183 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.10"/>
+<title>CoffeePi: Globals</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>
+<script type="text/javascript">
+  $(document).ready(function() { init_search(); });
+</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">CoffeePi
+   </div>
+   <div id="projectbrief">Coffee machine control for Raspberry Pi</div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.10 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+  <div id="navrow1" class="tabs">
+    <ul class="tablist">
+      <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+      <li><a href="annotated.html"><span>Data&#160;Structures</span></a></li>
+      <li class="current"><a href="files.html"><span>Files</span></a></li>
+      <li>
+        <div id="MSearchBox" class="MSearchBoxInactive">
+        <span class="left">
+          <img id="MSearchSelect" src="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="search/close.png" alt=""/></a>
+          </span>
+        </div>
+      </li>
+    </ul>
+  </div>
+  <div id="navrow2" class="tabs2">
+    <ul class="tablist">
+      <li><a href="files.html"><span>File&#160;List</span></a></li>
+      <li class="current"><a href="globals.html"><span>Globals</span></a></li>
+    </ul>
+  </div>
+  <div id="navrow3" class="tabs2">
+    <ul class="tablist">
+      <li><a href="globals.html"><span>All</span></a></li>
+      <li><a href="globals_func.html"><span>Functions</span></a></li>
+      <li class="current"><a href="globals_vars.html"><span>Variables</span></a></li>
+      <li><a href="globals_type.html"><span>Typedefs</span></a></li>
+      <li><a href="globals_enum.html"><span>Enumerations</span></a></li>
+      <li><a href="globals_eval.html"><span>Enumerator</span></a></li>
+      <li><a href="globals_defs.html"><span>Macros</span></a></li>
+    </ul>
+  </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>buildno
+: <a class="el" href="main_8cpp.html#ac70430026dcf56f46e5426e1d01d7e89">main.cpp</a>
+</li>
+<li>counter
+: <a class="el" href="timer_8cpp.html#a617a47c70795bcff659815ad0efd2266">timer.cpp</a>
+</li>
+<li>crcTable
+: <a class="el" href="crc_8cpp.html#aa0b98c402a809d26602bb9a693083720">crc.cpp</a>
+</li>
+<li>currentColor
+: <a class="el" href="stripe_8cpp.html#af149226ff674cac78ce47ce7261cb2dc">stripe.cpp</a>
+</li>
+<li>currentDim
+: <a class="el" href="stripe_8cpp.html#a5a820ae4564b095447dffb1f75fbb930">stripe.cpp</a>
+</li>
+<li>currentTransient
+: <a class="el" href="stripe_8cpp.html#a601572ab87622859faa74bd5d948e672">stripe.cpp</a>
+</li>
+<li>currentWhite
+: <a class="el" href="stripe_8cpp.html#aeb79ac3025329db68dba76aa2e830532">stripe.cpp</a>
+</li>
+<li>db
+: <a class="el" href="database_8cpp.html#ad6e663497d2c934364b3bcf07496b30b">database.cpp</a>
+</li>
+<li>effectColor
+: <a class="el" href="stripe_8cpp.html#a8b61b922f1ae5a0c5854e3a318b74421">stripe.cpp</a>
+</li>
+<li>firstTimer
+: <a class="el" href="timer_8cpp.html#acb6f6b56b317d16d17fd2f6df17547c3">timer.cpp</a>
+</li>
+<li>flowcnt
+: <a class="el" href="hal_8cpp.html#ae5ae572f06dd4838027976f9ab3fdc62">hal.cpp</a>
+</li>
+<li>i2cfd
+: <a class="el" href="stripe_8cpp.html#ad82fe3818283681900e35187390d4b84">stripe.cpp</a>
+</li>
+<li>lastlog
+: <a class="el" href="logger_8cpp.html#a05db4cbb4a1c322f0adebb466081c99e">logger.cpp</a>
+</li>
+<li>lastTimer
+: <a class="el" href="timer_8cpp.html#a16ed619aa4eb3fda56a001d0d7a8975d">timer.cpp</a>
+</li>
+<li>lcd
+: <a class="el" href="global_8h.html#a9d1129916cfa4cbd7489638ce470c3a4">global.h</a>
+, <a class="el" href="main_8cpp.html#a9d1129916cfa4cbd7489638ce470c3a4">main.cpp</a>
+</li>
+<li>lcds
+: <a class="el" href="lcd_8cpp.html#a6e3994c5175d8609dee2cc8d3bcd66e9">lcd.cpp</a>
+</li>
+<li>mutex
+: <a class="el" href="global_8h.html#a4acff8232e4aec9cd5c6dc200ac55ef3">global.h</a>
+, <a class="el" href="main_8cpp.html#a4acff8232e4aec9cd5c6dc200ac55ef3">main.cpp</a>
+</li>
+<li>optDate
+: <a class="el" href="global_8h.html#ae88c926fe2a10f736eb01b1d1e899a1c">global.h</a>
+, <a class="el" href="main_8cpp.html#ae88c926fe2a10f736eb01b1d1e899a1c">main.cpp</a>
+</li>
+<li>optPower
+: <a class="el" href="global_8h.html#a7bfeade3d2f19e8baecdcddd7f9162fa">global.h</a>
+, <a class="el" href="main_8cpp.html#a7bfeade3d2f19e8baecdcddd7f9162fa">main.cpp</a>
+</li>
+<li>stripeTimer
+: <a class="el" href="stripe_8cpp.html#abfdd13da6d6e41a44deb095184750c8e">stripe.cpp</a>
+</li>
+<li>thread
+: <a class="el" href="global_8h.html#a5e61240888e929e526f41e19b6c0bd46">global.h</a>
+, <a class="el" href="main_8cpp.html#ad1c21fd320f05c652f120ad167628c14">main.cpp</a>
+</li>
+<li>timeHandler
+: <a class="el" href="main_8cpp.html#a00359617f7973ce34d269f7dfd41c11b">main.cpp</a>
+</li>
+<li>timercnt
+: <a class="el" href="timer_8cpp.html#a0f94d5829b547df53531ff4c3ec325c0">timer.cpp</a>
+</li>
+<li>verbose
+: <a class="el" href="global_8h.html#a0b2caeb4b6f130be43e5a2f0267dd453">global.h</a>
+, <a class="el" href="main_8cpp.html#a0b2caeb4b6f130be43e5a2f0267dd453">main.cpp</a>
+</li>
+</ul>
+</div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.10
+</small></address>
+</body>
+</html>

+ 134 - 0
CoffeeCode/html/globals_w.html

@@ -0,0 +1,134 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.10"/>
+<title>CoffeePi: Globals</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>
+<script type="text/javascript">
+  $(document).ready(function() { init_search(); });
+</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">CoffeePi
+   </div>
+   <div id="projectbrief">Coffee machine control for Raspberry Pi</div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.10 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+  <div id="navrow1" class="tabs">
+    <ul class="tablist">
+      <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+      <li><a href="annotated.html"><span>Data&#160;Structures</span></a></li>
+      <li class="current"><a href="files.html"><span>Files</span></a></li>
+      <li>
+        <div id="MSearchBox" class="MSearchBoxInactive">
+        <span class="left">
+          <img id="MSearchSelect" src="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="search/close.png" alt=""/></a>
+          </span>
+        </div>
+      </li>
+    </ul>
+  </div>
+  <div id="navrow2" class="tabs2">
+    <ul class="tablist">
+      <li><a href="files.html"><span>File&#160;List</span></a></li>
+      <li class="current"><a href="globals.html"><span>Globals</span></a></li>
+    </ul>
+  </div>
+  <div id="navrow3" class="tabs2">
+    <ul class="tablist">
+      <li class="current"><a href="globals.html"><span>All</span></a></li>
+      <li><a href="globals_func.html"><span>Functions</span></a></li>
+      <li><a href="globals_vars.html"><span>Variables</span></a></li>
+      <li><a href="globals_type.html"><span>Typedefs</span></a></li>
+      <li><a href="globals_enum.html"><span>Enumerations</span></a></li>
+      <li><a href="globals_eval.html"><span>Enumerator</span></a></li>
+      <li><a href="globals_defs.html"><span>Macros</span></a></li>
+    </ul>
+  </div>
+  <div id="navrow4" class="tabs3">
+    <ul class="tablist">
+      <li><a href="globals.html#index_a"><span>a</span></a></li>
+      <li><a href="globals_b.html#index_b"><span>b</span></a></li>
+      <li><a href="globals_c.html#index_c"><span>c</span></a></li>
+      <li><a href="globals_d.html#index_d"><span>d</span></a></li>
+      <li><a href="globals_e.html#index_e"><span>e</span></a></li>
+      <li><a href="globals_f.html#index_f"><span>f</span></a></li>
+      <li><a href="globals_h.html#index_h"><span>h</span></a></li>
+      <li><a href="globals_i.html#index_i"><span>i</span></a></li>
+      <li><a href="globals_k.html#index_k"><span>k</span></a></li>
+      <li><a href="globals_l.html#index_l"><span>l</span></a></li>
+      <li><a href="globals_m.html#index_m"><span>m</span></a></li>
+      <li><a href="globals_n.html#index_n"><span>n</span></a></li>
+      <li><a href="globals_o.html#index_o"><span>o</span></a></li>
+      <li><a href="globals_p.html#index_p"><span>p</span></a></li>
+      <li><a href="globals_r.html#index_r"><span>r</span></a></li>
+      <li><a href="globals_s.html#index_s"><span>s</span></a></li>
+      <li><a href="globals_t.html#index_t"><span>t</span></a></li>
+      <li><a href="globals_u.html#index_u"><span>u</span></a></li>
+      <li><a href="globals_v.html#index_v"><span>v</span></a></li>
+      <li class="current"><a href="globals_w.html#index_w"><span>w</span></a></li>
+    </ul>
+  </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 functions, variables, defines, enums, and typedefs with links to the files they belong to:</div>
+
+<h3><a class="anchor" id="index_w"></a>- w -</h3><ul>
+<li>WIDTH
+: <a class="el" href="crc_8cpp.html#a241aeeb764887ae5e3de58b98f04b16d">crc.cpp</a>
+</li>
+</ul>
+</div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.10
+</small></address>
+</body>
+</html>

+ 524 - 0
CoffeeCode/html/hal_8cpp.html

@@ -0,0 +1,524 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.10"/>
+<title>CoffeePi: hal.cpp File 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>
+<script type="text/javascript">
+  $(document).ready(function() { init_search(); });
+</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">CoffeePi
+   </div>
+   <div id="projectbrief">Coffee machine control for Raspberry Pi</div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.10 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+  <div id="navrow1" class="tabs">
+    <ul class="tablist">
+      <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+      <li><a href="annotated.html"><span>Data&#160;Structures</span></a></li>
+      <li class="current"><a href="files.html"><span>Files</span></a></li>
+      <li>
+        <div id="MSearchBox" class="MSearchBoxInactive">
+        <span class="left">
+          <img id="MSearchSelect" src="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="search/close.png" alt=""/></a>
+          </span>
+        </div>
+      </li>
+    </ul>
+  </div>
+  <div id="navrow2" class="tabs2">
+    <ul class="tablist">
+      <li><a href="files.html"><span>File&#160;List</span></a></li>
+      <li><a href="globals.html"><span>Globals</span></a></li>
+    </ul>
+  </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="#func-members">Functions</a> &#124;
+<a href="#var-members">Variables</a>  </div>
+  <div class="headertitle">
+<div class="title">hal.cpp File Reference</div>  </div>
+</div><!--header-->
+<div class="contents">
+<div class="textblock"><code>#include &lt;wiringPi.h&gt;</code><br />
+<code>#include &lt;stdlib.h&gt;</code><br />
+<code>#include &lt;errno.h&gt;</code><br />
+<code>#include &lt;string.h&gt;</code><br />
+<code>#include &lt;signal.h&gt;</code><br />
+<code>#include &quot;<a class="el" href="lcd_8h_source.html">lcd.h</a>&quot;</code><br />
+<code>#include &quot;<a class="el" href="hal_8h_source.html">hal.h</a>&quot;</code><br />
+<code>#include &quot;<a class="el" href="global_8h_source.html">global.h</a>&quot;</code><br />
+<code>#include &quot;<a class="el" href="logger_8h_source.html">logger.h</a>&quot;</code><br />
+</div><table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
+Functions</h2></td></tr>
+<tr class="memitem:afd89c1650df524d95aef39b8bc38170d"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="hal_8cpp.html#afd89c1650df524d95aef39b8bc38170d">halInit</a> (void)</td></tr>
+<tr class="memdesc:afd89c1650df524d95aef39b8bc38170d"><td class="mdescLeft">&#160;</td><td class="mdescRight">Initializes HAL.  <a href="#afd89c1650df524d95aef39b8bc38170d">More...</a><br /></td></tr>
+<tr class="separator:afd89c1650df524d95aef39b8bc38170d"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a33e09a3806bdcd5c711e557178335763"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="hal_8cpp.html#a33e09a3806bdcd5c711e557178335763">halRelaisOn</a> (int relais)</td></tr>
+<tr class="memdesc:a33e09a3806bdcd5c711e557178335763"><td class="mdescLeft">&#160;</td><td class="mdescRight">Switches relais on.  <a href="#a33e09a3806bdcd5c711e557178335763">More...</a><br /></td></tr>
+<tr class="separator:a33e09a3806bdcd5c711e557178335763"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a25c63f62c18555fc1b9b50bcd29f1c7d"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="hal_8cpp.html#a25c63f62c18555fc1b9b50bcd29f1c7d">halRelaisOff</a> (int relais)</td></tr>
+<tr class="memdesc:a25c63f62c18555fc1b9b50bcd29f1c7d"><td class="mdescLeft">&#160;</td><td class="mdescRight">Switches relais off.  <a href="#a25c63f62c18555fc1b9b50bcd29f1c7d">More...</a><br /></td></tr>
+<tr class="separator:a25c63f62c18555fc1b9b50bcd29f1c7d"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a9b67b274703f0c42834f4b447d5c04a2"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="hal_8cpp.html#a9b67b274703f0c42834f4b447d5c04a2">halRelaisSet</a> (int relais, int state)</td></tr>
+<tr class="memdesc:a9b67b274703f0c42834f4b447d5c04a2"><td class="mdescLeft">&#160;</td><td class="mdescRight">Switches relais to state.  <a href="#a9b67b274703f0c42834f4b447d5c04a2">More...</a><br /></td></tr>
+<tr class="separator:a9b67b274703f0c42834f4b447d5c04a2"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a1d22d01f1a6a6789f2816e27bbcb0504"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="hal_8cpp.html#a1d22d01f1a6a6789f2816e27bbcb0504">halGetRelaisState</a> (int relais)</td></tr>
+<tr class="memdesc:a1d22d01f1a6a6789f2816e27bbcb0504"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the state of the relais relais Returns HIGH when Relais is ON.  <a href="#a1d22d01f1a6a6789f2816e27bbcb0504">More...</a><br /></td></tr>
+<tr class="separator:a1d22d01f1a6a6789f2816e27bbcb0504"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a597258a80a0bb18db649d01b0893c99f"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="hal_8cpp.html#a597258a80a0bb18db649d01b0893c99f">halInt0</a> (void)</td></tr>
+<tr class="separator:a597258a80a0bb18db649d01b0893c99f"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a603aaa9c0c3cfef8b185df5c7f4921c3"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="hal_8cpp.html#a603aaa9c0c3cfef8b185df5c7f4921c3">halInt1</a> (void)</td></tr>
+<tr class="separator:a603aaa9c0c3cfef8b185df5c7f4921c3"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ace9ace8c7e0012157569f446d4cb8c52"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="hal_8cpp.html#ace9ace8c7e0012157569f446d4cb8c52">halIntFlow</a> (void)</td></tr>
+<tr class="separator:ace9ace8c7e0012157569f446d4cb8c52"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a73067106de2bbcf98bcc3a06cbf3b000"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="hal_8cpp.html#a73067106de2bbcf98bcc3a06cbf3b000">halIntPressure</a> (void)</td></tr>
+<tr class="memdesc:a73067106de2bbcf98bcc3a06cbf3b000"><td class="mdescLeft">&#160;</td><td class="mdescRight">Method to handle toggle of the pressure control.  <a href="#a73067106de2bbcf98bcc3a06cbf3b000">More...</a><br /></td></tr>
+<tr class="separator:a73067106de2bbcf98bcc3a06cbf3b000"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a0622583e0c8453a6d6963964ad7e7122"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="hal_8cpp.html#a0622583e0c8453a6d6963964ad7e7122">halIntProximity</a> (void)</td></tr>
+<tr class="memdesc:a0622583e0c8453a6d6963964ad7e7122"><td class="mdescLeft">&#160;</td><td class="mdescRight">Method to handle toggle of the proximity sensor.  <a href="#a0622583e0c8453a6d6963964ad7e7122">More...</a><br /></td></tr>
+<tr class="separator:a0622583e0c8453a6d6963964ad7e7122"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a1a0d534518ff19bf5b023dfe64d141db"><td class="memItemLeft" align="right" valign="top">float&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="hal_8cpp.html#a1a0d534518ff19bf5b023dfe64d141db">halGetFlow</a> (void)</td></tr>
+<tr class="memdesc:a1a0d534518ff19bf5b023dfe64d141db"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns total flow trough sensor in ml.  <a href="#a1a0d534518ff19bf5b023dfe64d141db">More...</a><br /></td></tr>
+<tr class="separator:a1a0d534518ff19bf5b023dfe64d141db"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a99d0fb6a80635b679cf4cd1fa90b483d"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="hal_8cpp.html#a99d0fb6a80635b679cf4cd1fa90b483d">halResetFlow</a> (void)</td></tr>
+<tr class="memdesc:a99d0fb6a80635b679cf4cd1fa90b483d"><td class="mdescLeft">&#160;</td><td class="mdescRight">Resets the Flow counter.  <a href="#a99d0fb6a80635b679cf4cd1fa90b483d">More...</a><br /></td></tr>
+<tr class="separator:a99d0fb6a80635b679cf4cd1fa90b483d"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a01f43f0666520e8d8af65e94fd82a5eb"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="hal_8cpp.html#a01f43f0666520e8d8af65e94fd82a5eb">halIsHeating</a> (void)</td></tr>
+<tr class="memdesc:a01f43f0666520e8d8af65e94fd82a5eb"><td class="mdescLeft">&#160;</td><td class="mdescRight">Reads the status of the Pressure Control.  <a href="#a01f43f0666520e8d8af65e94fd82a5eb">More...</a><br /></td></tr>
+<tr class="separator:a01f43f0666520e8d8af65e94fd82a5eb"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a52c001b5136b02e19bd00282a137631d"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="hal_8cpp.html#a52c001b5136b02e19bd00282a137631d">halProxSensorCovered</a> (void)</td></tr>
+<tr class="memdesc:a52c001b5136b02e19bd00282a137631d"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns status of the proximity switch.  <a href="#a52c001b5136b02e19bd00282a137631d">More...</a><br /></td></tr>
+<tr class="separator:a52c001b5136b02e19bd00282a137631d"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:af5609d1b9c9b6bde787cdca47b3b0a4f"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="hal_8cpp.html#af5609d1b9c9b6bde787cdca47b3b0a4f">halGetInt0</a> (void)</td></tr>
+<tr class="memdesc:af5609d1b9c9b6bde787cdca47b3b0a4f"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the value of the top button Int0 (low active)  <a href="#af5609d1b9c9b6bde787cdca47b3b0a4f">More...</a><br /></td></tr>
+<tr class="separator:af5609d1b9c9b6bde787cdca47b3b0a4f"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:afe1e8d0d1237d0f128d50a5b146002a2"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="hal_8cpp.html#afe1e8d0d1237d0f128d50a5b146002a2">halGetInt1</a> (void)</td></tr>
+<tr class="memdesc:afe1e8d0d1237d0f128d50a5b146002a2"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the value of the bottom button Int1 (low active)  <a href="#afe1e8d0d1237d0f128d50a5b146002a2">More...</a><br /></td></tr>
+<tr class="separator:afe1e8d0d1237d0f128d50a5b146002a2"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a252f49661ac23a045bb0d9d20997dfa4"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="hal_8cpp.html#a252f49661ac23a045bb0d9d20997dfa4">halSendSignal</a> (int val)</td></tr>
+<tr class="memdesc:a252f49661ac23a045bb0d9d20997dfa4"><td class="mdescLeft">&#160;</td><td class="mdescRight">send Signal to coffee thread  <a href="#a252f49661ac23a045bb0d9d20997dfa4">More...</a><br /></td></tr>
+<tr class="separator:a252f49661ac23a045bb0d9d20997dfa4"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table><table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="var-members"></a>
+Variables</h2></td></tr>
+<tr class="memitem:ae5ae572f06dd4838027976f9ab3fdc62"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="hal_8cpp.html#ae5ae572f06dd4838027976f9ab3fdc62">flowcnt</a> = 0</td></tr>
+<tr class="separator:ae5ae572f06dd4838027976f9ab3fdc62"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+<h2 class="groupheader">Function Documentation</h2>
+<a class="anchor" id="a1a0d534518ff19bf5b023dfe64d141db"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">float halGetFlow </td>
+          <td>(</td>
+          <td class="paramtype">void&#160;</td>
+          <td class="paramname"></td><td>)</td>
+          <td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Returns total flow trough sensor in ml. </p>
+
+</div>
+</div>
+<a class="anchor" id="af5609d1b9c9b6bde787cdca47b3b0a4f"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">int halGetInt0 </td>
+          <td>(</td>
+          <td class="paramtype">void&#160;</td>
+          <td class="paramname"></td><td>)</td>
+          <td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Returns the value of the top button Int0 (low active) </p>
+<dl class="section return"><dt>Returns</dt><dd>LOW or HIGH </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="afe1e8d0d1237d0f128d50a5b146002a2"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">int halGetInt1 </td>
+          <td>(</td>
+          <td class="paramtype">void&#160;</td>
+          <td class="paramname"></td><td>)</td>
+          <td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Returns the value of the bottom button Int1 (low active) </p>
+<dl class="section return"><dt>Returns</dt><dd>LOW or HIGH </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="a1d22d01f1a6a6789f2816e27bbcb0504"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">int halGetRelaisState </td>
+          <td>(</td>
+          <td class="paramtype">int&#160;</td>
+          <td class="paramname"><em>relais</em></td><td>)</td>
+          <td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Returns the state of the relais relais Returns HIGH when Relais is ON. </p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">relais</td><td>Relais ID </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+<a class="anchor" id="afd89c1650df524d95aef39b8bc38170d"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void halInit </td>
+          <td>(</td>
+          <td class="paramtype">void&#160;</td>
+          <td class="paramname"></td><td>)</td>
+          <td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Initializes HAL. </p>
+
+</div>
+</div>
+<a class="anchor" id="a597258a80a0bb18db649d01b0893c99f"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void halInt0 </td>
+          <td>(</td>
+          <td class="paramtype">void&#160;</td>
+          <td class="paramname"></td><td>)</td>
+          <td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="a603aaa9c0c3cfef8b185df5c7f4921c3"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void halInt1 </td>
+          <td>(</td>
+          <td class="paramtype">void&#160;</td>
+          <td class="paramname"></td><td>)</td>
+          <td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="ace9ace8c7e0012157569f446d4cb8c52"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void halIntFlow </td>
+          <td>(</td>
+          <td class="paramtype">void&#160;</td>
+          <td class="paramname"></td><td>)</td>
+          <td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="a73067106de2bbcf98bcc3a06cbf3b000"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void halIntPressure </td>
+          <td>(</td>
+          <td class="paramtype">void&#160;</td>
+          <td class="paramname"></td><td>)</td>
+          <td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Method to handle toggle of the pressure control. </p>
+
+</div>
+</div>
+<a class="anchor" id="a0622583e0c8453a6d6963964ad7e7122"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void halIntProximity </td>
+          <td>(</td>
+          <td class="paramtype">void&#160;</td>
+          <td class="paramname"></td><td>)</td>
+          <td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Method to handle toggle of the proximity sensor. </p>
+
+</div>
+</div>
+<a class="anchor" id="a01f43f0666520e8d8af65e94fd82a5eb"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">bool halIsHeating </td>
+          <td>(</td>
+          <td class="paramtype">void&#160;</td>
+          <td class="paramname"></td><td>)</td>
+          <td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Reads the status of the Pressure Control. </p>
+<dl class="section return"><dt>Returns</dt><dd>0 for closed Pressure Control(heating) and 1 for open </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="a52c001b5136b02e19bd00282a137631d"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">bool halProxSensorCovered </td>
+          <td>(</td>
+          <td class="paramtype">void&#160;</td>
+          <td class="paramname"></td><td>)</td>
+          <td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Returns status of the proximity switch. </p>
+<dl class="section return"><dt>Returns</dt><dd>1 if the proximity switch is covered and 0 if uncovered </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="a25c63f62c18555fc1b9b50bcd29f1c7d"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void halRelaisOff </td>
+          <td>(</td>
+          <td class="paramtype">int&#160;</td>
+          <td class="paramname"><em>relais</em></td><td>)</td>
+          <td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Switches relais off. </p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">relais</td><td>Relais ID </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+<a class="anchor" id="a33e09a3806bdcd5c711e557178335763"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void halRelaisOn </td>
+          <td>(</td>
+          <td class="paramtype">int&#160;</td>
+          <td class="paramname"><em>relais</em></td><td>)</td>
+          <td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Switches relais on. </p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">relais</td><td>Relais ID </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+<a class="anchor" id="a9b67b274703f0c42834f4b447d5c04a2"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void halRelaisSet </td>
+          <td>(</td>
+          <td class="paramtype">int&#160;</td>
+          <td class="paramname"><em>relais</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">int&#160;</td>
+          <td class="paramname"><em>state</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Switches relais to state. </p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">relais</td><td>Relais ID </td></tr>
+    <tr><td class="paramname">state</td><td>LOW(0) or HIGH(1) </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+<a class="anchor" id="a99d0fb6a80635b679cf4cd1fa90b483d"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void halResetFlow </td>
+          <td>(</td>
+          <td class="paramtype">void&#160;</td>
+          <td class="paramname"></td><td>)</td>
+          <td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Resets the Flow counter. </p>
+
+</div>
+</div>
+<a class="anchor" id="a252f49661ac23a045bb0d9d20997dfa4"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void halSendSignal </td>
+          <td>(</td>
+          <td class="paramtype">int&#160;</td>
+          <td class="paramname"><em>val</em></td><td>)</td>
+          <td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>send Signal to coffee thread </p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">val</td><td>Integer value assigned to signal </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+<h2 class="groupheader">Variable Documentation</h2>
+<a class="anchor" id="ae5ae572f06dd4838027976f9ab3fdc62"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">int flowcnt = 0</td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+</div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.10
+</small></address>
+</body>
+</html>

+ 698 - 0
CoffeeCode/html/hal_8h.html

@@ -0,0 +1,698 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.10"/>
+<title>CoffeePi: hal.h File 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>
+<script type="text/javascript">
+  $(document).ready(function() { init_search(); });
+</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">CoffeePi
+   </div>
+   <div id="projectbrief">Coffee machine control for Raspberry Pi</div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.10 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+  <div id="navrow1" class="tabs">
+    <ul class="tablist">
+      <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+      <li><a href="annotated.html"><span>Data&#160;Structures</span></a></li>
+      <li class="current"><a href="files.html"><span>Files</span></a></li>
+      <li>
+        <div id="MSearchBox" class="MSearchBoxInactive">
+        <span class="left">
+          <img id="MSearchSelect" src="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="search/close.png" alt=""/></a>
+          </span>
+        </div>
+      </li>
+    </ul>
+  </div>
+  <div id="navrow2" class="tabs2">
+    <ul class="tablist">
+      <li><a href="files.html"><span>File&#160;List</span></a></li>
+      <li><a href="globals.html"><span>Globals</span></a></li>
+    </ul>
+  </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="#define-members">Macros</a> &#124;
+<a href="#enum-members">Enumerations</a> &#124;
+<a href="#func-members">Functions</a>  </div>
+  <div class="headertitle">
+<div class="title">hal.h File Reference</div>  </div>
+</div><!--header-->
+<div class="contents">
+
+<p><a href="hal_8h_source.html">Go to the source code of this file.</a></p>
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="define-members"></a>
+Macros</h2></td></tr>
+<tr class="memitem:a9b57e326c17e793a2c70b909256734ab"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="hal_8h.html#a9b57e326c17e793a2c70b909256734ab">RELAIS_HEAT</a>&#160;&#160;&#160;29</td></tr>
+<tr class="separator:a9b57e326c17e793a2c70b909256734ab"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a9723c5da9e57e2b3a1c3ec7b635cee53"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="hal_8h.html#a9723c5da9e57e2b3a1c3ec7b635cee53">RELAIS_PUMP</a>&#160;&#160;&#160;25</td></tr>
+<tr class="separator:a9723c5da9e57e2b3a1c3ec7b635cee53"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a56489df9a2d1844419f2b0c104516657"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="hal_8h.html#a56489df9a2d1844419f2b0c104516657">RELAIS_POWER</a>&#160;&#160;&#160;28</td></tr>
+<tr class="separator:a56489df9a2d1844419f2b0c104516657"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:af9f618757de2bf9051de55c831802f30"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="hal_8h.html#af9f618757de2bf9051de55c831802f30">PRESSURE_CTRL</a>&#160;&#160;&#160;7</td></tr>
+<tr class="separator:af9f618757de2bf9051de55c831802f30"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a60cdc9e2a5c04bd14c4c3c6f872ddf29"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="hal_8h.html#a60cdc9e2a5c04bd14c4c3c6f872ddf29">PROXIMITY_SENSOR</a>&#160;&#160;&#160;6</td></tr>
+<tr class="separator:a60cdc9e2a5c04bd14c4c3c6f872ddf29"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a7521122e23c8d5c83b2a033b2505c86c"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="hal_8h.html#a7521122e23c8d5c83b2a033b2505c86c">INT0</a>&#160;&#160;&#160;0</td></tr>
+<tr class="separator:a7521122e23c8d5c83b2a033b2505c86c"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ae4728496f2ab826d5fc6a63da6cb600b"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="hal_8h.html#ae4728496f2ab826d5fc6a63da6cb600b">INT1</a>&#160;&#160;&#160;2</td></tr>
+<tr class="separator:ae4728496f2ab826d5fc6a63da6cb600b"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a249f9f89b3a190ddd62999b1afa847c3"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="hal_8h.html#a249f9f89b3a190ddd62999b1afa847c3">FLOW</a>&#160;&#160;&#160;3</td></tr>
+<tr class="separator:a249f9f89b3a190ddd62999b1afa847c3"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a7c6e51c86f643b69623e53eaa62e6cd4"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="hal_8h.html#a7c6e51c86f643b69623e53eaa62e6cd4">PROX_COVERED</a>&#160;&#160;&#160;1</td></tr>
+<tr class="separator:a7c6e51c86f643b69623e53eaa62e6cd4"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a957d80982673bb087a5d29380720f59d"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="hal_8h.html#a957d80982673bb087a5d29380720f59d">FLOW_ML_PULSE</a>&#160;&#160;&#160;(1000.0/990)</td></tr>
+<tr class="separator:a957d80982673bb087a5d29380720f59d"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table><table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="enum-members"></a>
+Enumerations</h2></td></tr>
+<tr class="memitem:aa51a8c9f6b926aa9e9c5dd38249d3f68"><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="hal_8h.html#aa51a8c9f6b926aa9e9c5dd38249d3f68">HalSig</a> { <br />
+&#160;&#160;<a class="el" href="hal_8h.html#aa51a8c9f6b926aa9e9c5dd38249d3f68a4f6585385aaee8e6a336fb31e8713751">SigInt0Psh</a> = 1, 
+<a class="el" href="hal_8h.html#aa51a8c9f6b926aa9e9c5dd38249d3f68ae70d75d9c016f72d315ce0f375425ae3">SigInt0Rls</a> = 2, 
+<a class="el" href="hal_8h.html#aa51a8c9f6b926aa9e9c5dd38249d3f68a5fd8970919f375d9f3baaaa053865ce2">SigInt1Psh</a> = 3, 
+<a class="el" href="hal_8h.html#aa51a8c9f6b926aa9e9c5dd38249d3f68aa85940fc659570c5b7ec2d8e0ed3eeae">SigInt1Rls</a> = 4, 
+<br />
+&#160;&#160;<a class="el" href="hal_8h.html#aa51a8c9f6b926aa9e9c5dd38249d3f68abdd48e173224114754f253d764540ec9">SigPressCls</a> = 5, 
+<a class="el" href="hal_8h.html#aa51a8c9f6b926aa9e9c5dd38249d3f68a683f7a77d5c63e835b2a72ab1c540fe4">SigPressOpn</a> = 6, 
+<a class="el" href="hal_8h.html#aa51a8c9f6b926aa9e9c5dd38249d3f68a7f18f13ecf372adaf681e706ad051fd3">SigProxOpn</a> = 7, 
+<a class="el" href="hal_8h.html#aa51a8c9f6b926aa9e9c5dd38249d3f68ac53b2d92b9e3b1652f173e29db5b523d">SigProxCvrd</a> = 8, 
+<br />
+&#160;&#160;<a class="el" href="hal_8h.html#aa51a8c9f6b926aa9e9c5dd38249d3f68a4f8316fcd4daf8fdee99ad3414c00857">SigBrewOn</a> = 9, 
+<a class="el" href="hal_8h.html#aa51a8c9f6b926aa9e9c5dd38249d3f68a6d3fe49429343ea09a007c2236db9382">SigBrewOff</a> = 10
+<br />
+ }<tr class="separator:aa51a8c9f6b926aa9e9c5dd38249d3f68"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</td></tr>
+</table><table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
+Functions</h2></td></tr>
+<tr class="memitem:afd89c1650df524d95aef39b8bc38170d"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="hal_8h.html#afd89c1650df524d95aef39b8bc38170d">halInit</a> (void)</td></tr>
+<tr class="memdesc:afd89c1650df524d95aef39b8bc38170d"><td class="mdescLeft">&#160;</td><td class="mdescRight">Initializes HAL.  <a href="#afd89c1650df524d95aef39b8bc38170d">More...</a><br /></td></tr>
+<tr class="separator:afd89c1650df524d95aef39b8bc38170d"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a33e09a3806bdcd5c711e557178335763"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="hal_8h.html#a33e09a3806bdcd5c711e557178335763">halRelaisOn</a> (int relais)</td></tr>
+<tr class="memdesc:a33e09a3806bdcd5c711e557178335763"><td class="mdescLeft">&#160;</td><td class="mdescRight">Switches relais on.  <a href="#a33e09a3806bdcd5c711e557178335763">More...</a><br /></td></tr>
+<tr class="separator:a33e09a3806bdcd5c711e557178335763"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a25c63f62c18555fc1b9b50bcd29f1c7d"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="hal_8h.html#a25c63f62c18555fc1b9b50bcd29f1c7d">halRelaisOff</a> (int relais)</td></tr>
+<tr class="memdesc:a25c63f62c18555fc1b9b50bcd29f1c7d"><td class="mdescLeft">&#160;</td><td class="mdescRight">Switches relais off.  <a href="#a25c63f62c18555fc1b9b50bcd29f1c7d">More...</a><br /></td></tr>
+<tr class="separator:a25c63f62c18555fc1b9b50bcd29f1c7d"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a9b67b274703f0c42834f4b447d5c04a2"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="hal_8h.html#a9b67b274703f0c42834f4b447d5c04a2">halRelaisSet</a> (int relais, int state)</td></tr>
+<tr class="memdesc:a9b67b274703f0c42834f4b447d5c04a2"><td class="mdescLeft">&#160;</td><td class="mdescRight">Switches relais to state.  <a href="#a9b67b274703f0c42834f4b447d5c04a2">More...</a><br /></td></tr>
+<tr class="separator:a9b67b274703f0c42834f4b447d5c04a2"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a1d22d01f1a6a6789f2816e27bbcb0504"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="hal_8h.html#a1d22d01f1a6a6789f2816e27bbcb0504">halGetRelaisState</a> (int relais)</td></tr>
+<tr class="memdesc:a1d22d01f1a6a6789f2816e27bbcb0504"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the state of the relais relais Returns HIGH when Relais is ON.  <a href="#a1d22d01f1a6a6789f2816e27bbcb0504">More...</a><br /></td></tr>
+<tr class="separator:a1d22d01f1a6a6789f2816e27bbcb0504"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a597258a80a0bb18db649d01b0893c99f"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="hal_8h.html#a597258a80a0bb18db649d01b0893c99f">halInt0</a> (void)</td></tr>
+<tr class="separator:a597258a80a0bb18db649d01b0893c99f"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a603aaa9c0c3cfef8b185df5c7f4921c3"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="hal_8h.html#a603aaa9c0c3cfef8b185df5c7f4921c3">halInt1</a> (void)</td></tr>
+<tr class="separator:a603aaa9c0c3cfef8b185df5c7f4921c3"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ace9ace8c7e0012157569f446d4cb8c52"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="hal_8h.html#ace9ace8c7e0012157569f446d4cb8c52">halIntFlow</a> (void)</td></tr>
+<tr class="separator:ace9ace8c7e0012157569f446d4cb8c52"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a73067106de2bbcf98bcc3a06cbf3b000"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="hal_8h.html#a73067106de2bbcf98bcc3a06cbf3b000">halIntPressure</a> (void)</td></tr>
+<tr class="memdesc:a73067106de2bbcf98bcc3a06cbf3b000"><td class="mdescLeft">&#160;</td><td class="mdescRight">Method to handle toggle of the pressure control.  <a href="#a73067106de2bbcf98bcc3a06cbf3b000">More...</a><br /></td></tr>
+<tr class="separator:a73067106de2bbcf98bcc3a06cbf3b000"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a0622583e0c8453a6d6963964ad7e7122"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="hal_8h.html#a0622583e0c8453a6d6963964ad7e7122">halIntProximity</a> (void)</td></tr>
+<tr class="memdesc:a0622583e0c8453a6d6963964ad7e7122"><td class="mdescLeft">&#160;</td><td class="mdescRight">Method to handle toggle of the proximity sensor.  <a href="#a0622583e0c8453a6d6963964ad7e7122">More...</a><br /></td></tr>
+<tr class="separator:a0622583e0c8453a6d6963964ad7e7122"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a1a0d534518ff19bf5b023dfe64d141db"><td class="memItemLeft" align="right" valign="top">float&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="hal_8h.html#a1a0d534518ff19bf5b023dfe64d141db">halGetFlow</a> (void)</td></tr>
+<tr class="memdesc:a1a0d534518ff19bf5b023dfe64d141db"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns total flow trough sensor in ml.  <a href="#a1a0d534518ff19bf5b023dfe64d141db">More...</a><br /></td></tr>
+<tr class="separator:a1a0d534518ff19bf5b023dfe64d141db"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a99d0fb6a80635b679cf4cd1fa90b483d"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="hal_8h.html#a99d0fb6a80635b679cf4cd1fa90b483d">halResetFlow</a> (void)</td></tr>
+<tr class="memdesc:a99d0fb6a80635b679cf4cd1fa90b483d"><td class="mdescLeft">&#160;</td><td class="mdescRight">Resets the Flow counter.  <a href="#a99d0fb6a80635b679cf4cd1fa90b483d">More...</a><br /></td></tr>
+<tr class="separator:a99d0fb6a80635b679cf4cd1fa90b483d"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a01f43f0666520e8d8af65e94fd82a5eb"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="hal_8h.html#a01f43f0666520e8d8af65e94fd82a5eb">halIsHeating</a> (void)</td></tr>
+<tr class="memdesc:a01f43f0666520e8d8af65e94fd82a5eb"><td class="mdescLeft">&#160;</td><td class="mdescRight">Reads the status of the Pressure Control.  <a href="#a01f43f0666520e8d8af65e94fd82a5eb">More...</a><br /></td></tr>
+<tr class="separator:a01f43f0666520e8d8af65e94fd82a5eb"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a52c001b5136b02e19bd00282a137631d"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="hal_8h.html#a52c001b5136b02e19bd00282a137631d">halProxSensorCovered</a> (void)</td></tr>
+<tr class="memdesc:a52c001b5136b02e19bd00282a137631d"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns status of the proximity switch.  <a href="#a52c001b5136b02e19bd00282a137631d">More...</a><br /></td></tr>
+<tr class="separator:a52c001b5136b02e19bd00282a137631d"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:af5609d1b9c9b6bde787cdca47b3b0a4f"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="hal_8h.html#af5609d1b9c9b6bde787cdca47b3b0a4f">halGetInt0</a> (void)</td></tr>
+<tr class="memdesc:af5609d1b9c9b6bde787cdca47b3b0a4f"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the value of the top button Int0 (low active)  <a href="#af5609d1b9c9b6bde787cdca47b3b0a4f">More...</a><br /></td></tr>
+<tr class="separator:af5609d1b9c9b6bde787cdca47b3b0a4f"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:afe1e8d0d1237d0f128d50a5b146002a2"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="hal_8h.html#afe1e8d0d1237d0f128d50a5b146002a2">halGetInt1</a> (void)</td></tr>
+<tr class="memdesc:afe1e8d0d1237d0f128d50a5b146002a2"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the value of the bottom button Int1 (low active)  <a href="#afe1e8d0d1237d0f128d50a5b146002a2">More...</a><br /></td></tr>
+<tr class="separator:afe1e8d0d1237d0f128d50a5b146002a2"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a4fa1c41f2dd3c24e13feaa6be70ad426"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="hal_8h.html#a4fa1c41f2dd3c24e13feaa6be70ad426">halSendSignal</a> (int value)</td></tr>
+<tr class="memdesc:a4fa1c41f2dd3c24e13feaa6be70ad426"><td class="mdescLeft">&#160;</td><td class="mdescRight">send Signal to coffee thread  <a href="#a4fa1c41f2dd3c24e13feaa6be70ad426">More...</a><br /></td></tr>
+<tr class="separator:a4fa1c41f2dd3c24e13feaa6be70ad426"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+<h2 class="groupheader">Macro Definition Documentation</h2>
+<a class="anchor" id="a249f9f89b3a190ddd62999b1afa847c3"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">#define FLOW&#160;&#160;&#160;3</td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="a957d80982673bb087a5d29380720f59d"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">#define FLOW_ML_PULSE&#160;&#160;&#160;(1000.0/990)</td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="a7521122e23c8d5c83b2a033b2505c86c"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">#define INT0&#160;&#160;&#160;0</td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="ae4728496f2ab826d5fc6a63da6cb600b"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">#define INT1&#160;&#160;&#160;2</td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="af9f618757de2bf9051de55c831802f30"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">#define PRESSURE_CTRL&#160;&#160;&#160;7</td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="a7c6e51c86f643b69623e53eaa62e6cd4"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">#define PROX_COVERED&#160;&#160;&#160;1</td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="a60cdc9e2a5c04bd14c4c3c6f872ddf29"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">#define PROXIMITY_SENSOR&#160;&#160;&#160;6</td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="a9b57e326c17e793a2c70b909256734ab"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">#define RELAIS_HEAT&#160;&#160;&#160;29</td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="a56489df9a2d1844419f2b0c104516657"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">#define RELAIS_POWER&#160;&#160;&#160;28</td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="a9723c5da9e57e2b3a1c3ec7b635cee53"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">#define RELAIS_PUMP&#160;&#160;&#160;25</td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<h2 class="groupheader">Enumeration Type Documentation</h2>
+<a class="anchor" id="aa51a8c9f6b926aa9e9c5dd38249d3f68"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">enum <a class="el" href="hal_8h.html#aa51a8c9f6b926aa9e9c5dd38249d3f68">HalSig</a></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+<table class="fieldtable">
+<tr><th colspan="2">Enumerator</th></tr><tr><td class="fieldname"><a class="anchor" id="aa51a8c9f6b926aa9e9c5dd38249d3f68a4f6585385aaee8e6a336fb31e8713751"></a>SigInt0Psh&#160;</td><td class="fielddoc">
+</td></tr>
+<tr><td class="fieldname"><a class="anchor" id="aa51a8c9f6b926aa9e9c5dd38249d3f68ae70d75d9c016f72d315ce0f375425ae3"></a>SigInt0Rls&#160;</td><td class="fielddoc">
+</td></tr>
+<tr><td class="fieldname"><a class="anchor" id="aa51a8c9f6b926aa9e9c5dd38249d3f68a5fd8970919f375d9f3baaaa053865ce2"></a>SigInt1Psh&#160;</td><td class="fielddoc">
+</td></tr>
+<tr><td class="fieldname"><a class="anchor" id="aa51a8c9f6b926aa9e9c5dd38249d3f68aa85940fc659570c5b7ec2d8e0ed3eeae"></a>SigInt1Rls&#160;</td><td class="fielddoc">
+</td></tr>
+<tr><td class="fieldname"><a class="anchor" id="aa51a8c9f6b926aa9e9c5dd38249d3f68abdd48e173224114754f253d764540ec9"></a>SigPressCls&#160;</td><td class="fielddoc">
+</td></tr>
+<tr><td class="fieldname"><a class="anchor" id="aa51a8c9f6b926aa9e9c5dd38249d3f68a683f7a77d5c63e835b2a72ab1c540fe4"></a>SigPressOpn&#160;</td><td class="fielddoc">
+</td></tr>
+<tr><td class="fieldname"><a class="anchor" id="aa51a8c9f6b926aa9e9c5dd38249d3f68a7f18f13ecf372adaf681e706ad051fd3"></a>SigProxOpn&#160;</td><td class="fielddoc">
+</td></tr>
+<tr><td class="fieldname"><a class="anchor" id="aa51a8c9f6b926aa9e9c5dd38249d3f68ac53b2d92b9e3b1652f173e29db5b523d"></a>SigProxCvrd&#160;</td><td class="fielddoc">
+</td></tr>
+<tr><td class="fieldname"><a class="anchor" id="aa51a8c9f6b926aa9e9c5dd38249d3f68a4f8316fcd4daf8fdee99ad3414c00857"></a>SigBrewOn&#160;</td><td class="fielddoc">
+</td></tr>
+<tr><td class="fieldname"><a class="anchor" id="aa51a8c9f6b926aa9e9c5dd38249d3f68a6d3fe49429343ea09a007c2236db9382"></a>SigBrewOff&#160;</td><td class="fielddoc">
+</td></tr>
+</table>
+
+</div>
+</div>
+<h2 class="groupheader">Function Documentation</h2>
+<a class="anchor" id="a1a0d534518ff19bf5b023dfe64d141db"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">float halGetFlow </td>
+          <td>(</td>
+          <td class="paramtype">void&#160;</td>
+          <td class="paramname"></td><td>)</td>
+          <td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Returns total flow trough sensor in ml. </p>
+
+</div>
+</div>
+<a class="anchor" id="af5609d1b9c9b6bde787cdca47b3b0a4f"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">int halGetInt0 </td>
+          <td>(</td>
+          <td class="paramtype">void&#160;</td>
+          <td class="paramname"></td><td>)</td>
+          <td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Returns the value of the top button Int0 (low active) </p>
+<dl class="section return"><dt>Returns</dt><dd>LOW or HIGH </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="afe1e8d0d1237d0f128d50a5b146002a2"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">int halGetInt1 </td>
+          <td>(</td>
+          <td class="paramtype">void&#160;</td>
+          <td class="paramname"></td><td>)</td>
+          <td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Returns the value of the bottom button Int1 (low active) </p>
+<dl class="section return"><dt>Returns</dt><dd>LOW or HIGH </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="a1d22d01f1a6a6789f2816e27bbcb0504"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">int halGetRelaisState </td>
+          <td>(</td>
+          <td class="paramtype">int&#160;</td>
+          <td class="paramname"><em>relais</em></td><td>)</td>
+          <td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Returns the state of the relais relais Returns HIGH when Relais is ON. </p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">relais</td><td>Relais ID </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+<a class="anchor" id="afd89c1650df524d95aef39b8bc38170d"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void halInit </td>
+          <td>(</td>
+          <td class="paramtype">void&#160;</td>
+          <td class="paramname"></td><td>)</td>
+          <td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Initializes HAL. </p>
+
+</div>
+</div>
+<a class="anchor" id="a597258a80a0bb18db649d01b0893c99f"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void halInt0 </td>
+          <td>(</td>
+          <td class="paramtype">void&#160;</td>
+          <td class="paramname"></td><td>)</td>
+          <td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="a603aaa9c0c3cfef8b185df5c7f4921c3"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void halInt1 </td>
+          <td>(</td>
+          <td class="paramtype">void&#160;</td>
+          <td class="paramname"></td><td>)</td>
+          <td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="ace9ace8c7e0012157569f446d4cb8c52"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void halIntFlow </td>
+          <td>(</td>
+          <td class="paramtype">void&#160;</td>
+          <td class="paramname"></td><td>)</td>
+          <td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="a73067106de2bbcf98bcc3a06cbf3b000"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void halIntPressure </td>
+          <td>(</td>
+          <td class="paramtype">void&#160;</td>
+          <td class="paramname"></td><td>)</td>
+          <td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Method to handle toggle of the pressure control. </p>
+
+</div>
+</div>
+<a class="anchor" id="a0622583e0c8453a6d6963964ad7e7122"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void halIntProximity </td>
+          <td>(</td>
+          <td class="paramtype">void&#160;</td>
+          <td class="paramname"></td><td>)</td>
+          <td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Method to handle toggle of the proximity sensor. </p>
+
+</div>
+</div>
+<a class="anchor" id="a01f43f0666520e8d8af65e94fd82a5eb"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">bool halIsHeating </td>
+          <td>(</td>
+          <td class="paramtype">void&#160;</td>
+          <td class="paramname"></td><td>)</td>
+          <td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Reads the status of the Pressure Control. </p>
+<dl class="section return"><dt>Returns</dt><dd>0 for closed Pressure Control(heating) and 1 for open </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="a52c001b5136b02e19bd00282a137631d"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">bool halProxSensorCovered </td>
+          <td>(</td>
+          <td class="paramtype">void&#160;</td>
+          <td class="paramname"></td><td>)</td>
+          <td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Returns status of the proximity switch. </p>
+<dl class="section return"><dt>Returns</dt><dd>1 if the proximity switch is covered and 0 if uncovered </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="a25c63f62c18555fc1b9b50bcd29f1c7d"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void halRelaisOff </td>
+          <td>(</td>
+          <td class="paramtype">int&#160;</td>
+          <td class="paramname"><em>relais</em></td><td>)</td>
+          <td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Switches relais off. </p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">relais</td><td>Relais ID </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+<a class="anchor" id="a33e09a3806bdcd5c711e557178335763"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void halRelaisOn </td>
+          <td>(</td>
+          <td class="paramtype">int&#160;</td>
+          <td class="paramname"><em>relais</em></td><td>)</td>
+          <td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Switches relais on. </p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">relais</td><td>Relais ID </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+<a class="anchor" id="a9b67b274703f0c42834f4b447d5c04a2"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void halRelaisSet </td>
+          <td>(</td>
+          <td class="paramtype">int&#160;</td>
+          <td class="paramname"><em>relais</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">int&#160;</td>
+          <td class="paramname"><em>state</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Switches relais to state. </p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">relais</td><td>Relais ID </td></tr>
+    <tr><td class="paramname">state</td><td>LOW(0) or HIGH(1) </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+<a class="anchor" id="a99d0fb6a80635b679cf4cd1fa90b483d"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void halResetFlow </td>
+          <td>(</td>
+          <td class="paramtype">void&#160;</td>
+          <td class="paramname"></td><td>)</td>
+          <td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Resets the Flow counter. </p>
+
+</div>
+</div>
+<a class="anchor" id="a4fa1c41f2dd3c24e13feaa6be70ad426"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void halSendSignal </td>
+          <td>(</td>
+          <td class="paramtype">int&#160;</td>
+          <td class="paramname"><em>val</em></td><td>)</td>
+          <td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>send Signal to coffee thread </p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">val</td><td>Integer value assigned to signal </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+</div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.10
+</small></address>
+</body>
+</html>

+ 186 - 0
CoffeeCode/html/hal_8h_source.html

@@ -0,0 +1,186 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.10"/>
+<title>CoffeePi: hal.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>
+<script type="text/javascript">
+  $(document).ready(function() { init_search(); });
+</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">CoffeePi
+   </div>
+   <div id="projectbrief">Coffee machine control for Raspberry Pi</div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.10 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+  <div id="navrow1" class="tabs">
+    <ul class="tablist">
+      <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+      <li><a href="annotated.html"><span>Data&#160;Structures</span></a></li>
+      <li class="current"><a href="files.html"><span>Files</span></a></li>
+      <li>
+        <div id="MSearchBox" class="MSearchBoxInactive">
+        <span class="left">
+          <img id="MSearchSelect" src="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="search/close.png" alt=""/></a>
+          </span>
+        </div>
+      </li>
+    </ul>
+  </div>
+  <div id="navrow2" class="tabs2">
+    <ul class="tablist">
+      <li><a href="files.html"><span>File&#160;List</span></a></li>
+      <li><a href="globals.html"><span>Globals</span></a></li>
+    </ul>
+  </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">hal.h</div>  </div>
+</div><!--header-->
+<div class="contents">
+<a href="hal_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno">    1</span>&#160;<span class="comment">/*</span></div>
+<div class="line"><a name="l00002"></a><span class="lineno">    2</span>&#160;<span class="comment"> * hal.h</span></div>
+<div class="line"><a name="l00003"></a><span class="lineno">    3</span>&#160;<span class="comment"> *</span></div>
+<div class="line"><a name="l00004"></a><span class="lineno">    4</span>&#160;<span class="comment"> *  Created on: Aug 3, 2016</span></div>
+<div class="line"><a name="l00005"></a><span class="lineno">    5</span>&#160;<span class="comment"> *      Author: sebastian</span></div>
+<div class="line"><a name="l00006"></a><span class="lineno">    6</span>&#160;<span class="comment"> */</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;<span class="preprocessor">#ifndef HAL_H_</span></div>
+<div class="line"><a name="l00009"></a><span class="lineno">    9</span>&#160;<span class="preprocessor">#define HAL_H_</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"><a class="line" href="hal_8h.html#a9b57e326c17e793a2c70b909256734ab">   11</a></span>&#160;<span class="preprocessor">#define RELAIS_HEAT     29</span></div>
+<div class="line"><a name="l00012"></a><span class="lineno"><a class="line" href="hal_8h.html#a9723c5da9e57e2b3a1c3ec7b635cee53">   12</a></span>&#160;<span class="preprocessor">#define RELAIS_PUMP     25</span></div>
+<div class="line"><a name="l00013"></a><span class="lineno"><a class="line" href="hal_8h.html#a56489df9a2d1844419f2b0c104516657">   13</a></span>&#160;<span class="preprocessor">#define RELAIS_POWER    28</span></div>
+<div class="line"><a name="l00014"></a><span class="lineno"><a class="line" href="hal_8h.html#af9f618757de2bf9051de55c831802f30">   14</a></span>&#160;<span class="preprocessor">#define PRESSURE_CTRL   7</span></div>
+<div class="line"><a name="l00015"></a><span class="lineno"><a class="line" href="hal_8h.html#a60cdc9e2a5c04bd14c4c3c6f872ddf29">   15</a></span>&#160;<span class="preprocessor">#define PROXIMITY_SENSOR    6</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"><a class="line" href="hal_8h.html#a7521122e23c8d5c83b2a033b2505c86c">   17</a></span>&#160;<span class="preprocessor">#define INT0        0 // bottom button</span></div>
+<div class="line"><a name="l00018"></a><span class="lineno"><a class="line" href="hal_8h.html#ae4728496f2ab826d5fc6a63da6cb600b">   18</a></span>&#160;<span class="preprocessor">#define INT1        2 // top button</span></div>
+<div class="line"><a name="l00019"></a><span class="lineno"><a class="line" href="hal_8h.html#a249f9f89b3a190ddd62999b1afa847c3">   19</a></span>&#160;<span class="preprocessor">#define FLOW        3 // flow sensor</span></div>
+<div class="line"><a name="l00020"></a><span class="lineno"><a class="line" href="hal_8h.html#a7c6e51c86f643b69623e53eaa62e6cd4">   20</a></span>&#160;<span class="preprocessor">#define PROX_COVERED    1 //proximity sensor</span></div>
+<div class="line"><a name="l00021"></a><span class="lineno"><a class="line" href="hal_8h.html#a957d80982673bb087a5d29380720f59d">   21</a></span>&#160;<span class="preprocessor">#define FLOW_ML_PULSE   (1000.0/990) // Flow sensor: volume (ml) per pulse</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;<span class="comment"> * Explanation for the signal levels</span></div>
+<div class="line"><a name="l00024"></a><span class="lineno">   24</span>&#160;<span class="comment"> * SigInt_Psh           Button is pushed</span></div>
+<div class="line"><a name="l00025"></a><span class="lineno">   25</span>&#160;<span class="comment"> * SigInt_Rls       Button is released</span></div>
+<div class="line"><a name="l00026"></a><span class="lineno">   26</span>&#160;<span class="comment"> * SigPressCls      Pressure control is closed, System is heating</span></div>
+<div class="line"><a name="l00027"></a><span class="lineno">   27</span>&#160;<span class="comment"> * SigPressOpn      Pressure control is open, heating is off</span></div>
+<div class="line"><a name="l00028"></a><span class="lineno">   28</span>&#160;<span class="comment"> * SigProxOpn       Proximity Sensor is uncovered</span></div>
+<div class="line"><a name="l00029"></a><span class="lineno">   29</span>&#160;<span class="comment"> * SigProxCvrd  Proximity Sensor is covered</span></div>
+<div class="line"><a name="l00030"></a><span class="lineno">   30</span>&#160;<span class="comment"> */</span></div>
+<div class="line"><a name="l00031"></a><span class="lineno"><a class="line" href="hal_8h.html#aa51a8c9f6b926aa9e9c5dd38249d3f68">   31</a></span>&#160;<span class="keyword">enum</span> <a class="code" href="hal_8h.html#aa51a8c9f6b926aa9e9c5dd38249d3f68">HalSig</a> {</div>
+<div class="line"><a name="l00032"></a><span class="lineno"><a class="line" href="hal_8h.html#aa51a8c9f6b926aa9e9c5dd38249d3f68a4f6585385aaee8e6a336fb31e8713751">   32</a></span>&#160;    <a class="code" href="hal_8h.html#aa51a8c9f6b926aa9e9c5dd38249d3f68a4f6585385aaee8e6a336fb31e8713751">SigInt0Psh</a> = 1,</div>
+<div class="line"><a name="l00033"></a><span class="lineno"><a class="line" href="hal_8h.html#aa51a8c9f6b926aa9e9c5dd38249d3f68ae70d75d9c016f72d315ce0f375425ae3">   33</a></span>&#160;    <a class="code" href="hal_8h.html#aa51a8c9f6b926aa9e9c5dd38249d3f68ae70d75d9c016f72d315ce0f375425ae3">SigInt0Rls</a> = 2,</div>
+<div class="line"><a name="l00034"></a><span class="lineno"><a class="line" href="hal_8h.html#aa51a8c9f6b926aa9e9c5dd38249d3f68a5fd8970919f375d9f3baaaa053865ce2">   34</a></span>&#160;    <a class="code" href="hal_8h.html#aa51a8c9f6b926aa9e9c5dd38249d3f68a5fd8970919f375d9f3baaaa053865ce2">SigInt1Psh</a> = 3,</div>
+<div class="line"><a name="l00035"></a><span class="lineno"><a class="line" href="hal_8h.html#aa51a8c9f6b926aa9e9c5dd38249d3f68aa85940fc659570c5b7ec2d8e0ed3eeae">   35</a></span>&#160;    <a class="code" href="hal_8h.html#aa51a8c9f6b926aa9e9c5dd38249d3f68aa85940fc659570c5b7ec2d8e0ed3eeae">SigInt1Rls</a> = 4,</div>
+<div class="line"><a name="l00036"></a><span class="lineno"><a class="line" href="hal_8h.html#aa51a8c9f6b926aa9e9c5dd38249d3f68abdd48e173224114754f253d764540ec9">   36</a></span>&#160;    <a class="code" href="hal_8h.html#aa51a8c9f6b926aa9e9c5dd38249d3f68abdd48e173224114754f253d764540ec9">SigPressCls</a> = 5,</div>
+<div class="line"><a name="l00037"></a><span class="lineno"><a class="line" href="hal_8h.html#aa51a8c9f6b926aa9e9c5dd38249d3f68a683f7a77d5c63e835b2a72ab1c540fe4">   37</a></span>&#160;    <a class="code" href="hal_8h.html#aa51a8c9f6b926aa9e9c5dd38249d3f68a683f7a77d5c63e835b2a72ab1c540fe4">SigPressOpn</a> = 6,</div>
+<div class="line"><a name="l00038"></a><span class="lineno"><a class="line" href="hal_8h.html#aa51a8c9f6b926aa9e9c5dd38249d3f68a7f18f13ecf372adaf681e706ad051fd3">   38</a></span>&#160;    <a class="code" href="hal_8h.html#aa51a8c9f6b926aa9e9c5dd38249d3f68a7f18f13ecf372adaf681e706ad051fd3">SigProxOpn</a> = 7,</div>
+<div class="line"><a name="l00039"></a><span class="lineno"><a class="line" href="hal_8h.html#aa51a8c9f6b926aa9e9c5dd38249d3f68ac53b2d92b9e3b1652f173e29db5b523d">   39</a></span>&#160;    <a class="code" href="hal_8h.html#aa51a8c9f6b926aa9e9c5dd38249d3f68ac53b2d92b9e3b1652f173e29db5b523d">SigProxCvrd</a> = 8,</div>
+<div class="line"><a name="l00040"></a><span class="lineno"><a class="line" href="hal_8h.html#aa51a8c9f6b926aa9e9c5dd38249d3f68a4f8316fcd4daf8fdee99ad3414c00857">   40</a></span>&#160;    <a class="code" href="hal_8h.html#aa51a8c9f6b926aa9e9c5dd38249d3f68a4f8316fcd4daf8fdee99ad3414c00857">SigBrewOn</a> = 9,</div>
+<div class="line"><a name="l00041"></a><span class="lineno"><a class="line" href="hal_8h.html#aa51a8c9f6b926aa9e9c5dd38249d3f68a6d3fe49429343ea09a007c2236db9382">   41</a></span>&#160;    <a class="code" href="hal_8h.html#aa51a8c9f6b926aa9e9c5dd38249d3f68a6d3fe49429343ea09a007c2236db9382">SigBrewOff</a> = 10</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;<span class="keywordtype">void</span> <a class="code" href="hal_8h.html#afd89c1650df524d95aef39b8bc38170d">halInit</a>(<span class="keywordtype">void</span>);</div>
+<div class="line"><a name="l00045"></a><span class="lineno">   45</span>&#160;<span class="keywordtype">void</span> <a class="code" href="hal_8h.html#a33e09a3806bdcd5c711e557178335763">halRelaisOn</a>(<span class="keywordtype">int</span> relais);</div>
+<div class="line"><a name="l00046"></a><span class="lineno">   46</span>&#160;<span class="keywordtype">void</span> <a class="code" href="hal_8h.html#a25c63f62c18555fc1b9b50bcd29f1c7d">halRelaisOff</a>(<span class="keywordtype">int</span> relais);</div>
+<div class="line"><a name="l00047"></a><span class="lineno">   47</span>&#160;<span class="keywordtype">void</span> <a class="code" href="hal_8h.html#a9b67b274703f0c42834f4b447d5c04a2">halRelaisSet</a>(<span class="keywordtype">int</span> relais, <span class="keywordtype">int</span> state);</div>
+<div class="line"><a name="l00048"></a><span class="lineno">   48</span>&#160;<span class="keywordtype">int</span> <a class="code" href="hal_8h.html#a1d22d01f1a6a6789f2816e27bbcb0504">halGetRelaisState</a>(<span class="keywordtype">int</span> relais);</div>
+<div class="line"><a name="l00049"></a><span class="lineno">   49</span>&#160;<span class="keywordtype">void</span> <a class="code" href="hal_8h.html#a597258a80a0bb18db649d01b0893c99f">halInt0</a>(<span class="keywordtype">void</span>);</div>
+<div class="line"><a name="l00050"></a><span class="lineno">   50</span>&#160;<span class="keywordtype">void</span> <a class="code" href="hal_8h.html#a603aaa9c0c3cfef8b185df5c7f4921c3">halInt1</a>(<span class="keywordtype">void</span>);</div>
+<div class="line"><a name="l00051"></a><span class="lineno">   51</span>&#160;<span class="keywordtype">void</span> <a class="code" href="hal_8h.html#ace9ace8c7e0012157569f446d4cb8c52">halIntFlow</a>(<span class="keywordtype">void</span>);</div>
+<div class="line"><a name="l00052"></a><span class="lineno">   52</span>&#160;<span class="keywordtype">void</span> <a class="code" href="hal_8h.html#a73067106de2bbcf98bcc3a06cbf3b000">halIntPressure</a>(<span class="keywordtype">void</span>);</div>
+<div class="line"><a name="l00053"></a><span class="lineno">   53</span>&#160;<span class="keywordtype">void</span> <a class="code" href="hal_8h.html#a0622583e0c8453a6d6963964ad7e7122">halIntProximity</a>(<span class="keywordtype">void</span>);</div>
+<div class="line"><a name="l00054"></a><span class="lineno">   54</span>&#160;<span class="keywordtype">float</span> <a class="code" href="hal_8h.html#a1a0d534518ff19bf5b023dfe64d141db">halGetFlow</a>(<span class="keywordtype">void</span>);</div>
+<div class="line"><a name="l00055"></a><span class="lineno">   55</span>&#160;<span class="keywordtype">void</span> <a class="code" href="hal_8h.html#a99d0fb6a80635b679cf4cd1fa90b483d">halResetFlow</a>(<span class="keywordtype">void</span>);</div>
+<div class="line"><a name="l00056"></a><span class="lineno">   56</span>&#160;<span class="keywordtype">bool</span> <a class="code" href="hal_8h.html#a01f43f0666520e8d8af65e94fd82a5eb">halIsHeating</a>(<span class="keywordtype">void</span>);</div>
+<div class="line"><a name="l00057"></a><span class="lineno">   57</span>&#160;<span class="keywordtype">bool</span> <a class="code" href="hal_8h.html#a52c001b5136b02e19bd00282a137631d">halProxSensorCovered</a>(<span class="keywordtype">void</span>);</div>
+<div class="line"><a name="l00058"></a><span class="lineno">   58</span>&#160;<span class="keywordtype">int</span> <a class="code" href="hal_8h.html#af5609d1b9c9b6bde787cdca47b3b0a4f">halGetInt0</a>(<span class="keywordtype">void</span>);</div>
+<div class="line"><a name="l00059"></a><span class="lineno">   59</span>&#160;<span class="keywordtype">int</span> <a class="code" href="hal_8h.html#afe1e8d0d1237d0f128d50a5b146002a2">halGetInt1</a>(<span class="keywordtype">void</span>);</div>
+<div class="line"><a name="l00060"></a><span class="lineno">   60</span>&#160;<span class="keywordtype">void</span> <a class="code" href="hal_8h.html#a4fa1c41f2dd3c24e13feaa6be70ad426">halSendSignal</a>(<span class="keywordtype">int</span> value);</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="preprocessor">#endif </span><span class="comment">/* HAL_H_ */</span><span class="preprocessor"></span></div>
+<div class="ttc" id="hal_8h_html_a33e09a3806bdcd5c711e557178335763"><div class="ttname"><a href="hal_8h.html#a33e09a3806bdcd5c711e557178335763">halRelaisOn</a></div><div class="ttdeci">void halRelaisOn(int relais)</div><div class="ttdoc">Switches relais on. </div><div class="ttdef"><b>Definition:</b> hal.cpp:66</div></div>
+<div class="ttc" id="hal_8h_html_a99d0fb6a80635b679cf4cd1fa90b483d"><div class="ttname"><a href="hal_8h.html#a99d0fb6a80635b679cf4cd1fa90b483d">halResetFlow</a></div><div class="ttdeci">void halResetFlow(void)</div><div class="ttdoc">Resets the Flow counter. </div><div class="ttdef"><b>Definition:</b> hal.cpp:174</div></div>
+<div class="ttc" id="hal_8h_html_a9b67b274703f0c42834f4b447d5c04a2"><div class="ttname"><a href="hal_8h.html#a9b67b274703f0c42834f4b447d5c04a2">halRelaisSet</a></div><div class="ttdeci">void halRelaisSet(int relais, int state)</div><div class="ttdoc">Switches relais to state. </div><div class="ttdef"><b>Definition:</b> hal.cpp:83</div></div>
+<div class="ttc" id="hal_8h_html_aa51a8c9f6b926aa9e9c5dd38249d3f68a5fd8970919f375d9f3baaaa053865ce2"><div class="ttname"><a href="hal_8h.html#aa51a8c9f6b926aa9e9c5dd38249d3f68a5fd8970919f375d9f3baaaa053865ce2">SigInt1Psh</a></div><div class="ttdef"><b>Definition:</b> hal.h:34</div></div>
+<div class="ttc" id="hal_8h_html_aa51a8c9f6b926aa9e9c5dd38249d3f68aa85940fc659570c5b7ec2d8e0ed3eeae"><div class="ttname"><a href="hal_8h.html#aa51a8c9f6b926aa9e9c5dd38249d3f68aa85940fc659570c5b7ec2d8e0ed3eeae">SigInt1Rls</a></div><div class="ttdef"><b>Definition:</b> hal.h:35</div></div>
+<div class="ttc" id="hal_8h_html_a52c001b5136b02e19bd00282a137631d"><div class="ttname"><a href="hal_8h.html#a52c001b5136b02e19bd00282a137631d">halProxSensorCovered</a></div><div class="ttdeci">bool halProxSensorCovered(void)</div><div class="ttdoc">Returns status of the proximity switch. </div><div class="ttdef"><b>Definition:</b> hal.cpp:194</div></div>
+<div class="ttc" id="hal_8h_html_a25c63f62c18555fc1b9b50bcd29f1c7d"><div class="ttname"><a href="hal_8h.html#a25c63f62c18555fc1b9b50bcd29f1c7d">halRelaisOff</a></div><div class="ttdeci">void halRelaisOff(int relais)</div><div class="ttdoc">Switches relais off. </div><div class="ttdef"><b>Definition:</b> hal.cpp:74</div></div>
+<div class="ttc" id="hal_8h_html_aa51a8c9f6b926aa9e9c5dd38249d3f68"><div class="ttname"><a href="hal_8h.html#aa51a8c9f6b926aa9e9c5dd38249d3f68">HalSig</a></div><div class="ttdeci">HalSig</div><div class="ttdef"><b>Definition:</b> hal.h:31</div></div>
+<div class="ttc" id="hal_8h_html_aa51a8c9f6b926aa9e9c5dd38249d3f68a6d3fe49429343ea09a007c2236db9382"><div class="ttname"><a href="hal_8h.html#aa51a8c9f6b926aa9e9c5dd38249d3f68a6d3fe49429343ea09a007c2236db9382">SigBrewOff</a></div><div class="ttdef"><b>Definition:</b> hal.h:41</div></div>
+<div class="ttc" id="hal_8h_html_aa51a8c9f6b926aa9e9c5dd38249d3f68a4f6585385aaee8e6a336fb31e8713751"><div class="ttname"><a href="hal_8h.html#aa51a8c9f6b926aa9e9c5dd38249d3f68a4f6585385aaee8e6a336fb31e8713751">SigInt0Psh</a></div><div class="ttdef"><b>Definition:</b> hal.h:32</div></div>
+<div class="ttc" id="hal_8h_html_a1a0d534518ff19bf5b023dfe64d141db"><div class="ttname"><a href="hal_8h.html#a1a0d534518ff19bf5b023dfe64d141db">halGetFlow</a></div><div class="ttdeci">float halGetFlow(void)</div><div class="ttdoc">Returns total flow trough sensor in ml. </div><div class="ttdef"><b>Definition:</b> hal.cpp:167</div></div>
+<div class="ttc" id="hal_8h_html_a597258a80a0bb18db649d01b0893c99f"><div class="ttname"><a href="hal_8h.html#a597258a80a0bb18db649d01b0893c99f">halInt0</a></div><div class="ttdeci">void halInt0(void)</div><div class="ttdef"><b>Definition:</b> hal.cpp:111</div></div>
+<div class="ttc" id="hal_8h_html_a1d22d01f1a6a6789f2816e27bbcb0504"><div class="ttname"><a href="hal_8h.html#a1d22d01f1a6a6789f2816e27bbcb0504">halGetRelaisState</a></div><div class="ttdeci">int halGetRelaisState(int relais)</div><div class="ttdoc">Returns the state of the relais relais Returns HIGH when Relais is ON. </div><div class="ttdef"><b>Definition:</b> hal.cpp:100</div></div>
+<div class="ttc" id="hal_8h_html_af5609d1b9c9b6bde787cdca47b3b0a4f"><div class="ttname"><a href="hal_8h.html#af5609d1b9c9b6bde787cdca47b3b0a4f">halGetInt0</a></div><div class="ttdeci">int halGetInt0(void)</div><div class="ttdoc">Returns the value of the top button Int0 (low active) </div><div class="ttdef"><b>Definition:</b> hal.cpp:207</div></div>
+<div class="ttc" id="hal_8h_html_a01f43f0666520e8d8af65e94fd82a5eb"><div class="ttname"><a href="hal_8h.html#a01f43f0666520e8d8af65e94fd82a5eb">halIsHeating</a></div><div class="ttdeci">bool halIsHeating(void)</div><div class="ttdoc">Reads the status of the Pressure Control. </div><div class="ttdef"><b>Definition:</b> hal.cpp:182</div></div>
+<div class="ttc" id="hal_8h_html_aa51a8c9f6b926aa9e9c5dd38249d3f68abdd48e173224114754f253d764540ec9"><div class="ttname"><a href="hal_8h.html#aa51a8c9f6b926aa9e9c5dd38249d3f68abdd48e173224114754f253d764540ec9">SigPressCls</a></div><div class="ttdef"><b>Definition:</b> hal.h:36</div></div>
+<div class="ttc" id="hal_8h_html_a603aaa9c0c3cfef8b185df5c7f4921c3"><div class="ttname"><a href="hal_8h.html#a603aaa9c0c3cfef8b185df5c7f4921c3">halInt1</a></div><div class="ttdeci">void halInt1(void)</div><div class="ttdef"><b>Definition:</b> hal.cpp:120</div></div>
+<div class="ttc" id="hal_8h_html_ace9ace8c7e0012157569f446d4cb8c52"><div class="ttname"><a href="hal_8h.html#ace9ace8c7e0012157569f446d4cb8c52">halIntFlow</a></div><div class="ttdeci">void halIntFlow(void)</div><div class="ttdef"><b>Definition:</b> hal.cpp:129</div></div>
+<div class="ttc" id="hal_8h_html_afe1e8d0d1237d0f128d50a5b146002a2"><div class="ttname"><a href="hal_8h.html#afe1e8d0d1237d0f128d50a5b146002a2">halGetInt1</a></div><div class="ttdeci">int halGetInt1(void)</div><div class="ttdoc">Returns the value of the bottom button Int1 (low active) </div><div class="ttdef"><b>Definition:</b> hal.cpp:215</div></div>
+<div class="ttc" id="hal_8h_html_aa51a8c9f6b926aa9e9c5dd38249d3f68ae70d75d9c016f72d315ce0f375425ae3"><div class="ttname"><a href="hal_8h.html#aa51a8c9f6b926aa9e9c5dd38249d3f68ae70d75d9c016f72d315ce0f375425ae3">SigInt0Rls</a></div><div class="ttdef"><b>Definition:</b> hal.h:33</div></div>
+<div class="ttc" id="hal_8h_html_aa51a8c9f6b926aa9e9c5dd38249d3f68a683f7a77d5c63e835b2a72ab1c540fe4"><div class="ttname"><a href="hal_8h.html#aa51a8c9f6b926aa9e9c5dd38249d3f68a683f7a77d5c63e835b2a72ab1c540fe4">SigPressOpn</a></div><div class="ttdef"><b>Definition:</b> hal.h:37</div></div>
+<div class="ttc" id="hal_8h_html_aa51a8c9f6b926aa9e9c5dd38249d3f68a7f18f13ecf372adaf681e706ad051fd3"><div class="ttname"><a href="hal_8h.html#aa51a8c9f6b926aa9e9c5dd38249d3f68a7f18f13ecf372adaf681e706ad051fd3">SigProxOpn</a></div><div class="ttdef"><b>Definition:</b> hal.h:38</div></div>
+<div class="ttc" id="hal_8h_html_afd89c1650df524d95aef39b8bc38170d"><div class="ttname"><a href="hal_8h.html#afd89c1650df524d95aef39b8bc38170d">halInit</a></div><div class="ttdeci">void halInit(void)</div><div class="ttdoc">Initializes HAL. </div><div class="ttdef"><b>Definition:</b> hal.cpp:22</div></div>
+<div class="ttc" id="hal_8h_html_aa51a8c9f6b926aa9e9c5dd38249d3f68ac53b2d92b9e3b1652f173e29db5b523d"><div class="ttname"><a href="hal_8h.html#aa51a8c9f6b926aa9e9c5dd38249d3f68ac53b2d92b9e3b1652f173e29db5b523d">SigProxCvrd</a></div><div class="ttdef"><b>Definition:</b> hal.h:39</div></div>
+<div class="ttc" id="hal_8h_html_a0622583e0c8453a6d6963964ad7e7122"><div class="ttname"><a href="hal_8h.html#a0622583e0c8453a6d6963964ad7e7122">halIntProximity</a></div><div class="ttdeci">void halIntProximity(void)</div><div class="ttdoc">Method to handle toggle of the proximity sensor. </div><div class="ttdef"><b>Definition:</b> hal.cpp:155</div></div>
+<div class="ttc" id="hal_8h_html_a4fa1c41f2dd3c24e13feaa6be70ad426"><div class="ttname"><a href="hal_8h.html#a4fa1c41f2dd3c24e13feaa6be70ad426">halSendSignal</a></div><div class="ttdeci">void halSendSignal(int value)</div><div class="ttdoc">send Signal to coffee thread </div><div class="ttdef"><b>Definition:</b> hal.cpp:223</div></div>
+<div class="ttc" id="hal_8h_html_a73067106de2bbcf98bcc3a06cbf3b000"><div class="ttname"><a href="hal_8h.html#a73067106de2bbcf98bcc3a06cbf3b000">halIntPressure</a></div><div class="ttdeci">void halIntPressure(void)</div><div class="ttdoc">Method to handle toggle of the pressure control. </div><div class="ttdef"><b>Definition:</b> hal.cpp:143</div></div>
+<div class="ttc" id="hal_8h_html_aa51a8c9f6b926aa9e9c5dd38249d3f68a4f8316fcd4daf8fdee99ad3414c00857"><div class="ttname"><a href="hal_8h.html#aa51a8c9f6b926aa9e9c5dd38249d3f68a4f8316fcd4daf8fdee99ad3414c00857">SigBrewOn</a></div><div class="ttdef"><b>Definition:</b> hal.h:40</div></div>
+</div><!-- fragment --></div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.10
+</small></address>
+</body>
+</html>

+ 105 - 0
CoffeeCode/html/index.html

@@ -0,0 +1,105 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.10"/>
+<title>CoffeePi: Main Page</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>
+<script type="text/javascript">
+  $(document).ready(function() { init_search(); });
+</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">CoffeePi
+   </div>
+   <div id="projectbrief">Coffee machine control for Raspberry Pi</div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.10 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+  <div id="navrow1" class="tabs">
+    <ul class="tablist">
+      <li class="current"><a href="index.html"><span>Main&#160;Page</span></a></li>
+      <li><a href="annotated.html"><span>Data&#160;Structures</span></a></li>
+      <li><a href="files.html"><span>Files</span></a></li>
+      <li>
+        <div id="MSearchBox" class="MSearchBoxInactive">
+        <span class="left">
+          <img id="MSearchSelect" src="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="search/close.png" alt=""/></a>
+          </span>
+        </div>
+      </li>
+    </ul>
+  </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">CoffeePi Documentation</div>  </div>
+</div><!--header-->
+<div class="contents">
+<div class="textblock"><p>Requirements: wiringpi pthread </p><h2>Usage CoffeePi</h2>
+<pre class="fragment">~$ ./coffecode -h
+</pre><p>Debug levels:</p><ol type="1">
+<li>Basic debugging, process informations</li>
+<li>Brewing informations</li>
+<li>HAL messages</li>
+<li>SQL querys</li>
+<li>LED stripe debugging</li>
+<li>SPI communication</li>
+</ol>
+<h2>Sourcecode</h2>
+<p>The program source is distributed between multiple files. Please refer to the documentation of the files for their content. The project is written in C++11 in Ecplise under a cross compiler environment. See Makefiles in Debug/ for cross compiler makefiles. See Release/ for Makefiles for Raspberry Pi.</p>
+<p>For compiling on Raspberry Pi 2: </p><pre class="fragment">cd Release
+make all -j 4
+</pre><p>(-j 4 runs make with up to 4 threads) </p>
+</div></div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.10
+</small></address>
+</body>
+</html>

Dosya farkı çok büyük olduğundan ihmal edildi
+ 15 - 0
CoffeeCode/html/jquery.js


+ 770 - 0
CoffeeCode/html/lcd_8cpp.html

@@ -0,0 +1,770 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.10"/>
+<title>CoffeePi: lcd.cpp File 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>
+<script type="text/javascript">
+  $(document).ready(function() { init_search(); });
+</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">CoffeePi
+   </div>
+   <div id="projectbrief">Coffee machine control for Raspberry Pi</div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.10 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+  <div id="navrow1" class="tabs">
+    <ul class="tablist">
+      <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+      <li><a href="annotated.html"><span>Data&#160;Structures</span></a></li>
+      <li class="current"><a href="files.html"><span>Files</span></a></li>
+      <li>
+        <div id="MSearchBox" class="MSearchBoxInactive">
+        <span class="left">
+          <img id="MSearchSelect" src="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="search/close.png" alt=""/></a>
+          </span>
+        </div>
+      </li>
+    </ul>
+  </div>
+  <div id="navrow2" class="tabs2">
+    <ul class="tablist">
+      <li><a href="files.html"><span>File&#160;List</span></a></li>
+      <li><a href="globals.html"><span>Globals</span></a></li>
+    </ul>
+  </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="#define-members">Macros</a> &#124;
+<a href="#func-members">Functions</a> &#124;
+<a href="#var-members">Variables</a>  </div>
+  <div class="headertitle">
+<div class="title">lcd.cpp File Reference</div>  </div>
+</div><!--header-->
+<div class="contents">
+<div class="textblock"><code>#include &lt;stdio.h&gt;</code><br />
+<code>#include &lt;stdlib.h&gt;</code><br />
+<code>#include &lt;stdarg.h&gt;</code><br />
+<code>#include &lt;wiringPi.h&gt;</code><br />
+<code>#include &quot;<a class="el" href="spi_8h_source.html">spi.h</a>&quot;</code><br />
+<code>#include &quot;<a class="el" href="lcd_8h_source.html">lcd.h</a>&quot;</code><br />
+<code>#include &quot;<a class="el" href="global_8h_source.html">global.h</a>&quot;</code><br />
+</div><table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="define-members"></a>
+Macros</h2></td></tr>
+<tr class="memitem:aa8cecfc5c5c054d2875c03e77b7be15d"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="lcd_8cpp.html#aa8cecfc5c5c054d2875c03e77b7be15d">TRUE</a>&#160;&#160;&#160;(1==1)</td></tr>
+<tr class="separator:aa8cecfc5c5c054d2875c03e77b7be15d"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:aa93f0eb578d23995850d61f7d61c55c1"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="lcd_8cpp.html#aa93f0eb578d23995850d61f7d61c55c1">FALSE</a>&#160;&#160;&#160;(1==2)</td></tr>
+<tr class="separator:aa93f0eb578d23995850d61f7d61c55c1"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a6aa8aa2057294b7d06088e834299b369"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="lcd_8cpp.html#a6aa8aa2057294b7d06088e834299b369">LCD_CLEAR</a>&#160;&#160;&#160;0x01</td></tr>
+<tr class="separator:a6aa8aa2057294b7d06088e834299b369"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ae0e309ccad89222eb3457f2da9f2bb8d"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="lcd_8cpp.html#ae0e309ccad89222eb3457f2da9f2bb8d">LCD_HOME</a>&#160;&#160;&#160;0x02</td></tr>
+<tr class="separator:ae0e309ccad89222eb3457f2da9f2bb8d"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a28d2c8d621da114a0fe438db2e58507a"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="lcd_8cpp.html#a28d2c8d621da114a0fe438db2e58507a">LCD_ENTRY</a>&#160;&#160;&#160;0x04</td></tr>
+<tr class="separator:a28d2c8d621da114a0fe438db2e58507a"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a8e945df7ca614325cafa08258e82a63c"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="lcd_8cpp.html#a8e945df7ca614325cafa08258e82a63c">LCD_CTRL</a>&#160;&#160;&#160;0x08</td></tr>
+<tr class="separator:a8e945df7ca614325cafa08258e82a63c"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a93e4bb4b824f5b8f5d572d9b4a943ad2"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="lcd_8cpp.html#a93e4bb4b824f5b8f5d572d9b4a943ad2">LCD_CDSHIFT</a>&#160;&#160;&#160;0x10</td></tr>
+<tr class="separator:a93e4bb4b824f5b8f5d572d9b4a943ad2"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a387bfe42ea7284ba0f154f00df579cad"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="lcd_8cpp.html#a387bfe42ea7284ba0f154f00df579cad">LCD_FUNC</a>&#160;&#160;&#160;0x20</td></tr>
+<tr class="separator:a387bfe42ea7284ba0f154f00df579cad"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a3b38de74c362be1781fef1136aa9684c"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="lcd_8cpp.html#a3b38de74c362be1781fef1136aa9684c">LCD_CGRAM</a>&#160;&#160;&#160;0x40</td></tr>
+<tr class="separator:a3b38de74c362be1781fef1136aa9684c"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a9f40873eaf6a8f0a93971b3e0ab3fd12"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="lcd_8cpp.html#a9f40873eaf6a8f0a93971b3e0ab3fd12">LCD_DGRAM</a>&#160;&#160;&#160;0x80</td></tr>
+<tr class="separator:a9f40873eaf6a8f0a93971b3e0ab3fd12"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:aff5b4fcb87ea2eef9bb3af0234b14f53"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="lcd_8cpp.html#aff5b4fcb87ea2eef9bb3af0234b14f53">LCD_ENTRY_SH</a>&#160;&#160;&#160;0x01</td></tr>
+<tr class="separator:aff5b4fcb87ea2eef9bb3af0234b14f53"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a58e84458e964afcac51877bd13e7703f"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="lcd_8cpp.html#a58e84458e964afcac51877bd13e7703f">LCD_ENTRY_ID</a>&#160;&#160;&#160;0x02</td></tr>
+<tr class="separator:a58e84458e964afcac51877bd13e7703f"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:aa52bab70fab9c117f20d71442de77452"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="lcd_8cpp.html#aa52bab70fab9c117f20d71442de77452">LCD_BLINK_CTRL</a>&#160;&#160;&#160;0x01</td></tr>
+<tr class="separator:aa52bab70fab9c117f20d71442de77452"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a3da48db16c1e7844567542273a5578c7"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="lcd_8cpp.html#a3da48db16c1e7844567542273a5578c7">LCD_CURSOR_CTRL</a>&#160;&#160;&#160;0x02</td></tr>
+<tr class="separator:a3da48db16c1e7844567542273a5578c7"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a1a166a796cbaf4cdd6a3af584ec067d5"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="lcd_8cpp.html#a1a166a796cbaf4cdd6a3af584ec067d5">LCD_DISPLAY_CTRL</a>&#160;&#160;&#160;0x04</td></tr>
+<tr class="separator:a1a166a796cbaf4cdd6a3af584ec067d5"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a5ea7976aa137e8d043d3dfab474cf0b4"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="lcd_8cpp.html#a5ea7976aa137e8d043d3dfab474cf0b4">LCD_FUNC_F</a>&#160;&#160;&#160;0x04</td></tr>
+<tr class="separator:a5ea7976aa137e8d043d3dfab474cf0b4"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a0741cad05d62ff28d92a05ea11aa6fdc"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="lcd_8cpp.html#a0741cad05d62ff28d92a05ea11aa6fdc">LCD_FUNC_N</a>&#160;&#160;&#160;0x08</td></tr>
+<tr class="separator:a0741cad05d62ff28d92a05ea11aa6fdc"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ae4b9a3bcb0dc315afc03412237c5a3ea"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="lcd_8cpp.html#ae4b9a3bcb0dc315afc03412237c5a3ea">LCD_FUNC_DL</a>&#160;&#160;&#160;0x10</td></tr>
+<tr class="separator:ae4b9a3bcb0dc315afc03412237c5a3ea"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:afb0c5015365d7e200edec8967d32195c"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="lcd_8cpp.html#afb0c5015365d7e200edec8967d32195c">LCD_CDSHIFT_RL</a>&#160;&#160;&#160;0x04</td></tr>
+<tr class="separator:afb0c5015365d7e200edec8967d32195c"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table><table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
+Functions</h2></td></tr>
+<tr class="memitem:a688913764edb3a241c26da5e51d70ac2"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="lcd_8cpp.html#a688913764edb3a241c26da5e51d70ac2">lcdHome</a> (const int fd)</td></tr>
+<tr class="separator:a688913764edb3a241c26da5e51d70ac2"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ae1b4dfd9571742b5ca0aba92882b57a6"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="lcd_8cpp.html#ae1b4dfd9571742b5ca0aba92882b57a6">lcdClear</a> (const int fd)</td></tr>
+<tr class="separator:ae1b4dfd9571742b5ca0aba92882b57a6"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:af08385cd21eea125d63d6919ecfbea4a"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="lcd_8cpp.html#af08385cd21eea125d63d6919ecfbea4a">lcdDisplay</a> (const int fd, int state)</td></tr>
+<tr class="separator:af08385cd21eea125d63d6919ecfbea4a"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a8aa13c894973d52eeed51d10bf869df2"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="lcd_8cpp.html#a8aa13c894973d52eeed51d10bf869df2">lcdCursor</a> (const int fd, int state)</td></tr>
+<tr class="separator:a8aa13c894973d52eeed51d10bf869df2"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:af39d67df7e36291184f69691bb97285b"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="lcd_8cpp.html#af39d67df7e36291184f69691bb97285b">lcdCursorBlink</a> (const int fd, int state)</td></tr>
+<tr class="separator:af39d67df7e36291184f69691bb97285b"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:abb6341df42d0e652db66e51fbf0ba486"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="lcd_8cpp.html#abb6341df42d0e652db66e51fbf0ba486">lcdSendCommand</a> (const int fd, unsigned char command)</td></tr>
+<tr class="separator:abb6341df42d0e652db66e51fbf0ba486"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a5d09137f6373e95a692c4b3403729254"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="lcd_8cpp.html#a5d09137f6373e95a692c4b3403729254">lcdPosition</a> (const int fd, int x, int y)</td></tr>
+<tr class="separator:a5d09137f6373e95a692c4b3403729254"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a74d902393394e4d3cebdcf0d81bbaeeb"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="lcd_8cpp.html#a74d902393394e4d3cebdcf0d81bbaeeb">lcdCharDef</a> (const int fd, int index, unsigned char data[8])</td></tr>
+<tr class="separator:a74d902393394e4d3cebdcf0d81bbaeeb"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a21c60441ee22710add0c9bda1310ed66"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="lcd_8cpp.html#a21c60441ee22710add0c9bda1310ed66">lcdPutchar</a> (const int fd, unsigned char data)</td></tr>
+<tr class="separator:a21c60441ee22710add0c9bda1310ed66"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a805efc4a96cca29544672151a9594c20"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="lcd_8cpp.html#a805efc4a96cca29544672151a9594c20">lcdPuts</a> (const int fd, const char *string)</td></tr>
+<tr class="separator:a805efc4a96cca29544672151a9594c20"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a49c322ad29410ea292f8d976baf6deb9"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="lcd_8cpp.html#a49c322ad29410ea292f8d976baf6deb9">lcdPrintf</a> (const int fd, const char *message,...)</td></tr>
+<tr class="separator:a49c322ad29410ea292f8d976baf6deb9"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a88d70347308e92cb29eb45b505cad39e"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="lcd_8cpp.html#a88d70347308e92cb29eb45b505cad39e">lcdInit</a> (void)</td></tr>
+<tr class="separator:a88d70347308e92cb29eb45b505cad39e"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a47f05b4cef2cf066cf1cbb1beb7ceb31"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="lcd_8cpp.html#a47f05b4cef2cf066cf1cbb1beb7ceb31">lcdInitI</a> (const int rows, const int cols, const int bits, const int rs, const int strb)</td></tr>
+<tr class="separator:a47f05b4cef2cf066cf1cbb1beb7ceb31"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table><table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="var-members"></a>
+Variables</h2></td></tr>
+<tr class="memitem:a6e3994c5175d8609dee2cc8d3bcd66e9"><td class="memItemLeft" align="right" valign="top">struct lcdDataStruct *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="lcd_8cpp.html#a6e3994c5175d8609dee2cc8d3bcd66e9">lcds</a> [<a class="el" href="lcd_8h.html#a6bfe3f4a880b075a72d2a8318bd10f8e">MAX_LCDS</a>]</td></tr>
+<tr class="separator:a6e3994c5175d8609dee2cc8d3bcd66e9"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+<h2 class="groupheader">Macro Definition Documentation</h2>
+<a class="anchor" id="aa93f0eb578d23995850d61f7d61c55c1"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">#define FALSE&#160;&#160;&#160;(1==2)</td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="aa52bab70fab9c117f20d71442de77452"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">#define LCD_BLINK_CTRL&#160;&#160;&#160;0x01</td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="a93e4bb4b824f5b8f5d572d9b4a943ad2"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">#define LCD_CDSHIFT&#160;&#160;&#160;0x10</td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="afb0c5015365d7e200edec8967d32195c"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">#define LCD_CDSHIFT_RL&#160;&#160;&#160;0x04</td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="a3b38de74c362be1781fef1136aa9684c"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">#define LCD_CGRAM&#160;&#160;&#160;0x40</td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="a6aa8aa2057294b7d06088e834299b369"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">#define LCD_CLEAR&#160;&#160;&#160;0x01</td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="a8e945df7ca614325cafa08258e82a63c"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">#define LCD_CTRL&#160;&#160;&#160;0x08</td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="a3da48db16c1e7844567542273a5578c7"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">#define LCD_CURSOR_CTRL&#160;&#160;&#160;0x02</td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="a9f40873eaf6a8f0a93971b3e0ab3fd12"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">#define LCD_DGRAM&#160;&#160;&#160;0x80</td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="a1a166a796cbaf4cdd6a3af584ec067d5"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">#define LCD_DISPLAY_CTRL&#160;&#160;&#160;0x04</td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="a28d2c8d621da114a0fe438db2e58507a"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">#define LCD_ENTRY&#160;&#160;&#160;0x04</td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="a58e84458e964afcac51877bd13e7703f"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">#define LCD_ENTRY_ID&#160;&#160;&#160;0x02</td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="aff5b4fcb87ea2eef9bb3af0234b14f53"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">#define LCD_ENTRY_SH&#160;&#160;&#160;0x01</td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="a387bfe42ea7284ba0f154f00df579cad"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">#define LCD_FUNC&#160;&#160;&#160;0x20</td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="ae4b9a3bcb0dc315afc03412237c5a3ea"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">#define LCD_FUNC_DL&#160;&#160;&#160;0x10</td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="a5ea7976aa137e8d043d3dfab474cf0b4"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">#define LCD_FUNC_F&#160;&#160;&#160;0x04</td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="a0741cad05d62ff28d92a05ea11aa6fdc"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">#define LCD_FUNC_N&#160;&#160;&#160;0x08</td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="ae0e309ccad89222eb3457f2da9f2bb8d"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">#define LCD_HOME&#160;&#160;&#160;0x02</td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="aa8cecfc5c5c054d2875c03e77b7be15d"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">#define TRUE&#160;&#160;&#160;(1==1)</td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<h2 class="groupheader">Function Documentation</h2>
+<a class="anchor" id="a74d902393394e4d3cebdcf0d81bbaeeb"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void lcdCharDef </td>
+          <td>(</td>
+          <td class="paramtype">const int&#160;</td>
+          <td class="paramname"><em>fd</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">int&#160;</td>
+          <td class="paramname"><em>index</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">unsigned char&#160;</td>
+          <td class="paramname"><em>data</em>[8]&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="ae1b4dfd9571742b5ca0aba92882b57a6"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void lcdClear </td>
+          <td>(</td>
+          <td class="paramtype">const int&#160;</td>
+          <td class="paramname"><em>fd</em></td><td>)</td>
+          <td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="a8aa13c894973d52eeed51d10bf869df2"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void lcdCursor </td>
+          <td>(</td>
+          <td class="paramtype">const int&#160;</td>
+          <td class="paramname"><em>fd</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">int&#160;</td>
+          <td class="paramname"><em>state</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="af39d67df7e36291184f69691bb97285b"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void lcdCursorBlink </td>
+          <td>(</td>
+          <td class="paramtype">const int&#160;</td>
+          <td class="paramname"><em>fd</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">int&#160;</td>
+          <td class="paramname"><em>state</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="af08385cd21eea125d63d6919ecfbea4a"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void lcdDisplay </td>
+          <td>(</td>
+          <td class="paramtype">const int&#160;</td>
+          <td class="paramname"><em>fd</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">int&#160;</td>
+          <td class="paramname"><em>state</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="a688913764edb3a241c26da5e51d70ac2"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void lcdHome </td>
+          <td>(</td>
+          <td class="paramtype">const int&#160;</td>
+          <td class="paramname"><em>fd</em></td><td>)</td>
+          <td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="a88d70347308e92cb29eb45b505cad39e"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">int lcdInit </td>
+          <td>(</td>
+          <td class="paramtype">void&#160;</td>
+          <td class="paramname"></td><td>)</td>
+          <td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="a47f05b4cef2cf066cf1cbb1beb7ceb31"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">int lcdInitI </td>
+          <td>(</td>
+          <td class="paramtype">const int&#160;</td>
+          <td class="paramname"><em>rows</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">const int&#160;</td>
+          <td class="paramname"><em>cols</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">const int&#160;</td>
+          <td class="paramname"><em>bits</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">const int&#160;</td>
+          <td class="paramname"><em>rs</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">const int&#160;</td>
+          <td class="paramname"><em>strb</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="a5d09137f6373e95a692c4b3403729254"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void lcdPosition </td>
+          <td>(</td>
+          <td class="paramtype">const int&#160;</td>
+          <td class="paramname"><em>fd</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">int&#160;</td>
+          <td class="paramname"><em>x</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">int&#160;</td>
+          <td class="paramname"><em>y</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="a49c322ad29410ea292f8d976baf6deb9"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void lcdPrintf </td>
+          <td>(</td>
+          <td class="paramtype">const int&#160;</td>
+          <td class="paramname"><em>fd</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">const char *&#160;</td>
+          <td class="paramname"><em>message</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&#160;</td>
+          <td class="paramname"><em>...</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="a21c60441ee22710add0c9bda1310ed66"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void lcdPutchar </td>
+          <td>(</td>
+          <td class="paramtype">const int&#160;</td>
+          <td class="paramname"><em>fd</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">unsigned char&#160;</td>
+          <td class="paramname"><em>data</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="a805efc4a96cca29544672151a9594c20"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void lcdPuts </td>
+          <td>(</td>
+          <td class="paramtype">const int&#160;</td>
+          <td class="paramname"><em>fd</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">const char *&#160;</td>
+          <td class="paramname"><em>string</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="abb6341df42d0e652db66e51fbf0ba486"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void lcdSendCommand </td>
+          <td>(</td>
+          <td class="paramtype">const int&#160;</td>
+          <td class="paramname"><em>fd</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">unsigned char&#160;</td>
+          <td class="paramname"><em>command</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<h2 class="groupheader">Variable Documentation</h2>
+<a class="anchor" id="a6e3994c5175d8609dee2cc8d3bcd66e9"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">struct lcdDataStruct* lcds[<a class="el" href="lcd_8h.html#a6bfe3f4a880b075a72d2a8318bd10f8e">MAX_LCDS</a>]</td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+</div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.10
+</small></address>
+</body>
+</html>

+ 536 - 0
CoffeeCode/html/lcd_8h.html

@@ -0,0 +1,536 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.10"/>
+<title>CoffeePi: lcd.h File 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>
+<script type="text/javascript">
+  $(document).ready(function() { init_search(); });
+</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">CoffeePi
+   </div>
+   <div id="projectbrief">Coffee machine control for Raspberry Pi</div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.10 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+  <div id="navrow1" class="tabs">
+    <ul class="tablist">
+      <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+      <li><a href="annotated.html"><span>Data&#160;Structures</span></a></li>
+      <li class="current"><a href="files.html"><span>Files</span></a></li>
+      <li>
+        <div id="MSearchBox" class="MSearchBoxInactive">
+        <span class="left">
+          <img id="MSearchSelect" src="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="search/close.png" alt=""/></a>
+          </span>
+        </div>
+      </li>
+    </ul>
+  </div>
+  <div id="navrow2" class="tabs2">
+    <ul class="tablist">
+      <li><a href="files.html"><span>File&#160;List</span></a></li>
+      <li><a href="globals.html"><span>Globals</span></a></li>
+    </ul>
+  </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="#define-members">Macros</a> &#124;
+<a href="#func-members">Functions</a>  </div>
+  <div class="headertitle">
+<div class="title">lcd.h File Reference</div>  </div>
+</div><!--header-->
+<div class="contents">
+
+<p><a href="lcd_8h_source.html">Go to the source code of this file.</a></p>
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="define-members"></a>
+Macros</h2></td></tr>
+<tr class="memitem:a6bfe3f4a880b075a72d2a8318bd10f8e"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="lcd_8h.html#a6bfe3f4a880b075a72d2a8318bd10f8e">MAX_LCDS</a>&#160;&#160;&#160;8</td></tr>
+<tr class="separator:a6bfe3f4a880b075a72d2a8318bd10f8e"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a26089a10ddd59a0dc7283c19ccc02533"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="lcd_8h.html#a26089a10ddd59a0dc7283c19ccc02533">LCD_RW</a>&#160;&#160;&#160;24</td></tr>
+<tr class="separator:a26089a10ddd59a0dc7283c19ccc02533"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a4781e073871c6f27f89b9463ad3a4ed1"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="lcd_8h.html#a4781e073871c6f27f89b9463ad3a4ed1">LCD_RS</a>&#160;&#160;&#160;27</td></tr>
+<tr class="separator:a4781e073871c6f27f89b9463ad3a4ed1"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a1640ffbc0d8ec0f7edb04a2b93918072"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="lcd_8h.html#a1640ffbc0d8ec0f7edb04a2b93918072">LCD_EN</a>&#160;&#160;&#160;23</td></tr>
+<tr class="separator:a1640ffbc0d8ec0f7edb04a2b93918072"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table><table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
+Functions</h2></td></tr>
+<tr class="memitem:a688913764edb3a241c26da5e51d70ac2"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="lcd_8h.html#a688913764edb3a241c26da5e51d70ac2">lcdHome</a> (const int fd)</td></tr>
+<tr class="separator:a688913764edb3a241c26da5e51d70ac2"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ae1b4dfd9571742b5ca0aba92882b57a6"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="lcd_8h.html#ae1b4dfd9571742b5ca0aba92882b57a6">lcdClear</a> (const int fd)</td></tr>
+<tr class="separator:ae1b4dfd9571742b5ca0aba92882b57a6"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:af08385cd21eea125d63d6919ecfbea4a"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="lcd_8h.html#af08385cd21eea125d63d6919ecfbea4a">lcdDisplay</a> (const int fd, int state)</td></tr>
+<tr class="separator:af08385cd21eea125d63d6919ecfbea4a"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a8aa13c894973d52eeed51d10bf869df2"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="lcd_8h.html#a8aa13c894973d52eeed51d10bf869df2">lcdCursor</a> (const int fd, int state)</td></tr>
+<tr class="separator:a8aa13c894973d52eeed51d10bf869df2"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:af39d67df7e36291184f69691bb97285b"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="lcd_8h.html#af39d67df7e36291184f69691bb97285b">lcdCursorBlink</a> (const int fd, int state)</td></tr>
+<tr class="separator:af39d67df7e36291184f69691bb97285b"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:abb6341df42d0e652db66e51fbf0ba486"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="lcd_8h.html#abb6341df42d0e652db66e51fbf0ba486">lcdSendCommand</a> (const int fd, unsigned char command)</td></tr>
+<tr class="separator:abb6341df42d0e652db66e51fbf0ba486"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a5d09137f6373e95a692c4b3403729254"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="lcd_8h.html#a5d09137f6373e95a692c4b3403729254">lcdPosition</a> (const int fd, int x, int y)</td></tr>
+<tr class="separator:a5d09137f6373e95a692c4b3403729254"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a74d902393394e4d3cebdcf0d81bbaeeb"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="lcd_8h.html#a74d902393394e4d3cebdcf0d81bbaeeb">lcdCharDef</a> (const int fd, int index, unsigned char data[8])</td></tr>
+<tr class="separator:a74d902393394e4d3cebdcf0d81bbaeeb"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a21c60441ee22710add0c9bda1310ed66"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="lcd_8h.html#a21c60441ee22710add0c9bda1310ed66">lcdPutchar</a> (const int fd, unsigned char data)</td></tr>
+<tr class="separator:a21c60441ee22710add0c9bda1310ed66"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a805efc4a96cca29544672151a9594c20"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="lcd_8h.html#a805efc4a96cca29544672151a9594c20">lcdPuts</a> (const int fd, const char *string)</td></tr>
+<tr class="separator:a805efc4a96cca29544672151a9594c20"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a49c322ad29410ea292f8d976baf6deb9"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="lcd_8h.html#a49c322ad29410ea292f8d976baf6deb9">lcdPrintf</a> (const int fd, const char *message,...)</td></tr>
+<tr class="separator:a49c322ad29410ea292f8d976baf6deb9"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a47f05b4cef2cf066cf1cbb1beb7ceb31"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="lcd_8h.html#a47f05b4cef2cf066cf1cbb1beb7ceb31">lcdInitI</a> (const int rows, const int cols, const int bits, const int rs, const int strb)</td></tr>
+<tr class="separator:a47f05b4cef2cf066cf1cbb1beb7ceb31"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a88d70347308e92cb29eb45b505cad39e"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="lcd_8h.html#a88d70347308e92cb29eb45b505cad39e">lcdInit</a> (void)</td></tr>
+<tr class="separator:a88d70347308e92cb29eb45b505cad39e"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+<h2 class="groupheader">Macro Definition Documentation</h2>
+<a class="anchor" id="a1640ffbc0d8ec0f7edb04a2b93918072"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">#define LCD_EN&#160;&#160;&#160;23</td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="a4781e073871c6f27f89b9463ad3a4ed1"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">#define LCD_RS&#160;&#160;&#160;27</td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="a26089a10ddd59a0dc7283c19ccc02533"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">#define LCD_RW&#160;&#160;&#160;24</td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="a6bfe3f4a880b075a72d2a8318bd10f8e"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">#define MAX_LCDS&#160;&#160;&#160;8</td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<h2 class="groupheader">Function Documentation</h2>
+<a class="anchor" id="a74d902393394e4d3cebdcf0d81bbaeeb"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void lcdCharDef </td>
+          <td>(</td>
+          <td class="paramtype">const int&#160;</td>
+          <td class="paramname"><em>fd</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">int&#160;</td>
+          <td class="paramname"><em>index</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">unsigned char&#160;</td>
+          <td class="paramname"><em>data</em>[8]&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="ae1b4dfd9571742b5ca0aba92882b57a6"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void lcdClear </td>
+          <td>(</td>
+          <td class="paramtype">const int&#160;</td>
+          <td class="paramname"><em>fd</em></td><td>)</td>
+          <td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="a8aa13c894973d52eeed51d10bf869df2"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void lcdCursor </td>
+          <td>(</td>
+          <td class="paramtype">const int&#160;</td>
+          <td class="paramname"><em>fd</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">int&#160;</td>
+          <td class="paramname"><em>state</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="af39d67df7e36291184f69691bb97285b"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void lcdCursorBlink </td>
+          <td>(</td>
+          <td class="paramtype">const int&#160;</td>
+          <td class="paramname"><em>fd</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">int&#160;</td>
+          <td class="paramname"><em>state</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="af08385cd21eea125d63d6919ecfbea4a"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void lcdDisplay </td>
+          <td>(</td>
+          <td class="paramtype">const int&#160;</td>
+          <td class="paramname"><em>fd</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">int&#160;</td>
+          <td class="paramname"><em>state</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="a688913764edb3a241c26da5e51d70ac2"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void lcdHome </td>
+          <td>(</td>
+          <td class="paramtype">const int&#160;</td>
+          <td class="paramname"><em>fd</em></td><td>)</td>
+          <td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="a88d70347308e92cb29eb45b505cad39e"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">int lcdInit </td>
+          <td>(</td>
+          <td class="paramtype">void&#160;</td>
+          <td class="paramname"></td><td>)</td>
+          <td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="a47f05b4cef2cf066cf1cbb1beb7ceb31"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">int lcdInitI </td>
+          <td>(</td>
+          <td class="paramtype">const int&#160;</td>
+          <td class="paramname"><em>rows</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">const int&#160;</td>
+          <td class="paramname"><em>cols</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">const int&#160;</td>
+          <td class="paramname"><em>bits</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">const int&#160;</td>
+          <td class="paramname"><em>rs</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">const int&#160;</td>
+          <td class="paramname"><em>strb</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="a5d09137f6373e95a692c4b3403729254"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void lcdPosition </td>
+          <td>(</td>
+          <td class="paramtype">const int&#160;</td>
+          <td class="paramname"><em>fd</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">int&#160;</td>
+          <td class="paramname"><em>x</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">int&#160;</td>
+          <td class="paramname"><em>y</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="a49c322ad29410ea292f8d976baf6deb9"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void lcdPrintf </td>
+          <td>(</td>
+          <td class="paramtype">const int&#160;</td>
+          <td class="paramname"><em>fd</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">const char *&#160;</td>
+          <td class="paramname"><em>message</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&#160;</td>
+          <td class="paramname"><em>...</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="a21c60441ee22710add0c9bda1310ed66"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void lcdPutchar </td>
+          <td>(</td>
+          <td class="paramtype">const int&#160;</td>
+          <td class="paramname"><em>fd</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">unsigned char&#160;</td>
+          <td class="paramname"><em>data</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="a805efc4a96cca29544672151a9594c20"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void lcdPuts </td>
+          <td>(</td>
+          <td class="paramtype">const int&#160;</td>
+          <td class="paramname"><em>fd</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">const char *&#160;</td>
+          <td class="paramname"><em>string</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="abb6341df42d0e652db66e51fbf0ba486"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void lcdSendCommand </td>
+          <td>(</td>
+          <td class="paramtype">const int&#160;</td>
+          <td class="paramname"><em>fd</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">unsigned char&#160;</td>
+          <td class="paramname"><em>command</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+</div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.10
+</small></address>
+</body>
+</html>

+ 156 - 0
CoffeeCode/html/lcd_8h_source.html

@@ -0,0 +1,156 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.10"/>
+<title>CoffeePi: lcd.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>
+<script type="text/javascript">
+  $(document).ready(function() { init_search(); });
+</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">CoffeePi
+   </div>
+   <div id="projectbrief">Coffee machine control for Raspberry Pi</div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.10 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+  <div id="navrow1" class="tabs">
+    <ul class="tablist">
+      <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+      <li><a href="annotated.html"><span>Data&#160;Structures</span></a></li>
+      <li class="current"><a href="files.html"><span>Files</span></a></li>
+      <li>
+        <div id="MSearchBox" class="MSearchBoxInactive">
+        <span class="left">
+          <img id="MSearchSelect" src="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="search/close.png" alt=""/></a>
+          </span>
+        </div>
+      </li>
+    </ul>
+  </div>
+  <div id="navrow2" class="tabs2">
+    <ul class="tablist">
+      <li><a href="files.html"><span>File&#160;List</span></a></li>
+      <li><a href="globals.html"><span>Globals</span></a></li>
+    </ul>
+  </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">lcd.h</div>  </div>
+</div><!--header-->
+<div class="contents">
+<a href="lcd_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno">    1</span>&#160;<span class="comment">/*</span></div>
+<div class="line"><a name="l00002"></a><span class="lineno">    2</span>&#160;<span class="comment"> * lcd.h</span></div>
+<div class="line"><a name="l00003"></a><span class="lineno">    3</span>&#160;<span class="comment"> *</span></div>
+<div class="line"><a name="l00004"></a><span class="lineno">    4</span>&#160;<span class="comment"> *  Created on: Aug 3, 2016</span></div>
+<div class="line"><a name="l00005"></a><span class="lineno">    5</span>&#160;<span class="comment"> *      Author: sebastian</span></div>
+<div class="line"><a name="l00006"></a><span class="lineno">    6</span>&#160;<span class="comment"> */</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;<span class="preprocessor">#ifndef LCD_H_</span></div>
+<div class="line"><a name="l00009"></a><span class="lineno">    9</span>&#160;<span class="preprocessor">#define LCD_H_</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"><a class="line" href="lcd_8h.html#a6bfe3f4a880b075a72d2a8318bd10f8e">   11</a></span>&#160;<span class="preprocessor">#define MAX_LCDS        8</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">#ifdef __cplusplus</span></div>
+<div class="line"><a name="l00014"></a><span class="lineno">   14</span>&#160;<span class="keyword">extern</span> <span class="stringliteral">&quot;C&quot;</span> {</div>
+<div class="line"><a name="l00015"></a><span class="lineno">   15</span>&#160;<span class="preprocessor">#endif</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;<span class="keyword">extern</span> <span class="keywordtype">void</span> <a class="code" href="lcd_8h.html#a688913764edb3a241c26da5e51d70ac2">lcdHome</a>        (<span class="keyword">const</span> <span class="keywordtype">int</span> fd) ;</div>
+<div class="line"><a name="l00018"></a><span class="lineno">   18</span>&#160;<span class="keyword">extern</span> <span class="keywordtype">void</span> <a class="code" href="lcd_8h.html#ae1b4dfd9571742b5ca0aba92882b57a6">lcdClear</a>       (<span class="keyword">const</span> <span class="keywordtype">int</span> fd) ;</div>
+<div class="line"><a name="l00019"></a><span class="lineno">   19</span>&#160;<span class="keyword">extern</span> <span class="keywordtype">void</span> <a class="code" href="lcd_8h.html#af08385cd21eea125d63d6919ecfbea4a">lcdDisplay</a>     (<span class="keyword">const</span> <span class="keywordtype">int</span> fd, <span class="keywordtype">int</span> state) ;</div>
+<div class="line"><a name="l00020"></a><span class="lineno">   20</span>&#160;<span class="keyword">extern</span> <span class="keywordtype">void</span> <a class="code" href="lcd_8h.html#a8aa13c894973d52eeed51d10bf869df2">lcdCursor</a>      (<span class="keyword">const</span> <span class="keywordtype">int</span> fd, <span class="keywordtype">int</span> state) ;</div>
+<div class="line"><a name="l00021"></a><span class="lineno">   21</span>&#160;<span class="keyword">extern</span> <span class="keywordtype">void</span> <a class="code" href="lcd_8h.html#af39d67df7e36291184f69691bb97285b">lcdCursorBlink</a> (<span class="keyword">const</span> <span class="keywordtype">int</span> fd, <span class="keywordtype">int</span> state) ;</div>
+<div class="line"><a name="l00022"></a><span class="lineno">   22</span>&#160;<span class="keyword">extern</span> <span class="keywordtype">void</span> <a class="code" href="lcd_8h.html#abb6341df42d0e652db66e51fbf0ba486">lcdSendCommand</a> (<span class="keyword">const</span> <span class="keywordtype">int</span> fd, <span class="keywordtype">unsigned</span> <span class="keywordtype">char</span> command) ;</div>
+<div class="line"><a name="l00023"></a><span class="lineno">   23</span>&#160;<span class="keyword">extern</span> <span class="keywordtype">void</span> <a class="code" href="lcd_8h.html#a5d09137f6373e95a692c4b3403729254">lcdPosition</a>    (<span class="keyword">const</span> <span class="keywordtype">int</span> fd, <span class="keywordtype">int</span> x, <span class="keywordtype">int</span> y) ;</div>
+<div class="line"><a name="l00024"></a><span class="lineno">   24</span>&#160;<span class="keyword">extern</span> <span class="keywordtype">void</span> <a class="code" href="lcd_8h.html#a74d902393394e4d3cebdcf0d81bbaeeb">lcdCharDef</a>     (<span class="keyword">const</span> <span class="keywordtype">int</span> fd, <span class="keywordtype">int</span> index, <span class="keywordtype">unsigned</span> <span class="keywordtype">char</span> data [8]) ;</div>
+<div class="line"><a name="l00025"></a><span class="lineno">   25</span>&#160;<span class="keyword">extern</span> <span class="keywordtype">void</span> <a class="code" href="lcd_8h.html#a21c60441ee22710add0c9bda1310ed66">lcdPutchar</a>     (<span class="keyword">const</span> <span class="keywordtype">int</span> fd, <span class="keywordtype">unsigned</span> <span class="keywordtype">char</span> data) ;</div>
+<div class="line"><a name="l00026"></a><span class="lineno">   26</span>&#160;<span class="keyword">extern</span> <span class="keywordtype">void</span> <a class="code" href="lcd_8h.html#a805efc4a96cca29544672151a9594c20">lcdPuts</a>        (<span class="keyword">const</span> <span class="keywordtype">int</span> fd, <span class="keyword">const</span> <span class="keywordtype">char</span> *<span class="keywordtype">string</span>) ;</div>
+<div class="line"><a name="l00027"></a><span class="lineno">   27</span>&#160;<span class="keyword">extern</span> <span class="keywordtype">void</span> <a class="code" href="lcd_8h.html#a49c322ad29410ea292f8d976baf6deb9">lcdPrintf</a>      (<span class="keyword">const</span> <span class="keywordtype">int</span> fd, <span class="keyword">const</span> <span class="keywordtype">char</span> *message, ...) ;</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">extern</span> <span class="keywordtype">int</span>  <a class="code" href="lcd_8h.html#a47f05b4cef2cf066cf1cbb1beb7ceb31">lcdInitI</a> (<span class="keyword">const</span> <span class="keywordtype">int</span> rows, <span class="keyword">const</span> <span class="keywordtype">int</span> cols, <span class="keyword">const</span> <span class="keywordtype">int</span> bits,</div>
+<div class="line"><a name="l00030"></a><span class="lineno">   30</span>&#160;        <span class="keyword">const</span> <span class="keywordtype">int</span> rs, <span class="keyword">const</span> <span class="keywordtype">int</span> strb) ;</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;<span class="keyword">extern</span> <span class="keywordtype">int</span>  <a class="code" href="lcd_8h.html#a88d70347308e92cb29eb45b505cad39e">lcdInit</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="l00034"></a><span class="lineno">   34</span>&#160;<span class="preprocessor">#ifdef __cplusplus</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;<span class="preprocessor">#endif</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">// Pinbelegung für das LCD, an verwendete Pins anpassen</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"><a class="line" href="lcd_8h.html#a26089a10ddd59a0dc7283c19ccc02533">   40</a></span>&#160;<span class="preprocessor">#define LCD_RW      24</span></div>
+<div class="line"><a name="l00041"></a><span class="lineno"><a class="line" href="lcd_8h.html#a4781e073871c6f27f89b9463ad3a4ed1">   41</a></span>&#160;<span class="preprocessor">#define LCD_RS      27</span></div>
+<div class="line"><a name="l00042"></a><span class="lineno"><a class="line" href="lcd_8h.html#a1640ffbc0d8ec0f7edb04a2b93918072">   42</a></span>&#160;<span class="preprocessor">#define LCD_EN      23</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;</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 </span><span class="comment">/* LCD_H_ */</span><span class="preprocessor"></span></div>
+<div class="ttc" id="lcd_8h_html_a49c322ad29410ea292f8d976baf6deb9"><div class="ttname"><a href="lcd_8h.html#a49c322ad29410ea292f8d976baf6deb9">lcdPrintf</a></div><div class="ttdeci">void lcdPrintf(const int fd, const char *message,...)</div><div class="ttdef"><b>Definition:</b> lcd.cpp:307</div></div>
+<div class="ttc" id="lcd_8h_html_a5d09137f6373e95a692c4b3403729254"><div class="ttname"><a href="lcd_8h.html#a5d09137f6373e95a692c4b3403729254">lcdPosition</a></div><div class="ttdeci">void lcdPosition(const int fd, int x, int y)</div><div class="ttdef"><b>Definition:</b> lcd.cpp:233</div></div>
+<div class="ttc" id="lcd_8h_html_a74d902393394e4d3cebdcf0d81bbaeeb"><div class="ttname"><a href="lcd_8h.html#a74d902393394e4d3cebdcf0d81bbaeeb">lcdCharDef</a></div><div class="ttdeci">void lcdCharDef(const int fd, int index, unsigned char data[8])</div><div class="ttdef"><b>Definition:</b> lcd.cpp:255</div></div>
+<div class="ttc" id="lcd_8h_html_af39d67df7e36291184f69691bb97285b"><div class="ttname"><a href="lcd_8h.html#af39d67df7e36291184f69691bb97285b">lcdCursorBlink</a></div><div class="ttdeci">void lcdCursorBlink(const int fd, int state)</div><div class="ttdef"><b>Definition:</b> lcd.cpp:204</div></div>
+<div class="ttc" id="lcd_8h_html_ae1b4dfd9571742b5ca0aba92882b57a6"><div class="ttname"><a href="lcd_8h.html#ae1b4dfd9571742b5ca0aba92882b57a6">lcdClear</a></div><div class="ttdeci">void lcdClear(const int fd)</div><div class="ttdef"><b>Definition:</b> lcd.cpp:167</div></div>
+<div class="ttc" id="lcd_8h_html_a688913764edb3a241c26da5e51d70ac2"><div class="ttname"><a href="lcd_8h.html#a688913764edb3a241c26da5e51d70ac2">lcdHome</a></div><div class="ttdeci">void lcdHome(const int fd)</div><div class="ttdef"><b>Definition:</b> lcd.cpp:159</div></div>
+<div class="ttc" id="lcd_8h_html_a805efc4a96cca29544672151a9594c20"><div class="ttname"><a href="lcd_8h.html#a805efc4a96cca29544672151a9594c20">lcdPuts</a></div><div class="ttdeci">void lcdPuts(const int fd, const char *string)</div><div class="ttdef"><b>Definition:</b> lcd.cpp:296</div></div>
+<div class="ttc" id="lcd_8h_html_a88d70347308e92cb29eb45b505cad39e"><div class="ttname"><a href="lcd_8h.html#a88d70347308e92cb29eb45b505cad39e">lcdInit</a></div><div class="ttdeci">int lcdInit(void)</div><div class="ttdef"><b>Definition:</b> lcd.cpp:324</div></div>
+<div class="ttc" id="lcd_8h_html_a8aa13c894973d52eeed51d10bf869df2"><div class="ttname"><a href="lcd_8h.html#a8aa13c894973d52eeed51d10bf869df2">lcdCursor</a></div><div class="ttdeci">void lcdCursor(const int fd, int state)</div><div class="ttdef"><b>Definition:</b> lcd.cpp:193</div></div>
+<div class="ttc" id="lcd_8h_html_af08385cd21eea125d63d6919ecfbea4a"><div class="ttname"><a href="lcd_8h.html#af08385cd21eea125d63d6919ecfbea4a">lcdDisplay</a></div><div class="ttdeci">void lcdDisplay(const int fd, int state)</div><div class="ttdef"><b>Definition:</b> lcd.cpp:182</div></div>
+<div class="ttc" id="lcd_8h_html_abb6341df42d0e652db66e51fbf0ba486"><div class="ttname"><a href="lcd_8h.html#abb6341df42d0e652db66e51fbf0ba486">lcdSendCommand</a></div><div class="ttdeci">void lcdSendCommand(const int fd, unsigned char command)</div><div class="ttdef"><b>Definition:</b> lcd.cpp:221</div></div>
+<div class="ttc" id="lcd_8h_html_a47f05b4cef2cf066cf1cbb1beb7ceb31"><div class="ttname"><a href="lcd_8h.html#a47f05b4cef2cf066cf1cbb1beb7ceb31">lcdInitI</a></div><div class="ttdeci">int lcdInitI(const int rows, const int cols, const int bits, const int rs, const int strb)</div><div class="ttdef"><b>Definition:</b> lcd.cpp:339</div></div>
+<div class="ttc" id="lcd_8h_html_a21c60441ee22710add0c9bda1310ed66"><div class="ttname"><a href="lcd_8h.html#a21c60441ee22710add0c9bda1310ed66">lcdPutchar</a></div><div class="ttdeci">void lcdPutchar(const int fd, unsigned char data)</div><div class="ttdef"><b>Definition:</b> lcd.cpp:273</div></div>
+</div><!-- fragment --></div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.10
+</small></address>
+</body>
+</html>

+ 307 - 0
CoffeeCode/html/logger_8cpp.html

@@ -0,0 +1,307 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.10"/>
+<title>CoffeePi: logger.cpp File 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>
+<script type="text/javascript">
+  $(document).ready(function() { init_search(); });
+</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">CoffeePi
+   </div>
+   <div id="projectbrief">Coffee machine control for Raspberry Pi</div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.10 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+  <div id="navrow1" class="tabs">
+    <ul class="tablist">
+      <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+      <li><a href="annotated.html"><span>Data&#160;Structures</span></a></li>
+      <li class="current"><a href="files.html"><span>Files</span></a></li>
+      <li>
+        <div id="MSearchBox" class="MSearchBoxInactive">
+        <span class="left">
+          <img id="MSearchSelect" src="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="search/close.png" alt=""/></a>
+          </span>
+        </div>
+      </li>
+    </ul>
+  </div>
+  <div id="navrow2" class="tabs2">
+    <ul class="tablist">
+      <li><a href="files.html"><span>File&#160;List</span></a></li>
+      <li><a href="globals.html"><span>Globals</span></a></li>
+    </ul>
+  </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="#func-members">Functions</a> &#124;
+<a href="#var-members">Variables</a>  </div>
+  <div class="headertitle">
+<div class="title">logger.cpp File Reference</div>  </div>
+</div><!--header-->
+<div class="contents">
+<div class="textblock"><code>#include &lt;stdio.h&gt;</code><br />
+<code>#include &lt;stdarg.h&gt;</code><br />
+<code>#include &lt;time.h&gt;</code><br />
+<code>#include &quot;<a class="el" href="global_8h_source.html">global.h</a>&quot;</code><br />
+<code>#include &quot;<a class="el" href="logger_8h_source.html">logger.h</a>&quot;</code><br />
+</div><table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
+Functions</h2></td></tr>
+<tr class="memitem:aeb33ace0bb24787befc4a34c561634b4"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="logger_8cpp.html#aeb33ace0bb24787befc4a34c561634b4">logger_print_time</a> (_IO_FILE *stream)</td></tr>
+<tr class="memdesc:aeb33ace0bb24787befc4a34c561634b4"><td class="mdescLeft">&#160;</td><td class="mdescRight">Prints a timestamp.  <a href="#aeb33ace0bb24787befc4a34c561634b4">More...</a><br /></td></tr>
+<tr class="separator:aeb33ace0bb24787befc4a34c561634b4"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ab5a2104bf520b79d590c6ef11cdeeb02"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="logger_8cpp.html#ab5a2104bf520b79d590c6ef11cdeeb02">logger_error</a> (const char *format,...)</td></tr>
+<tr class="memdesc:ab5a2104bf520b79d590c6ef11cdeeb02"><td class="mdescLeft">&#160;</td><td class="mdescRight">Outputs the printf like formatted message to stderr and colorizes it.  <a href="#ab5a2104bf520b79d590c6ef11cdeeb02">More...</a><br /></td></tr>
+<tr class="separator:ab5a2104bf520b79d590c6ef11cdeeb02"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:abd01f221b7a194e67bb39d88822c9772"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="logger_8cpp.html#abd01f221b7a194e67bb39d88822c9772">logger_reset</a> ()</td></tr>
+<tr class="memdesc:abd01f221b7a194e67bb39d88822c9772"><td class="mdescLeft">&#160;</td><td class="mdescRight">Resets the logger to prevent the previous line being overdrawn.  <a href="#abd01f221b7a194e67bb39d88822c9772">More...</a><br /></td></tr>
+<tr class="separator:abd01f221b7a194e67bb39d88822c9772"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a1f2dbdf600d66c1c1bcc820d0282d132"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="logger_8cpp.html#a1f2dbdf600d66c1c1bcc820d0282d132">logger</a> (<a class="el" href="logger_8h.html#a1cfb4eb1363ea2e4d18f9052a7a98131">logger_verbose_t</a> verboselevel, <a class="el" href="logger_8h.html#a60cbc432422370d29ed1b783be884823">logger_type_t</a> logtype, const char *format,...)</td></tr>
+<tr class="memdesc:a1f2dbdf600d66c1c1bcc820d0282d132"><td class="mdescLeft">&#160;</td><td class="mdescRight">prints the message to stdout and formats it  <a href="#a1f2dbdf600d66c1c1bcc820d0282d132">More...</a><br /></td></tr>
+<tr class="separator:a1f2dbdf600d66c1c1bcc820d0282d132"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ad6ed0024f33524ff5e96b473a18b44fd"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="logger_8cpp.html#ad6ed0024f33524ff5e96b473a18b44fd">logger</a> (<a class="el" href="logger_8h.html#a1cfb4eb1363ea2e4d18f9052a7a98131">logger_verbose_t</a> verboselevel, const char *format,...)</td></tr>
+<tr class="memdesc:ad6ed0024f33524ff5e96b473a18b44fd"><td class="mdescLeft">&#160;</td><td class="mdescRight">prints the message to stdout  <a href="#ad6ed0024f33524ff5e96b473a18b44fd">More...</a><br /></td></tr>
+<tr class="separator:ad6ed0024f33524ff5e96b473a18b44fd"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table><table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="var-members"></a>
+Variables</h2></td></tr>
+<tr class="memitem:a05db4cbb4a1c322f0adebb466081c99e"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="logger_8cpp.html#a05db4cbb4a1c322f0adebb466081c99e">lastlog</a> = 0</td></tr>
+<tr class="separator:a05db4cbb4a1c322f0adebb466081c99e"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+<h2 class="groupheader">Function Documentation</h2>
+<a class="anchor" id="a1f2dbdf600d66c1c1bcc820d0282d132"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void logger </td>
+          <td>(</td>
+          <td class="paramtype"><a class="el" href="logger_8h.html#a1cfb4eb1363ea2e4d18f9052a7a98131">logger_verbose_t</a>&#160;</td>
+          <td class="paramname"><em>verboselevel</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype"><a class="el" href="logger_8h.html#a60cbc432422370d29ed1b783be884823">logger_type_t</a>&#160;</td>
+          <td class="paramname"><em>logtype</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">const char *&#160;</td>
+          <td class="paramname"><em>format</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&#160;</td>
+          <td class="paramname"><em>...</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>prints the message to stdout and formats it </p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">verboselevel</td><td>minimum verbose level for output </td></tr>
+    <tr><td class="paramname">logtype</td><td>type of logmessage for coloring </td></tr>
+    <tr><td class="paramname">format</td><td>printf formatted string </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+<a class="anchor" id="ad6ed0024f33524ff5e96b473a18b44fd"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void logger </td>
+          <td>(</td>
+          <td class="paramtype"><a class="el" href="logger_8h.html#a1cfb4eb1363ea2e4d18f9052a7a98131">logger_verbose_t</a>&#160;</td>
+          <td class="paramname"><em>verboselevel</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">const char *&#160;</td>
+          <td class="paramname"><em>format</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&#160;</td>
+          <td class="paramname"><em>...</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>prints the message to stdout </p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">verboselevel</td><td>minimum verbose level for output </td></tr>
+    <tr><td class="paramname">format</td><td>printf formatted string </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+<a class="anchor" id="ab5a2104bf520b79d590c6ef11cdeeb02"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void logger_error </td>
+          <td>(</td>
+          <td class="paramtype">const char *&#160;</td>
+          <td class="paramname"><em>format</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&#160;</td>
+          <td class="paramname"><em>...</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Outputs the printf like formatted message to stderr and colorizes it. </p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">format</td><td>printf formatted string </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+<a class="anchor" id="aeb33ace0bb24787befc4a34c561634b4"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void logger_print_time </td>
+          <td>(</td>
+          <td class="paramtype">_IO_FILE *&#160;</td>
+          <td class="paramname"><em>stream</em></td><td>)</td>
+          <td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Prints a timestamp. </p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">stream</td><td>target stream (stdout, stderr) </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+<a class="anchor" id="abd01f221b7a194e67bb39d88822c9772"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void logger_reset </td>
+          <td>(</td>
+          <td class="paramname"></td><td>)</td>
+          <td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Resets the logger to prevent the previous line being overdrawn. </p>
+<p>Call after custom printf </p>
+
+</div>
+</div>
+<h2 class="groupheader">Variable Documentation</h2>
+<a class="anchor" id="a05db4cbb4a1c322f0adebb466081c99e"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">int lastlog = 0</td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+</div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.10
+</small></address>
+</body>
+</html>

+ 499 - 0
CoffeeCode/html/logger_8h.html

@@ -0,0 +1,499 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.10"/>
+<title>CoffeePi: logger.h File 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>
+<script type="text/javascript">
+  $(document).ready(function() { init_search(); });
+</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">CoffeePi
+   </div>
+   <div id="projectbrief">Coffee machine control for Raspberry Pi</div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.10 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+  <div id="navrow1" class="tabs">
+    <ul class="tablist">
+      <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+      <li><a href="annotated.html"><span>Data&#160;Structures</span></a></li>
+      <li class="current"><a href="files.html"><span>Files</span></a></li>
+      <li>
+        <div id="MSearchBox" class="MSearchBoxInactive">
+        <span class="left">
+          <img id="MSearchSelect" src="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="search/close.png" alt=""/></a>
+          </span>
+        </div>
+      </li>
+    </ul>
+  </div>
+  <div id="navrow2" class="tabs2">
+    <ul class="tablist">
+      <li><a href="files.html"><span>File&#160;List</span></a></li>
+      <li><a href="globals.html"><span>Globals</span></a></li>
+    </ul>
+  </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="#define-members">Macros</a> &#124;
+<a href="#enum-members">Enumerations</a> &#124;
+<a href="#func-members">Functions</a>  </div>
+  <div class="headertitle">
+<div class="title">logger.h File Reference</div>  </div>
+</div><!--header-->
+<div class="contents">
+
+<p><a href="logger_8h_source.html">Go to the source code of this file.</a></p>
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="define-members"></a>
+Macros</h2></td></tr>
+<tr class="memitem:acdbdbd1e0c5422f3d1f7aa3960957e0a"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="logger_8h.html#acdbdbd1e0c5422f3d1f7aa3960957e0a">USE_COLORS</a></td></tr>
+<tr class="separator:acdbdbd1e0c5422f3d1f7aa3960957e0a"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a137aa83ec74421d226a90c92ec032ac9"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="logger_8h.html#a137aa83ec74421d226a90c92ec032ac9">KNRM</a>&#160;&#160;&#160;&quot;\x1B[0m&quot;</td></tr>
+<tr class="separator:a137aa83ec74421d226a90c92ec032ac9"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a66290957baed5df3930ada4cb8caccf1"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="logger_8h.html#a66290957baed5df3930ada4cb8caccf1">KRED</a>&#160;&#160;&#160;&quot;\x1B[31m&quot;</td></tr>
+<tr class="separator:a66290957baed5df3930ada4cb8caccf1"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ac081c83b067273757f7a2e54a5957d41"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="logger_8h.html#ac081c83b067273757f7a2e54a5957d41">KGRN</a>&#160;&#160;&#160;&quot;\x1B[32m&quot;</td></tr>
+<tr class="separator:ac081c83b067273757f7a2e54a5957d41"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a897b10d246533c95ba86cb79f92e465a"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="logger_8h.html#a897b10d246533c95ba86cb79f92e465a">KYEL</a>&#160;&#160;&#160;&quot;\x1B[33m&quot;</td></tr>
+<tr class="separator:a897b10d246533c95ba86cb79f92e465a"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a3f838f2fc3a9a3b434be606fc908964b"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="logger_8h.html#a3f838f2fc3a9a3b434be606fc908964b">KBLU</a>&#160;&#160;&#160;&quot;\x1B[34m&quot;</td></tr>
+<tr class="separator:a3f838f2fc3a9a3b434be606fc908964b"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a6825f05d3b9d619d91d79d0ef18bb8b2"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="logger_8h.html#a6825f05d3b9d619d91d79d0ef18bb8b2">KMAG</a>&#160;&#160;&#160;&quot;\x1B[35m&quot;</td></tr>
+<tr class="separator:a6825f05d3b9d619d91d79d0ef18bb8b2"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a32036c94dbb166a3f874b7efc169841f"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="logger_8h.html#a32036c94dbb166a3f874b7efc169841f">KCYN</a>&#160;&#160;&#160;&quot;\x1B[36m&quot;</td></tr>
+<tr class="separator:a32036c94dbb166a3f874b7efc169841f"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:af0036c8022c9980079ab17e5c87fd478"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="logger_8h.html#af0036c8022c9980079ab17e5c87fd478">KWHT</a>&#160;&#160;&#160;&quot;\x1B[37m&quot;</td></tr>
+<tr class="separator:af0036c8022c9980079ab17e5c87fd478"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ae39a97a19b2e372929dabdc0e3822910"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="logger_8h.html#ae39a97a19b2e372929dabdc0e3822910">CLEARLINE</a>&#160;&#160;&#160;&quot;\x1B[100D\x1B[1A\x1B[K&quot;</td></tr>
+<tr class="separator:ae39a97a19b2e372929dabdc0e3822910"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a815022697da1d2d7744ff178e940078c"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="logger_8h.html#a815022697da1d2d7744ff178e940078c">KBOLD</a>&#160;&#160;&#160;&quot;\x1B[1m&quot;</td></tr>
+<tr class="separator:a815022697da1d2d7744ff178e940078c"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table><table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="enum-members"></a>
+Enumerations</h2></td></tr>
+<tr class="memitem:a60cbc432422370d29ed1b783be884823"><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="logger_8h.html#a60cbc432422370d29ed1b783be884823">logger_type_t</a> { <br />
+&#160;&#160;<a class="el" href="logger_8h.html#a60cbc432422370d29ed1b783be884823a6e98ff471e3ce6c4ef2d75c37ee51837">LOG_INFO</a> = 0, 
+<a class="el" href="logger_8h.html#a60cbc432422370d29ed1b783be884823a854a22c1c382f9b7a93bf8e556191c5f">LOG_CAN</a> = 1, 
+<a class="el" href="logger_8h.html#a60cbc432422370d29ed1b783be884823a746c53b13e16f15d1d885f75efaf58b1">LOG_OK</a> = 2, 
+<a class="el" href="logger_8h.html#a60cbc432422370d29ed1b783be884823ac8041ffa22bc823d4726701cdb13fc13">LOG_WARN</a> = 3, 
+<br />
+&#160;&#160;<a class="el" href="logger_8h.html#a60cbc432422370d29ed1b783be884823a230506cce5c68c3bac5a821c42ed3473">LOG_ERROR</a> = 4, 
+<a class="el" href="logger_8h.html#a60cbc432422370d29ed1b783be884823a1ee7c46e5fb6cad577d81e275a4f8218">LOG_ERRORC</a> = 5
+<br />
+ }<tr class="separator:a60cbc432422370d29ed1b783be884823"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</td></tr>
+<tr class="memitem:a1cfb4eb1363ea2e4d18f9052a7a98131"><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="logger_8h.html#a1cfb4eb1363ea2e4d18f9052a7a98131">logger_verbose_t</a> { <br />
+&#160;&#160;<a class="el" href="logger_8h.html#a1cfb4eb1363ea2e4d18f9052a7a98131afa973d27e66919a26910ccef33a3606a">V_NONE</a> = 0, 
+<a class="el" href="logger_8h.html#a1cfb4eb1363ea2e4d18f9052a7a98131a8470d917f387c308f571d2f370c238a3">V_BASIC</a> = 1, 
+<a class="el" href="logger_8h.html#a1cfb4eb1363ea2e4d18f9052a7a98131ac26291e5906a8e13146ec8dc56a0869a">V_BREW</a> = 2, 
+<a class="el" href="logger_8h.html#a1cfb4eb1363ea2e4d18f9052a7a98131a9a36496e8d624d5ea70b3f86bc2c0bed">V_HAL</a> = 3, 
+<br />
+&#160;&#160;<a class="el" href="logger_8h.html#a1cfb4eb1363ea2e4d18f9052a7a98131acf3ff5c46ec466c2d7438651b46cc17c">V_SQL</a> = 4, 
+<a class="el" href="logger_8h.html#a1cfb4eb1363ea2e4d18f9052a7a98131a6af331195d8ce87720090a3eece459e4">V_STRIPE</a> = 5, 
+<a class="el" href="logger_8h.html#a1cfb4eb1363ea2e4d18f9052a7a98131a86acf22e226ebf319ce306ea1af2d95a">V_SPI</a> = 6
+<br />
+ }<tr class="separator:a1cfb4eb1363ea2e4d18f9052a7a98131"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</td></tr>
+</table><table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
+Functions</h2></td></tr>
+<tr class="memitem:ab5a2104bf520b79d590c6ef11cdeeb02"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="logger_8h.html#ab5a2104bf520b79d590c6ef11cdeeb02">logger_error</a> (const char *format,...)</td></tr>
+<tr class="memdesc:ab5a2104bf520b79d590c6ef11cdeeb02"><td class="mdescLeft">&#160;</td><td class="mdescRight">Outputs the printf like formatted message to stderr and colorizes it.  <a href="#ab5a2104bf520b79d590c6ef11cdeeb02">More...</a><br /></td></tr>
+<tr class="separator:ab5a2104bf520b79d590c6ef11cdeeb02"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:abd01f221b7a194e67bb39d88822c9772"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="logger_8h.html#abd01f221b7a194e67bb39d88822c9772">logger_reset</a> ()</td></tr>
+<tr class="memdesc:abd01f221b7a194e67bb39d88822c9772"><td class="mdescLeft">&#160;</td><td class="mdescRight">Resets the logger to prevent the previous line being overdrawn.  <a href="#abd01f221b7a194e67bb39d88822c9772">More...</a><br /></td></tr>
+<tr class="separator:abd01f221b7a194e67bb39d88822c9772"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a1f2dbdf600d66c1c1bcc820d0282d132"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="logger_8h.html#a1f2dbdf600d66c1c1bcc820d0282d132">logger</a> (<a class="el" href="logger_8h.html#a1cfb4eb1363ea2e4d18f9052a7a98131">logger_verbose_t</a> verboselevel, <a class="el" href="logger_8h.html#a60cbc432422370d29ed1b783be884823">logger_type_t</a> logtype, const char *format,...)</td></tr>
+<tr class="memdesc:a1f2dbdf600d66c1c1bcc820d0282d132"><td class="mdescLeft">&#160;</td><td class="mdescRight">prints the message to stdout and formats it  <a href="#a1f2dbdf600d66c1c1bcc820d0282d132">More...</a><br /></td></tr>
+<tr class="separator:a1f2dbdf600d66c1c1bcc820d0282d132"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ad6ed0024f33524ff5e96b473a18b44fd"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="logger_8h.html#ad6ed0024f33524ff5e96b473a18b44fd">logger</a> (<a class="el" href="logger_8h.html#a1cfb4eb1363ea2e4d18f9052a7a98131">logger_verbose_t</a> verboselevel, const char *format,...)</td></tr>
+<tr class="memdesc:ad6ed0024f33524ff5e96b473a18b44fd"><td class="mdescLeft">&#160;</td><td class="mdescRight">prints the message to stdout  <a href="#ad6ed0024f33524ff5e96b473a18b44fd">More...</a><br /></td></tr>
+<tr class="separator:ad6ed0024f33524ff5e96b473a18b44fd"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+<h2 class="groupheader">Macro Definition Documentation</h2>
+<a class="anchor" id="ae39a97a19b2e372929dabdc0e3822910"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">#define CLEARLINE&#160;&#160;&#160;&quot;\x1B[100D\x1B[1A\x1B[K&quot;</td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="a3f838f2fc3a9a3b434be606fc908964b"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">#define KBLU&#160;&#160;&#160;&quot;\x1B[34m&quot;</td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="a815022697da1d2d7744ff178e940078c"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">#define KBOLD&#160;&#160;&#160;&quot;\x1B[1m&quot;</td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="a32036c94dbb166a3f874b7efc169841f"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">#define KCYN&#160;&#160;&#160;&quot;\x1B[36m&quot;</td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="ac081c83b067273757f7a2e54a5957d41"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">#define KGRN&#160;&#160;&#160;&quot;\x1B[32m&quot;</td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="a6825f05d3b9d619d91d79d0ef18bb8b2"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">#define KMAG&#160;&#160;&#160;&quot;\x1B[35m&quot;</td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="a137aa83ec74421d226a90c92ec032ac9"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">#define KNRM&#160;&#160;&#160;&quot;\x1B[0m&quot;</td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="a66290957baed5df3930ada4cb8caccf1"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">#define KRED&#160;&#160;&#160;&quot;\x1B[31m&quot;</td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="af0036c8022c9980079ab17e5c87fd478"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">#define KWHT&#160;&#160;&#160;&quot;\x1B[37m&quot;</td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="a897b10d246533c95ba86cb79f92e465a"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">#define KYEL&#160;&#160;&#160;&quot;\x1B[33m&quot;</td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="acdbdbd1e0c5422f3d1f7aa3960957e0a"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">#define USE_COLORS</td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<h2 class="groupheader">Enumeration Type Documentation</h2>
+<a class="anchor" id="a60cbc432422370d29ed1b783be884823"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">enum <a class="el" href="logger_8h.html#a60cbc432422370d29ed1b783be884823">logger_type_t</a></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+<table class="fieldtable">
+<tr><th colspan="2">Enumerator</th></tr><tr><td class="fieldname"><a class="anchor" id="a60cbc432422370d29ed1b783be884823a6e98ff471e3ce6c4ef2d75c37ee51837"></a>LOG_INFO&#160;</td><td class="fielddoc">
+</td></tr>
+<tr><td class="fieldname"><a class="anchor" id="a60cbc432422370d29ed1b783be884823a854a22c1c382f9b7a93bf8e556191c5f"></a>LOG_CAN&#160;</td><td class="fielddoc">
+</td></tr>
+<tr><td class="fieldname"><a class="anchor" id="a60cbc432422370d29ed1b783be884823a746c53b13e16f15d1d885f75efaf58b1"></a>LOG_OK&#160;</td><td class="fielddoc">
+</td></tr>
+<tr><td class="fieldname"><a class="anchor" id="a60cbc432422370d29ed1b783be884823ac8041ffa22bc823d4726701cdb13fc13"></a>LOG_WARN&#160;</td><td class="fielddoc">
+</td></tr>
+<tr><td class="fieldname"><a class="anchor" id="a60cbc432422370d29ed1b783be884823a230506cce5c68c3bac5a821c42ed3473"></a>LOG_ERROR&#160;</td><td class="fielddoc">
+</td></tr>
+<tr><td class="fieldname"><a class="anchor" id="a60cbc432422370d29ed1b783be884823a1ee7c46e5fb6cad577d81e275a4f8218"></a>LOG_ERRORC&#160;</td><td class="fielddoc">
+</td></tr>
+</table>
+
+</div>
+</div>
+<a class="anchor" id="a1cfb4eb1363ea2e4d18f9052a7a98131"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">enum <a class="el" href="logger_8h.html#a1cfb4eb1363ea2e4d18f9052a7a98131">logger_verbose_t</a></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+<table class="fieldtable">
+<tr><th colspan="2">Enumerator</th></tr><tr><td class="fieldname"><a class="anchor" id="a1cfb4eb1363ea2e4d18f9052a7a98131afa973d27e66919a26910ccef33a3606a"></a>V_NONE&#160;</td><td class="fielddoc">
+</td></tr>
+<tr><td class="fieldname"><a class="anchor" id="a1cfb4eb1363ea2e4d18f9052a7a98131a8470d917f387c308f571d2f370c238a3"></a>V_BASIC&#160;</td><td class="fielddoc">
+</td></tr>
+<tr><td class="fieldname"><a class="anchor" id="a1cfb4eb1363ea2e4d18f9052a7a98131ac26291e5906a8e13146ec8dc56a0869a"></a>V_BREW&#160;</td><td class="fielddoc">
+</td></tr>
+<tr><td class="fieldname"><a class="anchor" id="a1cfb4eb1363ea2e4d18f9052a7a98131a9a36496e8d624d5ea70b3f86bc2c0bed"></a>V_HAL&#160;</td><td class="fielddoc">
+</td></tr>
+<tr><td class="fieldname"><a class="anchor" id="a1cfb4eb1363ea2e4d18f9052a7a98131acf3ff5c46ec466c2d7438651b46cc17c"></a>V_SQL&#160;</td><td class="fielddoc">
+</td></tr>
+<tr><td class="fieldname"><a class="anchor" id="a1cfb4eb1363ea2e4d18f9052a7a98131a6af331195d8ce87720090a3eece459e4"></a>V_STRIPE&#160;</td><td class="fielddoc">
+</td></tr>
+<tr><td class="fieldname"><a class="anchor" id="a1cfb4eb1363ea2e4d18f9052a7a98131a86acf22e226ebf319ce306ea1af2d95a"></a>V_SPI&#160;</td><td class="fielddoc">
+</td></tr>
+</table>
+
+</div>
+</div>
+<h2 class="groupheader">Function Documentation</h2>
+<a class="anchor" id="a1f2dbdf600d66c1c1bcc820d0282d132"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void logger </td>
+          <td>(</td>
+          <td class="paramtype"><a class="el" href="logger_8h.html#a1cfb4eb1363ea2e4d18f9052a7a98131">logger_verbose_t</a>&#160;</td>
+          <td class="paramname"><em>verboselevel</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype"><a class="el" href="logger_8h.html#a60cbc432422370d29ed1b783be884823">logger_type_t</a>&#160;</td>
+          <td class="paramname"><em>logtype</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">const char *&#160;</td>
+          <td class="paramname"><em>format</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&#160;</td>
+          <td class="paramname"><em>...</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>prints the message to stdout and formats it </p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">verboselevel</td><td>minimum verbose level for output </td></tr>
+    <tr><td class="paramname">logtype</td><td>type of logmessage for coloring </td></tr>
+    <tr><td class="paramname">format</td><td>printf formatted string </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+<a class="anchor" id="ad6ed0024f33524ff5e96b473a18b44fd"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void logger </td>
+          <td>(</td>
+          <td class="paramtype"><a class="el" href="logger_8h.html#a1cfb4eb1363ea2e4d18f9052a7a98131">logger_verbose_t</a>&#160;</td>
+          <td class="paramname"><em>verboselevel</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">const char *&#160;</td>
+          <td class="paramname"><em>format</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&#160;</td>
+          <td class="paramname"><em>...</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>prints the message to stdout </p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">verboselevel</td><td>minimum verbose level for output </td></tr>
+    <tr><td class="paramname">format</td><td>printf formatted string </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+<a class="anchor" id="ab5a2104bf520b79d590c6ef11cdeeb02"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void logger_error </td>
+          <td>(</td>
+          <td class="paramtype">const char *&#160;</td>
+          <td class="paramname"><em>format</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&#160;</td>
+          <td class="paramname"><em>...</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Outputs the printf like formatted message to stderr and colorizes it. </p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">format</td><td>printf formatted string </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+<a class="anchor" id="abd01f221b7a194e67bb39d88822c9772"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void logger_reset </td>
+          <td>(</td>
+          <td class="paramname"></td><td>)</td>
+          <td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Resets the logger to prevent the previous line being overdrawn. </p>
+<p>Call after custom printf </p>
+
+</div>
+</div>
+</div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.10
+</small></address>
+</body>
+</html>

+ 182 - 0
CoffeeCode/html/logger_8h_source.html

@@ -0,0 +1,182 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.10"/>
+<title>CoffeePi: logger.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>
+<script type="text/javascript">
+  $(document).ready(function() { init_search(); });
+</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">CoffeePi
+   </div>
+   <div id="projectbrief">Coffee machine control for Raspberry Pi</div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.10 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+  <div id="navrow1" class="tabs">
+    <ul class="tablist">
+      <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+      <li><a href="annotated.html"><span>Data&#160;Structures</span></a></li>
+      <li class="current"><a href="files.html"><span>Files</span></a></li>
+      <li>
+        <div id="MSearchBox" class="MSearchBoxInactive">
+        <span class="left">
+          <img id="MSearchSelect" src="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="search/close.png" alt=""/></a>
+          </span>
+        </div>
+      </li>
+    </ul>
+  </div>
+  <div id="navrow2" class="tabs2">
+    <ul class="tablist">
+      <li><a href="files.html"><span>File&#160;List</span></a></li>
+      <li><a href="globals.html"><span>Globals</span></a></li>
+    </ul>
+  </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">logger.h</div>  </div>
+</div><!--header-->
+<div class="contents">
+<a href="logger_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno">    1</span>&#160;<span class="comment">/*</span></div>
+<div class="line"><a name="l00002"></a><span class="lineno">    2</span>&#160;<span class="comment"> * logger.h</span></div>
+<div class="line"><a name="l00003"></a><span class="lineno">    3</span>&#160;<span class="comment"> *</span></div>
+<div class="line"><a name="l00004"></a><span class="lineno">    4</span>&#160;<span class="comment"> *  Created on: Feb 3, 2016</span></div>
+<div class="line"><a name="l00005"></a><span class="lineno">    5</span>&#160;<span class="comment"> *      Author: Philipp Hinz</span></div>
+<div class="line"><a name="l00006"></a><span class="lineno">    6</span>&#160;<span class="comment"> */</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;<span class="preprocessor">#ifndef LOGGER_H_</span></div>
+<div class="line"><a name="l00009"></a><span class="lineno">    9</span>&#160;<span class="preprocessor">#define LOGGER_H_</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="comment">// Logtypes for coloring</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"><a class="line" href="logger_8h.html#a60cbc432422370d29ed1b783be884823">   13</a></span>&#160;<span class="keyword">typedef</span> <span class="keyword">enum</span> {</div>
+<div class="line"><a name="l00014"></a><span class="lineno"><a class="line" href="logger_8h.html#a60cbc432422370d29ed1b783be884823a6e98ff471e3ce6c4ef2d75c37ee51837">   14</a></span>&#160;    <a class="code" href="logger_8h.html#a60cbc432422370d29ed1b783be884823a6e98ff471e3ce6c4ef2d75c37ee51837">LOG_INFO</a> = 0,</div>
+<div class="line"><a name="l00015"></a><span class="lineno"><a class="line" href="logger_8h.html#a60cbc432422370d29ed1b783be884823a854a22c1c382f9b7a93bf8e556191c5f">   15</a></span>&#160;    <a class="code" href="logger_8h.html#a60cbc432422370d29ed1b783be884823a854a22c1c382f9b7a93bf8e556191c5f">LOG_CAN</a> = 1,</div>
+<div class="line"><a name="l00016"></a><span class="lineno"><a class="line" href="logger_8h.html#a60cbc432422370d29ed1b783be884823a746c53b13e16f15d1d885f75efaf58b1">   16</a></span>&#160;    <a class="code" href="logger_8h.html#a60cbc432422370d29ed1b783be884823a746c53b13e16f15d1d885f75efaf58b1">LOG_OK</a> = 2,</div>
+<div class="line"><a name="l00017"></a><span class="lineno"><a class="line" href="logger_8h.html#a60cbc432422370d29ed1b783be884823ac8041ffa22bc823d4726701cdb13fc13">   17</a></span>&#160;    <a class="code" href="logger_8h.html#a60cbc432422370d29ed1b783be884823ac8041ffa22bc823d4726701cdb13fc13">LOG_WARN</a> = 3,</div>
+<div class="line"><a name="l00018"></a><span class="lineno"><a class="line" href="logger_8h.html#a60cbc432422370d29ed1b783be884823a230506cce5c68c3bac5a821c42ed3473">   18</a></span>&#160;    <a class="code" href="logger_8h.html#a60cbc432422370d29ed1b783be884823a230506cce5c68c3bac5a821c42ed3473">LOG_ERROR</a> = 4,</div>
+<div class="line"><a name="l00019"></a><span class="lineno"><a class="line" href="logger_8h.html#a60cbc432422370d29ed1b783be884823a1ee7c46e5fb6cad577d81e275a4f8218">   19</a></span>&#160;    <a class="code" href="logger_8h.html#a60cbc432422370d29ed1b783be884823a1ee7c46e5fb6cad577d81e275a4f8218">LOG_ERRORC</a> = 5,</div>
+<div class="line"><a name="l00020"></a><span class="lineno">   20</span>&#160;} <a class="code" href="logger_8h.html#a60cbc432422370d29ed1b783be884823">logger_type_t</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="comment">// verbosity levels</span></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"><a class="line" href="logger_8h.html#a1cfb4eb1363ea2e4d18f9052a7a98131">   24</a></span>&#160;<span class="keyword">typedef</span> <span class="keyword">enum</span> {</div>
+<div class="line"><a name="l00025"></a><span class="lineno"><a class="line" href="logger_8h.html#a1cfb4eb1363ea2e4d18f9052a7a98131afa973d27e66919a26910ccef33a3606a">   25</a></span>&#160;    <a class="code" href="logger_8h.html#a1cfb4eb1363ea2e4d18f9052a7a98131afa973d27e66919a26910ccef33a3606a">V_NONE</a> = 0,</div>
+<div class="line"><a name="l00026"></a><span class="lineno"><a class="line" href="logger_8h.html#a1cfb4eb1363ea2e4d18f9052a7a98131a8470d917f387c308f571d2f370c238a3">   26</a></span>&#160;    <a class="code" href="logger_8h.html#a1cfb4eb1363ea2e4d18f9052a7a98131a8470d917f387c308f571d2f370c238a3">V_BASIC</a> = 1,</div>
+<div class="line"><a name="l00027"></a><span class="lineno"><a class="line" href="logger_8h.html#a1cfb4eb1363ea2e4d18f9052a7a98131ac26291e5906a8e13146ec8dc56a0869a">   27</a></span>&#160;    <a class="code" href="logger_8h.html#a1cfb4eb1363ea2e4d18f9052a7a98131ac26291e5906a8e13146ec8dc56a0869a">V_BREW</a> = 2,</div>
+<div class="line"><a name="l00028"></a><span class="lineno"><a class="line" href="logger_8h.html#a1cfb4eb1363ea2e4d18f9052a7a98131a9a36496e8d624d5ea70b3f86bc2c0bed">   28</a></span>&#160;    <a class="code" href="logger_8h.html#a1cfb4eb1363ea2e4d18f9052a7a98131a9a36496e8d624d5ea70b3f86bc2c0bed">V_HAL</a> = 3,</div>
+<div class="line"><a name="l00029"></a><span class="lineno"><a class="line" href="logger_8h.html#a1cfb4eb1363ea2e4d18f9052a7a98131acf3ff5c46ec466c2d7438651b46cc17c">   29</a></span>&#160;    <a class="code" href="logger_8h.html#a1cfb4eb1363ea2e4d18f9052a7a98131acf3ff5c46ec466c2d7438651b46cc17c">V_SQL</a> = 4,</div>
+<div class="line"><a name="l00030"></a><span class="lineno"><a class="line" href="logger_8h.html#a1cfb4eb1363ea2e4d18f9052a7a98131a6af331195d8ce87720090a3eece459e4">   30</a></span>&#160;    <a class="code" href="logger_8h.html#a1cfb4eb1363ea2e4d18f9052a7a98131a6af331195d8ce87720090a3eece459e4">V_STRIPE</a> = 5,</div>
+<div class="line"><a name="l00031"></a><span class="lineno"><a class="line" href="logger_8h.html#a1cfb4eb1363ea2e4d18f9052a7a98131a86acf22e226ebf319ce306ea1af2d95a">   31</a></span>&#160;    <a class="code" href="logger_8h.html#a1cfb4eb1363ea2e4d18f9052a7a98131a86acf22e226ebf319ce306ea1af2d95a">V_SPI</a> = 6,</div>
+<div class="line"><a name="l00032"></a><span class="lineno">   32</span>&#160;} <a class="code" href="logger_8h.html#a1cfb4eb1363ea2e4d18f9052a7a98131">logger_verbose_t</a>;</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="comment">// Colors \o/</span></div>
+<div class="line"><a name="l00036"></a><span class="lineno"><a class="line" href="logger_8h.html#acdbdbd1e0c5422f3d1f7aa3960957e0a">   36</a></span>&#160;<span class="preprocessor">#define USE_COLORS</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">// List of escape sequences http://ascii-table.com/ansi-escape-sequences.php</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="preprocessor">#ifdef USE_COLORS</span></div>
+<div class="line"><a name="l00041"></a><span class="lineno"><a class="line" href="logger_8h.html#a137aa83ec74421d226a90c92ec032ac9">   41</a></span>&#160;<span class="preprocessor">#define KNRM  &quot;\x1B[0m&quot;</span></div>
+<div class="line"><a name="l00042"></a><span class="lineno"><a class="line" href="logger_8h.html#a66290957baed5df3930ada4cb8caccf1">   42</a></span>&#160;<span class="preprocessor">#define KRED  &quot;\x1B[31m&quot;</span></div>
+<div class="line"><a name="l00043"></a><span class="lineno"><a class="line" href="logger_8h.html#ac081c83b067273757f7a2e54a5957d41">   43</a></span>&#160;<span class="preprocessor">#define KGRN  &quot;\x1B[32m&quot;</span></div>
+<div class="line"><a name="l00044"></a><span class="lineno"><a class="line" href="logger_8h.html#a897b10d246533c95ba86cb79f92e465a">   44</a></span>&#160;<span class="preprocessor">#define KYEL  &quot;\x1B[33m&quot;</span></div>
+<div class="line"><a name="l00045"></a><span class="lineno"><a class="line" href="logger_8h.html#a3f838f2fc3a9a3b434be606fc908964b">   45</a></span>&#160;<span class="preprocessor">#define KBLU  &quot;\x1B[34m&quot;</span></div>
+<div class="line"><a name="l00046"></a><span class="lineno"><a class="line" href="logger_8h.html#a6825f05d3b9d619d91d79d0ef18bb8b2">   46</a></span>&#160;<span class="preprocessor">#define KMAG  &quot;\x1B[35m&quot;</span></div>
+<div class="line"><a name="l00047"></a><span class="lineno"><a class="line" href="logger_8h.html#a32036c94dbb166a3f874b7efc169841f">   47</a></span>&#160;<span class="preprocessor">#define KCYN  &quot;\x1B[36m&quot;</span></div>
+<div class="line"><a name="l00048"></a><span class="lineno"><a class="line" href="logger_8h.html#af0036c8022c9980079ab17e5c87fd478">   48</a></span>&#160;<span class="preprocessor">#define KWHT  &quot;\x1B[37m&quot;</span></div>
+<div class="line"><a name="l00049"></a><span class="lineno">   49</span>&#160;<span class="preprocessor">#else</span></div>
+<div class="line"><a name="l00050"></a><span class="lineno">   50</span>&#160;<span class="preprocessor">#define KNRM</span></div>
+<div class="line"><a name="l00051"></a><span class="lineno">   51</span>&#160;<span class="preprocessor">#define KRED</span></div>
+<div class="line"><a name="l00052"></a><span class="lineno">   52</span>&#160;<span class="preprocessor">#define KGRN</span></div>
+<div class="line"><a name="l00053"></a><span class="lineno">   53</span>&#160;<span class="preprocessor">#define KYEL</span></div>
+<div class="line"><a name="l00054"></a><span class="lineno">   54</span>&#160;<span class="preprocessor">#define KBLU</span></div>
+<div class="line"><a name="l00055"></a><span class="lineno">   55</span>&#160;<span class="preprocessor">#define KMAG</span></div>
+<div class="line"><a name="l00056"></a><span class="lineno">   56</span>&#160;<span class="preprocessor">#define KCYN</span></div>
+<div class="line"><a name="l00057"></a><span class="lineno">   57</span>&#160;<span class="preprocessor">#define KWHT</span></div>
+<div class="line"><a name="l00058"></a><span class="lineno">   58</span>&#160;<span class="preprocessor">#endif</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"><a class="line" href="logger_8h.html#ae39a97a19b2e372929dabdc0e3822910">   60</a></span>&#160;<span class="preprocessor">#define CLEARLINE &quot;\x1B[100D\x1B[1A\x1B[K&quot;</span></div>
+<div class="line"><a name="l00061"></a><span class="lineno"><a class="line" href="logger_8h.html#a815022697da1d2d7744ff178e940078c">   61</a></span>&#160;<span class="preprocessor">#define KBOLD  &quot;\x1B[1m&quot;</span></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">void</span> <a class="code" href="logger_8h.html#ab5a2104bf520b79d590c6ef11cdeeb02">logger_error</a>( <span class="keyword">const</span> <span class="keywordtype">char</span>* format, ... );</div>
+<div class="line"><a name="l00064"></a><span class="lineno">   64</span>&#160;<span class="keywordtype">void</span> <a class="code" href="logger_8h.html#abd01f221b7a194e67bb39d88822c9772">logger_reset</a>();</div>
+<div class="line"><a name="l00065"></a><span class="lineno">   65</span>&#160;<span class="keywordtype">void</span> <a class="code" href="logger_8h.html#a1f2dbdf600d66c1c1bcc820d0282d132">logger</a>(<a class="code" href="logger_8h.html#a1cfb4eb1363ea2e4d18f9052a7a98131">logger_verbose_t</a> verboselevel, <a class="code" href="logger_8h.html#a60cbc432422370d29ed1b783be884823">logger_type_t</a> logtype, <span class="keyword">const</span> <span class="keywordtype">char</span>* format, ... );</div>
+<div class="line"><a name="l00066"></a><span class="lineno">   66</span>&#160;<span class="keywordtype">void</span> <a class="code" href="logger_8h.html#a1f2dbdf600d66c1c1bcc820d0282d132">logger</a>(<a class="code" href="logger_8h.html#a1cfb4eb1363ea2e4d18f9052a7a98131">logger_verbose_t</a> verboselevel, <span class="keyword">const</span> <span class="keywordtype">char</span>* format, ... );</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="preprocessor">#endif </span><span class="comment">/* LOGGER_H_ */</span><span class="preprocessor"></span></div>
+<div class="ttc" id="logger_8h_html_a1cfb4eb1363ea2e4d18f9052a7a98131afa973d27e66919a26910ccef33a3606a"><div class="ttname"><a href="logger_8h.html#a1cfb4eb1363ea2e4d18f9052a7a98131afa973d27e66919a26910ccef33a3606a">V_NONE</a></div><div class="ttdef"><b>Definition:</b> logger.h:25</div></div>
+<div class="ttc" id="logger_8h_html_a1cfb4eb1363ea2e4d18f9052a7a98131a6af331195d8ce87720090a3eece459e4"><div class="ttname"><a href="logger_8h.html#a1cfb4eb1363ea2e4d18f9052a7a98131a6af331195d8ce87720090a3eece459e4">V_STRIPE</a></div><div class="ttdef"><b>Definition:</b> logger.h:30</div></div>
+<div class="ttc" id="logger_8h_html_a60cbc432422370d29ed1b783be884823a1ee7c46e5fb6cad577d81e275a4f8218"><div class="ttname"><a href="logger_8h.html#a60cbc432422370d29ed1b783be884823a1ee7c46e5fb6cad577d81e275a4f8218">LOG_ERRORC</a></div><div class="ttdef"><b>Definition:</b> logger.h:19</div></div>
+<div class="ttc" id="logger_8h_html_a60cbc432422370d29ed1b783be884823a746c53b13e16f15d1d885f75efaf58b1"><div class="ttname"><a href="logger_8h.html#a60cbc432422370d29ed1b783be884823a746c53b13e16f15d1d885f75efaf58b1">LOG_OK</a></div><div class="ttdef"><b>Definition:</b> logger.h:16</div></div>
+<div class="ttc" id="logger_8h_html_a60cbc432422370d29ed1b783be884823"><div class="ttname"><a href="logger_8h.html#a60cbc432422370d29ed1b783be884823">logger_type_t</a></div><div class="ttdeci">logger_type_t</div><div class="ttdef"><b>Definition:</b> logger.h:13</div></div>
+<div class="ttc" id="logger_8h_html_a1cfb4eb1363ea2e4d18f9052a7a98131a8470d917f387c308f571d2f370c238a3"><div class="ttname"><a href="logger_8h.html#a1cfb4eb1363ea2e4d18f9052a7a98131a8470d917f387c308f571d2f370c238a3">V_BASIC</a></div><div class="ttdef"><b>Definition:</b> logger.h:26</div></div>
+<div class="ttc" id="logger_8h_html_a60cbc432422370d29ed1b783be884823a854a22c1c382f9b7a93bf8e556191c5f"><div class="ttname"><a href="logger_8h.html#a60cbc432422370d29ed1b783be884823a854a22c1c382f9b7a93bf8e556191c5f">LOG_CAN</a></div><div class="ttdef"><b>Definition:</b> logger.h:15</div></div>
+<div class="ttc" id="logger_8h_html_a1cfb4eb1363ea2e4d18f9052a7a98131acf3ff5c46ec466c2d7438651b46cc17c"><div class="ttname"><a href="logger_8h.html#a1cfb4eb1363ea2e4d18f9052a7a98131acf3ff5c46ec466c2d7438651b46cc17c">V_SQL</a></div><div class="ttdef"><b>Definition:</b> logger.h:29</div></div>
+<div class="ttc" id="logger_8h_html_a1cfb4eb1363ea2e4d18f9052a7a98131ac26291e5906a8e13146ec8dc56a0869a"><div class="ttname"><a href="logger_8h.html#a1cfb4eb1363ea2e4d18f9052a7a98131ac26291e5906a8e13146ec8dc56a0869a">V_BREW</a></div><div class="ttdef"><b>Definition:</b> logger.h:27</div></div>
+<div class="ttc" id="logger_8h_html_a1cfb4eb1363ea2e4d18f9052a7a98131"><div class="ttname"><a href="logger_8h.html#a1cfb4eb1363ea2e4d18f9052a7a98131">logger_verbose_t</a></div><div class="ttdeci">logger_verbose_t</div><div class="ttdef"><b>Definition:</b> logger.h:24</div></div>
+<div class="ttc" id="logger_8h_html_a1f2dbdf600d66c1c1bcc820d0282d132"><div class="ttname"><a href="logger_8h.html#a1f2dbdf600d66c1c1bcc820d0282d132">logger</a></div><div class="ttdeci">void logger(logger_verbose_t verboselevel, logger_type_t logtype, const char *format,...)</div><div class="ttdoc">prints the message to stdout and formats it </div><div class="ttdef"><b>Definition:</b> logger.cpp:69</div></div>
+<div class="ttc" id="logger_8h_html_a1cfb4eb1363ea2e4d18f9052a7a98131a86acf22e226ebf319ce306ea1af2d95a"><div class="ttname"><a href="logger_8h.html#a1cfb4eb1363ea2e4d18f9052a7a98131a86acf22e226ebf319ce306ea1af2d95a">V_SPI</a></div><div class="ttdef"><b>Definition:</b> logger.h:31</div></div>
+<div class="ttc" id="logger_8h_html_ab5a2104bf520b79d590c6ef11cdeeb02"><div class="ttname"><a href="logger_8h.html#ab5a2104bf520b79d590c6ef11cdeeb02">logger_error</a></div><div class="ttdeci">void logger_error(const char *format,...)</div><div class="ttdoc">Outputs the printf like formatted message to stderr and colorizes it. </div><div class="ttdef"><b>Definition:</b> logger.cpp:38</div></div>
+<div class="ttc" id="logger_8h_html_a60cbc432422370d29ed1b783be884823a6e98ff471e3ce6c4ef2d75c37ee51837"><div class="ttname"><a href="logger_8h.html#a60cbc432422370d29ed1b783be884823a6e98ff471e3ce6c4ef2d75c37ee51837">LOG_INFO</a></div><div class="ttdef"><b>Definition:</b> logger.h:14</div></div>
+<div class="ttc" id="logger_8h_html_a60cbc432422370d29ed1b783be884823ac8041ffa22bc823d4726701cdb13fc13"><div class="ttname"><a href="logger_8h.html#a60cbc432422370d29ed1b783be884823ac8041ffa22bc823d4726701cdb13fc13">LOG_WARN</a></div><div class="ttdef"><b>Definition:</b> logger.h:17</div></div>
+<div class="ttc" id="logger_8h_html_abd01f221b7a194e67bb39d88822c9772"><div class="ttname"><a href="logger_8h.html#abd01f221b7a194e67bb39d88822c9772">logger_reset</a></div><div class="ttdeci">void logger_reset()</div><div class="ttdoc">Resets the logger to prevent the previous line being overdrawn. </div><div class="ttdef"><b>Definition:</b> logger.cpp:58</div></div>
+<div class="ttc" id="logger_8h_html_a60cbc432422370d29ed1b783be884823a230506cce5c68c3bac5a821c42ed3473"><div class="ttname"><a href="logger_8h.html#a60cbc432422370d29ed1b783be884823a230506cce5c68c3bac5a821c42ed3473">LOG_ERROR</a></div><div class="ttdef"><b>Definition:</b> logger.h:18</div></div>
+<div class="ttc" id="logger_8h_html_a1cfb4eb1363ea2e4d18f9052a7a98131a9a36496e8d624d5ea70b3f86bc2c0bed"><div class="ttname"><a href="logger_8h.html#a1cfb4eb1363ea2e4d18f9052a7a98131a9a36496e8d624d5ea70b3f86bc2c0bed">V_HAL</a></div><div class="ttdef"><b>Definition:</b> logger.h:28</div></div>
+</div><!-- fragment --></div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.10
+</small></address>
+</body>
+</html>

+ 423 - 0
CoffeeCode/html/main_8cpp.html

@@ -0,0 +1,423 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.10"/>
+<title>CoffeePi: main.cpp File 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>
+<script type="text/javascript">
+  $(document).ready(function() { init_search(); });
+</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">CoffeePi
+   </div>
+   <div id="projectbrief">Coffee machine control for Raspberry Pi</div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.10 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+  <div id="navrow1" class="tabs">
+    <ul class="tablist">
+      <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+      <li><a href="annotated.html"><span>Data&#160;Structures</span></a></li>
+      <li class="current"><a href="files.html"><span>Files</span></a></li>
+      <li>
+        <div id="MSearchBox" class="MSearchBoxInactive">
+        <span class="left">
+          <img id="MSearchSelect" src="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="search/close.png" alt=""/></a>
+          </span>
+        </div>
+      </li>
+    </ul>
+  </div>
+  <div id="navrow2" class="tabs2">
+    <ul class="tablist">
+      <li><a href="files.html"><span>File&#160;List</span></a></li>
+      <li><a href="globals.html"><span>Globals</span></a></li>
+    </ul>
+  </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="#func-members">Functions</a> &#124;
+<a href="#var-members">Variables</a>  </div>
+  <div class="headertitle">
+<div class="title">main.cpp File Reference</div>  </div>
+</div><!--header-->
+<div class="contents">
+<div class="textblock"><code>#include &lt;stdio.h&gt;</code><br />
+<code>#include &lt;stdlib.h&gt;</code><br />
+<code>#include &lt;string.h&gt;</code><br />
+<code>#include &lt;errno.h&gt;</code><br />
+<code>#include &lt;stdint.h&gt;</code><br />
+<code>#include &lt;wiringPi.h&gt;</code><br />
+<code>#include &lt;pthread.h&gt;</code><br />
+<code>#include &lt;unistd.h&gt;</code><br />
+<code>#include &lt;iostream&gt;</code><br />
+<code>#include &lt;csignal&gt;</code><br />
+<code>#include &lt;time.h&gt;</code><br />
+<code>#include &quot;<a class="el" href="global_8h_source.html">global.h</a>&quot;</code><br />
+<code>#include &quot;<a class="el" href="timer_8h_source.html">timer.h</a>&quot;</code><br />
+<code>#include &quot;<a class="el" href="database_8h_source.html">database.h</a>&quot;</code><br />
+<code>#include &quot;<a class="el" href="logger_8h_source.html">logger.h</a>&quot;</code><br />
+<code>#include &quot;<a class="el" href="lcd_8h_source.html">lcd.h</a>&quot;</code><br />
+<code>#include &quot;<a class="el" href="hal_8h_source.html">hal.h</a>&quot;</code><br />
+<code>#include &quot;<a class="el" href="stripe_8h_source.html">stripe.h</a>&quot;</code><br />
+<code>#include &quot;coffee.h&quot;</code><br />
+<code>#include &quot;buildno&quot;</code><br />
+</div><table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
+Functions</h2></td></tr>
+<tr class="memitem:a9a66b873229b4d46cb9f39dddfc1bddb"><td class="memItemLeft" align="right" valign="top">void *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="main_8cpp.html#a9a66b873229b4d46cb9f39dddfc1bddb">mainLoop</a> (void *threadid)</td></tr>
+<tr class="memdesc:a9a66b873229b4d46cb9f39dddfc1bddb"><td class="mdescLeft">&#160;</td><td class="mdescRight">Main Thread, used for some initializations and error detection.  <a href="#a9a66b873229b4d46cb9f39dddfc1bddb">More...</a><br /></td></tr>
+<tr class="separator:a9a66b873229b4d46cb9f39dddfc1bddb"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:acd303e48c6d5b8d8bbf55db887f1e7e8"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="main_8cpp.html#acd303e48c6d5b8d8bbf55db887f1e7e8">terminationHandler</a> (int signum)</td></tr>
+<tr class="memdesc:acd303e48c6d5b8d8bbf55db887f1e7e8"><td class="mdescLeft">&#160;</td><td class="mdescRight">Handler for program termination caught via signal.  <a href="#acd303e48c6d5b8d8bbf55db887f1e7e8">More...</a><br /></td></tr>
+<tr class="separator:acd303e48c6d5b8d8bbf55db887f1e7e8"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a6b9ec8ce27cbec14222dfd2db55e8bad"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="main_8cpp.html#a6b9ec8ce27cbec14222dfd2db55e8bad">usr1Handler</a> (int signum)</td></tr>
+<tr class="memdesc:a6b9ec8ce27cbec14222dfd2db55e8bad"><td class="mdescLeft">&#160;</td><td class="mdescRight">Handles the signal USR2.  <a href="#a6b9ec8ce27cbec14222dfd2db55e8bad">More...</a><br /></td></tr>
+<tr class="separator:a6b9ec8ce27cbec14222dfd2db55e8bad"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:aa5f8eab61a77d6d566215bcf12144422"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="main_8cpp.html#aa5f8eab61a77d6d566215bcf12144422">hupHandler</a> (int signum)</td></tr>
+<tr class="memdesc:aa5f8eab61a77d6d566215bcf12144422"><td class="mdescLeft">&#160;</td><td class="mdescRight">Handles the signal HUP and starts a speed test.  <a href="#aa5f8eab61a77d6d566215bcf12144422">More...</a><br /></td></tr>
+<tr class="separator:aa5f8eab61a77d6d566215bcf12144422"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a069c1b36dcf7099c23ee7382fd95573b"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="main_8cpp.html#a069c1b36dcf7099c23ee7382fd95573b">timeHandler</a> (void)</td></tr>
+<tr class="memdesc:a069c1b36dcf7099c23ee7382fd95573b"><td class="mdescLeft">&#160;</td><td class="mdescRight">Temporary timer for displaying the current time.  <a href="#a069c1b36dcf7099c23ee7382fd95573b">More...</a><br /></td></tr>
+<tr class="separator:a069c1b36dcf7099c23ee7382fd95573b"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a0ddf1224851353fc92bfbff6f499fa97"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="main_8cpp.html#a0ddf1224851353fc92bfbff6f499fa97">main</a> (int argc, char *argv[])</td></tr>
+<tr class="separator:a0ddf1224851353fc92bfbff6f499fa97"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ab6e46b0071bb3330546b7f2b601d0a6c"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="main_8cpp.html#ab6e46b0071bb3330546b7f2b601d0a6c">killThread</a> (int threadid, int sig)</td></tr>
+<tr class="memdesc:ab6e46b0071bb3330546b7f2b601d0a6c"><td class="mdescLeft">&#160;</td><td class="mdescRight">Sends a signal to a thread.  <a href="#ab6e46b0071bb3330546b7f2b601d0a6c">More...</a><br /></td></tr>
+<tr class="separator:ab6e46b0071bb3330546b7f2b601d0a6c"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table><table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="var-members"></a>
+Variables</h2></td></tr>
+<tr class="memitem:ac70430026dcf56f46e5426e1d01d7e89"><td class="memItemLeft" align="right" valign="top">const int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="main_8cpp.html#ac70430026dcf56f46e5426e1d01d7e89">buildno</a></td></tr>
+<tr class="separator:ac70430026dcf56f46e5426e1d01d7e89"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a9d1129916cfa4cbd7489638ce470c3a4"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="main_8cpp.html#a9d1129916cfa4cbd7489638ce470c3a4">lcd</a> = 0</td></tr>
+<tr class="separator:a9d1129916cfa4cbd7489638ce470c3a4"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a0b2caeb4b6f130be43e5a2f0267dd453"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="main_8cpp.html#a0b2caeb4b6f130be43e5a2f0267dd453">verbose</a> = 0</td></tr>
+<tr class="separator:a0b2caeb4b6f130be43e5a2f0267dd453"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ae88c926fe2a10f736eb01b1d1e899a1c"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="main_8cpp.html#ae88c926fe2a10f736eb01b1d1e899a1c">optDate</a> = false</td></tr>
+<tr class="separator:ae88c926fe2a10f736eb01b1d1e899a1c"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a7bfeade3d2f19e8baecdcddd7f9162fa"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="main_8cpp.html#a7bfeade3d2f19e8baecdcddd7f9162fa">optPower</a> = false</td></tr>
+<tr class="separator:a7bfeade3d2f19e8baecdcddd7f9162fa"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a00359617f7973ce34d269f7dfd41c11b"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classtimer.html">timer</a> timeTimer &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="main_8cpp.html#a00359617f7973ce34d269f7dfd41c11b">timeHandler</a></td></tr>
+<tr class="memdesc:a00359617f7973ce34d269f7dfd41c11b"><td class="mdescLeft">&#160;</td><td class="mdescRight">Temporary timer for displaying the current time.  <a href="#a00359617f7973ce34d269f7dfd41c11b">More...</a><br /></td></tr>
+<tr class="separator:a00359617f7973ce34d269f7dfd41c11b"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ad1c21fd320f05c652f120ad167628c14"><td class="memItemLeft" align="right" valign="top">pthread_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="main_8cpp.html#ad1c21fd320f05c652f120ad167628c14">thread</a> [4]</td></tr>
+<tr class="separator:ad1c21fd320f05c652f120ad167628c14"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a4acff8232e4aec9cd5c6dc200ac55ef3"><td class="memItemLeft" align="right" valign="top">pthread_mutex_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="main_8cpp.html#a4acff8232e4aec9cd5c6dc200ac55ef3">mutex</a></td></tr>
+<tr class="separator:a4acff8232e4aec9cd5c6dc200ac55ef3"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+<h2 class="groupheader">Function Documentation</h2>
+<a class="anchor" id="aa5f8eab61a77d6d566215bcf12144422"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void hupHandler </td>
+          <td>(</td>
+          <td class="paramtype">int&#160;</td>
+          <td class="paramname"><em>signum</em></td><td>)</td>
+          <td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Handles the signal HUP and starts a speed test. </p>
+
+</div>
+</div>
+<a class="anchor" id="ab6e46b0071bb3330546b7f2b601d0a6c"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void killThread </td>
+          <td>(</td>
+          <td class="paramtype">int&#160;</td>
+          <td class="paramname"><em>threadid</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">int&#160;</td>
+          <td class="paramname"><em>sig</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Sends a signal to a thread. </p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">threadid</td><td>ID of the thread </td></tr>
+    <tr><td class="paramname">sig</td><td>Signal to send </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+<a class="anchor" id="a0ddf1224851353fc92bfbff6f499fa97"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">int main </td>
+          <td>(</td>
+          <td class="paramtype">int&#160;</td>
+          <td class="paramname"><em>argc</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">char *&#160;</td>
+          <td class="paramname"><em>argv</em>[]&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="a9a66b873229b4d46cb9f39dddfc1bddb"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void * mainLoop </td>
+          <td>(</td>
+          <td class="paramtype">void *&#160;</td>
+          <td class="paramname"><em>threadid</em></td><td>)</td>
+          <td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Main Thread, used for some initializations and error detection. </p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">threadid</td><td>Thread ID </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+<a class="anchor" id="acd303e48c6d5b8d8bbf55db887f1e7e8"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void terminationHandler </td>
+          <td>(</td>
+          <td class="paramtype">int&#160;</td>
+          <td class="paramname"><em>signum</em></td><td>)</td>
+          <td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Handler for program termination caught via signal. </p>
+
+</div>
+</div>
+<a class="anchor" id="a069c1b36dcf7099c23ee7382fd95573b"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void timeHandler </td>
+          <td>(</td>
+          <td class="paramtype">void&#160;</td>
+          <td class="paramname"></td><td>)</td>
+          <td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Temporary timer for displaying the current time. </p>
+
+</div>
+</div>
+<a class="anchor" id="a6b9ec8ce27cbec14222dfd2db55e8bad"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void usr1Handler </td>
+          <td>(</td>
+          <td class="paramtype">int&#160;</td>
+          <td class="paramname"><em>signum</em></td><td>)</td>
+          <td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Handles the signal USR2. </p>
+
+</div>
+</div>
+<h2 class="groupheader">Variable Documentation</h2>
+<a class="anchor" id="ac70430026dcf56f46e5426e1d01d7e89"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">const int buildno</td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+<b>Initial value:</b><div class="fragment"><div class="line">= (1+(int)(</div>
+<div class="line"># 29 <span class="stringliteral">&quot;/home/sebastian/CoffeePi/CoffeeCode/main.cpp&quot;</span> 2</div>
+<div class="line">        ))</div>
+</div><!-- fragment -->
+</div>
+</div>
+<a class="anchor" id="a9d1129916cfa4cbd7489638ce470c3a4"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">int lcd = 0</td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="a4acff8232e4aec9cd5c6dc200ac55ef3"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">pthread_mutex_t mutex</td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="ae88c926fe2a10f736eb01b1d1e899a1c"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">bool optDate = false</td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="a7bfeade3d2f19e8baecdcddd7f9162fa"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">bool optPower = false</td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="ad1c21fd320f05c652f120ad167628c14"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">pthread_t thread[4]</td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="a00359617f7973ce34d269f7dfd41c11b"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void timeHandler</td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Temporary timer for displaying the current time. </p>
+
+</div>
+</div>
+<a class="anchor" id="a0b2caeb4b6f130be43e5a2f0267dd453"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">int verbose = 0</td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+</div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.10
+</small></address>
+</body>
+</html>

BIN
CoffeeCode/html/nav_f.png


BIN
CoffeeCode/html/nav_g.png


BIN
CoffeeCode/html/nav_h.png


BIN
CoffeeCode/html/open.png


+ 26 - 0
CoffeeCode/html/search/all_0.html

@@ -0,0 +1,26 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://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.10"/>
+<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"><!--
+createResults();
+--></script>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript"><!--
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+--></script>
+</div>
+</body>
+</html>

+ 4 - 0
CoffeeCode/html/search/all_0.js

@@ -0,0 +1,4 @@
+var searchData=
+[
+  ['alivecrc',['AliveCRC',['../database_8h.html#ae1822373f950fb4881633b7ec843f4dfababedca157bd5e1f8c299e61c197f62f',1,'database.h']]]
+];

+ 26 - 0
CoffeeCode/html/search/all_1.html

@@ -0,0 +1,26 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://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.10"/>
+<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"><!--
+createResults();
+--></script>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript"><!--
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+--></script>
+</div>
+</body>
+</html>

+ 5 - 0
CoffeeCode/html/search/all_1.js

@@ -0,0 +1,5 @@
+var searchData=
+[
+  ['blue',['blue',['../structstripe__color.html#a2de85b974fc4ec0bcea12d6a270e53a9',1,'stripe_color']]],
+  ['buildno',['buildno',['../main_8cpp.html#ac70430026dcf56f46e5426e1d01d7e89',1,'main.cpp']]]
+];

+ 26 - 0
CoffeeCode/html/search/all_10.html

@@ -0,0 +1,26 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://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.10"/>
+<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"><!--
+createResults();
+--></script>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript"><!--
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+--></script>
+</div>
+</body>
+</html>

+ 76 - 0
CoffeeCode/html/search/all_10.js

@@ -0,0 +1,76 @@
+var searchData=
+[
+  ['setdivider',['setDivider',['../classtimer.html#a0a4b48605728320ce7a5a825e34e16f2',1,'timer']]],
+  ['shift_5fdata',['shift_data',['../spi_8cpp.html#aec7140cda479ce5f88361739e86ccecd',1,'shift_data(uint8_t data):&#160;spi.cpp'],['../spi_8h.html#aec7140cda479ce5f88361739e86ccecd',1,'shift_data(uint8_t data):&#160;spi.cpp']]],
+  ['shift_5fg',['SHIFT_G',['../spi_8h.html#aa846752b3dc2a7a280e1c97191c1e378',1,'spi.h']]],
+  ['shift_5finit',['shift_init',['../spi_8cpp.html#ac7600504b8cf1ac90ce331a5ed23c3db',1,'shift_init(void):&#160;spi.cpp'],['../spi_8h.html#ac7600504b8cf1ac90ce331a5ed23c3db',1,'shift_init(void):&#160;spi.cpp']]],
+  ['shift_5frck',['SHIFT_RCK',['../spi_8h.html#aed6e9b64896ee902a2f02b1e49e65a11',1,'spi.h']]],
+  ['shift_5fsclr',['SHIFT_SCLR',['../spi_8h.html#aa9f52b418d31ac71ce93f2d7846ded90',1,'spi.h']]],
+  ['sig',['SIG',['../timer_8h.html#ad6f1d374549d22100d676d5fcac0a7e5',1,'timer.h']]],
+  ['sigbrewoff',['SigBrewOff',['../hal_8h.html#aa51a8c9f6b926aa9e9c5dd38249d3f68a6d3fe49429343ea09a007c2236db9382',1,'hal.h']]],
+  ['sigbrewon',['SigBrewOn',['../hal_8h.html#aa51a8c9f6b926aa9e9c5dd38249d3f68a4f8316fcd4daf8fdee99ad3414c00857',1,'hal.h']]],
+  ['sigint0psh',['SigInt0Psh',['../hal_8h.html#aa51a8c9f6b926aa9e9c5dd38249d3f68a4f6585385aaee8e6a336fb31e8713751',1,'hal.h']]],
+  ['sigint0rls',['SigInt0Rls',['../hal_8h.html#aa51a8c9f6b926aa9e9c5dd38249d3f68ae70d75d9c016f72d315ce0f375425ae3',1,'hal.h']]],
+  ['sigint1psh',['SigInt1Psh',['../hal_8h.html#aa51a8c9f6b926aa9e9c5dd38249d3f68a5fd8970919f375d9f3baaaa053865ce2',1,'hal.h']]],
+  ['sigint1rls',['SigInt1Rls',['../hal_8h.html#aa51a8c9f6b926aa9e9c5dd38249d3f68aa85940fc659570c5b7ec2d8e0ed3eeae',1,'hal.h']]],
+  ['sigpresscls',['SigPressCls',['../hal_8h.html#aa51a8c9f6b926aa9e9c5dd38249d3f68abdd48e173224114754f253d764540ec9',1,'hal.h']]],
+  ['sigpressopn',['SigPressOpn',['../hal_8h.html#aa51a8c9f6b926aa9e9c5dd38249d3f68a683f7a77d5c63e835b2a72ab1c540fe4',1,'hal.h']]],
+  ['sigproxcvrd',['SigProxCvrd',['../hal_8h.html#aa51a8c9f6b926aa9e9c5dd38249d3f68ac53b2d92b9e3b1652f173e29db5b523d',1,'hal.h']]],
+  ['sigproxopn',['SigProxOpn',['../hal_8h.html#aa51a8c9f6b926aa9e9c5dd38249d3f68a7f18f13ecf372adaf681e706ad051fd3',1,'hal.h']]],
+  ['spi_2ecpp',['spi.cpp',['../spi_8cpp.html',1,'']]],
+  ['spi_2eh',['spi.h',['../spi_8h.html',1,'']]],
+  ['spi_5fchannel',['SPI_CHANNEL',['../global_8h.html#aa8cbb3355883e35c18820bfa63c4ce3a',1,'global.h']]],
+  ['spi_5finit',['spi_init',['../spi_8cpp.html#ae909944aa85ae98323073c628be541aa',1,'spi_init(void):&#160;spi.cpp'],['../spi_8h.html#ae909944aa85ae98323073c628be541aa',1,'spi_init(void):&#160;spi.cpp']]],
+  ['spi_5freadwrite',['spi_readwrite',['../spi_8cpp.html#a7402e4a56146a9e3df480b206a3f7e7e',1,'spi_readwrite(uint8_t data):&#160;spi.cpp'],['../spi_8h.html#a7402e4a56146a9e3df480b206a3f7e7e',1,'spi_readwrite(uint8_t data):&#160;spi.cpp']]],
+  ['spi_5fspeed',['SPI_SPEED',['../global_8h.html#a0056b7fdd0f81fad9cd38e9fd389a4b6',1,'global.h']]],
+  ['sql_5fdatabase',['SQL_DATABASE',['../global_8h.html#ad55c274bf698014e01dbc9afde3fc610',1,'global.h']]],
+  ['sqlclose',['sqlClose',['../database_8cpp.html#a7264f51f982e908b32635e91e6dc0062',1,'sqlClose():&#160;database.cpp'],['../database_8h.html#a7264f51f982e908b32635e91e6dc0062',1,'sqlClose():&#160;database.cpp']]],
+  ['sqlexecute',['sqlExecute',['../database_8cpp.html#afd88a963f835215b8dad9ee9e49866dc',1,'sqlExecute(string query):&#160;database.cpp'],['../database_8h.html#afd88a963f835215b8dad9ee9e49866dc',1,'sqlExecute(string query):&#160;database.cpp']]],
+  ['sqlexecute2',['sqlExecute2',['../database_8cpp.html#a53458fb936962d23efec505a545a9cb8',1,'database.cpp']]],
+  ['sqlgetconf',['sqlGetConf',['../database_8cpp.html#aad0e803eda7a440a6063a447cfeca0cd',1,'sqlGetConf(config_key_t id):&#160;database.cpp'],['../database_8h.html#aad0e803eda7a440a6063a447cfeca0cd',1,'sqlGetConf(config_key_t id):&#160;database.cpp']]],
+  ['sqlinsertnode',['sqlInsertNode',['../database_8h.html#a6ad9c375b101ce2cb461975eb2748b93',1,'database.h']]],
+  ['sqlopen',['sqlOpen',['../database_8cpp.html#a1885a74e6af3ee510f30f98e60372e3e',1,'sqlOpen():&#160;database.cpp'],['../database_8h.html#a1885a74e6af3ee510f30f98e60372e3e',1,'sqlOpen():&#160;database.cpp']]],
+  ['sqlreadnodes',['sqlReadNodes',['../database_8h.html#ae28580072312f213d923d9b145e3dc90',1,'database.h']]],
+  ['sqlsetconf',['sqlSetConf',['../database_8cpp.html#a1ce0ac0c58916c138a92d3282f569784',1,'sqlSetConf(config_key_t id, uint64_t value):&#160;database.cpp'],['../database_8h.html#a1ce0ac0c58916c138a92d3282f569784',1,'sqlSetConf(config_key_t id, uint64_t value):&#160;database.cpp']]],
+  ['sqlsetup',['sqlSetup',['../database_8cpp.html#aaed3fb776c9dc76d262df026803d3b8c',1,'sqlSetup():&#160;database.cpp'],['../database_8h.html#aaed3fb776c9dc76d262df026803d3b8c',1,'sqlSetup():&#160;database.cpp']]],
+  ['sqltest',['sqltest',['../database_8cpp.html#a5d0363e5d886e2c3e4bb5ca46d265ba7',1,'sqltest():&#160;database.cpp'],['../database_8h.html#a5d0363e5d886e2c3e4bb5ca46d265ba7',1,'sqltest():&#160;database.cpp']]],
+  ['start',['start',['../classtimer.html#a9aa894a57748b2bdf3adce46f5736794',1,'timer']]],
+  ['stop',['stop',['../classtimer.html#a3218d61649e284071544b17c8c915ecc',1,'timer']]],
+  ['string_5fsprintf',['string_sprintf',['../database_8cpp.html#acd0eb5a18168fa3c37fab8ed0958c043',1,'string_sprintf(const char *format,...) __attribute__((format(printf:&#160;database.cpp'],['../database_8h.html#a6c0bc3256310fd400a26243d8a8f1652',1,'string_sprintf(const char *format,...):&#160;database.cpp']]],
+  ['string_5fvsprintf',['string_vsprintf',['../database_8cpp.html#ac240bb02efe882b4e82da48676301d89',1,'database.cpp']]],
+  ['stripe_2ecpp',['stripe.cpp',['../stripe_8cpp.html',1,'']]],
+  ['stripe_2eh',['stripe.h',['../stripe_8h.html',1,'']]],
+  ['stripe_5fcmd_5ffadeout',['STRIPE_CMD_FADEOUT',['../stripe_8h.html#a14287ccb3789c724603c28910512a0b3',1,'stripe.h']]],
+  ['stripe_5fcmd_5ffadestop',['STRIPE_CMD_FADESTOP',['../stripe_8h.html#a2e4a6f31f6823ec2592e9216a51232f2',1,'stripe.h']]],
+  ['stripe_5fcmd_5ffadeto',['STRIPE_CMD_FADETO',['../stripe_8h.html#a80ccf336e21703504faf1b3acba2c98b',1,'stripe.h']]],
+  ['stripe_5fcmd_5freset',['STRIPE_CMD_RESET',['../stripe_8h.html#a0a2c9ea1a805ca03af6c43c107c98e8e',1,'stripe.h']]],
+  ['stripe_5fcmd_5fset',['STRIPE_CMD_SET',['../stripe_8h.html#ab495a56c339e141ecbecfd9872f81fbb',1,'stripe.h']]],
+  ['stripe_5fcmd_5fset2',['STRIPE_CMD_SET2',['../stripe_8h.html#aead1e6fe1bdc60cade5b071a293864cc',1,'stripe.h']]],
+  ['stripe_5fcmd_5fsetb',['STRIPE_CMD_SETB',['../stripe_8h.html#a25c93d4301c3ad1064adfb9eff952211',1,'stripe.h']]],
+  ['stripe_5fcmd_5fsetdim',['STRIPE_CMD_SETDIM',['../stripe_8h.html#aedb99f1c6b67c005f5a2cd6dea06c6b7',1,'stripe.h']]],
+  ['stripe_5fcmd_5fsetg',['STRIPE_CMD_SETG',['../stripe_8h.html#ac62893e9f8f3793a3f6de3338a9a93ff',1,'stripe.h']]],
+  ['stripe_5fcmd_5fsetr',['STRIPE_CMD_SETR',['../stripe_8h.html#ad06bb775e1f72bc21a5f17a19eb62e80',1,'stripe.h']]],
+  ['stripe_5fcmd_5fsetw',['STRIPE_CMD_SETW',['../stripe_8h.html#a3c5fd782e0479daf6bb272d5197c8877',1,'stripe.h']]],
+  ['stripe_5fcolor',['stripe_color',['../structstripe__color.html',1,'']]],
+  ['stripe_5ftransient_5ft',['stripe_transient_t',['../stripe_8h.html#aa761062faf633557e537e07a781965e9',1,'stripe.h']]],
+  ['stripecommand',['stripeCommand',['../stripe_8cpp.html#ab58f9b853bd6c2deb11f6b64e6275cd7',1,'stripeCommand(int len, char *data):&#160;stripe.cpp'],['../stripe_8h.html#ab58f9b853bd6c2deb11f6b64e6275cd7',1,'stripeCommand(int len, char *data):&#160;stripe.cpp']]],
+  ['stripeeffectdisable',['stripeEffectDisable',['../stripe_8cpp.html#a40cca6b9cc8aeca2f28442126528163b',1,'stripeEffectDisable(void):&#160;stripe.cpp'],['../stripe_8h.html#a40cca6b9cc8aeca2f28442126528163b',1,'stripeEffectDisable(void):&#160;stripe.cpp']]],
+  ['stripeeffectheating',['stripeEffectHeating',['../stripe_8cpp.html#a97c35798100bbf3208fd15cc5615cd97',1,'stripeEffectHeating(int percent):&#160;stripe.cpp'],['../stripe_8h.html#a97c35798100bbf3208fd15cc5615cd97',1,'stripeEffectHeating(int percent):&#160;stripe.cpp']]],
+  ['stripeeffectpulse',['stripeEffectPulse',['../stripe_8cpp.html#aea3ed8a6a2d07ed7f8f2ff59f6fa3a01',1,'stripeEffectPulse(stripe_color color):&#160;stripe.cpp'],['../stripe_8h.html#aea3ed8a6a2d07ed7f8f2ff59f6fa3a01',1,'stripeEffectPulse(stripe_color color):&#160;stripe.cpp']]],
+  ['stripegetdim',['stripeGetDim',['../stripe_8cpp.html#ab479c1db854476cf80b86d1fe33a908e',1,'stripeGetDim(int *dim):&#160;stripe.cpp'],['../stripe_8h.html#ab479c1db854476cf80b86d1fe33a908e',1,'stripeGetDim(int *dim):&#160;stripe.cpp']]],
+  ['stripegetrgb',['stripeGetRGB',['../stripe_8cpp.html#ac5379b3ade62c829d19654c22efd90de',1,'stripeGetRGB(int *red, int *green, int *blue):&#160;stripe.cpp'],['../stripe_8h.html#ac5379b3ade62c829d19654c22efd90de',1,'stripeGetRGB(int *red, int *green, int *blue):&#160;stripe.cpp']]],
+  ['stripegetwhite',['stripeGetWhite',['../stripe_8cpp.html#aa67941dfd018cc2e0ba62a76a3d9136d',1,'stripeGetWhite(int *white):&#160;stripe.cpp'],['../stripe_8h.html#aa67941dfd018cc2e0ba62a76a3d9136d',1,'stripeGetWhite(int *white):&#160;stripe.cpp']]],
+  ['stripeinit',['stripeInit',['../stripe_8cpp.html#a21c653d98b869951f96654ccb3a4b290',1,'stripeInit():&#160;stripe.cpp'],['../stripe_8h.html#a21c653d98b869951f96654ccb3a4b290',1,'stripeInit():&#160;stripe.cpp']]],
+  ['stripeoff',['stripeOff',['../stripe_8cpp.html#a40d444a306464fa8547feea96737ae0d',1,'stripeOff(void):&#160;stripe.cpp'],['../stripe_8h.html#a40d444a306464fa8547feea96737ae0d',1,'stripeOff(void):&#160;stripe.cpp']]],
+  ['stripeon',['stripeOn',['../stripe_8cpp.html#a9130dbeb208c1b9e5519834f7de6a530',1,'stripeOn(void):&#160;stripe.cpp'],['../stripe_8h.html#a9130dbeb208c1b9e5519834f7de6a530',1,'stripeOn(void):&#160;stripe.cpp']]],
+  ['stripesetcolor',['stripeSetColor',['../stripe_8cpp.html#a32197a6a1a75aaf54a2a19dbc31be4e0',1,'stripeSetColor(stripe_color color):&#160;stripe.cpp'],['../stripe_8h.html#a32197a6a1a75aaf54a2a19dbc31be4e0',1,'stripeSetColor(stripe_color color):&#160;stripe.cpp']]],
+  ['stripesetdim',['stripeSetDim',['../stripe_8cpp.html#ade9bc3e5b3fabc99922d78df6ae96434',1,'stripeSetDim(int dim):&#160;stripe.cpp'],['../stripe_8h.html#ade9bc3e5b3fabc99922d78df6ae96434',1,'stripeSetDim(int dim):&#160;stripe.cpp']]],
+  ['stripesetrgb',['stripeSetRGB',['../stripe_8cpp.html#a405699059b25eae6001d1e989a1da5d6',1,'stripeSetRGB(int red, int green, int blue):&#160;stripe.cpp'],['../stripe_8h.html#a405699059b25eae6001d1e989a1da5d6',1,'stripeSetRGB(int red, int green, int blue):&#160;stripe.cpp']]],
+  ['stripesettransient',['stripeSetTransient',['../stripe_8cpp.html#a26524f75c9d72587489d20bba6c61da6',1,'stripeSetTransient(stripe_transient_t transient):&#160;stripe.cpp'],['../stripe_8h.html#a26524f75c9d72587489d20bba6c61da6',1,'stripeSetTransient(stripe_transient_t transient):&#160;stripe.cpp']]],
+  ['stripesetwhite',['stripeSetWhite',['../stripe_8cpp.html#a2ae73653f2098fdae40bb0916949e77e',1,'stripeSetWhite(int white):&#160;stripe.cpp'],['../stripe_8h.html#a2ae73653f2098fdae40bb0916949e77e',1,'stripeSetWhite(int white):&#160;stripe.cpp']]],
+  ['stripethread',['stripeThread',['../stripe_8cpp.html#a914baf734bc672a910769802c1e882c8',1,'stripeThread(void *threadid):&#160;stripe.cpp'],['../stripe_8h.html#a914baf734bc672a910769802c1e882c8',1,'stripeThread(void *threadid):&#160;stripe.cpp']]],
+  ['stripetimer',['stripeTimer',['../stripe_8cpp.html#abfdd13da6d6e41a44deb095184750c8e',1,'stripe.cpp']]],
+  ['stripetimerhandler',['stripeTimerHandler',['../stripe_8cpp.html#a630b80b8bd1e8a0f535b21a720de76b8',1,'stripeTimerHandler(void *threadid):&#160;stripe.cpp'],['../stripe_8h.html#a630b80b8bd1e8a0f535b21a720de76b8',1,'stripeTimerHandler(void *threadid):&#160;stripe.cpp']]],
+  ['stripeupdate',['stripeUpdate',['../stripe_8cpp.html#a79a7d75b45ddbb2b3324ec450658136c',1,'stripeUpdate(void):&#160;stripe.cpp'],['../stripe_8h.html#a79a7d75b45ddbb2b3324ec450658136c',1,'stripeUpdate(void):&#160;stripe.cpp']]],
+  ['stripeupdatedim',['stripeUpdateDim',['../stripe_8cpp.html#a849e5953dbdb82fb8405b1ab43067eed',1,'stripeUpdateDim(void):&#160;stripe.cpp'],['../stripe_8h.html#a849e5953dbdb82fb8405b1ab43067eed',1,'stripeUpdateDim(void):&#160;stripe.cpp']]]
+];

+ 26 - 0
CoffeeCode/html/search/all_11.html

@@ -0,0 +1,26 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://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.10"/>
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="all_11.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"><!--
+createResults();
+--></script>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript"><!--
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+--></script>
+</div>
+</body>
+</html>

+ 23 - 0
CoffeeCode/html/search/all_11.js

@@ -0,0 +1,23 @@
+var searchData=
+[
+  ['terminationhandler',['terminationHandler',['../main_8cpp.html#acd303e48c6d5b8d8bbf55db887f1e7e8',1,'main.cpp']]],
+  ['testslowcnt',['testSlowCnt',['../database_8h.html#ae1822373f950fb4881633b7ec843f4dfa221e2bd4755481003e8fe6ca37c66eb1',1,'database.h']]],
+  ['thread',['thread',['../global_8h.html#a5e61240888e929e526f41e19b6c0bd46',1,'thread():&#160;main.cpp'],['../main_8cpp.html#ad1c21fd320f05c652f120ad167628c14',1,'thread():&#160;main.cpp']]],
+  ['thread_5fcoffee',['THREAD_COFFEE',['../global_8h.html#a5f697926bb7bcc4722a9e650a1acdb6a',1,'global.h']]],
+  ['thread_5fdisplay',['THREAD_DISPLAY',['../global_8h.html#a843e1fa4b4de70b9f31d42a41a896c1c',1,'global.h']]],
+  ['thread_5fmain',['THREAD_MAIN',['../global_8h.html#a67a7c5f1e4a75f1508395d450895990d',1,'global.h']]],
+  ['thread_5fstripe',['THREAD_STRIPE',['../global_8h.html#a77f390a98c0e73ae38abd20f467d6cce',1,'global.h']]],
+  ['timehandler',['timeHandler',['../main_8cpp.html#a00359617f7973ce34d269f7dfd41c11b',1,'timeHandler():&#160;main.cpp'],['../main_8cpp.html#a069c1b36dcf7099c23ee7382fd95573b',1,'timeHandler(void):&#160;main.cpp']]],
+  ['timer',['timer',['../classtimer.html',1,'timer'],['../classtimer.html#a863dd9a194499a5ebbaf6937969916f2',1,'timer::timer(void(*handler)(void))'],['../classtimer.html#a36730b19460d9576fe6d7535f969105a',1,'timer::timer(void *(*handler)(void *))']]],
+  ['timer_2ecpp',['timer.cpp',['../timer_8cpp.html',1,'']]],
+  ['timer_2eh',['timer.h',['../timer_8h.html',1,'']]],
+  ['timer_5fdelay_5fus',['TIMER_DELAY_US',['../global_8h.html#a91dee3a4ce745234c8a4998388d6c645',1,'global.h']]],
+  ['timer_5fhandler',['timer_handler',['../timer_8cpp.html#a69a9ecb245422cbf03f28336a3cde462',1,'timer.cpp']]],
+  ['timercnt',['timercnt',['../timer_8cpp.html#a0f94d5829b547df53531ff4c3ec325c0',1,'timer.cpp']]],
+  ['topbit',['TOPBIT',['../crc_8cpp.html#a118ad552670dbefa1df0ba72d147f5e1',1,'crc.cpp']]],
+  ['trans_5fdirect',['TRANS_DIRECT',['../stripe_8h.html#aa761062faf633557e537e07a781965e9ad41450786f0c8b404231dfaff4c14931',1,'stripe.h']]],
+  ['trans_5ffast',['TRANS_FAST',['../stripe_8h.html#aa761062faf633557e537e07a781965e9a37991877080c17224eaa0268947a545c',1,'stripe.h']]],
+  ['trans_5fmedium',['TRANS_MEDIUM',['../stripe_8h.html#aa761062faf633557e537e07a781965e9a26be047607e612751d1979597dd21185',1,'stripe.h']]],
+  ['trans_5fslow',['TRANS_SLOW',['../stripe_8h.html#aa761062faf633557e537e07a781965e9ad1105b7089df16f505a8c28ef4e31f04',1,'stripe.h']]],
+  ['true',['TRUE',['../crc_8h.html#aa8cecfc5c5c054d2875c03e77b7be15d',1,'TRUE():&#160;crc.h'],['../lcd_8cpp.html#aa8cecfc5c5c054d2875c03e77b7be15d',1,'TRUE():&#160;lcd.cpp']]]
+];

+ 26 - 0
CoffeeCode/html/search/all_12.html

@@ -0,0 +1,26 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://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.10"/>
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="all_12.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"><!--
+createResults();
+--></script>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript"><!--
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+--></script>
+</div>
+</body>
+</html>

+ 5 - 0
CoffeeCode/html/search/all_12.js

@@ -0,0 +1,5 @@
+var searchData=
+[
+  ['use_5fcolors',['USE_COLORS',['../logger_8h.html#acdbdbd1e0c5422f3d1f7aa3960957e0a',1,'logger.h']]],
+  ['usr1handler',['usr1Handler',['../main_8cpp.html#a6b9ec8ce27cbec14222dfd2db55e8bad',1,'main.cpp']]]
+];

+ 26 - 0
CoffeeCode/html/search/all_13.html

@@ -0,0 +1,26 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://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.10"/>
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="all_13.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"><!--
+createResults();
+--></script>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript"><!--
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+--></script>
+</div>
+</body>
+</html>

+ 11 - 0
CoffeeCode/html/search/all_13.js

@@ -0,0 +1,11 @@
+var searchData=
+[
+  ['v_5fbasic',['V_BASIC',['../logger_8h.html#a1cfb4eb1363ea2e4d18f9052a7a98131a8470d917f387c308f571d2f370c238a3',1,'logger.h']]],
+  ['v_5fbrew',['V_BREW',['../logger_8h.html#a1cfb4eb1363ea2e4d18f9052a7a98131ac26291e5906a8e13146ec8dc56a0869a',1,'logger.h']]],
+  ['v_5fhal',['V_HAL',['../logger_8h.html#a1cfb4eb1363ea2e4d18f9052a7a98131a9a36496e8d624d5ea70b3f86bc2c0bed',1,'logger.h']]],
+  ['v_5fnone',['V_NONE',['../logger_8h.html#a1cfb4eb1363ea2e4d18f9052a7a98131afa973d27e66919a26910ccef33a3606a',1,'logger.h']]],
+  ['v_5fspi',['V_SPI',['../logger_8h.html#a1cfb4eb1363ea2e4d18f9052a7a98131a86acf22e226ebf319ce306ea1af2d95a',1,'logger.h']]],
+  ['v_5fsql',['V_SQL',['../logger_8h.html#a1cfb4eb1363ea2e4d18f9052a7a98131acf3ff5c46ec466c2d7438651b46cc17c',1,'logger.h']]],
+  ['v_5fstripe',['V_STRIPE',['../logger_8h.html#a1cfb4eb1363ea2e4d18f9052a7a98131a6af331195d8ce87720090a3eece459e4',1,'logger.h']]],
+  ['verbose',['verbose',['../global_8h.html#a0b2caeb4b6f130be43e5a2f0267dd453',1,'verbose():&#160;main.cpp'],['../main_8cpp.html#a0b2caeb4b6f130be43e5a2f0267dd453',1,'verbose():&#160;main.cpp']]]
+];

+ 26 - 0
CoffeeCode/html/search/all_14.html

@@ -0,0 +1,26 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://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.10"/>
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="all_14.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"><!--
+createResults();
+--></script>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript"><!--
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+--></script>
+</div>
+</body>
+</html>

+ 4 - 0
CoffeeCode/html/search/all_14.js

@@ -0,0 +1,4 @@
+var searchData=
+[
+  ['width',['WIDTH',['../crc_8cpp.html#a241aeeb764887ae5e3de58b98f04b16d',1,'crc.cpp']]]
+];

+ 26 - 0
CoffeeCode/html/search/all_2.html

@@ -0,0 +1,26 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://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.10"/>
+<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"><!--
+createResults();
+--></script>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript"><!--
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+--></script>
+</div>
+</body>
+</html>

+ 23 - 0
CoffeeCode/html/search/all_2.js

@@ -0,0 +1,23 @@
+var searchData=
+[
+  ['call',['call',['../classtimer.html#a7d9f6d9f98d51534be127d57f497b345',1,'timer']]],
+  ['chartoint',['chartoint',['../database_8cpp.html#ad2d2a73c367513b8b71aff5546276a3c',1,'chartoint(const unsigned char *guid):&#160;database.cpp'],['../database_8h.html#ad2d2a73c367513b8b71aff5546276a3c',1,'chartoint(const unsigned char *guid):&#160;database.cpp']]],
+  ['check_5fvalue',['CHECK_VALUE',['../crc_8h.html#aee81a10f43f9dc645ba69a7407c151d0',1,'crc.h']]],
+  ['clearline',['CLEARLINE',['../logger_8h.html#ae39a97a19b2e372929dabdc0e3822910',1,'logger.h']]],
+  ['clockid',['CLOCKID',['../timer_8h.html#a2694a39dfd1fa087ca6f9f391c91dae7',1,'timer.h']]],
+  ['config_5fkey_5ft',['config_key_t',['../database_8h.html#ae1822373f950fb4881633b7ec843f4df',1,'database.h']]],
+  ['counter',['counter',['../timer_8cpp.html#a617a47c70795bcff659815ad0efd2266',1,'timer.cpp']]],
+  ['crc',['crc',['../crc_8h.html#a73364f0434186bc77eaa8e3b03a437be',1,'crc():&#160;crc.h'],['../database_8h.html#ae1822373f950fb4881633b7ec843f4dfaadc75f07a97300078de1c92bf6414827',1,'CRC():&#160;database.h']]],
+  ['crc_2ecpp',['crc.cpp',['../crc_8cpp.html',1,'']]],
+  ['crc_2eh',['crc.h',['../crc_8h.html',1,'']]],
+  ['crc32',['CRC32',['../crc_8h.html#a491e419c18fbc5c7cb4a2cd901e31440',1,'crc.h']]],
+  ['crc_5fname',['CRC_NAME',['../crc_8h.html#ad679f457b8d23bfed7ccf1b9584e8514',1,'crc.h']]],
+  ['crcfast',['crcFast',['../crc_8cpp.html#a31e9ca3a3979a4c1e5043f5bfa5befaf',1,'crcFast(unsigned char const message[], int nBytes):&#160;crc.cpp'],['../crc_8h.html#a31e9ca3a3979a4c1e5043f5bfa5befaf',1,'crcFast(unsigned char const message[], int nBytes):&#160;crc.cpp']]],
+  ['crcinit',['crcInit',['../crc_8cpp.html#a5a735798e6972adc694a5428dd7ccaf9',1,'crcInit(void):&#160;crc.cpp'],['../crc_8h.html#a5a735798e6972adc694a5428dd7ccaf9',1,'crcInit(void):&#160;crc.cpp']]],
+  ['crcslow',['crcSlow',['../crc_8cpp.html#a027c2916f24b3daaf662408cc72026b1',1,'crcSlow(unsigned char const message[], int nBytes):&#160;crc.cpp'],['../crc_8h.html#a027c2916f24b3daaf662408cc72026b1',1,'crcSlow(unsigned char const message[], int nBytes):&#160;crc.cpp']]],
+  ['crctable',['crcTable',['../crc_8cpp.html#aa0b98c402a809d26602bb9a693083720',1,'crc.cpp']]],
+  ['currentcolor',['currentColor',['../stripe_8cpp.html#af149226ff674cac78ce47ce7261cb2dc',1,'stripe.cpp']]],
+  ['currentdim',['currentDim',['../stripe_8cpp.html#a5a820ae4564b095447dffb1f75fbb930',1,'stripe.cpp']]],
+  ['currenttransient',['currentTransient',['../stripe_8cpp.html#a601572ab87622859faa74bd5d948e672',1,'stripe.cpp']]],
+  ['currentwhite',['currentWhite',['../stripe_8cpp.html#aeb79ac3025329db68dba76aa2e830532',1,'stripe.cpp']]]
+];

+ 26 - 0
CoffeeCode/html/search/all_3.html

@@ -0,0 +1,26 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://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.10"/>
+<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"><!--
+createResults();
+--></script>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript"><!--
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+--></script>
+</div>
+</body>
+</html>

+ 6 - 0
CoffeeCode/html/search/all_3.js

@@ -0,0 +1,6 @@
+var searchData=
+[
+  ['database_2ecpp',['database.cpp',['../database_8cpp.html',1,'']]],
+  ['database_2eh',['database.h',['../database_8h.html',1,'']]],
+  ['db',['db',['../database_8cpp.html#ad6e663497d2c934364b3bcf07496b30b',1,'database.cpp']]]
+];

+ 26 - 0
CoffeeCode/html/search/all_4.html

@@ -0,0 +1,26 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://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.10"/>
+<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"><!--
+createResults();
+--></script>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript"><!--
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+--></script>
+</div>
+</body>
+</html>

+ 5 - 0
CoffeeCode/html/search/all_4.js

@@ -0,0 +1,5 @@
+var searchData=
+[
+  ['effectcolor',['effectColor',['../stripe_8cpp.html#a8b61b922f1ae5a0c5854e3a318b74421',1,'stripe.cpp']]],
+  ['errexit',['errExit',['../timer_8h.html#af3ec03c16ee82e8578cfd8fd133d7a6f',1,'timer.h']]]
+];

+ 26 - 0
CoffeeCode/html/search/all_5.html

@@ -0,0 +1,26 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://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.10"/>
+<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"><!--
+createResults();
+--></script>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript"><!--
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+--></script>
+</div>
+</body>
+</html>

+ 9 - 0
CoffeeCode/html/search/all_5.js

@@ -0,0 +1,9 @@
+var searchData=
+[
+  ['false',['FALSE',['../crc_8h.html#aa93f0eb578d23995850d61f7d61c55c1',1,'FALSE():&#160;crc.h'],['../lcd_8cpp.html#aa93f0eb578d23995850d61f7d61c55c1',1,'FALSE():&#160;lcd.cpp']]],
+  ['final_5fxor_5fvalue',['FINAL_XOR_VALUE',['../crc_8h.html#a5e491822bb6a5bf7114dd453ab48891e',1,'crc.h']]],
+  ['firsttimer',['firstTimer',['../timer_8cpp.html#acb6f6b56b317d16d17fd2f6df17547c3',1,'timer.cpp']]],
+  ['flow',['FLOW',['../hal_8h.html#a249f9f89b3a190ddd62999b1afa847c3',1,'hal.h']]],
+  ['flow_5fml_5fpulse',['FLOW_ML_PULSE',['../hal_8h.html#a957d80982673bb087a5d29380720f59d',1,'hal.h']]],
+  ['flowcnt',['flowcnt',['../hal_8cpp.html#ae5ae572f06dd4838027976f9ab3fdc62',1,'hal.cpp']]]
+];

+ 26 - 0
CoffeeCode/html/search/all_6.html

@@ -0,0 +1,26 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://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.10"/>
+<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"><!--
+createResults();
+--></script>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript"><!--
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+--></script>
+</div>
+</body>
+</html>

+ 6 - 0
CoffeeCode/html/search/all_6.js

@@ -0,0 +1,6 @@
+var searchData=
+[
+  ['getdivider',['getDivider',['../classtimer.html#a3d5386a682a23df5c6a841ce8fc55bd4',1,'timer']]],
+  ['global_2eh',['global.h',['../global_8h.html',1,'']]],
+  ['green',['green',['../structstripe__color.html#ab650b31353bfddd30e9ea11f8adb870f',1,'stripe_color']]]
+];

+ 26 - 0
CoffeeCode/html/search/all_7.html

@@ -0,0 +1,26 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://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.10"/>
+<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"><!--
+createResults();
+--></script>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript"><!--
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+--></script>
+</div>
+</body>
+</html>

+ 24 - 0
CoffeeCode/html/search/all_7.js

@@ -0,0 +1,24 @@
+var searchData=
+[
+  ['hal_2ecpp',['hal.cpp',['../hal_8cpp.html',1,'']]],
+  ['hal_2eh',['hal.h',['../hal_8h.html',1,'']]],
+  ['halgetflow',['halGetFlow',['../hal_8cpp.html#a1a0d534518ff19bf5b023dfe64d141db',1,'halGetFlow(void):&#160;hal.cpp'],['../hal_8h.html#a1a0d534518ff19bf5b023dfe64d141db',1,'halGetFlow(void):&#160;hal.cpp']]],
+  ['halgetint0',['halGetInt0',['../hal_8cpp.html#af5609d1b9c9b6bde787cdca47b3b0a4f',1,'halGetInt0(void):&#160;hal.cpp'],['../hal_8h.html#af5609d1b9c9b6bde787cdca47b3b0a4f',1,'halGetInt0(void):&#160;hal.cpp']]],
+  ['halgetint1',['halGetInt1',['../hal_8cpp.html#afe1e8d0d1237d0f128d50a5b146002a2',1,'halGetInt1(void):&#160;hal.cpp'],['../hal_8h.html#afe1e8d0d1237d0f128d50a5b146002a2',1,'halGetInt1(void):&#160;hal.cpp']]],
+  ['halgetrelaisstate',['halGetRelaisState',['../hal_8cpp.html#a1d22d01f1a6a6789f2816e27bbcb0504',1,'halGetRelaisState(int relais):&#160;hal.cpp'],['../hal_8h.html#a1d22d01f1a6a6789f2816e27bbcb0504',1,'halGetRelaisState(int relais):&#160;hal.cpp']]],
+  ['halinit',['halInit',['../hal_8cpp.html#afd89c1650df524d95aef39b8bc38170d',1,'halInit(void):&#160;hal.cpp'],['../hal_8h.html#afd89c1650df524d95aef39b8bc38170d',1,'halInit(void):&#160;hal.cpp']]],
+  ['halint0',['halInt0',['../hal_8cpp.html#a597258a80a0bb18db649d01b0893c99f',1,'halInt0(void):&#160;hal.cpp'],['../hal_8h.html#a597258a80a0bb18db649d01b0893c99f',1,'halInt0(void):&#160;hal.cpp']]],
+  ['halint1',['halInt1',['../hal_8cpp.html#a603aaa9c0c3cfef8b185df5c7f4921c3',1,'halInt1(void):&#160;hal.cpp'],['../hal_8h.html#a603aaa9c0c3cfef8b185df5c7f4921c3',1,'halInt1(void):&#160;hal.cpp']]],
+  ['halintflow',['halIntFlow',['../hal_8cpp.html#ace9ace8c7e0012157569f446d4cb8c52',1,'halIntFlow(void):&#160;hal.cpp'],['../hal_8h.html#ace9ace8c7e0012157569f446d4cb8c52',1,'halIntFlow(void):&#160;hal.cpp']]],
+  ['halintpressure',['halIntPressure',['../hal_8cpp.html#a73067106de2bbcf98bcc3a06cbf3b000',1,'halIntPressure(void):&#160;hal.cpp'],['../hal_8h.html#a73067106de2bbcf98bcc3a06cbf3b000',1,'halIntPressure(void):&#160;hal.cpp']]],
+  ['halintproximity',['halIntProximity',['../hal_8cpp.html#a0622583e0c8453a6d6963964ad7e7122',1,'halIntProximity(void):&#160;hal.cpp'],['../hal_8h.html#a0622583e0c8453a6d6963964ad7e7122',1,'halIntProximity(void):&#160;hal.cpp']]],
+  ['halisheating',['halIsHeating',['../hal_8cpp.html#a01f43f0666520e8d8af65e94fd82a5eb',1,'halIsHeating(void):&#160;hal.cpp'],['../hal_8h.html#a01f43f0666520e8d8af65e94fd82a5eb',1,'halIsHeating(void):&#160;hal.cpp']]],
+  ['halproxsensorcovered',['halProxSensorCovered',['../hal_8cpp.html#a52c001b5136b02e19bd00282a137631d',1,'halProxSensorCovered(void):&#160;hal.cpp'],['../hal_8h.html#a52c001b5136b02e19bd00282a137631d',1,'halProxSensorCovered(void):&#160;hal.cpp']]],
+  ['halrelaisoff',['halRelaisOff',['../hal_8cpp.html#a25c63f62c18555fc1b9b50bcd29f1c7d',1,'halRelaisOff(int relais):&#160;hal.cpp'],['../hal_8h.html#a25c63f62c18555fc1b9b50bcd29f1c7d',1,'halRelaisOff(int relais):&#160;hal.cpp']]],
+  ['halrelaison',['halRelaisOn',['../hal_8cpp.html#a33e09a3806bdcd5c711e557178335763',1,'halRelaisOn(int relais):&#160;hal.cpp'],['../hal_8h.html#a33e09a3806bdcd5c711e557178335763',1,'halRelaisOn(int relais):&#160;hal.cpp']]],
+  ['halrelaisset',['halRelaisSet',['../hal_8cpp.html#a9b67b274703f0c42834f4b447d5c04a2',1,'halRelaisSet(int relais, int state):&#160;hal.cpp'],['../hal_8h.html#a9b67b274703f0c42834f4b447d5c04a2',1,'halRelaisSet(int relais, int state):&#160;hal.cpp']]],
+  ['halresetflow',['halResetFlow',['../hal_8cpp.html#a99d0fb6a80635b679cf4cd1fa90b483d',1,'halResetFlow(void):&#160;hal.cpp'],['../hal_8h.html#a99d0fb6a80635b679cf4cd1fa90b483d',1,'halResetFlow(void):&#160;hal.cpp']]],
+  ['halsendsignal',['halSendSignal',['../hal_8cpp.html#a252f49661ac23a045bb0d9d20997dfa4',1,'halSendSignal(int val):&#160;hal.cpp'],['../hal_8h.html#a4fa1c41f2dd3c24e13feaa6be70ad426',1,'halSendSignal(int value):&#160;hal.cpp']]],
+  ['halsig',['HalSig',['../hal_8h.html#aa51a8c9f6b926aa9e9c5dd38249d3f68',1,'hal.h']]],
+  ['huphandler',['hupHandler',['../main_8cpp.html#aa5f8eab61a77d6d566215bcf12144422',1,'main.cpp']]]
+];

+ 26 - 0
CoffeeCode/html/search/all_8.html

@@ -0,0 +1,26 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://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.10"/>
+<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"><!--
+createResults();
+--></script>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript"><!--
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+--></script>
+</div>
+</body>
+</html>

+ 13 - 0
CoffeeCode/html/search/all_8.js

@@ -0,0 +1,13 @@
+var searchData=
+[
+  ['i2c_5faddress_5fstripe',['I2C_ADDRESS_STRIPE',['../stripe_8h.html#a52f9fc93ce25c487d4f72b9f2f400545',1,'stripe.h']]],
+  ['i2cfd',['i2cfd',['../stripe_8cpp.html#ad82fe3818283681900e35187390d4b84',1,'stripe.cpp']]],
+  ['initial_5fremainder',['INITIAL_REMAINDER',['../crc_8h.html#acce5b79e1a8ad8ffe40fb9f7d63b2fdc',1,'crc.h']]],
+  ['inittimers',['initTimers',['../timer_8cpp.html#a9e737e3249388fb2e50d868bad69c688',1,'initTimers(void):&#160;timer.cpp'],['../timer_8h.html#a9e737e3249388fb2e50d868bad69c688',1,'initTimers(void):&#160;timer.cpp']]],
+  ['int0',['INT0',['../hal_8h.html#a7521122e23c8d5c83b2a033b2505c86c',1,'hal.h']]],
+  ['int1',['INT1',['../hal_8h.html#ae4728496f2ab826d5fc6a63da6cb600b',1,'hal.h']]],
+  ['int64to8bit',['int64to8bit',['../database_8cpp.html#a28dbbb9e24e2035535645629105aea46',1,'int64to8bit(sqlite_int64 guid):&#160;database.cpp'],['../database_8h.html#a28dbbb9e24e2035535645629105aea46',1,'int64to8bit(sqlite_int64 guid):&#160;database.cpp']]],
+  ['int8to64bit',['int8to64bit',['../database_8cpp.html#a99cc529fd785c752cd4b73ea7989521d',1,'int8to64bit(uint8_t *guid):&#160;database.cpp'],['../database_8h.html#a99cc529fd785c752cd4b73ea7989521d',1,'int8to64bit(uint8_t *guid):&#160;database.cpp']]],
+  ['inttochar',['inttochar',['../database_8cpp.html#a437086982a7400d7205f3ab6600e6dcf',1,'inttochar(uint8_t *guid):&#160;database.cpp'],['../database_8h.html#a437086982a7400d7205f3ab6600e6dcf',1,'inttochar(uint8_t *guid):&#160;database.cpp']]],
+  ['isactive',['isActive',['../classtimer.html#abbb117c0ae32aa48df5df60328e224f9',1,'timer']]]
+];

+ 26 - 0
CoffeeCode/html/search/all_9.html

@@ -0,0 +1,26 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://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.10"/>
+<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"><!--
+createResults();
+--></script>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript"><!--
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+--></script>
+</div>
+</body>
+</html>

+ 13 - 0
CoffeeCode/html/search/all_9.js

@@ -0,0 +1,13 @@
+var searchData=
+[
+  ['kblu',['KBLU',['../logger_8h.html#a3f838f2fc3a9a3b434be606fc908964b',1,'logger.h']]],
+  ['kbold',['KBOLD',['../logger_8h.html#a815022697da1d2d7744ff178e940078c',1,'logger.h']]],
+  ['kcyn',['KCYN',['../logger_8h.html#a32036c94dbb166a3f874b7efc169841f',1,'logger.h']]],
+  ['kgrn',['KGRN',['../logger_8h.html#ac081c83b067273757f7a2e54a5957d41',1,'logger.h']]],
+  ['killthread',['killThread',['../global_8h.html#ab6e46b0071bb3330546b7f2b601d0a6c',1,'killThread(int threadid, int sig):&#160;main.cpp'],['../main_8cpp.html#ab6e46b0071bb3330546b7f2b601d0a6c',1,'killThread(int threadid, int sig):&#160;main.cpp']]],
+  ['kmag',['KMAG',['../logger_8h.html#a6825f05d3b9d619d91d79d0ef18bb8b2',1,'logger.h']]],
+  ['knrm',['KNRM',['../logger_8h.html#a137aa83ec74421d226a90c92ec032ac9',1,'logger.h']]],
+  ['kred',['KRED',['../logger_8h.html#a66290957baed5df3930ada4cb8caccf1',1,'logger.h']]],
+  ['kwht',['KWHT',['../logger_8h.html#af0036c8022c9980079ab17e5c87fd478',1,'logger.h']]],
+  ['kyel',['KYEL',['../logger_8h.html#a897b10d246533c95ba86cb79f92e465a',1,'logger.h']]]
+];

+ 26 - 0
CoffeeCode/html/search/all_a.html

@@ -0,0 +1,26 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://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.10"/>
+<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"><!--
+createResults();
+--></script>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript"><!--
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+--></script>
+</div>
+</body>
+</html>

Bu fark içinde çok fazla dosya değişikliği olduğu için bazı dosyalar gösterilmiyor