latest version of API

This commit is contained in:
Fenoglio 2018-11-13 11:15:10 +01:00
parent ef696ad100
commit 43e0c4d244
52 changed files with 2894 additions and 26 deletions

View file

@ -148,7 +148,7 @@ Functions</h2></td></tr>
<!-- start footer part -->
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
<ul>
<li class="footer">Generated by
<li class="footer">Generated on Tue Nov 13 2018 11:13:48 for Arduino {code}racer API by
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="../../doxygen.png" alt="doxygen"/></a> 1.8.13 </li>
</ul>

View file

@ -487,7 +487,7 @@ Functions</h2></td></tr>
<!-- start footer part -->
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
<ul>
<li class="footer">Generated by
<li class="footer">Generated on Tue Nov 13 2018 11:13:48 for Arduino {code}racer API by
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="../../doxygen.png" alt="doxygen"/></a> 1.8.13 </li>
</ul>

View file

@ -179,9 +179,11 @@ Functions</h2></td></tr>
<p>The speed is taken from the header file or set by one of the methods defined in the lower level drive methods section </p><dl class="section return"><dt>Returns</dt><dd>nothing </dd></dl>
<p class="definition">Definition at line <a class="el" href="../../d4/da7/_code_racer_8cpp_source.html#l00173">173</a> of file <a class="el" href="../../d4/da7/_code_racer_8cpp_source.html">CodeRacer.cpp</a>.</p>
<div class="fragment"><div class="line"><a name="l00174"></a><span class="lineno"> 174</span>&#160;{</div><div class="line"><a name="l00175"></a><span class="lineno"> 175</span>&#160; drive_forward(_drive_left_speed, _drive_right_speed);</div><div class="line"><a name="l00176"></a><span class="lineno"> 176</span>&#160;}</div></div><!-- fragment --><div class="dynheader">
Here is the call graph for this function:</div>
<div class="dyncontent">
<div class="fragment"><div class="line"><a name="l00174"></a><span class="lineno"> 174</span>&#160;{</div><div class="line"><a name="l00175"></a><span class="lineno"> 175</span>&#160; drive_forward(_drive_left_speed, _drive_right_speed);</div><div class="line"><a name="l00176"></a><span class="lineno"> 176</span>&#160;}</div></div><!-- fragment --><div id="dynsection-0" onclick="return toggleVisibility(this)" class="dynheader closed" style="cursor:pointer;">
<img id="dynsection-0-trigger" src="../../closed.png" alt="+"/> Here is the call graph for this function:</div>
<div id="dynsection-0-summary" class="dynsummary" style="display:block;">
</div>
<div id="dynsection-0-content" class="dyncontent" style="display:none;">
<div class="center"><img src="../../d2/d40/group__higherlevelmeths_ga8be6a850099812153dcf5768d7fc8b8c_cgraph.png" border="0" usemap="#d2/d40/group__higherlevelmeths_ga8be6a850099812153dcf5768d7fc8b8c_cgraph" alt=""/></div>
</div>
@ -586,7 +588,7 @@ Here is the call graph for this function:</div>
<!-- start footer part -->
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
<ul>
<li class="footer">Generated by
<li class="footer">Generated on Tue Nov 13 2018 11:13:48 for Arduino {code}racer API by
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="../../doxygen.png" alt="doxygen"/></a> 1.8.13 </li>
</ul>

View file

@ -101,7 +101,7 @@ Modules</h2></td></tr>
<!-- start footer part -->
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
<ul>
<li class="footer">Generated by
<li class="footer">Generated on Tue Nov 13 2018 11:13:48 for Arduino {code}racer API by
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="../../doxygen.png" alt="doxygen"/></a> 1.8.13 </li>
</ul>

View file

@ -92,7 +92,7 @@ $(document).ready(function(){initNavTree('d4/da7/_code_racer_8cpp_source.html','
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
<ul>
<li class="navelem"><a class="el" href="../../dir_a991eec27578c865874ede3d8ec657c2.html">Arduino</a></li><li class="navelem"><a class="el" href="../../dir_481cc946b8a81b8d9363a4aad6201160.html">libraries</a></li><li class="navelem"><a class="el" href="../../dir_11f10faf8e1af149a19b120728e5c8cd.html">CodeRacer</a></li><li class="navelem"><b>CodeRacer.cpp</b></li>
<li class="footer">Generated by
<li class="footer">Generated on Tue Nov 13 2018 11:13:48 for Arduino {code}racer API by
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="../../doxygen.png" alt="doxygen"/></a> 1.8.13 </li>
</ul>

View file

@ -173,7 +173,7 @@ Functions</h2></td></tr>
<!-- start footer part -->
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
<ul>
<li class="footer">Generated by
<li class="footer">Generated on Tue Nov 13 2018 11:13:48 for Arduino {code}racer API by
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="../../doxygen.png" alt="doxygen"/></a> 1.8.13 </li>
</ul>

View file

@ -101,7 +101,7 @@ Modules</h2></td></tr>
<!-- start footer part -->
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
<ul>
<li class="footer">Generated by
<li class="footer">Generated on Tue Nov 13 2018 11:13:48 for Arduino {code}racer API by
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="../../doxygen.png" alt="doxygen"/></a> 1.8.13 </li>
</ul>

View file

@ -91,7 +91,7 @@ $(document).ready(function(){initNavTree('d6/d9a/_code_racer_8h_source.html','..
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
<ul>
<li class="navelem"><a class="el" href="../../dir_a991eec27578c865874ede3d8ec657c2.html">Arduino</a></li><li class="navelem"><a class="el" href="../../dir_481cc946b8a81b8d9363a4aad6201160.html">libraries</a></li><li class="navelem"><a class="el" href="../../dir_11f10faf8e1af149a19b120728e5c8cd.html">CodeRacer</a></li><li class="navelem"><b>CodeRacer.h</b></li>
<li class="footer">Generated by
<li class="footer">Generated on Tue Nov 13 2018 11:13:48 for Arduino {code}racer API by
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="../../doxygen.png" alt="doxygen"/></a> 1.8.13 </li>
</ul>

View file

@ -326,7 +326,7 @@ Functions</h2></td></tr>
<!-- start footer part -->
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
<ul>
<li class="footer">Generated by
<li class="footer">Generated on Tue Nov 13 2018 11:13:48 for Arduino {code}racer API by
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="../../doxygen.png" alt="doxygen"/></a> 1.8.13 </li>
</ul>

View file

@ -99,7 +99,7 @@ Modules</h2></td></tr>
<!-- start footer part -->
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
<ul>
<li class="footer">Generated by
<li class="footer">Generated on Tue Nov 13 2018 11:13:48 for Arduino {code}racer API by
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="../../doxygen.png" alt="doxygen"/></a> 1.8.13 </li>
</ul>

View file

@ -273,7 +273,7 @@ Functions</h2></td></tr>
<!-- start footer part -->
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
<ul>
<li class="footer">Generated by
<li class="footer">Generated on Tue Nov 13 2018 11:13:48 for Arduino {code}racer API by
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="../../doxygen.png" alt="doxygen"/></a> 1.8.13 </li>
</ul>

View file

@ -148,7 +148,7 @@ Functions</h2></td></tr>
<!-- start footer part -->
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
<ul>
<li class="footer">Generated by
<li class="footer">Generated on Tue Nov 13 2018 11:13:48 for Arduino {code}racer API by
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="../../doxygen.png" alt="doxygen"/></a> 1.8.13 </li>
</ul>

View file

@ -101,7 +101,7 @@ Modules</h2></td></tr>
<!-- start footer part -->
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
<ul>
<li class="footer">Generated by
<li class="footer">Generated on Tue Nov 13 2018 11:13:48 for Arduino {code}racer API by
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="../../doxygen.png" alt="doxygen"/></a> 1.8.13 </li>
</ul>

View file

@ -101,7 +101,7 @@ Modules</h2></td></tr>
<!-- start footer part -->
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
<ul>
<li class="footer">Generated by
<li class="footer">Generated on Tue Nov 13 2018 11:13:48 for Arduino {code}racer API by
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="../../doxygen.png" alt="doxygen"/></a> 1.8.13 </li>
</ul>

View file

@ -326,7 +326,7 @@ Functions</h2></td></tr>
<!-- start footer part -->
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
<ul>
<li class="footer">Generated by
<li class="footer">Generated on Tue Nov 13 2018 11:13:48 for Arduino {code}racer API by
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="../../doxygen.png" alt="doxygen"/></a> 1.8.13 </li>
</ul>

View file

@ -212,7 +212,7 @@ Functions</h2></td></tr>
<!-- start footer part -->
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
<ul>
<li class="footer">Generated by
<li class="footer">Generated on Tue Nov 13 2018 11:13:48 for Arduino {code}racer API by
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="../../doxygen.png" alt="doxygen"/></a> 1.8.13 </li>
</ul>

View file

@ -237,7 +237,7 @@ Functions</h2></td></tr>
<!-- start footer part -->
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
<ul>
<li class="footer">Generated by
<li class="footer">Generated on Tue Nov 13 2018 11:13:48 for Arduino {code}racer API by
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="../../doxygen.png" alt="doxygen"/></a> 1.8.13 </li>
</ul>

View file

@ -91,7 +91,7 @@ $(document).ready(function(){initNavTree('dir_11f10faf8e1af149a19b120728e5c8cd.h
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
<ul>
<li class="navelem"><a class="el" href="dir_a991eec27578c865874ede3d8ec657c2.html">Arduino</a></li><li class="navelem"><a class="el" href="dir_481cc946b8a81b8d9363a4aad6201160.html">libraries</a></li><li class="navelem"><a class="el" href="dir_11f10faf8e1af149a19b120728e5c8cd.html">CodeRacer</a></li>
<li class="footer">Generated by
<li class="footer">Generated on Tue Nov 13 2018 11:13:48 for Arduino {code}racer API by
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.13 </li>
</ul>

View file

@ -95,7 +95,7 @@ Directories</h2></td></tr>
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
<ul>
<li class="navelem"><a class="el" href="dir_a991eec27578c865874ede3d8ec657c2.html">Arduino</a></li><li class="navelem"><a class="el" href="dir_481cc946b8a81b8d9363a4aad6201160.html">libraries</a></li>
<li class="footer">Generated by
<li class="footer">Generated on Tue Nov 13 2018 11:13:48 for Arduino {code}racer API by
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.13 </li>
</ul>

View file

@ -91,7 +91,7 @@ $(document).ready(function(){initNavTree('dir_a991eec27578c865874ede3d8ec657c2.h
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
<ul>
<li class="navelem"><a class="el" href="dir_a991eec27578c865874ede3d8ec657c2.html">Arduino</a></li>
<li class="footer">Generated by
<li class="footer">Generated on Tue Nov 13 2018 11:13:48 for Arduino {code}racer API by
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.13 </li>
</ul>

View file

@ -119,7 +119,7 @@ A yellow dashed arrow denotes a relation between a template instance and the tem
<!-- start footer part -->
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
<ul>
<li class="footer">Generated by
<li class="footer">Generated on Tue Nov 13 2018 11:13:48 for Arduino {code}racer API by
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.13 </li>
</ul>

View file

@ -90,7 +90,7 @@ $(document).ready(function(){initNavTree('index.html','');});
<!-- start footer part -->
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
<ul>
<li class="footer">Generated by
<li class="footer">Generated on Tue Nov 13 2018 11:13:48 for Arduino {code}racer API by
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.13 </li>
</ul>

View file

@ -109,7 +109,7 @@ $(document).ready(function(){initNavTree('modules.html','');});
<!-- start footer part -->
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
<ul>
<li class="footer">Generated by
<li class="footer">Generated on Tue Nov 13 2018 11:13:48 for Arduino {code}racer API by
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.13 </li>
</ul>

View file

@ -0,0 +1,21 @@
all: refman.pdf
pdf: refman.pdf
refman.pdf: clean refman.tex
pdflatex refman
makeindex refman.idx
pdflatex refman
latex_count=8 ; \
while egrep -s 'Rerun (LaTeX|to get cross-references right)' refman.log && [ $$latex_count -gt 0 ] ;\
do \
echo "Rerunning latex...." ;\
pdflatex refman ;\
latex_count=`expr $$latex_count - 1` ;\
done
makeindex refman.idx
pdflatex refman
clean:
rm -f *.ps *.dvi *.aux *.toc *.idx *.ind *.ilg *.log *.out *.brf *.blg *.bbl refman.pdf

Binary file not shown.

After

Width:  |  Height:  |  Size: 20 KiB

View file

@ -0,0 +1,61 @@
\hypertarget{group__lowerleveldrivesgetters}{}\section{Getters}
\label{group__lowerleveldrivesgetters}\index{Getters@{Getters}}
\subsection*{Functions}
\begin{DoxyCompactItemize}
\item
uint8\+\_\+t \hyperlink{group__lowerleveldrivesgetters_ga09359a792e3299b1c20f6b99939ea7b3}{Code\+Racer\+::drive\+\_\+right\+\_\+speed} ()
\begin{DoxyCompactList}\small\item\em Get the setting for the speed of the right side drive. \end{DoxyCompactList}\item
uint8\+\_\+t \hyperlink{group__lowerleveldrivesgetters_ga804a45724f3788fd2fdb9631c66d1377}{Code\+Racer\+::drive\+\_\+left\+\_\+speed} ()
\begin{DoxyCompactList}\small\item\em Get the setting for the speed of the left side drive. \end{DoxyCompactList}\end{DoxyCompactItemize}
\subsection{Detailed Description}
\subsection{Function Documentation}
\mbox{\Hypertarget{group__lowerleveldrivesgetters_ga09359a792e3299b1c20f6b99939ea7b3}\label{group__lowerleveldrivesgetters_ga09359a792e3299b1c20f6b99939ea7b3}}
\index{Getters@{Getters}!drive\+\_\+right\+\_\+speed@{drive\+\_\+right\+\_\+speed}}
\index{drive\+\_\+right\+\_\+speed@{drive\+\_\+right\+\_\+speed}!Getters@{Getters}}
\subsubsection{\texorpdfstring{drive\+\_\+right\+\_\+speed()}{drive\_right\_speed()}}
{\footnotesize\ttfamily uint8\+\_\+t Code\+Racer\+::drive\+\_\+right\+\_\+speed (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption})}
Get the setting for the speed of the right side drive.
\begin{DoxyReturn}{Returns}
Speed of the right side drive
\end{DoxyReturn}
Definition at line 994 of file Code\+Racer.\+cpp.
\begin{DoxyCode}
994 \{
995 \textcolor{keywordflow}{return} \_drive\_right\_speed;
996 \}
\end{DoxyCode}
\mbox{\Hypertarget{group__lowerleveldrivesgetters_ga804a45724f3788fd2fdb9631c66d1377}\label{group__lowerleveldrivesgetters_ga804a45724f3788fd2fdb9631c66d1377}}
\index{Getters@{Getters}!drive\+\_\+left\+\_\+speed@{drive\+\_\+left\+\_\+speed}}
\index{drive\+\_\+left\+\_\+speed@{drive\+\_\+left\+\_\+speed}!Getters@{Getters}}
\subsubsection{\texorpdfstring{drive\+\_\+left\+\_\+speed()}{drive\_left\_speed()}}
{\footnotesize\ttfamily uint8\+\_\+t Code\+Racer\+::drive\+\_\+left\+\_\+speed (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption})}
Get the setting for the speed of the left side drive.
\begin{DoxyReturn}{Returns}
Speed of the left side drive
\end{DoxyReturn}
Definition at line 1001 of file Code\+Racer.\+cpp.
\begin{DoxyCode}
1001 \{
1002 \textcolor{keywordflow}{return}(\_drive\_left\_speed);
1003 \}
\end{DoxyCode}

View file

@ -0,0 +1,341 @@
\hypertarget{group__lowerleveldrivesmeths}{}\section{Methods}
\label{group__lowerleveldrivesmeths}\index{Methods@{Methods}}
\subsection*{Functions}
\begin{DoxyCompactItemize}
\item
void \hyperlink{group__lowerleveldrivesmeths_ga5812df751da5b480240ccd633c515b83}{Code\+Racer\+::drives\+\_\+settings} (uint8\+\_\+t drive\+\_\+left\+\_\+speed, uint8\+\_\+t drive\+\_\+right\+\_\+speed, unsigned long turn\+\_\+left\+\_\+ms, unsigned long turn\+\_\+right\+\_\+ms)
\begin{DoxyCompactList}\small\item\em Overwrites some drive settings. This will replace the defaults set by the values in the header file. \end{DoxyCompactList}\item
void \hyperlink{group__lowerleveldrivesmeths_ga61ed9e0415a62a290cc5c59a0f740304}{Code\+Racer\+::set\+\_\+drives\+\_\+stop\+\_\+left\+\_\+right} ()
\begin{DoxyCompactList}\small\item\em Stopps both drives. \end{DoxyCompactList}\item
void \hyperlink{group__lowerleveldrivesmeths_ga802d2646d9cc0d766e1ac799c7917fa8}{Code\+Racer\+::set\+\_\+drives\+\_\+states\+\_\+left\+\_\+right} (drivestate stateleft, drivestate stateright)
\begin{DoxyCompactList}\small\item\em Sets both of the drives to a specified drivestate (D\+R\+I\+V\+E\+S\+T\+OP, D\+R\+I\+V\+E\+F\+R\+WD, D\+R\+I\+V\+E\+B\+A\+CK) \end{DoxyCompactList}\item
void \hyperlink{group__lowerleveldrivesmeths_ga1eeb3cb47503c3011562f9c42828fab9}{Code\+Racer\+::set\+\_\+drive\+\_\+left\+\_\+state} (drivestate state)
\begin{DoxyCompactList}\small\item\em Sets the left side drive to the specified drivestate (D\+R\+I\+V\+E\+S\+T\+OP, D\+R\+I\+V\+E\+F\+R\+WD, D\+R\+I\+V\+E\+B\+A\+CK) \end{DoxyCompactList}\item
void \hyperlink{group__lowerleveldrivesmeths_ga1b34ec9cee1f21cd15db310167a2faa5}{Code\+Racer\+::set\+\_\+drive\+\_\+right\+\_\+state} (drivestate state)
\begin{DoxyCompactList}\small\item\em Sets the right side drive to the specified drivestate (D\+R\+I\+V\+E\+S\+T\+OP, D\+R\+I\+V\+E\+F\+R\+WD, D\+R\+I\+V\+E\+B\+A\+CK) \end{DoxyCompactList}\item
void \hyperlink{group__lowerleveldrivesmeths_ga3b69cf4a718c842fbe758d3f4267214e}{Code\+Racer\+::set\+\_\+drive\+\_\+state} (drivestate state, uint8\+\_\+t frwdpin, uint8\+\_\+t backpin)
\begin{DoxyCompactList}\small\item\em Sets the specified drivestate for the drive connected to the sepecified pins (D\+R\+I\+V\+E\+S\+T\+OP, D\+R\+I\+V\+E\+F\+R\+WD, D\+R\+I\+V\+E\+B\+A\+CK) \end{DoxyCompactList}\item
void \hyperlink{group__lowerleveldrivesmeths_ga3d3ffb41783d34589e33cf61fed46c70}{Code\+Racer\+::set\+\_\+drives\+\_\+speed\+\_\+left\+\_\+right} (uint8\+\_\+t speedleft, uint8\+\_\+t speedright)
\begin{DoxyCompactList}\small\item\em Sets the speed for both of the drives. \end{DoxyCompactList}\item
void \hyperlink{group__lowerleveldrivesmeths_ga1ee3da20ec98a821ab97ced070974861}{Code\+Racer\+::set\+\_\+drive\+\_\+left\+\_\+speed} (uint8\+\_\+t speed)
\begin{DoxyCompactList}\small\item\em Sets the speed for the left side drive. \end{DoxyCompactList}\item
void \hyperlink{group__lowerleveldrivesmeths_gaf8805d0d620a2fb78c576f36a2c81073}{Code\+Racer\+::set\+\_\+drive\+\_\+right\+\_\+speed} (uint8\+\_\+t speed)
\begin{DoxyCompactList}\small\item\em Sets the speed for the right side drive. \end{DoxyCompactList}\item
void \hyperlink{group__lowerleveldrivesmeths_ga5d67c84606d5b39996a99fcd6e7eb314}{Code\+Racer\+::set\+\_\+drive\+\_\+speed} (uint8\+\_\+t speed, uint8\+\_\+t enablepin)
\begin{DoxyCompactList}\small\item\em Sets the speed for the drive of the enable pin connected to the specified pin. \end{DoxyCompactList}\end{DoxyCompactItemize}
\subsection{Detailed Description}
\subsection{Function Documentation}
\mbox{\Hypertarget{group__lowerleveldrivesmeths_ga5812df751da5b480240ccd633c515b83}\label{group__lowerleveldrivesmeths_ga5812df751da5b480240ccd633c515b83}}
\index{Methods@{Methods}!drives\+\_\+settings@{drives\+\_\+settings}}
\index{drives\+\_\+settings@{drives\+\_\+settings}!Methods@{Methods}}
\subsubsection{\texorpdfstring{drives\+\_\+settings()}{drives\_settings()}}
{\footnotesize\ttfamily void Code\+Racer\+::drives\+\_\+settings (\begin{DoxyParamCaption}\item[{uint8\+\_\+t}]{drive\+\_\+left\+\_\+speed, }\item[{uint8\+\_\+t}]{drive\+\_\+right\+\_\+speed, }\item[{unsigned long}]{turn\+\_\+left\+\_\+for\+\_\+ms, }\item[{unsigned long}]{turn\+\_\+right\+\_\+for\+\_\+ms }\end{DoxyParamCaption})}
Overwrites some drive settings. This will replace the defaults set by the values in the header file.
\begin{DoxyParams}{Parameters}
{\em drive\+\_\+left\+\_\+speed} & Speed of the left side drive \\
\hline
{\em drive\+\_\+right\+\_\+speed} & Speed of the right side drive \\
\hline
{\em turn\+\_\+left\+\_\+for\+\_\+ms} & Time in ms the racer will turn to the left around its center if turn\+\_\+left() is called \\
\hline
{\em turn\+\_\+right\+\_\+for\+\_\+ms} & Time in ms the racer will turn to the right around its center if turn\+\_\+right() is called \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
nothing
\end{DoxyReturn}
Definition at line 878 of file Code\+Racer.\+cpp.
\begin{DoxyCode}
879 \{
880 \_drive\_left\_speed = drive\_left\_speed;
881 \_drive\_right\_speed = drive\_right\_speed;
882 \_turn\_left\_for\_ms = turn\_left\_for\_ms;
883 \_turn\_right\_for\_ms = turn\_right\_for\_ms;
884 \}
\end{DoxyCode}
\mbox{\Hypertarget{group__lowerleveldrivesmeths_ga61ed9e0415a62a290cc5c59a0f740304}\label{group__lowerleveldrivesmeths_ga61ed9e0415a62a290cc5c59a0f740304}}
\index{Methods@{Methods}!set\+\_\+drives\+\_\+stop\+\_\+left\+\_\+right@{set\+\_\+drives\+\_\+stop\+\_\+left\+\_\+right}}
\index{set\+\_\+drives\+\_\+stop\+\_\+left\+\_\+right@{set\+\_\+drives\+\_\+stop\+\_\+left\+\_\+right}!Methods@{Methods}}
\subsubsection{\texorpdfstring{set\+\_\+drives\+\_\+stop\+\_\+left\+\_\+right()}{set\_drives\_stop\_left\_right()}}
{\footnotesize\ttfamily void Code\+Racer\+::set\+\_\+drives\+\_\+stop\+\_\+left\+\_\+right (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption})}
Stopps both drives.
\begin{DoxyReturn}{Returns}
nothing
\end{DoxyReturn}
Definition at line 889 of file Code\+Racer.\+cpp.
\begin{DoxyCode}
889 \{
890 set\_drive\_left\_state(DRIVESTOP);
891 set\_drive\_right\_state(DRIVESTOP);
892 \}
\end{DoxyCode}
\mbox{\Hypertarget{group__lowerleveldrivesmeths_ga802d2646d9cc0d766e1ac799c7917fa8}\label{group__lowerleveldrivesmeths_ga802d2646d9cc0d766e1ac799c7917fa8}}
\index{Methods@{Methods}!set\+\_\+drives\+\_\+states\+\_\+left\+\_\+right@{set\+\_\+drives\+\_\+states\+\_\+left\+\_\+right}}
\index{set\+\_\+drives\+\_\+states\+\_\+left\+\_\+right@{set\+\_\+drives\+\_\+states\+\_\+left\+\_\+right}!Methods@{Methods}}
\subsubsection{\texorpdfstring{set\+\_\+drives\+\_\+states\+\_\+left\+\_\+right()}{set\_drives\_states\_left\_right()}}
{\footnotesize\ttfamily void Code\+Racer\+::set\+\_\+drives\+\_\+states\+\_\+left\+\_\+right (\begin{DoxyParamCaption}\item[{drivestate}]{stateleft, }\item[{drivestate}]{stateright }\end{DoxyParamCaption})}
Sets both of the drives to a specified drivestate (D\+R\+I\+V\+E\+S\+T\+OP, D\+R\+I\+V\+E\+F\+R\+WD, D\+R\+I\+V\+E\+B\+A\+CK)
\begin{DoxyParams}{Parameters}
{\em stateleft} & drivestate to set for the left side drive \\
\hline
{\em stateright} & drivestate to set for the right side drive \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
nothing
\end{DoxyReturn}
Definition at line 899 of file Code\+Racer.\+cpp.
\begin{DoxyCode}
899 \{
900 set\_drive\_left\_state(stateleft);
901 set\_drive\_right\_state(stateright);
902 \}
\end{DoxyCode}
\mbox{\Hypertarget{group__lowerleveldrivesmeths_ga1eeb3cb47503c3011562f9c42828fab9}\label{group__lowerleveldrivesmeths_ga1eeb3cb47503c3011562f9c42828fab9}}
\index{Methods@{Methods}!set\+\_\+drive\+\_\+left\+\_\+state@{set\+\_\+drive\+\_\+left\+\_\+state}}
\index{set\+\_\+drive\+\_\+left\+\_\+state@{set\+\_\+drive\+\_\+left\+\_\+state}!Methods@{Methods}}
\subsubsection{\texorpdfstring{set\+\_\+drive\+\_\+left\+\_\+state()}{set\_drive\_left\_state()}}
{\footnotesize\ttfamily void Code\+Racer\+::set\+\_\+drive\+\_\+left\+\_\+state (\begin{DoxyParamCaption}\item[{drivestate}]{state }\end{DoxyParamCaption})}
Sets the left side drive to the specified drivestate (D\+R\+I\+V\+E\+S\+T\+OP, D\+R\+I\+V\+E\+F\+R\+WD, D\+R\+I\+V\+E\+B\+A\+CK)
\begin{DoxyParams}{Parameters}
{\em state} & drivestate to set for the left side drive \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
nothing
\end{DoxyReturn}
Definition at line 908 of file Code\+Racer.\+cpp.
\begin{DoxyCode}
908 \{
909 set\_drive\_state(state, \_drive\_left\_frwd\_pin, \_drive\_left\_back\_pin);
910 \}
\end{DoxyCode}
\mbox{\Hypertarget{group__lowerleveldrivesmeths_ga1b34ec9cee1f21cd15db310167a2faa5}\label{group__lowerleveldrivesmeths_ga1b34ec9cee1f21cd15db310167a2faa5}}
\index{Methods@{Methods}!set\+\_\+drive\+\_\+right\+\_\+state@{set\+\_\+drive\+\_\+right\+\_\+state}}
\index{set\+\_\+drive\+\_\+right\+\_\+state@{set\+\_\+drive\+\_\+right\+\_\+state}!Methods@{Methods}}
\subsubsection{\texorpdfstring{set\+\_\+drive\+\_\+right\+\_\+state()}{set\_drive\_right\_state()}}
{\footnotesize\ttfamily void Code\+Racer\+::set\+\_\+drive\+\_\+right\+\_\+state (\begin{DoxyParamCaption}\item[{drivestate}]{state }\end{DoxyParamCaption})}
Sets the right side drive to the specified drivestate (D\+R\+I\+V\+E\+S\+T\+OP, D\+R\+I\+V\+E\+F\+R\+WD, D\+R\+I\+V\+E\+B\+A\+CK)
\begin{DoxyParams}{Parameters}
{\em state} & drivestate to set for the right side drive \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
nothing
\end{DoxyReturn}
Definition at line 916 of file Code\+Racer.\+cpp.
\begin{DoxyCode}
916 \{
917 set\_drive\_state(state, \_drive\_right\_frwd\_pin, \_drive\_right\_back\_pin);
918 \}
\end{DoxyCode}
\mbox{\Hypertarget{group__lowerleveldrivesmeths_ga3b69cf4a718c842fbe758d3f4267214e}\label{group__lowerleveldrivesmeths_ga3b69cf4a718c842fbe758d3f4267214e}}
\index{Methods@{Methods}!set\+\_\+drive\+\_\+state@{set\+\_\+drive\+\_\+state}}
\index{set\+\_\+drive\+\_\+state@{set\+\_\+drive\+\_\+state}!Methods@{Methods}}
\subsubsection{\texorpdfstring{set\+\_\+drive\+\_\+state()}{set\_drive\_state()}}
{\footnotesize\ttfamily void Code\+Racer\+::set\+\_\+drive\+\_\+state (\begin{DoxyParamCaption}\item[{drivestate}]{state, }\item[{uint8\+\_\+t}]{frwdpin, }\item[{uint8\+\_\+t}]{backpin }\end{DoxyParamCaption})}
Sets the specified drivestate for the drive connected to the sepecified pins (D\+R\+I\+V\+E\+S\+T\+OP, D\+R\+I\+V\+E\+F\+R\+WD, D\+R\+I\+V\+E\+B\+A\+CK)
\begin{DoxyParams}{Parameters}
{\em state} & drivestate to set for the connected drive \\
\hline
{\em frwdpin} & Pin the forward signal of the drive device driver is connected at \\
\hline
{\em backpin} & Pin the backward signal of the drive device driver is connected at \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
nothing
\end{DoxyReturn}
Definition at line 926 of file Code\+Racer.\+cpp.
\begin{DoxyCode}
926 \{
927 \textcolor{keywordflow}{switch} (state) \{
928 \textcolor{keywordflow}{case} DRIVESTOP:
929 digitalWrite(frwdpin, LOW);
930 digitalWrite(backpin, LOW);
931 \textcolor{keywordflow}{break};
932 \textcolor{keywordflow}{case} DRIVEFRWD:
933 digitalWrite(frwdpin, HIGH);
934 digitalWrite(backpin, LOW);
935 \textcolor{keywordflow}{break};
936 \textcolor{keywordflow}{case} DRIVEBACK:
937 digitalWrite(frwdpin, LOW);
938 digitalWrite(backpin, HIGH);
939 \textcolor{keywordflow}{break};
940 \}
941 \}
\end{DoxyCode}
\mbox{\Hypertarget{group__lowerleveldrivesmeths_ga3d3ffb41783d34589e33cf61fed46c70}\label{group__lowerleveldrivesmeths_ga3d3ffb41783d34589e33cf61fed46c70}}
\index{Methods@{Methods}!set\+\_\+drives\+\_\+speed\+\_\+left\+\_\+right@{set\+\_\+drives\+\_\+speed\+\_\+left\+\_\+right}}
\index{set\+\_\+drives\+\_\+speed\+\_\+left\+\_\+right@{set\+\_\+drives\+\_\+speed\+\_\+left\+\_\+right}!Methods@{Methods}}
\subsubsection{\texorpdfstring{set\+\_\+drives\+\_\+speed\+\_\+left\+\_\+right()}{set\_drives\_speed\_left\_right()}}
{\footnotesize\ttfamily void Code\+Racer\+::set\+\_\+drives\+\_\+speed\+\_\+left\+\_\+right (\begin{DoxyParamCaption}\item[{uint8\+\_\+t}]{speedleft, }\item[{uint8\+\_\+t}]{speedright }\end{DoxyParamCaption})}
Sets the speed for both of the drives.
The drive will run with that speed afterwards. The direction of the drive has to be specfied with one of the set\+\_\+drive\+\_\+state methods before
\begin{DoxyParams}{Parameters}
{\em speedleft} & speed of the left side drive. 0$<$=speed$<$=255 \\
\hline
{\em speedright} & speed of the right side drive. 0$<$=speed$<$=255 \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
nothing
\end{DoxyReturn}
Definition at line 950 of file Code\+Racer.\+cpp.
\begin{DoxyCode}
950 \{
951 set\_drive\_left\_speed(speedleft);
952 set\_drive\_right\_speed(speedright);
953 \}
\end{DoxyCode}
\mbox{\Hypertarget{group__lowerleveldrivesmeths_ga1ee3da20ec98a821ab97ced070974861}\label{group__lowerleveldrivesmeths_ga1ee3da20ec98a821ab97ced070974861}}
\index{Methods@{Methods}!set\+\_\+drive\+\_\+left\+\_\+speed@{set\+\_\+drive\+\_\+left\+\_\+speed}}
\index{set\+\_\+drive\+\_\+left\+\_\+speed@{set\+\_\+drive\+\_\+left\+\_\+speed}!Methods@{Methods}}
\subsubsection{\texorpdfstring{set\+\_\+drive\+\_\+left\+\_\+speed()}{set\_drive\_left\_speed()}}
{\footnotesize\ttfamily void Code\+Racer\+::set\+\_\+drive\+\_\+left\+\_\+speed (\begin{DoxyParamCaption}\item[{uint8\+\_\+t}]{speed }\end{DoxyParamCaption})}
Sets the speed for the left side drive.
The drive will run with that speed afterwards. The direction of the drive has to be specfied with one of the set\+\_\+drive\+\_\+state methods before
\begin{DoxyParams}{Parameters}
{\em speed} & speed of the left side drive. 0$<$=speed$<$=255 \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
nothing
\end{DoxyReturn}
Definition at line 961 of file Code\+Racer.\+cpp.
\begin{DoxyCode}
961 \{
962 set\_drive\_speed(speed, \_drive\_left\_enable\_pin);
963 \}
\end{DoxyCode}
\mbox{\Hypertarget{group__lowerleveldrivesmeths_gaf8805d0d620a2fb78c576f36a2c81073}\label{group__lowerleveldrivesmeths_gaf8805d0d620a2fb78c576f36a2c81073}}
\index{Methods@{Methods}!set\+\_\+drive\+\_\+right\+\_\+speed@{set\+\_\+drive\+\_\+right\+\_\+speed}}
\index{set\+\_\+drive\+\_\+right\+\_\+speed@{set\+\_\+drive\+\_\+right\+\_\+speed}!Methods@{Methods}}
\subsubsection{\texorpdfstring{set\+\_\+drive\+\_\+right\+\_\+speed()}{set\_drive\_right\_speed()}}
{\footnotesize\ttfamily void Code\+Racer\+::set\+\_\+drive\+\_\+right\+\_\+speed (\begin{DoxyParamCaption}\item[{uint8\+\_\+t}]{speed }\end{DoxyParamCaption})}
Sets the speed for the right side drive.
The drive will run with that speed afterwards. The direction of the drive has to be specfied with one of the set\+\_\+drive\+\_\+state methods before
\begin{DoxyParams}{Parameters}
{\em speed} & speed of the right side drive. 0$<$=speed$<$=255 \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
nothing
\end{DoxyReturn}
Definition at line 971 of file Code\+Racer.\+cpp.
\begin{DoxyCode}
971 \{
972 set\_drive\_speed(speed, \_drive\_right\_enable\_pin);
973 \}
\end{DoxyCode}
\mbox{\Hypertarget{group__lowerleveldrivesmeths_ga5d67c84606d5b39996a99fcd6e7eb314}\label{group__lowerleveldrivesmeths_ga5d67c84606d5b39996a99fcd6e7eb314}}
\index{Methods@{Methods}!set\+\_\+drive\+\_\+speed@{set\+\_\+drive\+\_\+speed}}
\index{set\+\_\+drive\+\_\+speed@{set\+\_\+drive\+\_\+speed}!Methods@{Methods}}
\subsubsection{\texorpdfstring{set\+\_\+drive\+\_\+speed()}{set\_drive\_speed()}}
{\footnotesize\ttfamily void Code\+Racer\+::set\+\_\+drive\+\_\+speed (\begin{DoxyParamCaption}\item[{uint8\+\_\+t}]{speed, }\item[{uint8\+\_\+t}]{enablepin }\end{DoxyParamCaption})}
Sets the speed for the drive of the enable pin connected to the specified pin.
The drive will run with that speed afterwards. The direction of the drive has to be specfied with one of the set\+\_\+drive\+\_\+state methods before
\begin{DoxyParams}{Parameters}
{\em speed} & speed of the drive. 0$<$=speed$<$=255 \\
\hline
{\em enablepin} & Pin the drives device driver enable pin is connected at \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
nothing
\end{DoxyReturn}
Definition at line 982 of file Code\+Racer.\+cpp.
\begin{DoxyCode}
982 \{
983 \_analog\_write(enablepin, (\textcolor{keywordtype}{int})speed);
984 \}
\end{DoxyCode}

View file

@ -0,0 +1,494 @@
\hypertarget{group__higherlevelmeths}{}\section{Methods}
\label{group__higherlevelmeths}\index{Methods@{Methods}}
\subsection*{Functions}
\begin{DoxyCompactItemize}
\item
void \hyperlink{group__higherlevelmeths_ga71df7ac5e41ae776a6c786d3dc36f35a}{Code\+Racer\+::stop\+\_\+driving} ()
\begin{DoxyCompactList}\small\item\em Stops the racer and sets status L\+E\+Ds. \end{DoxyCompactList}\item
void \hyperlink{group__higherlevelmeths_ga8be6a850099812153dcf5768d7fc8b8c}{Code\+Racer\+::drive\+\_\+forward} ()
\begin{DoxyCompactList}\small\item\em Sets the speed and the directions of both drives so that it will move forward. \end{DoxyCompactList}\item
void \hyperlink{group__higherlevelmeths_gaae6fc379ec43cbe2cb2f63fbd12dbe0d}{Code\+Racer\+::drive\+\_\+forward} (uint8\+\_\+t left\+\_\+speed, uint8\+\_\+t right\+\_\+speed)
\begin{DoxyCompactList}\small\item\em Sets the speed as specified for both drives and the directions of both drives so that it will move forward. \end{DoxyCompactList}\item
void \hyperlink{group__higherlevelmeths_ga98aa8a5a46f769d59e6c1067c8418cfb}{Code\+Racer\+::drive\+\_\+backward} ()
\begin{DoxyCompactList}\small\item\em Sets the speed and the directions of both drives so that it will move backward. \end{DoxyCompactList}\item
void \hyperlink{group__higherlevelmeths_ga6cd8356ac76360b014db6170276b6b30}{Code\+Racer\+::drive\+\_\+backward} (uint8\+\_\+t left\+\_\+speed, uint8\+\_\+t right\+\_\+speed)
\begin{DoxyCompactList}\small\item\em Sets the speed as specified for both drives and the directions of both drives so that it will move backward. \end{DoxyCompactList}\item
void \hyperlink{group__higherlevelmeths_ga86b7caf6ff46e9d1ad90ed507864b175}{Code\+Racer\+::turn\+\_\+left} ()
\begin{DoxyCompactList}\small\item\em Will turn the racer to the left for the internally stroe time in ms and with the internally stored speed. \end{DoxyCompactList}\item
void \hyperlink{group__higherlevelmeths_ga30e1ec3fbbc206f93ea66dbf91b5fd95}{Code\+Racer\+::turn\+\_\+left} (unsigned long turn\+\_\+for\+\_\+ms)
\begin{DoxyCompactList}\small\item\em Will turn the racer to the left for the specified time in ms and with the internally stored speed. \end{DoxyCompactList}\item
void \hyperlink{group__higherlevelmeths_gae6daa587199e5bf95b1aac675de53b0e}{Code\+Racer\+::turn\+\_\+left} (unsigned long turn\+\_\+for\+\_\+ms, uint8\+\_\+t left\+\_\+speed, uint8\+\_\+t right\+\_\+speed)
\begin{DoxyCompactList}\small\item\em Will turn the racer to the left for the specified time in ms and with the specified speed. \end{DoxyCompactList}\item
void \hyperlink{group__higherlevelmeths_ga8969fb2d6e2b5ac44a99197931e6b8da}{Code\+Racer\+::turn\+\_\+right} ()
\begin{DoxyCompactList}\small\item\em Will turn the racer to the right for the internally stroe time in ms and with the internally stored speed. \end{DoxyCompactList}\item
void \hyperlink{group__higherlevelmeths_gae1f175aad98d773b0206f483ae0bb4ea}{Code\+Racer\+::turn\+\_\+right} (unsigned long turn\+\_\+for\+\_\+ms)
\begin{DoxyCompactList}\small\item\em Will turn the racer to the right for the specified time in ms and with the internally stored speed. \end{DoxyCompactList}\item
void \hyperlink{group__higherlevelmeths_gad10b3457489cc7e25ffb4d64c539528a}{Code\+Racer\+::turn\+\_\+right} (unsigned long turn\+\_\+for\+\_\+ms, uint8\+\_\+t left\+\_\+speed, uint8\+\_\+t right\+\_\+speed)
\begin{DoxyCompactList}\small\item\em Will turn the racer to the right for the specified time in ms and with the specified speed. \end{DoxyCompactList}\item
void \hyperlink{group__higherlevelmeths_ga128683caea019a89bce06f722ba92556}{Code\+Racer\+::start\+\_\+stop\+\_\+at\+\_\+min\+\_\+distance} ()
\begin{DoxyCompactList}\small\item\em Enables to stopp the racer if during a distance measurement the measured distance is smaller then the internally stored minimal distance. \end{DoxyCompactList}\item
void \hyperlink{group__higherlevelmeths_ga64bc1b2a8ed5bc3ec5e706fa70a1385d}{Code\+Racer\+::start\+\_\+stop\+\_\+at\+\_\+min\+\_\+distance} (unsigned long min\+\_\+distance\+\_\+cm)
\begin{DoxyCompactList}\small\item\em Enables to stopp the racer if during a distance measurement the measured distance is smaller then the specified minimal distance. \end{DoxyCompactList}\item
void \hyperlink{group__higherlevelmeths_gac664109241d08b8dc52db5721f394b22}{Code\+Racer\+::stop\+\_\+stop\+\_\+at\+\_\+min\+\_\+distance} ()
\begin{DoxyCompactList}\small\item\em Disables to stopp the racer if during a distance measurement the measured distance is smaller then the specified minimal distance. \end{DoxyCompactList}\item
bool \hyperlink{group__higherlevelmeths_ga34e2fe2123e76fd844482dfef6c5a9c8}{Code\+Racer\+::start\+\_\+stop} ()
\begin{DoxyCompactList}\small\item\em This will return if the codracer is in active mode or not. \end{DoxyCompactList}\end{DoxyCompactItemize}
\subsection{Detailed Description}
\subsection{Function Documentation}
\mbox{\Hypertarget{group__higherlevelmeths_ga71df7ac5e41ae776a6c786d3dc36f35a}\label{group__higherlevelmeths_ga71df7ac5e41ae776a6c786d3dc36f35a}}
\index{Methods@{Methods}!stop\+\_\+driving@{stop\+\_\+driving}}
\index{stop\+\_\+driving@{stop\+\_\+driving}!Methods@{Methods}}
\subsubsection{\texorpdfstring{stop\+\_\+driving()}{stop\_driving()}}
{\footnotesize\ttfamily void Code\+Racer\+::stop\+\_\+driving (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption})}
Stops the racer and sets status L\+E\+Ds.
\begin{DoxyReturn}{Returns}
nothing
\end{DoxyReturn}
Definition at line 161 of file Code\+Racer.\+cpp.
\begin{DoxyCode}
161 \{
162 \_servo\_sweep = \textcolor{keyword}{false};
163 \_drive = \textcolor{keyword}{false};
164 set\_drives\_stop\_left\_right();
165 set\_leds\_left\_stop\_frwd\_right(LEDOFF, LEDON, LEDOFF, LEDOFF);
166 \}
\end{DoxyCode}
\mbox{\Hypertarget{group__higherlevelmeths_ga8be6a850099812153dcf5768d7fc8b8c}\label{group__higherlevelmeths_ga8be6a850099812153dcf5768d7fc8b8c}}
\index{Methods@{Methods}!drive\+\_\+forward@{drive\+\_\+forward}}
\index{drive\+\_\+forward@{drive\+\_\+forward}!Methods@{Methods}}
\subsubsection{\texorpdfstring{drive\+\_\+forward()}{drive\_forward()}\hspace{0.1cm}{\footnotesize\ttfamily [1/2]}}
{\footnotesize\ttfamily void Code\+Racer\+::drive\+\_\+forward (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption})}
Sets the speed and the directions of both drives so that it will move forward.
The speed is taken from the header file or set by one of the methods defined in the lower level drive methods section \begin{DoxyReturn}{Returns}
nothing
\end{DoxyReturn}
Definition at line 173 of file Code\+Racer.\+cpp.
\begin{DoxyCode}
174 \{
175 drive\_forward(\_drive\_left\_speed, \_drive\_right\_speed);
176 \}
\end{DoxyCode}
Here is the call graph for this function\+:
\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=206pt]{d2/d40/group__higherlevelmeths_ga8be6a850099812153dcf5768d7fc8b8c_cgraph}
\end{center}
\end{figure}
\mbox{\Hypertarget{group__higherlevelmeths_gaae6fc379ec43cbe2cb2f63fbd12dbe0d}\label{group__higherlevelmeths_gaae6fc379ec43cbe2cb2f63fbd12dbe0d}}
\index{Methods@{Methods}!drive\+\_\+forward@{drive\+\_\+forward}}
\index{drive\+\_\+forward@{drive\+\_\+forward}!Methods@{Methods}}
\subsubsection{\texorpdfstring{drive\+\_\+forward()}{drive\_forward()}\hspace{0.1cm}{\footnotesize\ttfamily [2/2]}}
{\footnotesize\ttfamily void Code\+Racer\+::drive\+\_\+forward (\begin{DoxyParamCaption}\item[{uint8\+\_\+t}]{left\+\_\+speed, }\item[{uint8\+\_\+t}]{right\+\_\+speed }\end{DoxyParamCaption})}
Sets the speed as specified for both drives and the directions of both drives so that it will move forward.
The specified speed values for both drives will be stored internaly so next time if you use e.\+g. drive\+\_\+forward() exactly the here specified values will be taken.
\begin{DoxyParams}{Parameters}
{\em left\+\_\+speed} & speed for the left side drive. 0$<$=speed$<$=255 \\
\hline
{\em right\+\_\+speed} & speed for the right side drive. 0$<$=speed$<$=255 \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
nothing
\end{DoxyReturn}
Definition at line 185 of file Code\+Racer.\+cpp.
\begin{DoxyCode}
186 \{
187 set\_drives\_states\_left\_right(DRIVEFRWD, DRIVEFRWD);
188 set\_drives\_speed\_left\_right(left\_speed, right\_speed);
189 set\_leds\_left\_stop\_frwd\_right(LEDOFF, LEDOFF, LEDON, LEDOFF);
190 \_drive = \textcolor{keyword}{true};
191 \_drive\_set\_at\_ms = millis();
192 \}
\end{DoxyCode}
\mbox{\Hypertarget{group__higherlevelmeths_ga98aa8a5a46f769d59e6c1067c8418cfb}\label{group__higherlevelmeths_ga98aa8a5a46f769d59e6c1067c8418cfb}}
\index{Methods@{Methods}!drive\+\_\+backward@{drive\+\_\+backward}}
\index{drive\+\_\+backward@{drive\+\_\+backward}!Methods@{Methods}}
\subsubsection{\texorpdfstring{drive\+\_\+backward()}{drive\_backward()}\hspace{0.1cm}{\footnotesize\ttfamily [1/2]}}
{\footnotesize\ttfamily void Code\+Racer\+::drive\+\_\+backward (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption})}
Sets the speed and the directions of both drives so that it will move backward.
The speed is taken from the header file or set by one of the methods defined in the lower level drive methods section \begin{DoxyReturn}{Returns}
nothing
\end{DoxyReturn}
Definition at line 199 of file Code\+Racer.\+cpp.
\begin{DoxyCode}
200 \{
201 drive\_backward(\_drive\_left\_speed, \_drive\_right\_speed);
202 \}
\end{DoxyCode}
\mbox{\Hypertarget{group__higherlevelmeths_ga6cd8356ac76360b014db6170276b6b30}\label{group__higherlevelmeths_ga6cd8356ac76360b014db6170276b6b30}}
\index{Methods@{Methods}!drive\+\_\+backward@{drive\+\_\+backward}}
\index{drive\+\_\+backward@{drive\+\_\+backward}!Methods@{Methods}}
\subsubsection{\texorpdfstring{drive\+\_\+backward()}{drive\_backward()}\hspace{0.1cm}{\footnotesize\ttfamily [2/2]}}
{\footnotesize\ttfamily void Code\+Racer\+::drive\+\_\+backward (\begin{DoxyParamCaption}\item[{uint8\+\_\+t}]{left\+\_\+speed, }\item[{uint8\+\_\+t}]{right\+\_\+speed }\end{DoxyParamCaption})}
Sets the speed as specified for both drives and the directions of both drives so that it will move backward.
The specified speed values for both drives will be stored internaly so next time if you use e.\+g. drive\+\_\+backward() exactly the here specified values will be taken.
\begin{DoxyParams}{Parameters}
{\em left\+\_\+speed} & speed for the left side drive. 0$<$=speed$<$=255 \\
\hline
{\em right\+\_\+speed} & speed for the right side drive. 0$<$=speed$<$=255 \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
nothing
\end{DoxyReturn}
Definition at line 211 of file Code\+Racer.\+cpp.
\begin{DoxyCode}
212 \{
213 set\_drives\_states\_left\_right(DRIVEBACK, DRIVEBACK);
214 set\_drives\_speed\_left\_right(left\_speed, right\_speed);
215 set\_leds\_left\_stop\_frwd\_right(LEDOFF, LEDON, LEDON, LEDOFF);
216 \_drive = \textcolor{keyword}{true};
217 \_drive\_set\_at\_ms = millis();
218 \}
\end{DoxyCode}
\mbox{\Hypertarget{group__higherlevelmeths_ga86b7caf6ff46e9d1ad90ed507864b175}\label{group__higherlevelmeths_ga86b7caf6ff46e9d1ad90ed507864b175}}
\index{Methods@{Methods}!turn\+\_\+left@{turn\+\_\+left}}
\index{turn\+\_\+left@{turn\+\_\+left}!Methods@{Methods}}
\subsubsection{\texorpdfstring{turn\+\_\+left()}{turn\_left()}\hspace{0.1cm}{\footnotesize\ttfamily [1/3]}}
{\footnotesize\ttfamily void Code\+Racer\+::turn\+\_\+left (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption})}
Will turn the racer to the left for the internally stroe time in ms and with the internally stored speed.
The speed for both the left side and right side drive can be set by the methods described in the lower level drive section. The turn to left time can be set by thoose methods as well. The method is delayed until the racer has turned. \begin{DoxyReturn}{Returns}
nothing
\end{DoxyReturn}
Definition at line 226 of file Code\+Racer.\+cpp.
\begin{DoxyCode}
227 \{
228 turn\_left(\_turn\_left\_for\_ms, \_drive\_left\_speed, \_drive\_right\_speed);
229 \}
\end{DoxyCode}
\mbox{\Hypertarget{group__higherlevelmeths_ga30e1ec3fbbc206f93ea66dbf91b5fd95}\label{group__higherlevelmeths_ga30e1ec3fbbc206f93ea66dbf91b5fd95}}
\index{Methods@{Methods}!turn\+\_\+left@{turn\+\_\+left}}
\index{turn\+\_\+left@{turn\+\_\+left}!Methods@{Methods}}
\subsubsection{\texorpdfstring{turn\+\_\+left()}{turn\_left()}\hspace{0.1cm}{\footnotesize\ttfamily [2/3]}}
{\footnotesize\ttfamily void Code\+Racer\+::turn\+\_\+left (\begin{DoxyParamCaption}\item[{unsigned long}]{turn\+\_\+for\+\_\+ms }\end{DoxyParamCaption})}
Will turn the racer to the left for the specified time in ms and with the internally stored speed.
The specified duration of time is stored internally and will be used next time by e.\+g. turn\+\_\+left()
\begin{DoxyParams}{Parameters}
{\em turn\+\_\+for\+\_\+ms} & duration of time in ms to turn the racer \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
nothing
\end{DoxyReturn}
Definition at line 237 of file Code\+Racer.\+cpp.
\begin{DoxyCode}
238 \{
239 turn\_left(turn\_for\_ms, \_drive\_left\_speed, \_drive\_right\_speed);
240 \}
\end{DoxyCode}
\mbox{\Hypertarget{group__higherlevelmeths_gae6daa587199e5bf95b1aac675de53b0e}\label{group__higherlevelmeths_gae6daa587199e5bf95b1aac675de53b0e}}
\index{Methods@{Methods}!turn\+\_\+left@{turn\+\_\+left}}
\index{turn\+\_\+left@{turn\+\_\+left}!Methods@{Methods}}
\subsubsection{\texorpdfstring{turn\+\_\+left()}{turn\_left()}\hspace{0.1cm}{\footnotesize\ttfamily [3/3]}}
{\footnotesize\ttfamily void Code\+Racer\+::turn\+\_\+left (\begin{DoxyParamCaption}\item[{unsigned long}]{turn\+\_\+for\+\_\+ms, }\item[{uint8\+\_\+t}]{left\+\_\+speed, }\item[{uint8\+\_\+t}]{right\+\_\+speed }\end{DoxyParamCaption})}
Will turn the racer to the left for the specified time in ms and with the specified speed.
The specified duration of time and the specified speeds are stored internally and will be used next time by e.\+g. turn\+\_\+left()
\begin{DoxyParams}{Parameters}
{\em turn\+\_\+for\+\_\+ms} & duration of time in ms to turn the racer \\
\hline
{\em left\+\_\+speed} & speed for the left side drive \\
\hline
{\em right\+\_\+speed} & speed for the right side drive \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
nothing
\end{DoxyReturn}
Definition at line 250 of file Code\+Racer.\+cpp.
\begin{DoxyCode}
251 \{
252 \_drive = \textcolor{keyword}{false};
253 set\_leds\_left\_stop\_frwd\_right(LEDON, LEDOFF, LEDOFF, LEDOFF); \textcolor{comment}{// LEDs setzen}
254 set\_drives\_states\_left\_right(DRIVEBACK, DRIVEFRWD);
255 set\_drives\_speed\_left\_right(left\_speed, right\_speed);
256 \textcolor{comment}{// wait set delay for the timed turn}
257 \_turn\_left\_for\_ms = turn\_for\_ms;
258 delay(\_turn\_left\_for\_ms);
259 \textcolor{comment}{// stop drives again}
260 set\_drives\_stop\_left\_right();
261 \}
\end{DoxyCode}
\mbox{\Hypertarget{group__higherlevelmeths_ga8969fb2d6e2b5ac44a99197931e6b8da}\label{group__higherlevelmeths_ga8969fb2d6e2b5ac44a99197931e6b8da}}
\index{Methods@{Methods}!turn\+\_\+right@{turn\+\_\+right}}
\index{turn\+\_\+right@{turn\+\_\+right}!Methods@{Methods}}
\subsubsection{\texorpdfstring{turn\+\_\+right()}{turn\_right()}\hspace{0.1cm}{\footnotesize\ttfamily [1/3]}}
{\footnotesize\ttfamily void Code\+Racer\+::turn\+\_\+right (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption})}
Will turn the racer to the right for the internally stroe time in ms and with the internally stored speed.
The speed for both the left side and right side drive can be set by the methods described in the lower level drive section. The turn to right time can be set by thoose methods as well. The method is delayed until the racer has turned. \begin{DoxyReturn}{Returns}
nothing
\end{DoxyReturn}
Definition at line 269 of file Code\+Racer.\+cpp.
\begin{DoxyCode}
270 \{
271 turn\_right(\_turn\_right\_for\_ms, \_drive\_left\_speed, \_drive\_right\_speed);
272 \}
\end{DoxyCode}
\mbox{\Hypertarget{group__higherlevelmeths_gae1f175aad98d773b0206f483ae0bb4ea}\label{group__higherlevelmeths_gae1f175aad98d773b0206f483ae0bb4ea}}
\index{Methods@{Methods}!turn\+\_\+right@{turn\+\_\+right}}
\index{turn\+\_\+right@{turn\+\_\+right}!Methods@{Methods}}
\subsubsection{\texorpdfstring{turn\+\_\+right()}{turn\_right()}\hspace{0.1cm}{\footnotesize\ttfamily [2/3]}}
{\footnotesize\ttfamily void Code\+Racer\+::turn\+\_\+right (\begin{DoxyParamCaption}\item[{unsigned long}]{turn\+\_\+for\+\_\+ms }\end{DoxyParamCaption})}
Will turn the racer to the right for the specified time in ms and with the internally stored speed.
The specified duration of time is stored internally and will be used next time by e.\+g. turn\+\_\+right()
\begin{DoxyParams}{Parameters}
{\em turn\+\_\+for\+\_\+ms} & duration of time in ms to turn the racer \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
nothing
\end{DoxyReturn}
Definition at line 280 of file Code\+Racer.\+cpp.
\begin{DoxyCode}
281 \{
282 turn\_right(turn\_for\_ms, \_drive\_left\_speed, \_drive\_right\_speed);
283 \}
\end{DoxyCode}
\mbox{\Hypertarget{group__higherlevelmeths_gad10b3457489cc7e25ffb4d64c539528a}\label{group__higherlevelmeths_gad10b3457489cc7e25ffb4d64c539528a}}
\index{Methods@{Methods}!turn\+\_\+right@{turn\+\_\+right}}
\index{turn\+\_\+right@{turn\+\_\+right}!Methods@{Methods}}
\subsubsection{\texorpdfstring{turn\+\_\+right()}{turn\_right()}\hspace{0.1cm}{\footnotesize\ttfamily [3/3]}}
{\footnotesize\ttfamily void Code\+Racer\+::turn\+\_\+right (\begin{DoxyParamCaption}\item[{unsigned long}]{turn\+\_\+for\+\_\+ms, }\item[{uint8\+\_\+t}]{left\+\_\+speed, }\item[{uint8\+\_\+t}]{right\+\_\+speed }\end{DoxyParamCaption})}
Will turn the racer to the right for the specified time in ms and with the specified speed.
The specified duration of time and the specified speeds are stored internally and will be used next time by e.\+g. turn\+\_\+right()
\begin{DoxyParams}{Parameters}
{\em turn\+\_\+for\+\_\+ms} & duration of time in ms to turn the racer \\
\hline
{\em left\+\_\+speed} & speed for the left side drive \\
\hline
{\em right\+\_\+speed} & speed for the right side drive \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
nothing
\end{DoxyReturn}
Definition at line 293 of file Code\+Racer.\+cpp.
\begin{DoxyCode}
294 \{
295 \_drive = \textcolor{keyword}{false};
296 set\_leds\_left\_stop\_frwd\_right(LEDOFF, LEDOFF, LEDOFF, LEDON); \textcolor{comment}{// LEDs setzen}
297 set\_drives\_states\_left\_right(DRIVEFRWD, DRIVEBACK);
298 set\_drives\_speed\_left\_right(left\_speed, right\_speed);
299 \textcolor{comment}{// wait set delay for the timed turn}
300 \_turn\_right\_for\_ms = turn\_for\_ms;
301 delay(\_turn\_right\_for\_ms);
302 \textcolor{comment}{// stop drives again}
303 set\_drives\_stop\_left\_right();
304 \}
\end{DoxyCode}
\mbox{\Hypertarget{group__higherlevelmeths_ga128683caea019a89bce06f722ba92556}\label{group__higherlevelmeths_ga128683caea019a89bce06f722ba92556}}
\index{Methods@{Methods}!start\+\_\+stop\+\_\+at\+\_\+min\+\_\+distance@{start\+\_\+stop\+\_\+at\+\_\+min\+\_\+distance}}
\index{start\+\_\+stop\+\_\+at\+\_\+min\+\_\+distance@{start\+\_\+stop\+\_\+at\+\_\+min\+\_\+distance}!Methods@{Methods}}
\subsubsection{\texorpdfstring{start\+\_\+stop\+\_\+at\+\_\+min\+\_\+distance()}{start\_stop\_at\_min\_distance()}\hspace{0.1cm}{\footnotesize\ttfamily [1/2]}}
{\footnotesize\ttfamily void Code\+Racer\+::start\+\_\+stop\+\_\+at\+\_\+min\+\_\+distance (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption})}
Enables to stopp the racer if during a distance measurement the measured distance is smaller then the internally stored minimal distance.
This allow all of the none-\/single shot ultra sonic measurement methods to stopp the racer in the case the measured distance is smaller than minimal distance. This is just the enablement -\/ you have to call one of the none-\/single-\/shot ultra sonic measurement methods continously while driving and maybe sweeping the servo. If the racer was stopped can be checked with stopped\+\_\+at\+\_\+min\+\_\+distance() -\/ it will return true in that case. The minimal distance can be set by the ultrasonic sensor setter methods. There is an example coming with the coderacer libary that you can load and get an idea how that works. \begin{DoxyReturn}{Returns}
nothing
\end{DoxyReturn}
Definition at line 314 of file Code\+Racer.\+cpp.
\begin{DoxyCode}
314 \{
315 start\_stop\_at\_min\_distance(\_usonic\_stop\_distance\_cm);
316 \}
\end{DoxyCode}
\mbox{\Hypertarget{group__higherlevelmeths_ga64bc1b2a8ed5bc3ec5e706fa70a1385d}\label{group__higherlevelmeths_ga64bc1b2a8ed5bc3ec5e706fa70a1385d}}
\index{Methods@{Methods}!start\+\_\+stop\+\_\+at\+\_\+min\+\_\+distance@{start\+\_\+stop\+\_\+at\+\_\+min\+\_\+distance}}
\index{start\+\_\+stop\+\_\+at\+\_\+min\+\_\+distance@{start\+\_\+stop\+\_\+at\+\_\+min\+\_\+distance}!Methods@{Methods}}
\subsubsection{\texorpdfstring{start\+\_\+stop\+\_\+at\+\_\+min\+\_\+distance()}{start\_stop\_at\_min\_distance()}\hspace{0.1cm}{\footnotesize\ttfamily [2/2]}}
{\footnotesize\ttfamily void Code\+Racer\+::start\+\_\+stop\+\_\+at\+\_\+min\+\_\+distance (\begin{DoxyParamCaption}\item[{unsigned long}]{min\+\_\+distance\+\_\+cm }\end{DoxyParamCaption})}
Enables to stopp the racer if during a distance measurement the measured distance is smaller then the specified minimal distance.
This is almos the same as described for start\+\_\+stop\+\_\+at\+\_\+min\+\_\+distance(). You can specify the distance in cm here -\/ this value will be stored internally and used by start\+\_\+stop\+\_\+at\+\_\+min\+\_\+distance() next time.
\begin{DoxyParams}{Parameters}
{\em min\+\_\+distance\+\_\+cm} & the minimal disctance in cm \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
nothing
\end{DoxyReturn}
Definition at line 324 of file Code\+Racer.\+cpp.
\begin{DoxyCode}
324 \{
325 \textcolor{keywordflow}{if} (\textcolor{keyword}{false} == \_coderacer\_stop\_at\_distance\_enabled) \{
326 \_coderacer\_stopped\_at\_min\_distance = \textcolor{keyword}{false};
327 usonic\_set\_stop\_distance\_cm(min\_distance\_cm);
328 \_coderacer\_stop\_at\_distance\_enabled = \textcolor{keyword}{true};
329 \}
330 \}
\end{DoxyCode}
\mbox{\Hypertarget{group__higherlevelmeths_gac664109241d08b8dc52db5721f394b22}\label{group__higherlevelmeths_gac664109241d08b8dc52db5721f394b22}}
\index{Methods@{Methods}!stop\+\_\+stop\+\_\+at\+\_\+min\+\_\+distance@{stop\+\_\+stop\+\_\+at\+\_\+min\+\_\+distance}}
\index{stop\+\_\+stop\+\_\+at\+\_\+min\+\_\+distance@{stop\+\_\+stop\+\_\+at\+\_\+min\+\_\+distance}!Methods@{Methods}}
\subsubsection{\texorpdfstring{stop\+\_\+stop\+\_\+at\+\_\+min\+\_\+distance()}{stop\_stop\_at\_min\_distance()}}
{\footnotesize\ttfamily void Code\+Racer\+::stop\+\_\+stop\+\_\+at\+\_\+min\+\_\+distance (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption})}
Disables to stopp the racer if during a distance measurement the measured distance is smaller then the specified minimal distance.
\begin{DoxyReturn}{Returns}
nothing
\end{DoxyReturn}
Definition at line 335 of file Code\+Racer.\+cpp.
\begin{DoxyCode}
335 \{
336 \_coderacer\_stop\_at\_distance\_enabled = \textcolor{keyword}{false};
337 \}
\end{DoxyCode}
\mbox{\Hypertarget{group__higherlevelmeths_ga34e2fe2123e76fd844482dfef6c5a9c8}\label{group__higherlevelmeths_ga34e2fe2123e76fd844482dfef6c5a9c8}}
\index{Methods@{Methods}!start\+\_\+stop@{start\+\_\+stop}}
\index{start\+\_\+stop@{start\+\_\+stop}!Methods@{Methods}}
\subsubsection{\texorpdfstring{start\+\_\+stop()}{start\_stop()}}
{\footnotesize\ttfamily bool Code\+Racer\+::start\+\_\+stop (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption})}
This will return if the codracer is in active mode or not.
There is a button used to toogle between active and inactive each time it is pressed This may help you to start driving and scanning the distance by pressing the button -\/ and as well to stop the racer by pressing the button. This method will set the L\+E\+Ds depending on the mode and sets the servo back to center and stopps the racer when leaving the active mode. You can leave or enter the active mode as well by setting using set\+\_\+active() and set\+\_\+inactive(). The button itself triggers and internall interrupt event and sets the active state -\/ but you have to continously call that method to switch between inactive and active mode depending on the active state. If in inactive mode and fun is enabeld by just setting the coderacer\+\_\+fun\+\_\+enabled = true ... some fun will happen \+:-\/)
\begin{DoxyReturn}{Returns}
True if the coderacer is in active mode. False if in inactive mode.
\end{DoxyReturn}
Definition at line 348 of file Code\+Racer.\+cpp.
\begin{DoxyCode}
348 \{
349 \textcolor{keywordflow}{if} (\_coderracer\_activ != coderracer\_activ) \{
350 \_coderracer\_activ = coderracer\_activ;
351 \textcolor{keywordflow}{if} (\textcolor{keyword}{true} == \_coderracer\_activ) \{
352 set\_leds\_all\_off();
353 delay(500);
354 \}
355 \textcolor{keywordflow}{else} \{
356 stop\_driving();
357 set\_leds\_all\_on();
358 delay(200);
359 servo\_set\_to\_center();
360 \_servo\_look\_around\_at\_ms = millis() + random(20000, 120000);
361 \}
362 \}
363
364 \textcolor{keywordflow}{if} ((\textcolor{keyword}{false} == \_coderracer\_activ) && (\textcolor{keyword}{true} == coderacer\_fun\_enabled)) \{
365 kitt();
366 look\_around();
367 \}
368
369 \textcolor{keywordflow}{return}(\_coderracer\_activ);
370 \}
\end{DoxyCode}

View file

@ -0,0 +1 @@
4b1e3a7d2ca636524434d6a1e7321989

View file

@ -0,0 +1,12 @@
\hypertarget{group__lowerlevelservo}{}\section{Lower level servo drive methods and getters}
\label{group__lowerlevelservo}\index{Lower level servo drive methods and getters@{Lower level servo drive methods and getters}}
\subsection*{Modules}
\begin{DoxyCompactItemize}
\item
\hyperlink{group__lowerlevelservomeths}{Methods}
\item
\hyperlink{group__lowerlevelservogetters}{Getters}
\end{DoxyCompactItemize}
\subsection{Detailed Description}

View file

@ -0,0 +1,86 @@
\hypertarget{group__lowerlevelservogetters}{}\section{Getters}
\label{group__lowerlevelservogetters}\index{Getters@{Getters}}
\subsection*{Functions}
\begin{DoxyCompactItemize}
\item
uint8\+\_\+t \hyperlink{group__lowerlevelservogetters_ga451b3ecd272e9a11de4b221f8d771432}{Code\+Racer\+::servo\+\_\+position} ()
\begin{DoxyCompactList}\small\item\em Get the actual position of the servo. \end{DoxyCompactList}\item
unsigned long \hyperlink{group__lowerlevelservogetters_gaeed05a3d4e06adccebdfce207b734b2f}{Code\+Racer\+::servo\+\_\+position\+\_\+set\+\_\+at\+\_\+ms} ()
\begin{DoxyCompactList}\small\item\em Get the system time in ms the servo was set to the actual position. \end{DoxyCompactList}\item
unsigned long \hyperlink{group__lowerlevelservogetters_ga84ba256b9ccdf0e9f4280279da68a509}{Code\+Racer\+::servo\+\_\+position\+\_\+eta\+\_\+in\+\_\+ms} ()
\begin{DoxyCompactList}\small\item\em Get the system time in ms the servo will reach its position This is an estimated time. If this is a time in the future, the servo may still moving. If this is a time in the past , the servo should have reached its postion already. \end{DoxyCompactList}\end{DoxyCompactItemize}
\subsection{Detailed Description}
\subsection{Function Documentation}
\mbox{\Hypertarget{group__lowerlevelservogetters_ga451b3ecd272e9a11de4b221f8d771432}\label{group__lowerlevelservogetters_ga451b3ecd272e9a11de4b221f8d771432}}
\index{Getters@{Getters}!servo\+\_\+position@{servo\+\_\+position}}
\index{servo\+\_\+position@{servo\+\_\+position}!Getters@{Getters}}
\subsubsection{\texorpdfstring{servo\+\_\+position()}{servo\_position()}}
{\footnotesize\ttfamily uint8\+\_\+t Code\+Racer\+::servo\+\_\+position (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption})}
Get the actual position of the servo.
\begin{DoxyReturn}{Returns}
Actual position of the servo
\end{DoxyReturn}
Definition at line 632 of file Code\+Racer.\+cpp.
\begin{DoxyCode}
632 \{
633 \textcolor{keywordflow}{return}(\_servo\_position);
634 \}
\end{DoxyCode}
\mbox{\Hypertarget{group__lowerlevelservogetters_gaeed05a3d4e06adccebdfce207b734b2f}\label{group__lowerlevelservogetters_gaeed05a3d4e06adccebdfce207b734b2f}}
\index{Getters@{Getters}!servo\+\_\+position\+\_\+set\+\_\+at\+\_\+ms@{servo\+\_\+position\+\_\+set\+\_\+at\+\_\+ms}}
\index{servo\+\_\+position\+\_\+set\+\_\+at\+\_\+ms@{servo\+\_\+position\+\_\+set\+\_\+at\+\_\+ms}!Getters@{Getters}}
\subsubsection{\texorpdfstring{servo\+\_\+position\+\_\+set\+\_\+at\+\_\+ms()}{servo\_position\_set\_at\_ms()}}
{\footnotesize\ttfamily unsigned long Code\+Racer\+::servo\+\_\+position\+\_\+set\+\_\+at\+\_\+ms (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption})}
Get the system time in ms the servo was set to the actual position.
\begin{DoxyReturn}{Returns}
System time in ms the servo was set
\end{DoxyReturn}
Definition at line 639 of file Code\+Racer.\+cpp.
\begin{DoxyCode}
639 \{
640 \textcolor{keywordflow}{return}(\_servo\_position\_set\_at\_ms);
641 \}
\end{DoxyCode}
\mbox{\Hypertarget{group__lowerlevelservogetters_ga84ba256b9ccdf0e9f4280279da68a509}\label{group__lowerlevelservogetters_ga84ba256b9ccdf0e9f4280279da68a509}}
\index{Getters@{Getters}!servo\+\_\+position\+\_\+eta\+\_\+in\+\_\+ms@{servo\+\_\+position\+\_\+eta\+\_\+in\+\_\+ms}}
\index{servo\+\_\+position\+\_\+eta\+\_\+in\+\_\+ms@{servo\+\_\+position\+\_\+eta\+\_\+in\+\_\+ms}!Getters@{Getters}}
\subsubsection{\texorpdfstring{servo\+\_\+position\+\_\+eta\+\_\+in\+\_\+ms()}{servo\_position\_eta\_in\_ms()}}
{\footnotesize\ttfamily unsigned long Code\+Racer\+::servo\+\_\+position\+\_\+eta\+\_\+in\+\_\+ms (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption})}
Get the system time in ms the servo will reach its position This is an estimated time. If this is a time in the future, the servo may still moving. If this is a time in the past , the servo should have reached its postion already.
\begin{DoxyReturn}{Returns}
System time in ms the servo will reach its position
\end{DoxyReturn}
Definition at line 649 of file Code\+Racer.\+cpp.
\begin{DoxyCode}
649 \{
650 \textcolor{keywordflow}{return}(\_servo\_position\_eta\_in\_ms);
651 \}
\end{DoxyCode}

View file

@ -0,0 +1,12 @@
\hypertarget{group__lowerleveldrives}{}\section{Lower level drives methods and getters}
\label{group__lowerleveldrives}\index{Lower level drives methods and getters@{Lower level drives methods and getters}}
\subsection*{Modules}
\begin{DoxyCompactItemize}
\item
\hyperlink{group__lowerleveldrivesmeths}{Methods}
\item
\hyperlink{group__lowerleveldrivesgetters}{Getters}
\end{DoxyCompactItemize}
\subsection{Detailed Description}

View file

@ -0,0 +1,292 @@
\hypertarget{group__lowerlevelusmeths}{}\section{Methods}
\label{group__lowerlevelusmeths}\index{Methods@{Methods}}
\subsection*{Functions}
\begin{DoxyCompactItemize}
\item
unsigned long \hyperlink{group__lowerlevelusmeths_ga5f034198a28b069478c454c63dbfa225}{Code\+Racer\+::usonic\+\_\+measure\+\_\+cm} ()
\begin{DoxyCompactList}\small\item\em Measures the distance to the next object in front of the ultra sonic sensor in cm. \end{DoxyCompactList}\item
unsigned long \hyperlink{group__lowerlevelusmeths_gaa01602a576fd57609bc7e08f8ef32e58}{Code\+Racer\+::usonic\+\_\+measure\+\_\+us} ()
\begin{DoxyCompactList}\small\item\em Measures the distance to the next object in front of the ultra sonic sensor in microseconds. \end{DoxyCompactList}\item
unsigned long \hyperlink{group__lowerlevelusmeths_gafdd5c75d7a8e7b7c993e512ee93dde9a}{Code\+Racer\+::usonic\+\_\+measure\+\_\+cm} (unsigned long max\+\_\+echo\+\_\+run\+\_\+time\+\_\+us)
\begin{DoxyCompactList}\small\item\em Measures the distance to the next object in front of the ultra sonic sensor in cm. \end{DoxyCompactList}\item
unsigned long \hyperlink{group__lowerlevelusmeths_ga1f3401ef472cb11997e7dc98ef3e2424}{Code\+Racer\+::usonic\+\_\+measure\+\_\+us} (unsigned long max\+\_\+echo\+\_\+run\+\_\+time\+\_\+us)
\begin{DoxyCompactList}\small\item\em Measures the distance to the next object in front of the ultra sonic sensor in microseconds. \end{DoxyCompactList}\item
unsigned long \hyperlink{group__lowerlevelusmeths_ga0c00edbbf4a3169613c9ea84d6e7dc13}{Code\+Racer\+::usonic\+\_\+measure\+\_\+single\+\_\+shot\+\_\+cm} ()
\begin{DoxyCompactList}\small\item\em Measures the distance to the next object in front of the ultra sonic sensor in cm. \end{DoxyCompactList}\item
unsigned long \hyperlink{group__lowerlevelusmeths_gad4309b6da17085575fb0c55559e240b8}{Code\+Racer\+::usonic\+\_\+measure\+\_\+single\+\_\+shot\+\_\+us} ()
\begin{DoxyCompactList}\small\item\em Measures the distance to the next object in front of the ultra sonic sensor in microseconds. \end{DoxyCompactList}\item
unsigned long \hyperlink{group__lowerlevelusmeths_gab413551ea8a67e1b60eda1671029b645}{Code\+Racer\+::usonic\+\_\+measure\+\_\+single\+\_\+shot\+\_\+cm} (unsigned long max\+\_\+echo\+\_\+run\+\_\+time\+\_\+us)
\begin{DoxyCompactList}\small\item\em Measures the distance to the next object in front of the ultra sonic sensor in cm. \end{DoxyCompactList}\item
unsigned long \hyperlink{group__lowerlevelusmeths_ga1b5b43372082f5daeee47410a09a590c}{Code\+Racer\+::usonic\+\_\+measure\+\_\+single\+\_\+shot\+\_\+us} (unsigned long max\+\_\+echo\+\_\+run\+\_\+time\+\_\+us)
\begin{DoxyCompactList}\small\item\em Measures the distance to the next object in front of the ultra sonic sensor in microseconds. \end{DoxyCompactList}\end{DoxyCompactItemize}
\subsection{Detailed Description}
\subsection{Function Documentation}
\mbox{\Hypertarget{group__lowerlevelusmeths_ga5f034198a28b069478c454c63dbfa225}\label{group__lowerlevelusmeths_ga5f034198a28b069478c454c63dbfa225}}
\index{Methods@{Methods}!usonic\+\_\+measure\+\_\+cm@{usonic\+\_\+measure\+\_\+cm}}
\index{usonic\+\_\+measure\+\_\+cm@{usonic\+\_\+measure\+\_\+cm}!Methods@{Methods}}
\subsubsection{\texorpdfstring{usonic\+\_\+measure\+\_\+cm()}{usonic\_measure\_cm()}\hspace{0.1cm}{\footnotesize\ttfamily [1/2]}}
{\footnotesize\ttfamily unsigned long Code\+Racer\+::usonic\+\_\+measure\+\_\+cm (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption})}
Measures the distance to the next object in front of the ultra sonic sensor in cm.
This is the medium one out of 3 measurements. The maximum measured distance is about 100cm and defined by the U\+S\+\_\+\+M\+A\+X\+\_\+\+E\+C\+H\+O\+\_\+\+T\+I\+M\+E\+\_\+\+US setting in the header file. \begin{DoxyReturn}{Returns}
The measured distance in cm.
\end{DoxyReturn}
Definition at line 672 of file Code\+Racer.\+cpp.
\begin{DoxyCode}
673 \{
674 \textcolor{keywordflow}{return}(usonic\_measure\_cm(US\_MAX\_ECHO\_TIME\_US));
675 \}
\end{DoxyCode}
\mbox{\Hypertarget{group__lowerlevelusmeths_gaa01602a576fd57609bc7e08f8ef32e58}\label{group__lowerlevelusmeths_gaa01602a576fd57609bc7e08f8ef32e58}}
\index{Methods@{Methods}!usonic\+\_\+measure\+\_\+us@{usonic\+\_\+measure\+\_\+us}}
\index{usonic\+\_\+measure\+\_\+us@{usonic\+\_\+measure\+\_\+us}!Methods@{Methods}}
\subsubsection{\texorpdfstring{usonic\+\_\+measure\+\_\+us()}{usonic\_measure\_us()}\hspace{0.1cm}{\footnotesize\ttfamily [1/2]}}
{\footnotesize\ttfamily unsigned long Code\+Racer\+::usonic\+\_\+measure\+\_\+us (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption})}
Measures the distance to the next object in front of the ultra sonic sensor in microseconds.
This is the medium one out of 3 measurements. The maximum measured distance is about 6000 microseconds and defined by the U\+S\+\_\+\+M\+A\+X\+\_\+\+E\+C\+H\+O\+\_\+\+T\+I\+M\+E\+\_\+\+US setting in the header file. \begin{DoxyReturn}{Returns}
The measured distance in microseconds.
\end{DoxyReturn}
Definition at line 682 of file Code\+Racer.\+cpp.
\begin{DoxyCode}
683 \{
684 \textcolor{keywordflow}{return}(usonic\_measure\_us(US\_MAX\_ECHO\_TIME\_US));
685 \}
\end{DoxyCode}
\mbox{\Hypertarget{group__lowerlevelusmeths_gafdd5c75d7a8e7b7c993e512ee93dde9a}\label{group__lowerlevelusmeths_gafdd5c75d7a8e7b7c993e512ee93dde9a}}
\index{Methods@{Methods}!usonic\+\_\+measure\+\_\+cm@{usonic\+\_\+measure\+\_\+cm}}
\index{usonic\+\_\+measure\+\_\+cm@{usonic\+\_\+measure\+\_\+cm}!Methods@{Methods}}
\subsubsection{\texorpdfstring{usonic\+\_\+measure\+\_\+cm()}{usonic\_measure\_cm()}\hspace{0.1cm}{\footnotesize\ttfamily [2/2]}}
{\footnotesize\ttfamily unsigned long Code\+Racer\+::usonic\+\_\+measure\+\_\+cm (\begin{DoxyParamCaption}\item[{unsigned long}]{max\+\_\+echo\+\_\+run\+\_\+time\+\_\+us }\end{DoxyParamCaption})}
Measures the distance to the next object in front of the ultra sonic sensor in cm.
This is the medium one out of 3 measurements. Be careful with high values for max\+\_\+echo\+\_\+run\+\_\+time\+\_\+us -\/ this may increase run time due to the fact that if there is nothing in range of the sensor it will wait until this specified run time of the echo is over. The maximum range the sensor is specified for is about 300cm.
\begin{DoxyParams}{Parameters}
{\em max\+\_\+echo\+\_\+run\+\_\+time\+\_\+us} & Defines the maximum echo run time and by that the maximum of distance that can be measured. \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
The measured distance in cm.
\end{DoxyReturn}
Definition at line 694 of file Code\+Racer.\+cpp.
\begin{DoxyCode}
695 \{
696 \textcolor{keywordtype}{unsigned} \textcolor{keywordtype}{long} echo\_runtime\_us = usonic\_measure\_us(max\_echo\_run\_time\_us);
697 \textcolor{keywordtype}{unsigned} \textcolor{keywordtype}{long} distance\_cm = echo\_runtime\_us * 0.0172;
698 \textcolor{comment}{//Serial.print("MEASURE\_DISTANCE. Distance in cm is: ");}
699 \textcolor{comment}{//Serial.println(distance\_cm);}
700 \_usonic\_distance\_cm = distance\_cm;
701 \textcolor{keywordflow}{return}(distance\_cm);
702 \}
\end{DoxyCode}
\mbox{\Hypertarget{group__lowerlevelusmeths_ga1f3401ef472cb11997e7dc98ef3e2424}\label{group__lowerlevelusmeths_ga1f3401ef472cb11997e7dc98ef3e2424}}
\index{Methods@{Methods}!usonic\+\_\+measure\+\_\+us@{usonic\+\_\+measure\+\_\+us}}
\index{usonic\+\_\+measure\+\_\+us@{usonic\+\_\+measure\+\_\+us}!Methods@{Methods}}
\subsubsection{\texorpdfstring{usonic\+\_\+measure\+\_\+us()}{usonic\_measure\_us()}\hspace{0.1cm}{\footnotesize\ttfamily [2/2]}}
{\footnotesize\ttfamily unsigned long Code\+Racer\+::usonic\+\_\+measure\+\_\+us (\begin{DoxyParamCaption}\item[{unsigned long}]{max\+\_\+echo\+\_\+run\+\_\+time\+\_\+us }\end{DoxyParamCaption})}
Measures the distance to the next object in front of the ultra sonic sensor in microseconds.
This is the medium one out of 3 measurements. Be careful with high values for max\+\_\+echo\+\_\+run\+\_\+time\+\_\+us -\/ this may increase run time due to the fact that if there is nothing in range of the sensor it will wait until this specified run time of the echo is over. The maximum range the sensor is specified for is about 300cm.
\begin{DoxyParams}{Parameters}
{\em max\+\_\+echo\+\_\+run\+\_\+time\+\_\+us} & Defines the maximum echo run time in microseconds and by that the maximum of distance that can be measured. \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
The measured distance in microseconds.
\end{DoxyReturn}
Definition at line 711 of file Code\+Racer.\+cpp.
\begin{DoxyCode}
712 \{
713 \textcolor{keywordtype}{unsigned} \textcolor{keywordtype}{long} echo\_runtime\_us[3] = \{ 0,0,0 \};
714 uint8\_t measnr = 0;
715
716 \textcolor{keywordflow}{do} \{
717 echo\_runtime\_us[measnr] = usonic\_measure\_single\_shot\_us(max\_echo\_run\_time\_us);
718 \textcolor{keywordflow}{if} (echo\_runtime\_us[measnr] > 200) \{
719 measnr++;
720 \}
721 \} \textcolor{keywordflow}{while} (measnr < 3);
722
723 \textcolor{comment}{// we will take the medium out of 3 values ... }
724 \textcolor{keywordflow}{if} (echo\_runtime\_us[0] > echo\_runtime\_us[1]) \{ std::swap(echo\_runtime\_us[0], echo\_runtime\_us[1]); \}
725 \textcolor{keywordflow}{if} (echo\_runtime\_us[1] > echo\_runtime\_us[2]) \{ std::swap(echo\_runtime\_us[1], echo\_runtime\_us[2]); \}
726 \textcolor{keywordflow}{if} (echo\_runtime\_us[0] > echo\_runtime\_us[1]) \{ std::swap(echo\_runtime\_us[0], echo\_runtime\_us[1]); \}
727
728 \textcolor{comment}{//Serial.print("MEASURE\_DISTANCE\_US. Echo runtime in us is: ");}
729 \textcolor{comment}{//Serial.println(echo\_runtime\_us[1]);}
730
731 \textcolor{comment}{// if the stop at minimal distance is enabeled - check for minimal distance is reached}
732 \textcolor{keywordflow}{if} (\textcolor{keyword}{true} == \_coderacer\_stop\_at\_distance\_enabled) \{
733 \textcolor{keywordflow}{if} (echo\_runtime\_us[1] <= \_usonic\_stop\_distance\_us) \{
734 \_coderacer\_stopped\_at\_min\_distance = \textcolor{keyword}{true};
735 stop\_driving();
736 \_coderacer\_stop\_at\_distance\_enabled = \textcolor{keyword}{false};
737 \}
738 \}
739 \_usonic\_distance\_us = echo\_runtime\_us[1];
740 \textcolor{keywordflow}{return}(echo\_runtime\_us[1]);
741 \}
\end{DoxyCode}
\mbox{\Hypertarget{group__lowerlevelusmeths_ga0c00edbbf4a3169613c9ea84d6e7dc13}\label{group__lowerlevelusmeths_ga0c00edbbf4a3169613c9ea84d6e7dc13}}
\index{Methods@{Methods}!usonic\+\_\+measure\+\_\+single\+\_\+shot\+\_\+cm@{usonic\+\_\+measure\+\_\+single\+\_\+shot\+\_\+cm}}
\index{usonic\+\_\+measure\+\_\+single\+\_\+shot\+\_\+cm@{usonic\+\_\+measure\+\_\+single\+\_\+shot\+\_\+cm}!Methods@{Methods}}
\subsubsection{\texorpdfstring{usonic\+\_\+measure\+\_\+single\+\_\+shot\+\_\+cm()}{usonic\_measure\_single\_shot\_cm()}\hspace{0.1cm}{\footnotesize\ttfamily [1/2]}}
{\footnotesize\ttfamily unsigned long Code\+Racer\+::usonic\+\_\+measure\+\_\+single\+\_\+shot\+\_\+cm (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption})}
Measures the distance to the next object in front of the ultra sonic sensor in cm.
This is a one shot measurement. The maximum measured distance is about 6000 microseconds and defined by the U\+S\+\_\+\+M\+A\+X\+\_\+\+E\+C\+H\+O\+\_\+\+T\+I\+M\+E\+\_\+\+US setting in the header file. \begin{DoxyReturn}{Returns}
The measured distance in cm.
\end{DoxyReturn}
Definition at line 748 of file Code\+Racer.\+cpp.
\begin{DoxyCode}
749 \{
750 \textcolor{keywordflow}{return}(usonic\_measure\_single\_shot\_cm(US\_MAX\_ECHO\_TIME\_US));
751 \}
\end{DoxyCode}
\mbox{\Hypertarget{group__lowerlevelusmeths_gad4309b6da17085575fb0c55559e240b8}\label{group__lowerlevelusmeths_gad4309b6da17085575fb0c55559e240b8}}
\index{Methods@{Methods}!usonic\+\_\+measure\+\_\+single\+\_\+shot\+\_\+us@{usonic\+\_\+measure\+\_\+single\+\_\+shot\+\_\+us}}
\index{usonic\+\_\+measure\+\_\+single\+\_\+shot\+\_\+us@{usonic\+\_\+measure\+\_\+single\+\_\+shot\+\_\+us}!Methods@{Methods}}
\subsubsection{\texorpdfstring{usonic\+\_\+measure\+\_\+single\+\_\+shot\+\_\+us()}{usonic\_measure\_single\_shot\_us()}\hspace{0.1cm}{\footnotesize\ttfamily [1/2]}}
{\footnotesize\ttfamily unsigned long Code\+Racer\+::usonic\+\_\+measure\+\_\+single\+\_\+shot\+\_\+us (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption})}
Measures the distance to the next object in front of the ultra sonic sensor in microseconds.
This is a one shot measurement. The maximum measured distance is about 6000 microseconds and defined by the U\+S\+\_\+\+M\+A\+X\+\_\+\+E\+C\+H\+O\+\_\+\+T\+I\+M\+E\+\_\+\+US setting in the header file. \begin{DoxyReturn}{Returns}
The measured distance in microseconds.
\end{DoxyReturn}
Definition at line 758 of file Code\+Racer.\+cpp.
\begin{DoxyCode}
759 \{
760 \textcolor{keywordflow}{return}(usonic\_measure\_single\_shot\_us(US\_MAX\_ECHO\_TIME\_US));
761 \}
\end{DoxyCode}
\mbox{\Hypertarget{group__lowerlevelusmeths_gab413551ea8a67e1b60eda1671029b645}\label{group__lowerlevelusmeths_gab413551ea8a67e1b60eda1671029b645}}
\index{Methods@{Methods}!usonic\+\_\+measure\+\_\+single\+\_\+shot\+\_\+cm@{usonic\+\_\+measure\+\_\+single\+\_\+shot\+\_\+cm}}
\index{usonic\+\_\+measure\+\_\+single\+\_\+shot\+\_\+cm@{usonic\+\_\+measure\+\_\+single\+\_\+shot\+\_\+cm}!Methods@{Methods}}
\subsubsection{\texorpdfstring{usonic\+\_\+measure\+\_\+single\+\_\+shot\+\_\+cm()}{usonic\_measure\_single\_shot\_cm()}\hspace{0.1cm}{\footnotesize\ttfamily [2/2]}}
{\footnotesize\ttfamily unsigned long Code\+Racer\+::usonic\+\_\+measure\+\_\+single\+\_\+shot\+\_\+cm (\begin{DoxyParamCaption}\item[{unsigned long}]{max\+\_\+echo\+\_\+run\+\_\+time\+\_\+us }\end{DoxyParamCaption})}
Measures the distance to the next object in front of the ultra sonic sensor in cm.
This is a one shot measurement. Be careful with high values for max\+\_\+echo\+\_\+run\+\_\+time\+\_\+us -\/ this may increase run time due to the fact that if there is nothing in range of the sensor it will wait until this specified run time of the echo is over. The maximum range the sensor is specified for is about 300cm.
\begin{DoxyParams}{Parameters}
{\em max\+\_\+echo\+\_\+run\+\_\+time\+\_\+us} & Defines the maximum echo run time in microseconds and by that the maximum of distance that can be measured. \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
The measured distance in cm.
\end{DoxyReturn}
Definition at line 770 of file Code\+Racer.\+cpp.
\begin{DoxyCode}
771 \{
772 \textcolor{comment}{// convert into cm ... 344m/sec is the speed of noise - thus 34400cm/sec ... or 34,400cm/milisec ... or
0,0344cm/microsec}
773 \textcolor{comment}{// the echo has to go the distance twice - forth and back - so the duration has to be the half of the
measured one}
774 \textcolor{comment}{// distance\_cm = echo\_duration/2 * 0,0344 or distance\_cm = echo\_duration/2 / 29,1 or distance\_cm =
echo\_duration * 0,0172}
775 \textcolor{comment}{// distance\_cm = (echo\_duration/2) / 29.1;}
776 \textcolor{keywordtype}{unsigned} \textcolor{keywordtype}{long} echo\_runtime\_us = usonic\_measure\_single\_shot\_us(max\_echo\_run\_time\_us);
777 \textcolor{keywordtype}{unsigned} \textcolor{keywordtype}{long} distance\_cm = echo\_runtime\_us * 0.0172;
778 \textcolor{comment}{//Serial.print("MEASURE\_DISTANCE. Distance in cm is: ");}
779 \textcolor{comment}{//Serial.println(distance\_cm);}
780 \_usonic\_distance\_cm = distance\_cm;
781 \textcolor{keywordflow}{return}(distance\_cm);
782 \}
\end{DoxyCode}
\mbox{\Hypertarget{group__lowerlevelusmeths_ga1b5b43372082f5daeee47410a09a590c}\label{group__lowerlevelusmeths_ga1b5b43372082f5daeee47410a09a590c}}
\index{Methods@{Methods}!usonic\+\_\+measure\+\_\+single\+\_\+shot\+\_\+us@{usonic\+\_\+measure\+\_\+single\+\_\+shot\+\_\+us}}
\index{usonic\+\_\+measure\+\_\+single\+\_\+shot\+\_\+us@{usonic\+\_\+measure\+\_\+single\+\_\+shot\+\_\+us}!Methods@{Methods}}
\subsubsection{\texorpdfstring{usonic\+\_\+measure\+\_\+single\+\_\+shot\+\_\+us()}{usonic\_measure\_single\_shot\_us()}\hspace{0.1cm}{\footnotesize\ttfamily [2/2]}}
{\footnotesize\ttfamily unsigned long Code\+Racer\+::usonic\+\_\+measure\+\_\+single\+\_\+shot\+\_\+us (\begin{DoxyParamCaption}\item[{unsigned long}]{max\+\_\+echo\+\_\+run\+\_\+time\+\_\+us }\end{DoxyParamCaption})}
Measures the distance to the next object in front of the ultra sonic sensor in microseconds.
This is a one shot measurement. Be careful with high values for max\+\_\+echo\+\_\+run\+\_\+time\+\_\+us -\/ this may increase run time due to the fact that if there is nothing in range of the sensor it will wait until this specified run time of the echo is over. The maximum range the sensor is specified for is about 300cm.
\begin{DoxyParams}{Parameters}
{\em max\+\_\+echo\+\_\+run\+\_\+time\+\_\+us} & Defines the maximum echo run time in microseconds and by that the maximum of distance that can be measured. \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
The measured distance in microseconds.
\end{DoxyReturn}
Definition at line 791 of file Code\+Racer.\+cpp.
\begin{DoxyCode}
792 \{
793 \textcolor{keywordtype}{unsigned} \textcolor{keywordtype}{long} echo\_runtime\_us;
794 \textcolor{comment}{// start measurement - send a short pulse "HIGH" to the TRIG pin of the ultrasonic sensor}
795 pinMode(\_us\_echo\_pin, OUTPUT);
796 pinMode(\_us\_echo\_pin, INPUT);
797 digitalWrite(\_us\_trigger\_pin, LOW);
798 delayMicroseconds(2);
799 digitalWrite(\_us\_trigger\_pin, HIGH);
800 delayMicroseconds(10);
801 digitalWrite(\_us\_trigger\_pin, LOW);
802 \textcolor{comment}{// measure runtime in microseconds until the ECHO pin aof the sensor goes HIGH}
803 echo\_runtime\_us = pulseInLong(\_us\_echo\_pin, HIGH, max\_echo\_run\_time\_us);
804 \textcolor{keywordflow}{if} (echo\_runtime\_us == 0) \{
805 echo\_runtime\_us = max\_echo\_run\_time\_us; \textcolor{comment}{// US\_MAX\_ECHO\_TIME\_US;}
806 \}
807 \textcolor{comment}{//Serial.print("MEASURE\_DISTANCE\_US. Echo runtime in us is: ");}
808 \textcolor{comment}{//Serial.println(echo\_runtime\_us);}
809 \_usonic\_distance\_us = echo\_runtime\_us;
810 \textcolor{keywordflow}{return}(echo\_runtime\_us);
811 \}
\end{DoxyCode}

View file

@ -0,0 +1,10 @@
\hypertarget{group__lowerlevelled}{}\section{Lower level L\+ED methods}
\label{group__lowerlevelled}\index{Lower level L\+E\+D methods@{Lower level L\+E\+D methods}}
\subsection*{Modules}
\begin{DoxyCompactItemize}
\item
\hyperlink{group__lowerlevelledmeths}{Methods}
\end{DoxyCompactItemize}
\subsection{Detailed Description}

View file

@ -0,0 +1,186 @@
\hypertarget{group__higherlevelgetters}{}\section{Getters and setters}
\label{group__higherlevelgetters}\index{Getters and setters@{Getters and setters}}
\subsection*{Functions}
\begin{DoxyCompactItemize}
\item
bool \hyperlink{group__higherlevelgetters_gae8b8c0ab24ccb572281785aeca8541e1}{Code\+Racer\+::stopped\+\_\+at\+\_\+min\+\_\+distance} ()
\begin{DoxyCompactList}\small\item\em Returns true if the racer was stopped at minimum distance. This set to false each time start\+\_\+stop\+\_\+at\+\_\+min\+\_\+distance() is called. \end{DoxyCompactList}\item
bool \hyperlink{group__higherlevelgetters_ga33dcd96e9b12dec794c56be85ec1ee05}{Code\+Racer\+::is\+\_\+driving} ()
\begin{DoxyCompactList}\small\item\em Return true if the racer is driving -\/ forward or backward. \end{DoxyCompactList}\item
unsigned long \hyperlink{group__higherlevelgetters_gaf04fd16ca0e2ace656f9549c43d16459}{Code\+Racer\+::turn\+\_\+left\+\_\+for\+\_\+ms} ()
\begin{DoxyCompactList}\small\item\em Returns the duration of time that is internally stored and used for turning the racer left. \end{DoxyCompactList}\item
unsigned long \hyperlink{group__higherlevelgetters_gac0698f02f6a21d9d1f5b9cf2820306cf}{Code\+Racer\+::turn\+\_\+right\+\_\+for\+\_\+ms} ()
\begin{DoxyCompactList}\small\item\em Returns the duration of time that is internally stored and used for turning the racer left. \end{DoxyCompactList}\item
void \hyperlink{group__higherlevelgetters_ga62f1c0eea56e27d0853cb58f30eb140d}{Code\+Racer\+::set\+\_\+inactive} ()
\begin{DoxyCompactList}\small\item\em Sets the coderracer\+\_\+active state to inactive. If start\+\_\+stop() is used -\/ the inactive mode will be entered. \end{DoxyCompactList}\item
void \hyperlink{group__higherlevelgetters_ga415c69930f291d5e06b7211b31843310}{Code\+Racer\+::set\+\_\+active} ()
\begin{DoxyCompactList}\small\item\em Sets the coderracer\+\_\+active state to active. If start\+\_\+stop() is used -\/ the active mode will be entered. \end{DoxyCompactList}\item
bool \hyperlink{group__higherlevelgetters_gaa0ab4d6a754a23ea13664a553bcc8ff2}{Code\+Racer\+::is\+\_\+active} ()
\begin{DoxyCompactList}\small\item\em Checks if coderracer\+\_\+activ is set. \end{DoxyCompactList}\end{DoxyCompactItemize}
\subsection{Detailed Description}
\subsection{Function Documentation}
\mbox{\Hypertarget{group__higherlevelgetters_gae8b8c0ab24ccb572281785aeca8541e1}\label{group__higherlevelgetters_gae8b8c0ab24ccb572281785aeca8541e1}}
\index{Getters and setters@{Getters and setters}!stopped\+\_\+at\+\_\+min\+\_\+distance@{stopped\+\_\+at\+\_\+min\+\_\+distance}}
\index{stopped\+\_\+at\+\_\+min\+\_\+distance@{stopped\+\_\+at\+\_\+min\+\_\+distance}!Getters and setters@{Getters and setters}}
\subsubsection{\texorpdfstring{stopped\+\_\+at\+\_\+min\+\_\+distance()}{stopped\_at\_min\_distance()}}
{\footnotesize\ttfamily bool Code\+Racer\+::stopped\+\_\+at\+\_\+min\+\_\+distance (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption})}
Returns true if the racer was stopped at minimum distance. This set to false each time start\+\_\+stop\+\_\+at\+\_\+min\+\_\+distance() is called.
\begin{DoxyReturn}{Returns}
True if stopped.
\end{DoxyReturn}
Definition at line 380 of file Code\+Racer.\+cpp.
\begin{DoxyCode}
380 \{
381 \textcolor{keywordflow}{return}(\_coderacer\_stopped\_at\_min\_distance);
382 \}
\end{DoxyCode}
\mbox{\Hypertarget{group__higherlevelgetters_ga33dcd96e9b12dec794c56be85ec1ee05}\label{group__higherlevelgetters_ga33dcd96e9b12dec794c56be85ec1ee05}}
\index{Getters and setters@{Getters and setters}!is\+\_\+driving@{is\+\_\+driving}}
\index{is\+\_\+driving@{is\+\_\+driving}!Getters and setters@{Getters and setters}}
\subsubsection{\texorpdfstring{is\+\_\+driving()}{is\_driving()}}
{\footnotesize\ttfamily bool Code\+Racer\+::is\+\_\+driving (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption})}
Return true if the racer is driving -\/ forward or backward.
\begin{DoxyReturn}{Returns}
True if driving forward or backward
\end{DoxyReturn}
Definition at line 387 of file Code\+Racer.\+cpp.
\begin{DoxyCode}
387 \{
388 \textcolor{keywordflow}{return}(\_drive);
389 \}
\end{DoxyCode}
\mbox{\Hypertarget{group__higherlevelgetters_gaf04fd16ca0e2ace656f9549c43d16459}\label{group__higherlevelgetters_gaf04fd16ca0e2ace656f9549c43d16459}}
\index{Getters and setters@{Getters and setters}!turn\+\_\+left\+\_\+for\+\_\+ms@{turn\+\_\+left\+\_\+for\+\_\+ms}}
\index{turn\+\_\+left\+\_\+for\+\_\+ms@{turn\+\_\+left\+\_\+for\+\_\+ms}!Getters and setters@{Getters and setters}}
\subsubsection{\texorpdfstring{turn\+\_\+left\+\_\+for\+\_\+ms()}{turn\_left\_for\_ms()}}
{\footnotesize\ttfamily unsigned long Code\+Racer\+::turn\+\_\+left\+\_\+for\+\_\+ms (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption})}
Returns the duration of time that is internally stored and used for turning the racer left.
\begin{DoxyReturn}{Returns}
Time to turn left in ms
\end{DoxyReturn}
Definition at line 394 of file Code\+Racer.\+cpp.
\begin{DoxyCode}
394 \{
395 \textcolor{keywordflow}{return}(\_turn\_left\_for\_ms);
396 \}
\end{DoxyCode}
\mbox{\Hypertarget{group__higherlevelgetters_gac0698f02f6a21d9d1f5b9cf2820306cf}\label{group__higherlevelgetters_gac0698f02f6a21d9d1f5b9cf2820306cf}}
\index{Getters and setters@{Getters and setters}!turn\+\_\+right\+\_\+for\+\_\+ms@{turn\+\_\+right\+\_\+for\+\_\+ms}}
\index{turn\+\_\+right\+\_\+for\+\_\+ms@{turn\+\_\+right\+\_\+for\+\_\+ms}!Getters and setters@{Getters and setters}}
\subsubsection{\texorpdfstring{turn\+\_\+right\+\_\+for\+\_\+ms()}{turn\_right\_for\_ms()}}
{\footnotesize\ttfamily unsigned long Code\+Racer\+::turn\+\_\+right\+\_\+for\+\_\+ms (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption})}
Returns the duration of time that is internally stored and used for turning the racer left.
\begin{DoxyReturn}{Returns}
Time to turn left in ms
\end{DoxyReturn}
Definition at line 401 of file Code\+Racer.\+cpp.
\begin{DoxyCode}
401 \{
402 \textcolor{keywordflow}{return}(\_turn\_right\_for\_ms);
403 \}
\end{DoxyCode}
\mbox{\Hypertarget{group__higherlevelgetters_ga62f1c0eea56e27d0853cb58f30eb140d}\label{group__higherlevelgetters_ga62f1c0eea56e27d0853cb58f30eb140d}}
\index{Getters and setters@{Getters and setters}!set\+\_\+inactive@{set\+\_\+inactive}}
\index{set\+\_\+inactive@{set\+\_\+inactive}!Getters and setters@{Getters and setters}}
\subsubsection{\texorpdfstring{set\+\_\+inactive()}{set\_inactive()}}
{\footnotesize\ttfamily void Code\+Racer\+::set\+\_\+inactive (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption})}
Sets the coderracer\+\_\+active state to inactive. If start\+\_\+stop() is used -\/ the inactive mode will be entered.
\begin{DoxyReturn}{Returns}
nothing
\end{DoxyReturn}
Definition at line 408 of file Code\+Racer.\+cpp.
\begin{DoxyCode}
408 \{
409 coderracer\_activ = \textcolor{keyword}{false};
410 \}
\end{DoxyCode}
\mbox{\Hypertarget{group__higherlevelgetters_ga415c69930f291d5e06b7211b31843310}\label{group__higherlevelgetters_ga415c69930f291d5e06b7211b31843310}}
\index{Getters and setters@{Getters and setters}!set\+\_\+active@{set\+\_\+active}}
\index{set\+\_\+active@{set\+\_\+active}!Getters and setters@{Getters and setters}}
\subsubsection{\texorpdfstring{set\+\_\+active()}{set\_active()}}
{\footnotesize\ttfamily void Code\+Racer\+::set\+\_\+active (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption})}
Sets the coderracer\+\_\+active state to active. If start\+\_\+stop() is used -\/ the active mode will be entered.
\begin{DoxyReturn}{Returns}
nothing
\end{DoxyReturn}
Definition at line 415 of file Code\+Racer.\+cpp.
\begin{DoxyCode}
415 \{
416 coderracer\_activ = \textcolor{keyword}{true};
417 \}
\end{DoxyCode}
\mbox{\Hypertarget{group__higherlevelgetters_gaa0ab4d6a754a23ea13664a553bcc8ff2}\label{group__higherlevelgetters_gaa0ab4d6a754a23ea13664a553bcc8ff2}}
\index{Getters and setters@{Getters and setters}!is\+\_\+active@{is\+\_\+active}}
\index{is\+\_\+active@{is\+\_\+active}!Getters and setters@{Getters and setters}}
\subsubsection{\texorpdfstring{is\+\_\+active()}{is\_active()}}
{\footnotesize\ttfamily bool Code\+Racer\+::is\+\_\+active (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption})}
Checks if coderracer\+\_\+activ is set.
coderracer\+\_\+activ is toggled each time the button is pressed. After power on coderracer\+\_\+activ is set to False. \begin{DoxyReturn}{Returns}
True id coderracer\+\_\+activ is set -\/ False if not.
\end{DoxyReturn}
Definition at line 424 of file Code\+Racer.\+cpp.
\begin{DoxyCode}
424 \{
425 \textcolor{keywordflow}{return}(coderracer\_activ);
426 \}
\end{DoxyCode}

View file

@ -0,0 +1,99 @@
\hypertarget{group__lowerlevelfun}{}\section{Lower level fun stuff methods}
\label{group__lowerlevelfun}\index{Lower level fun stuff methods@{Lower level fun stuff methods}}
\subsection*{Functions}
\begin{DoxyCompactItemize}
\item
void \hyperlink{group__lowerlevelfun_ga04309a38252639a8eaa43809c04c11c8}{Code\+Racer\+::look\+\_\+around} ()
\begin{DoxyCompactList}\small\item\em Fun stuff -\/ will move the servo around after a random amount of time. \end{DoxyCompactList}\item
void \hyperlink{group__lowerlevelfun_ga3b6f819fb82d910888fbc87abff1470c}{Code\+Racer\+::kitt} ()
\begin{DoxyCompactList}\small\item\em Fun stuff -\/ you know Knightrider... \end{DoxyCompactList}\end{DoxyCompactItemize}
\subsection{Detailed Description}
\subsection{Function Documentation}
\mbox{\Hypertarget{group__lowerlevelfun_ga04309a38252639a8eaa43809c04c11c8}\label{group__lowerlevelfun_ga04309a38252639a8eaa43809c04c11c8}}
\index{Lower level fun stuff methods@{Lower level fun stuff methods}!look\+\_\+around@{look\+\_\+around}}
\index{look\+\_\+around@{look\+\_\+around}!Lower level fun stuff methods@{Lower level fun stuff methods}}
\subsubsection{\texorpdfstring{look\+\_\+around()}{look\_around()}}
{\footnotesize\ttfamily void Code\+Racer\+::look\+\_\+around (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption})}
Fun stuff -\/ will move the servo around after a random amount of time.
\begin{DoxyReturn}{Returns}
nothing
\end{DoxyReturn}
Definition at line 440 of file Code\+Racer.\+cpp.
\begin{DoxyCode}
441 \{
442 \textcolor{keywordflow}{if} (\_servo\_look\_around\_at\_ms < millis()) \{
443 \_servo\_look\_around\_at\_ms = millis() + random(FUN\_MIN\_PAUSE\_MS, FUN\_MAX\_PAUSE\_MS);
444 servo\_set\_to\_left();
445 delay(500);
446 servo\_set\_to\_right();
447 delay(800);
448 servo\_set\_to\_center();
449 delay(300);
450 servo\_set\_to\_left();
451 delay(100);
452 servo\_set\_to\_center();
453 \}
454 \}
\end{DoxyCode}
\mbox{\Hypertarget{group__lowerlevelfun_ga3b6f819fb82d910888fbc87abff1470c}\label{group__lowerlevelfun_ga3b6f819fb82d910888fbc87abff1470c}}
\index{Lower level fun stuff methods@{Lower level fun stuff methods}!kitt@{kitt}}
\index{kitt@{kitt}!Lower level fun stuff methods@{Lower level fun stuff methods}}
\subsubsection{\texorpdfstring{kitt()}{kitt()}}
{\footnotesize\ttfamily void Code\+Racer\+::kitt (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption})}
Fun stuff -\/ you know Knightrider...
\begin{DoxyReturn}{Returns}
nothing
\end{DoxyReturn}
Definition at line 459 of file Code\+Racer.\+cpp.
\begin{DoxyCode}
460 \{
461 \textcolor{keywordflow}{if} (millis() - \_last\_led\_switched\_at\_ms > LED\_SWITCH\_MS) \{
462 \_last\_led\_switched\_at\_ms = millis();
463 \textcolor{keywordflow}{if} (\_last\_led\_on >= 5) \{
464 \_led\_count = -1;
465 \}
466 \textcolor{keywordflow}{else} \textcolor{keywordflow}{if} (\_last\_led\_on <= 0) \{
467 \_led\_count = 1;
468 \}
469 \_last\_led\_on = \_last\_led\_on + \_led\_count;
470 \textcolor{keywordflow}{switch} (\_last\_led\_on) \{
471 \textcolor{keywordflow}{case} 0:
472 set\_leds\_left\_stop\_frwd\_right(LEDON, LEDOFF, LEDOFF, LEDOFF);
473 \textcolor{keywordflow}{break};
474 \textcolor{keywordflow}{case} 1:
475 set\_leds\_left\_stop\_frwd\_right(LEDON, LEDOFF, LEDOFF, LEDOFF);
476 \textcolor{keywordflow}{break};
477 \textcolor{keywordflow}{case} 2:
478 set\_leds\_left\_stop\_frwd\_right(LEDOFF, LEDON, LEDOFF, LEDOFF);
479 \textcolor{keywordflow}{break};
480 \textcolor{keywordflow}{case} 3:
481 set\_leds\_left\_stop\_frwd\_right(LEDOFF, LEDOFF, LEDON, LEDOFF);
482 \textcolor{keywordflow}{break};
483 \textcolor{keywordflow}{case} 4:
484 \textcolor{keywordflow}{case} 5:
485 set\_leds\_left\_stop\_frwd\_right(LEDOFF, LEDOFF, LEDOFF, LEDON);
486 \textcolor{keywordflow}{break};
487 \}
488 \}
489 \}
\end{DoxyCode}

View file

@ -0,0 +1,12 @@
\hypertarget{group__higherlevel}{}\section{Higher level methods, setters and getters}
\label{group__higherlevel}\index{Higher level methods, setters and getters@{Higher level methods, setters and getters}}
\subsection*{Modules}
\begin{DoxyCompactItemize}
\item
\hyperlink{group__higherlevelmeths}{Methods}
\item
\hyperlink{group__higherlevelgetters}{Getters and setters}
\end{DoxyCompactItemize}
\subsection{Detailed Description}

View file

@ -0,0 +1,12 @@
\hypertarget{group__lowerlevelus}{}\section{Lower level ultra sonic methods and getters}
\label{group__lowerlevelus}\index{Lower level ultra sonic methods and getters@{Lower level ultra sonic methods and getters}}
\subsection*{Modules}
\begin{DoxyCompactItemize}
\item
\hyperlink{group__lowerlevelusmeths}{Methods}
\item
\hyperlink{group__lowerlevelusgetters}{Setters and getters}
\end{DoxyCompactItemize}
\subsection{Detailed Description}

View file

@ -0,0 +1,233 @@
\hypertarget{group__lowerlevelservomeths}{}\section{Methods}
\label{group__lowerlevelservomeths}\index{Methods@{Methods}}
\subsection*{Functions}
\begin{DoxyCompactItemize}
\item
void \hyperlink{group__lowerlevelservomeths_ga687beb327e20f4d0541d1ac9e29c01c3}{Code\+Racer\+::servo\+\_\+settings} (uint8\+\_\+t pos\+\_\+center, uint8\+\_\+t pos\+\_\+left, uint8\+\_\+t pos\+\_\+right, uint8\+\_\+t sweep\+\_\+left\+\_\+pos, uint8\+\_\+t sweep\+\_\+right\+\_\+pos)
\begin{DoxyCompactList}\small\item\em Overwrites the default settings taken from header file by the parameters given to this method. \end{DoxyCompactList}\item
void \hyperlink{group__lowerlevelservomeths_ga1e9afe1f27dfc9796b4c9b3dba245365}{Code\+Racer\+::servo\+\_\+sweep} ()
\begin{DoxyCompactList}\small\item\em Turns sweeping of the servo from left to right and back on. \end{DoxyCompactList}\item
void \hyperlink{group__lowerlevelservomeths_gaac73bf99cf2d19f7b1987156aa842b74}{Code\+Racer\+::servo\+\_\+set\+\_\+to\+\_\+right} ()
\begin{DoxyCompactList}\small\item\em Drives the servo to the postion that is defined by \#servo\+\_\+right\+\_\+pos. \end{DoxyCompactList}\item
void \hyperlink{group__lowerlevelservomeths_gaef7d1903b65a0a8ab4fafdc53080b07d}{Code\+Racer\+::servo\+\_\+set\+\_\+to\+\_\+left} ()
\begin{DoxyCompactList}\small\item\em Drives the servo to the postion that is defined by \#servo\+\_\+left\+\_\+pos. \end{DoxyCompactList}\item
void \hyperlink{group__lowerlevelservomeths_gad1f28aa91079e88fc3093e3074edfb32}{Code\+Racer\+::servo\+\_\+set\+\_\+to\+\_\+center} ()
\begin{DoxyCompactList}\small\item\em Drives the servo to the postion that is defined by \#servo\+\_\+center\+\_\+pos. \end{DoxyCompactList}\item
uint8\+\_\+t \hyperlink{group__lowerlevelservomeths_ga0149226288bff2290d52ed1cbd674edd}{Code\+Racer\+::servo\+\_\+set\+\_\+position\+\_\+wait} (uint8\+\_\+t position)
\begin{DoxyCompactList}\small\item\em Drive the servo to the postion given to this method. \end{DoxyCompactList}\item
unsigned long \hyperlink{group__lowerlevelservomeths_gab8831340049de6dbddeda997745725e6}{Code\+Racer\+::servo\+\_\+set\+\_\+position} (uint8\+\_\+t position)
\begin{DoxyCompactList}\small\item\em Drive the servo to the postion given to this method. \end{DoxyCompactList}\end{DoxyCompactItemize}
\subsection{Detailed Description}
\subsection{Function Documentation}
\mbox{\Hypertarget{group__lowerlevelservomeths_ga687beb327e20f4d0541d1ac9e29c01c3}\label{group__lowerlevelservomeths_ga687beb327e20f4d0541d1ac9e29c01c3}}
\index{Methods@{Methods}!servo\+\_\+settings@{servo\+\_\+settings}}
\index{servo\+\_\+settings@{servo\+\_\+settings}!Methods@{Methods}}
\subsubsection{\texorpdfstring{servo\+\_\+settings()}{servo\_settings()}}
{\footnotesize\ttfamily void Code\+Racer\+::servo\+\_\+settings (\begin{DoxyParamCaption}\item[{uint8\+\_\+t}]{pos\+\_\+center, }\item[{uint8\+\_\+t}]{pos\+\_\+left, }\item[{uint8\+\_\+t}]{pos\+\_\+right, }\item[{uint8\+\_\+t}]{sweep\+\_\+left\+\_\+pos, }\item[{uint8\+\_\+t}]{sweep\+\_\+right\+\_\+pos }\end{DoxyParamCaption})}
Overwrites the default settings taken from header file by the parameters given to this method.
\begin{DoxyParams}{Parameters}
{\em pos\+\_\+center} & The postion at which the servo moves to straight forward. Default is 90. Allowed 10 $<$= pos\+\_\+center $<$= 170. \\
\hline
{\em pos\+\_\+left} & The postion at which the servo moves to the left. Default is 170. Allowed 10 $<$= pos\+\_\+center $<$= 170. \\
\hline
{\em pos\+\_\+right} & The postion at which the servo moves to the right. Default is 10. Allowed 10 $<$= pos\+\_\+center $<$= 170. \\
\hline
{\em sweep\+\_\+left\+\_\+pos} & If the servo is sweeping from left to the right -\/ this defines the most left postion. Default is 140. Allowed 10 $<$= pos\+\_\+center $<$= 170. \\
\hline
{\em sweep\+\_\+right\+\_\+pos} & If the servo is sweeping from left to the right -\/ this defines the most right postion. Default is 40. Allowed 10 $<$= pos\+\_\+center $<$= 170. \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
nothing
\end{DoxyReturn}
Definition at line 510 of file Code\+Racer.\+cpp.
\begin{DoxyCode}
511 \{
512 servo\_center\_pos = pos\_center;
513 servo\_left\_pos = pos\_left;
514 servo\_right\_pos = pos\_right;
515 servo\_sweep\_left\_pos = sweep\_left\_pos;
516 servo\_sweep\_right\_pos = sweep\_right\_pos;
517 \}
\end{DoxyCode}
\mbox{\Hypertarget{group__lowerlevelservomeths_ga1e9afe1f27dfc9796b4c9b3dba245365}\label{group__lowerlevelservomeths_ga1e9afe1f27dfc9796b4c9b3dba245365}}
\index{Methods@{Methods}!servo\+\_\+sweep@{servo\+\_\+sweep}}
\index{servo\+\_\+sweep@{servo\+\_\+sweep}!Methods@{Methods}}
\subsubsection{\texorpdfstring{servo\+\_\+sweep()}{servo\_sweep()}}
{\footnotesize\ttfamily void Code\+Racer\+::servo\+\_\+sweep (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption})}
Turns sweeping of the servo from left to right and back on.
The sweeping range is defind by \#servo\+\_\+sweep\+\_\+left\+\_\+pos and \#servo\+\_\+sweep\+\_\+right\+\_\+pos attributes. Both can be set by either servo\+\_\+settings() or as public members. Every time servo\+\_\+sweep() is called the servo is driven by 5 steps until either \#servo\+\_\+sweep\+\_\+left\+\_\+pos or \#servo\+\_\+sweep\+\_\+right\+\_\+pos is reached. Then it will turn the direction and step to the other side every time this method is called. \begin{DoxyReturn}{Returns}
nothing
\end{DoxyReturn}
Definition at line 526 of file Code\+Racer.\+cpp.
\begin{DoxyCode}
527 \{
528 uint8\_t position;
529 \_servo\_sweep = \textcolor{keyword}{true};
530 \textcolor{keywordflow}{if} (millis() - \_servo\_position\_set\_at\_ms > SERVO\_SWEEP\_MS) \{
531 position = \_servo\_position + \_servo\_sweep\_step;
532 \textcolor{comment}{//sprintf(\_debugmsg,"[%s] current position=%ld newpostion=%ld", \_\_func\_\_, \_servo\_position,
position);}
533 \textcolor{keywordflow}{if} ((position >= servo\_sweep\_left\_pos) || (position >= SERVO\_MAX\_POSITION)) \{
534 position = servo\_sweep\_left\_pos;
535 \_servo\_sweep\_step = SERVO\_SWEEP\_TO\_RIGHT\_STEP;
536 \}
537 \textcolor{keywordflow}{if} ((position <= servo\_sweep\_right\_pos) || (position <= SERVO\_MIN\_POSITION)) \{
538 position = servo\_sweep\_right\_pos;
539 \_servo\_sweep\_step = SERVO\_SWEEP\_TO\_LEFT\_STEP;
540 \}
541 \_servo\_set\_position(position);
542 \}
543 \}
\end{DoxyCode}
\mbox{\Hypertarget{group__lowerlevelservomeths_gaac73bf99cf2d19f7b1987156aa842b74}\label{group__lowerlevelservomeths_gaac73bf99cf2d19f7b1987156aa842b74}}
\index{Methods@{Methods}!servo\+\_\+set\+\_\+to\+\_\+right@{servo\+\_\+set\+\_\+to\+\_\+right}}
\index{servo\+\_\+set\+\_\+to\+\_\+right@{servo\+\_\+set\+\_\+to\+\_\+right}!Methods@{Methods}}
\subsubsection{\texorpdfstring{servo\+\_\+set\+\_\+to\+\_\+right()}{servo\_set\_to\_right()}}
{\footnotesize\ttfamily void Code\+Racer\+::servo\+\_\+set\+\_\+to\+\_\+right (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption})}
Drives the servo to the postion that is defined by \#servo\+\_\+right\+\_\+pos.
\begin{DoxyReturn}{Returns}
nothing
\end{DoxyReturn}
Definition at line 548 of file Code\+Racer.\+cpp.
\begin{DoxyCode}
549 \{
550 servo\_set\_position\_wait(servo\_right\_pos);
551 \}
\end{DoxyCode}
\mbox{\Hypertarget{group__lowerlevelservomeths_gaef7d1903b65a0a8ab4fafdc53080b07d}\label{group__lowerlevelservomeths_gaef7d1903b65a0a8ab4fafdc53080b07d}}
\index{Methods@{Methods}!servo\+\_\+set\+\_\+to\+\_\+left@{servo\+\_\+set\+\_\+to\+\_\+left}}
\index{servo\+\_\+set\+\_\+to\+\_\+left@{servo\+\_\+set\+\_\+to\+\_\+left}!Methods@{Methods}}
\subsubsection{\texorpdfstring{servo\+\_\+set\+\_\+to\+\_\+left()}{servo\_set\_to\_left()}}
{\footnotesize\ttfamily void Code\+Racer\+::servo\+\_\+set\+\_\+to\+\_\+left (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption})}
Drives the servo to the postion that is defined by \#servo\+\_\+left\+\_\+pos.
\begin{DoxyReturn}{Returns}
nothing
\end{DoxyReturn}
Definition at line 556 of file Code\+Racer.\+cpp.
\begin{DoxyCode}
557 \{
558 servo\_set\_position\_wait(servo\_left\_pos);
559 \}
\end{DoxyCode}
\mbox{\Hypertarget{group__lowerlevelservomeths_gad1f28aa91079e88fc3093e3074edfb32}\label{group__lowerlevelservomeths_gad1f28aa91079e88fc3093e3074edfb32}}
\index{Methods@{Methods}!servo\+\_\+set\+\_\+to\+\_\+center@{servo\+\_\+set\+\_\+to\+\_\+center}}
\index{servo\+\_\+set\+\_\+to\+\_\+center@{servo\+\_\+set\+\_\+to\+\_\+center}!Methods@{Methods}}
\subsubsection{\texorpdfstring{servo\+\_\+set\+\_\+to\+\_\+center()}{servo\_set\_to\_center()}}
{\footnotesize\ttfamily void Code\+Racer\+::servo\+\_\+set\+\_\+to\+\_\+center (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption})}
Drives the servo to the postion that is defined by \#servo\+\_\+center\+\_\+pos.
\begin{DoxyReturn}{Returns}
nothing
\end{DoxyReturn}
Definition at line 564 of file Code\+Racer.\+cpp.
\begin{DoxyCode}
565 \{
566 servo\_set\_position\_wait(servo\_center\_pos);
567 \}
\end{DoxyCode}
\mbox{\Hypertarget{group__lowerlevelservomeths_ga0149226288bff2290d52ed1cbd674edd}\label{group__lowerlevelservomeths_ga0149226288bff2290d52ed1cbd674edd}}
\index{Methods@{Methods}!servo\+\_\+set\+\_\+position\+\_\+wait@{servo\+\_\+set\+\_\+position\+\_\+wait}}
\index{servo\+\_\+set\+\_\+position\+\_\+wait@{servo\+\_\+set\+\_\+position\+\_\+wait}!Methods@{Methods}}
\subsubsection{\texorpdfstring{servo\+\_\+set\+\_\+position\+\_\+wait()}{servo\_set\_position\_wait()}}
{\footnotesize\ttfamily uint8\+\_\+t Code\+Racer\+::servo\+\_\+set\+\_\+position\+\_\+wait (\begin{DoxyParamCaption}\item[{uint8\+\_\+t}]{position }\end{DoxyParamCaption})}
Drive the servo to the postion given to this method.
The method will wait until the servo has reached its new position.
\begin{DoxyParams}{Parameters}
{\em position} & Position the servo will be drived to. Allowed are values 10$<$=postion$<$=170. 10 is at the right hand side, 170 at the left hand side. \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
The new servo position
\end{DoxyReturn}
Definition at line 575 of file Code\+Racer.\+cpp.
\begin{DoxyCode}
576 \{
577 \_servo\_sweep = \textcolor{keyword}{false};
578 \textcolor{keywordtype}{unsigned} \textcolor{keywordtype}{long} wait\_time\_ms = \_servo\_set\_position(position);
579 delay(wait\_time\_ms);
580 \textcolor{keywordflow}{return}(\_servo\_position);
581 \}
\end{DoxyCode}
\mbox{\Hypertarget{group__lowerlevelservomeths_gab8831340049de6dbddeda997745725e6}\label{group__lowerlevelservomeths_gab8831340049de6dbddeda997745725e6}}
\index{Methods@{Methods}!servo\+\_\+set\+\_\+position@{servo\+\_\+set\+\_\+position}}
\index{servo\+\_\+set\+\_\+position@{servo\+\_\+set\+\_\+position}!Methods@{Methods}}
\subsubsection{\texorpdfstring{servo\+\_\+set\+\_\+position()}{servo\_set\_position()}}
{\footnotesize\ttfamily unsigned long Code\+Racer\+::servo\+\_\+set\+\_\+position (\begin{DoxyParamCaption}\item[{uint8\+\_\+t}]{position }\end{DoxyParamCaption})}
Drive the servo to the postion given to this method.
The method will not wait until the servo has reached its new position.
\begin{DoxyParams}{Parameters}
{\em position} & Position the servo will be drived to. Allowed are values 10$<$=postion$<$=170. 10 is at the right hand side, 170 at the left hand side. \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
The time in ms the servo will need to reach the new position
\end{DoxyReturn}
Definition at line 589 of file Code\+Racer.\+cpp.
\begin{DoxyCode}
590 \{
591 \_servo\_sweep = \textcolor{keyword}{false};
592 \textcolor{keywordtype}{unsigned} \textcolor{keywordtype}{long} wait\_time\_ms = \_servo\_set\_position(position);
593 \textcolor{keywordflow}{return}(wait\_time\_ms);
594 \}
\end{DoxyCode}

View file

@ -0,0 +1,121 @@
\hypertarget{group__lowerlevelusgetters}{}\section{Setters and getters}
\label{group__lowerlevelusgetters}\index{Setters and getters@{Setters and getters}}
\subsection*{Functions}
\begin{DoxyCompactItemize}
\item
void \hyperlink{group__lowerlevelusgetters_gaa7c5a6563a5736ed38d12f616de480df}{Code\+Racer\+::usonic\+\_\+set\+\_\+stop\+\_\+distance\+\_\+cm} (unsigned long stop\+\_\+distance\+\_\+cm)
\begin{DoxyCompactList}\small\item\em Sets the stop distance in cm. \end{DoxyCompactList}\item
void \hyperlink{group__lowerlevelusgetters_ga2f06c193ae86c5b1cba450caf5adf146}{Code\+Racer\+::usonic\+\_\+set\+\_\+stop\+\_\+distance\+\_\+us} (unsigned long stop\+\_\+distance\+\_\+us)
\begin{DoxyCompactList}\small\item\em Sets the stop distance in cm. \end{DoxyCompactList}\item
unsigned long \hyperlink{group__lowerlevelusgetters_ga917b90f21e731ef5f690d5198e7f4d3e}{Code\+Racer\+::usonic\+\_\+distance\+\_\+us} ()
\begin{DoxyCompactList}\small\item\em Returns the last measured distance in microseconds. \end{DoxyCompactList}\item
unsigned long \hyperlink{group__lowerlevelusgetters_gad59842c14196598e55644b2a22621454}{Code\+Racer\+::usonic\+\_\+distance\+\_\+cm} ()
\begin{DoxyCompactList}\small\item\em Returns the last measured distance in cm. \end{DoxyCompactList}\end{DoxyCompactItemize}
\subsection{Detailed Description}
\subsection{Function Documentation}
\mbox{\Hypertarget{group__lowerlevelusgetters_gaa7c5a6563a5736ed38d12f616de480df}\label{group__lowerlevelusgetters_gaa7c5a6563a5736ed38d12f616de480df}}
\index{Setters and getters@{Setters and getters}!usonic\+\_\+set\+\_\+stop\+\_\+distance\+\_\+cm@{usonic\+\_\+set\+\_\+stop\+\_\+distance\+\_\+cm}}
\index{usonic\+\_\+set\+\_\+stop\+\_\+distance\+\_\+cm@{usonic\+\_\+set\+\_\+stop\+\_\+distance\+\_\+cm}!Setters and getters@{Setters and getters}}
\subsubsection{\texorpdfstring{usonic\+\_\+set\+\_\+stop\+\_\+distance\+\_\+cm()}{usonic\_set\_stop\_distance\_cm()}}
{\footnotesize\ttfamily void Code\+Racer\+::usonic\+\_\+set\+\_\+stop\+\_\+distance\+\_\+cm (\begin{DoxyParamCaption}\item[{unsigned long}]{stop\+\_\+distance\+\_\+cm }\end{DoxyParamCaption})}
Sets the stop distance in cm.
If start\+\_\+stop\+\_\+at\+\_\+min\+\_\+distance() is used and distance measured with one of the measurement methods -\/ the racer will be stopped immediately. All except the singe shot methods of the ultra sonic measurements methods supports that. Internally the stop distance will be set as both -\/ in cm and in microseconds.
\begin{DoxyParams}{Parameters}
{\em stop\+\_\+distance\+\_\+cm} & Distance in cm the racer will be stopped if that features was enabled by start\+\_\+stop\+\_\+at\+\_\+min\+\_\+distance() before. \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
nothing
\end{DoxyReturn}
Definition at line 825 of file Code\+Racer.\+cpp.
\begin{DoxyCode}
826 \{
827 \_usonic\_stop\_distance\_us = stop\_distance\_cm * 58.14;
828 \}
\end{DoxyCode}
\mbox{\Hypertarget{group__lowerlevelusgetters_ga2f06c193ae86c5b1cba450caf5adf146}\label{group__lowerlevelusgetters_ga2f06c193ae86c5b1cba450caf5adf146}}
\index{Setters and getters@{Setters and getters}!usonic\+\_\+set\+\_\+stop\+\_\+distance\+\_\+us@{usonic\+\_\+set\+\_\+stop\+\_\+distance\+\_\+us}}
\index{usonic\+\_\+set\+\_\+stop\+\_\+distance\+\_\+us@{usonic\+\_\+set\+\_\+stop\+\_\+distance\+\_\+us}!Setters and getters@{Setters and getters}}
\subsubsection{\texorpdfstring{usonic\+\_\+set\+\_\+stop\+\_\+distance\+\_\+us()}{usonic\_set\_stop\_distance\_us()}}
{\footnotesize\ttfamily void Code\+Racer\+::usonic\+\_\+set\+\_\+stop\+\_\+distance\+\_\+us (\begin{DoxyParamCaption}\item[{unsigned long}]{stop\+\_\+distance\+\_\+us }\end{DoxyParamCaption})}
Sets the stop distance in cm.
If start\+\_\+stop\+\_\+at\+\_\+min\+\_\+distance() is used and distance measured with one of the measurement methods -\/ the racer will be stopped immediately. All except the singe shot methods of the ultra sonic measurements methods supports that. Internally the stop distance will be set as both -\/ in cm and in microseconds.
\begin{DoxyParams}{Parameters}
{\em stop\+\_\+distance\+\_\+us} & Distance in cm the racer will be stopped if that features was enabled by start\+\_\+stop\+\_\+at\+\_\+min\+\_\+distance() before. \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
nothing
\end{DoxyReturn}
Definition at line 837 of file Code\+Racer.\+cpp.
\begin{DoxyCode}
838 \{
839 \_usonic\_stop\_distance\_us = stop\_distance\_us;
840 \}
\end{DoxyCode}
\mbox{\Hypertarget{group__lowerlevelusgetters_ga917b90f21e731ef5f690d5198e7f4d3e}\label{group__lowerlevelusgetters_ga917b90f21e731ef5f690d5198e7f4d3e}}
\index{Setters and getters@{Setters and getters}!usonic\+\_\+distance\+\_\+us@{usonic\+\_\+distance\+\_\+us}}
\index{usonic\+\_\+distance\+\_\+us@{usonic\+\_\+distance\+\_\+us}!Setters and getters@{Setters and getters}}
\subsubsection{\texorpdfstring{usonic\+\_\+distance\+\_\+us()}{usonic\_distance\_us()}}
{\footnotesize\ttfamily unsigned long Code\+Racer\+::usonic\+\_\+distance\+\_\+us (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption})}
Returns the last measured distance in microseconds.
\begin{DoxyReturn}{Returns}
Distance in microseconds
\end{DoxyReturn}
Definition at line 845 of file Code\+Racer.\+cpp.
\begin{DoxyCode}
845 \{
846 \textcolor{keywordflow}{return}(\_usonic\_distance\_us);
847 \}
\end{DoxyCode}
\mbox{\Hypertarget{group__lowerlevelusgetters_gad59842c14196598e55644b2a22621454}\label{group__lowerlevelusgetters_gad59842c14196598e55644b2a22621454}}
\index{Setters and getters@{Setters and getters}!usonic\+\_\+distance\+\_\+cm@{usonic\+\_\+distance\+\_\+cm}}
\index{usonic\+\_\+distance\+\_\+cm@{usonic\+\_\+distance\+\_\+cm}!Setters and getters@{Setters and getters}}
\subsubsection{\texorpdfstring{usonic\+\_\+distance\+\_\+cm()}{usonic\_distance\_cm()}}
{\footnotesize\ttfamily unsigned long Code\+Racer\+::usonic\+\_\+distance\+\_\+cm (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption})}
Returns the last measured distance in cm.
\begin{DoxyReturn}{Returns}
Distance in cm
\end{DoxyReturn}
Definition at line 852 of file Code\+Racer.\+cpp.
\begin{DoxyCode}
852 \{
853 \textcolor{keywordflow}{return}(\_usonic\_distance\_cm);
854 \}
\end{DoxyCode}

View file

@ -0,0 +1,134 @@
\hypertarget{group__lowerlevelledmeths}{}\section{Methods}
\label{group__lowerlevelledmeths}\index{Methods@{Methods}}
\subsection*{Functions}
\begin{DoxyCompactItemize}
\item
void \hyperlink{group__lowerlevelledmeths_gab2514ca3994de3d64337dd6536fa6ef3}{Code\+Racer\+::set\+\_\+leds\+\_\+left\+\_\+stop\+\_\+frwd\+\_\+right} (ledstate leftled, ledstate stopled, ledstate frwdled, ledstate rightled)
\begin{DoxyCompactList}\small\item\em Sets all of the 4 L\+E\+Ds to a ledstate (L\+E\+D\+ON, L\+E\+D\+O\+FF) \end{DoxyCompactList}\item
void \hyperlink{group__lowerlevelledmeths_gab4319e66963b1b71a34370d73962fa78}{Code\+Racer\+::set\+\_\+leds\+\_\+all} (ledstate alleds)
\begin{DoxyCompactList}\small\item\em Sets all of the 4 L\+E\+Ds to the same ledstate (L\+E\+D\+ON, L\+E\+D\+O\+FF) \end{DoxyCompactList}\item
void \hyperlink{group__lowerlevelledmeths_gaa3f2ad08103127f2cb49344c33b666ea}{Code\+Racer\+::set\+\_\+leds\+\_\+all\+\_\+off} ()
\begin{DoxyCompactList}\small\item\em Sets all of the 4 L\+E\+Ds to the ledstate L\+E\+D\+O\+FF. \end{DoxyCompactList}\item
void \hyperlink{group__lowerlevelledmeths_ga0c8b3d6ce992e1dcfd13fd86c9f89846}{Code\+Racer\+::set\+\_\+leds\+\_\+all\+\_\+on} ()
\begin{DoxyCompactList}\small\item\em Sets all of the 4 L\+E\+Ds to the ledstate L\+E\+D\+ON. \end{DoxyCompactList}\end{DoxyCompactItemize}
\subsection{Detailed Description}
\subsection{Function Documentation}
\mbox{\Hypertarget{group__lowerlevelledmeths_gab2514ca3994de3d64337dd6536fa6ef3}\label{group__lowerlevelledmeths_gab2514ca3994de3d64337dd6536fa6ef3}}
\index{Methods@{Methods}!set\+\_\+leds\+\_\+left\+\_\+stop\+\_\+frwd\+\_\+right@{set\+\_\+leds\+\_\+left\+\_\+stop\+\_\+frwd\+\_\+right}}
\index{set\+\_\+leds\+\_\+left\+\_\+stop\+\_\+frwd\+\_\+right@{set\+\_\+leds\+\_\+left\+\_\+stop\+\_\+frwd\+\_\+right}!Methods@{Methods}}
\subsubsection{\texorpdfstring{set\+\_\+leds\+\_\+left\+\_\+stop\+\_\+frwd\+\_\+right()}{set\_leds\_left\_stop\_frwd\_right()}}
{\footnotesize\ttfamily void Code\+Racer\+::set\+\_\+leds\+\_\+left\+\_\+stop\+\_\+frwd\+\_\+right (\begin{DoxyParamCaption}\item[{ledstate}]{leftled, }\item[{ledstate}]{stopled, }\item[{ledstate}]{frwdled, }\item[{ledstate}]{rightled }\end{DoxyParamCaption})}
Sets all of the 4 L\+E\+Ds to a ledstate (L\+E\+D\+ON, L\+E\+D\+O\+FF)
\begin{DoxyParams}{Parameters}
{\em leftled} & set state of status left L\+ED (most left yellow led) \\
\hline
{\em stopled} & set state of status stop L\+ED (red led) \\
\hline
{\em frwdled} & set state of status forward L\+ED (green or blue led) \\
\hline
{\em rightled} & set state of status right L\+ED (most right yellow led) \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
nothing
\end{DoxyReturn}
Definition at line 1037 of file Code\+Racer.\+cpp.
\begin{DoxyCode}
1037
\{
1038 digitalWrite(\_led\_left\_pin, leftled);
1039 digitalWrite(\_led\_frwd\_pin, frwdled);
1040 digitalWrite(\_led\_right\_pin, rightled);
1041 digitalWrite(\_led\_stop\_pin, stopled);
1042 \}
\end{DoxyCode}
\mbox{\Hypertarget{group__lowerlevelledmeths_gab4319e66963b1b71a34370d73962fa78}\label{group__lowerlevelledmeths_gab4319e66963b1b71a34370d73962fa78}}
\index{Methods@{Methods}!set\+\_\+leds\+\_\+all@{set\+\_\+leds\+\_\+all}}
\index{set\+\_\+leds\+\_\+all@{set\+\_\+leds\+\_\+all}!Methods@{Methods}}
\subsubsection{\texorpdfstring{set\+\_\+leds\+\_\+all()}{set\_leds\_all()}}
{\footnotesize\ttfamily void Code\+Racer\+::set\+\_\+leds\+\_\+all (\begin{DoxyParamCaption}\item[{ledstate}]{alleds }\end{DoxyParamCaption})}
Sets all of the 4 L\+E\+Ds to the same ledstate (L\+E\+D\+ON, L\+E\+D\+O\+FF)
\begin{DoxyParams}{Parameters}
{\em alleds} & set state to all status L\+E\+Ds \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
nothing
\end{DoxyReturn}
Definition at line 1048 of file Code\+Racer.\+cpp.
\begin{DoxyCode}
1048 \{
1049 digitalWrite(\_led\_left\_pin, alleds);
1050 digitalWrite(\_led\_frwd\_pin, alleds);
1051 digitalWrite(\_led\_right\_pin, alleds);
1052 digitalWrite(\_led\_stop\_pin, alleds);
1053 \}
\end{DoxyCode}
\mbox{\Hypertarget{group__lowerlevelledmeths_gaa3f2ad08103127f2cb49344c33b666ea}\label{group__lowerlevelledmeths_gaa3f2ad08103127f2cb49344c33b666ea}}
\index{Methods@{Methods}!set\+\_\+leds\+\_\+all\+\_\+off@{set\+\_\+leds\+\_\+all\+\_\+off}}
\index{set\+\_\+leds\+\_\+all\+\_\+off@{set\+\_\+leds\+\_\+all\+\_\+off}!Methods@{Methods}}
\subsubsection{\texorpdfstring{set\+\_\+leds\+\_\+all\+\_\+off()}{set\_leds\_all\_off()}}
{\footnotesize\ttfamily void Code\+Racer\+::set\+\_\+leds\+\_\+all\+\_\+off (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption})}
Sets all of the 4 L\+E\+Ds to the ledstate L\+E\+D\+O\+FF.
\begin{DoxyReturn}{Returns}
nothing
\end{DoxyReturn}
Definition at line 1058 of file Code\+Racer.\+cpp.
\begin{DoxyCode}
1058 \{
1059 set\_leds\_all(LEDOFF);
1060 \}
\end{DoxyCode}
\mbox{\Hypertarget{group__lowerlevelledmeths_ga0c8b3d6ce992e1dcfd13fd86c9f89846}\label{group__lowerlevelledmeths_ga0c8b3d6ce992e1dcfd13fd86c9f89846}}
\index{Methods@{Methods}!set\+\_\+leds\+\_\+all\+\_\+on@{set\+\_\+leds\+\_\+all\+\_\+on}}
\index{set\+\_\+leds\+\_\+all\+\_\+on@{set\+\_\+leds\+\_\+all\+\_\+on}!Methods@{Methods}}
\subsubsection{\texorpdfstring{set\+\_\+leds\+\_\+all\+\_\+on()}{set\_leds\_all\_on()}}
{\footnotesize\ttfamily void Code\+Racer\+::set\+\_\+leds\+\_\+all\+\_\+on (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption})}
Sets all of the 4 L\+E\+Ds to the ledstate L\+E\+D\+ON.
\begin{DoxyReturn}{Returns}
nothing
\end{DoxyReturn}
Definition at line 1065 of file Code\+Racer.\+cpp.
\begin{DoxyCode}
1065 \{
1066 set\_leds\_all(LEDON);
1067 \}
\end{DoxyCode}

View file

@ -0,0 +1,2 @@
\hypertarget{dir_11f10faf8e1af149a19b120728e5c8cd}{}\section{C\+:/\+Users/jnoack/\+Documents/\+Arduino/libraries/\+Code\+Racer Directory Reference}
\label{dir_11f10faf8e1af149a19b120728e5c8cd}\index{C\+:/\+Users/jnoack/\+Documents/\+Arduino/libraries/\+Code\+Racer Directory Reference@{C\+:/\+Users/jnoack/\+Documents/\+Arduino/libraries/\+Code\+Racer Directory Reference}}

View file

@ -0,0 +1,5 @@
\hypertarget{dir_481cc946b8a81b8d9363a4aad6201160}{}\section{C\+:/\+Users/jnoack/\+Documents/\+Arduino/libraries Directory Reference}
\label{dir_481cc946b8a81b8d9363a4aad6201160}\index{C\+:/\+Users/jnoack/\+Documents/\+Arduino/libraries Directory Reference@{C\+:/\+Users/jnoack/\+Documents/\+Arduino/libraries Directory Reference}}
\subsection*{Directories}
\begin{DoxyCompactItemize}
\end{DoxyCompactItemize}

View file

@ -0,0 +1,2 @@
\hypertarget{dir_a991eec27578c865874ede3d8ec657c2}{}\section{C\+:/\+Users/jnoack/\+Documents/\+Arduino Directory Reference}
\label{dir_a991eec27578c865874ede3d8ec657c2}\index{C\+:/\+Users/jnoack/\+Documents/\+Arduino Directory Reference@{C\+:/\+Users/jnoack/\+Documents/\+Arduino Directory Reference}}

View file

@ -0,0 +1,503 @@
\NeedsTeXFormat{LaTeX2e}
\ProvidesPackage{doxygen}
% Packages used by this style file
\RequirePackage{alltt}
\RequirePackage{array}
\RequirePackage{calc}
\RequirePackage{float}
\RequirePackage{ifthen}
\RequirePackage{verbatim}
\RequirePackage[table]{xcolor}
\RequirePackage{longtable}
\RequirePackage{tabu}
\RequirePackage{tabularx}
\RequirePackage{multirow}
%---------- Internal commands used in this style file ----------------
\newcommand{\ensurespace}[1]{%
\begingroup%
\setlength{\dimen@}{#1}%
\vskip\z@\@plus\dimen@%
\penalty -100\vskip\z@\@plus -\dimen@%
\vskip\dimen@%
\penalty 9999%
\vskip -\dimen@%
\vskip\z@skip% hide the previous |\vskip| from |\addvspace|
\endgroup%
}
\newcommand{\DoxyLabelFont}{}
\newcommand{\entrylabel}[1]{%
{%
\parbox[b]{\labelwidth-4pt}{%
\makebox[0pt][l]{\DoxyLabelFont#1}%
\vspace{1.5\baselineskip}%
}%
}%
}
\newenvironment{DoxyDesc}[1]{%
\ensurespace{4\baselineskip}%
\begin{list}{}{%
\settowidth{\labelwidth}{20pt}%
\setlength{\parsep}{0pt}%
\setlength{\itemsep}{0pt}%
\setlength{\leftmargin}{\labelwidth+\labelsep}%
\renewcommand{\makelabel}{\entrylabel}%
}%
\item[#1]%
}{%
\end{list}%
}
\newsavebox{\xrefbox}
\newlength{\xreflength}
\newcommand{\xreflabel}[1]{%
\sbox{\xrefbox}{#1}%
\setlength{\xreflength}{\wd\xrefbox}%
\ifthenelse{\xreflength>\labelwidth}{%
\begin{minipage}{\textwidth}%
\setlength{\parindent}{0pt}%
\hangindent=15pt\bfseries #1\vspace{1.2\itemsep}%
\end{minipage}%
}{%
\parbox[b]{\labelwidth}{\makebox[0pt][l]{\textbf{#1}}}%
}%
}
%---------- Commands used by doxygen LaTeX output generator ----------
% Used by <pre> ... </pre>
\newenvironment{DoxyPre}{%
\small%
\begin{alltt}%
}{%
\end{alltt}%
\normalsize%
}
% Used by @code ... @endcode
\newenvironment{DoxyCode}{%
\par%
\scriptsize%
\begin{alltt}%
}{%
\end{alltt}%
\normalsize%
}
% Used by @example, @include, @includelineno and @dontinclude
\newenvironment{DoxyCodeInclude}{%
\DoxyCode%
}{%
\endDoxyCode%
}
% Used by @verbatim ... @endverbatim
\newenvironment{DoxyVerb}{%
\footnotesize%
\verbatim%
}{%
\endverbatim%
\normalsize%
}
% Used by @verbinclude
\newenvironment{DoxyVerbInclude}{%
\DoxyVerb%
}{%
\endDoxyVerb%
}
% Used by numbered lists (using '-#' or <ol> ... </ol>)
\newenvironment{DoxyEnumerate}{%
\enumerate%
}{%
\endenumerate%
}
% Used by bullet lists (using '-', @li, @arg, or <ul> ... </ul>)
\newenvironment{DoxyItemize}{%
\itemize%
}{%
\enditemize%
}
% Used by description lists (using <dl> ... </dl>)
\newenvironment{DoxyDescription}{%
\description%
}{%
\enddescription%
}
% Used by @image, @dotfile, @dot ... @enddot, and @msc ... @endmsc
% (only if caption is specified)
\newenvironment{DoxyImage}{%
\begin{figure}[H]%
\begin{center}%
}{%
\end{center}%
\end{figure}%
}
% Used by @image, @dotfile, @dot ... @enddot, and @msc ... @endmsc
% (only if no caption is specified)
\newenvironment{DoxyImageNoCaption}{%
\begin{center}%
}{%
\end{center}%
}
% Used by @attention
\newenvironment{DoxyAttention}[1]{%
\begin{DoxyDesc}{#1}%
}{%
\end{DoxyDesc}%
}
% Used by @author and @authors
\newenvironment{DoxyAuthor}[1]{%
\begin{DoxyDesc}{#1}%
}{%
\end{DoxyDesc}%
}
% Used by @date
\newenvironment{DoxyDate}[1]{%
\begin{DoxyDesc}{#1}%
}{%
\end{DoxyDesc}%
}
% Used by @invariant
\newenvironment{DoxyInvariant}[1]{%
\begin{DoxyDesc}{#1}%
}{%
\end{DoxyDesc}%
}
% Used by @note
\newenvironment{DoxyNote}[1]{%
\begin{DoxyDesc}{#1}%
}{%
\end{DoxyDesc}%
}
% Used by @post
\newenvironment{DoxyPostcond}[1]{%
\begin{DoxyDesc}{#1}%
}{%
\end{DoxyDesc}%
}
% Used by @pre
\newenvironment{DoxyPrecond}[1]{%
\begin{DoxyDesc}{#1}%
}{%
\end{DoxyDesc}%
}
% Used by @copyright
\newenvironment{DoxyCopyright}[1]{%
\begin{DoxyDesc}{#1}%
}{%
\end{DoxyDesc}%
}
% Used by @remark
\newenvironment{DoxyRemark}[1]{%
\begin{DoxyDesc}{#1}%
}{%
\end{DoxyDesc}%
}
% Used by @return and @returns
\newenvironment{DoxyReturn}[1]{%
\begin{DoxyDesc}{#1}%
}{%
\end{DoxyDesc}%
}
% Used by @since
\newenvironment{DoxySince}[1]{%
\begin{DoxyDesc}{#1}%
}{%
\end{DoxyDesc}%
}
% Used by @see
\newenvironment{DoxySeeAlso}[1]{%
\begin{DoxyDesc}{#1}%
}{%
\end{DoxyDesc}%
}
% Used by @version
\newenvironment{DoxyVersion}[1]{%
\begin{DoxyDesc}{#1}%
}{%
\end{DoxyDesc}%
}
% Used by @warning
\newenvironment{DoxyWarning}[1]{%
\begin{DoxyDesc}{#1}%
}{%
\end{DoxyDesc}%
}
% Used by @internal
\newenvironment{DoxyInternal}[1]{%
\paragraph*{#1}%
}{%
}
% Used by @par and @paragraph
\newenvironment{DoxyParagraph}[1]{%
\begin{list}{}{%
\settowidth{\labelwidth}{40pt}%
\setlength{\leftmargin}{\labelwidth}%
\setlength{\parsep}{0pt}%
\setlength{\itemsep}{-4pt}%
\renewcommand{\makelabel}{\entrylabel}%
}%
\item[#1]%
}{%
\end{list}%
}
% Used by parameter lists
\newenvironment{DoxyParams}[2][]{%
\tabulinesep=1mm%
\par%
\ifthenelse{\equal{#1}{}}%
{\begin{longtabu} spread 0pt [l]{|X[-1,l]|X[-1,l]|}}% name + description
{\ifthenelse{\equal{#1}{1}}%
{\begin{longtabu} spread 0pt [l]{|X[-1,l]|X[-1,l]|X[-1,l]|}}% in/out + name + desc
{\begin{longtabu} spread 0pt [l]{|X[-1,l]|X[-1,l]|X[-1,l]|X[-1,l]|}}% in/out + type + name + desc
}
\multicolumn{2}{l}{\hspace{-6pt}\bfseries\fontseries{bc}\selectfont\color{darkgray} #2}\\[1ex]%
\hline%
\endfirsthead%
\multicolumn{2}{l}{\hspace{-6pt}\bfseries\fontseries{bc}\selectfont\color{darkgray} #2}\\[1ex]%
\hline%
\endhead%
}{%
\end{longtabu}%
\vspace{6pt}%
}
% Used for fields of simple structs
\newenvironment{DoxyFields}[1]{%
\tabulinesep=1mm%
\par%
\begin{longtabu} spread 0pt [l]{|X[-1,r]|X[-1,l]|X[-1,l]|}%
\multicolumn{3}{l}{\hspace{-6pt}\bfseries\fontseries{bc}\selectfont\color{darkgray} #1}\\[1ex]%
\hline%
\endfirsthead%
\multicolumn{3}{l}{\hspace{-6pt}\bfseries\fontseries{bc}\selectfont\color{darkgray} #1}\\[1ex]%
\hline%
\endhead%
}{%
\end{longtabu}%
\vspace{6pt}%
}
% Used for fields simple class style enums
\newenvironment{DoxyEnumFields}[1]{%
\tabulinesep=1mm%
\par%
\begin{longtabu} spread 0pt [l]{|X[-1,r]|X[-1,l]|}%
\multicolumn{2}{l}{\hspace{-6pt}\bfseries\fontseries{bc}\selectfont\color{darkgray} #1}\\[1ex]%
\hline%
\endfirsthead%
\multicolumn{2}{l}{\hspace{-6pt}\bfseries\fontseries{bc}\selectfont\color{darkgray} #1}\\[1ex]%
\hline%
\endhead%
}{%
\end{longtabu}%
\vspace{6pt}%
}
% Used for parameters within a detailed function description
\newenvironment{DoxyParamCaption}{%
\renewcommand{\item}[2][]{\\ \hspace*{2.0cm} ##1 {\em ##2}}%
}{%
}
% Used by return value lists
\newenvironment{DoxyRetVals}[1]{%
\tabulinesep=1mm%
\par%
\begin{longtabu} spread 0pt [l]{|X[-1,r]|X[-1,l]|}%
\multicolumn{2}{l}{\hspace{-6pt}\bfseries\fontseries{bc}\selectfont\color{darkgray} #1}\\[1ex]%
\hline%
\endfirsthead%
\multicolumn{2}{l}{\hspace{-6pt}\bfseries\fontseries{bc}\selectfont\color{darkgray} #1}\\[1ex]%
\hline%
\endhead%
}{%
\end{longtabu}%
\vspace{6pt}%
}
% Used by exception lists
\newenvironment{DoxyExceptions}[1]{%
\tabulinesep=1mm%
\par%
\begin{longtabu} spread 0pt [l]{|X[-1,r]|X[-1,l]|}%
\multicolumn{2}{l}{\hspace{-6pt}\bfseries\fontseries{bc}\selectfont\color{darkgray} #1}\\[1ex]%
\hline%
\endfirsthead%
\multicolumn{2}{l}{\hspace{-6pt}\bfseries\fontseries{bc}\selectfont\color{darkgray} #1}\\[1ex]%
\hline%
\endhead%
}{%
\end{longtabu}%
\vspace{6pt}%
}
% Used by template parameter lists
\newenvironment{DoxyTemplParams}[1]{%
\tabulinesep=1mm%
\par%
\begin{longtabu} spread 0pt [l]{|X[-1,r]|X[-1,l]|}%
\multicolumn{2}{l}{\hspace{-6pt}\bfseries\fontseries{bc}\selectfont\color{darkgray} #1}\\[1ex]%
\hline%
\endfirsthead%
\multicolumn{2}{l}{\hspace{-6pt}\bfseries\fontseries{bc}\selectfont\color{darkgray} #1}\\[1ex]%
\hline%
\endhead%
}{%
\end{longtabu}%
\vspace{6pt}%
}
% Used for member lists
\newenvironment{DoxyCompactItemize}{%
\begin{itemize}%
\setlength{\itemsep}{-3pt}%
\setlength{\parsep}{0pt}%
\setlength{\topsep}{0pt}%
\setlength{\partopsep}{0pt}%
}{%
\end{itemize}%
}
% Used for member descriptions
\newenvironment{DoxyCompactList}{%
\begin{list}{}{%
\setlength{\leftmargin}{0.5cm}%
\setlength{\itemsep}{0pt}%
\setlength{\parsep}{0pt}%
\setlength{\topsep}{0pt}%
\renewcommand{\makelabel}{\hfill}%
}%
}{%
\end{list}%
}
% Used for reference lists (@bug, @deprecated, @todo, etc.)
\newenvironment{DoxyRefList}{%
\begin{list}{}{%
\setlength{\labelwidth}{10pt}%
\setlength{\leftmargin}{\labelwidth}%
\addtolength{\leftmargin}{\labelsep}%
\renewcommand{\makelabel}{\xreflabel}%
}%
}{%
\end{list}%
}
% Used by @bug, @deprecated, @todo, etc.
\newenvironment{DoxyRefDesc}[1]{%
\begin{list}{}{%
\renewcommand\makelabel[1]{\textbf{##1}}%
\settowidth\labelwidth{\makelabel{#1}}%
\setlength\leftmargin{\labelwidth+\labelsep}%
}%
}{%
\end{list}%
}
% Used by parameter lists and simple sections
\newenvironment{Desc}
{\begin{list}{}{%
\settowidth{\labelwidth}{20pt}%
\setlength{\parsep}{0pt}%
\setlength{\itemsep}{0pt}%
\setlength{\leftmargin}{\labelwidth+\labelsep}%
\renewcommand{\makelabel}{\entrylabel}%
}
}{%
\end{list}%
}
% Used by tables
\newcommand{\PBS}[1]{\let\temp=\\#1\let\\=\temp}%
\newenvironment{TabularC}[1]%
{\tabulinesep=1mm
\begin{longtabu} spread 0pt [c]{*#1{|X[-1]}|}}%
{\end{longtabu}\par}%
\newenvironment{TabularNC}[1]%
{\begin{tabu} spread 0pt [l]{*#1{|X[-1]}|}}%
{\end{tabu}\par}%
% Used for member group headers
\newenvironment{Indent}{%
\begin{list}{}{%
\setlength{\leftmargin}{0.5cm}%
}%
\item[]\ignorespaces%
}{%
\unskip%
\end{list}%
}
% Used when hyperlinks are turned off
\newcommand{\doxyref}[3]{%
\textbf{#1} (\textnormal{#2}\,\pageref{#3})%
}
% Used to link to a table when hyperlinks are turned on
\newcommand{\doxytablelink}[2]{%
\ref{#1}%
}
% Used to link to a table when hyperlinks are turned off
\newcommand{\doxytableref}[3]{%
\ref{#3}%
}
% Used by @addindex
\newcommand{\lcurly}{\{}
\newcommand{\rcurly}{\}}
% Colors used for syntax highlighting
\definecolor{comment}{rgb}{0.5,0.0,0.0}
\definecolor{keyword}{rgb}{0.0,0.5,0.0}
\definecolor{keywordtype}{rgb}{0.38,0.25,0.125}
\definecolor{keywordflow}{rgb}{0.88,0.5,0.0}
\definecolor{preprocessor}{rgb}{0.5,0.38,0.125}
\definecolor{stringliteral}{rgb}{0.0,0.125,0.25}
\definecolor{charliteral}{rgb}{0.0,0.5,0.5}
\definecolor{vhdldigit}{rgb}{1.0,0.0,1.0}
\definecolor{vhdlkeyword}{rgb}{0.43,0.0,0.43}
\definecolor{vhdllogic}{rgb}{1.0,0.0,0.0}
\definecolor{vhdlchar}{rgb}{0.0,0.0,0.0}
% Color used for table heading
\newcommand{\tableheadbgcolor}{lightgray}%
% Version of hypertarget with correct landing location
\newcommand{\Hypertarget}[1]{\Hy@raisedlink{\hypertarget{#1}{}}}
% Define caption that is also suitable in a table
\makeatletter
\def\doxyfigcaption{%
\refstepcounter{figure}%
\@dblarg{\@caption{figure}}}
\makeatother

View file

@ -0,0 +1,30 @@
set Dir_Old=%cd%
cd /D %~dp0
del /s /f *.ps *.dvi *.aux *.toc *.idx *.ind *.ilg *.log *.out *.brf *.blg *.bbl refman.pdf
pdflatex refman
echo ----
makeindex refman.idx
echo ----
pdflatex refman
setlocal enabledelayedexpansion
set count=8
:repeat
set content=X
for /F "tokens=*" %%T in ( 'findstr /C:"Rerun LaTeX" refman.log' ) do set content="%%~T"
if !content! == X for /F "tokens=*" %%T in ( 'findstr /C:"Rerun to get cross-references right" refman.log' ) do set content="%%~T"
if !content! == X goto :skip
set /a count-=1
if !count! EQU 0 goto :skip
echo ----
pdflatex refman
goto :repeat
:skip
endlocal
makeindex refman.idx
pdflatex refman
cd /D %Dir_Old%
set Dir_Old=

View file

@ -0,0 +1,28 @@
\section{Modules}
Here is a list of all modules\+:\begin{DoxyCompactList}
\item \contentsline{section}{Higher level methods, setters and getters}{\pageref{group__higherlevel}}{}
\begin{DoxyCompactList}
\item \contentsline{section}{Methods}{\pageref{group__higherlevelmeths}}{}
\item \contentsline{section}{Getters and setters}{\pageref{group__higherlevelgetters}}{}
\end{DoxyCompactList}
\item \contentsline{section}{Lower level fun stuff methods}{\pageref{group__lowerlevelfun}}{}
\item \contentsline{section}{Lower level servo drive methods and getters}{\pageref{group__lowerlevelservo}}{}
\begin{DoxyCompactList}
\item \contentsline{section}{Methods}{\pageref{group__lowerlevelservomeths}}{}
\item \contentsline{section}{Getters}{\pageref{group__lowerlevelservogetters}}{}
\end{DoxyCompactList}
\item \contentsline{section}{Lower level ultra sonic methods and getters}{\pageref{group__lowerlevelus}}{}
\begin{DoxyCompactList}
\item \contentsline{section}{Methods}{\pageref{group__lowerlevelusmeths}}{}
\item \contentsline{section}{Setters and getters}{\pageref{group__lowerlevelusgetters}}{}
\end{DoxyCompactList}
\item \contentsline{section}{Lower level drives methods and getters}{\pageref{group__lowerleveldrives}}{}
\begin{DoxyCompactList}
\item \contentsline{section}{Methods}{\pageref{group__lowerleveldrivesmeths}}{}
\item \contentsline{section}{Getters}{\pageref{group__lowerleveldrivesgetters}}{}
\end{DoxyCompactList}
\item \contentsline{section}{Lower level L\+ED methods}{\pageref{group__lowerlevelled}}{}
\begin{DoxyCompactList}
\item \contentsline{section}{Methods}{\pageref{group__lowerlevelledmeths}}{}
\end{DoxyCompactList}
\end{DoxyCompactList}

View file

@ -0,0 +1,169 @@
\documentclass[twoside]{book}
% Packages required by doxygen
\usepackage{fixltx2e}
\usepackage{calc}
\usepackage{doxygen}
\usepackage[export]{adjustbox} % also loads graphicx
\usepackage{graphicx}
\usepackage[utf8]{inputenc}
\usepackage{makeidx}
\usepackage{multicol}
\usepackage{multirow}
\PassOptionsToPackage{warn}{textcomp}
\usepackage{textcomp}
\usepackage[nointegrals]{wasysym}
\usepackage[table]{xcolor}
% Font selection
\usepackage[T1]{fontenc}
\usepackage[scaled=.90]{helvet}
\usepackage{courier}
\usepackage{amssymb}
\usepackage{sectsty}
\renewcommand{\familydefault}{\sfdefault}
\allsectionsfont{%
\fontseries{bc}\selectfont%
\color{darkgray}%
}
\renewcommand{\DoxyLabelFont}{%
\fontseries{bc}\selectfont%
\color{darkgray}%
}
\newcommand{\+}{\discretionary{\mbox{\scriptsize$\hookleftarrow$}}{}{}}
% Page & text layout
\usepackage{geometry}
\geometry{%
a4paper,%
top=2.5cm,%
bottom=2.5cm,%
left=2.5cm,%
right=2.5cm%
}
\tolerance=750
\hfuzz=15pt
\hbadness=750
\setlength{\emergencystretch}{15pt}
\setlength{\parindent}{0cm}
\setlength{\parskip}{3ex plus 2ex minus 2ex}
\makeatletter
\renewcommand{\paragraph}{%
\@startsection{paragraph}{4}{0ex}{-1.0ex}{1.0ex}{%
\normalfont\normalsize\bfseries\SS@parafont%
}%
}
\renewcommand{\subparagraph}{%
\@startsection{subparagraph}{5}{0ex}{-1.0ex}{1.0ex}{%
\normalfont\normalsize\bfseries\SS@subparafont%
}%
}
\makeatother
% Headers & footers
\usepackage{fancyhdr}
\pagestyle{fancyplain}
\fancyhead[LE]{\fancyplain{}{\bfseries\thepage}}
\fancyhead[CE]{\fancyplain{}{}}
\fancyhead[RE]{\fancyplain{}{\bfseries\leftmark}}
\fancyhead[LO]{\fancyplain{}{\bfseries\rightmark}}
\fancyhead[CO]{\fancyplain{}{}}
\fancyhead[RO]{\fancyplain{}{\bfseries\thepage}}
\fancyfoot[LE]{\fancyplain{}{}}
\fancyfoot[CE]{\fancyplain{}{}}
\fancyfoot[RE]{\fancyplain{}{\bfseries\scriptsize Generated by Doxygen }}
\fancyfoot[LO]{\fancyplain{}{\bfseries\scriptsize Generated by Doxygen }}
\fancyfoot[CO]{\fancyplain{}{}}
\fancyfoot[RO]{\fancyplain{}{}}
\renewcommand{\footrulewidth}{0.4pt}
\renewcommand{\chaptermark}[1]{%
\markboth{#1}{}%
}
\renewcommand{\sectionmark}[1]{%
\markright{\thesection\ #1}%
}
% Indices & bibliography
\usepackage{natbib}
\usepackage[titles]{tocloft}
\setcounter{tocdepth}{3}
\setcounter{secnumdepth}{5}
\makeindex
% Hyperlinks (required, but should be loaded last)
\usepackage{ifpdf}
\ifpdf
\usepackage[pdftex,pagebackref=true]{hyperref}
\else
\usepackage[ps2pdf,pagebackref=true]{hyperref}
\fi
\hypersetup{%
colorlinks=true,%
linkcolor=blue,%
citecolor=blue,%
unicode%
}
% Custom commands
\newcommand{\clearemptydoublepage}{%
\newpage{\pagestyle{empty}\cleardoublepage}%
}
\usepackage{caption}
\captionsetup{labelsep=space,justification=centering,font={bf},singlelinecheck=off,skip=4pt,position=top}
%===== C O N T E N T S =====
\begin{document}
% Titlepage & ToC
\hypersetup{pageanchor=false,
bookmarksnumbered=true,
pdfencoding=unicode
}
\pagenumbering{alph}
\begin{titlepage}
\vspace*{7cm}
\begin{center}%
{\Large Arduino \{code\}racer A\+PI }\\
\vspace*{1cm}
{\large Generated by Doxygen 1.8.13}\\
\end{center}
\end{titlepage}
\clearemptydoublepage
\pagenumbering{roman}
\tableofcontents
\clearemptydoublepage
\pagenumbering{arabic}
\hypersetup{pageanchor=true}
%--- Begin generated contents ---
\chapter{Module Index}
\input{modules}
\chapter{Module Documentation}
\input{d9/d80/group__higherlevel}
\include{d2/d40/group__higherlevelmeths}
\include{d7/d45/group__higherlevelgetters}
\include{d8/d7a/group__lowerlevelfun}
\include{d3/d17/group__lowerlevelservo}
\include{db/dd5/group__lowerlevelservomeths}
\include{d4/df4/group__lowerlevelservogetters}
\include{da/daf/group__lowerlevelus}
\include{d6/dfc/group__lowerlevelusmeths}
\include{db/ddd/group__lowerlevelusgetters}
\include{d6/d98/group__lowerleveldrives}
\include{d1/d8a/group__lowerleveldrivesmeths}
\include{d0/d0a/group__lowerleveldrivesgetters}
\include{d7/d0f/group__lowerlevelled}
\include{dd/dff/group__lowerlevelledmeths}
%--- End generated contents ---
% Index
\backmatter
\newpage
\phantomsection
\clearemptydoublepage
\addcontentsline{toc}{chapter}{Index}
\printindex
\end{document}

Binary file not shown.

Binary file not shown.

Binary file not shown.