diff --git a/Doxygen/html/_r_e_a_d_m_e_8md_source.html b/Doxygen/html/_r_e_a_d_m_e_8md_source.html
index eea9681bbac3b263ec1a7e1eac7bc2fa87363231..ae2eaabf608bbbe1651d8f71fa200439ed46ca00 100644
--- a/Doxygen/html/_r_e_a_d_m_e_8md_source.html
+++ b/Doxygen/html/_r_e_a_d_m_e_8md_source.html
@@ -92,7 +92,7 @@ $(document).ready(function(){initNavTree('_r_e_a_d_m_e_8md.html','');});
 <div class="title">C:/Users/DonsterLaptop/Documents/Robot288/cpre288_generalpurposeautomatedrobot/README.md</div>  </div>
 </div><!--header-->
 <div class="contents">
-<div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno">    1</span>&#160;@mainpage</div><div class="line"><a name="l00002"></a><span class="lineno">    2</span>&#160;Navigation Robot</div><div class="line"><a name="l00003"></a><span class="lineno">    3</span>&#160;@section Navigation Robot</div><div class="line"><a name="l00004"></a><span class="lineno">    4</span>&#160;@subsection Introduction</div><div class="line"><a name="l00005"></a><span class="lineno">    5</span>&#160;   The purpose of this robot is to navigate to a destination while avoid obstacles.</div><div class="line"><a name="l00006"></a><span class="lineno">    6</span>&#160;This robot is controlled through a gui by a remote user. This robot will parse commands</div><div class="line"><a name="l00007"></a><span class="lineno">    7</span>&#160;given by the user then will run an action based on what command it has received. It will</div><div class="line"><a name="l00008"></a><span class="lineno">    8</span>&#160;then give a response based on the command it had received. The responses that it sends</div><div class="line"><a name="l00009"></a><span class="lineno">    9</span>&#160;are its position, sensor data, or obstacle and boundary warnings. If the robot does bump </div><div class="line"><a name="l00010"></a><span class="lineno">   10</span>&#160;into an object, it will stop. Likewise if the robot encounters a boundary or a cliff, it </div><div class="line"><a name="l00011"></a><span class="lineno">   11</span>&#160;will stop and wait for user input.     </div><div class="line"><a name="l00012"></a><span class="lineno">   12</span>&#160;</div><div class="line"><a name="l00013"></a><span class="lineno">   13</span>&#160;@subsection Robot_Hardware</div><div class="line"><a name="l00014"></a><span class="lineno">   14</span>&#160;   This robot is controlled using a Tiva TM4C123GH6PM. It is a modified roomba that has a</div><div class="line"><a name="l00015"></a><span class="lineno">   15</span>&#160;servo with an IR and sonic sensor mounted to it. In addition to the mounted sensors, the roomba</div><div class="line"><a name="l00016"></a><span class="lineno">   16</span>&#160;sensor contain bump sensors and ground sensors to detect the type of ground the robot is over.</div><div class="line"><a name="l00017"></a><span class="lineno">   17</span>&#160;This robot is a nonholonomic system which means the robot cannot &#39;strafe&#39;. </div><div class="line"><a name="l00018"></a><span class="lineno">   18</span>&#160;</div><div class="line"><a name="l00019"></a><span class="lineno">   19</span>&#160;@subsection Commands</div><div class="line"><a name="l00020"></a><span class="lineno">   20</span>&#160;   To move the robot send :</div><div class="line"><a name="l00021"></a><span class="lineno">   21</span>&#160;       </div><div class="line"><a name="l00022"></a><span class="lineno">   22</span>&#160;       m delta_heading delta_distance</div><div class="line"><a name="l00023"></a><span class="lineno">   23</span>&#160;   </div><div class="line"><a name="l00024"></a><span class="lineno">   24</span>&#160;   The robot will turn a delta heading then move in a straight line with a delta distance.</div><div class="line"><a name="l00025"></a><span class="lineno">   25</span>&#160;   delta_heading is in degrees with counter clockwise as positive.</div><div class="line"><a name="l00026"></a><span class="lineno">   26</span>&#160;   delta_distance is in millimeters</div><div class="line"><a name="l00027"></a><span class="lineno">   27</span>&#160;   </div><div class="line"><a name="l00028"></a><span class="lineno">   28</span>&#160;   You can also move past boundaries with:</div><div class="line"><a name="l00029"></a><span class="lineno">   29</span>&#160;       </div><div class="line"><a name="l00030"></a><span class="lineno">   30</span>&#160;       m delta_heading delta_distance</div><div class="line"><a name="l00031"></a><span class="lineno">   31</span>&#160;   </div><div class="line"><a name="l00032"></a><span class="lineno">   32</span>&#160;   With both movements commands, the robot will output it&#39;s position as it is moving.</div><div class="line"><a name="l00033"></a><span class="lineno">   33</span>&#160;   </div><div class="line"><a name="l00034"></a><span class="lineno">   34</span>&#160;   To get a sensor feed:</div><div class="line"><a name="l00035"></a><span class="lineno">   35</span>&#160;       </div><div class="line"><a name="l00036"></a><span class="lineno">   36</span>&#160;       s</div><div class="line"><a name="l00037"></a><span class="lineno">   37</span>&#160;       </div><div class="line"><a name="l00038"></a><span class="lineno">   38</span>&#160;   This is trigger the robot to sweep it&#39;s IR and Sonic sensor in a 180 sweep. Either</div><div class="line"><a name="l00039"></a><span class="lineno">   39</span>&#160;   clockwise or counter clockwise. The robot will give the sensor angle it is at and the </div><div class="line"><a name="l00040"></a><span class="lineno">   40</span>&#160;   IR and Sonic sensor data in cm.</div><div class="line"><a name="l00041"></a><span class="lineno">   41</span>&#160;</div><div class="line"><a name="l00042"></a><span class="lineno">   42</span>&#160;   To play the Indiana Jones Theme:</div><div class="line"><a name="l00043"></a><span class="lineno">   43</span>&#160;   </div><div class="line"><a name="l00044"></a><span class="lineno">   44</span>&#160;       p</div><div class="line"><a name="l00045"></a><span class="lineno">   45</span>&#160;   </div><div class="line"><a name="l00046"></a><span class="lineno">   46</span>&#160;   </div><div class="line"><a name="l00047"></a><span class="lineno">   47</span>&#160;@subsection Robot_Responses</div><div class="line"><a name="l00048"></a><span class="lineno">   48</span>&#160;   During movement, the robot will send out it&#39;s position every loop. The position</div><div class="line"><a name="l00049"></a><span class="lineno">   49</span>&#160;   is formated in the example below:</div><div class="line"><a name="l00050"></a><span class="lineno">   50</span>&#160;   </div><div class="line"><a name="l00051"></a><span class="lineno">   51</span>&#160;       x 100 y 100 h 90</div><div class="line"><a name="l00052"></a><span class="lineno">   52</span>&#160;   </div><div class="line"><a name="l00053"></a><span class="lineno">   53</span>&#160;   x and y are in mm as the position of the robot from where it started.</div><div class="line"><a name="l00054"></a><span class="lineno">   54</span>&#160;   h is the current heading in degrees from where it started.</div><div class="line"><a name="l00055"></a><span class="lineno">   55</span>&#160;   </div><div class="line"><a name="l00056"></a><span class="lineno">   56</span>&#160;   During movement, if the robot finds an obstacle or bumps into an object,</div><div class="line"><a name="l00057"></a><span class="lineno">   57</span>&#160;   the robot will stop moving, send what it has sensed, then output it&#39;s</div><div class="line"><a name="l00058"></a><span class="lineno">   58</span>&#160;   current location. What it sends out depends on the obstacle. For floor</div><div class="line"><a name="l00059"></a><span class="lineno">   59</span>&#160;   obstacles, it will send out:</div><div class="line"><a name="l00060"></a><span class="lineno">   60</span>&#160;   </div><div class="line"><a name="l00061"></a><span class="lineno">   61</span>&#160;       type left left_front right right_front</div><div class="line"><a name="l00062"></a><span class="lineno">   62</span>&#160;   </div><div class="line"><a name="l00063"></a><span class="lineno">   63</span>&#160;   where type can only be b, c, z. When the type is b, that&#39;s boundary the robot</div><div class="line"><a name="l00064"></a><span class="lineno">   64</span>&#160;   is over, c is a cliff, and z is the destination area. left, left_front, right,</div><div class="line"><a name="l00065"></a><span class="lineno">   65</span>&#160;   and right_front is the sensor that triggered. These are output as a 1 or 0.</div><div class="line"><a name="l00066"></a><span class="lineno">   66</span>&#160;   </div><div class="line"><a name="l00067"></a><span class="lineno">   67</span>&#160;   If the response is:</div><div class="line"><a name="l00068"></a><span class="lineno">   68</span>&#160;   </div><div class="line"><a name="l00069"></a><span class="lineno">   69</span>&#160;       b left_bumper right_bumper</div><div class="line"><a name="l00070"></a><span class="lineno">   70</span>&#160;   </div><div class="line"><a name="l00071"></a><span class="lineno">   71</span>&#160;   That means the robot bumped into something and it will output which bumper as </div><div class="line"><a name="l00072"></a><span class="lineno">   72</span>&#160;   a 1 or 0 for each bumper.</div><div class="line"><a name="l00073"></a><span class="lineno">   73</span>&#160;   </div><div class="line"><a name="l00074"></a><span class="lineno">   74</span>&#160;   The output to the sensor data as a scan is being run is given as:</div><div class="line"><a name="l00075"></a><span class="lineno">   75</span>&#160;       s angle IR_distance Sonic_Distance</div><div class="line"><a name="l00076"></a><span class="lineno">   76</span>&#160;   where angle is the degree that the servo is pointing at.</div><div class="line"><a name="l00077"></a><span class="lineno">   77</span>&#160;   IR_Distance is the distance from which the object is sensed.</div><div class="line"><a name="l00078"></a><span class="lineno">   78</span>&#160;   Sonic_Distance is the distance from which the object is sensed.</div><div class="line"><a name="l00079"></a><span class="lineno">   79</span>&#160;   </div><div class="line"><a name="l00080"></a><span class="lineno">   80</span>&#160;@subsection Acknowledgements</div><div class="line"><a name="l00081"></a><span class="lineno">   81</span>&#160;   Code that we didn&#39;t write:</div><div class="line"><a name="l00082"></a><span class="lineno">   82</span>&#160;       </div><div class="line"><a name="l00083"></a><span class="lineno">   83</span>&#160;       open_interface</div><div class="line"><a name="l00084"></a><span class="lineno">   84</span>&#160;       timer</div><div class="line"><a name="l00085"></a><span class="lineno">   85</span>&#160;       lcd</div><div class="line"><a name="l00086"></a><span class="lineno">   86</span>&#160;   </div><div class="line"><a name="l00087"></a><span class="lineno">   87</span>&#160;   We did however, made some modifications to open_interface in order</div><div class="line"><a name="l00088"></a><span class="lineno">   88</span>&#160;   to output degrees and distance as a float. </div><div class="line"><a name="l00089"></a><span class="lineno">   89</span>&#160;</div><div class="line"><a name="l00090"></a><span class="lineno">   90</span>&#160;@subsection Bugs</div><div class="line"><a name="l00091"></a><span class="lineno">   91</span>&#160;   </div><div class="line"><a name="l00092"></a><span class="lineno">   92</span>&#160;       -The robot currently registers a boundary prior to registering a zone. So</div><div class="line"><a name="l00093"></a><span class="lineno">   93</span>&#160;           it will output both at the same time before continuously output the zone. </div><div class="line"><a name="l00094"></a><span class="lineno">   94</span>&#160;   </div><div class="line"><a name="l00095"></a><span class="lineno">   95</span>&#160;@section Navigation_Robot_GUI</div><div class="line"><a name="l00096"></a><span class="lineno">   96</span>&#160;@subsection Introduction</div><div class="line"><a name="l00097"></a><span class="lineno">   97</span>&#160;   In general, the robot can be controlled via putty through the wifi interface.</div><div class="line"><a name="l00098"></a><span class="lineno">   98</span>&#160;But this is a better way to control this robot as the GUI can keep track of the </div><div class="line"><a name="l00099"></a><span class="lineno">   99</span>&#160;objects and where the robot has been. In addition, the when the robot takes a </div><div class="line"><a name="l00100"></a><span class="lineno">  100</span>&#160;sensor scan, the GUI will show a radar like pulse that shows the sensor data as it</div><div class="line"><a name="l00101"></a><span class="lineno">  101</span>&#160;scans.</div><div class="line"><a name="l00102"></a><span class="lineno">  102</span>&#160;</div><div class="line"><a name="l00103"></a><span class="lineno">  103</span>&#160;@subsection Installation</div><div class="line"><a name="l00104"></a><span class="lineno">  104</span>&#160;   This program is dependant on:</div><div class="line"><a name="l00105"></a><span class="lineno">  105</span>&#160;       </div><div class="line"><a name="l00106"></a><span class="lineno">  106</span>&#160;       Boost</div><div class="line"><a name="l00107"></a><span class="lineno">  107</span>&#160;       GLFW</div><div class="line"><a name="l00108"></a><span class="lineno">  108</span>&#160;       OpenGL</div><div class="line"><a name="l00109"></a><span class="lineno">  109</span>&#160;       GLM</div><div class="line"><a name="l00110"></a><span class="lineno">  110</span>&#160;   </div><div class="line"><a name="l00111"></a><span class="lineno">  111</span>&#160;   It is highly recommended to use CMake to build the solution files.</div><div class="line"><a name="l00112"></a><span class="lineno">  112</span>&#160;@subsection Usage</div><div class="line"><a name="l00113"></a><span class="lineno">  113</span>&#160;   The GUI will attempt to connect to 192.168.1.1:288 on startup. If it</div><div class="line"><a name="l00114"></a><span class="lineno">  114</span>&#160;   fails a warning will appear in the command prompt. Restart and try again.</div><div class="line"><a name="l00115"></a><span class="lineno">  115</span>&#160;</div><div class="line"><a name="l00116"></a><span class="lineno">  116</span>&#160;   @image html CommandLine.png</div><div class="line"><a name="l00117"></a><span class="lineno">  117</span>&#160;   </div><div class="line"><a name="l00118"></a><span class="lineno">  118</span>&#160;   Once the GUI successfully connects to the robot, it will initially look like this</div><div class="line"><a name="l00119"></a><span class="lineno">  119</span>&#160;   </div><div class="line"><a name="l00120"></a><span class="lineno">  120</span>&#160;   @image html RobotStartup.png</div><div class="line"><a name="l00121"></a><span class="lineno">  121</span>&#160;   </div><div class="line"><a name="l00122"></a><span class="lineno">  122</span>&#160;   The default area that is seen is -500 and 500 millimeters from the robot. Left clicking</div><div class="line"><a name="l00123"></a><span class="lineno">  123</span>&#160;   anywhere on this map will move the center of the robot in that direction by turning the</div><div class="line"><a name="l00124"></a><span class="lineno">  124</span>&#160;   robot to the direction clicked and moving the robot forward to where the mouse is. To</div><div class="line"><a name="l00125"></a><span class="lineno">  125</span>&#160;   force a move past a boundary, use &#39;f&#39; instead of left clicking. Right clicking will turn </div><div class="line"><a name="l00126"></a><span class="lineno">  126</span>&#160;   the robot to the direction of the mouse.</div><div class="line"><a name="l00127"></a><span class="lineno">  127</span>&#160;   </div><div class="line"><a name="l00128"></a><span class="lineno">  128</span>&#160;   You can zoom out with &#39;-&#39; or &#39;=&#39;. Minimum area zoom is 500mm radius and  &#39;=&#39; will zoom out as far</div><div class="line"><a name="l00129"></a><span class="lineno">  129</span>&#160;   as you want in increments of 500mm. </div><div class="line"><a name="l00130"></a><span class="lineno">  130</span>&#160;   </div><div class="line"><a name="l00131"></a><span class="lineno">  131</span>&#160;   As the robot moves, it paints the area it has been in blue, at the resolution of robot size.</div><div class="line"><a name="l00132"></a><span class="lineno">  132</span>&#160;   If the robot bumps into anything, it will paint a yellow box to where the robot thinks</div><div class="line"><a name="l00133"></a><span class="lineno">  133</span>&#160;   where the object is. If it encounters a cliff, the robot will paint a red box. If it is </div><div class="line"><a name="l00134"></a><span class="lineno">  134</span>&#160;   a boundary, then the robot will paint a light blue box. If it is the zone, the robot will</div><div class="line"><a name="l00135"></a><span class="lineno">  135</span>&#160;   paint a purple box.</div><div class="line"><a name="l00136"></a><span class="lineno">  136</span>&#160;   </div><div class="line"><a name="l00137"></a><span class="lineno">  137</span>&#160;   In addition, the user can paint a yellow box for probable bumpable object locations or locations</div><div class="line"><a name="l00138"></a><span class="lineno">  138</span>&#160;   to avoid. This can be done by mousing over and pressing &#39;v&#39;.</div><div class="line"><a name="l00139"></a><span class="lineno">  139</span>&#160;   </div><div class="line"><a name="l00140"></a><span class="lineno">  140</span>&#160;   To tell the robot to do a sensor sweep, press &#39;s&#39;. The sensor sweep will print small green dots to</div><div class="line"><a name="l00141"></a><span class="lineno">  141</span>&#160;   show where a probable object is. It&#39;s range is only about 60 centimeters due to accuracy concerns.</div><div class="line"><a name="l00142"></a><span class="lineno">  142</span>&#160;   </div><div class="line"><a name="l00143"></a><span class="lineno">  143</span>&#160;   To tell the robot to play a song, press &#39;p&#39;. It&#39;s the Indiana Jones Theme.</div><div class="line"><a name="l00144"></a><span class="lineno">  144</span>&#160;   </div><div class="line"><a name="l00145"></a><span class="lineno">  145</span>&#160;   Example of how the robot operation looks like.</div><div class="line"><a name="l00146"></a><span class="lineno">  146</span>&#160;   </div><div class="line"><a name="l00147"></a><span class="lineno">  147</span>&#160;   @image html ResizedRealRobotVisionMap.png</div><div class="line"><a name="l00148"></a><span class="lineno">  148</span>&#160;   @image html robotvisionmap.png</div><div class="line"><a name="l00149"></a><span class="lineno">  149</span>&#160;@subsection Robot_Commands</div><div class="line"><a name="l00150"></a><span class="lineno">  150</span>&#160;</div><div class="line"><a name="l00151"></a><span class="lineno">  151</span>&#160;   Command List</div><div class="line"><a name="l00152"></a><span class="lineno">  152</span>&#160;   </div><div class="line"><a name="l00153"></a><span class="lineno">  153</span>&#160;       left click: Move Robot</div><div class="line"><a name="l00154"></a><span class="lineno">  154</span>&#160;       right click: Turn Robot only</div><div class="line"><a name="l00155"></a><span class="lineno">  155</span>&#160;       f: Move Robot, ignore boundary</div><div class="line"><a name="l00156"></a><span class="lineno">  156</span>&#160;       v: Place an obstacle</div><div class="line"><a name="l00157"></a><span class="lineno">  157</span>&#160;       s: Start Sensor Scan</div><div class="line"><a name="l00158"></a><span class="lineno">  158</span>&#160;       p: Play Indiana Jones Theme</div><div class="line"><a name="l00159"></a><span class="lineno">  159</span>&#160;       -: Zoom in by 500mm</div><div class="line"><a name="l00160"></a><span class="lineno">  160</span>&#160;       =: Zoom out by 500mm</div><div class="line"><a name="l00161"></a><span class="lineno">  161</span>&#160;</div><div class="line"><a name="l00162"></a><span class="lineno">  162</span>&#160; </div><div class="line"><a name="l00163"></a><span class="lineno">  163</span>&#160;@subsection Acknowledgements</div><div class="line"><a name="l00164"></a><span class="lineno">  164</span>&#160;</div><div class="line"><a name="l00165"></a><span class="lineno">  165</span>&#160;As noted, this is created with boost as well as using some example code from</div><div class="line"><a name="l00166"></a><span class="lineno">  166</span>&#160;OpenGL as a template. However, the shader loading function is copied from OpenGL</div><div class="line"><a name="l00167"></a><span class="lineno">  167</span>&#160;tutorials.</div><div class="line"><a name="l00168"></a><span class="lineno">  168</span>&#160;</div><div class="line"><a name="l00169"></a><span class="lineno">  169</span>&#160;@subsection Bugs</div><div class="line"><a name="l00170"></a><span class="lineno">  170</span>&#160;</div><div class="line"><a name="l00171"></a><span class="lineno">  171</span>&#160;       -Sensor line hasn&#39;t been fixed to follow with the robot.</div><div class="line"><a name="l00172"></a><span class="lineno">  172</span>&#160;       -When a zone is encountered, it will keep placing a zone until the buffer resets.</div><div class="line"><a name="l00173"></a><span class="lineno">  173</span>&#160;       -Sometimes the robot likes to turn with the largest degree.</div><div class="line"><a name="l00174"></a><span class="lineno">  174</span>&#160;       -Do not modify window size. It is undefined on how the controls work when window is a </div><div class="line"><a name="l00175"></a><span class="lineno">  175</span>&#160;           different size.</div><div class="line"><a name="l00176"></a><span class="lineno">  176</span>&#160;   </div><div class="line"><a name="l00177"></a><span class="lineno">  177</span>&#160;   </div></div><!-- fragment --></div><!-- contents -->
+<div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno">    1</span>&#160;@mainpage</div><div class="line"><a name="l00002"></a><span class="lineno">    2</span>&#160;Navigation Robot</div><div class="line"><a name="l00003"></a><span class="lineno">    3</span>&#160;@section Navigation Robot</div><div class="line"><a name="l00004"></a><span class="lineno">    4</span>&#160;@subsection Introduction</div><div class="line"><a name="l00005"></a><span class="lineno">    5</span>&#160;   The purpose of this robot is to navigate to a destination while avoid obstacles.</div><div class="line"><a name="l00006"></a><span class="lineno">    6</span>&#160;This robot is controlled through a gui by a remote user. This robot will parse commands</div><div class="line"><a name="l00007"></a><span class="lineno">    7</span>&#160;given by the user then will run an action based on what command it has received. It will</div><div class="line"><a name="l00008"></a><span class="lineno">    8</span>&#160;then give a response based on the command it had received. The responses that it sends</div><div class="line"><a name="l00009"></a><span class="lineno">    9</span>&#160;are its position, sensor data, or obstacle and boundary warnings. If the robot does bump </div><div class="line"><a name="l00010"></a><span class="lineno">   10</span>&#160;into an object, it will stop. Likewise if the robot encounters a boundary or a cliff, it </div><div class="line"><a name="l00011"></a><span class="lineno">   11</span>&#160;will stop and wait for user input.     </div><div class="line"><a name="l00012"></a><span class="lineno">   12</span>&#160;</div><div class="line"><a name="l00013"></a><span class="lineno">   13</span>&#160;@subsection Robot_Hardware</div><div class="line"><a name="l00014"></a><span class="lineno">   14</span>&#160;   This robot is controlled using a Tiva TM4C123GH6PM. It is a modified roomba that has a</div><div class="line"><a name="l00015"></a><span class="lineno">   15</span>&#160;servo with an IR and sonic sensor mounted to it. In addition to the mounted sensors, the roomba</div><div class="line"><a name="l00016"></a><span class="lineno">   16</span>&#160;sensor contain bump sensors and ground sensors to detect the type of ground the robot is over.</div><div class="line"><a name="l00017"></a><span class="lineno">   17</span>&#160;This robot is a nonholonomic system which means the robot cannot &#39;strafe&#39;. </div><div class="line"><a name="l00018"></a><span class="lineno">   18</span>&#160;</div><div class="line"><a name="l00019"></a><span class="lineno">   19</span>&#160;@subsection Commands</div><div class="line"><a name="l00020"></a><span class="lineno">   20</span>&#160;   To move the robot send :</div><div class="line"><a name="l00021"></a><span class="lineno">   21</span>&#160;       </div><div class="line"><a name="l00022"></a><span class="lineno">   22</span>&#160;       m delta_heading delta_distance</div><div class="line"><a name="l00023"></a><span class="lineno">   23</span>&#160;   </div><div class="line"><a name="l00024"></a><span class="lineno">   24</span>&#160;   The robot will turn a delta heading then move in a straight line with a delta distance.</div><div class="line"><a name="l00025"></a><span class="lineno">   25</span>&#160;   delta_heading is in degrees with counter clockwise as positive.</div><div class="line"><a name="l00026"></a><span class="lineno">   26</span>&#160;   delta_distance is in millimeters</div><div class="line"><a name="l00027"></a><span class="lineno">   27</span>&#160;   </div><div class="line"><a name="l00028"></a><span class="lineno">   28</span>&#160;   You can also move past boundaries with:</div><div class="line"><a name="l00029"></a><span class="lineno">   29</span>&#160;       </div><div class="line"><a name="l00030"></a><span class="lineno">   30</span>&#160;       m delta_heading delta_distance</div><div class="line"><a name="l00031"></a><span class="lineno">   31</span>&#160;   </div><div class="line"><a name="l00032"></a><span class="lineno">   32</span>&#160;   With both movements commands, the robot will output it&#39;s position as it is moving.</div><div class="line"><a name="l00033"></a><span class="lineno">   33</span>&#160;   </div><div class="line"><a name="l00034"></a><span class="lineno">   34</span>&#160;   To get a sensor feed:</div><div class="line"><a name="l00035"></a><span class="lineno">   35</span>&#160;       </div><div class="line"><a name="l00036"></a><span class="lineno">   36</span>&#160;       s</div><div class="line"><a name="l00037"></a><span class="lineno">   37</span>&#160;       </div><div class="line"><a name="l00038"></a><span class="lineno">   38</span>&#160;   This is trigger the robot to sweep it&#39;s IR and Sonic sensor in a 180 sweep. Either</div><div class="line"><a name="l00039"></a><span class="lineno">   39</span>&#160;   clockwise or counter clockwise. The robot will give the sensor angle it is at and the </div><div class="line"><a name="l00040"></a><span class="lineno">   40</span>&#160;   IR and Sonic sensor data in cm.</div><div class="line"><a name="l00041"></a><span class="lineno">   41</span>&#160;</div><div class="line"><a name="l00042"></a><span class="lineno">   42</span>&#160;   To play the Indiana Jones Theme:</div><div class="line"><a name="l00043"></a><span class="lineno">   43</span>&#160;   </div><div class="line"><a name="l00044"></a><span class="lineno">   44</span>&#160;       p</div><div class="line"><a name="l00045"></a><span class="lineno">   45</span>&#160;   </div><div class="line"><a name="l00046"></a><span class="lineno">   46</span>&#160;   </div><div class="line"><a name="l00047"></a><span class="lineno">   47</span>&#160;@subsection Robot_Responses</div><div class="line"><a name="l00048"></a><span class="lineno">   48</span>&#160;   During movement, the robot will send out it&#39;s position every loop. The position</div><div class="line"><a name="l00049"></a><span class="lineno">   49</span>&#160;   is formated in the example below:</div><div class="line"><a name="l00050"></a><span class="lineno">   50</span>&#160;   </div><div class="line"><a name="l00051"></a><span class="lineno">   51</span>&#160;       x 100 y 100 h 90</div><div class="line"><a name="l00052"></a><span class="lineno">   52</span>&#160;   </div><div class="line"><a name="l00053"></a><span class="lineno">   53</span>&#160;   x and y are in mm as the position of the robot from where it started.</div><div class="line"><a name="l00054"></a><span class="lineno">   54</span>&#160;   h is the current heading in degrees from where it started.</div><div class="line"><a name="l00055"></a><span class="lineno">   55</span>&#160;   </div><div class="line"><a name="l00056"></a><span class="lineno">   56</span>&#160;   During movement, if the robot finds an obstacle or bumps into an object,</div><div class="line"><a name="l00057"></a><span class="lineno">   57</span>&#160;   the robot will stop moving, send what it has sensed, then output it&#39;s</div><div class="line"><a name="l00058"></a><span class="lineno">   58</span>&#160;   current location. What it sends out depends on the obstacle. For floor</div><div class="line"><a name="l00059"></a><span class="lineno">   59</span>&#160;   obstacles, it will send out:</div><div class="line"><a name="l00060"></a><span class="lineno">   60</span>&#160;   </div><div class="line"><a name="l00061"></a><span class="lineno">   61</span>&#160;       type left left_front right right_front</div><div class="line"><a name="l00062"></a><span class="lineno">   62</span>&#160;   </div><div class="line"><a name="l00063"></a><span class="lineno">   63</span>&#160;   where type can only be b, c, z. When the type is b, that&#39;s boundary the robot</div><div class="line"><a name="l00064"></a><span class="lineno">   64</span>&#160;   is over, c is a cliff, and z is the destination area. left, left_front, right,</div><div class="line"><a name="l00065"></a><span class="lineno">   65</span>&#160;   and right_front is the sensor that triggered. These are output as a 1 or 0.</div><div class="line"><a name="l00066"></a><span class="lineno">   66</span>&#160;   </div><div class="line"><a name="l00067"></a><span class="lineno">   67</span>&#160;   If the response is:</div><div class="line"><a name="l00068"></a><span class="lineno">   68</span>&#160;   </div><div class="line"><a name="l00069"></a><span class="lineno">   69</span>&#160;       b left_bumper right_bumper</div><div class="line"><a name="l00070"></a><span class="lineno">   70</span>&#160;   </div><div class="line"><a name="l00071"></a><span class="lineno">   71</span>&#160;   That means the robot bumped into something and it will output which bumper as </div><div class="line"><a name="l00072"></a><span class="lineno">   72</span>&#160;   a 1 or 0 for each bumper.</div><div class="line"><a name="l00073"></a><span class="lineno">   73</span>&#160;   </div><div class="line"><a name="l00074"></a><span class="lineno">   74</span>&#160;   The output to the sensor data as a scan is being run is given as:</div><div class="line"><a name="l00075"></a><span class="lineno">   75</span>&#160;       s angle IR_distance Sonic_Distance</div><div class="line"><a name="l00076"></a><span class="lineno">   76</span>&#160;   where angle is the degree that the servo is pointing at.</div><div class="line"><a name="l00077"></a><span class="lineno">   77</span>&#160;   IR_Distance is the distance from which the object is sensed.</div><div class="line"><a name="l00078"></a><span class="lineno">   78</span>&#160;   Sonic_Distance is the distance from which the object is sensed.</div><div class="line"><a name="l00079"></a><span class="lineno">   79</span>&#160;   </div><div class="line"><a name="l00080"></a><span class="lineno">   80</span>&#160;@subsection Acknowledgements</div><div class="line"><a name="l00081"></a><span class="lineno">   81</span>&#160;   Code that we didn&#39;t write:</div><div class="line"><a name="l00082"></a><span class="lineno">   82</span>&#160;       </div><div class="line"><a name="l00083"></a><span class="lineno">   83</span>&#160;       open_interface.h - Author: Noah Bergman</div><div class="line"><a name="l00084"></a><span class="lineno">   84</span>&#160;       open_interface.c - Author: Noah Bergman, Eric Middleton, dmlarson</div><div class="line"><a name="l00085"></a><span class="lineno">   85</span>&#160;       timer.h - Author: Eric Middleton</div><div class="line"><a name="l00086"></a><span class="lineno">   86</span>&#160;       timer.c - Author: Eric Middleton</div><div class="line"><a name="l00087"></a><span class="lineno">   87</span>&#160;       lcd.h - Author: Noah Bergman</div><div class="line"><a name="l00088"></a><span class="lineno">   88</span>&#160;       lcd.c - Author: Noah Bergman, Eric Middleton</div><div class="line"><a name="l00089"></a><span class="lineno">   89</span>&#160;   </div><div class="line"><a name="l00090"></a><span class="lineno">   90</span>&#160;   These have be lifted from the labs.</div><div class="line"><a name="l00091"></a><span class="lineno">   91</span>&#160;   We did however, made some modifications to open_interface in order</div><div class="line"><a name="l00092"></a><span class="lineno">   92</span>&#160;   to output degrees as a float. </div><div class="line"><a name="l00093"></a><span class="lineno">   93</span>&#160;</div><div class="line"><a name="l00094"></a><span class="lineno">   94</span>&#160;@subsection Bugs</div><div class="line"><a name="l00095"></a><span class="lineno">   95</span>&#160;   </div><div class="line"><a name="l00096"></a><span class="lineno">   96</span>&#160;       -The robot currently registers a boundary prior to registering a zone. So</div><div class="line"><a name="l00097"></a><span class="lineno">   97</span>&#160;           it will output both at the same time before continuously output the zone. </div><div class="line"><a name="l00098"></a><span class="lineno">   98</span>&#160;   </div><div class="line"><a name="l00099"></a><span class="lineno">   99</span>&#160;@section Navigation_Robot_GUI</div><div class="line"><a name="l00100"></a><span class="lineno">  100</span>&#160;@subsection Introduction</div><div class="line"><a name="l00101"></a><span class="lineno">  101</span>&#160;   In general, the robot can be controlled via putty through the wifi interface.</div><div class="line"><a name="l00102"></a><span class="lineno">  102</span>&#160;But this is a better way to control this robot as the GUI can keep track of the </div><div class="line"><a name="l00103"></a><span class="lineno">  103</span>&#160;objects and where the robot has been. In addition, the when the robot takes a </div><div class="line"><a name="l00104"></a><span class="lineno">  104</span>&#160;sensor scan, the GUI will show a radar like pulse that shows the sensor data as it</div><div class="line"><a name="l00105"></a><span class="lineno">  105</span>&#160;scans.</div><div class="line"><a name="l00106"></a><span class="lineno">  106</span>&#160;</div><div class="line"><a name="l00107"></a><span class="lineno">  107</span>&#160;@subsection Installation</div><div class="line"><a name="l00108"></a><span class="lineno">  108</span>&#160;   This program is dependant on:</div><div class="line"><a name="l00109"></a><span class="lineno">  109</span>&#160;       </div><div class="line"><a name="l00110"></a><span class="lineno">  110</span>&#160;       Boost</div><div class="line"><a name="l00111"></a><span class="lineno">  111</span>&#160;       GLFW</div><div class="line"><a name="l00112"></a><span class="lineno">  112</span>&#160;       OpenGL</div><div class="line"><a name="l00113"></a><span class="lineno">  113</span>&#160;       GLM</div><div class="line"><a name="l00114"></a><span class="lineno">  114</span>&#160;   </div><div class="line"><a name="l00115"></a><span class="lineno">  115</span>&#160;   It is highly recommended to use CMake to build the solution files.</div><div class="line"><a name="l00116"></a><span class="lineno">  116</span>&#160;@subsection Usage</div><div class="line"><a name="l00117"></a><span class="lineno">  117</span>&#160;   The GUI will attempt to connect to 192.168.1.1:288 on startup. If it</div><div class="line"><a name="l00118"></a><span class="lineno">  118</span>&#160;   fails a warning will appear in the command prompt. Restart and try again.</div><div class="line"><a name="l00119"></a><span class="lineno">  119</span>&#160;</div><div class="line"><a name="l00120"></a><span class="lineno">  120</span>&#160;   @image html CommandLine.png</div><div class="line"><a name="l00121"></a><span class="lineno">  121</span>&#160;   </div><div class="line"><a name="l00122"></a><span class="lineno">  122</span>&#160;   Once the GUI successfully connects to the robot, it will initially look like this</div><div class="line"><a name="l00123"></a><span class="lineno">  123</span>&#160;   </div><div class="line"><a name="l00124"></a><span class="lineno">  124</span>&#160;   @image html RobotStartup.png</div><div class="line"><a name="l00125"></a><span class="lineno">  125</span>&#160;   </div><div class="line"><a name="l00126"></a><span class="lineno">  126</span>&#160;   The default area that is seen is -500 and 500 millimeters from the robot. Left clicking</div><div class="line"><a name="l00127"></a><span class="lineno">  127</span>&#160;   anywhere on this map will move the center of the robot in that direction by turning the</div><div class="line"><a name="l00128"></a><span class="lineno">  128</span>&#160;   robot to the direction clicked and moving the robot forward to where the mouse is. To</div><div class="line"><a name="l00129"></a><span class="lineno">  129</span>&#160;   force a move past a boundary, use &#39;f&#39; instead of left clicking. Right clicking will turn </div><div class="line"><a name="l00130"></a><span class="lineno">  130</span>&#160;   the robot to the direction of the mouse.</div><div class="line"><a name="l00131"></a><span class="lineno">  131</span>&#160;   </div><div class="line"><a name="l00132"></a><span class="lineno">  132</span>&#160;   You can zoom out with &#39;-&#39; or &#39;=&#39;. Minimum area zoom is 500mm radius and  &#39;=&#39; will zoom out as far</div><div class="line"><a name="l00133"></a><span class="lineno">  133</span>&#160;   as you want in increments of 500mm. </div><div class="line"><a name="l00134"></a><span class="lineno">  134</span>&#160;   </div><div class="line"><a name="l00135"></a><span class="lineno">  135</span>&#160;   As the robot moves, it paints the area it has been in blue, at the resolution of robot size.</div><div class="line"><a name="l00136"></a><span class="lineno">  136</span>&#160;   If the robot bumps into anything, it will paint a yellow box to where the robot thinks</div><div class="line"><a name="l00137"></a><span class="lineno">  137</span>&#160;   where the object is. If it encounters a cliff, the robot will paint a red box. If it is </div><div class="line"><a name="l00138"></a><span class="lineno">  138</span>&#160;   a boundary, then the robot will paint a light blue box. If it is the zone, the robot will</div><div class="line"><a name="l00139"></a><span class="lineno">  139</span>&#160;   paint a purple box.</div><div class="line"><a name="l00140"></a><span class="lineno">  140</span>&#160;   </div><div class="line"><a name="l00141"></a><span class="lineno">  141</span>&#160;   In addition, the user can paint a yellow box for probable bumpable object locations or locations</div><div class="line"><a name="l00142"></a><span class="lineno">  142</span>&#160;   to avoid. This can be done by mousing over and pressing &#39;v&#39;.</div><div class="line"><a name="l00143"></a><span class="lineno">  143</span>&#160;   </div><div class="line"><a name="l00144"></a><span class="lineno">  144</span>&#160;   To tell the robot to do a sensor sweep, press &#39;s&#39;. The sensor sweep will print small green dots to</div><div class="line"><a name="l00145"></a><span class="lineno">  145</span>&#160;   show where a probable object is. It&#39;s range is only about 60 centimeters due to accuracy concerns.</div><div class="line"><a name="l00146"></a><span class="lineno">  146</span>&#160;   </div><div class="line"><a name="l00147"></a><span class="lineno">  147</span>&#160;   To tell the robot to play a song, press &#39;p&#39;. It&#39;s the Indiana Jones Theme.</div><div class="line"><a name="l00148"></a><span class="lineno">  148</span>&#160;   </div><div class="line"><a name="l00149"></a><span class="lineno">  149</span>&#160;   Example of how the robot operation looks like.</div><div class="line"><a name="l00150"></a><span class="lineno">  150</span>&#160;   </div><div class="line"><a name="l00151"></a><span class="lineno">  151</span>&#160;   @image html ResizedRealRobotVisionMap.png</div><div class="line"><a name="l00152"></a><span class="lineno">  152</span>&#160;   @image html robotvisionmap.png</div><div class="line"><a name="l00153"></a><span class="lineno">  153</span>&#160;@subsection Robot_Commands</div><div class="line"><a name="l00154"></a><span class="lineno">  154</span>&#160;</div><div class="line"><a name="l00155"></a><span class="lineno">  155</span>&#160;   Command List</div><div class="line"><a name="l00156"></a><span class="lineno">  156</span>&#160;   </div><div class="line"><a name="l00157"></a><span class="lineno">  157</span>&#160;       left click: Move Robot</div><div class="line"><a name="l00158"></a><span class="lineno">  158</span>&#160;       right click: Turn Robot only</div><div class="line"><a name="l00159"></a><span class="lineno">  159</span>&#160;       f: Move Robot, ignore boundary</div><div class="line"><a name="l00160"></a><span class="lineno">  160</span>&#160;       v: Place an obstacle</div><div class="line"><a name="l00161"></a><span class="lineno">  161</span>&#160;       s: Start Sensor Scan</div><div class="line"><a name="l00162"></a><span class="lineno">  162</span>&#160;       p: Play Indiana Jones Theme</div><div class="line"><a name="l00163"></a><span class="lineno">  163</span>&#160;       -: Zoom in by 500mm</div><div class="line"><a name="l00164"></a><span class="lineno">  164</span>&#160;       =: Zoom out by 500mm</div><div class="line"><a name="l00165"></a><span class="lineno">  165</span>&#160;</div><div class="line"><a name="l00166"></a><span class="lineno">  166</span>&#160; </div><div class="line"><a name="l00167"></a><span class="lineno">  167</span>&#160;@subsection Acknowledgements</div><div class="line"><a name="l00168"></a><span class="lineno">  168</span>&#160;</div><div class="line"><a name="l00169"></a><span class="lineno">  169</span>&#160;As noted, this is created with boost as well as using some example code from</div><div class="line"><a name="l00170"></a><span class="lineno">  170</span>&#160;OpenGL as a template. However, the shader loading function is copied from OpenGL</div><div class="line"><a name="l00171"></a><span class="lineno">  171</span>&#160;tutorials.</div><div class="line"><a name="l00172"></a><span class="lineno">  172</span>&#160;</div><div class="line"><a name="l00173"></a><span class="lineno">  173</span>&#160;@subsection Bugs</div><div class="line"><a name="l00174"></a><span class="lineno">  174</span>&#160;</div><div class="line"><a name="l00175"></a><span class="lineno">  175</span>&#160;       -Sensor line hasn&#39;t been fixed to follow with the robot.</div><div class="line"><a name="l00176"></a><span class="lineno">  176</span>&#160;       -When a zone is encountered, it will keep placing a zone until the buffer resets.</div><div class="line"><a name="l00177"></a><span class="lineno">  177</span>&#160;       -Sometimes the robot likes to turn with the largest degree.</div><div class="line"><a name="l00178"></a><span class="lineno">  178</span>&#160;       -Do not modify window size. It is undefined on how the controls work when window is a </div><div class="line"><a name="l00179"></a><span class="lineno">  179</span>&#160;           different size.</div><div class="line"><a name="l00180"></a><span class="lineno">  180</span>&#160;   </div><div class="line"><a name="l00181"></a><span class="lineno">  181</span>&#160;   </div></div><!-- fragment --></div><!-- contents -->
 </div><!-- doc-content -->
 <!-- start footer part -->
 <div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
diff --git a/Doxygen/html/_sound_8c_source.html b/Doxygen/html/_sound_8c_source.html
index 2216951963f327ede1d000174a0b55543e11d6da..cfee875be5316a25f8b45ca73fcb3de23fc2b130 100644
--- a/Doxygen/html/_sound_8c_source.html
+++ b/Doxygen/html/_sound_8c_source.html
@@ -92,7 +92,10 @@ $(document).ready(function(){initNavTree('_sound_8c_source.html','');});
 <div class="title">Sound.c</div>  </div>
 </div><!--header-->
 <div class="contents">
-<a href="_sound_8c.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno">    1</span>&#160;</div><div class="line"><a name="l00014"></a><span class="lineno">   14</span>&#160;<span class="preprocessor">#include &lt;Utils/open_interface.h&gt;</span></div><div class="line"><a name="l00015"></a><span class="lineno">   15</span>&#160;</div><div class="line"><a name="l00016"></a><span class="lineno"><a class="line" href="_sound_8h.html#a89a739cfb6c248f26551c5ac303b0841">   16</a></span>&#160;<span class="keywordtype">void</span> <a class="code" href="_sound_8c.html#a89a739cfb6c248f26551c5ac303b0841">playSong</a>()</div><div class="line"><a name="l00017"></a><span class="lineno">   17</span>&#160;{</div><div class="line"><a name="l00018"></a><span class="lineno">   18</span>&#160;    </div><div class="line"><a name="l00019"></a><span class="lineno">   19</span>&#160;    <span class="comment">// Array of note pitch values</span></div><div class="line"><a name="l00020"></a><span class="lineno">   20</span>&#160;    <span class="keywordtype">unsigned</span> <span class="keywordtype">char</span> Notes[16] = { 66, 67, 69, 74, 64, 66, 67, 70, 71, 73, 78, 71,</div><div class="line"><a name="l00021"></a><span class="lineno">   21</span>&#160;                                73, 74, 76, 78 };</div><div class="line"><a name="l00022"></a><span class="lineno">   22</span>&#160;    <span class="comment">// Array of note duration values</span></div><div class="line"><a name="l00023"></a><span class="lineno">   23</span>&#160;    <span class="keywordtype">unsigned</span> <span class="keywordtype">char</span> Dur[16] = { 8, 8, 16, 72, 8, 8, 64, 8, 8, 8, 72, 8, 8, 32, 32,</div><div class="line"><a name="l00024"></a><span class="lineno">   24</span>&#160;                              32 };</div><div class="line"><a name="l00025"></a><span class="lineno">   25</span>&#160;</div><div class="line"><a name="l00026"></a><span class="lineno">   26</span>&#160;    <span class="comment">// Load the song</span></div><div class="line"><a name="l00027"></a><span class="lineno">   27</span>&#160;    oi_loadSong(1, 16, Notes, Dur);</div><div class="line"><a name="l00028"></a><span class="lineno">   28</span>&#160;    <span class="comment">// Play the song</span></div><div class="line"><a name="l00029"></a><span class="lineno">   29</span>&#160;    oi_play_song(1);</div><div class="line"><a name="l00030"></a><span class="lineno">   30</span>&#160;    </div><div class="line"><a name="l00031"></a><span class="lineno">   31</span>&#160;}</div><div class="ttc" id="_sound_8c_html_a89a739cfb6c248f26551c5ac303b0841"><div class="ttname"><a href="_sound_8c.html#a89a739cfb6c248f26551c5ac303b0841">playSong</a></div><div class="ttdeci">void playSong()</div><div class="ttdef"><b>Definition:</b> <a href="_sound_8c_source.html#l00016">Sound.c:16</a></div></div>
+<a href="_sound_8c.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno">    1</span>&#160;</div><div class="line"><a name="l00014"></a><span class="lineno">   14</span>&#160;<span class="preprocessor">#include &lt;<a class="code" href="open__interface_8h.html">Utils/open_interface.h</a>&gt;</span></div><div class="line"><a name="l00015"></a><span class="lineno">   15</span>&#160;</div><div class="line"><a name="l00016"></a><span class="lineno"><a class="line" href="_sound_8h.html#a89a739cfb6c248f26551c5ac303b0841">   16</a></span>&#160;<span class="keywordtype">void</span> <a class="code" href="_sound_8c.html#a89a739cfb6c248f26551c5ac303b0841">playSong</a>()</div><div class="line"><a name="l00017"></a><span class="lineno">   17</span>&#160;{</div><div class="line"><a name="l00018"></a><span class="lineno">   18</span>&#160;    </div><div class="line"><a name="l00019"></a><span class="lineno">   19</span>&#160;    <span class="comment">// Array of note pitch values</span></div><div class="line"><a name="l00020"></a><span class="lineno">   20</span>&#160;    <span class="keywordtype">unsigned</span> <span class="keywordtype">char</span> Notes[16] = { 66, 67, 69, 74, 64, 66, 67, 70, 71, 73, 78, 71,</div><div class="line"><a name="l00021"></a><span class="lineno">   21</span>&#160;                                73, 74, 76, 78 };</div><div class="line"><a name="l00022"></a><span class="lineno">   22</span>&#160;    <span class="comment">// Array of note duration values</span></div><div class="line"><a name="l00023"></a><span class="lineno">   23</span>&#160;    <span class="keywordtype">unsigned</span> <span class="keywordtype">char</span> Dur[16] = { 8, 8, 16, 72, 8, 8, 64, 8, 8, 8, 72, 8, 8, 32, 32,</div><div class="line"><a name="l00024"></a><span class="lineno">   24</span>&#160;                              32 };</div><div class="line"><a name="l00025"></a><span class="lineno">   25</span>&#160;</div><div class="line"><a name="l00026"></a><span class="lineno">   26</span>&#160;    <span class="comment">// Load the song</span></div><div class="line"><a name="l00027"></a><span class="lineno">   27</span>&#160;    <a class="code" href="open__interface_8c.html#ad945411d8b234cf7c50488a8d9388ff5">oi_loadSong</a>(1, 16, Notes, Dur);</div><div class="line"><a name="l00028"></a><span class="lineno">   28</span>&#160;    <span class="comment">// Play the song</span></div><div class="line"><a name="l00029"></a><span class="lineno">   29</span>&#160;    <a class="code" href="open__interface_8c.html#a353765c4297939ef0390a47ca869af56">oi_play_song</a>(1);</div><div class="line"><a name="l00030"></a><span class="lineno">   30</span>&#160;    </div><div class="line"><a name="l00031"></a><span class="lineno">   31</span>&#160;}</div><div class="ttc" id="open__interface_8c_html_a353765c4297939ef0390a47ca869af56"><div class="ttname"><a href="open__interface_8c.html#a353765c4297939ef0390a47ca869af56">oi_play_song</a></div><div class="ttdeci">void oi_play_song(int index)</div><div class="ttdoc">Plays a given song; use oi_load_song(...) first. </div><div class="ttdef"><b>Definition:</b> <a href="open__interface_8c_source.html#l00345">open_interface.c:345</a></div></div>
+<div class="ttc" id="open__interface_8c_html_ad945411d8b234cf7c50488a8d9388ff5"><div class="ttname"><a href="open__interface_8c.html#ad945411d8b234cf7c50488a8d9388ff5">oi_loadSong</a></div><div class="ttdeci">void oi_loadSong(int song_index, int num_notes, unsigned char *notes, unsigned char *duration)</div><div class="ttdoc">Load song sequence. </div><div class="ttdef"><b>Definition:</b> <a href="open__interface_8c_source.html#l00330">open_interface.c:330</a></div></div>
+<div class="ttc" id="open__interface_8h_html"><div class="ttname"><a href="open__interface_8h.html">open_interface.h</a></div><div class="ttdoc">Header file for open_interface.c Contains all functionality to interface with the IRobot Create V2 Co...</div></div>
+<div class="ttc" id="_sound_8c_html_a89a739cfb6c248f26551c5ac303b0841"><div class="ttname"><a href="_sound_8c.html#a89a739cfb6c248f26551c5ac303b0841">playSong</a></div><div class="ttdeci">void playSong()</div><div class="ttdef"><b>Definition:</b> <a href="_sound_8c_source.html#l00016">Sound.c:16</a></div></div>
 </div><!-- fragment --></div><!-- contents -->
 </div><!-- doc-content -->
 <!-- start footer part -->
diff --git a/Doxygen/html/_sound_8h_source.html b/Doxygen/html/_sound_8h_source.html
index 87000d05411f9e5a749781f01c2d044bcf5e22a6..f1831b13924229a01a4f467afe0f3c11adbb0747 100644
--- a/Doxygen/html/_sound_8h_source.html
+++ b/Doxygen/html/_sound_8h_source.html
@@ -92,7 +92,8 @@ $(document).ready(function(){initNavTree('_sound_8h_source.html','');});
 <div class="title">Sound.h</div>  </div>
 </div><!--header-->
 <div class="contents">
-<a href="_sound_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno">    1</span>&#160;</div><div class="line"><a name="l00016"></a><span class="lineno">   16</span>&#160;<span class="preprocessor">#ifndef UTILS_SOUND_H_</span></div><div class="line"><a name="l00017"></a><span class="lineno">   17</span>&#160;<span class="preprocessor">#define UTILS_SOUND_H_</span></div><div class="line"><a name="l00018"></a><span class="lineno">   18</span>&#160;</div><div class="line"><a name="l00019"></a><span class="lineno">   19</span>&#160;<span class="preprocessor">#include &lt;Utils/open_interface.h&gt;</span></div><div class="line"><a name="l00023"></a><span class="lineno">   23</span>&#160;<span class="keywordtype">void</span> <a class="code" href="_sound_8h.html#a89a739cfb6c248f26551c5ac303b0841">playSong</a>();</div><div class="line"><a name="l00024"></a><span class="lineno">   24</span>&#160;</div><div class="line"><a name="l00025"></a><span class="lineno">   25</span>&#160;<span class="preprocessor">#endif </span><span class="comment">/* UTILS_SOUND_H_ */</span><span class="preprocessor"></span></div><div class="ttc" id="_sound_8h_html_a89a739cfb6c248f26551c5ac303b0841"><div class="ttname"><a href="_sound_8h.html#a89a739cfb6c248f26551c5ac303b0841">playSong</a></div><div class="ttdeci">void playSong()</div><div class="ttdef"><b>Definition:</b> <a href="_sound_8c_source.html#l00016">Sound.c:16</a></div></div>
+<a href="_sound_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno">    1</span>&#160;</div><div class="line"><a name="l00016"></a><span class="lineno">   16</span>&#160;<span class="preprocessor">#ifndef UTILS_SOUND_H_</span></div><div class="line"><a name="l00017"></a><span class="lineno">   17</span>&#160;<span class="preprocessor">#define UTILS_SOUND_H_</span></div><div class="line"><a name="l00018"></a><span class="lineno">   18</span>&#160;</div><div class="line"><a name="l00019"></a><span class="lineno">   19</span>&#160;<span class="preprocessor">#include &lt;<a class="code" href="open__interface_8h.html">Utils/open_interface.h</a>&gt;</span></div><div class="line"><a name="l00023"></a><span class="lineno">   23</span>&#160;<span class="keywordtype">void</span> <a class="code" href="_sound_8h.html#a89a739cfb6c248f26551c5ac303b0841">playSong</a>();</div><div class="line"><a name="l00024"></a><span class="lineno">   24</span>&#160;</div><div class="line"><a name="l00025"></a><span class="lineno">   25</span>&#160;<span class="preprocessor">#endif </span><span class="comment">/* UTILS_SOUND_H_ */</span><span class="preprocessor"></span></div><div class="ttc" id="open__interface_8h_html"><div class="ttname"><a href="open__interface_8h.html">open_interface.h</a></div><div class="ttdoc">Header file for open_interface.c Contains all functionality to interface with the IRobot Create V2 Co...</div></div>
+<div class="ttc" id="_sound_8h_html_a89a739cfb6c248f26551c5ac303b0841"><div class="ttname"><a href="_sound_8h.html#a89a739cfb6c248f26551c5ac303b0841">playSong</a></div><div class="ttdeci">void playSong()</div><div class="ttdef"><b>Definition:</b> <a href="_sound_8c_source.html#l00016">Sound.c:16</a></div></div>
 </div><!-- fragment --></div><!-- contents -->
 </div><!-- doc-content -->
 <!-- start footer part -->
diff --git a/Doxygen/html/cliff__sensor_8h.html b/Doxygen/html/cliff__sensor_8h.html
index 59b2d258367bbde61ded56a2508c21ed75c79881..146813cea64f027decaf737ecd8d02bf9ba4fba0 100644
--- a/Doxygen/html/cliff__sensor_8h.html
+++ b/Doxygen/html/cliff__sensor_8h.html
@@ -98,7 +98,7 @@ $(document).ready(function(){initNavTree('cliff__sensor_8h.html','');});
 
 <p>Header file for <a class="el" href="cliff__sensor_8c.html" title="Library of functions for reading the cliff sensors and determining the type of boundary being detecte...">cliff_sensor.c</a>.  
 <a href="#details">More...</a></p>
-<div class="textblock"><code>#include &quot;Utils/open_interface.h&quot;</code><br />
+<div class="textblock"><code>#include &quot;<a class="el" href="open__interface_8h_source.html">Utils/open_interface.h</a>&quot;</code><br />
 <code>#include &lt;stdint.h&gt;</code><br />
 <code>#include &lt;inc/tm4c123gh6pm.h&gt;</code><br />
 </div>
diff --git a/Doxygen/html/cliff__sensor_8h_source.html b/Doxygen/html/cliff__sensor_8h_source.html
index fa51a778274719561263bb424fe0987271e33e5d..cfba398382e396a09e2d09ef9cea86a72ef7fb4d 100644
--- a/Doxygen/html/cliff__sensor_8h_source.html
+++ b/Doxygen/html/cliff__sensor_8h_source.html
@@ -92,9 +92,10 @@ $(document).ready(function(){initNavTree('cliff__sensor_8h_source.html','');});
 <div class="title">cliff_sensor.h</div>  </div>
 </div><!--header-->
 <div class="contents">
-<a href="cliff__sensor_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno">    1</span>&#160;</div><div class="line"><a name="l00016"></a><span class="lineno">   16</span>&#160;<span class="preprocessor">#ifndef CLIFF_SENSOR_H_</span></div><div class="line"><a name="l00017"></a><span class="lineno">   17</span>&#160;<span class="preprocessor">#define CLIFF_SENSOR_H_</span></div><div class="line"><a name="l00018"></a><span class="lineno">   18</span>&#160;</div><div class="line"><a name="l00019"></a><span class="lineno">   19</span>&#160;<span class="preprocessor">#include &quot;Utils/open_interface.h&quot;</span></div><div class="line"><a name="l00020"></a><span class="lineno">   20</span>&#160;<span class="preprocessor">#include &lt;stdint.h&gt;</span></div><div class="line"><a name="l00021"></a><span class="lineno">   21</span>&#160;<span class="preprocessor">#include &lt;inc/tm4c123gh6pm.h&gt;</span></div><div class="line"><a name="l00022"></a><span class="lineno">   22</span>&#160;</div><div class="line"><a name="l00026"></a><span class="lineno"><a class="line" href="cliff__sensor_8h.html#a063460cc4181aaf54ece2e9b6b1d5ac4">   26</a></span>&#160;<span class="keyword">typedef</span> <span class="keyword">enum</span></div><div class="line"><a name="l00027"></a><span class="lineno">   27</span>&#160;{</div><div class="line"><a name="l00028"></a><span class="lineno">   28</span>&#160;    LEFT, FRONT_LEFT, FRONT_RIGHT, RIGHT</div><div class="line"><a name="l00029"></a><span class="lineno">   29</span>&#160;} <a class="code" href="cliff__sensor_8h.html#a063460cc4181aaf54ece2e9b6b1d5ac4">CliffSensor</a>;</div><div class="line"><a name="l00030"></a><span class="lineno">   30</span>&#160;</div><div class="line"><a name="l00034"></a><span class="lineno"><a class="line" href="cliff__sensor_8h.html#a2fb802f7c8eefcfca976dff0572ea54b">   34</a></span>&#160;<span class="keyword">typedef</span> <span class="keyword">enum</span></div><div class="line"><a name="l00035"></a><span class="lineno">   35</span>&#160;{</div><div class="line"><a name="l00036"></a><span class="lineno">   36</span>&#160;    CLIFF,      <span class="comment">// Indicates a gap in the ground/floor</span></div><div class="line"><a name="l00037"></a><span class="lineno">   37</span>&#160;    GROUND,     <span class="comment">// Indicates normal ground</span></div><div class="line"><a name="l00038"></a><span class="lineno">   38</span>&#160;    ZONE,       <span class="comment">// Indicates the ground within a work zone</span></div><div class="line"><a name="l00039"></a><span class="lineno">   39</span>&#160;    BOUNDARY    <span class="comment">// Indicates the boundary of the testing field</span></div><div class="line"><a name="l00040"></a><span class="lineno">   40</span>&#160;} <a class="code" href="cliff__sensor_8h.html#a2fb802f7c8eefcfca976dff0572ea54b">Terrain</a>;</div><div class="line"><a name="l00041"></a><span class="lineno">   41</span>&#160;</div><div class="line"><a name="l00050"></a><span class="lineno">   50</span>&#160;uint16_t <a class="code" href="cliff__sensor_8h.html#ad8ad20a05cb459df743b6e8a4ed37be6">cs_readSensorRaw</a>(<a class="code" href="structoi__t.html">oi_t</a> *<span class="keyword">self</span>, <a class="code" href="cliff__sensor_8h.html#a063460cc4181aaf54ece2e9b6b1d5ac4">CliffSensor</a> sensor);</div><div class="line"><a name="l00051"></a><span class="lineno">   51</span>&#160;</div><div class="line"><a name="l00059"></a><span class="lineno">   59</span>&#160;<a class="code" href="cliff__sensor_8h.html#a2fb802f7c8eefcfca976dff0572ea54b">Terrain</a> <a class="code" href="cliff__sensor_8h.html#a1fa03a7f9a05ace91224ea610463e871">cs_getTerrain</a>(<a class="code" href="structoi__t.html">oi_t</a> *<span class="keyword">self</span>, <a class="code" href="cliff__sensor_8h.html#a063460cc4181aaf54ece2e9b6b1d5ac4">CliffSensor</a> sensor);</div><div class="line"><a name="l00060"></a><span class="lineno">   60</span>&#160;</div><div class="line"><a name="l00076"></a><span class="lineno">   76</span>&#160;<span class="keywordtype">int</span> <a class="code" href="cliff__sensor_8h.html#aea9fa7041962d3fde3549a56f8855162">checkGroundSensors</a>(<a class="code" href="structoi__t.html">oi_t</a>* <span class="keyword">self</span>);</div><div class="line"><a name="l00077"></a><span class="lineno">   77</span>&#160;</div><div class="line"><a name="l00078"></a><span class="lineno">   78</span>&#160;<span class="preprocessor">#endif </span><span class="comment">/* CLIFF_SENSOR_H_ */</span><span class="preprocessor"></span></div><div class="ttc" id="cliff__sensor_8h_html_a063460cc4181aaf54ece2e9b6b1d5ac4"><div class="ttname"><a href="cliff__sensor_8h.html#a063460cc4181aaf54ece2e9b6b1d5ac4">CliffSensor</a></div><div class="ttdeci">CliffSensor</div><div class="ttdef"><b>Definition:</b> <a href="cliff__sensor_8h_source.html#l00026">cliff_sensor.h:26</a></div></div>
+<a href="cliff__sensor_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno">    1</span>&#160;</div><div class="line"><a name="l00016"></a><span class="lineno">   16</span>&#160;<span class="preprocessor">#ifndef CLIFF_SENSOR_H_</span></div><div class="line"><a name="l00017"></a><span class="lineno">   17</span>&#160;<span class="preprocessor">#define CLIFF_SENSOR_H_</span></div><div class="line"><a name="l00018"></a><span class="lineno">   18</span>&#160;</div><div class="line"><a name="l00019"></a><span class="lineno">   19</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="open__interface_8h.html">Utils/open_interface.h</a>&quot;</span></div><div class="line"><a name="l00020"></a><span class="lineno">   20</span>&#160;<span class="preprocessor">#include &lt;stdint.h&gt;</span></div><div class="line"><a name="l00021"></a><span class="lineno">   21</span>&#160;<span class="preprocessor">#include &lt;inc/tm4c123gh6pm.h&gt;</span></div><div class="line"><a name="l00022"></a><span class="lineno">   22</span>&#160;</div><div class="line"><a name="l00026"></a><span class="lineno"><a class="line" href="cliff__sensor_8h.html#a063460cc4181aaf54ece2e9b6b1d5ac4">   26</a></span>&#160;<span class="keyword">typedef</span> <span class="keyword">enum</span></div><div class="line"><a name="l00027"></a><span class="lineno">   27</span>&#160;{</div><div class="line"><a name="l00028"></a><span class="lineno">   28</span>&#160;    LEFT, FRONT_LEFT, FRONT_RIGHT, RIGHT</div><div class="line"><a name="l00029"></a><span class="lineno">   29</span>&#160;} <a class="code" href="cliff__sensor_8h.html#a063460cc4181aaf54ece2e9b6b1d5ac4">CliffSensor</a>;</div><div class="line"><a name="l00030"></a><span class="lineno">   30</span>&#160;</div><div class="line"><a name="l00034"></a><span class="lineno"><a class="line" href="cliff__sensor_8h.html#a2fb802f7c8eefcfca976dff0572ea54b">   34</a></span>&#160;<span class="keyword">typedef</span> <span class="keyword">enum</span></div><div class="line"><a name="l00035"></a><span class="lineno">   35</span>&#160;{</div><div class="line"><a name="l00036"></a><span class="lineno">   36</span>&#160;    CLIFF,      <span class="comment">// Indicates a gap in the ground/floor</span></div><div class="line"><a name="l00037"></a><span class="lineno">   37</span>&#160;    GROUND,     <span class="comment">// Indicates normal ground</span></div><div class="line"><a name="l00038"></a><span class="lineno">   38</span>&#160;    ZONE,       <span class="comment">// Indicates the ground within a work zone</span></div><div class="line"><a name="l00039"></a><span class="lineno">   39</span>&#160;    BOUNDARY    <span class="comment">// Indicates the boundary of the testing field</span></div><div class="line"><a name="l00040"></a><span class="lineno">   40</span>&#160;} <a class="code" href="cliff__sensor_8h.html#a2fb802f7c8eefcfca976dff0572ea54b">Terrain</a>;</div><div class="line"><a name="l00041"></a><span class="lineno">   41</span>&#160;</div><div class="line"><a name="l00050"></a><span class="lineno">   50</span>&#160;uint16_t <a class="code" href="cliff__sensor_8h.html#ad8ad20a05cb459df743b6e8a4ed37be6">cs_readSensorRaw</a>(<a class="code" href="structoi__t.html">oi_t</a> *<span class="keyword">self</span>, <a class="code" href="cliff__sensor_8h.html#a063460cc4181aaf54ece2e9b6b1d5ac4">CliffSensor</a> sensor);</div><div class="line"><a name="l00051"></a><span class="lineno">   51</span>&#160;</div><div class="line"><a name="l00059"></a><span class="lineno">   59</span>&#160;<a class="code" href="cliff__sensor_8h.html#a2fb802f7c8eefcfca976dff0572ea54b">Terrain</a> <a class="code" href="cliff__sensor_8h.html#a1fa03a7f9a05ace91224ea610463e871">cs_getTerrain</a>(<a class="code" href="structoi__t.html">oi_t</a> *<span class="keyword">self</span>, <a class="code" href="cliff__sensor_8h.html#a063460cc4181aaf54ece2e9b6b1d5ac4">CliffSensor</a> sensor);</div><div class="line"><a name="l00060"></a><span class="lineno">   60</span>&#160;</div><div class="line"><a name="l00076"></a><span class="lineno">   76</span>&#160;<span class="keywordtype">int</span> <a class="code" href="cliff__sensor_8h.html#aea9fa7041962d3fde3549a56f8855162">checkGroundSensors</a>(<a class="code" href="structoi__t.html">oi_t</a>* <span class="keyword">self</span>);</div><div class="line"><a name="l00077"></a><span class="lineno">   77</span>&#160;</div><div class="line"><a name="l00078"></a><span class="lineno">   78</span>&#160;<span class="preprocessor">#endif </span><span class="comment">/* CLIFF_SENSOR_H_ */</span><span class="preprocessor"></span></div><div class="ttc" id="cliff__sensor_8h_html_a063460cc4181aaf54ece2e9b6b1d5ac4"><div class="ttname"><a href="cliff__sensor_8h.html#a063460cc4181aaf54ece2e9b6b1d5ac4">CliffSensor</a></div><div class="ttdeci">CliffSensor</div><div class="ttdef"><b>Definition:</b> <a href="cliff__sensor_8h_source.html#l00026">cliff_sensor.h:26</a></div></div>
 <div class="ttc" id="cliff__sensor_8h_html_a2fb802f7c8eefcfca976dff0572ea54b"><div class="ttname"><a href="cliff__sensor_8h.html#a2fb802f7c8eefcfca976dff0572ea54b">Terrain</a></div><div class="ttdeci">Terrain</div><div class="ttdef"><b>Definition:</b> <a href="cliff__sensor_8h_source.html#l00034">cliff_sensor.h:34</a></div></div>
 <div class="ttc" id="cliff__sensor_8h_html_aea9fa7041962d3fde3549a56f8855162"><div class="ttname"><a href="cliff__sensor_8h.html#aea9fa7041962d3fde3549a56f8855162">checkGroundSensors</a></div><div class="ttdeci">int checkGroundSensors(oi_t *self)</div><div class="ttdef"><b>Definition:</b> <a href="cliff__sensor_8c_source.html#l00083">cliff_sensor.c:83</a></div></div>
+<div class="ttc" id="open__interface_8h_html"><div class="ttname"><a href="open__interface_8h.html">open_interface.h</a></div><div class="ttdoc">Header file for open_interface.c Contains all functionality to interface with the IRobot Create V2 Co...</div></div>
 <div class="ttc" id="cliff__sensor_8h_html_a1fa03a7f9a05ace91224ea610463e871"><div class="ttname"><a href="cliff__sensor_8h.html#a1fa03a7f9a05ace91224ea610463e871">cs_getTerrain</a></div><div class="ttdeci">Terrain cs_getTerrain(oi_t *self, CliffSensor sensor)</div><div class="ttdef"><b>Definition:</b> <a href="cliff__sensor_8c_source.html#l00053">cliff_sensor.c:53</a></div></div>
 <div class="ttc" id="structoi__t_html"><div class="ttname"><a href="structoi__t.html">oi_t</a></div><div class="ttdoc">iRobot Create Sensor Data </div><div class="ttdef"><b>Definition:</b> <a href="open__interface_8h_source.html#l00031">open_interface.h:31</a></div></div>
 <div class="ttc" id="cliff__sensor_8h_html_ad8ad20a05cb459df743b6e8a4ed37be6"><div class="ttname"><a href="cliff__sensor_8h.html#ad8ad20a05cb459df743b6e8a4ed37be6">cs_readSensorRaw</a></div><div class="ttdeci">uint16_t cs_readSensorRaw(oi_t *self, CliffSensor sensor)</div><div class="ttdef"><b>Definition:</b> <a href="cliff__sensor_8c_source.html#l00018">cliff_sensor.c:18</a></div></div>
diff --git a/Doxygen/html/dir_af5038295b43384ea1ab75d71dfd6e0e.html b/Doxygen/html/dir_af5038295b43384ea1ab75d71dfd6e0e.html
index 735bdc41e075e715b55a1ab3f9d057d9c00a5466..66bc7a43d244538f5d54d331c688f835ac8e30fe 100644
--- a/Doxygen/html/dir_af5038295b43384ea1ab75d71dfd6e0e.html
+++ b/Doxygen/html/dir_af5038295b43384ea1ab75d71dfd6e0e.html
@@ -95,12 +95,36 @@ $(document).ready(function(){initNavTree('dir_af5038295b43384ea1ab75d71dfd6e0e.h
 <table class="memberdecls">
 <tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="files"></a>
 Files</h2></td></tr>
+<tr class="memitem:lcd_8c"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="lcd_8c.html">lcd.c</a> <a href="lcd_8c_source.html">[code]</a></td></tr>
+<tr class="memdesc:lcd_8c"><td class="mdescLeft">&#160;</td><td class="mdescRight">Functions for displaying content on the 4x16 Character LCD Screen. <br /></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:lcd_8h"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="lcd_8h.html">lcd.h</a> <a href="lcd_8h_source.html">[code]</a></td></tr>
+<tr class="memdesc:lcd_8h"><td class="mdescLeft">&#160;</td><td class="mdescRight">Header file for <a class="el" href="lcd_8c.html" title="Functions for displaying content on the 4x16 Character LCD Screen. ">lcd.c</a>. <br /></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:open__interface_8c"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="open__interface_8c.html">open_interface.c</a> <a href="open__interface_8c_source.html">[code]</a></td></tr>
+<tr class="memdesc:open__interface_8c"><td class="mdescLeft">&#160;</td><td class="mdescRight">Contains all functionality to interface with the IRobot Create V2 Communication over UART4 at 115200. <br /></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:open__interface_8h"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="open__interface_8h.html">open_interface.h</a> <a href="open__interface_8h_source.html">[code]</a></td></tr>
+<tr class="memdesc:open__interface_8h"><td class="mdescLeft">&#160;</td><td class="mdescRight">Header file for <a class="el" href="open__interface_8c.html" title="Contains all functionality to interface with the IRobot Create V2 Communication over UART4 at 115200...">open_interface.c</a> Contains all functionality to interface with the IRobot Create V2 Communication over UART4 at 115200. <br /></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
 <tr class="memitem:_sound_8c"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="_sound_8c.html">Sound.c</a> <a href="_sound_8c_source.html">[code]</a></td></tr>
 <tr class="memdesc:_sound_8c"><td class="mdescLeft">&#160;</td><td class="mdescRight">Library of functions for playing sound. <br /></td></tr>
 <tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
 <tr class="memitem:_sound_8h"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="_sound_8h.html">Sound.h</a> <a href="_sound_8h_source.html">[code]</a></td></tr>
 <tr class="memdesc:_sound_8h"><td class="mdescLeft">&#160;</td><td class="mdescRight">Header file for <a class="el" href="_sound_8c.html" title="Library of functions for playing sound. ">Sound.c</a>. <br /></td></tr>
 <tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:timer_8c"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="timer_8c.html">timer.c</a> <a href="timer_8c_source.html">[code]</a></td></tr>
+<tr class="memdesc:timer_8c"><td class="mdescLeft">&#160;</td><td class="mdescRight">Library Functions for pause timer. <br /></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:timer_8h"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="timer_8h.html">timer.h</a> <a href="timer_8h_source.html">[code]</a></td></tr>
+<tr class="memdesc:timer_8h"><td class="mdescLeft">&#160;</td><td class="mdescRight">Header file for <a class="el" href="timer_8c.html" title="Library Functions for pause timer. ">timer.c</a> Library Functions for pause timer. <br /></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:timer4_8c"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="timer4_8c.html">timer4.c</a> <a href="timer4_8c_source.html">[code]</a></td></tr>
+<tr class="memdesc:timer4_8c"><td class="mdescLeft">&#160;</td><td class="mdescRight">Library file for handling a timer interrupt for IR Sensor. <br /></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:timer4_8h"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="timer4_8h.html">timer4.h</a> <a href="timer4_8h_source.html">[code]</a></td></tr>
+<tr class="memdesc:timer4_8h"><td class="mdescLeft">&#160;</td><td class="mdescRight">Header file for handling a timer interrupt for IR Sensor. <br /></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
 </table>
 </div><!-- contents -->
 </div><!-- doc-content -->
diff --git a/Doxygen/html/dir_af5038295b43384ea1ab75d71dfd6e0e.js b/Doxygen/html/dir_af5038295b43384ea1ab75d71dfd6e0e.js
index 93ee4de6fb790fdd1f80dfe9949df513cf89f86a..99a331f9da1e4fd1e9e0d60b96ff03be5c858291 100644
--- a/Doxygen/html/dir_af5038295b43384ea1ab75d71dfd6e0e.js
+++ b/Doxygen/html/dir_af5038295b43384ea1ab75d71dfd6e0e.js
@@ -1,13 +1,13 @@
 var dir_af5038295b43384ea1ab75d71dfd6e0e =
 [
-    [ "lcd.c", "lcd_8c_source.html", null ],
-    [ "lcd.h", "lcd_8h_source.html", null ],
-    [ "open_interface.c", "open__interface_8c_source.html", null ],
-    [ "open_interface.h", "open__interface_8h_source.html", null ],
+    [ "lcd.c", "lcd_8c.html", "lcd_8c" ],
+    [ "lcd.h", "lcd_8h.html", "lcd_8h" ],
+    [ "open_interface.c", "open__interface_8c.html", "open__interface_8c" ],
+    [ "open_interface.h", "open__interface_8h.html", "open__interface_8h" ],
     [ "Sound.c", "_sound_8c.html", "_sound_8c" ],
     [ "Sound.h", "_sound_8h.html", "_sound_8h" ],
-    [ "timer.c", "timer_8c_source.html", null ],
-    [ "timer.h", "timer_8h_source.html", null ],
-    [ "timer4.c", "timer4_8c_source.html", null ],
-    [ "timer4.h", "timer4_8h_source.html", null ]
+    [ "timer.c", "timer_8c.html", "timer_8c" ],
+    [ "timer.h", "timer_8h.html", "timer_8h" ],
+    [ "timer4.c", "timer4_8c.html", "timer4_8c" ],
+    [ "timer4.h", "timer4_8h.html", "timer4_8h" ]
 ];
\ No newline at end of file
diff --git a/Doxygen/html/dir_c2e164765e5a314cc0de59b27d9c89cd.html b/Doxygen/html/dir_c2e164765e5a314cc0de59b27d9c89cd.html
index bb3d08b514cb1733ffdb3f8f0043964b60b0b08a..728290c0196ce6d6ef6de2cf150960c42974c057 100644
--- a/Doxygen/html/dir_c2e164765e5a314cc0de59b27d9c89cd.html
+++ b/Doxygen/html/dir_c2e164765e5a314cc0de59b27d9c89cd.html
@@ -95,6 +95,12 @@ $(document).ready(function(){initNavTree('dir_c2e164765e5a314cc0de59b27d9c89cd.h
 <table class="memberdecls">
 <tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="subdirs"></a>
 Directories</h2></td></tr>
+</table><table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="files"></a>
+Files</h2></td></tr>
+<tr class="memitem:main_8c"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="main_8c.html">main.c</a> <a href="main_8c_source.html">[code]</a></td></tr>
+<tr class="memdesc:main_8c"><td class="mdescLeft">&#160;</td><td class="mdescRight">Library of functions for reading the cliff sensors and determining the type of boundary being detected. <br /></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
 </table>
 </div><!-- contents -->
 </div><!-- doc-content -->
diff --git a/Doxygen/html/dir_c2e164765e5a314cc0de59b27d9c89cd.js b/Doxygen/html/dir_c2e164765e5a314cc0de59b27d9c89cd.js
index 50f354f4004929e12af9fc562b3110fdef284ac5..59e24f8e4d91dfdd2e26374ec8c7a50c6fea95e0 100644
--- a/Doxygen/html/dir_c2e164765e5a314cc0de59b27d9c89cd.js
+++ b/Doxygen/html/dir_c2e164765e5a314cc0de59b27d9c89cd.js
@@ -4,5 +4,5 @@ var dir_c2e164765e5a314cc0de59b27d9c89cd =
     [ "Navigation", "dir_95f3bc532fd4c9a5d60ddfda74d3d007.html", "dir_95f3bc532fd4c9a5d60ddfda74d3d007" ],
     [ "Sensor", "dir_fa0722cf5cedb7535af9f6594ac3b844.html", "dir_fa0722cf5cedb7535af9f6594ac3b844" ],
     [ "Utils", "dir_af5038295b43384ea1ab75d71dfd6e0e.html", "dir_af5038295b43384ea1ab75d71dfd6e0e" ],
-    [ "main.c", "main_8c_source.html", null ]
+    [ "main.c", "main_8c.html", "main_8c" ]
 ];
\ No newline at end of file
diff --git a/Doxygen/html/files.html b/Doxygen/html/files.html
index f8bfec31e8960d45421b33f2ccdc04b555ac9ad4..61ea633e6b0aca355ffb128dcba13af8cf7a851d 100644
--- a/Doxygen/html/files.html
+++ b/Doxygen/html/files.html
@@ -122,17 +122,17 @@ $(document).ready(function(){initNavTree('files.html','');});
 <tr id="row_0_0_0_0_0_1_2_6_"><td class="entry"><span style="width:128px;display:inline-block;">&#160;</span><a href="sweep__sensor_8c_source.html"><span class="icondoc"></span></a><a class="el" href="sweep__sensor_8c.html" target="_self">sweep_sensor.c</a></td><td class="desc">Library of functions for controlling and reading data from the sensors in the servo arm assembly </td></tr>
 <tr id="row_0_0_0_0_0_1_2_7_" class="even"><td class="entry"><span style="width:128px;display:inline-block;">&#160;</span><a href="sweep__sensor_8h_source.html"><span class="icondoc"></span></a><a class="el" href="sweep__sensor_8h.html" target="_self">sweep_sensor.h</a></td><td class="desc">Header file for <a class="el" href="sweep__sensor_8c.html" title="Library of functions for controlling and reading data from the sensors in the servo arm assembly...">sweep_sensor.c</a> </td></tr>
 <tr id="row_0_0_0_0_0_1_3_"><td class="entry"><span style="width:96px;display:inline-block;">&#160;</span><span id="arr_0_0_0_0_0_1_3_" class="arrow" onclick="toggleFolder('0_0_0_0_0_1_3_')">&#9660;</span><span id="img_0_0_0_0_0_1_3_" class="iconfopen" onclick="toggleFolder('0_0_0_0_0_1_3_')">&#160;</span><a class="el" href="dir_af5038295b43384ea1ab75d71dfd6e0e.html" target="_self">Utils</a></td><td class="desc"></td></tr>
-<tr id="row_0_0_0_0_0_1_3_0_" class="even"><td class="entry"><span style="width:128px;display:inline-block;">&#160;</span><a href="lcd_8c_source.html"><span class="icondoc"></span></a><b>lcd.c</b></td><td class="desc"></td></tr>
-<tr id="row_0_0_0_0_0_1_3_1_"><td class="entry"><span style="width:128px;display:inline-block;">&#160;</span><a href="lcd_8h_source.html"><span class="icondoc"></span></a><b>lcd.h</b></td><td class="desc"></td></tr>
-<tr id="row_0_0_0_0_0_1_3_2_" class="even"><td class="entry"><span style="width:128px;display:inline-block;">&#160;</span><a href="open__interface_8c_source.html"><span class="icondoc"></span></a><b>open_interface.c</b></td><td class="desc"></td></tr>
-<tr id="row_0_0_0_0_0_1_3_3_"><td class="entry"><span style="width:128px;display:inline-block;">&#160;</span><a href="open__interface_8h_source.html"><span class="icondoc"></span></a><b>open_interface.h</b></td><td class="desc"></td></tr>
+<tr id="row_0_0_0_0_0_1_3_0_" class="even"><td class="entry"><span style="width:128px;display:inline-block;">&#160;</span><a href="lcd_8c_source.html"><span class="icondoc"></span></a><a class="el" href="lcd_8c.html" target="_self">lcd.c</a></td><td class="desc">Functions for displaying content on the 4x16 Character LCD Screen </td></tr>
+<tr id="row_0_0_0_0_0_1_3_1_"><td class="entry"><span style="width:128px;display:inline-block;">&#160;</span><a href="lcd_8h_source.html"><span class="icondoc"></span></a><a class="el" href="lcd_8h.html" target="_self">lcd.h</a></td><td class="desc">Header file for <a class="el" href="lcd_8c.html" title="Functions for displaying content on the 4x16 Character LCD Screen. ">lcd.c</a> </td></tr>
+<tr id="row_0_0_0_0_0_1_3_2_" class="even"><td class="entry"><span style="width:128px;display:inline-block;">&#160;</span><a href="open__interface_8c_source.html"><span class="icondoc"></span></a><a class="el" href="open__interface_8c.html" target="_self">open_interface.c</a></td><td class="desc">Contains all functionality to interface with the IRobot Create V2 Communication over UART4 at 115200 </td></tr>
+<tr id="row_0_0_0_0_0_1_3_3_"><td class="entry"><span style="width:128px;display:inline-block;">&#160;</span><a href="open__interface_8h_source.html"><span class="icondoc"></span></a><a class="el" href="open__interface_8h.html" target="_self">open_interface.h</a></td><td class="desc">Header file for <a class="el" href="open__interface_8c.html" title="Contains all functionality to interface with the IRobot Create V2 Communication over UART4 at 115200...">open_interface.c</a> Contains all functionality to interface with the IRobot Create V2 Communication over UART4 at 115200 </td></tr>
 <tr id="row_0_0_0_0_0_1_3_4_" class="even"><td class="entry"><span style="width:128px;display:inline-block;">&#160;</span><a href="_sound_8c_source.html"><span class="icondoc"></span></a><a class="el" href="_sound_8c.html" target="_self">Sound.c</a></td><td class="desc">Library of functions for playing sound </td></tr>
 <tr id="row_0_0_0_0_0_1_3_5_"><td class="entry"><span style="width:128px;display:inline-block;">&#160;</span><a href="_sound_8h_source.html"><span class="icondoc"></span></a><a class="el" href="_sound_8h.html" target="_self">Sound.h</a></td><td class="desc">Header file for <a class="el" href="_sound_8c.html" title="Library of functions for playing sound. ">Sound.c</a> </td></tr>
-<tr id="row_0_0_0_0_0_1_3_6_" class="even"><td class="entry"><span style="width:128px;display:inline-block;">&#160;</span><a href="timer_8c_source.html"><span class="icondoc"></span></a><b>timer.c</b></td><td class="desc"></td></tr>
-<tr id="row_0_0_0_0_0_1_3_7_"><td class="entry"><span style="width:128px;display:inline-block;">&#160;</span><a href="timer_8h_source.html"><span class="icondoc"></span></a><b>timer.h</b></td><td class="desc"></td></tr>
-<tr id="row_0_0_0_0_0_1_3_8_" class="even"><td class="entry"><span style="width:128px;display:inline-block;">&#160;</span><a href="timer4_8c_source.html"><span class="icondoc"></span></a><b>timer4.c</b></td><td class="desc"></td></tr>
-<tr id="row_0_0_0_0_0_1_3_9_"><td class="entry"><span style="width:128px;display:inline-block;">&#160;</span><a href="timer4_8h_source.html"><span class="icondoc"></span></a><b>timer4.h</b></td><td class="desc"></td></tr>
-<tr id="row_0_0_0_0_0_1_4_" class="even"><td class="entry"><span style="width:112px;display:inline-block;">&#160;</span><a href="main_8c_source.html"><span class="icondoc"></span></a><b>main.c</b></td><td class="desc"></td></tr>
+<tr id="row_0_0_0_0_0_1_3_6_" class="even"><td class="entry"><span style="width:128px;display:inline-block;">&#160;</span><a href="timer_8c_source.html"><span class="icondoc"></span></a><a class="el" href="timer_8c.html" target="_self">timer.c</a></td><td class="desc">Library Functions for pause timer </td></tr>
+<tr id="row_0_0_0_0_0_1_3_7_"><td class="entry"><span style="width:128px;display:inline-block;">&#160;</span><a href="timer_8h_source.html"><span class="icondoc"></span></a><a class="el" href="timer_8h.html" target="_self">timer.h</a></td><td class="desc">Header file for <a class="el" href="timer_8c.html" title="Library Functions for pause timer. ">timer.c</a> Library Functions for pause timer </td></tr>
+<tr id="row_0_0_0_0_0_1_3_8_" class="even"><td class="entry"><span style="width:128px;display:inline-block;">&#160;</span><a href="timer4_8c_source.html"><span class="icondoc"></span></a><a class="el" href="timer4_8c.html" target="_self">timer4.c</a></td><td class="desc">Library file for handling a timer interrupt for IR Sensor </td></tr>
+<tr id="row_0_0_0_0_0_1_3_9_"><td class="entry"><span style="width:128px;display:inline-block;">&#160;</span><a href="timer4_8h_source.html"><span class="icondoc"></span></a><a class="el" href="timer4_8h.html" target="_self">timer4.h</a></td><td class="desc">Header file for handling a timer interrupt for IR Sensor </td></tr>
+<tr id="row_0_0_0_0_0_1_4_" class="even"><td class="entry"><span style="width:112px;display:inline-block;">&#160;</span><a href="main_8c_source.html"><span class="icondoc"></span></a><a class="el" href="main_8c.html" target="_self">main.c</a></td><td class="desc">Library of functions for reading the cliff sensors and determining the type of boundary being detected </td></tr>
 </table>
 </div><!-- directory -->
 </div><!-- contents -->
diff --git a/Doxygen/html/globals.html b/Doxygen/html/globals.html
index 4793448985ff8a10cdb3441bbccc9ce2ceeeb102..4ee47098eebd209d93ad42cf1093e447ba4fb187 100644
--- a/Doxygen/html/globals.html
+++ b/Doxygen/html/globals.html
@@ -96,12 +96,12 @@ $(document).ready(function(){initNavTree('globals.html','');});
 , <a class="el" href="ir_8h.html#ae93f8650ba123c393dee0fb921eb4dc6">ir.h</a>
 </li>
 <li>adc_init()
-: <a class="el" href="ir_8c.html#a1e942fcd91f79d49e4ddb8d7e9d3ef95">ir.c</a>
-, <a class="el" href="ir_8h.html#a1e942fcd91f79d49e4ddb8d7e9d3ef95">ir.h</a>
+: <a class="el" href="ir_8h.html#a1e942fcd91f79d49e4ddb8d7e9d3ef95">ir.h</a>
+, <a class="el" href="ir_8c.html#a1e942fcd91f79d49e4ddb8d7e9d3ef95">ir.c</a>
 </li>
 <li>ADC_read()
-: <a class="el" href="ir_8c.html#a5bbea9320798ccfd596c7925f65e7734">ir.c</a>
-, <a class="el" href="ir_8h.html#a5bbea9320798ccfd596c7925f65e7734">ir.h</a>
+: <a class="el" href="ir_8h.html#a5bbea9320798ccfd596c7925f65e7734">ir.h</a>
+, <a class="el" href="ir_8c.html#a5bbea9320798ccfd596c7925f65e7734">ir.c</a>
 </li>
 </ul>
 
@@ -119,26 +119,31 @@ $(document).ready(function(){initNavTree('globals.html','');});
 , <a class="el" href="cliff__sensor_8h.html#aea9fa7041962d3fde3549a56f8855162">cliff_sensor.h</a>
 </li>
 <li>chirp_init()
-: <a class="el" href="sonic_8c.html#a026052969f1c177a4c0c035b1ea5b9e7">sonic.c</a>
-, <a class="el" href="sonic_8h.html#a026052969f1c177a4c0c035b1ea5b9e7">sonic.h</a>
+: <a class="el" href="sonic_8h.html#a026052969f1c177a4c0c035b1ea5b9e7">sonic.h</a>
+, <a class="el" href="sonic_8c.html#a026052969f1c177a4c0c035b1ea5b9e7">sonic.c</a>
 </li>
 <li>CliffSensor
 : <a class="el" href="cliff__sensor_8h.html#a063460cc4181aaf54ece2e9b6b1d5ac4">cliff_sensor.h</a>
 </li>
+<li>clock_timer_init()
+: <a class="el" href="timer4_8h.html#afe6c9dd8b2439c58273cbd63b95088fe">timer4.h</a>
+, <a class="el" href="timer4_8c.html#afe6c9dd8b2439c58273cbd63b95088fe">timer4.c</a>
+</li>
 <li>cs_getTerrain()
 : <a class="el" href="cliff__sensor_8c.html#a1fa03a7f9a05ace91224ea610463e871">cliff_sensor.c</a>
 , <a class="el" href="cliff__sensor_8h.html#a1fa03a7f9a05ace91224ea610463e871">cliff_sensor.h</a>
 </li>
 <li>cs_readSensorRaw()
-: <a class="el" href="cliff__sensor_8c.html#ad8ad20a05cb459df743b6e8a4ed37be6">cliff_sensor.c</a>
-, <a class="el" href="cliff__sensor_8h.html#ad8ad20a05cb459df743b6e8a4ed37be6">cliff_sensor.h</a>
+: <a class="el" href="cliff__sensor_8h.html#ad8ad20a05cb459df743b6e8a4ed37be6">cliff_sensor.h</a>
+, <a class="el" href="cliff__sensor_8c.html#ad8ad20a05cb459df743b6e8a4ed37be6">cliff_sensor.c</a>
 </li>
 </ul>
 
 
 <h3><a id="index_d"></a>- d -</h3><ul>
 <li>data
-: <a class="el" href="movementcommands_8c.html#a91a70b77df95bd8b0830b49a094c2acb">movementcommands.c</a>
+: <a class="el" href="main_8c.html#a91a70b77df95bd8b0830b49a094c2acb">main.c</a>
+, <a class="el" href="movementcommands_8c.html#a91a70b77df95bd8b0830b49a094c2acb">movementcommands.c</a>
 </li>
 <li>degrees_per_micros
 : <a class="el" href="sweep__sensor_8c.html#ad15c1ce3dc8d7295980df0c002469685">sweep_sensor.c</a>
@@ -159,16 +164,24 @@ $(document).ready(function(){initNavTree('globals.html','');});
 , <a class="el" href="sonic_8h.html#adbe32feee06ccd7a0a9c14709b9a1ce4">sonic.h</a>
 </li>
 <li>getADCReading()
-: <a class="el" href="ir_8c.html#a7e70a945ffc15434f5310c8684643eb3">ir.c</a>
-, <a class="el" href="ir_8h.html#a7e70a945ffc15434f5310c8684643eb3">ir.h</a>
+: <a class="el" href="ir_8h.html#a7e70a945ffc15434f5310c8684643eb3">ir.h</a>
+, <a class="el" href="ir_8c.html#a7e70a945ffc15434f5310c8684643eb3">ir.c</a>
+</li>
+<li>getDegrees()
+: <a class="el" href="open__interface_8c.html#a22afee5afdd7d60bc1bd9d58a428e4b7">open_interface.c</a>
+, <a class="el" href="open__interface_8h.html#a22afee5afdd7d60bc1bd9d58a428e4b7">open_interface.h</a>
 </li>
 <li>getLastLine()
-: <a class="el" href="uart_8c.html#a46df527ddf86c0ebfe750173a41dd4d3">uart.c</a>
-, <a class="el" href="uart_8h.html#a46df527ddf86c0ebfe750173a41dd4d3">uart.h</a>
+: <a class="el" href="uart_8h.html#a46df527ddf86c0ebfe750173a41dd4d3">uart.h</a>
+, <a class="el" href="uart_8c.html#a46df527ddf86c0ebfe750173a41dd4d3">uart.c</a>
 </li>
 <li>getPosition()
-: <a class="el" href="movementcommands_8c.html#a35f84947bb1dd6f437da3949f213c373">movementcommands.c</a>
-, <a class="el" href="movementcommands_8h.html#a35f84947bb1dd6f437da3949f213c373">movementcommands.h</a>
+: <a class="el" href="movementcommands_8h.html#a35f84947bb1dd6f437da3949f213c373">movementcommands.h</a>
+, <a class="el" href="movementcommands_8c.html#a35f84947bb1dd6f437da3949f213c373">movementcommands.c</a>
+</li>
+<li>go_charge()
+: <a class="el" href="open__interface_8c.html#a6c701c5d6642b0f7128b03542a09ed76">open_interface.c</a>
+, <a class="el" href="open__interface_8h.html#a6c701c5d6642b0f7128b03542a09ed76">open_interface.h</a>
 </li>
 </ul>
 
@@ -192,20 +205,128 @@ $(document).ready(function(){initNavTree('globals.html','');});
 <li>LastLine
 : <a class="el" href="uart_8h.html#af1bf0c65f126ec15b3204246afdc614e">uart.h</a>
 </li>
+<li>lcd_clear()
+: <a class="el" href="lcd_8c.html#ad235a86241458b1e7b8771688bfdaf9a">lcd.c</a>
+, <a class="el" href="lcd_8h.html#ad235a86241458b1e7b8771688bfdaf9a">lcd.h</a>
+</li>
+<li>lcd_gotoLine()
+: <a class="el" href="lcd_8c.html#a22493bdaca08073e3014decb34db38a6">lcd.c</a>
+, <a class="el" href="lcd_8h.html#a22493bdaca08073e3014decb34db38a6">lcd.h</a>
+</li>
+<li>lcd_home()
+: <a class="el" href="lcd_8c.html#a3aabf730aa4e0393bb5c959583c00a8e">lcd.c</a>
+, <a class="el" href="lcd_8h.html#a3aabf730aa4e0393bb5c959583c00a8e">lcd.h</a>
+</li>
+<li>lcd_init()
+: <a class="el" href="lcd_8c.html#a6842775ba83d166f02b8fef8bb63b1e6">lcd.c</a>
+, <a class="el" href="lcd_8h.html#a6842775ba83d166f02b8fef8bb63b1e6">lcd.h</a>
+</li>
+<li>lcd_printf()
+: <a class="el" href="lcd_8c.html#a3c12e31b86febabfc7e62b51e0b9dc30">lcd.c</a>
+, <a class="el" href="lcd_8h.html#a3c12e31b86febabfc7e62b51e0b9dc30">lcd.h</a>
+</li>
+<li>lcd_putc()
+: <a class="el" href="lcd_8c.html#a1b59543ebb020ae74d6bcdf06e2b6d3b">lcd.c</a>
+, <a class="el" href="lcd_8h.html#a1b59543ebb020ae74d6bcdf06e2b6d3b">lcd.h</a>
+</li>
+<li>lcd_puts()
+: <a class="el" href="lcd_8c.html#ac68eefc9e6fce7854f6319aba267ff58">lcd.c</a>
+, <a class="el" href="lcd_8h.html#ac68eefc9e6fce7854f6319aba267ff58">lcd.h</a>
+</li>
+<li>lcd_sendCommand()
+: <a class="el" href="lcd_8c.html#aa212e4f928275b196e6db53fad2c1a5f">lcd.c</a>
+</li>
+<li>lcd_sendNibble()
+: <a class="el" href="lcd_8c.html#a76885eaba7dbd9863c2ea8bf7113c57f">lcd.c</a>
+</li>
+<li>lcd_setCursorPos()
+: <a class="el" href="lcd_8h.html#a785788c99ba018918ffb2db717773fa4">lcd.h</a>
+, <a class="el" href="lcd_8c.html#a785788c99ba018918ffb2db717773fa4">lcd.c</a>
+</li>
 </ul>
 
 
 <h3><a id="index_m"></a>- m -</h3><ul>
+<li>main()
+: <a class="el" href="main_8c.html#a840291bc02cba5474a4cb46a9b9566fe">main.c</a>
+</li>
 <li>micros_offset
 : <a class="el" href="sweep__sensor_8c.html#add67b8431980e75798449c977e7178d6">sweep_sensor.c</a>
 </li>
 <li>moveRobotDistance()
-: <a class="el" href="movementcommands_8c.html#ac19e613d92cdd54f047e591fc0c99b07">movementcommands.c</a>
-, <a class="el" href="movementcommands_8h.html#ac19e613d92cdd54f047e591fc0c99b07">movementcommands.h</a>
+: <a class="el" href="movementcommands_8h.html#ac19e613d92cdd54f047e591fc0c99b07">movementcommands.h</a>
+, <a class="el" href="movementcommands_8c.html#ac19e613d92cdd54f047e591fc0c99b07">movementcommands.c</a>
 </li>
 <li>moveRobotDistanceIgnore()
-: <a class="el" href="movementcommands_8c.html#aec736dae690e0a896c49d05b27c9b970">movementcommands.c</a>
-, <a class="el" href="movementcommands_8h.html#aec736dae690e0a896c49d05b27c9b970">movementcommands.h</a>
+: <a class="el" href="movementcommands_8h.html#aec736dae690e0a896c49d05b27c9b970">movementcommands.h</a>
+, <a class="el" href="movementcommands_8c.html#aec736dae690e0a896c49d05b27c9b970">movementcommands.c</a>
+</li>
+</ul>
+
+
+<h3><a id="index_o"></a>- o -</h3><ul>
+<li>oi_alloc()
+: <a class="el" href="open__interface_8c.html#aad249dffdf79454de76e09092a0445f5">open_interface.c</a>
+, <a class="el" href="open__interface_8h.html#aad249dffdf79454de76e09092a0445f5">open_interface.h</a>
+</li>
+<li>oi_free()
+: <a class="el" href="open__interface_8h.html#abe8995b948a2f47938a574b59c2dda7e">open_interface.h</a>
+, <a class="el" href="open__interface_8c.html#abe8995b948a2f47938a574b59c2dda7e">open_interface.c</a>
+</li>
+<li>oi_init()
+: <a class="el" href="open__interface_8c.html#a9108ba8c791d0e97444c03b2f40b278a">open_interface.c</a>
+, <a class="el" href="open__interface_8h.html#a9108ba8c791d0e97444c03b2f40b278a">open_interface.h</a>
+</li>
+<li>oi_init_noupdate()
+: <a class="el" href="open__interface_8c.html#ae2a441c2fb23be5db165a8cd7eca0fe7">open_interface.c</a>
+</li>
+<li>oi_loadSong()
+: <a class="el" href="open__interface_8c.html#ad945411d8b234cf7c50488a8d9388ff5">open_interface.c</a>
+, <a class="el" href="open__interface_8h.html#ad945411d8b234cf7c50488a8d9388ff5">open_interface.h</a>
+</li>
+<li>oi_parseInt()
+: <a class="el" href="open__interface_8c.html#a8c54153bd272749c1fc36a3f98ffc8b1">open_interface.c</a>
+</li>
+<li>oi_parsePacket()
+: <a class="el" href="open__interface_8c.html#aa238e081cfecd7a9bf3d274f53504362">open_interface.c</a>
+</li>
+<li>oi_play_song()
+: <a class="el" href="open__interface_8c.html#a353765c4297939ef0390a47ca869af56">open_interface.c</a>
+, <a class="el" href="open__interface_8h.html#a353765c4297939ef0390a47ca869af56">open_interface.h</a>
+</li>
+<li>oi_setLeds()
+: <a class="el" href="open__interface_8c.html#a9ce8d6194cf8cb1d39104b641cb5254d">open_interface.c</a>
+, <a class="el" href="open__interface_8h.html#a9ce8d6194cf8cb1d39104b641cb5254d">open_interface.h</a>
+</li>
+<li>oi_setWheels()
+: <a class="el" href="open__interface_8c.html#a49949f029cc5f84ad903aa7022f4e5e0">open_interface.c</a>
+, <a class="el" href="open__interface_8h.html#a49949f029cc5f84ad903aa7022f4e5e0">open_interface.h</a>
+</li>
+<li>oi_shutoff_init()
+: <a class="el" href="open__interface_8c.html#a1bca24fa8dd6fb148a6ec99ffbe2f29d">open_interface.c</a>
+, <a class="el" href="open__interface_8h.html#a1bca24fa8dd6fb148a6ec99ffbe2f29d">open_interface.h</a>
+</li>
+<li>oi_uartFastMode()
+: <a class="el" href="open__interface_8c.html#af7fe40c5fd5331db4a79ee4d77b12398">open_interface.c</a>
+</li>
+<li>oi_uartInit()
+: <a class="el" href="open__interface_8c.html#ad9923d0a228d340572e71997ddf32df9">open_interface.c</a>
+</li>
+<li>oi_uartReceive()
+: <a class="el" href="open__interface_8c.html#a5e7e1773c5782c2be5f333f733aab29f">open_interface.c</a>
+</li>
+<li>oi_uartSendBuff()
+: <a class="el" href="open__interface_8c.html#afcbad4c0a94458d1ba7ff11dac9ff42b">open_interface.c</a>
+</li>
+<li>oi_uartSendChar()
+: <a class="el" href="open__interface_8c.html#aced7535453b0c0e29af698308d0498d4">open_interface.c</a>
+</li>
+<li>oi_uartSendStr()
+: <a class="el" href="open__interface_8c.html#a5eb8e6923f80c6f02cccbb79535cfa7f">open_interface.c</a>
+</li>
+<li>oi_update()
+: <a class="el" href="open__interface_8c.html#a9129559bba5ff9dc7e4df64330864674">open_interface.c</a>
+, <a class="el" href="open__interface_8h.html#a9129559bba5ff9dc7e4df64330864674">open_interface.h</a>
 </li>
 </ul>
 
@@ -216,8 +337,8 @@ $(document).ready(function(){initNavTree('globals.html','');});
 , <a class="el" href="movementcommands_8h.html#af24f4aea581508f13025bf49cdb40b44">movementcommands.h</a>
 </li>
 <li>playSong()
-: <a class="el" href="_sound_8c.html#a89a739cfb6c248f26551c5ac303b0841">Sound.c</a>
-, <a class="el" href="_sound_8h.html#a89a739cfb6c248f26551c5ac303b0841">Sound.h</a>
+: <a class="el" href="_sound_8h.html#a89a739cfb6c248f26551c5ac303b0841">Sound.h</a>
+, <a class="el" href="_sound_8c.html#a89a739cfb6c248f26551c5ac303b0841">Sound.c</a>
 </li>
 <li>pos_counter_value
 : <a class="el" href="sweep__sensor_8c.html#ae3a16b16a26af9c7aea5947732882e8d">sweep_sensor.c</a>
@@ -278,16 +399,16 @@ $(document).ready(function(){initNavTree('globals.html','');});
 : <a class="el" href="sonic_8c.html#af4b4715f3c15d0e48d08060ec180625c">sonic.c</a>
 </li>
 <li>sweep_doFullSweep()
-: <a class="el" href="sweep__sensor_8c.html#a967045ec4778e4ef6fc5b6d9aba3a80d">sweep_sensor.c</a>
-, <a class="el" href="sweep__sensor_8h.html#a967045ec4778e4ef6fc5b6d9aba3a80d">sweep_sensor.h</a>
+: <a class="el" href="sweep__sensor_8h.html#a967045ec4778e4ef6fc5b6d9aba3a80d">sweep_sensor.h</a>
+, <a class="el" href="sweep__sensor_8c.html#a967045ec4778e4ef6fc5b6d9aba3a80d">sweep_sensor.c</a>
 </li>
 <li>sweep_doSweep()
 : <a class="el" href="sweep__sensor_8c.html#ad299d740e7020063a809deb1e7401d92">sweep_sensor.c</a>
 , <a class="el" href="sweep__sensor_8h.html#ad299d740e7020063a809deb1e7401d92">sweep_sensor.h</a>
 </li>
 <li>sweep_getPos()
-: <a class="el" href="sweep__sensor_8c.html#a111f017ba6449291db5ba445d602659c">sweep_sensor.c</a>
-, <a class="el" href="sweep__sensor_8h.html#a111f017ba6449291db5ba445d602659c">sweep_sensor.h</a>
+: <a class="el" href="sweep__sensor_8h.html#a111f017ba6449291db5ba445d602659c">sweep_sensor.h</a>
+, <a class="el" href="sweep__sensor_8c.html#a111f017ba6449291db5ba445d602659c">sweep_sensor.c</a>
 </li>
 <li>sweep_init()
 : <a class="el" href="sweep__sensor_8c.html#aa858319b04e153550a93648468db3171">sweep_sensor.c</a>
@@ -306,8 +427,8 @@ $(document).ready(function(){initNavTree('globals.html','');});
 , <a class="el" href="sweep__sensor_8h.html#af1fcacf7ec9956ea6fb31a62f593d6e7">sweep_sensor.h</a>
 </li>
 <li>sweep_readSonicSensor()
-: <a class="el" href="sweep__sensor_8c.html#a059b6d41eb8934ac26e0928818843c6e">sweep_sensor.c</a>
-, <a class="el" href="sweep__sensor_8h.html#a059b6d41eb8934ac26e0928818843c6e">sweep_sensor.h</a>
+: <a class="el" href="sweep__sensor_8h.html#a059b6d41eb8934ac26e0928818843c6e">sweep_sensor.h</a>
+, <a class="el" href="sweep__sensor_8c.html#a059b6d41eb8934ac26e0928818843c6e">sweep_sensor.c</a>
 </li>
 </ul>
 
@@ -322,6 +443,10 @@ $(document).ready(function(){initNavTree('globals.html','');});
 <li>TIMER_TICKS_PER_SECOND
 : <a class="el" href="sweep__sensor_8c.html#a81c686546c2c34dce41931315aa910df">sweep_sensor.c</a>
 </li>
+<li>timer_waitMillis()
+: <a class="el" href="timer_8h.html#a7e2a3b4520e885e5e7d40fa87e242a75">timer.h</a>
+, <a class="el" href="timer_8c.html#a7e2a3b4520e885e5e7d40fa87e242a75">timer.c</a>
+</li>
 <li>turnRobotDegree()
 : <a class="el" href="movementcommands_8c.html#a363d2d2063890c9731f0d9222060cd48">movementcommands.c</a>
 , <a class="el" href="movementcommands_8h.html#a363d2d2063890c9731f0d9222060cd48">movementcommands.h</a>
@@ -335,16 +460,16 @@ $(document).ready(function(){initNavTree('globals.html','');});
 , <a class="el" href="uart_8h.html#a8be40187644dacbc28cabbc673a36bff">uart.h</a>
 </li>
 <li>uart_init()
-: <a class="el" href="uart_8c.html#a0c0ca72359ddf28dcd15900dfba19343">uart.c</a>
-, <a class="el" href="uart_8h.html#a0c0ca72359ddf28dcd15900dfba19343">uart.h</a>
+: <a class="el" href="uart_8h.html#a0c0ca72359ddf28dcd15900dfba19343">uart.h</a>
+, <a class="el" href="uart_8c.html#a0c0ca72359ddf28dcd15900dfba19343">uart.c</a>
 </li>
 <li>uart_read()
 : <a class="el" href="uart_8c.html#a58d025fdfe1c8f521e1fa2a628cfa21d">uart.c</a>
 , <a class="el" href="uart_8h.html#a58d025fdfe1c8f521e1fa2a628cfa21d">uart.h</a>
 </li>
 <li>uart_receive()
-: <a class="el" href="uart_8c.html#a2cb93233c32004f54ac6103ac25ef64d">uart.c</a>
-, <a class="el" href="uart_8h.html#a2cb93233c32004f54ac6103ac25ef64d">uart.h</a>
+: <a class="el" href="uart_8h.html#a2cb93233c32004f54ac6103ac25ef64d">uart.h</a>
+, <a class="el" href="uart_8c.html#a2cb93233c32004f54ac6103ac25ef64d">uart.c</a>
 </li>
 <li>uart_sendChar()
 : <a class="el" href="uart_8c.html#a1bb761703934038d7820c4e7a92896c8">uart.c</a>
@@ -353,6 +478,7 @@ $(document).ready(function(){initNavTree('globals.html','');});
 <li>uart_sendStr()
 : <a class="el" href="uart_8c.html#af96d1ce52b8a52eabc606489d31351e9">uart.c</a>
 , <a class="el" href="uart_8h.html#af96d1ce52b8a52eabc606489d31351e9">uart.h</a>
+, <a class="el" href="open__interface_8c.html#a33bd73bbfbc570a633f3622069087066">open_interface.c</a>
 </li>
 <li>uart_sendStrLen()
 : <a class="el" href="uart_8c.html#a8ed365abbf581c32e90ed632bf60f88e">uart.c</a>
diff --git a/Doxygen/html/globals_func.html b/Doxygen/html/globals_func.html
index 08a1293caeef33e3062aaf0058f4fdc03c3b0d4c..0ed33e6bcb61f2aa65cd860043ce70560e139b2b 100644
--- a/Doxygen/html/globals_func.html
+++ b/Doxygen/html/globals_func.html
@@ -115,6 +115,10 @@ $(document).ready(function(){initNavTree('globals_func.html','');});
 : <a class="el" href="sonic_8h.html#a026052969f1c177a4c0c035b1ea5b9e7">sonic.h</a>
 , <a class="el" href="sonic_8c.html#a026052969f1c177a4c0c035b1ea5b9e7">sonic.c</a>
 </li>
+<li>clock_timer_init()
+: <a class="el" href="timer4_8c.html#afe6c9dd8b2439c58273cbd63b95088fe">timer4.c</a>
+, <a class="el" href="timer4_8h.html#afe6c9dd8b2439c58273cbd63b95088fe">timer4.h</a>
+</li>
 <li>cs_getTerrain()
 : <a class="el" href="cliff__sensor_8c.html#a1fa03a7f9a05ace91224ea610463e871">cliff_sensor.c</a>
 , <a class="el" href="cliff__sensor_8h.html#a1fa03a7f9a05ace91224ea610463e871">cliff_sensor.h</a>
@@ -135,14 +139,22 @@ $(document).ready(function(){initNavTree('globals_func.html','');});
 : <a class="el" href="ir_8h.html#a7e70a945ffc15434f5310c8684643eb3">ir.h</a>
 , <a class="el" href="ir_8c.html#a7e70a945ffc15434f5310c8684643eb3">ir.c</a>
 </li>
+<li>getDegrees()
+: <a class="el" href="open__interface_8c.html#a22afee5afdd7d60bc1bd9d58a428e4b7">open_interface.c</a>
+, <a class="el" href="open__interface_8h.html#a22afee5afdd7d60bc1bd9d58a428e4b7">open_interface.h</a>
+</li>
 <li>getLastLine()
-: <a class="el" href="uart_8c.html#a46df527ddf86c0ebfe750173a41dd4d3">uart.c</a>
-, <a class="el" href="uart_8h.html#a46df527ddf86c0ebfe750173a41dd4d3">uart.h</a>
+: <a class="el" href="uart_8h.html#a46df527ddf86c0ebfe750173a41dd4d3">uart.h</a>
+, <a class="el" href="uart_8c.html#a46df527ddf86c0ebfe750173a41dd4d3">uart.c</a>
 </li>
 <li>getPosition()
 : <a class="el" href="movementcommands_8h.html#a35f84947bb1dd6f437da3949f213c373">movementcommands.h</a>
 , <a class="el" href="movementcommands_8c.html#a35f84947bb1dd6f437da3949f213c373">movementcommands.c</a>
 </li>
+<li>go_charge()
+: <a class="el" href="open__interface_8c.html#a6c701c5d6642b0f7128b03542a09ed76">open_interface.c</a>
+, <a class="el" href="open__interface_8h.html#a6c701c5d6642b0f7128b03542a09ed76">open_interface.h</a>
+</li>
 </ul>
 
 
@@ -154,7 +166,52 @@ $(document).ready(function(){initNavTree('globals_func.html','');});
 </ul>
 
 
+<h3><a id="index_l"></a>- l -</h3><ul>
+<li>lcd_clear()
+: <a class="el" href="lcd_8c.html#ad235a86241458b1e7b8771688bfdaf9a">lcd.c</a>
+, <a class="el" href="lcd_8h.html#ad235a86241458b1e7b8771688bfdaf9a">lcd.h</a>
+</li>
+<li>lcd_gotoLine()
+: <a class="el" href="lcd_8h.html#a22493bdaca08073e3014decb34db38a6">lcd.h</a>
+, <a class="el" href="lcd_8c.html#a22493bdaca08073e3014decb34db38a6">lcd.c</a>
+</li>
+<li>lcd_home()
+: <a class="el" href="lcd_8c.html#a3aabf730aa4e0393bb5c959583c00a8e">lcd.c</a>
+, <a class="el" href="lcd_8h.html#a3aabf730aa4e0393bb5c959583c00a8e">lcd.h</a>
+</li>
+<li>lcd_init()
+: <a class="el" href="lcd_8h.html#a6842775ba83d166f02b8fef8bb63b1e6">lcd.h</a>
+, <a class="el" href="lcd_8c.html#a6842775ba83d166f02b8fef8bb63b1e6">lcd.c</a>
+</li>
+<li>lcd_printf()
+: <a class="el" href="lcd_8c.html#a3c12e31b86febabfc7e62b51e0b9dc30">lcd.c</a>
+, <a class="el" href="lcd_8h.html#a3c12e31b86febabfc7e62b51e0b9dc30">lcd.h</a>
+</li>
+<li>lcd_putc()
+: <a class="el" href="lcd_8c.html#a1b59543ebb020ae74d6bcdf06e2b6d3b">lcd.c</a>
+, <a class="el" href="lcd_8h.html#a1b59543ebb020ae74d6bcdf06e2b6d3b">lcd.h</a>
+</li>
+<li>lcd_puts()
+: <a class="el" href="lcd_8c.html#ac68eefc9e6fce7854f6319aba267ff58">lcd.c</a>
+, <a class="el" href="lcd_8h.html#ac68eefc9e6fce7854f6319aba267ff58">lcd.h</a>
+</li>
+<li>lcd_sendCommand()
+: <a class="el" href="lcd_8c.html#aa212e4f928275b196e6db53fad2c1a5f">lcd.c</a>
+</li>
+<li>lcd_sendNibble()
+: <a class="el" href="lcd_8c.html#a76885eaba7dbd9863c2ea8bf7113c57f">lcd.c</a>
+</li>
+<li>lcd_setCursorPos()
+: <a class="el" href="lcd_8h.html#a785788c99ba018918ffb2db717773fa4">lcd.h</a>
+, <a class="el" href="lcd_8c.html#a785788c99ba018918ffb2db717773fa4">lcd.c</a>
+</li>
+</ul>
+
+
 <h3><a id="index_m"></a>- m -</h3><ul>
+<li>main()
+: <a class="el" href="main_8c.html#a840291bc02cba5474a4cb46a9b9566fe">main.c</a>
+</li>
 <li>moveRobotDistance()
 : <a class="el" href="movementcommands_8c.html#ac19e613d92cdd54f047e591fc0c99b07">movementcommands.c</a>
 , <a class="el" href="movementcommands_8h.html#ac19e613d92cdd54f047e591fc0c99b07">movementcommands.h</a>
@@ -166,6 +223,73 @@ $(document).ready(function(){initNavTree('globals_func.html','');});
 </ul>
 
 
+<h3><a id="index_o"></a>- o -</h3><ul>
+<li>oi_alloc()
+: <a class="el" href="open__interface_8c.html#aad249dffdf79454de76e09092a0445f5">open_interface.c</a>
+, <a class="el" href="open__interface_8h.html#aad249dffdf79454de76e09092a0445f5">open_interface.h</a>
+</li>
+<li>oi_free()
+: <a class="el" href="open__interface_8h.html#abe8995b948a2f47938a574b59c2dda7e">open_interface.h</a>
+, <a class="el" href="open__interface_8c.html#abe8995b948a2f47938a574b59c2dda7e">open_interface.c</a>
+</li>
+<li>oi_init()
+: <a class="el" href="open__interface_8c.html#a9108ba8c791d0e97444c03b2f40b278a">open_interface.c</a>
+, <a class="el" href="open__interface_8h.html#a9108ba8c791d0e97444c03b2f40b278a">open_interface.h</a>
+</li>
+<li>oi_init_noupdate()
+: <a class="el" href="open__interface_8c.html#ae2a441c2fb23be5db165a8cd7eca0fe7">open_interface.c</a>
+</li>
+<li>oi_loadSong()
+: <a class="el" href="open__interface_8c.html#ad945411d8b234cf7c50488a8d9388ff5">open_interface.c</a>
+, <a class="el" href="open__interface_8h.html#ad945411d8b234cf7c50488a8d9388ff5">open_interface.h</a>
+</li>
+<li>oi_parseInt()
+: <a class="el" href="open__interface_8c.html#a8c54153bd272749c1fc36a3f98ffc8b1">open_interface.c</a>
+</li>
+<li>oi_parsePacket()
+: <a class="el" href="open__interface_8c.html#aa238e081cfecd7a9bf3d274f53504362">open_interface.c</a>
+</li>
+<li>oi_play_song()
+: <a class="el" href="open__interface_8c.html#a353765c4297939ef0390a47ca869af56">open_interface.c</a>
+, <a class="el" href="open__interface_8h.html#a353765c4297939ef0390a47ca869af56">open_interface.h</a>
+</li>
+<li>oi_setLeds()
+: <a class="el" href="open__interface_8c.html#a9ce8d6194cf8cb1d39104b641cb5254d">open_interface.c</a>
+, <a class="el" href="open__interface_8h.html#a9ce8d6194cf8cb1d39104b641cb5254d">open_interface.h</a>
+</li>
+<li>oi_setWheels()
+: <a class="el" href="open__interface_8c.html#a49949f029cc5f84ad903aa7022f4e5e0">open_interface.c</a>
+, <a class="el" href="open__interface_8h.html#a49949f029cc5f84ad903aa7022f4e5e0">open_interface.h</a>
+</li>
+<li>oi_shutoff_init()
+: <a class="el" href="open__interface_8c.html#a1bca24fa8dd6fb148a6ec99ffbe2f29d">open_interface.c</a>
+, <a class="el" href="open__interface_8h.html#a1bca24fa8dd6fb148a6ec99ffbe2f29d">open_interface.h</a>
+</li>
+<li>oi_uartFastMode()
+: <a class="el" href="open__interface_8c.html#af7fe40c5fd5331db4a79ee4d77b12398">open_interface.c</a>
+</li>
+<li>oi_uartInit()
+: <a class="el" href="open__interface_8c.html#ad9923d0a228d340572e71997ddf32df9">open_interface.c</a>
+</li>
+<li>oi_uartReceive()
+: <a class="el" href="open__interface_8c.html#a5e7e1773c5782c2be5f333f733aab29f">open_interface.c</a>
+</li>
+<li>oi_uartSendBuff()
+: <a class="el" href="open__interface_8c.html#afcbad4c0a94458d1ba7ff11dac9ff42b">open_interface.c</a>
+</li>
+<li>oi_uartSendChar()
+: <a class="el" href="open__interface_8c.html#aced7535453b0c0e29af698308d0498d4">open_interface.c</a>
+</li>
+<li>oi_uartSendStr()
+: <a class="el" href="open__interface_8c.html#a5eb8e6923f80c6f02cccbb79535cfa7f">open_interface.c</a>
+</li>
+<li>oi_update()
+: <a class="el" href="open__interface_8c.html#a9129559bba5ff9dc7e4df64330864674">open_interface.c</a>
+, <a class="el" href="open__interface_8h.html#a9129559bba5ff9dc7e4df64330864674">open_interface.h</a>
+</li>
+</ul>
+
+
 <h3><a id="index_p"></a>- p -</h3><ul>
 <li>parseCommand()
 : <a class="el" href="movementcommands_8c.html#af24f4aea581508f13025bf49cdb40b44">movementcommands.c</a>
@@ -235,6 +359,10 @@ $(document).ready(function(){initNavTree('globals_func.html','');});
 
 
 <h3><a id="index_t"></a>- t -</h3><ul>
+<li>timer_waitMillis()
+: <a class="el" href="timer_8c.html#a7e2a3b4520e885e5e7d40fa87e242a75">timer.c</a>
+, <a class="el" href="timer_8h.html#a7e2a3b4520e885e5e7d40fa87e242a75">timer.h</a>
+</li>
 <li>turnRobotDegree()
 : <a class="el" href="movementcommands_8c.html#a363d2d2063890c9731f0d9222060cd48">movementcommands.c</a>
 , <a class="el" href="movementcommands_8h.html#a363d2d2063890c9731f0d9222060cd48">movementcommands.h</a>
@@ -266,10 +394,11 @@ $(document).ready(function(){initNavTree('globals_func.html','');});
 <li>uart_sendStr()
 : <a class="el" href="uart_8c.html#af96d1ce52b8a52eabc606489d31351e9">uart.c</a>
 , <a class="el" href="uart_8h.html#af96d1ce52b8a52eabc606489d31351e9">uart.h</a>
+, <a class="el" href="open__interface_8c.html#a33bd73bbfbc570a633f3622069087066">open_interface.c</a>
 </li>
 <li>uart_sendStrLen()
-: <a class="el" href="uart_8h.html#a8ed365abbf581c32e90ed632bf60f88e">uart.h</a>
-, <a class="el" href="uart_8c.html#a8ed365abbf581c32e90ed632bf60f88e">uart.c</a>
+: <a class="el" href="uart_8c.html#a8ed365abbf581c32e90ed632bf60f88e">uart.c</a>
+, <a class="el" href="uart_8h.html#a8ed365abbf581c32e90ed632bf60f88e">uart.h</a>
 </li>
 </ul>
 </div><!-- contents -->
diff --git a/Doxygen/html/globals_vars.html b/Doxygen/html/globals_vars.html
index defecdd9ac5af1723004dd17dc7e2c8077787df5..86ef70320e7deca9d241b947425d9ef1c11333d9 100644
--- a/Doxygen/html/globals_vars.html
+++ b/Doxygen/html/globals_vars.html
@@ -93,7 +93,8 @@ $(document).ready(function(){initNavTree('globals_vars.html','');});
 : <a class="el" href="uart_8h.html#aff2566f4c366b48d73479bef43ee4d2e">uart.h</a>
 </li>
 <li>data
-: <a class="el" href="movementcommands_8c.html#a91a70b77df95bd8b0830b49a094c2acb">movementcommands.c</a>
+: <a class="el" href="main_8c.html#a91a70b77df95bd8b0830b49a094c2acb">main.c</a>
+, <a class="el" href="movementcommands_8c.html#a91a70b77df95bd8b0830b49a094c2acb">movementcommands.c</a>
 </li>
 <li>degrees_per_micros
 : <a class="el" href="sweep__sensor_8c.html#ad15c1ce3dc8d7295980df0c002469685">sweep_sensor.c</a>
diff --git a/Doxygen/html/index.html b/Doxygen/html/index.html
index 3ad3336ffa0c1e3fb189c18a018cfed98373d91f..84fce14c4be3796a24ed07d607ee2c393a83ee6a 100644
--- a/Doxygen/html/index.html
+++ b/Doxygen/html/index.html
@@ -123,10 +123,13 @@ Robot_Responses</h2>
 <p>The output to the sensor data as a scan is being run is given as: s angle IR_distance Sonic_Distance where angle is the degree that the servo is pointing at. IR_Distance is the distance from which the object is sensed. Sonic_Distance is the distance from which the object is sensed.</p>
 <h2><a class="anchor" id="Acknowledgements"></a>
 Acknowledgements</h2>
-<p>Code that we didn't write: </p><pre class="fragment">open_interface
-timer
-lcd
-</pre><p>We did however, made some modifications to open_interface in order to output degrees and distance as a float.</p>
+<p>Code that we didn't write: </p><pre class="fragment">open_interface.h - Author: Noah Bergman
+open_interface.c - Author: Noah Bergman, Eric Middleton, dmlarson
+timer.h - Author: Eric Middleton
+timer.c - Author: Eric Middleton
+lcd.h - Author: Noah Bergman
+lcd.c - Author: Noah Bergman, Eric Middleton
+</pre><p>These have be lifted from the labs. We did however, made some modifications to open_interface in order to output degrees as a float.</p>
 <h2><a class="anchor" id="Bugs"></a>
 Bugs</h2>
 <pre class="fragment">    -The robot currently registers a boundary prior to registering a zone. So
diff --git a/Doxygen/html/ir_8c_source.html b/Doxygen/html/ir_8c_source.html
index 9c350708e44b711cae366fa9aef08c1bb9825896..d9fb5b97ccb49c26a1cf7ac6ba6c7fe568e71223 100644
--- a/Doxygen/html/ir_8c_source.html
+++ b/Doxygen/html/ir_8c_source.html
@@ -92,9 +92,10 @@ $(document).ready(function(){initNavTree('ir_8c_source.html','');});
 <div class="title">ir.c</div>  </div>
 </div><!--header-->
 <div class="contents">
-<a href="ir_8c.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno">    1</span>&#160;</div><div class="line"><a name="l00014"></a><span class="lineno">   14</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="ir_8h.html">ir.h</a>&quot;</span></div><div class="line"><a name="l00015"></a><span class="lineno">   15</span>&#160;<span class="preprocessor">#include &lt;inc/tm4c123gh6pm.h&gt;</span></div><div class="line"><a name="l00016"></a><span class="lineno">   16</span>&#160;<span class="preprocessor">#include &quot;driverlib/interrupt.h&quot;</span></div><div class="line"><a name="l00017"></a><span class="lineno">   17</span>&#160;</div><div class="line"><a name="l00018"></a><span class="lineno">   18</span>&#160;</div><div class="line"><a name="l00019"></a><span class="lineno">   19</span>&#160;<span class="comment">// -------------------------------- BEGIN GLOBAL VARIABLES -------------------------------- //</span></div><div class="line"><a name="l00020"></a><span class="lineno">   20</span>&#160;</div><div class="line"><a name="l00021"></a><span class="lineno">   21</span>&#160;<span class="comment">// GLOBAL VARIABLE(S) FOR IR:</span></div><div class="line"><a name="l00025"></a><span class="lineno"><a class="line" href="ir_8c.html#a9fd5287ec7a5f1b511a3d5512551c8ad">   25</a></span>&#160;<span class="comment"></span><span class="keywordtype">double</span> <a class="code" href="ir_8c.html#a9fd5287ec7a5f1b511a3d5512551c8ad">VoltageArray</a>[12] = { .55, .58, .60, .64, .7, .75, .87, 1.01, 1.24, 1.6,</div><div class="line"><a name="l00026"></a><span class="lineno">   26</span>&#160;                            2.32, 3.07 };</div><div class="line"><a name="l00027"></a><span class="lineno">   27</span>&#160;<span class="keywordtype">double</span> DistanceArray[12] = { 60, 55, 50, 45, 40, 35, 30, 25, 20, 15, 10, 5 };</div><div class="line"><a name="l00028"></a><span class="lineno">   28</span>&#160;</div><div class="line"><a name="l00032"></a><span class="lineno"><a class="line" href="ir_8c.html#ad908bf08c27e50ab079aa9f459c329af">   32</a></span>&#160;<span class="keyword">volatile</span> <span class="keywordtype">int</span> <a class="code" href="ir_8c.html#ad908bf08c27e50ab079aa9f459c329af">read</a> = 0;</div><div class="line"><a name="l00033"></a><span class="lineno">   33</span>&#160;</div><div class="line"><a name="l00034"></a><span class="lineno">   34</span>&#160;<span class="comment">// -------------------------------- END GLOBAL VARIABLES -------------------------------- //</span></div><div class="line"><a name="l00035"></a><span class="lineno">   35</span>&#160;</div><div class="line"><a name="l00036"></a><span class="lineno">   36</span>&#160;</div><div class="line"><a name="l00037"></a><span class="lineno"><a class="line" href="ir_8h.html#ae93f8650ba123c393dee0fb921eb4dc6">   37</a></span>&#160;<span class="keywordtype">void</span> <a class="code" href="ir_8c.html#ae93f8650ba123c393dee0fb921eb4dc6">adc_handler</a>()</div><div class="line"><a name="l00038"></a><span class="lineno">   38</span>&#160;{</div><div class="line"><a name="l00039"></a><span class="lineno">   39</span>&#160;    <a class="code" href="ir_8c.html#ad908bf08c27e50ab079aa9f459c329af">read</a> = <a class="code" href="ir_8c.html#a5bbea9320798ccfd596c7925f65e7734">ADC_read</a>();</div><div class="line"><a name="l00040"></a><span class="lineno">   40</span>&#160;    TIMER4_ICR_R = TIMER_ICR_TATOCINT;</div><div class="line"><a name="l00041"></a><span class="lineno">   41</span>&#160;}</div><div class="line"><a name="l00042"></a><span class="lineno">   42</span>&#160;</div><div class="line"><a name="l00043"></a><span class="lineno"><a class="line" href="ir_8h.html#a1e942fcd91f79d49e4ddb8d7e9d3ef95">   43</a></span>&#160;<span class="keywordtype">void</span> <a class="code" href="ir_8c.html#a1e942fcd91f79d49e4ddb8d7e9d3ef95">adc_init</a>()</div><div class="line"><a name="l00044"></a><span class="lineno">   44</span>&#160;{</div><div class="line"><a name="l00045"></a><span class="lineno">   45</span>&#160;    SYSCTL_RCGCADC_R = 0x01; <span class="comment">// Enable ADC clock</span></div><div class="line"><a name="l00046"></a><span class="lineno">   46</span>&#160;    SYSCTL_RCGCGPIO_R |= 0x02; <span class="comment">// Enable ADC GPIO pin</span></div><div class="line"><a name="l00047"></a><span class="lineno">   47</span>&#160;    timer_waitMillis(1);</div><div class="line"><a name="l00048"></a><span class="lineno">   48</span>&#160;    GPIO_PORTB_AFSEL_R &amp;= 0xFFFFFFFEF; <span class="comment">// Clear ADC pin AFSEL</span></div><div class="line"><a name="l00049"></a><span class="lineno">   49</span>&#160;    GPIO_PORTB_DIR_R &amp;= 0xFFFFFFFEF; <span class="comment">// Clear ADC Direction pin</span></div><div class="line"><a name="l00050"></a><span class="lineno">   50</span>&#160;    GPIO_PORTB_DEN_R |= 0x10; <span class="comment">// Enable ADC pin in GPIO</span></div><div class="line"><a name="l00051"></a><span class="lineno">   51</span>&#160;    GPIO_PORTB_AFSEL_R |= 0x10; <span class="comment">// Enable ADC pin input in GPIO</span></div><div class="line"><a name="l00052"></a><span class="lineno">   52</span>&#160;    GPIO_PORTB_AMSEL_R |= 0x10; <span class="comment">// Set pin to ADC mode</span></div><div class="line"><a name="l00053"></a><span class="lineno">   53</span>&#160;    ADC0_ACTSS_R &amp;= 0xFFFFFFFE; <span class="comment">// Clear sampler 0</span></div><div class="line"><a name="l00054"></a><span class="lineno">   54</span>&#160;</div><div class="line"><a name="l00055"></a><span class="lineno">   55</span>&#160;    ADC0_SAC_R &amp;= 0xFFFFFFF8; <span class="comment">// Clear hardware sample averaging</span></div><div class="line"><a name="l00056"></a><span class="lineno">   56</span>&#160;    ADC0_SAC_R |= 0x5; <span class="comment">// Hardware sample average at 32x</span></div><div class="line"><a name="l00057"></a><span class="lineno">   57</span>&#160;</div><div class="line"><a name="l00058"></a><span class="lineno">   58</span>&#160;    ADC0_EMUX_R |= 0x00; <span class="comment">// Set to default clock</span></div><div class="line"><a name="l00059"></a><span class="lineno">   59</span>&#160;    ADC0_SSMUX0_R |= 0xA; <span class="comment">// Set to ADC10</span></div><div class="line"><a name="l00060"></a><span class="lineno">   60</span>&#160;    ADC0_SSCTL0_R |= 0x6; <span class="comment">// End and interrupt at the first sample</span></div><div class="line"><a name="l00061"></a><span class="lineno">   61</span>&#160;</div><div class="line"><a name="l00062"></a><span class="lineno">   62</span>&#160;    TIMER4_CTL_R &amp;= ~(TIMER_CTL_TAEN | TIMER_CTL_TBEN); <span class="comment">// Disable timerB to allow us to change settings</span></div><div class="line"><a name="l00063"></a><span class="lineno">   63</span>&#160;    NVIC_EN2_R |= (1 &lt;&lt; 6); <span class="comment">// Set interrupt at Timer 4</span></div><div class="line"><a name="l00064"></a><span class="lineno">   64</span>&#160;</div><div class="line"><a name="l00065"></a><span class="lineno">   65</span>&#160;    IntRegister(INT_TIMER4A, <a class="code" href="ir_8c.html#ae93f8650ba123c393dee0fb921eb4dc6">adc_handler</a>); <span class="comment">// Register TIMER4A interrupt handler</span></div><div class="line"><a name="l00066"></a><span class="lineno">   66</span>&#160;    TIMER4_CTL_R |= (TIMER_CTL_TAEN | TIMER_CTL_TBEN); <span class="comment">// Enable TIMER4A &amp; TIMER4B</span></div><div class="line"><a name="l00067"></a><span class="lineno">   67</span>&#160;    TIMER4_ICR_R = TIMER_ICR_TATOCINT;</div><div class="line"><a name="l00068"></a><span class="lineno">   68</span>&#160;</div><div class="line"><a name="l00069"></a><span class="lineno">   69</span>&#160;    ADC0_ACTSS_R |= 0x01;</div><div class="line"><a name="l00070"></a><span class="lineno">   70</span>&#160;    ADC0_ISC_R |= 0x01;</div><div class="line"><a name="l00071"></a><span class="lineno">   71</span>&#160;}</div><div class="line"><a name="l00072"></a><span class="lineno">   72</span>&#160;</div><div class="line"><a name="l00073"></a><span class="lineno"><a class="line" href="ir_8h.html#a5bbea9320798ccfd596c7925f65e7734">   73</a></span>&#160;<span class="keywordtype">int</span> <a class="code" href="ir_8c.html#a5bbea9320798ccfd596c7925f65e7734">ADC_read</a>()</div><div class="line"><a name="l00074"></a><span class="lineno">   74</span>&#160;{</div><div class="line"><a name="l00075"></a><span class="lineno">   75</span>&#160;    ADC0_ISC_R |= 0x01; <span class="comment">// Clear interrupt flag</span></div><div class="line"><a name="l00076"></a><span class="lineno">   76</span>&#160;    ADC0_PSSI_R |= 0x01;<span class="comment">// Initiate sampler</span></div><div class="line"><a name="l00077"></a><span class="lineno">   77</span>&#160;    <span class="keywordflow">while</span> (ADC0_RIS_R &amp; 0x01) <span class="comment">// Wait until interrupt</span></div><div class="line"><a name="l00078"></a><span class="lineno">   78</span>&#160;        ;</div><div class="line"><a name="l00079"></a><span class="lineno">   79</span>&#160;    <span class="keywordflow">return</span> (ADC0_SSFIFO0_R &amp; 0xFFF); <span class="comment">// Return ADC raw value</span></div><div class="line"><a name="l00080"></a><span class="lineno">   80</span>&#160;}</div><div class="line"><a name="l00081"></a><span class="lineno">   81</span>&#160;</div><div class="line"><a name="l00082"></a><span class="lineno"><a class="line" href="ir_8h.html#a7e70a945ffc15434f5310c8684643eb3">   82</a></span>&#160;<span class="keywordtype">int</span> <a class="code" href="ir_8c.html#a7e70a945ffc15434f5310c8684643eb3">getADCReading</a>()</div><div class="line"><a name="l00083"></a><span class="lineno">   83</span>&#160;{</div><div class="line"><a name="l00084"></a><span class="lineno">   84</span>&#160;    <span class="keywordflow">return</span> <a class="code" href="ir_8c.html#ad908bf08c27e50ab079aa9f459c329af">read</a>; <span class="comment">// Get the last reading</span></div><div class="line"><a name="l00085"></a><span class="lineno">   85</span>&#160;}</div><div class="line"><a name="l00086"></a><span class="lineno">   86</span>&#160;</div><div class="line"><a name="l00087"></a><span class="lineno"><a class="line" href="ir_8h.html#a9350c2275f27f9622b8253d3f2126cb3">   87</a></span>&#160;<span class="keywordtype">float</span> <a class="code" href="ir_8c.html#a9350c2275f27f9622b8253d3f2126cb3">ir_convertToDist</a>(<span class="keywordtype">int</span> rawIRValue)</div><div class="line"><a name="l00088"></a><span class="lineno">   88</span>&#160;{</div><div class="line"><a name="l00089"></a><span class="lineno">   89</span>&#160;    <span class="comment">// Convert digital quantization value for IR sensor back to voltage</span></div><div class="line"><a name="l00090"></a><span class="lineno">   90</span>&#160;    <span class="keywordtype">float</span> voltage = rawIRValue * 0.00081;</div><div class="line"><a name="l00091"></a><span class="lineno">   91</span>&#160;    <span class="comment">// The distance represented by the raw sensor value in cm</span></div><div class="line"><a name="l00092"></a><span class="lineno">   92</span>&#160;    <span class="keywordtype">float</span> distance_cm = 0.0;</div><div class="line"><a name="l00093"></a><span class="lineno">   93</span>&#160;</div><div class="line"><a name="l00094"></a><span class="lineno">   94</span>&#160;    <span class="comment">// Loop counter variable</span></div><div class="line"><a name="l00095"></a><span class="lineno">   95</span>&#160;    <span class="keywordtype">int</span> i = 0;</div><div class="line"><a name="l00096"></a><span class="lineno">   96</span>&#160;    <span class="comment">// The approximation of the slope being used</span></div><div class="line"><a name="l00097"></a><span class="lineno">   97</span>&#160;    <span class="keywordtype">float</span> slope;</div><div class="line"><a name="l00098"></a><span class="lineno">   98</span>&#160;</div><div class="line"><a name="l00099"></a><span class="lineno">   99</span>&#160;    <span class="comment">// Use the best voltage-distance slope approximation to convert IR sensor voltage reading to a distance reading in cm</span></div><div class="line"><a name="l00100"></a><span class="lineno">  100</span>&#160;    <span class="keywordflow">for</span> (i = 0; i &lt; 11; i++)</div><div class="line"><a name="l00101"></a><span class="lineno">  101</span>&#160;    {</div><div class="line"><a name="l00102"></a><span class="lineno">  102</span>&#160;        <span class="comment">// Use the slope approximation from the portion of the graph that is local to the given voltage value.</span></div><div class="line"><a name="l00103"></a><span class="lineno">  103</span>&#160;        <span class="keywordflow">if</span> ((voltage &gt;= <a class="code" href="ir_8c.html#a9fd5287ec7a5f1b511a3d5512551c8ad">VoltageArray</a>[i]) &amp;&amp; (voltage &lt;= <a class="code" href="ir_8c.html#a9fd5287ec7a5f1b511a3d5512551c8ad">VoltageArray</a>[i + 1]))</div><div class="line"><a name="l00104"></a><span class="lineno">  104</span>&#160;        {</div><div class="line"><a name="l00105"></a><span class="lineno">  105</span>&#160;            <span class="comment">// Calculate the slope approximation</span></div><div class="line"><a name="l00106"></a><span class="lineno">  106</span>&#160;            slope = (DistanceArray[i + 1] - DistanceArray[i])</div><div class="line"><a name="l00107"></a><span class="lineno">  107</span>&#160;                    / (<a class="code" href="ir_8c.html#a9fd5287ec7a5f1b511a3d5512551c8ad">VoltageArray</a>[i + 1] - <a class="code" href="ir_8c.html#a9fd5287ec7a5f1b511a3d5512551c8ad">VoltageArray</a>[i]);</div><div class="line"><a name="l00108"></a><span class="lineno">  108</span>&#160;            <span class="comment">// Calculate the distance in centimeters using the best slope approximation</span></div><div class="line"><a name="l00109"></a><span class="lineno">  109</span>&#160;            distance_cm = DistanceArray[i] - <a class="code" href="ir_8c.html#a9fd5287ec7a5f1b511a3d5512551c8ad">VoltageArray</a>[i] * slope</div><div class="line"><a name="l00110"></a><span class="lineno">  110</span>&#160;                    + voltage * slope;</div><div class="line"><a name="l00111"></a><span class="lineno">  111</span>&#160;        }</div><div class="line"><a name="l00112"></a><span class="lineno">  112</span>&#160;    }</div><div class="line"><a name="l00113"></a><span class="lineno">  113</span>&#160;</div><div class="line"><a name="l00114"></a><span class="lineno">  114</span>&#160;    <span class="comment">// Return the distance reported by the IR sensor in centimeters</span></div><div class="line"><a name="l00115"></a><span class="lineno">  115</span>&#160;    <span class="keywordflow">return</span> distance_cm;</div><div class="line"><a name="l00116"></a><span class="lineno">  116</span>&#160;}</div><div class="ttc" id="ir_8c_html_ad908bf08c27e50ab079aa9f459c329af"><div class="ttname"><a href="ir_8c.html#ad908bf08c27e50ab079aa9f459c329af">read</a></div><div class="ttdeci">volatile int read</div><div class="ttdef"><b>Definition:</b> <a href="ir_8c_source.html#l00032">ir.c:32</a></div></div>
+<a href="ir_8c.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno">    1</span>&#160;</div><div class="line"><a name="l00014"></a><span class="lineno">   14</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="ir_8h.html">ir.h</a>&quot;</span></div><div class="line"><a name="l00015"></a><span class="lineno">   15</span>&#160;<span class="preprocessor">#include &lt;inc/tm4c123gh6pm.h&gt;</span></div><div class="line"><a name="l00016"></a><span class="lineno">   16</span>&#160;<span class="preprocessor">#include &quot;driverlib/interrupt.h&quot;</span></div><div class="line"><a name="l00017"></a><span class="lineno">   17</span>&#160;</div><div class="line"><a name="l00018"></a><span class="lineno">   18</span>&#160;</div><div class="line"><a name="l00019"></a><span class="lineno">   19</span>&#160;<span class="comment">// -------------------------------- BEGIN GLOBAL VARIABLES -------------------------------- //</span></div><div class="line"><a name="l00020"></a><span class="lineno">   20</span>&#160;</div><div class="line"><a name="l00021"></a><span class="lineno">   21</span>&#160;<span class="comment">// GLOBAL VARIABLE(S) FOR IR:</span></div><div class="line"><a name="l00025"></a><span class="lineno"><a class="line" href="ir_8c.html#a9fd5287ec7a5f1b511a3d5512551c8ad">   25</a></span>&#160;<span class="comment"></span><span class="keywordtype">double</span> <a class="code" href="ir_8c.html#a9fd5287ec7a5f1b511a3d5512551c8ad">VoltageArray</a>[12] = { .55, .58, .60, .64, .7, .75, .87, 1.01, 1.24, 1.6,</div><div class="line"><a name="l00026"></a><span class="lineno">   26</span>&#160;                            2.32, 3.07 };</div><div class="line"><a name="l00027"></a><span class="lineno">   27</span>&#160;<span class="keywordtype">double</span> DistanceArray[12] = { 60, 55, 50, 45, 40, 35, 30, 25, 20, 15, 10, 5 };</div><div class="line"><a name="l00028"></a><span class="lineno">   28</span>&#160;</div><div class="line"><a name="l00032"></a><span class="lineno"><a class="line" href="ir_8c.html#ad908bf08c27e50ab079aa9f459c329af">   32</a></span>&#160;<span class="keyword">volatile</span> <span class="keywordtype">int</span> <a class="code" href="ir_8c.html#ad908bf08c27e50ab079aa9f459c329af">read</a> = 0;</div><div class="line"><a name="l00033"></a><span class="lineno">   33</span>&#160;</div><div class="line"><a name="l00034"></a><span class="lineno">   34</span>&#160;<span class="comment">// -------------------------------- END GLOBAL VARIABLES -------------------------------- //</span></div><div class="line"><a name="l00035"></a><span class="lineno">   35</span>&#160;</div><div class="line"><a name="l00036"></a><span class="lineno">   36</span>&#160;</div><div class="line"><a name="l00037"></a><span class="lineno"><a class="line" href="ir_8h.html#ae93f8650ba123c393dee0fb921eb4dc6">   37</a></span>&#160;<span class="keywordtype">void</span> <a class="code" href="ir_8c.html#ae93f8650ba123c393dee0fb921eb4dc6">adc_handler</a>()</div><div class="line"><a name="l00038"></a><span class="lineno">   38</span>&#160;{</div><div class="line"><a name="l00039"></a><span class="lineno">   39</span>&#160;    <a class="code" href="ir_8c.html#ad908bf08c27e50ab079aa9f459c329af">read</a> = <a class="code" href="ir_8c.html#a5bbea9320798ccfd596c7925f65e7734">ADC_read</a>();</div><div class="line"><a name="l00040"></a><span class="lineno">   40</span>&#160;    TIMER4_ICR_R = TIMER_ICR_TATOCINT;</div><div class="line"><a name="l00041"></a><span class="lineno">   41</span>&#160;}</div><div class="line"><a name="l00042"></a><span class="lineno">   42</span>&#160;</div><div class="line"><a name="l00043"></a><span class="lineno"><a class="line" href="ir_8h.html#a1e942fcd91f79d49e4ddb8d7e9d3ef95">   43</a></span>&#160;<span class="keywordtype">void</span> <a class="code" href="ir_8c.html#a1e942fcd91f79d49e4ddb8d7e9d3ef95">adc_init</a>()</div><div class="line"><a name="l00044"></a><span class="lineno">   44</span>&#160;{</div><div class="line"><a name="l00045"></a><span class="lineno">   45</span>&#160;    SYSCTL_RCGCADC_R = 0x01; <span class="comment">// Enable ADC clock</span></div><div class="line"><a name="l00046"></a><span class="lineno">   46</span>&#160;    SYSCTL_RCGCGPIO_R |= 0x02; <span class="comment">// Enable ADC GPIO pin</span></div><div class="line"><a name="l00047"></a><span class="lineno">   47</span>&#160;    <a class="code" href="timer_8c.html#a7e2a3b4520e885e5e7d40fa87e242a75">timer_waitMillis</a>(1);</div><div class="line"><a name="l00048"></a><span class="lineno">   48</span>&#160;    GPIO_PORTB_AFSEL_R &amp;= 0xFFFFFFFEF; <span class="comment">// Clear ADC pin AFSEL</span></div><div class="line"><a name="l00049"></a><span class="lineno">   49</span>&#160;    GPIO_PORTB_DIR_R &amp;= 0xFFFFFFFEF; <span class="comment">// Clear ADC Direction pin</span></div><div class="line"><a name="l00050"></a><span class="lineno">   50</span>&#160;    GPIO_PORTB_DEN_R |= 0x10; <span class="comment">// Enable ADC pin in GPIO</span></div><div class="line"><a name="l00051"></a><span class="lineno">   51</span>&#160;    GPIO_PORTB_AFSEL_R |= 0x10; <span class="comment">// Enable ADC pin input in GPIO</span></div><div class="line"><a name="l00052"></a><span class="lineno">   52</span>&#160;    GPIO_PORTB_AMSEL_R |= 0x10; <span class="comment">// Set pin to ADC mode</span></div><div class="line"><a name="l00053"></a><span class="lineno">   53</span>&#160;    ADC0_ACTSS_R &amp;= 0xFFFFFFFE; <span class="comment">// Clear sampler 0</span></div><div class="line"><a name="l00054"></a><span class="lineno">   54</span>&#160;</div><div class="line"><a name="l00055"></a><span class="lineno">   55</span>&#160;    ADC0_SAC_R &amp;= 0xFFFFFFF8; <span class="comment">// Clear hardware sample averaging</span></div><div class="line"><a name="l00056"></a><span class="lineno">   56</span>&#160;    ADC0_SAC_R |= 0x5; <span class="comment">// Hardware sample average at 32x</span></div><div class="line"><a name="l00057"></a><span class="lineno">   57</span>&#160;</div><div class="line"><a name="l00058"></a><span class="lineno">   58</span>&#160;    ADC0_EMUX_R |= 0x00; <span class="comment">// Set to default clock</span></div><div class="line"><a name="l00059"></a><span class="lineno">   59</span>&#160;    ADC0_SSMUX0_R |= 0xA; <span class="comment">// Set to ADC10</span></div><div class="line"><a name="l00060"></a><span class="lineno">   60</span>&#160;    ADC0_SSCTL0_R |= 0x6; <span class="comment">// End and interrupt at the first sample</span></div><div class="line"><a name="l00061"></a><span class="lineno">   61</span>&#160;</div><div class="line"><a name="l00062"></a><span class="lineno">   62</span>&#160;    TIMER4_CTL_R &amp;= ~(TIMER_CTL_TAEN | TIMER_CTL_TBEN); <span class="comment">// Disable timerB to allow us to change settings</span></div><div class="line"><a name="l00063"></a><span class="lineno">   63</span>&#160;    NVIC_EN2_R |= (1 &lt;&lt; 6); <span class="comment">// Set interrupt at Timer 4</span></div><div class="line"><a name="l00064"></a><span class="lineno">   64</span>&#160;</div><div class="line"><a name="l00065"></a><span class="lineno">   65</span>&#160;    IntRegister(INT_TIMER4A, <a class="code" href="ir_8c.html#ae93f8650ba123c393dee0fb921eb4dc6">adc_handler</a>); <span class="comment">// Register TIMER4A interrupt handler</span></div><div class="line"><a name="l00066"></a><span class="lineno">   66</span>&#160;    TIMER4_CTL_R |= (TIMER_CTL_TAEN | TIMER_CTL_TBEN); <span class="comment">// Enable TIMER4A &amp; TIMER4B</span></div><div class="line"><a name="l00067"></a><span class="lineno">   67</span>&#160;    TIMER4_ICR_R = TIMER_ICR_TATOCINT;</div><div class="line"><a name="l00068"></a><span class="lineno">   68</span>&#160;</div><div class="line"><a name="l00069"></a><span class="lineno">   69</span>&#160;    ADC0_ACTSS_R |= 0x01;</div><div class="line"><a name="l00070"></a><span class="lineno">   70</span>&#160;    ADC0_ISC_R |= 0x01;</div><div class="line"><a name="l00071"></a><span class="lineno">   71</span>&#160;}</div><div class="line"><a name="l00072"></a><span class="lineno">   72</span>&#160;</div><div class="line"><a name="l00073"></a><span class="lineno"><a class="line" href="ir_8h.html#a5bbea9320798ccfd596c7925f65e7734">   73</a></span>&#160;<span class="keywordtype">int</span> <a class="code" href="ir_8c.html#a5bbea9320798ccfd596c7925f65e7734">ADC_read</a>()</div><div class="line"><a name="l00074"></a><span class="lineno">   74</span>&#160;{</div><div class="line"><a name="l00075"></a><span class="lineno">   75</span>&#160;    ADC0_ISC_R |= 0x01; <span class="comment">// Clear interrupt flag</span></div><div class="line"><a name="l00076"></a><span class="lineno">   76</span>&#160;    ADC0_PSSI_R |= 0x01;<span class="comment">// Initiate sampler</span></div><div class="line"><a name="l00077"></a><span class="lineno">   77</span>&#160;    <span class="keywordflow">while</span> (ADC0_RIS_R &amp; 0x01) <span class="comment">// Wait until interrupt</span></div><div class="line"><a name="l00078"></a><span class="lineno">   78</span>&#160;        ;</div><div class="line"><a name="l00079"></a><span class="lineno">   79</span>&#160;    <span class="keywordflow">return</span> (ADC0_SSFIFO0_R &amp; 0xFFF); <span class="comment">// Return ADC raw value</span></div><div class="line"><a name="l00080"></a><span class="lineno">   80</span>&#160;}</div><div class="line"><a name="l00081"></a><span class="lineno">   81</span>&#160;</div><div class="line"><a name="l00082"></a><span class="lineno"><a class="line" href="ir_8h.html#a7e70a945ffc15434f5310c8684643eb3">   82</a></span>&#160;<span class="keywordtype">int</span> <a class="code" href="ir_8c.html#a7e70a945ffc15434f5310c8684643eb3">getADCReading</a>()</div><div class="line"><a name="l00083"></a><span class="lineno">   83</span>&#160;{</div><div class="line"><a name="l00084"></a><span class="lineno">   84</span>&#160;    <span class="keywordflow">return</span> <a class="code" href="ir_8c.html#ad908bf08c27e50ab079aa9f459c329af">read</a>; <span class="comment">// Get the last reading</span></div><div class="line"><a name="l00085"></a><span class="lineno">   85</span>&#160;}</div><div class="line"><a name="l00086"></a><span class="lineno">   86</span>&#160;</div><div class="line"><a name="l00087"></a><span class="lineno"><a class="line" href="ir_8h.html#a9350c2275f27f9622b8253d3f2126cb3">   87</a></span>&#160;<span class="keywordtype">float</span> <a class="code" href="ir_8c.html#a9350c2275f27f9622b8253d3f2126cb3">ir_convertToDist</a>(<span class="keywordtype">int</span> rawIRValue)</div><div class="line"><a name="l00088"></a><span class="lineno">   88</span>&#160;{</div><div class="line"><a name="l00089"></a><span class="lineno">   89</span>&#160;    <span class="comment">// Convert digital quantization value for IR sensor back to voltage</span></div><div class="line"><a name="l00090"></a><span class="lineno">   90</span>&#160;    <span class="keywordtype">float</span> voltage = rawIRValue * 0.00081;</div><div class="line"><a name="l00091"></a><span class="lineno">   91</span>&#160;    <span class="comment">// The distance represented by the raw sensor value in cm</span></div><div class="line"><a name="l00092"></a><span class="lineno">   92</span>&#160;    <span class="keywordtype">float</span> distance_cm = 0.0;</div><div class="line"><a name="l00093"></a><span class="lineno">   93</span>&#160;</div><div class="line"><a name="l00094"></a><span class="lineno">   94</span>&#160;    <span class="comment">// Loop counter variable</span></div><div class="line"><a name="l00095"></a><span class="lineno">   95</span>&#160;    <span class="keywordtype">int</span> i = 0;</div><div class="line"><a name="l00096"></a><span class="lineno">   96</span>&#160;    <span class="comment">// The approximation of the slope being used</span></div><div class="line"><a name="l00097"></a><span class="lineno">   97</span>&#160;    <span class="keywordtype">float</span> slope;</div><div class="line"><a name="l00098"></a><span class="lineno">   98</span>&#160;</div><div class="line"><a name="l00099"></a><span class="lineno">   99</span>&#160;    <span class="comment">// Use the best voltage-distance slope approximation to convert IR sensor voltage reading to a distance reading in cm</span></div><div class="line"><a name="l00100"></a><span class="lineno">  100</span>&#160;    <span class="keywordflow">for</span> (i = 0; i &lt; 11; i++)</div><div class="line"><a name="l00101"></a><span class="lineno">  101</span>&#160;    {</div><div class="line"><a name="l00102"></a><span class="lineno">  102</span>&#160;        <span class="comment">// Use the slope approximation from the portion of the graph that is local to the given voltage value.</span></div><div class="line"><a name="l00103"></a><span class="lineno">  103</span>&#160;        <span class="keywordflow">if</span> ((voltage &gt;= <a class="code" href="ir_8c.html#a9fd5287ec7a5f1b511a3d5512551c8ad">VoltageArray</a>[i]) &amp;&amp; (voltage &lt;= <a class="code" href="ir_8c.html#a9fd5287ec7a5f1b511a3d5512551c8ad">VoltageArray</a>[i + 1]))</div><div class="line"><a name="l00104"></a><span class="lineno">  104</span>&#160;        {</div><div class="line"><a name="l00105"></a><span class="lineno">  105</span>&#160;            <span class="comment">// Calculate the slope approximation</span></div><div class="line"><a name="l00106"></a><span class="lineno">  106</span>&#160;            slope = (DistanceArray[i + 1] - DistanceArray[i])</div><div class="line"><a name="l00107"></a><span class="lineno">  107</span>&#160;                    / (<a class="code" href="ir_8c.html#a9fd5287ec7a5f1b511a3d5512551c8ad">VoltageArray</a>[i + 1] - <a class="code" href="ir_8c.html#a9fd5287ec7a5f1b511a3d5512551c8ad">VoltageArray</a>[i]);</div><div class="line"><a name="l00108"></a><span class="lineno">  108</span>&#160;            <span class="comment">// Calculate the distance in centimeters using the best slope approximation</span></div><div class="line"><a name="l00109"></a><span class="lineno">  109</span>&#160;            distance_cm = DistanceArray[i] - <a class="code" href="ir_8c.html#a9fd5287ec7a5f1b511a3d5512551c8ad">VoltageArray</a>[i] * slope</div><div class="line"><a name="l00110"></a><span class="lineno">  110</span>&#160;                    + voltage * slope;</div><div class="line"><a name="l00111"></a><span class="lineno">  111</span>&#160;        }</div><div class="line"><a name="l00112"></a><span class="lineno">  112</span>&#160;    }</div><div class="line"><a name="l00113"></a><span class="lineno">  113</span>&#160;</div><div class="line"><a name="l00114"></a><span class="lineno">  114</span>&#160;    <span class="comment">// Return the distance reported by the IR sensor in centimeters</span></div><div class="line"><a name="l00115"></a><span class="lineno">  115</span>&#160;    <span class="keywordflow">return</span> distance_cm;</div><div class="line"><a name="l00116"></a><span class="lineno">  116</span>&#160;}</div><div class="ttc" id="ir_8c_html_ad908bf08c27e50ab079aa9f459c329af"><div class="ttname"><a href="ir_8c.html#ad908bf08c27e50ab079aa9f459c329af">read</a></div><div class="ttdeci">volatile int read</div><div class="ttdef"><b>Definition:</b> <a href="ir_8c_source.html#l00032">ir.c:32</a></div></div>
 <div class="ttc" id="ir_8c_html_a9350c2275f27f9622b8253d3f2126cb3"><div class="ttname"><a href="ir_8c.html#a9350c2275f27f9622b8253d3f2126cb3">ir_convertToDist</a></div><div class="ttdeci">float ir_convertToDist(int rawIRValue)</div><div class="ttdef"><b>Definition:</b> <a href="ir_8c_source.html#l00087">ir.c:87</a></div></div>
 <div class="ttc" id="ir_8c_html_a7e70a945ffc15434f5310c8684643eb3"><div class="ttname"><a href="ir_8c.html#a7e70a945ffc15434f5310c8684643eb3">getADCReading</a></div><div class="ttdeci">int getADCReading()</div><div class="ttdef"><b>Definition:</b> <a href="ir_8c_source.html#l00082">ir.c:82</a></div></div>
+<div class="ttc" id="timer_8c_html_a7e2a3b4520e885e5e7d40fa87e242a75"><div class="ttname"><a href="timer_8c.html#a7e2a3b4520e885e5e7d40fa87e242a75">timer_waitMillis</a></div><div class="ttdeci">void timer_waitMillis(uint32_t millis)</div><div class="ttdef"><b>Definition:</b> <a href="timer_8c_source.html#l00015">timer.c:15</a></div></div>
 <div class="ttc" id="ir_8c_html_a9fd5287ec7a5f1b511a3d5512551c8ad"><div class="ttname"><a href="ir_8c.html#a9fd5287ec7a5f1b511a3d5512551c8ad">VoltageArray</a></div><div class="ttdeci">double VoltageArray[12]</div><div class="ttdef"><b>Definition:</b> <a href="ir_8c_source.html#l00025">ir.c:25</a></div></div>
 <div class="ttc" id="ir_8c_html_ae93f8650ba123c393dee0fb921eb4dc6"><div class="ttname"><a href="ir_8c.html#ae93f8650ba123c393dee0fb921eb4dc6">adc_handler</a></div><div class="ttdeci">void adc_handler()</div><div class="ttdef"><b>Definition:</b> <a href="ir_8c_source.html#l00037">ir.c:37</a></div></div>
 <div class="ttc" id="ir_8c_html_a1e942fcd91f79d49e4ddb8d7e9d3ef95"><div class="ttname"><a href="ir_8c.html#a1e942fcd91f79d49e4ddb8d7e9d3ef95">adc_init</a></div><div class="ttdeci">void adc_init()</div><div class="ttdef"><b>Definition:</b> <a href="ir_8c_source.html#l00043">ir.c:43</a></div></div>
diff --git a/Doxygen/html/ir_8h.html b/Doxygen/html/ir_8h.html
index 49271da7f0e392490cb82eda0ac11199adc35688..5651bdb31304fa03dfe2f823bdad5fcbcff7bbb4 100644
--- a/Doxygen/html/ir_8h.html
+++ b/Doxygen/html/ir_8h.html
@@ -97,7 +97,7 @@ $(document).ready(function(){initNavTree('ir_8h.html','');});
 
 <p>Header file for <a class="el" href="ir_8c.html" title="Library of functions for reading the IR Sensor. ">ir.c</a>.  
 <a href="#details">More...</a></p>
-<div class="textblock"><code>#include &lt;Utils/timer.h&gt;</code><br />
+<div class="textblock"><code>#include &lt;<a class="el" href="timer_8h_source.html">Utils/timer.h</a>&gt;</code><br />
 <code>#include &lt;stdint.h&gt;</code><br />
 <code>#include &lt;stdbool.h&gt;</code><br />
 <code>#include &lt;inc/tm4c123gh6pm.h&gt;</code><br />
diff --git a/Doxygen/html/ir_8h_source.html b/Doxygen/html/ir_8h_source.html
index e0e853c11997c7f7e9beff1a42400912f9abcadb..62238861bb807b5c12de9e89a1703a29ed9dc0b8 100644
--- a/Doxygen/html/ir_8h_source.html
+++ b/Doxygen/html/ir_8h_source.html
@@ -92,8 +92,9 @@ $(document).ready(function(){initNavTree('ir_8h_source.html','');});
 <div class="title">ir.h</div>  </div>
 </div><!--header-->
 <div class="contents">
-<a href="ir_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno">    1</span>&#160;</div><div class="line"><a name="l00016"></a><span class="lineno">   16</span>&#160;<span class="preprocessor">#include &lt;Utils/timer.h&gt;</span></div><div class="line"><a name="l00017"></a><span class="lineno">   17</span>&#160;<span class="preprocessor">#include &lt;stdint.h&gt;</span></div><div class="line"><a name="l00018"></a><span class="lineno">   18</span>&#160;<span class="preprocessor">#include &lt;stdbool.h&gt;</span></div><div class="line"><a name="l00019"></a><span class="lineno">   19</span>&#160;<span class="preprocessor">#include &lt;inc/tm4c123gh6pm.h&gt;</span></div><div class="line"><a name="l00020"></a><span class="lineno">   20</span>&#160;</div><div class="line"><a name="l00024"></a><span class="lineno">   24</span>&#160;<span class="keywordtype">void</span> <a class="code" href="ir_8h.html#a1e942fcd91f79d49e4ddb8d7e9d3ef95">adc_init</a>();</div><div class="line"><a name="l00025"></a><span class="lineno">   25</span>&#160;</div><div class="line"><a name="l00029"></a><span class="lineno">   29</span>&#160;<span class="keywordtype">int</span> <a class="code" href="ir_8h.html#a5bbea9320798ccfd596c7925f65e7734">ADC_read</a>();</div><div class="line"><a name="l00030"></a><span class="lineno">   30</span>&#160;</div><div class="line"><a name="l00034"></a><span class="lineno">   34</span>&#160;<span class="keywordtype">void</span> <a class="code" href="ir_8h.html#ae93f8650ba123c393dee0fb921eb4dc6">adc_handler</a>();</div><div class="line"><a name="l00035"></a><span class="lineno">   35</span>&#160;</div><div class="line"><a name="l00042"></a><span class="lineno">   42</span>&#160;<span class="keywordtype">int</span> <a class="code" href="ir_8h.html#a7e70a945ffc15434f5310c8684643eb3">getADCReading</a>();</div><div class="line"><a name="l00043"></a><span class="lineno">   43</span>&#160;</div><div class="line"><a name="l00053"></a><span class="lineno">   53</span>&#160;<span class="keywordtype">float</span> <a class="code" href="ir_8h.html#a9350c2275f27f9622b8253d3f2126cb3">ir_convertToDist</a>(<span class="keywordtype">int</span> rawIRValue);</div><div class="ttc" id="ir_8h_html_a7e70a945ffc15434f5310c8684643eb3"><div class="ttname"><a href="ir_8h.html#a7e70a945ffc15434f5310c8684643eb3">getADCReading</a></div><div class="ttdeci">int getADCReading()</div><div class="ttdef"><b>Definition:</b> <a href="ir_8c_source.html#l00082">ir.c:82</a></div></div>
+<a href="ir_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno">    1</span>&#160;</div><div class="line"><a name="l00016"></a><span class="lineno">   16</span>&#160;<span class="preprocessor">#include &lt;<a class="code" href="timer_8h.html">Utils/timer.h</a>&gt;</span></div><div class="line"><a name="l00017"></a><span class="lineno">   17</span>&#160;<span class="preprocessor">#include &lt;stdint.h&gt;</span></div><div class="line"><a name="l00018"></a><span class="lineno">   18</span>&#160;<span class="preprocessor">#include &lt;stdbool.h&gt;</span></div><div class="line"><a name="l00019"></a><span class="lineno">   19</span>&#160;<span class="preprocessor">#include &lt;inc/tm4c123gh6pm.h&gt;</span></div><div class="line"><a name="l00020"></a><span class="lineno">   20</span>&#160;</div><div class="line"><a name="l00024"></a><span class="lineno">   24</span>&#160;<span class="keywordtype">void</span> <a class="code" href="ir_8h.html#a1e942fcd91f79d49e4ddb8d7e9d3ef95">adc_init</a>();</div><div class="line"><a name="l00025"></a><span class="lineno">   25</span>&#160;</div><div class="line"><a name="l00029"></a><span class="lineno">   29</span>&#160;<span class="keywordtype">int</span> <a class="code" href="ir_8h.html#a5bbea9320798ccfd596c7925f65e7734">ADC_read</a>();</div><div class="line"><a name="l00030"></a><span class="lineno">   30</span>&#160;</div><div class="line"><a name="l00034"></a><span class="lineno">   34</span>&#160;<span class="keywordtype">void</span> <a class="code" href="ir_8h.html#ae93f8650ba123c393dee0fb921eb4dc6">adc_handler</a>();</div><div class="line"><a name="l00035"></a><span class="lineno">   35</span>&#160;</div><div class="line"><a name="l00042"></a><span class="lineno">   42</span>&#160;<span class="keywordtype">int</span> <a class="code" href="ir_8h.html#a7e70a945ffc15434f5310c8684643eb3">getADCReading</a>();</div><div class="line"><a name="l00043"></a><span class="lineno">   43</span>&#160;</div><div class="line"><a name="l00053"></a><span class="lineno">   53</span>&#160;<span class="keywordtype">float</span> <a class="code" href="ir_8h.html#a9350c2275f27f9622b8253d3f2126cb3">ir_convertToDist</a>(<span class="keywordtype">int</span> rawIRValue);</div><div class="ttc" id="ir_8h_html_a7e70a945ffc15434f5310c8684643eb3"><div class="ttname"><a href="ir_8h.html#a7e70a945ffc15434f5310c8684643eb3">getADCReading</a></div><div class="ttdeci">int getADCReading()</div><div class="ttdef"><b>Definition:</b> <a href="ir_8c_source.html#l00082">ir.c:82</a></div></div>
 <div class="ttc" id="ir_8h_html_a5bbea9320798ccfd596c7925f65e7734"><div class="ttname"><a href="ir_8h.html#a5bbea9320798ccfd596c7925f65e7734">ADC_read</a></div><div class="ttdeci">int ADC_read()</div><div class="ttdef"><b>Definition:</b> <a href="ir_8c_source.html#l00073">ir.c:73</a></div></div>
+<div class="ttc" id="timer_8h_html"><div class="ttname"><a href="timer_8h.html">timer.h</a></div><div class="ttdoc">Header file for timer.c Library Functions for pause timer. </div></div>
 <div class="ttc" id="ir_8h_html_ae93f8650ba123c393dee0fb921eb4dc6"><div class="ttname"><a href="ir_8h.html#ae93f8650ba123c393dee0fb921eb4dc6">adc_handler</a></div><div class="ttdeci">void adc_handler()</div><div class="ttdef"><b>Definition:</b> <a href="ir_8c_source.html#l00037">ir.c:37</a></div></div>
 <div class="ttc" id="ir_8h_html_a9350c2275f27f9622b8253d3f2126cb3"><div class="ttname"><a href="ir_8h.html#a9350c2275f27f9622b8253d3f2126cb3">ir_convertToDist</a></div><div class="ttdeci">float ir_convertToDist(int rawIRValue)</div><div class="ttdef"><b>Definition:</b> <a href="ir_8c_source.html#l00087">ir.c:87</a></div></div>
 <div class="ttc" id="ir_8h_html_a1e942fcd91f79d49e4ddb8d7e9d3ef95"><div class="ttname"><a href="ir_8h.html#a1e942fcd91f79d49e4ddb8d7e9d3ef95">adc_init</a></div><div class="ttdeci">void adc_init()</div><div class="ttdef"><b>Definition:</b> <a href="ir_8c_source.html#l00043">ir.c:43</a></div></div>
diff --git a/Doxygen/html/lcd_8c_source.html b/Doxygen/html/lcd_8c_source.html
index 607538eae4278bb4afe02b5ac2616a83a2ef8b1f..16119ae3075770f53a9a903f6d08b49094cece68 100644
--- a/Doxygen/html/lcd_8c_source.html
+++ b/Doxygen/html/lcd_8c_source.html
@@ -92,14 +92,26 @@ $(document).ready(function(){initNavTree('lcd_8c_source.html','');});
 <div class="title">lcd.c</div>  </div>
 </div><!--header-->
 <div class="contents">
-<div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno">    1</span>&#160;</div><div class="line"><a name="l00010"></a><span class="lineno">   10</span>&#160;<span class="preprocessor">#include &quot;lcd.h&quot;</span></div><div class="line"><a name="l00011"></a><span class="lineno">   11</span>&#160;</div><div class="line"><a name="l00012"></a><span class="lineno">   12</span>&#160;<span class="preprocessor">#define BIT0        0x01</span></div><div class="line"><a name="l00013"></a><span class="lineno">   13</span>&#160;<span class="preprocessor">#define BIT1        0x02</span></div><div class="line"><a name="l00014"></a><span class="lineno">   14</span>&#160;<span class="preprocessor">#define BIT2        0x04</span></div><div class="line"><a name="l00015"></a><span class="lineno">   15</span>&#160;<span class="preprocessor">#define BIT3        0x08</span></div><div class="line"><a name="l00016"></a><span class="lineno">   16</span>&#160;<span class="preprocessor">#define BIT4        0x10</span></div><div class="line"><a name="l00017"></a><span class="lineno">   17</span>&#160;<span class="preprocessor">#define BIT5        0x20</span></div><div class="line"><a name="l00018"></a><span class="lineno">   18</span>&#160;<span class="preprocessor">#define BIT6        0x40</span></div><div class="line"><a name="l00019"></a><span class="lineno">   19</span>&#160;<span class="preprocessor">#define BIT7        0x80</span></div><div class="line"><a name="l00020"></a><span class="lineno">   20</span>&#160;</div><div class="line"><a name="l00021"></a><span class="lineno">   21</span>&#160;<span class="comment">//Defines for LCD Control Commands</span></div><div class="line"><a name="l00022"></a><span class="lineno">   22</span>&#160;<span class="preprocessor">#define HD_LCD_CLEAR        0x01</span></div><div class="line"><a name="l00023"></a><span class="lineno">   23</span>&#160;<span class="preprocessor">#define HD_RETURN_HOME      0X02</span></div><div class="line"><a name="l00024"></a><span class="lineno">   24</span>&#160;</div><div class="line"><a name="l00025"></a><span class="lineno">   25</span>&#160;<span class="preprocessor">#define HD_CURSOR_SHIFT_DEC 0X05</span></div><div class="line"><a name="l00026"></a><span class="lineno">   26</span>&#160;<span class="preprocessor">#define HD_CURSOR_SHIFT_INC 0X07</span></div><div class="line"><a name="l00027"></a><span class="lineno">   27</span>&#160;<span class="preprocessor">#define HD_DISPLAY_CONTROL  3</span></div><div class="line"><a name="l00028"></a><span class="lineno">   28</span>&#160;<span class="preprocessor">#define HD_DISPLAY_ON       0x04</span></div><div class="line"><a name="l00029"></a><span class="lineno">   29</span>&#160;<span class="preprocessor">#define HD_CURSOR_ON        0x02</span></div><div class="line"><a name="l00030"></a><span class="lineno">   30</span>&#160;<span class="preprocessor">#define HD_BLINK_ON         0x01</span></div><div class="line"><a name="l00031"></a><span class="lineno">   31</span>&#160;<span class="preprocessor">#define HD_CURSOR_MOVE_LEFT 0x10</span></div><div class="line"><a name="l00032"></a><span class="lineno">   32</span>&#160;<span class="preprocessor">#define HD_CURSOR_MOVE_RIGHT 0x14</span></div><div class="line"><a name="l00033"></a><span class="lineno">   33</span>&#160;<span class="preprocessor">#define HD_DISPLAY_SHIFT_LEFT 0x18</span></div><div class="line"><a name="l00034"></a><span class="lineno">   34</span>&#160;<span class="preprocessor">#define HD_DISPLAY_SHIFT_RIGHT 0x1C</span></div><div class="line"><a name="l00035"></a><span class="lineno">   35</span>&#160;</div><div class="line"><a name="l00036"></a><span class="lineno">   36</span>&#160;<span class="preprocessor">#define LCD_WIDTH 20</span></div><div class="line"><a name="l00037"></a><span class="lineno">   37</span>&#160;<span class="preprocessor">#define LCD_HEIGHT 4</span></div><div class="line"><a name="l00038"></a><span class="lineno">   38</span>&#160;<span class="preprocessor">#define LCD_TOTAL_CHARS (LCD_WIDTH * LCD_HEIGHT)</span></div><div class="line"><a name="l00039"></a><span class="lineno">   39</span>&#160;<span class="preprocessor">#define LCD_DDRAM_WRITE 0x80</span></div><div class="line"><a name="l00040"></a><span class="lineno">   40</span>&#160;<span class="preprocessor">#define LCD_CGRAM_WRITE 0x40</span></div><div class="line"><a name="l00041"></a><span class="lineno">   41</span>&#160;</div><div class="line"><a name="l00042"></a><span class="lineno">   42</span>&#160;<span class="preprocessor">#define EN_PIN      BIT2</span></div><div class="line"><a name="l00043"></a><span class="lineno">   43</span>&#160;<span class="preprocessor">#define RS_PIN      BIT3</span></div><div class="line"><a name="l00044"></a><span class="lineno">   44</span>&#160;<span class="preprocessor">#define RW_PIN      BIT6</span></div><div class="line"><a name="l00045"></a><span class="lineno">   45</span>&#160;<span class="preprocessor">#define LCD_PORT_DATA   GPIO_PORTF_DATA_R</span></div><div class="line"><a name="l00046"></a><span class="lineno">   46</span>&#160;<span class="preprocessor">#define LCD_PORT_CNTRL  GPIO_PORTD_DATA_R</span></div><div class="line"><a name="l00047"></a><span class="lineno">   47</span>&#160;</div><div class="line"><a name="l00048"></a><span class="lineno">   48</span>&#160;<span class="comment">//TODO: Poll Busy Flag</span></div><div class="line"><a name="l00049"></a><span class="lineno">   49</span>&#160;</div><div class="line"><a name="l00050"></a><span class="lineno">   50</span>&#160;<span class="comment">//private function prototypes</span></div><div class="line"><a name="l00051"></a><span class="lineno">   51</span>&#160;</div><div class="line"><a name="l00053"></a><span class="lineno">   53</span>&#160;<span class="keywordtype">void</span> lcd_sendCommand(uint8_t <a class="code" href="movementcommands_8c.html#a91a70b77df95bd8b0830b49a094c2acb">data</a>);</div><div class="line"><a name="l00054"></a><span class="lineno">   54</span>&#160;</div><div class="line"><a name="l00056"></a><span class="lineno">   56</span>&#160;<span class="keywordtype">void</span> lcd_sendNibble(uint8_t theNibble);</div><div class="line"><a name="l00057"></a><span class="lineno">   57</span>&#160;</div><div class="line"><a name="l00058"></a><span class="lineno">   58</span>&#160;<span class="keywordtype">void</span> lcd_init(<span class="keywordtype">void</span>)</div><div class="line"><a name="l00059"></a><span class="lineno">   59</span>&#160;{</div><div class="line"><a name="l00060"></a><span class="lineno">   60</span>&#160;    <span class="comment">//TODO: Remove waitMillis after commands -- poll busy flag in sendCommand</span></div><div class="line"><a name="l00061"></a><span class="lineno">   61</span>&#160;    <span class="keyword">volatile</span> uint32_t i = 0;</div><div class="line"><a name="l00062"></a><span class="lineno">   62</span>&#160;    SYSCTL_RCGCGPIO_R |= BIT3 | BIT5; <span class="comment">//Turn on PORTD, PORTF sys clock</span></div><div class="line"><a name="l00063"></a><span class="lineno">   63</span>&#160;</div><div class="line"><a name="l00064"></a><span class="lineno">   64</span>&#160;    <span class="comment">//Set port to output</span></div><div class="line"><a name="l00065"></a><span class="lineno">   65</span>&#160;    GPIO_PORTF_DIR_R |= 0x1E; <span class="comment">//Pins 1:4</span></div><div class="line"><a name="l00066"></a><span class="lineno">   66</span>&#160;    GPIO_PORTF_DEN_R |= 0x1E;</div><div class="line"><a name="l00067"></a><span class="lineno">   67</span>&#160;</div><div class="line"><a name="l00068"></a><span class="lineno">   68</span>&#160;    GPIO_PORTD_DIR_R |= (EN_PIN | RS_PIN | RW_PIN);</div><div class="line"><a name="l00069"></a><span class="lineno">   69</span>&#160;    GPIO_PORTD_DEN_R |= (EN_PIN | RS_PIN | RW_PIN);</div><div class="line"><a name="l00070"></a><span class="lineno">   70</span>&#160;</div><div class="line"><a name="l00071"></a><span class="lineno">   71</span>&#160;    LCD_PORT_CNTRL &amp;= ~(EN_PIN | RW_PIN | RS_PIN);</div><div class="line"><a name="l00072"></a><span class="lineno">   72</span>&#160;</div><div class="line"><a name="l00073"></a><span class="lineno">   73</span>&#160;    <span class="comment">//Delay 40msec after power applied</span></div><div class="line"><a name="l00074"></a><span class="lineno">   74</span>&#160;    timer_waitMillis(40);</div><div class="line"><a name="l00075"></a><span class="lineno">   75</span>&#160;</div><div class="line"><a name="l00076"></a><span class="lineno">   76</span>&#160;    <span class="comment">//Wake up</span></div><div class="line"><a name="l00077"></a><span class="lineno">   77</span>&#160;    lcd_sendNibble(0x03);</div><div class="line"><a name="l00078"></a><span class="lineno">   78</span>&#160;    timer_waitMillis(5);</div><div class="line"><a name="l00079"></a><span class="lineno">   79</span>&#160;</div><div class="line"><a name="l00080"></a><span class="lineno">   80</span>&#160;    lcd_sendNibble(0x03);</div><div class="line"><a name="l00081"></a><span class="lineno">   81</span>&#160;    timer_waitMicros(160);</div><div class="line"><a name="l00082"></a><span class="lineno">   82</span>&#160;</div><div class="line"><a name="l00083"></a><span class="lineno">   83</span>&#160;    lcd_sendNibble(0x03);</div><div class="line"><a name="l00084"></a><span class="lineno">   84</span>&#160;    timer_waitMicros(160);</div><div class="line"><a name="l00085"></a><span class="lineno">   85</span>&#160;</div><div class="line"><a name="l00086"></a><span class="lineno">   86</span>&#160;    lcd_sendNibble(0x02);           <span class="comment">//Function set 4 bit</span></div><div class="line"><a name="l00087"></a><span class="lineno">   87</span>&#160;    timer_waitMillis(1);</div><div class="line"><a name="l00088"></a><span class="lineno">   88</span>&#160;</div><div class="line"><a name="l00089"></a><span class="lineno">   89</span>&#160;    lcd_sendCommand(0x28);          <span class="comment">//Function 4 bit / 2 lines</span></div><div class="line"><a name="l00090"></a><span class="lineno">   90</span>&#160;    timer_waitMillis(1);</div><div class="line"><a name="l00091"></a><span class="lineno">   91</span>&#160;</div><div class="line"><a name="l00092"></a><span class="lineno">   92</span>&#160;    <span class="comment">//lcd_sendCommand(0x10);            //Set cursor</span></div><div class="line"><a name="l00093"></a><span class="lineno">   93</span>&#160;    <span class="comment">//timer_waitMillis(1);</span></div><div class="line"><a name="l00094"></a><span class="lineno">   94</span>&#160;</div><div class="line"><a name="l00095"></a><span class="lineno">   95</span>&#160;    <span class="comment">//lcd_sendCommand(HD_BLINK_ON | HD_CURSOR_ON | HD_DISPLAY_ON);</span></div><div class="line"><a name="l00096"></a><span class="lineno">   96</span>&#160;    lcd_sendCommand(0x0F);</div><div class="line"><a name="l00097"></a><span class="lineno">   97</span>&#160;    timer_waitMillis(1);</div><div class="line"><a name="l00098"></a><span class="lineno">   98</span>&#160;</div><div class="line"><a name="l00099"></a><span class="lineno">   99</span>&#160;    lcd_sendCommand(0x28);          <span class="comment">//Function 4 bit / 2 lines</span></div><div class="line"><a name="l00100"></a><span class="lineno">  100</span>&#160;    timer_waitMillis(1);</div><div class="line"><a name="l00101"></a><span class="lineno">  101</span>&#160;</div><div class="line"><a name="l00102"></a><span class="lineno">  102</span>&#160;    lcd_sendCommand(0x06);          <span class="comment">//Increment Cursor / No Display Shift</span></div><div class="line"><a name="l00103"></a><span class="lineno">  103</span>&#160;    timer_waitMillis(1);</div><div class="line"><a name="l00104"></a><span class="lineno">  104</span>&#160;</div><div class="line"><a name="l00105"></a><span class="lineno">  105</span>&#160;    lcd_sendCommand(0x01);          <span class="comment">//Return Home</span></div><div class="line"><a name="l00106"></a><span class="lineno">  106</span>&#160;    timer_waitMillis(1);</div><div class="line"><a name="l00107"></a><span class="lineno">  107</span>&#160;</div><div class="line"><a name="l00108"></a><span class="lineno">  108</span>&#160;    lcd_clear();</div><div class="line"><a name="l00109"></a><span class="lineno">  109</span>&#160;    timer_waitMillis(1);</div><div class="line"><a name="l00110"></a><span class="lineno">  110</span>&#160;</div><div class="line"><a name="l00111"></a><span class="lineno">  111</span>&#160;}</div><div class="line"><a name="l00112"></a><span class="lineno">  112</span>&#160;</div><div class="line"><a name="l00114"></a><span class="lineno">  114</span>&#160;<span class="keywordtype">void</span> lcd_putc(<span class="keywordtype">char</span> <a class="code" href="movementcommands_8c.html#a91a70b77df95bd8b0830b49a094c2acb">data</a>)</div><div class="line"><a name="l00115"></a><span class="lineno">  115</span>&#160;{</div><div class="line"><a name="l00116"></a><span class="lineno">  116</span>&#160;    <span class="comment">//Select - Send Data</span></div><div class="line"><a name="l00117"></a><span class="lineno">  117</span>&#160;    LCD_PORT_CNTRL |= RS_PIN;</div><div class="line"><a name="l00118"></a><span class="lineno">  118</span>&#160;    LCD_PORT_CNTRL &amp;= ~(RW_PIN);</div><div class="line"><a name="l00119"></a><span class="lineno">  119</span>&#160;</div><div class="line"><a name="l00120"></a><span class="lineno">  120</span>&#160;    <span class="comment">//Send High nibble</span></div><div class="line"><a name="l00121"></a><span class="lineno">  121</span>&#160;    lcd_sendNibble(<a class="code" href="movementcommands_8c.html#a91a70b77df95bd8b0830b49a094c2acb">data</a> &gt;&gt; 4);</div><div class="line"><a name="l00122"></a><span class="lineno">  122</span>&#160;</div><div class="line"><a name="l00123"></a><span class="lineno">  123</span>&#160;    timer_waitMicros(40);</div><div class="line"><a name="l00124"></a><span class="lineno">  124</span>&#160;</div><div class="line"><a name="l00125"></a><span class="lineno">  125</span>&#160;    <span class="comment">//Send Lower Nibble</span></div><div class="line"><a name="l00126"></a><span class="lineno">  126</span>&#160;    lcd_sendNibble(<a class="code" href="movementcommands_8c.html#a91a70b77df95bd8b0830b49a094c2acb">data</a> &amp; 0x0F);</div><div class="line"><a name="l00127"></a><span class="lineno">  127</span>&#160;</div><div class="line"><a name="l00128"></a><span class="lineno">  128</span>&#160;    <span class="comment">//TODO: Poll Busy flag</span></div><div class="line"><a name="l00129"></a><span class="lineno">  129</span>&#160;}</div><div class="line"><a name="l00130"></a><span class="lineno">  130</span>&#160;</div><div class="line"><a name="l00132"></a><span class="lineno">  132</span>&#160;<span class="keywordtype">void</span> lcd_puts(<span class="keywordtype">char</span> <a class="code" href="movementcommands_8c.html#a91a70b77df95bd8b0830b49a094c2acb">data</a>[])</div><div class="line"><a name="l00133"></a><span class="lineno">  133</span>&#160;{</div><div class="line"><a name="l00134"></a><span class="lineno">  134</span>&#160;    <span class="comment">//While not equal to null</span></div><div class="line"><a name="l00135"></a><span class="lineno">  135</span>&#160;    <span class="keywordflow">while</span> (*<a class="code" href="movementcommands_8c.html#a91a70b77df95bd8b0830b49a094c2acb">data</a> != <span class="charliteral">&#39;\0&#39;</span>)</div><div class="line"><a name="l00136"></a><span class="lineno">  136</span>&#160;    {</div><div class="line"><a name="l00137"></a><span class="lineno">  137</span>&#160;        lcd_putc(*<a class="code" href="movementcommands_8c.html#a91a70b77df95bd8b0830b49a094c2acb">data</a>);</div><div class="line"><a name="l00138"></a><span class="lineno">  138</span>&#160;        <a class="code" href="movementcommands_8c.html#a91a70b77df95bd8b0830b49a094c2acb">data</a>++;</div><div class="line"><a name="l00139"></a><span class="lineno">  139</span>&#160;    }</div><div class="line"><a name="l00140"></a><span class="lineno">  140</span>&#160;}</div><div class="line"><a name="l00141"></a><span class="lineno">  141</span>&#160;</div><div class="line"><a name="l00143"></a><span class="lineno">  143</span>&#160;<span class="keywordtype">void</span> lcd_sendCommand(uint8_t <a class="code" href="movementcommands_8c.html#a91a70b77df95bd8b0830b49a094c2acb">data</a>)</div><div class="line"><a name="l00144"></a><span class="lineno">  144</span>&#160;{</div><div class="line"><a name="l00145"></a><span class="lineno">  145</span>&#160;    <span class="comment">//Enable High</span></div><div class="line"><a name="l00146"></a><span class="lineno">  146</span>&#160;    LCD_PORT_CNTRL |= EN_PIN;</div><div class="line"><a name="l00147"></a><span class="lineno">  147</span>&#160;    LCD_PORT_CNTRL &amp;= ~(RW_PIN | RS_PIN); <span class="comment">// Write Command</span></div><div class="line"><a name="l00148"></a><span class="lineno">  148</span>&#160;</div><div class="line"><a name="l00149"></a><span class="lineno">  149</span>&#160;    <span class="comment">//Send High nibble</span></div><div class="line"><a name="l00150"></a><span class="lineno">  150</span>&#160;    lcd_sendNibble(<a class="code" href="movementcommands_8c.html#a91a70b77df95bd8b0830b49a094c2acb">data</a> &gt;&gt; 4);</div><div class="line"><a name="l00151"></a><span class="lineno">  151</span>&#160;</div><div class="line"><a name="l00152"></a><span class="lineno">  152</span>&#160;    timer_waitMicros(1);</div><div class="line"><a name="l00153"></a><span class="lineno">  153</span>&#160;    <span class="comment">//Send Lower Nibble</span></div><div class="line"><a name="l00154"></a><span class="lineno">  154</span>&#160;    lcd_sendNibble(<a class="code" href="movementcommands_8c.html#a91a70b77df95bd8b0830b49a094c2acb">data</a> &amp; 0x0F);</div><div class="line"><a name="l00155"></a><span class="lineno">  155</span>&#160;</div><div class="line"><a name="l00156"></a><span class="lineno">  156</span>&#160;    <span class="comment">//TODO: Poll Busy Flag</span></div><div class="line"><a name="l00157"></a><span class="lineno">  157</span>&#160;    timer_waitMillis(1);</div><div class="line"><a name="l00158"></a><span class="lineno">  158</span>&#160;}</div><div class="line"><a name="l00159"></a><span class="lineno">  159</span>&#160;</div><div class="line"><a name="l00161"></a><span class="lineno">  161</span>&#160;<span class="keywordtype">void</span> lcd_sendNibble(uint8_t theNibble)</div><div class="line"><a name="l00162"></a><span class="lineno">  162</span>&#160;{</div><div class="line"><a name="l00163"></a><span class="lineno">  163</span>&#160;    LCD_PORT_CNTRL |= EN_PIN;</div><div class="line"><a name="l00164"></a><span class="lineno">  164</span>&#160;    LCD_PORT_DATA |= (theNibble &amp; 0x0F) &lt;&lt; 1; <span class="comment">//PORTD1:4</span></div><div class="line"><a name="l00165"></a><span class="lineno">  165</span>&#160;</div><div class="line"><a name="l00166"></a><span class="lineno">  166</span>&#160;    <span class="comment">//Data Hold time before Clock = 40ns -- Change if faster clock</span></div><div class="line"><a name="l00167"></a><span class="lineno">  167</span>&#160;    timer_waitMicros(10);</div><div class="line"><a name="l00168"></a><span class="lineno">  168</span>&#160;    <span class="comment">//Clock in Data</span></div><div class="line"><a name="l00169"></a><span class="lineno">  169</span>&#160;    LCD_PORT_CNTRL &amp;= ~(EN_PIN);</div><div class="line"><a name="l00170"></a><span class="lineno">  170</span>&#160;</div><div class="line"><a name="l00171"></a><span class="lineno">  171</span>&#160;    timer_waitMicros(10);</div><div class="line"><a name="l00172"></a><span class="lineno">  172</span>&#160;    <span class="comment">//Clear Port</span></div><div class="line"><a name="l00173"></a><span class="lineno">  173</span>&#160;    LCD_PORT_DATA &amp;= ~((0x0F) &lt;&lt; 1);</div><div class="line"><a name="l00174"></a><span class="lineno">  174</span>&#160;}</div><div class="line"><a name="l00175"></a><span class="lineno">  175</span>&#160;</div><div class="line"><a name="l00177"></a><span class="lineno">  177</span>&#160;<span class="keywordtype">void</span> <span class="keyword">inline</span> lcd_clear(<span class="keywordtype">void</span>)</div><div class="line"><a name="l00178"></a><span class="lineno">  178</span>&#160;{</div><div class="line"><a name="l00179"></a><span class="lineno">  179</span>&#160;    lcd_sendCommand(HD_LCD_CLEAR);</div><div class="line"><a name="l00180"></a><span class="lineno">  180</span>&#160;</div><div class="line"><a name="l00181"></a><span class="lineno">  181</span>&#160;    <span class="comment">//This command takes over 1ms to complete</span></div><div class="line"><a name="l00182"></a><span class="lineno">  182</span>&#160;    timer_waitMillis(1);</div><div class="line"><a name="l00183"></a><span class="lineno">  183</span>&#160;</div><div class="line"><a name="l00184"></a><span class="lineno">  184</span>&#160;}</div><div class="line"><a name="l00185"></a><span class="lineno">  185</span>&#160;</div><div class="line"><a name="l00187"></a><span class="lineno">  187</span>&#160;<span class="keywordtype">void</span> <span class="keyword">inline</span> lcd_home(<span class="keywordtype">void</span>)</div><div class="line"><a name="l00188"></a><span class="lineno">  188</span>&#160;{</div><div class="line"><a name="l00189"></a><span class="lineno">  189</span>&#160;    lcd_sendCommand(HD_RETURN_HOME);</div><div class="line"><a name="l00190"></a><span class="lineno">  190</span>&#160;}</div><div class="line"><a name="l00191"></a><span class="lineno">  191</span>&#160;</div><div class="line"><a name="l00193"></a><span class="lineno">  193</span>&#160;<span class="keywordtype">void</span> lcd_gotoLine(uint8_t lineNum)</div><div class="line"><a name="l00194"></a><span class="lineno">  194</span>&#160;{</div><div class="line"><a name="l00195"></a><span class="lineno">  195</span>&#160;</div><div class="line"><a name="l00196"></a><span class="lineno">  196</span>&#160;    <span class="comment">//Address of the four line elements</span></div><div class="line"><a name="l00197"></a><span class="lineno">  197</span>&#160;    <span class="keyword">static</span> <span class="keyword">const</span> uint8_t lineAddress[] = { 0x00, 0x40, 0x14, 0x54 };</div><div class="line"><a name="l00198"></a><span class="lineno">  198</span>&#160;</div><div class="line"><a name="l00199"></a><span class="lineno">  199</span>&#160;    lineNum = (0x03 &amp; (lineNum - 1)); <span class="comment">// Mask input for 0 - 3</span></div><div class="line"><a name="l00200"></a><span class="lineno">  200</span>&#160;    lcd_sendCommand(LCD_DDRAM_WRITE | lineAddress[lineNum]);</div><div class="line"><a name="l00201"></a><span class="lineno">  201</span>&#160;</div><div class="line"><a name="l00202"></a><span class="lineno">  202</span>&#160;}</div><div class="line"><a name="l00203"></a><span class="lineno">  203</span>&#160;</div><div class="line"><a name="l00205"></a><span class="lineno">  205</span>&#160;<span class="keywordtype">void</span> lcd_setCursorPos(uint8_t x, uint8_t y)</div><div class="line"><a name="l00206"></a><span class="lineno">  206</span>&#160;{</div><div class="line"><a name="l00207"></a><span class="lineno">  207</span>&#160;    <span class="keyword">static</span> <span class="keyword">const</span> uint8_t lineAddresses[] = { 0x00, 0x40, 0x14, 0x54 };</div><div class="line"><a name="l00208"></a><span class="lineno">  208</span>&#160;</div><div class="line"><a name="l00209"></a><span class="lineno">  209</span>&#160;    <span class="keywordflow">if</span> (x &gt;= 20 || y &gt;= 4)</div><div class="line"><a name="l00210"></a><span class="lineno">  210</span>&#160;    {</div><div class="line"><a name="l00211"></a><span class="lineno">  211</span>&#160;        <span class="comment">//Invalid coordinates</span></div><div class="line"><a name="l00212"></a><span class="lineno">  212</span>&#160;        <span class="keywordflow">return</span>;</div><div class="line"><a name="l00213"></a><span class="lineno">  213</span>&#160;    }</div><div class="line"><a name="l00214"></a><span class="lineno">  214</span>&#160;</div><div class="line"><a name="l00215"></a><span class="lineno">  215</span>&#160;    <span class="comment">//Compute the location index</span></div><div class="line"><a name="l00216"></a><span class="lineno">  216</span>&#160;    uint8_t index = lineAddresses[y] + x;</div><div class="line"><a name="l00217"></a><span class="lineno">  217</span>&#160;</div><div class="line"><a name="l00218"></a><span class="lineno">  218</span>&#160;    <span class="comment">//Set the cursor index</span></div><div class="line"><a name="l00219"></a><span class="lineno">  219</span>&#160;    lcd_sendCommand(0x80 | index);</div><div class="line"><a name="l00220"></a><span class="lineno">  220</span>&#160;}</div><div class="line"><a name="l00221"></a><span class="lineno">  221</span>&#160;</div><div class="line"><a name="l00223"></a><span class="lineno">  223</span>&#160;</div><div class="line"><a name="l00234"></a><span class="lineno">  234</span>&#160;<span class="keywordtype">void</span> lcd_printf(<span class="keyword">const</span> <span class="keywordtype">char</span> *format, ...)</div><div class="line"><a name="l00235"></a><span class="lineno">  235</span>&#160;{</div><div class="line"><a name="l00236"></a><span class="lineno">  236</span>&#160;    <span class="keyword">static</span> <span class="keywordtype">char</span> lastbuffer[LCD_TOTAL_CHARS + 1];</div><div class="line"><a name="l00237"></a><span class="lineno">  237</span>&#160;</div><div class="line"><a name="l00238"></a><span class="lineno">  238</span>&#160;    <span class="keywordtype">char</span> <a class="code" href="uart_8h.html#aff2566f4c366b48d73479bef43ee4d2e">buffer</a>[LCD_TOTAL_CHARS + 1];</div><div class="line"><a name="l00239"></a><span class="lineno">  239</span>&#160;    va_list arglist;</div><div class="line"><a name="l00240"></a><span class="lineno">  240</span>&#160;    va_start(arglist, format);</div><div class="line"><a name="l00241"></a><span class="lineno">  241</span>&#160;    vsnprintf(<a class="code" href="uart_8h.html#aff2566f4c366b48d73479bef43ee4d2e">buffer</a>, LCD_TOTAL_CHARS + 1, format, arglist);</div><div class="line"><a name="l00242"></a><span class="lineno">  242</span>&#160;</div><div class="line"><a name="l00243"></a><span class="lineno">  243</span>&#160;    <span class="keywordflow">if</span> (!strcmp(lastbuffer, <a class="code" href="uart_8h.html#aff2566f4c366b48d73479bef43ee4d2e">buffer</a>))</div><div class="line"><a name="l00244"></a><span class="lineno">  244</span>&#160;        <span class="keywordflow">return</span>;</div><div class="line"><a name="l00245"></a><span class="lineno">  245</span>&#160;</div><div class="line"><a name="l00246"></a><span class="lineno">  246</span>&#160;    strcpy(lastbuffer, <a class="code" href="uart_8h.html#aff2566f4c366b48d73479bef43ee4d2e">buffer</a>);</div><div class="line"><a name="l00247"></a><span class="lineno">  247</span>&#160;    lcd_clear();</div><div class="line"><a name="l00248"></a><span class="lineno">  248</span>&#160;    <span class="keywordtype">char</span> *str = <a class="code" href="uart_8h.html#aff2566f4c366b48d73479bef43ee4d2e">buffer</a>;</div><div class="line"><a name="l00249"></a><span class="lineno">  249</span>&#160;    <span class="keywordtype">int</span> charnum = 0;</div><div class="line"><a name="l00250"></a><span class="lineno">  250</span>&#160;    <span class="keywordflow">while</span> (*str &amp;&amp; charnum &lt; LCD_TOTAL_CHARS)</div><div class="line"><a name="l00251"></a><span class="lineno">  251</span>&#160;    {</div><div class="line"><a name="l00252"></a><span class="lineno">  252</span>&#160;        <span class="keywordflow">if</span> (*str == <span class="charliteral">&#39;\n&#39;</span>)</div><div class="line"><a name="l00253"></a><span class="lineno">  253</span>&#160;        {</div><div class="line"><a name="l00254"></a><span class="lineno">  254</span>&#160;            <span class="comment">/* fill remainder of line with spaces */</span></div><div class="line"><a name="l00255"></a><span class="lineno">  255</span>&#160;            charnum += LCD_WIDTH - charnum % LCD_WIDTH;</div><div class="line"><a name="l00256"></a><span class="lineno">  256</span>&#160;        }</div><div class="line"><a name="l00257"></a><span class="lineno">  257</span>&#160;        <span class="keywordflow">else</span></div><div class="line"><a name="l00258"></a><span class="lineno">  258</span>&#160;        {</div><div class="line"><a name="l00259"></a><span class="lineno">  259</span>&#160;            lcd_putc(*str);</div><div class="line"><a name="l00260"></a><span class="lineno">  260</span>&#160;            charnum++;</div><div class="line"><a name="l00261"></a><span class="lineno">  261</span>&#160;        }</div><div class="line"><a name="l00262"></a><span class="lineno">  262</span>&#160;</div><div class="line"><a name="l00263"></a><span class="lineno">  263</span>&#160;        str++;</div><div class="line"><a name="l00264"></a><span class="lineno">  264</span>&#160;</div><div class="line"><a name="l00265"></a><span class="lineno">  265</span>&#160;        <span class="comment">/*</span></div><div class="line"><a name="l00266"></a><span class="lineno">  266</span>&#160;<span class="comment">         * The LCD&#39;s lines are not sequential; for future reference, the address are like</span></div><div class="line"><a name="l00267"></a><span class="lineno">  267</span>&#160;<span class="comment">         * 0x00...0x13 : line 1</span></div><div class="line"><a name="l00268"></a><span class="lineno">  268</span>&#160;<span class="comment">         * 0x14...0x27 : line 3</span></div><div class="line"><a name="l00269"></a><span class="lineno">  269</span>&#160;<span class="comment">         * 0x28...0x3F : random junk</span></div><div class="line"><a name="l00270"></a><span class="lineno">  270</span>&#160;<span class="comment">         * 0x40...0x53 : line 2</span></div><div class="line"><a name="l00271"></a><span class="lineno">  271</span>&#160;<span class="comment">         * 0x54...0x68 : line 4</span></div><div class="line"><a name="l00272"></a><span class="lineno">  272</span>&#160;<span class="comment">         *</span></div><div class="line"><a name="l00273"></a><span class="lineno">  273</span>&#160;<span class="comment">         * The cursor position must be reset at the end of every line, otherwise, after writing line 1, it writes line 3 and then nothingness</span></div><div class="line"><a name="l00274"></a><span class="lineno">  274</span>&#160;<span class="comment">         */</span></div><div class="line"><a name="l00275"></a><span class="lineno">  275</span>&#160;</div><div class="line"><a name="l00276"></a><span class="lineno">  276</span>&#160;        <span class="keywordflow">if</span> (charnum % LCD_WIDTH == 0)</div><div class="line"><a name="l00277"></a><span class="lineno">  277</span>&#160;        {</div><div class="line"><a name="l00278"></a><span class="lineno">  278</span>&#160;            <span class="keywordflow">switch</span> (charnum / LCD_WIDTH)</div><div class="line"><a name="l00279"></a><span class="lineno">  279</span>&#160;            {</div><div class="line"><a name="l00280"></a><span class="lineno">  280</span>&#160;            <span class="keywordflow">case</span> 1:</div><div class="line"><a name="l00281"></a><span class="lineno">  281</span>&#160;                lcd_gotoLine(2);</div><div class="line"><a name="l00282"></a><span class="lineno">  282</span>&#160;                <span class="keywordflow">break</span>;</div><div class="line"><a name="l00283"></a><span class="lineno">  283</span>&#160;            <span class="keywordflow">case</span> 2:</div><div class="line"><a name="l00284"></a><span class="lineno">  284</span>&#160;                lcd_gotoLine(3);</div><div class="line"><a name="l00285"></a><span class="lineno">  285</span>&#160;                <span class="keywordflow">break</span>;</div><div class="line"><a name="l00286"></a><span class="lineno">  286</span>&#160;            <span class="keywordflow">case</span> 3:</div><div class="line"><a name="l00287"></a><span class="lineno">  287</span>&#160;                lcd_gotoLine(4);</div><div class="line"><a name="l00288"></a><span class="lineno">  288</span>&#160;            }</div><div class="line"><a name="l00289"></a><span class="lineno">  289</span>&#160;        }</div><div class="line"><a name="l00290"></a><span class="lineno">  290</span>&#160;    }</div><div class="line"><a name="l00291"></a><span class="lineno">  291</span>&#160;    va_end(arglist);</div><div class="line"><a name="l00292"></a><span class="lineno">  292</span>&#160;}</div><div class="line"><a name="l00293"></a><span class="lineno">  293</span>&#160;</div><div class="ttc" id="movementcommands_8c_html_a91a70b77df95bd8b0830b49a094c2acb"><div class="ttname"><a href="movementcommands_8c.html#a91a70b77df95bd8b0830b49a094c2acb">data</a></div><div class="ttdeci">char * data</div><div class="ttdef"><b>Definition:</b> <a href="movementcommands_8c_source.html#l00041">movementcommands.c:41</a></div></div>
-<div class="ttc" id="uart_8h_html_aff2566f4c366b48d73479bef43ee4d2e"><div class="ttname"><a href="uart_8h.html#aff2566f4c366b48d73479bef43ee4d2e">buffer</a></div><div class="ttdeci">char * buffer</div><div class="ttdef"><b>Definition:</b> <a href="uart_8h_source.html#l00029">uart.h:29</a></div></div>
+<a href="lcd_8c.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno">    1</span>&#160;</div><div class="line"><a name="l00012"></a><span class="lineno">   12</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="lcd_8h.html">lcd.h</a>&quot;</span></div><div class="line"><a name="l00013"></a><span class="lineno">   13</span>&#160;</div><div class="line"><a name="l00014"></a><span class="lineno">   14</span>&#160;<span class="preprocessor">#define BIT0        0x01</span></div><div class="line"><a name="l00015"></a><span class="lineno">   15</span>&#160;<span class="preprocessor">#define BIT1        0x02</span></div><div class="line"><a name="l00016"></a><span class="lineno">   16</span>&#160;<span class="preprocessor">#define BIT2        0x04</span></div><div class="line"><a name="l00017"></a><span class="lineno">   17</span>&#160;<span class="preprocessor">#define BIT3        0x08</span></div><div class="line"><a name="l00018"></a><span class="lineno">   18</span>&#160;<span class="preprocessor">#define BIT4        0x10</span></div><div class="line"><a name="l00019"></a><span class="lineno">   19</span>&#160;<span class="preprocessor">#define BIT5        0x20</span></div><div class="line"><a name="l00020"></a><span class="lineno">   20</span>&#160;<span class="preprocessor">#define BIT6        0x40</span></div><div class="line"><a name="l00021"></a><span class="lineno">   21</span>&#160;<span class="preprocessor">#define BIT7        0x80</span></div><div class="line"><a name="l00022"></a><span class="lineno">   22</span>&#160;</div><div class="line"><a name="l00023"></a><span class="lineno">   23</span>&#160;<span class="comment">//Defines for LCD Control Commands</span></div><div class="line"><a name="l00024"></a><span class="lineno">   24</span>&#160;<span class="preprocessor">#define HD_LCD_CLEAR        0x01</span></div><div class="line"><a name="l00025"></a><span class="lineno">   25</span>&#160;<span class="preprocessor">#define HD_RETURN_HOME      0X02</span></div><div class="line"><a name="l00026"></a><span class="lineno">   26</span>&#160;</div><div class="line"><a name="l00027"></a><span class="lineno">   27</span>&#160;<span class="preprocessor">#define HD_CURSOR_SHIFT_DEC 0X05</span></div><div class="line"><a name="l00028"></a><span class="lineno">   28</span>&#160;<span class="preprocessor">#define HD_CURSOR_SHIFT_INC 0X07</span></div><div class="line"><a name="l00029"></a><span class="lineno">   29</span>&#160;<span class="preprocessor">#define HD_DISPLAY_CONTROL  3</span></div><div class="line"><a name="l00030"></a><span class="lineno">   30</span>&#160;<span class="preprocessor">#define HD_DISPLAY_ON       0x04</span></div><div class="line"><a name="l00031"></a><span class="lineno">   31</span>&#160;<span class="preprocessor">#define HD_CURSOR_ON        0x02</span></div><div class="line"><a name="l00032"></a><span class="lineno">   32</span>&#160;<span class="preprocessor">#define HD_BLINK_ON         0x01</span></div><div class="line"><a name="l00033"></a><span class="lineno">   33</span>&#160;<span class="preprocessor">#define HD_CURSOR_MOVE_LEFT 0x10</span></div><div class="line"><a name="l00034"></a><span class="lineno">   34</span>&#160;<span class="preprocessor">#define HD_CURSOR_MOVE_RIGHT 0x14</span></div><div class="line"><a name="l00035"></a><span class="lineno">   35</span>&#160;<span class="preprocessor">#define HD_DISPLAY_SHIFT_LEFT 0x18</span></div><div class="line"><a name="l00036"></a><span class="lineno">   36</span>&#160;<span class="preprocessor">#define HD_DISPLAY_SHIFT_RIGHT 0x1C</span></div><div class="line"><a name="l00037"></a><span class="lineno">   37</span>&#160;</div><div class="line"><a name="l00038"></a><span class="lineno">   38</span>&#160;<span class="preprocessor">#define LCD_WIDTH 20</span></div><div class="line"><a name="l00039"></a><span class="lineno">   39</span>&#160;<span class="preprocessor">#define LCD_HEIGHT 4</span></div><div class="line"><a name="l00040"></a><span class="lineno">   40</span>&#160;<span class="preprocessor">#define LCD_TOTAL_CHARS (LCD_WIDTH * LCD_HEIGHT)</span></div><div class="line"><a name="l00041"></a><span class="lineno">   41</span>&#160;<span class="preprocessor">#define LCD_DDRAM_WRITE 0x80</span></div><div class="line"><a name="l00042"></a><span class="lineno">   42</span>&#160;<span class="preprocessor">#define LCD_CGRAM_WRITE 0x40</span></div><div class="line"><a name="l00043"></a><span class="lineno">   43</span>&#160;</div><div class="line"><a name="l00044"></a><span class="lineno">   44</span>&#160;<span class="preprocessor">#define EN_PIN      BIT2</span></div><div class="line"><a name="l00045"></a><span class="lineno">   45</span>&#160;<span class="preprocessor">#define RS_PIN      BIT3</span></div><div class="line"><a name="l00046"></a><span class="lineno">   46</span>&#160;<span class="preprocessor">#define RW_PIN      BIT6</span></div><div class="line"><a name="l00047"></a><span class="lineno">   47</span>&#160;<span class="preprocessor">#define LCD_PORT_DATA   GPIO_PORTF_DATA_R</span></div><div class="line"><a name="l00048"></a><span class="lineno">   48</span>&#160;<span class="preprocessor">#define LCD_PORT_CNTRL  GPIO_PORTD_DATA_R</span></div><div class="line"><a name="l00049"></a><span class="lineno">   49</span>&#160;</div><div class="line"><a name="l00050"></a><span class="lineno">   50</span>&#160;<span class="comment">//TODO: Poll Busy Flag</span></div><div class="line"><a name="l00051"></a><span class="lineno">   51</span>&#160;</div><div class="line"><a name="l00052"></a><span class="lineno">   52</span>&#160;<span class="comment">//private function prototypes</span></div><div class="line"><a name="l00053"></a><span class="lineno">   53</span>&#160;</div><div class="line"><a name="l00055"></a><span class="lineno">   55</span>&#160;<span class="keywordtype">void</span> <a class="code" href="lcd_8c.html#aa212e4f928275b196e6db53fad2c1a5f">lcd_sendCommand</a>(uint8_t <a class="code" href="main_8c.html#a91a70b77df95bd8b0830b49a094c2acb">data</a>);</div><div class="line"><a name="l00056"></a><span class="lineno">   56</span>&#160;</div><div class="line"><a name="l00058"></a><span class="lineno">   58</span>&#160;<span class="keywordtype">void</span> <a class="code" href="lcd_8c.html#a76885eaba7dbd9863c2ea8bf7113c57f">lcd_sendNibble</a>(uint8_t theNibble);</div><div class="line"><a name="l00059"></a><span class="lineno">   59</span>&#160;</div><div class="line"><a name="l00060"></a><span class="lineno"><a class="line" href="lcd_8h.html#a6842775ba83d166f02b8fef8bb63b1e6">   60</a></span>&#160;<span class="keywordtype">void</span> <a class="code" href="lcd_8c.html#a6842775ba83d166f02b8fef8bb63b1e6">lcd_init</a>(<span class="keywordtype">void</span>)</div><div class="line"><a name="l00061"></a><span class="lineno">   61</span>&#160;{</div><div class="line"><a name="l00062"></a><span class="lineno">   62</span>&#160;    <span class="comment">//TODO: Remove waitMillis after commands -- poll busy flag in sendCommand</span></div><div class="line"><a name="l00063"></a><span class="lineno">   63</span>&#160;    <span class="keyword">volatile</span> uint32_t i = 0;</div><div class="line"><a name="l00064"></a><span class="lineno">   64</span>&#160;    SYSCTL_RCGCGPIO_R |= BIT3 | BIT5; <span class="comment">//Turn on PORTD, PORTF sys clock</span></div><div class="line"><a name="l00065"></a><span class="lineno">   65</span>&#160;</div><div class="line"><a name="l00066"></a><span class="lineno">   66</span>&#160;    <span class="comment">//Set port to output</span></div><div class="line"><a name="l00067"></a><span class="lineno">   67</span>&#160;    GPIO_PORTF_DIR_R |= 0x1E; <span class="comment">//Pins 1:4</span></div><div class="line"><a name="l00068"></a><span class="lineno">   68</span>&#160;    GPIO_PORTF_DEN_R |= 0x1E;</div><div class="line"><a name="l00069"></a><span class="lineno">   69</span>&#160;</div><div class="line"><a name="l00070"></a><span class="lineno">   70</span>&#160;    GPIO_PORTD_DIR_R |= (EN_PIN | RS_PIN | RW_PIN);</div><div class="line"><a name="l00071"></a><span class="lineno">   71</span>&#160;    GPIO_PORTD_DEN_R |= (EN_PIN | RS_PIN | RW_PIN);</div><div class="line"><a name="l00072"></a><span class="lineno">   72</span>&#160;</div><div class="line"><a name="l00073"></a><span class="lineno">   73</span>&#160;    LCD_PORT_CNTRL &amp;= ~(EN_PIN | RW_PIN | RS_PIN);</div><div class="line"><a name="l00074"></a><span class="lineno">   74</span>&#160;</div><div class="line"><a name="l00075"></a><span class="lineno">   75</span>&#160;    <span class="comment">//Delay 40msec after power applied</span></div><div class="line"><a name="l00076"></a><span class="lineno">   76</span>&#160;    <a class="code" href="timer_8c.html#a7e2a3b4520e885e5e7d40fa87e242a75">timer_waitMillis</a>(40);</div><div class="line"><a name="l00077"></a><span class="lineno">   77</span>&#160;</div><div class="line"><a name="l00078"></a><span class="lineno">   78</span>&#160;    <span class="comment">//Wake up</span></div><div class="line"><a name="l00079"></a><span class="lineno">   79</span>&#160;    <a class="code" href="lcd_8c.html#a76885eaba7dbd9863c2ea8bf7113c57f">lcd_sendNibble</a>(0x03);</div><div class="line"><a name="l00080"></a><span class="lineno">   80</span>&#160;    <a class="code" href="timer_8c.html#a7e2a3b4520e885e5e7d40fa87e242a75">timer_waitMillis</a>(5);</div><div class="line"><a name="l00081"></a><span class="lineno">   81</span>&#160;</div><div class="line"><a name="l00082"></a><span class="lineno">   82</span>&#160;    <a class="code" href="lcd_8c.html#a76885eaba7dbd9863c2ea8bf7113c57f">lcd_sendNibble</a>(0x03);</div><div class="line"><a name="l00083"></a><span class="lineno">   83</span>&#160;    timer_waitMicros(160);</div><div class="line"><a name="l00084"></a><span class="lineno">   84</span>&#160;</div><div class="line"><a name="l00085"></a><span class="lineno">   85</span>&#160;    <a class="code" href="lcd_8c.html#a76885eaba7dbd9863c2ea8bf7113c57f">lcd_sendNibble</a>(0x03);</div><div class="line"><a name="l00086"></a><span class="lineno">   86</span>&#160;    timer_waitMicros(160);</div><div class="line"><a name="l00087"></a><span class="lineno">   87</span>&#160;</div><div class="line"><a name="l00088"></a><span class="lineno">   88</span>&#160;    <a class="code" href="lcd_8c.html#a76885eaba7dbd9863c2ea8bf7113c57f">lcd_sendNibble</a>(0x02);           <span class="comment">//Function set 4 bit</span></div><div class="line"><a name="l00089"></a><span class="lineno">   89</span>&#160;    <a class="code" href="timer_8c.html#a7e2a3b4520e885e5e7d40fa87e242a75">timer_waitMillis</a>(1);</div><div class="line"><a name="l00090"></a><span class="lineno">   90</span>&#160;</div><div class="line"><a name="l00091"></a><span class="lineno">   91</span>&#160;    <a class="code" href="lcd_8c.html#aa212e4f928275b196e6db53fad2c1a5f">lcd_sendCommand</a>(0x28);          <span class="comment">//Function 4 bit / 2 lines</span></div><div class="line"><a name="l00092"></a><span class="lineno">   92</span>&#160;    <a class="code" href="timer_8c.html#a7e2a3b4520e885e5e7d40fa87e242a75">timer_waitMillis</a>(1);</div><div class="line"><a name="l00093"></a><span class="lineno">   93</span>&#160;</div><div class="line"><a name="l00094"></a><span class="lineno">   94</span>&#160;    <span class="comment">//lcd_sendCommand(0x10);            //Set cursor</span></div><div class="line"><a name="l00095"></a><span class="lineno">   95</span>&#160;    <span class="comment">//timer_waitMillis(1);</span></div><div class="line"><a name="l00096"></a><span class="lineno">   96</span>&#160;</div><div class="line"><a name="l00097"></a><span class="lineno">   97</span>&#160;    <span class="comment">//lcd_sendCommand(HD_BLINK_ON | HD_CURSOR_ON | HD_DISPLAY_ON);</span></div><div class="line"><a name="l00098"></a><span class="lineno">   98</span>&#160;    <a class="code" href="lcd_8c.html#aa212e4f928275b196e6db53fad2c1a5f">lcd_sendCommand</a>(0x0F);</div><div class="line"><a name="l00099"></a><span class="lineno">   99</span>&#160;    <a class="code" href="timer_8c.html#a7e2a3b4520e885e5e7d40fa87e242a75">timer_waitMillis</a>(1);</div><div class="line"><a name="l00100"></a><span class="lineno">  100</span>&#160;</div><div class="line"><a name="l00101"></a><span class="lineno">  101</span>&#160;    <a class="code" href="lcd_8c.html#aa212e4f928275b196e6db53fad2c1a5f">lcd_sendCommand</a>(0x28);          <span class="comment">//Function 4 bit / 2 lines</span></div><div class="line"><a name="l00102"></a><span class="lineno">  102</span>&#160;    <a class="code" href="timer_8c.html#a7e2a3b4520e885e5e7d40fa87e242a75">timer_waitMillis</a>(1);</div><div class="line"><a name="l00103"></a><span class="lineno">  103</span>&#160;</div><div class="line"><a name="l00104"></a><span class="lineno">  104</span>&#160;    <a class="code" href="lcd_8c.html#aa212e4f928275b196e6db53fad2c1a5f">lcd_sendCommand</a>(0x06);          <span class="comment">//Increment Cursor / No Display Shift</span></div><div class="line"><a name="l00105"></a><span class="lineno">  105</span>&#160;    <a class="code" href="timer_8c.html#a7e2a3b4520e885e5e7d40fa87e242a75">timer_waitMillis</a>(1);</div><div class="line"><a name="l00106"></a><span class="lineno">  106</span>&#160;</div><div class="line"><a name="l00107"></a><span class="lineno">  107</span>&#160;    <a class="code" href="lcd_8c.html#aa212e4f928275b196e6db53fad2c1a5f">lcd_sendCommand</a>(0x01);          <span class="comment">//Return Home</span></div><div class="line"><a name="l00108"></a><span class="lineno">  108</span>&#160;    <a class="code" href="timer_8c.html#a7e2a3b4520e885e5e7d40fa87e242a75">timer_waitMillis</a>(1);</div><div class="line"><a name="l00109"></a><span class="lineno">  109</span>&#160;</div><div class="line"><a name="l00110"></a><span class="lineno">  110</span>&#160;    <a class="code" href="lcd_8c.html#ad235a86241458b1e7b8771688bfdaf9a">lcd_clear</a>();</div><div class="line"><a name="l00111"></a><span class="lineno">  111</span>&#160;    <a class="code" href="timer_8c.html#a7e2a3b4520e885e5e7d40fa87e242a75">timer_waitMillis</a>(1);</div><div class="line"><a name="l00112"></a><span class="lineno">  112</span>&#160;</div><div class="line"><a name="l00113"></a><span class="lineno">  113</span>&#160;}</div><div class="line"><a name="l00114"></a><span class="lineno">  114</span>&#160;</div><div class="line"><a name="l00116"></a><span class="lineno"><a class="line" href="lcd_8h.html#a1b59543ebb020ae74d6bcdf06e2b6d3b">  116</a></span>&#160;<span class="keywordtype">void</span> <a class="code" href="lcd_8c.html#a1b59543ebb020ae74d6bcdf06e2b6d3b">lcd_putc</a>(<span class="keywordtype">char</span> <a class="code" href="main_8c.html#a91a70b77df95bd8b0830b49a094c2acb">data</a>)</div><div class="line"><a name="l00117"></a><span class="lineno">  117</span>&#160;{</div><div class="line"><a name="l00118"></a><span class="lineno">  118</span>&#160;    <span class="comment">//Select - Send Data</span></div><div class="line"><a name="l00119"></a><span class="lineno">  119</span>&#160;    LCD_PORT_CNTRL |= RS_PIN;</div><div class="line"><a name="l00120"></a><span class="lineno">  120</span>&#160;    LCD_PORT_CNTRL &amp;= ~(RW_PIN);</div><div class="line"><a name="l00121"></a><span class="lineno">  121</span>&#160;</div><div class="line"><a name="l00122"></a><span class="lineno">  122</span>&#160;    <span class="comment">//Send High nibble</span></div><div class="line"><a name="l00123"></a><span class="lineno">  123</span>&#160;    <a class="code" href="lcd_8c.html#a76885eaba7dbd9863c2ea8bf7113c57f">lcd_sendNibble</a>(<a class="code" href="main_8c.html#a91a70b77df95bd8b0830b49a094c2acb">data</a> &gt;&gt; 4);</div><div class="line"><a name="l00124"></a><span class="lineno">  124</span>&#160;</div><div class="line"><a name="l00125"></a><span class="lineno">  125</span>&#160;    timer_waitMicros(40);</div><div class="line"><a name="l00126"></a><span class="lineno">  126</span>&#160;</div><div class="line"><a name="l00127"></a><span class="lineno">  127</span>&#160;    <span class="comment">//Send Lower Nibble</span></div><div class="line"><a name="l00128"></a><span class="lineno">  128</span>&#160;    <a class="code" href="lcd_8c.html#a76885eaba7dbd9863c2ea8bf7113c57f">lcd_sendNibble</a>(<a class="code" href="main_8c.html#a91a70b77df95bd8b0830b49a094c2acb">data</a> &amp; 0x0F);</div><div class="line"><a name="l00129"></a><span class="lineno">  129</span>&#160;</div><div class="line"><a name="l00130"></a><span class="lineno">  130</span>&#160;    <span class="comment">//TODO: Poll Busy flag</span></div><div class="line"><a name="l00131"></a><span class="lineno">  131</span>&#160;}</div><div class="line"><a name="l00132"></a><span class="lineno">  132</span>&#160;</div><div class="line"><a name="l00134"></a><span class="lineno"><a class="line" href="lcd_8h.html#ac68eefc9e6fce7854f6319aba267ff58">  134</a></span>&#160;<span class="keywordtype">void</span> <a class="code" href="lcd_8c.html#ac68eefc9e6fce7854f6319aba267ff58">lcd_puts</a>(<span class="keywordtype">char</span> <a class="code" href="main_8c.html#a91a70b77df95bd8b0830b49a094c2acb">data</a>[])</div><div class="line"><a name="l00135"></a><span class="lineno">  135</span>&#160;{</div><div class="line"><a name="l00136"></a><span class="lineno">  136</span>&#160;    <span class="comment">//While not equal to null</span></div><div class="line"><a name="l00137"></a><span class="lineno">  137</span>&#160;    <span class="keywordflow">while</span> (*<a class="code" href="main_8c.html#a91a70b77df95bd8b0830b49a094c2acb">data</a> != <span class="charliteral">&#39;\0&#39;</span>)</div><div class="line"><a name="l00138"></a><span class="lineno">  138</span>&#160;    {</div><div class="line"><a name="l00139"></a><span class="lineno">  139</span>&#160;        <a class="code" href="lcd_8c.html#a1b59543ebb020ae74d6bcdf06e2b6d3b">lcd_putc</a>(*<a class="code" href="main_8c.html#a91a70b77df95bd8b0830b49a094c2acb">data</a>);</div><div class="line"><a name="l00140"></a><span class="lineno">  140</span>&#160;        <a class="code" href="main_8c.html#a91a70b77df95bd8b0830b49a094c2acb">data</a>++;</div><div class="line"><a name="l00141"></a><span class="lineno">  141</span>&#160;    }</div><div class="line"><a name="l00142"></a><span class="lineno">  142</span>&#160;}</div><div class="line"><a name="l00143"></a><span class="lineno">  143</span>&#160;</div><div class="line"><a name="l00145"></a><span class="lineno"><a class="line" href="lcd_8c.html#aa212e4f928275b196e6db53fad2c1a5f">  145</a></span>&#160;<span class="keywordtype">void</span> <a class="code" href="lcd_8c.html#aa212e4f928275b196e6db53fad2c1a5f">lcd_sendCommand</a>(uint8_t <a class="code" href="main_8c.html#a91a70b77df95bd8b0830b49a094c2acb">data</a>)</div><div class="line"><a name="l00146"></a><span class="lineno">  146</span>&#160;{</div><div class="line"><a name="l00147"></a><span class="lineno">  147</span>&#160;    <span class="comment">//Enable High</span></div><div class="line"><a name="l00148"></a><span class="lineno">  148</span>&#160;    LCD_PORT_CNTRL |= EN_PIN;</div><div class="line"><a name="l00149"></a><span class="lineno">  149</span>&#160;    LCD_PORT_CNTRL &amp;= ~(RW_PIN | RS_PIN); <span class="comment">// Write Command</span></div><div class="line"><a name="l00150"></a><span class="lineno">  150</span>&#160;</div><div class="line"><a name="l00151"></a><span class="lineno">  151</span>&#160;    <span class="comment">//Send High nibble</span></div><div class="line"><a name="l00152"></a><span class="lineno">  152</span>&#160;    <a class="code" href="lcd_8c.html#a76885eaba7dbd9863c2ea8bf7113c57f">lcd_sendNibble</a>(<a class="code" href="main_8c.html#a91a70b77df95bd8b0830b49a094c2acb">data</a> &gt;&gt; 4);</div><div class="line"><a name="l00153"></a><span class="lineno">  153</span>&#160;</div><div class="line"><a name="l00154"></a><span class="lineno">  154</span>&#160;    timer_waitMicros(1);</div><div class="line"><a name="l00155"></a><span class="lineno">  155</span>&#160;    <span class="comment">//Send Lower Nibble</span></div><div class="line"><a name="l00156"></a><span class="lineno">  156</span>&#160;    <a class="code" href="lcd_8c.html#a76885eaba7dbd9863c2ea8bf7113c57f">lcd_sendNibble</a>(<a class="code" href="main_8c.html#a91a70b77df95bd8b0830b49a094c2acb">data</a> &amp; 0x0F);</div><div class="line"><a name="l00157"></a><span class="lineno">  157</span>&#160;</div><div class="line"><a name="l00158"></a><span class="lineno">  158</span>&#160;    <span class="comment">//TODO: Poll Busy Flag</span></div><div class="line"><a name="l00159"></a><span class="lineno">  159</span>&#160;    <a class="code" href="timer_8c.html#a7e2a3b4520e885e5e7d40fa87e242a75">timer_waitMillis</a>(1);</div><div class="line"><a name="l00160"></a><span class="lineno">  160</span>&#160;}</div><div class="line"><a name="l00161"></a><span class="lineno">  161</span>&#160;</div><div class="line"><a name="l00163"></a><span class="lineno"><a class="line" href="lcd_8c.html#a76885eaba7dbd9863c2ea8bf7113c57f">  163</a></span>&#160;<span class="keywordtype">void</span> <a class="code" href="lcd_8c.html#a76885eaba7dbd9863c2ea8bf7113c57f">lcd_sendNibble</a>(uint8_t theNibble)</div><div class="line"><a name="l00164"></a><span class="lineno">  164</span>&#160;{</div><div class="line"><a name="l00165"></a><span class="lineno">  165</span>&#160;    LCD_PORT_CNTRL |= EN_PIN;</div><div class="line"><a name="l00166"></a><span class="lineno">  166</span>&#160;    LCD_PORT_DATA |= (theNibble &amp; 0x0F) &lt;&lt; 1; <span class="comment">//PORTD1:4</span></div><div class="line"><a name="l00167"></a><span class="lineno">  167</span>&#160;</div><div class="line"><a name="l00168"></a><span class="lineno">  168</span>&#160;    <span class="comment">//Data Hold time before Clock = 40ns -- Change if faster clock</span></div><div class="line"><a name="l00169"></a><span class="lineno">  169</span>&#160;    timer_waitMicros(10);</div><div class="line"><a name="l00170"></a><span class="lineno">  170</span>&#160;    <span class="comment">//Clock in Data</span></div><div class="line"><a name="l00171"></a><span class="lineno">  171</span>&#160;    LCD_PORT_CNTRL &amp;= ~(EN_PIN);</div><div class="line"><a name="l00172"></a><span class="lineno">  172</span>&#160;</div><div class="line"><a name="l00173"></a><span class="lineno">  173</span>&#160;    timer_waitMicros(10);</div><div class="line"><a name="l00174"></a><span class="lineno">  174</span>&#160;    <span class="comment">//Clear Port</span></div><div class="line"><a name="l00175"></a><span class="lineno">  175</span>&#160;    LCD_PORT_DATA &amp;= ~((0x0F) &lt;&lt; 1);</div><div class="line"><a name="l00176"></a><span class="lineno">  176</span>&#160;}</div><div class="line"><a name="l00177"></a><span class="lineno">  177</span>&#160;</div><div class="line"><a name="l00179"></a><span class="lineno"><a class="line" href="lcd_8h.html#ad235a86241458b1e7b8771688bfdaf9a">  179</a></span>&#160;<span class="keywordtype">void</span> <span class="keyword">inline</span> <a class="code" href="lcd_8c.html#ad235a86241458b1e7b8771688bfdaf9a">lcd_clear</a>(<span class="keywordtype">void</span>)</div><div class="line"><a name="l00180"></a><span class="lineno">  180</span>&#160;{</div><div class="line"><a name="l00181"></a><span class="lineno">  181</span>&#160;    <a class="code" href="lcd_8c.html#aa212e4f928275b196e6db53fad2c1a5f">lcd_sendCommand</a>(HD_LCD_CLEAR);</div><div class="line"><a name="l00182"></a><span class="lineno">  182</span>&#160;</div><div class="line"><a name="l00183"></a><span class="lineno">  183</span>&#160;    <span class="comment">//This command takes over 1ms to complete</span></div><div class="line"><a name="l00184"></a><span class="lineno">  184</span>&#160;    <a class="code" href="timer_8c.html#a7e2a3b4520e885e5e7d40fa87e242a75">timer_waitMillis</a>(1);</div><div class="line"><a name="l00185"></a><span class="lineno">  185</span>&#160;</div><div class="line"><a name="l00186"></a><span class="lineno">  186</span>&#160;}</div><div class="line"><a name="l00187"></a><span class="lineno">  187</span>&#160;</div><div class="line"><a name="l00189"></a><span class="lineno"><a class="line" href="lcd_8h.html#a3aabf730aa4e0393bb5c959583c00a8e">  189</a></span>&#160;<span class="keywordtype">void</span> <span class="keyword">inline</span> <a class="code" href="lcd_8c.html#a3aabf730aa4e0393bb5c959583c00a8e">lcd_home</a>(<span class="keywordtype">void</span>)</div><div class="line"><a name="l00190"></a><span class="lineno">  190</span>&#160;{</div><div class="line"><a name="l00191"></a><span class="lineno">  191</span>&#160;    <a class="code" href="lcd_8c.html#aa212e4f928275b196e6db53fad2c1a5f">lcd_sendCommand</a>(HD_RETURN_HOME);</div><div class="line"><a name="l00192"></a><span class="lineno">  192</span>&#160;}</div><div class="line"><a name="l00193"></a><span class="lineno">  193</span>&#160;</div><div class="line"><a name="l00195"></a><span class="lineno"><a class="line" href="lcd_8h.html#a22493bdaca08073e3014decb34db38a6">  195</a></span>&#160;<span class="keywordtype">void</span> <a class="code" href="lcd_8c.html#a22493bdaca08073e3014decb34db38a6">lcd_gotoLine</a>(uint8_t lineNum)</div><div class="line"><a name="l00196"></a><span class="lineno">  196</span>&#160;{</div><div class="line"><a name="l00197"></a><span class="lineno">  197</span>&#160;</div><div class="line"><a name="l00198"></a><span class="lineno">  198</span>&#160;    <span class="comment">//Address of the four line elements</span></div><div class="line"><a name="l00199"></a><span class="lineno">  199</span>&#160;    <span class="keyword">static</span> <span class="keyword">const</span> uint8_t lineAddress[] = { 0x00, 0x40, 0x14, 0x54 };</div><div class="line"><a name="l00200"></a><span class="lineno">  200</span>&#160;</div><div class="line"><a name="l00201"></a><span class="lineno">  201</span>&#160;    lineNum = (0x03 &amp; (lineNum - 1)); <span class="comment">// Mask input for 0 - 3</span></div><div class="line"><a name="l00202"></a><span class="lineno">  202</span>&#160;    <a class="code" href="lcd_8c.html#aa212e4f928275b196e6db53fad2c1a5f">lcd_sendCommand</a>(LCD_DDRAM_WRITE | lineAddress[lineNum]);</div><div class="line"><a name="l00203"></a><span class="lineno">  203</span>&#160;</div><div class="line"><a name="l00204"></a><span class="lineno">  204</span>&#160;}</div><div class="line"><a name="l00205"></a><span class="lineno">  205</span>&#160;</div><div class="line"><a name="l00207"></a><span class="lineno"><a class="line" href="lcd_8h.html#a785788c99ba018918ffb2db717773fa4">  207</a></span>&#160;<span class="keywordtype">void</span> <a class="code" href="lcd_8c.html#a785788c99ba018918ffb2db717773fa4">lcd_setCursorPos</a>(uint8_t x, uint8_t y)</div><div class="line"><a name="l00208"></a><span class="lineno">  208</span>&#160;{</div><div class="line"><a name="l00209"></a><span class="lineno">  209</span>&#160;    <span class="keyword">static</span> <span class="keyword">const</span> uint8_t lineAddresses[] = { 0x00, 0x40, 0x14, 0x54 };</div><div class="line"><a name="l00210"></a><span class="lineno">  210</span>&#160;</div><div class="line"><a name="l00211"></a><span class="lineno">  211</span>&#160;    <span class="keywordflow">if</span> (x &gt;= 20 || y &gt;= 4)</div><div class="line"><a name="l00212"></a><span class="lineno">  212</span>&#160;    {</div><div class="line"><a name="l00213"></a><span class="lineno">  213</span>&#160;        <span class="comment">//Invalid coordinates</span></div><div class="line"><a name="l00214"></a><span class="lineno">  214</span>&#160;        <span class="keywordflow">return</span>;</div><div class="line"><a name="l00215"></a><span class="lineno">  215</span>&#160;    }</div><div class="line"><a name="l00216"></a><span class="lineno">  216</span>&#160;</div><div class="line"><a name="l00217"></a><span class="lineno">  217</span>&#160;    <span class="comment">//Compute the location index</span></div><div class="line"><a name="l00218"></a><span class="lineno">  218</span>&#160;    uint8_t index = lineAddresses[y] + x;</div><div class="line"><a name="l00219"></a><span class="lineno">  219</span>&#160;</div><div class="line"><a name="l00220"></a><span class="lineno">  220</span>&#160;    <span class="comment">//Set the cursor index</span></div><div class="line"><a name="l00221"></a><span class="lineno">  221</span>&#160;    <a class="code" href="lcd_8c.html#aa212e4f928275b196e6db53fad2c1a5f">lcd_sendCommand</a>(0x80 | index);</div><div class="line"><a name="l00222"></a><span class="lineno">  222</span>&#160;}</div><div class="line"><a name="l00223"></a><span class="lineno">  223</span>&#160;</div><div class="line"><a name="l00225"></a><span class="lineno">  225</span>&#160;</div><div class="line"><a name="l00236"></a><span class="lineno"><a class="line" href="lcd_8h.html#a3c12e31b86febabfc7e62b51e0b9dc30">  236</a></span>&#160;<span class="keywordtype">void</span> <a class="code" href="lcd_8c.html#a3c12e31b86febabfc7e62b51e0b9dc30">lcd_printf</a>(<span class="keyword">const</span> <span class="keywordtype">char</span> *format, ...)</div><div class="line"><a name="l00237"></a><span class="lineno">  237</span>&#160;{</div><div class="line"><a name="l00238"></a><span class="lineno">  238</span>&#160;    <span class="keyword">static</span> <span class="keywordtype">char</span> lastbuffer[LCD_TOTAL_CHARS + 1];</div><div class="line"><a name="l00239"></a><span class="lineno">  239</span>&#160;</div><div class="line"><a name="l00240"></a><span class="lineno">  240</span>&#160;    <span class="keywordtype">char</span> <a class="code" href="uart_8h.html#aff2566f4c366b48d73479bef43ee4d2e">buffer</a>[LCD_TOTAL_CHARS + 1];</div><div class="line"><a name="l00241"></a><span class="lineno">  241</span>&#160;    va_list arglist;</div><div class="line"><a name="l00242"></a><span class="lineno">  242</span>&#160;    va_start(arglist, format);</div><div class="line"><a name="l00243"></a><span class="lineno">  243</span>&#160;    vsnprintf(<a class="code" href="uart_8h.html#aff2566f4c366b48d73479bef43ee4d2e">buffer</a>, LCD_TOTAL_CHARS + 1, format, arglist);</div><div class="line"><a name="l00244"></a><span class="lineno">  244</span>&#160;</div><div class="line"><a name="l00245"></a><span class="lineno">  245</span>&#160;    <span class="keywordflow">if</span> (!strcmp(lastbuffer, <a class="code" href="uart_8h.html#aff2566f4c366b48d73479bef43ee4d2e">buffer</a>))</div><div class="line"><a name="l00246"></a><span class="lineno">  246</span>&#160;        <span class="keywordflow">return</span>;</div><div class="line"><a name="l00247"></a><span class="lineno">  247</span>&#160;</div><div class="line"><a name="l00248"></a><span class="lineno">  248</span>&#160;    strcpy(lastbuffer, <a class="code" href="uart_8h.html#aff2566f4c366b48d73479bef43ee4d2e">buffer</a>);</div><div class="line"><a name="l00249"></a><span class="lineno">  249</span>&#160;    <a class="code" href="lcd_8c.html#ad235a86241458b1e7b8771688bfdaf9a">lcd_clear</a>();</div><div class="line"><a name="l00250"></a><span class="lineno">  250</span>&#160;    <span class="keywordtype">char</span> *str = <a class="code" href="uart_8h.html#aff2566f4c366b48d73479bef43ee4d2e">buffer</a>;</div><div class="line"><a name="l00251"></a><span class="lineno">  251</span>&#160;    <span class="keywordtype">int</span> charnum = 0;</div><div class="line"><a name="l00252"></a><span class="lineno">  252</span>&#160;    <span class="keywordflow">while</span> (*str &amp;&amp; charnum &lt; LCD_TOTAL_CHARS)</div><div class="line"><a name="l00253"></a><span class="lineno">  253</span>&#160;    {</div><div class="line"><a name="l00254"></a><span class="lineno">  254</span>&#160;        <span class="keywordflow">if</span> (*str == <span class="charliteral">&#39;\n&#39;</span>)</div><div class="line"><a name="l00255"></a><span class="lineno">  255</span>&#160;        {</div><div class="line"><a name="l00256"></a><span class="lineno">  256</span>&#160;            <span class="comment">/* fill remainder of line with spaces */</span></div><div class="line"><a name="l00257"></a><span class="lineno">  257</span>&#160;            charnum += LCD_WIDTH - charnum % LCD_WIDTH;</div><div class="line"><a name="l00258"></a><span class="lineno">  258</span>&#160;        }</div><div class="line"><a name="l00259"></a><span class="lineno">  259</span>&#160;        <span class="keywordflow">else</span></div><div class="line"><a name="l00260"></a><span class="lineno">  260</span>&#160;        {</div><div class="line"><a name="l00261"></a><span class="lineno">  261</span>&#160;            <a class="code" href="lcd_8c.html#a1b59543ebb020ae74d6bcdf06e2b6d3b">lcd_putc</a>(*str);</div><div class="line"><a name="l00262"></a><span class="lineno">  262</span>&#160;            charnum++;</div><div class="line"><a name="l00263"></a><span class="lineno">  263</span>&#160;        }</div><div class="line"><a name="l00264"></a><span class="lineno">  264</span>&#160;</div><div class="line"><a name="l00265"></a><span class="lineno">  265</span>&#160;        str++;</div><div class="line"><a name="l00266"></a><span class="lineno">  266</span>&#160;</div><div class="line"><a name="l00267"></a><span class="lineno">  267</span>&#160;        <span class="comment">/*</span></div><div class="line"><a name="l00268"></a><span class="lineno">  268</span>&#160;<span class="comment">         * The LCD&#39;s lines are not sequential; for future reference, the address are like</span></div><div class="line"><a name="l00269"></a><span class="lineno">  269</span>&#160;<span class="comment">         * 0x00...0x13 : line 1</span></div><div class="line"><a name="l00270"></a><span class="lineno">  270</span>&#160;<span class="comment">         * 0x14...0x27 : line 3</span></div><div class="line"><a name="l00271"></a><span class="lineno">  271</span>&#160;<span class="comment">         * 0x28...0x3F : random junk</span></div><div class="line"><a name="l00272"></a><span class="lineno">  272</span>&#160;<span class="comment">         * 0x40...0x53 : line 2</span></div><div class="line"><a name="l00273"></a><span class="lineno">  273</span>&#160;<span class="comment">         * 0x54...0x68 : line 4</span></div><div class="line"><a name="l00274"></a><span class="lineno">  274</span>&#160;<span class="comment">         *</span></div><div class="line"><a name="l00275"></a><span class="lineno">  275</span>&#160;<span class="comment">         * The cursor position must be reset at the end of every line, otherwise, after writing line 1, it writes line 3 and then nothingness</span></div><div class="line"><a name="l00276"></a><span class="lineno">  276</span>&#160;<span class="comment">         */</span></div><div class="line"><a name="l00277"></a><span class="lineno">  277</span>&#160;</div><div class="line"><a name="l00278"></a><span class="lineno">  278</span>&#160;        <span class="keywordflow">if</span> (charnum % LCD_WIDTH == 0)</div><div class="line"><a name="l00279"></a><span class="lineno">  279</span>&#160;        {</div><div class="line"><a name="l00280"></a><span class="lineno">  280</span>&#160;            <span class="keywordflow">switch</span> (charnum / LCD_WIDTH)</div><div class="line"><a name="l00281"></a><span class="lineno">  281</span>&#160;            {</div><div class="line"><a name="l00282"></a><span class="lineno">  282</span>&#160;            <span class="keywordflow">case</span> 1:</div><div class="line"><a name="l00283"></a><span class="lineno">  283</span>&#160;                <a class="code" href="lcd_8c.html#a22493bdaca08073e3014decb34db38a6">lcd_gotoLine</a>(2);</div><div class="line"><a name="l00284"></a><span class="lineno">  284</span>&#160;                <span class="keywordflow">break</span>;</div><div class="line"><a name="l00285"></a><span class="lineno">  285</span>&#160;            <span class="keywordflow">case</span> 2:</div><div class="line"><a name="l00286"></a><span class="lineno">  286</span>&#160;                <a class="code" href="lcd_8c.html#a22493bdaca08073e3014decb34db38a6">lcd_gotoLine</a>(3);</div><div class="line"><a name="l00287"></a><span class="lineno">  287</span>&#160;                <span class="keywordflow">break</span>;</div><div class="line"><a name="l00288"></a><span class="lineno">  288</span>&#160;            <span class="keywordflow">case</span> 3:</div><div class="line"><a name="l00289"></a><span class="lineno">  289</span>&#160;                <a class="code" href="lcd_8c.html#a22493bdaca08073e3014decb34db38a6">lcd_gotoLine</a>(4);</div><div class="line"><a name="l00290"></a><span class="lineno">  290</span>&#160;            }</div><div class="line"><a name="l00291"></a><span class="lineno">  291</span>&#160;        }</div><div class="line"><a name="l00292"></a><span class="lineno">  292</span>&#160;    }</div><div class="line"><a name="l00293"></a><span class="lineno">  293</span>&#160;    va_end(arglist);</div><div class="line"><a name="l00294"></a><span class="lineno">  294</span>&#160;}</div><div class="line"><a name="l00295"></a><span class="lineno">  295</span>&#160;</div><div class="ttc" id="lcd_8c_html_a785788c99ba018918ffb2db717773fa4"><div class="ttname"><a href="lcd_8c.html#a785788c99ba018918ffb2db717773fa4">lcd_setCursorPos</a></div><div class="ttdeci">void lcd_setCursorPos(uint8_t x, uint8_t y)</div><div class="ttdoc">Set cursor position - top left is 0,0. </div><div class="ttdef"><b>Definition:</b> <a href="lcd_8c_source.html#l00207">lcd.c:207</a></div></div>
+<div class="ttc" id="lcd_8c_html_a22493bdaca08073e3014decb34db38a6"><div class="ttname"><a href="lcd_8c.html#a22493bdaca08073e3014decb34db38a6">lcd_gotoLine</a></div><div class="ttdeci">void lcd_gotoLine(uint8_t lineNum)</div><div class="ttdoc">Goto 0 indexed line number. </div><div class="ttdef"><b>Definition:</b> <a href="lcd_8c_source.html#l00195">lcd.c:195</a></div></div>
+<div class="ttc" id="lcd_8c_html_a1b59543ebb020ae74d6bcdf06e2b6d3b"><div class="ttname"><a href="lcd_8c.html#a1b59543ebb020ae74d6bcdf06e2b6d3b">lcd_putc</a></div><div class="ttdeci">void lcd_putc(char data)</div><div class="ttdoc">Send Char to LCD. </div><div class="ttdef"><b>Definition:</b> <a href="lcd_8c_source.html#l00116">lcd.c:116</a></div></div>
+<div class="ttc" id="lcd_8c_html_ad235a86241458b1e7b8771688bfdaf9a"><div class="ttname"><a href="lcd_8c.html#ad235a86241458b1e7b8771688bfdaf9a">lcd_clear</a></div><div class="ttdeci">void lcd_clear(void)</div><div class="ttdoc">Clear LCD Screen. </div><div class="ttdef"><b>Definition:</b> <a href="lcd_8c_source.html#l00179">lcd.c:179</a></div></div>
+<div class="ttc" id="lcd_8c_html_a3aabf730aa4e0393bb5c959583c00a8e"><div class="ttname"><a href="lcd_8c.html#a3aabf730aa4e0393bb5c959583c00a8e">lcd_home</a></div><div class="ttdeci">void lcd_home(void)</div><div class="ttdoc">Return Cursor to 0,0. </div><div class="ttdef"><b>Definition:</b> <a href="lcd_8c_source.html#l00189">lcd.c:189</a></div></div>
+<div class="ttc" id="timer_8c_html_a7e2a3b4520e885e5e7d40fa87e242a75"><div class="ttname"><a href="timer_8c.html#a7e2a3b4520e885e5e7d40fa87e242a75">timer_waitMillis</a></div><div class="ttdeci">void timer_waitMillis(uint32_t millis)</div><div class="ttdef"><b>Definition:</b> <a href="timer_8c_source.html#l00015">timer.c:15</a></div></div>
+<div class="ttc" id="main_8c_html_a91a70b77df95bd8b0830b49a094c2acb"><div class="ttname"><a href="main_8c.html#a91a70b77df95bd8b0830b49a094c2acb">data</a></div><div class="ttdeci">char * data</div><div class="ttdef"><b>Definition:</b> <a href="main_8c_source.html#l00028">main.c:28</a></div></div>
+<div class="ttc" id="lcd_8c_html_a76885eaba7dbd9863c2ea8bf7113c57f"><div class="ttname"><a href="lcd_8c.html#a76885eaba7dbd9863c2ea8bf7113c57f">lcd_sendNibble</a></div><div class="ttdeci">void lcd_sendNibble(uint8_t theNibble)</div><div class="ttdoc">Send 4bit nibble to lcd, then clear port. </div><div class="ttdef"><b>Definition:</b> <a href="lcd_8c_source.html#l00163">lcd.c:163</a></div></div>
+<div class="ttc" id="lcd_8c_html_aa212e4f928275b196e6db53fad2c1a5f"><div class="ttname"><a href="lcd_8c.html#aa212e4f928275b196e6db53fad2c1a5f">lcd_sendCommand</a></div><div class="ttdeci">void lcd_sendCommand(uint8_t data)</div><div class="ttdoc">Send command to LCD - Position, Clear, Etc. </div><div class="ttdef"><b>Definition:</b> <a href="lcd_8c_source.html#l00145">lcd.c:145</a></div></div>
+<div class="ttc" id="lcd_8h_html"><div class="ttname"><a href="lcd_8h.html">lcd.h</a></div><div class="ttdoc">Header file for lcd.c. </div></div>
+<div class="ttc" id="uart_8h_html_aff2566f4c366b48d73479bef43ee4d2e"><div class="ttname"><a href="uart_8h.html#aff2566f4c366b48d73479bef43ee4d2e">buffer</a></div><div class="ttdeci">char * buffer</div><div class="ttdef"><b>Definition:</b> <a href="uart_8h_source.html#l00028">uart.h:28</a></div></div>
+<div class="ttc" id="lcd_8c_html_a6842775ba83d166f02b8fef8bb63b1e6"><div class="ttname"><a href="lcd_8c.html#a6842775ba83d166f02b8fef8bb63b1e6">lcd_init</a></div><div class="ttdeci">void lcd_init(void)</div><div class="ttdoc">Initialize PORTB0:6 to Communicate with LCD. </div><div class="ttdef"><b>Definition:</b> <a href="lcd_8c_source.html#l00060">lcd.c:60</a></div></div>
+<div class="ttc" id="lcd_8c_html_ac68eefc9e6fce7854f6319aba267ff58"><div class="ttname"><a href="lcd_8c.html#ac68eefc9e6fce7854f6319aba267ff58">lcd_puts</a></div><div class="ttdeci">void lcd_puts(char data[])</div><div class="ttdoc">Send Character array to LCD. </div><div class="ttdef"><b>Definition:</b> <a href="lcd_8c_source.html#l00134">lcd.c:134</a></div></div>
+<div class="ttc" id="lcd_8c_html_a3c12e31b86febabfc7e62b51e0b9dc30"><div class="ttname"><a href="lcd_8c.html#a3c12e31b86febabfc7e62b51e0b9dc30">lcd_printf</a></div><div class="ttdeci">void lcd_printf(const char *format,...)</div><div class="ttdoc">Print a formatted string to the LCD screen. </div><div class="ttdef"><b>Definition:</b> <a href="lcd_8c_source.html#l00236">lcd.c:236</a></div></div>
 </div><!-- fragment --></div><!-- contents -->
 </div><!-- doc-content -->
 <!-- start footer part -->
 <div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
   <ul>
-    <li class="navelem"><a class="el" href="dir_d522931ffa1371640980b621734a4381.html">Users</a></li><li class="navelem"><a class="el" href="dir_b324cbc34babe304b9f95739e7202679.html">DonsterLaptop</a></li><li class="navelem"><a class="el" href="dir_e6c4902d624d7a1fd4d40064e095ec38.html">Documents</a></li><li class="navelem"><a class="el" href="dir_cca09f556bdef987ef90adb7ab596965.html">Robot288</a></li><li class="navelem"><a class="el" href="dir_cffdf54b453800c407ef4c3ceba2b426.html">cpre288_generalpurposeautomatedrobot</a></li><li class="navelem"><a class="el" href="dir_c2e164765e5a314cc0de59b27d9c89cd.html">Robot</a></li><li class="navelem"><a class="el" href="dir_af5038295b43384ea1ab75d71dfd6e0e.html">Utils</a></li><li class="navelem"><b>lcd.c</b></li>
+    <li class="navelem"><a class="el" href="dir_d522931ffa1371640980b621734a4381.html">Users</a></li><li class="navelem"><a class="el" href="dir_b324cbc34babe304b9f95739e7202679.html">DonsterLaptop</a></li><li class="navelem"><a class="el" href="dir_e6c4902d624d7a1fd4d40064e095ec38.html">Documents</a></li><li class="navelem"><a class="el" href="dir_cca09f556bdef987ef90adb7ab596965.html">Robot288</a></li><li class="navelem"><a class="el" href="dir_cffdf54b453800c407ef4c3ceba2b426.html">cpre288_generalpurposeautomatedrobot</a></li><li class="navelem"><a class="el" href="dir_c2e164765e5a314cc0de59b27d9c89cd.html">Robot</a></li><li class="navelem"><a class="el" href="dir_af5038295b43384ea1ab75d71dfd6e0e.html">Utils</a></li><li class="navelem"><a class="el" href="lcd_8c.html">lcd.c</a></li>
     <li class="footer">Generated by
     <a href="http://www.doxygen.org/index.html">
     <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.14 </li>
diff --git a/Doxygen/html/lcd_8h_source.html b/Doxygen/html/lcd_8h_source.html
index 4c86824329fe1c0cb55c5015128c0b39ba3b26e5..38f2c7fd2555f92103185ce8dfad29b039765958 100644
--- a/Doxygen/html/lcd_8h_source.html
+++ b/Doxygen/html/lcd_8h_source.html
@@ -92,13 +92,22 @@ $(document).ready(function(){initNavTree('lcd_8h_source.html','');});
 <div class="title">lcd.h</div>  </div>
 </div><!--header-->
 <div class="contents">
-<div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno">    1</span>&#160;<span class="comment">/*</span></div><div class="line"><a name="l00002"></a><span class="lineno">    2</span>&#160;<span class="comment"> *      @file   lcd.h</span></div><div class="line"><a name="l00003"></a><span class="lineno">    3</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00004"></a><span class="lineno">    4</span>&#160;<span class="comment"> *      @brief  Header file for lcd.c</span></div><div class="line"><a name="l00005"></a><span class="lineno">    5</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00006"></a><span class="lineno">    6</span>&#160;<span class="comment"> *  Created on: Mar 1, 2016</span></div><div class="line"><a name="l00007"></a><span class="lineno">    7</span>&#160;<span class="comment"> *      Author: nbergman</span></div><div class="line"><a name="l00008"></a><span class="lineno">    8</span>&#160;<span class="comment"> */</span></div><div class="line"><a name="l00009"></a><span class="lineno">    9</span>&#160;</div><div class="line"><a name="l00010"></a><span class="lineno">   10</span>&#160;<span class="preprocessor">#ifndef LCD_H_</span></div><div class="line"><a name="l00011"></a><span class="lineno">   11</span>&#160;<span class="preprocessor">#define LCD_H_</span></div><div class="line"><a name="l00012"></a><span class="lineno">   12</span>&#160;</div><div class="line"><a name="l00013"></a><span class="lineno">   13</span>&#160;<span class="preprocessor">#include &lt;stdio.h&gt;</span></div><div class="line"><a name="l00014"></a><span class="lineno">   14</span>&#160;<span class="preprocessor">#include &lt;stdint.h&gt;</span></div><div class="line"><a name="l00015"></a><span class="lineno">   15</span>&#160;<span class="preprocessor">#include &lt;string.h&gt;</span></div><div class="line"><a name="l00016"></a><span class="lineno">   16</span>&#160;<span class="preprocessor">#include &lt;inc/tm4c123gh6pm.h&gt;</span></div><div class="line"><a name="l00017"></a><span class="lineno">   17</span>&#160;<span class="preprocessor">#include &quot;timer.h&quot;</span></div><div class="line"><a name="l00018"></a><span class="lineno">   18</span>&#160;</div><div class="line"><a name="l00020"></a><span class="lineno">   20</span>&#160;<span class="keywordtype">void</span> lcd_init(<span class="keywordtype">void</span>);</div><div class="line"><a name="l00021"></a><span class="lineno">   21</span>&#160;</div><div class="line"><a name="l00023"></a><span class="lineno">   23</span>&#160;<span class="keywordtype">void</span> lcd_putc(<span class="keywordtype">char</span> <a class="code" href="movementcommands_8c.html#a91a70b77df95bd8b0830b49a094c2acb">data</a>);</div><div class="line"><a name="l00024"></a><span class="lineno">   24</span>&#160;</div><div class="line"><a name="l00026"></a><span class="lineno">   26</span>&#160;<span class="keywordtype">void</span> lcd_puts(<span class="keywordtype">char</span> <a class="code" href="movementcommands_8c.html#a91a70b77df95bd8b0830b49a094c2acb">data</a>[]);</div><div class="line"><a name="l00027"></a><span class="lineno">   27</span>&#160;</div><div class="line"><a name="l00029"></a><span class="lineno">   29</span>&#160;<span class="keywordtype">void</span> <span class="keyword">inline</span> lcd_clear(<span class="keywordtype">void</span>);</div><div class="line"><a name="l00030"></a><span class="lineno">   30</span>&#160;</div><div class="line"><a name="l00032"></a><span class="lineno">   32</span>&#160;<span class="keywordtype">void</span> <span class="keyword">inline</span> lcd_home(<span class="keywordtype">void</span>);</div><div class="line"><a name="l00033"></a><span class="lineno">   33</span>&#160;</div><div class="line"><a name="l00035"></a><span class="lineno">   35</span>&#160;<span class="keywordtype">void</span> lcd_gotoLine(uint8_t lineNum);</div><div class="line"><a name="l00036"></a><span class="lineno">   36</span>&#160;</div><div class="line"><a name="l00038"></a><span class="lineno">   38</span>&#160;<span class="keywordtype">void</span> lcd_setCursorPos(uint8_t x, uint8_t y);</div><div class="line"><a name="l00039"></a><span class="lineno">   39</span>&#160;</div><div class="line"><a name="l00040"></a><span class="lineno">   40</span>&#160;<span class="keywordtype">void</span> lcd_printf(<span class="keyword">const</span> <span class="keywordtype">char</span> *format, ...);</div><div class="line"><a name="l00041"></a><span class="lineno">   41</span>&#160;</div><div class="line"><a name="l00042"></a><span class="lineno">   42</span>&#160;<span class="preprocessor">#endif </span><span class="comment">/* LCD_H_ */</span><span class="preprocessor"></span></div><div class="ttc" id="movementcommands_8c_html_a91a70b77df95bd8b0830b49a094c2acb"><div class="ttname"><a href="movementcommands_8c.html#a91a70b77df95bd8b0830b49a094c2acb">data</a></div><div class="ttdeci">char * data</div><div class="ttdef"><b>Definition:</b> <a href="movementcommands_8c_source.html#l00041">movementcommands.c:41</a></div></div>
+<a href="lcd_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno">    1</span>&#160;</div><div class="line"><a name="l00011"></a><span class="lineno">   11</span>&#160;<span class="preprocessor">#ifndef LCD_H_</span></div><div class="line"><a name="l00012"></a><span class="lineno">   12</span>&#160;<span class="preprocessor">#define LCD_H_</span></div><div class="line"><a name="l00013"></a><span class="lineno">   13</span>&#160;</div><div class="line"><a name="l00014"></a><span class="lineno">   14</span>&#160;<span class="preprocessor">#include &lt;stdio.h&gt;</span></div><div class="line"><a name="l00015"></a><span class="lineno">   15</span>&#160;<span class="preprocessor">#include &lt;stdint.h&gt;</span></div><div class="line"><a name="l00016"></a><span class="lineno">   16</span>&#160;<span class="preprocessor">#include &lt;string.h&gt;</span></div><div class="line"><a name="l00017"></a><span class="lineno">   17</span>&#160;<span class="preprocessor">#include &lt;inc/tm4c123gh6pm.h&gt;</span></div><div class="line"><a name="l00018"></a><span class="lineno">   18</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="timer_8h.html">timer.h</a>&quot;</span></div><div class="line"><a name="l00019"></a><span class="lineno">   19</span>&#160;</div><div class="line"><a name="l00021"></a><span class="lineno">   21</span>&#160;<span class="keywordtype">void</span> <a class="code" href="lcd_8h.html#a6842775ba83d166f02b8fef8bb63b1e6">lcd_init</a>(<span class="keywordtype">void</span>);</div><div class="line"><a name="l00022"></a><span class="lineno">   22</span>&#160;</div><div class="line"><a name="l00024"></a><span class="lineno">   24</span>&#160;<span class="keywordtype">void</span> <a class="code" href="lcd_8h.html#a1b59543ebb020ae74d6bcdf06e2b6d3b">lcd_putc</a>(<span class="keywordtype">char</span> <a class="code" href="main_8c.html#a91a70b77df95bd8b0830b49a094c2acb">data</a>);</div><div class="line"><a name="l00025"></a><span class="lineno">   25</span>&#160;</div><div class="line"><a name="l00027"></a><span class="lineno">   27</span>&#160;<span class="keywordtype">void</span> <a class="code" href="lcd_8h.html#ac68eefc9e6fce7854f6319aba267ff58">lcd_puts</a>(<span class="keywordtype">char</span> <a class="code" href="main_8c.html#a91a70b77df95bd8b0830b49a094c2acb">data</a>[]);</div><div class="line"><a name="l00028"></a><span class="lineno">   28</span>&#160;</div><div class="line"><a name="l00030"></a><span class="lineno">   30</span>&#160;<span class="keywordtype">void</span> <span class="keyword">inline</span> <a class="code" href="lcd_8h.html#ad235a86241458b1e7b8771688bfdaf9a">lcd_clear</a>(<span class="keywordtype">void</span>);</div><div class="line"><a name="l00031"></a><span class="lineno">   31</span>&#160;</div><div class="line"><a name="l00033"></a><span class="lineno">   33</span>&#160;<span class="keywordtype">void</span> <span class="keyword">inline</span> <a class="code" href="lcd_8h.html#a3aabf730aa4e0393bb5c959583c00a8e">lcd_home</a>(<span class="keywordtype">void</span>);</div><div class="line"><a name="l00034"></a><span class="lineno">   34</span>&#160;</div><div class="line"><a name="l00036"></a><span class="lineno">   36</span>&#160;<span class="keywordtype">void</span> <a class="code" href="lcd_8h.html#a22493bdaca08073e3014decb34db38a6">lcd_gotoLine</a>(uint8_t lineNum);</div><div class="line"><a name="l00037"></a><span class="lineno">   37</span>&#160;</div><div class="line"><a name="l00039"></a><span class="lineno">   39</span>&#160;<span class="keywordtype">void</span> <a class="code" href="lcd_8h.html#a785788c99ba018918ffb2db717773fa4">lcd_setCursorPos</a>(uint8_t x, uint8_t y);</div><div class="line"><a name="l00040"></a><span class="lineno">   40</span>&#160;</div><div class="line"><a name="l00041"></a><span class="lineno">   41</span>&#160;<span class="keywordtype">void</span> <a class="code" href="lcd_8h.html#a3c12e31b86febabfc7e62b51e0b9dc30">lcd_printf</a>(<span class="keyword">const</span> <span class="keywordtype">char</span> *format, ...);</div><div class="line"><a name="l00042"></a><span class="lineno">   42</span>&#160;</div><div class="line"><a name="l00043"></a><span class="lineno">   43</span>&#160;<span class="preprocessor">#endif </span><span class="comment">/* LCD_H_ */</span><span class="preprocessor"></span></div><div class="ttc" id="lcd_8h_html_a6842775ba83d166f02b8fef8bb63b1e6"><div class="ttname"><a href="lcd_8h.html#a6842775ba83d166f02b8fef8bb63b1e6">lcd_init</a></div><div class="ttdeci">void lcd_init(void)</div><div class="ttdoc">Initialize PORTB0:6 to Communicate with LCD. </div><div class="ttdef"><b>Definition:</b> <a href="lcd_8c_source.html#l00060">lcd.c:60</a></div></div>
+<div class="ttc" id="lcd_8h_html_a22493bdaca08073e3014decb34db38a6"><div class="ttname"><a href="lcd_8h.html#a22493bdaca08073e3014decb34db38a6">lcd_gotoLine</a></div><div class="ttdeci">void lcd_gotoLine(uint8_t lineNum)</div><div class="ttdoc">Goto Line on LCD - 0 Indexed. </div><div class="ttdef"><b>Definition:</b> <a href="lcd_8c_source.html#l00195">lcd.c:195</a></div></div>
+<div class="ttc" id="timer_8h_html"><div class="ttname"><a href="timer_8h.html">timer.h</a></div><div class="ttdoc">Header file for timer.c Library Functions for pause timer. </div></div>
+<div class="ttc" id="lcd_8h_html_a3c12e31b86febabfc7e62b51e0b9dc30"><div class="ttname"><a href="lcd_8h.html#a3c12e31b86febabfc7e62b51e0b9dc30">lcd_printf</a></div><div class="ttdeci">void lcd_printf(const char *format,...)</div><div class="ttdoc">Print a formatted string to the LCD screen. </div><div class="ttdef"><b>Definition:</b> <a href="lcd_8c_source.html#l00236">lcd.c:236</a></div></div>
+<div class="ttc" id="lcd_8h_html_ad235a86241458b1e7b8771688bfdaf9a"><div class="ttname"><a href="lcd_8h.html#ad235a86241458b1e7b8771688bfdaf9a">lcd_clear</a></div><div class="ttdeci">void lcd_clear(void)</div><div class="ttdoc">Clear LCD Screen. </div><div class="ttdef"><b>Definition:</b> <a href="lcd_8c_source.html#l00179">lcd.c:179</a></div></div>
+<div class="ttc" id="main_8c_html_a91a70b77df95bd8b0830b49a094c2acb"><div class="ttname"><a href="main_8c.html#a91a70b77df95bd8b0830b49a094c2acb">data</a></div><div class="ttdeci">char * data</div><div class="ttdef"><b>Definition:</b> <a href="main_8c_source.html#l00028">main.c:28</a></div></div>
+<div class="ttc" id="lcd_8h_html_a785788c99ba018918ffb2db717773fa4"><div class="ttname"><a href="lcd_8h.html#a785788c99ba018918ffb2db717773fa4">lcd_setCursorPos</a></div><div class="ttdeci">void lcd_setCursorPos(uint8_t x, uint8_t y)</div><div class="ttdoc">Set cursor position - top left is 0,0. </div><div class="ttdef"><b>Definition:</b> <a href="lcd_8c_source.html#l00207">lcd.c:207</a></div></div>
+<div class="ttc" id="lcd_8h_html_ac68eefc9e6fce7854f6319aba267ff58"><div class="ttname"><a href="lcd_8h.html#ac68eefc9e6fce7854f6319aba267ff58">lcd_puts</a></div><div class="ttdeci">void lcd_puts(char data[])</div><div class="ttdoc">Send Character array to LCD. </div><div class="ttdef"><b>Definition:</b> <a href="lcd_8c_source.html#l00134">lcd.c:134</a></div></div>
+<div class="ttc" id="lcd_8h_html_a3aabf730aa4e0393bb5c959583c00a8e"><div class="ttname"><a href="lcd_8h.html#a3aabf730aa4e0393bb5c959583c00a8e">lcd_home</a></div><div class="ttdeci">void lcd_home(void)</div><div class="ttdoc">Return Cursor to 0,0. </div><div class="ttdef"><b>Definition:</b> <a href="lcd_8c_source.html#l00189">lcd.c:189</a></div></div>
+<div class="ttc" id="lcd_8h_html_a1b59543ebb020ae74d6bcdf06e2b6d3b"><div class="ttname"><a href="lcd_8h.html#a1b59543ebb020ae74d6bcdf06e2b6d3b">lcd_putc</a></div><div class="ttdeci">void lcd_putc(char data)</div><div class="ttdoc">Send Char to LCD. </div><div class="ttdef"><b>Definition:</b> <a href="lcd_8c_source.html#l00116">lcd.c:116</a></div></div>
 </div><!-- fragment --></div><!-- contents -->
 </div><!-- doc-content -->
 <!-- start footer part -->
 <div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
   <ul>
-    <li class="navelem"><a class="el" href="dir_d522931ffa1371640980b621734a4381.html">Users</a></li><li class="navelem"><a class="el" href="dir_b324cbc34babe304b9f95739e7202679.html">DonsterLaptop</a></li><li class="navelem"><a class="el" href="dir_e6c4902d624d7a1fd4d40064e095ec38.html">Documents</a></li><li class="navelem"><a class="el" href="dir_cca09f556bdef987ef90adb7ab596965.html">Robot288</a></li><li class="navelem"><a class="el" href="dir_cffdf54b453800c407ef4c3ceba2b426.html">cpre288_generalpurposeautomatedrobot</a></li><li class="navelem"><a class="el" href="dir_c2e164765e5a314cc0de59b27d9c89cd.html">Robot</a></li><li class="navelem"><a class="el" href="dir_af5038295b43384ea1ab75d71dfd6e0e.html">Utils</a></li><li class="navelem"><b>lcd.h</b></li>
+    <li class="navelem"><a class="el" href="dir_d522931ffa1371640980b621734a4381.html">Users</a></li><li class="navelem"><a class="el" href="dir_b324cbc34babe304b9f95739e7202679.html">DonsterLaptop</a></li><li class="navelem"><a class="el" href="dir_e6c4902d624d7a1fd4d40064e095ec38.html">Documents</a></li><li class="navelem"><a class="el" href="dir_cca09f556bdef987ef90adb7ab596965.html">Robot288</a></li><li class="navelem"><a class="el" href="dir_cffdf54b453800c407ef4c3ceba2b426.html">cpre288_generalpurposeautomatedrobot</a></li><li class="navelem"><a class="el" href="dir_c2e164765e5a314cc0de59b27d9c89cd.html">Robot</a></li><li class="navelem"><a class="el" href="dir_af5038295b43384ea1ab75d71dfd6e0e.html">Utils</a></li><li class="navelem"><a class="el" href="lcd_8h.html">lcd.h</a></li>
     <li class="footer">Generated by
     <a href="http://www.doxygen.org/index.html">
     <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.14 </li>
diff --git a/Doxygen/html/main_8c_source.html b/Doxygen/html/main_8c_source.html
index ff450c9de11becb3f446a5fa5d68f95d130629c3..fed520e589dbec5c5960dbb422d7d378955a55c1 100644
--- a/Doxygen/html/main_8c_source.html
+++ b/Doxygen/html/main_8c_source.html
@@ -92,24 +92,35 @@ $(document).ready(function(){initNavTree('main_8c_source.html','');});
 <div class="title">main.c</div>  </div>
 </div><!--header-->
 <div class="contents">
-<div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno">    1</span>&#160;<span class="preprocessor">#include &lt;Utils/timer.h&gt;</span></div><div class="line"><a name="l00002"></a><span class="lineno">    2</span>&#160;<span class="preprocessor">#include &lt;utils/timer4.h&gt;</span></div><div class="line"><a name="l00003"></a><span class="lineno">    3</span>&#160;<span class="preprocessor">#include &lt;Utils/lcd.h&gt;</span></div><div class="line"><a name="l00004"></a><span class="lineno">    4</span>&#160;<span class="preprocessor">#include &lt;Utils/open_interface.h&gt;</span></div><div class="line"><a name="l00005"></a><span class="lineno">    5</span>&#160;<span class="preprocessor">#include &lt;<a class="code" href="movementcommands_8h.html">Navigation/movementcommands.h</a>&gt;</span></div><div class="line"><a name="l00006"></a><span class="lineno">    6</span>&#160;<span class="preprocessor">#include &lt;<a class="code" href="uart_8h.html">Communication/uart.h</a>&gt;</span></div><div class="line"><a name="l00007"></a><span class="lineno">    7</span>&#160;<span class="preprocessor">#include &lt;<a class="code" href="_sound_8h.html">Utils/Sound.h</a>&gt;</span></div><div class="line"><a name="l00008"></a><span class="lineno">    8</span>&#160;<span class="preprocessor">#include &lt;<a class="code" href="sweep__sensor_8h.html">Sensor/sweep_sensor.h</a>&gt;</span></div><div class="line"><a name="l00009"></a><span class="lineno">    9</span>&#160;<span class="preprocessor">#include &lt;<a class="code" href="cliff__sensor_8h.html">Sensor/cliff_sensor.h</a>&gt;</span></div><div class="line"><a name="l00013"></a><span class="lineno">   13</span>&#160;<span class="keywordtype">char</span> * <a class="code" href="movementcommands_8c.html#a91a70b77df95bd8b0830b49a094c2acb">data</a>;</div><div class="line"><a name="l00014"></a><span class="lineno">   14</span>&#160;</div><div class="line"><a name="l00015"></a><span class="lineno">   15</span>&#160;<span class="keywordtype">int</span> main(<span class="keywordtype">void</span>)</div><div class="line"><a name="l00016"></a><span class="lineno">   16</span>&#160;{</div><div class="line"><a name="l00018"></a><span class="lineno">   18</span>&#160;    clock_timer_init();</div><div class="line"><a name="l00019"></a><span class="lineno">   19</span>&#160;    <a class="code" href="movementcommands_8c.html#a91a70b77df95bd8b0830b49a094c2acb">data</a> = malloc(100);</div><div class="line"><a name="l00020"></a><span class="lineno">   20</span>&#160;    <a class="code" href="structoi__t.html">oi_t</a> *<span class="keyword">self</span> = oi_alloc();</div><div class="line"><a name="l00021"></a><span class="lineno">   21</span>&#160;    lcd_init();</div><div class="line"><a name="l00022"></a><span class="lineno">   22</span>&#160;    <a class="code" href="sweep__sensor_8c.html#aa858319b04e153550a93648468db3171">sweep_init</a>();</div><div class="line"><a name="l00023"></a><span class="lineno">   23</span>&#160;    oi_init(<span class="keyword">self</span>);</div><div class="line"><a name="l00024"></a><span class="lineno">   24</span>&#160;    oi_update(<span class="keyword">self</span>);</div><div class="line"><a name="l00025"></a><span class="lineno">   25</span>&#160;    oi_update(<span class="keyword">self</span>);</div><div class="line"><a name="l00026"></a><span class="lineno">   26</span>&#160;</div><div class="line"><a name="l00027"></a><span class="lineno">   27</span>&#160;    <span class="keywordtype">int</span> command = 0;</div><div class="line"><a name="l00028"></a><span class="lineno">   28</span>&#160;    <span class="keywordtype">int</span> degree = 0;</div><div class="line"><a name="l00029"></a><span class="lineno">   29</span>&#160;    <span class="keywordtype">int</span> distance = 0;</div><div class="line"><a name="l00030"></a><span class="lineno">   30</span>&#160;</div><div class="line"><a name="l00031"></a><span class="lineno">   31</span>&#160;</div><div class="line"><a name="l00033"></a><span class="lineno">   33</span>&#160;    <span class="keywordflow">while</span> (1)</div><div class="line"><a name="l00034"></a><span class="lineno">   34</span>&#160;    {</div><div class="line"><a name="l00035"></a><span class="lineno">   35</span>&#160;        oi_update(<span class="keyword">self</span>);</div><div class="line"><a name="l00036"></a><span class="lineno">   36</span>&#160;        <span class="comment">//Parse the last command line read from the UART</span></div><div class="line"><a name="l00037"></a><span class="lineno">   37</span>&#160;        <a class="code" href="movementcommands_8c.html#af24f4aea581508f13025bf49cdb40b44">parseCommand</a>(<a class="code" href="uart_8c.html#a46df527ddf86c0ebfe750173a41dd4d3">getLastLine</a>(), &amp;command, &amp;degree, &amp;distance);</div><div class="line"><a name="l00038"></a><span class="lineno">   38</span>&#160;</div><div class="line"><a name="l00039"></a><span class="lineno">   39</span>&#160;        <span class="comment">//Check the Ground for ending Zone, and it send it out to the GUI if it does</span></div><div class="line"><a name="l00040"></a><span class="lineno">   40</span>&#160;        <span class="keywordflow">if</span> (<a class="code" href="cliff__sensor_8c.html#aea9fa7041962d3fde3549a56f8855162">checkGroundSensors</a>(<span class="keyword">self</span>) == 3)</div><div class="line"><a name="l00041"></a><span class="lineno">   41</span>&#160;        {</div><div class="line"><a name="l00042"></a><span class="lineno">   42</span>&#160;            snprintf(<a class="code" href="movementcommands_8c.html#a91a70b77df95bd8b0830b49a094c2acb">data</a>, 100, <span class="stringliteral">&quot;z %d %d %d %d\0&quot;</span>, <a class="code" href="cliff__sensor_8c.html#a1fa03a7f9a05ace91224ea610463e871">cs_getTerrain</a>(<span class="keyword">self</span>, LEFT),</div><div class="line"><a name="l00043"></a><span class="lineno">   43</span>&#160;                     <a class="code" href="cliff__sensor_8c.html#a1fa03a7f9a05ace91224ea610463e871">cs_getTerrain</a>(<span class="keyword">self</span>, FRONT_LEFT),</div><div class="line"><a name="l00044"></a><span class="lineno">   44</span>&#160;                     <a class="code" href="cliff__sensor_8c.html#a1fa03a7f9a05ace91224ea610463e871">cs_getTerrain</a>(<span class="keyword">self</span>, FRONT_RIGHT),</div><div class="line"><a name="l00045"></a><span class="lineno">   45</span>&#160;                     <a class="code" href="cliff__sensor_8c.html#a1fa03a7f9a05ace91224ea610463e871">cs_getTerrain</a>(<span class="keyword">self</span>, RIGHT));</div><div class="line"><a name="l00046"></a><span class="lineno">   46</span>&#160;            <a class="code" href="uart_8c.html#af96d1ce52b8a52eabc606489d31351e9">uart_sendStr</a>(<a class="code" href="movementcommands_8c.html#a91a70b77df95bd8b0830b49a094c2acb">data</a>);</div><div class="line"><a name="l00047"></a><span class="lineno">   47</span>&#160;        }</div><div class="line"><a name="l00048"></a><span class="lineno">   48</span>&#160;</div><div class="line"><a name="l00049"></a><span class="lineno">   49</span>&#160;        <span class="keywordflow">if</span> (command == MOVE)</div><div class="line"><a name="l00050"></a><span class="lineno">   50</span>&#160;        {</div><div class="line"><a name="l00051"></a><span class="lineno">   51</span>&#160;            <span class="comment">//robot is turned then moved forward until it hits a boundary, cliff, or bumps something, then sends robot position to gui</span></div><div class="line"><a name="l00052"></a><span class="lineno">   52</span>&#160;            <a class="code" href="movementcommands_8c.html#a363d2d2063890c9731f0d9222060cd48">turnRobotDegree</a>(<span class="keyword">self</span>, degree);</div><div class="line"><a name="l00053"></a><span class="lineno">   53</span>&#160;            <a class="code" href="movementcommands_8c.html#ac19e613d92cdd54f047e591fc0c99b07">moveRobotDistance</a>(<span class="keyword">self</span>, distance);</div><div class="line"><a name="l00054"></a><span class="lineno">   54</span>&#160;            <a class="code" href="uart_8c.html#a8be40187644dacbc28cabbc673a36bff">uart_clear</a>(); <span class="comment">//We read the command, clear it off the UART</span></div><div class="line"><a name="l00055"></a><span class="lineno">   55</span>&#160;            <span class="keywordtype">float</span> x, y, h;</div><div class="line"><a name="l00056"></a><span class="lineno">   56</span>&#160;            <a class="code" href="movementcommands_8c.html#a35f84947bb1dd6f437da3949f213c373">getPosition</a>(&amp;x, &amp;y, &amp;h); <span class="comment">//Read the current robot position</span></div><div class="line"><a name="l00057"></a><span class="lineno">   57</span>&#160;            memset(<a class="code" href="movementcommands_8c.html#a91a70b77df95bd8b0830b49a094c2acb">data</a>, 0, 100);</div><div class="line"><a name="l00058"></a><span class="lineno">   58</span>&#160;            snprintf(<a class="code" href="movementcommands_8c.html#a91a70b77df95bd8b0830b49a094c2acb">data</a>, 100, <span class="stringliteral">&quot;x %.2f y %.2f h %.2f\n\0&quot;</span>, x, y, h); <span class="comment">//Send the robot position to GUI</span></div><div class="line"><a name="l00059"></a><span class="lineno">   59</span>&#160;            <a class="code" href="uart_8c.html#af96d1ce52b8a52eabc606489d31351e9">uart_sendStr</a>(<a class="code" href="movementcommands_8c.html#a91a70b77df95bd8b0830b49a094c2acb">data</a>);</div><div class="line"><a name="l00060"></a><span class="lineno">   60</span>&#160;        }</div><div class="line"><a name="l00061"></a><span class="lineno">   61</span>&#160;        <span class="keywordflow">else</span> <span class="keywordflow">if</span> (command == MOVE_IGNORE)</div><div class="line"><a name="l00062"></a><span class="lineno">   62</span>&#160;        {</div><div class="line"><a name="l00063"></a><span class="lineno">   63</span>&#160;            <span class="comment">//Same as the MOVE command but with the robot ignoring the boundary</span></div><div class="line"><a name="l00064"></a><span class="lineno">   64</span>&#160;            <a class="code" href="movementcommands_8c.html#a363d2d2063890c9731f0d9222060cd48">turnRobotDegree</a>(<span class="keyword">self</span>, degree);</div><div class="line"><a name="l00065"></a><span class="lineno">   65</span>&#160;            <a class="code" href="movementcommands_8c.html#aec736dae690e0a896c49d05b27c9b970">moveRobotDistanceIgnore</a>(<span class="keyword">self</span>, distance);</div><div class="line"><a name="l00066"></a><span class="lineno">   66</span>&#160;            <a class="code" href="uart_8c.html#a8be40187644dacbc28cabbc673a36bff">uart_clear</a>(); <span class="comment">//We read the command, clear it off the UART</span></div><div class="line"><a name="l00067"></a><span class="lineno">   67</span>&#160;            <span class="keywordtype">float</span> x, y, h;</div><div class="line"><a name="l00068"></a><span class="lineno">   68</span>&#160;            <a class="code" href="movementcommands_8c.html#a35f84947bb1dd6f437da3949f213c373">getPosition</a>(&amp;x, &amp;y, &amp;h); <span class="comment">//Read the current robot position</span></div><div class="line"><a name="l00069"></a><span class="lineno">   69</span>&#160;            memset(<a class="code" href="movementcommands_8c.html#a91a70b77df95bd8b0830b49a094c2acb">data</a>, 0, 100);</div><div class="line"><a name="l00070"></a><span class="lineno">   70</span>&#160;            snprintf(<a class="code" href="movementcommands_8c.html#a91a70b77df95bd8b0830b49a094c2acb">data</a>, 100, <span class="stringliteral">&quot;x %.2f y %.2f h %.2f\n\0&quot;</span>, x, y, h); <span class="comment">//Send the robot position to GUI</span></div><div class="line"><a name="l00071"></a><span class="lineno">   71</span>&#160;            <a class="code" href="uart_8c.html#af96d1ce52b8a52eabc606489d31351e9">uart_sendStr</a>(<a class="code" href="movementcommands_8c.html#a91a70b77df95bd8b0830b49a094c2acb">data</a>);</div><div class="line"><a name="l00072"></a><span class="lineno">   72</span>&#160;        }</div><div class="line"><a name="l00073"></a><span class="lineno">   73</span>&#160;        <span class="keywordflow">else</span> <span class="keywordflow">if</span> (command == PLAY_SOUND)</div><div class="line"><a name="l00074"></a><span class="lineno">   74</span>&#160;        {</div><div class="line"><a name="l00075"></a><span class="lineno">   75</span>&#160;            <a class="code" href="_sound_8c.html#a89a739cfb6c248f26551c5ac303b0841">playSong</a>();</div><div class="line"><a name="l00076"></a><span class="lineno">   76</span>&#160;            <a class="code" href="uart_8c.html#a8be40187644dacbc28cabbc673a36bff">uart_clear</a>();<span class="comment">//We read the command, clear it off the UART</span></div><div class="line"><a name="l00077"></a><span class="lineno">   77</span>&#160;        }</div><div class="line"><a name="l00078"></a><span class="lineno">   78</span>&#160;        <span class="keywordflow">else</span> <span class="keywordflow">if</span> (command == SWEEP_SENSOR)</div><div class="line"><a name="l00079"></a><span class="lineno">   79</span>&#160;        {</div><div class="line"><a name="l00080"></a><span class="lineno">   80</span>&#160;            <a class="code" href="sweep__sensor_8c.html#a967045ec4778e4ef6fc5b6d9aba3a80d">sweep_doFullSweep</a>(1.0, 20);</div><div class="line"><a name="l00081"></a><span class="lineno">   81</span>&#160;            <a class="code" href="uart_8c.html#a8be40187644dacbc28cabbc673a36bff">uart_clear</a>();<span class="comment">//We read the command, clear it off the UART</span></div><div class="line"><a name="l00082"></a><span class="lineno">   82</span>&#160;        }</div><div class="line"><a name="l00083"></a><span class="lineno">   83</span>&#160;        <span class="keywordflow">else</span> <span class="keywordflow">if</span> (command == QUERY_MOVEMENT)</div><div class="line"><a name="l00084"></a><span class="lineno">   84</span>&#160;        {</div><div class="line"><a name="l00085"></a><span class="lineno">   85</span>&#160;            <span class="keywordtype">float</span> x, y, h;</div><div class="line"><a name="l00086"></a><span class="lineno">   86</span>&#160;            <a class="code" href="movementcommands_8c.html#a35f84947bb1dd6f437da3949f213c373">getPosition</a>(&amp;x, &amp;y, &amp;h);</div><div class="line"><a name="l00087"></a><span class="lineno">   87</span>&#160;            snprintf(<a class="code" href="movementcommands_8c.html#a91a70b77df95bd8b0830b49a094c2acb">data</a>, 100, <span class="stringliteral">&quot;x %.2f y %.2f h %.2f\n\0&quot;</span>, x, y, h);</div><div class="line"><a name="l00088"></a><span class="lineno">   88</span>&#160;            <a class="code" href="uart_8c.html#af96d1ce52b8a52eabc606489d31351e9">uart_sendStr</a>(<a class="code" href="movementcommands_8c.html#a91a70b77df95bd8b0830b49a094c2acb">data</a>);</div><div class="line"><a name="l00089"></a><span class="lineno">   89</span>&#160;            <a class="code" href="uart_8c.html#a8be40187644dacbc28cabbc673a36bff">uart_clear</a>();<span class="comment">//We read the command, clear it off the UART</span></div><div class="line"><a name="l00090"></a><span class="lineno">   90</span>&#160;        }</div><div class="line"><a name="l00091"></a><span class="lineno">   91</span>&#160;        timer_waitMillis(10);</div><div class="line"><a name="l00092"></a><span class="lineno">   92</span>&#160;    }</div><div class="line"><a name="l00093"></a><span class="lineno">   93</span>&#160;</div><div class="line"><a name="l00094"></a><span class="lineno">   94</span>&#160;}</div><div class="ttc" id="cliff__sensor_8c_html_aea9fa7041962d3fde3549a56f8855162"><div class="ttname"><a href="cliff__sensor_8c.html#aea9fa7041962d3fde3549a56f8855162">checkGroundSensors</a></div><div class="ttdeci">int checkGroundSensors(oi_t *self)</div><div class="ttdef"><b>Definition:</b> <a href="cliff__sensor_8c_source.html#l00083">cliff_sensor.c:83</a></div></div>
+<a href="main_8c.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno">    1</span>&#160;</div><div class="line"><a name="l00015"></a><span class="lineno">   15</span>&#160;<span class="preprocessor">#include &lt;<a class="code" href="timer_8h.html">Utils/timer.h</a>&gt;</span></div><div class="line"><a name="l00016"></a><span class="lineno">   16</span>&#160;<span class="preprocessor">#include &lt;<a class="code" href="timer4_8h.html">utils/timer4.h</a>&gt;</span></div><div class="line"><a name="l00017"></a><span class="lineno">   17</span>&#160;<span class="preprocessor">#include &lt;<a class="code" href="lcd_8h.html">Utils/lcd.h</a>&gt;</span></div><div class="line"><a name="l00018"></a><span class="lineno">   18</span>&#160;<span class="preprocessor">#include &lt;<a class="code" href="open__interface_8h.html">Utils/open_interface.h</a>&gt;</span></div><div class="line"><a name="l00019"></a><span class="lineno">   19</span>&#160;<span class="preprocessor">#include &lt;<a class="code" href="movementcommands_8h.html">Navigation/movementcommands.h</a>&gt;</span></div><div class="line"><a name="l00020"></a><span class="lineno">   20</span>&#160;<span class="preprocessor">#include &lt;<a class="code" href="uart_8h.html">Communication/uart.h</a>&gt;</span></div><div class="line"><a name="l00021"></a><span class="lineno">   21</span>&#160;<span class="preprocessor">#include &lt;<a class="code" href="_sound_8h.html">Utils/Sound.h</a>&gt;</span></div><div class="line"><a name="l00022"></a><span class="lineno">   22</span>&#160;<span class="preprocessor">#include &lt;<a class="code" href="sweep__sensor_8h.html">Sensor/sweep_sensor.h</a>&gt;</span></div><div class="line"><a name="l00023"></a><span class="lineno">   23</span>&#160;<span class="preprocessor">#include &lt;<a class="code" href="cliff__sensor_8h.html">Sensor/cliff_sensor.h</a>&gt;</span></div><div class="line"><a name="l00024"></a><span class="lineno">   24</span>&#160;</div><div class="line"><a name="l00028"></a><span class="lineno"><a class="line" href="main_8c.html#a91a70b77df95bd8b0830b49a094c2acb">   28</a></span>&#160;<span class="keywordtype">char</span> * <a class="code" href="main_8c.html#a91a70b77df95bd8b0830b49a094c2acb">data</a>;</div><div class="line"><a name="l00029"></a><span class="lineno">   29</span>&#160;</div><div class="line"><a name="l00030"></a><span class="lineno"><a class="line" href="main_8c.html#a840291bc02cba5474a4cb46a9b9566fe">   30</a></span>&#160;<span class="keywordtype">int</span> <a class="code" href="main_8c.html#a840291bc02cba5474a4cb46a9b9566fe">main</a>(<span class="keywordtype">void</span>)</div><div class="line"><a name="l00031"></a><span class="lineno">   31</span>&#160;{</div><div class="line"><a name="l00033"></a><span class="lineno">   33</span>&#160;    <a class="code" href="timer4_8c.html#afe6c9dd8b2439c58273cbd63b95088fe">clock_timer_init</a>();</div><div class="line"><a name="l00034"></a><span class="lineno">   34</span>&#160;    <a class="code" href="main_8c.html#a91a70b77df95bd8b0830b49a094c2acb">data</a> = malloc(100);</div><div class="line"><a name="l00035"></a><span class="lineno">   35</span>&#160;    <a class="code" href="structoi__t.html">oi_t</a> *<span class="keyword">self</span> = <a class="code" href="open__interface_8c.html#aad249dffdf79454de76e09092a0445f5">oi_alloc</a>();</div><div class="line"><a name="l00036"></a><span class="lineno">   36</span>&#160;    <a class="code" href="lcd_8c.html#a6842775ba83d166f02b8fef8bb63b1e6">lcd_init</a>();</div><div class="line"><a name="l00037"></a><span class="lineno">   37</span>&#160;    <a class="code" href="sweep__sensor_8c.html#aa858319b04e153550a93648468db3171">sweep_init</a>();</div><div class="line"><a name="l00038"></a><span class="lineno">   38</span>&#160;    <a class="code" href="open__interface_8c.html#a9108ba8c791d0e97444c03b2f40b278a">oi_init</a>(<span class="keyword">self</span>);</div><div class="line"><a name="l00039"></a><span class="lineno">   39</span>&#160;    <a class="code" href="open__interface_8c.html#a9129559bba5ff9dc7e4df64330864674">oi_update</a>(<span class="keyword">self</span>);</div><div class="line"><a name="l00040"></a><span class="lineno">   40</span>&#160;    <a class="code" href="open__interface_8c.html#a9129559bba5ff9dc7e4df64330864674">oi_update</a>(<span class="keyword">self</span>);</div><div class="line"><a name="l00041"></a><span class="lineno">   41</span>&#160;</div><div class="line"><a name="l00042"></a><span class="lineno">   42</span>&#160;    <span class="keywordtype">int</span> command = 0;</div><div class="line"><a name="l00043"></a><span class="lineno">   43</span>&#160;    <span class="keywordtype">int</span> degree = 0;</div><div class="line"><a name="l00044"></a><span class="lineno">   44</span>&#160;    <span class="keywordtype">int</span> distance = 0;</div><div class="line"><a name="l00045"></a><span class="lineno">   45</span>&#160;</div><div class="line"><a name="l00046"></a><span class="lineno">   46</span>&#160;</div><div class="line"><a name="l00048"></a><span class="lineno">   48</span>&#160;    <span class="keywordflow">while</span> (1)</div><div class="line"><a name="l00049"></a><span class="lineno">   49</span>&#160;    {</div><div class="line"><a name="l00050"></a><span class="lineno">   50</span>&#160;        <a class="code" href="open__interface_8c.html#a9129559bba5ff9dc7e4df64330864674">oi_update</a>(<span class="keyword">self</span>);</div><div class="line"><a name="l00051"></a><span class="lineno">   51</span>&#160;        <span class="comment">//Parse the last command line read from the UART</span></div><div class="line"><a name="l00052"></a><span class="lineno">   52</span>&#160;        <a class="code" href="movementcommands_8c.html#af24f4aea581508f13025bf49cdb40b44">parseCommand</a>(<a class="code" href="uart_8c.html#a46df527ddf86c0ebfe750173a41dd4d3">getLastLine</a>(), &amp;command, &amp;degree, &amp;distance);</div><div class="line"><a name="l00053"></a><span class="lineno">   53</span>&#160;</div><div class="line"><a name="l00054"></a><span class="lineno">   54</span>&#160;        <span class="comment">//Check the Ground for ending Zone, and it send it out to the GUI if it does</span></div><div class="line"><a name="l00055"></a><span class="lineno">   55</span>&#160;        <span class="keywordflow">if</span> (<a class="code" href="cliff__sensor_8c.html#aea9fa7041962d3fde3549a56f8855162">checkGroundSensors</a>(<span class="keyword">self</span>) == 3)</div><div class="line"><a name="l00056"></a><span class="lineno">   56</span>&#160;        {</div><div class="line"><a name="l00057"></a><span class="lineno">   57</span>&#160;            snprintf(<a class="code" href="main_8c.html#a91a70b77df95bd8b0830b49a094c2acb">data</a>, 100, <span class="stringliteral">&quot;z %d %d %d %d\0&quot;</span>, <a class="code" href="cliff__sensor_8c.html#a1fa03a7f9a05ace91224ea610463e871">cs_getTerrain</a>(<span class="keyword">self</span>, LEFT),</div><div class="line"><a name="l00058"></a><span class="lineno">   58</span>&#160;                     <a class="code" href="cliff__sensor_8c.html#a1fa03a7f9a05ace91224ea610463e871">cs_getTerrain</a>(<span class="keyword">self</span>, FRONT_LEFT),</div><div class="line"><a name="l00059"></a><span class="lineno">   59</span>&#160;                     <a class="code" href="cliff__sensor_8c.html#a1fa03a7f9a05ace91224ea610463e871">cs_getTerrain</a>(<span class="keyword">self</span>, FRONT_RIGHT),</div><div class="line"><a name="l00060"></a><span class="lineno">   60</span>&#160;                     <a class="code" href="cliff__sensor_8c.html#a1fa03a7f9a05ace91224ea610463e871">cs_getTerrain</a>(<span class="keyword">self</span>, RIGHT));</div><div class="line"><a name="l00061"></a><span class="lineno">   61</span>&#160;            <a class="code" href="uart_8c.html#af96d1ce52b8a52eabc606489d31351e9">uart_sendStr</a>(<a class="code" href="main_8c.html#a91a70b77df95bd8b0830b49a094c2acb">data</a>);</div><div class="line"><a name="l00062"></a><span class="lineno">   62</span>&#160;        }</div><div class="line"><a name="l00063"></a><span class="lineno">   63</span>&#160;</div><div class="line"><a name="l00064"></a><span class="lineno">   64</span>&#160;        <span class="keywordflow">if</span> (command == MOVE)</div><div class="line"><a name="l00065"></a><span class="lineno">   65</span>&#160;        {</div><div class="line"><a name="l00066"></a><span class="lineno">   66</span>&#160;            <span class="comment">//robot is turned then moved forward until it hits a boundary, cliff, or bumps something, then sends robot position to gui</span></div><div class="line"><a name="l00067"></a><span class="lineno">   67</span>&#160;            <a class="code" href="movementcommands_8c.html#a363d2d2063890c9731f0d9222060cd48">turnRobotDegree</a>(<span class="keyword">self</span>, degree);</div><div class="line"><a name="l00068"></a><span class="lineno">   68</span>&#160;            <a class="code" href="movementcommands_8c.html#ac19e613d92cdd54f047e591fc0c99b07">moveRobotDistance</a>(<span class="keyword">self</span>, distance);</div><div class="line"><a name="l00069"></a><span class="lineno">   69</span>&#160;            <a class="code" href="uart_8c.html#a8be40187644dacbc28cabbc673a36bff">uart_clear</a>(); <span class="comment">//We read the command, clear it off the UART</span></div><div class="line"><a name="l00070"></a><span class="lineno">   70</span>&#160;            <span class="keywordtype">float</span> x, y, h;</div><div class="line"><a name="l00071"></a><span class="lineno">   71</span>&#160;            <a class="code" href="movementcommands_8c.html#a35f84947bb1dd6f437da3949f213c373">getPosition</a>(&amp;x, &amp;y, &amp;h); <span class="comment">//Read the current robot position</span></div><div class="line"><a name="l00072"></a><span class="lineno">   72</span>&#160;            memset(<a class="code" href="main_8c.html#a91a70b77df95bd8b0830b49a094c2acb">data</a>, 0, 100);</div><div class="line"><a name="l00073"></a><span class="lineno">   73</span>&#160;            snprintf(<a class="code" href="main_8c.html#a91a70b77df95bd8b0830b49a094c2acb">data</a>, 100, <span class="stringliteral">&quot;x %.2f y %.2f h %.2f\n\0&quot;</span>, x, y, h); <span class="comment">//Send the robot position to GUI</span></div><div class="line"><a name="l00074"></a><span class="lineno">   74</span>&#160;            <a class="code" href="uart_8c.html#af96d1ce52b8a52eabc606489d31351e9">uart_sendStr</a>(<a class="code" href="main_8c.html#a91a70b77df95bd8b0830b49a094c2acb">data</a>);</div><div class="line"><a name="l00075"></a><span class="lineno">   75</span>&#160;        }</div><div class="line"><a name="l00076"></a><span class="lineno">   76</span>&#160;        <span class="keywordflow">else</span> <span class="keywordflow">if</span> (command == MOVE_IGNORE)</div><div class="line"><a name="l00077"></a><span class="lineno">   77</span>&#160;        {</div><div class="line"><a name="l00078"></a><span class="lineno">   78</span>&#160;            <span class="comment">//Same as the MOVE command but with the robot ignoring the boundary</span></div><div class="line"><a name="l00079"></a><span class="lineno">   79</span>&#160;            <a class="code" href="movementcommands_8c.html#a363d2d2063890c9731f0d9222060cd48">turnRobotDegree</a>(<span class="keyword">self</span>, degree);</div><div class="line"><a name="l00080"></a><span class="lineno">   80</span>&#160;            <a class="code" href="movementcommands_8c.html#aec736dae690e0a896c49d05b27c9b970">moveRobotDistanceIgnore</a>(<span class="keyword">self</span>, distance);</div><div class="line"><a name="l00081"></a><span class="lineno">   81</span>&#160;            <a class="code" href="uart_8c.html#a8be40187644dacbc28cabbc673a36bff">uart_clear</a>(); <span class="comment">//We read the command, clear it off the UART</span></div><div class="line"><a name="l00082"></a><span class="lineno">   82</span>&#160;            <span class="keywordtype">float</span> x, y, h;</div><div class="line"><a name="l00083"></a><span class="lineno">   83</span>&#160;            <a class="code" href="movementcommands_8c.html#a35f84947bb1dd6f437da3949f213c373">getPosition</a>(&amp;x, &amp;y, &amp;h); <span class="comment">//Read the current robot position</span></div><div class="line"><a name="l00084"></a><span class="lineno">   84</span>&#160;            memset(<a class="code" href="main_8c.html#a91a70b77df95bd8b0830b49a094c2acb">data</a>, 0, 100);</div><div class="line"><a name="l00085"></a><span class="lineno">   85</span>&#160;            snprintf(<a class="code" href="main_8c.html#a91a70b77df95bd8b0830b49a094c2acb">data</a>, 100, <span class="stringliteral">&quot;x %.2f y %.2f h %.2f\n\0&quot;</span>, x, y, h); <span class="comment">//Send the robot position to GUI</span></div><div class="line"><a name="l00086"></a><span class="lineno">   86</span>&#160;            <a class="code" href="uart_8c.html#af96d1ce52b8a52eabc606489d31351e9">uart_sendStr</a>(<a class="code" href="main_8c.html#a91a70b77df95bd8b0830b49a094c2acb">data</a>);</div><div class="line"><a name="l00087"></a><span class="lineno">   87</span>&#160;        }</div><div class="line"><a name="l00088"></a><span class="lineno">   88</span>&#160;        <span class="keywordflow">else</span> <span class="keywordflow">if</span> (command == PLAY_SOUND)</div><div class="line"><a name="l00089"></a><span class="lineno">   89</span>&#160;        {</div><div class="line"><a name="l00090"></a><span class="lineno">   90</span>&#160;            <a class="code" href="_sound_8c.html#a89a739cfb6c248f26551c5ac303b0841">playSong</a>();</div><div class="line"><a name="l00091"></a><span class="lineno">   91</span>&#160;            <a class="code" href="uart_8c.html#a8be40187644dacbc28cabbc673a36bff">uart_clear</a>();<span class="comment">//We read the command, clear it off the UART</span></div><div class="line"><a name="l00092"></a><span class="lineno">   92</span>&#160;        }</div><div class="line"><a name="l00093"></a><span class="lineno">   93</span>&#160;        <span class="keywordflow">else</span> <span class="keywordflow">if</span> (command == SWEEP_SENSOR)</div><div class="line"><a name="l00094"></a><span class="lineno">   94</span>&#160;        {</div><div class="line"><a name="l00095"></a><span class="lineno">   95</span>&#160;            <a class="code" href="sweep__sensor_8c.html#a967045ec4778e4ef6fc5b6d9aba3a80d">sweep_doFullSweep</a>(1.0, 20);</div><div class="line"><a name="l00096"></a><span class="lineno">   96</span>&#160;            <a class="code" href="uart_8c.html#a8be40187644dacbc28cabbc673a36bff">uart_clear</a>();<span class="comment">//We read the command, clear it off the UART</span></div><div class="line"><a name="l00097"></a><span class="lineno">   97</span>&#160;        }</div><div class="line"><a name="l00098"></a><span class="lineno">   98</span>&#160;        <span class="keywordflow">else</span> <span class="keywordflow">if</span> (command == QUERY_MOVEMENT)</div><div class="line"><a name="l00099"></a><span class="lineno">   99</span>&#160;        {</div><div class="line"><a name="l00100"></a><span class="lineno">  100</span>&#160;            <span class="keywordtype">float</span> x, y, h;</div><div class="line"><a name="l00101"></a><span class="lineno">  101</span>&#160;            <a class="code" href="movementcommands_8c.html#a35f84947bb1dd6f437da3949f213c373">getPosition</a>(&amp;x, &amp;y, &amp;h);</div><div class="line"><a name="l00102"></a><span class="lineno">  102</span>&#160;            snprintf(<a class="code" href="main_8c.html#a91a70b77df95bd8b0830b49a094c2acb">data</a>, 100, <span class="stringliteral">&quot;x %.2f y %.2f h %.2f\n\0&quot;</span>, x, y, h);</div><div class="line"><a name="l00103"></a><span class="lineno">  103</span>&#160;            <a class="code" href="uart_8c.html#af96d1ce52b8a52eabc606489d31351e9">uart_sendStr</a>(<a class="code" href="main_8c.html#a91a70b77df95bd8b0830b49a094c2acb">data</a>);</div><div class="line"><a name="l00104"></a><span class="lineno">  104</span>&#160;            <a class="code" href="uart_8c.html#a8be40187644dacbc28cabbc673a36bff">uart_clear</a>();<span class="comment">//We read the command, clear it off the UART</span></div><div class="line"><a name="l00105"></a><span class="lineno">  105</span>&#160;        }</div><div class="line"><a name="l00106"></a><span class="lineno">  106</span>&#160;        <a class="code" href="timer_8c.html#a7e2a3b4520e885e5e7d40fa87e242a75">timer_waitMillis</a>(10);</div><div class="line"><a name="l00107"></a><span class="lineno">  107</span>&#160;    }</div><div class="line"><a name="l00108"></a><span class="lineno">  108</span>&#160;</div><div class="line"><a name="l00109"></a><span class="lineno">  109</span>&#160;}</div><div class="ttc" id="cliff__sensor_8c_html_aea9fa7041962d3fde3549a56f8855162"><div class="ttname"><a href="cliff__sensor_8c.html#aea9fa7041962d3fde3549a56f8855162">checkGroundSensors</a></div><div class="ttdeci">int checkGroundSensors(oi_t *self)</div><div class="ttdef"><b>Definition:</b> <a href="cliff__sensor_8c_source.html#l00083">cliff_sensor.c:83</a></div></div>
 <div class="ttc" id="uart_8h_html"><div class="ttname"><a href="uart_8h.html">uart.h</a></div><div class="ttdoc">Header file for uart.c Used to set up the RS232 connector and WIFI module uses UART1 at 115200...</div></div>
 <div class="ttc" id="sweep__sensor_8c_html_aa858319b04e153550a93648468db3171"><div class="ttname"><a href="sweep__sensor_8c.html#aa858319b04e153550a93648468db3171">sweep_init</a></div><div class="ttdeci">void sweep_init()</div><div class="ttdef"><b>Definition:</b> <a href="sweep__sensor_8c_source.html#l00133">sweep_sensor.c:133</a></div></div>
 <div class="ttc" id="movementcommands_8c_html_a363d2d2063890c9731f0d9222060cd48"><div class="ttname"><a href="movementcommands_8c.html#a363d2d2063890c9731f0d9222060cd48">turnRobotDegree</a></div><div class="ttdeci">float turnRobotDegree(oi_t *self, float degrees)</div><div class="ttdef"><b>Definition:</b> <a href="movementcommands_8c_source.html#l00197">movementcommands.c:197</a></div></div>
-<div class="ttc" id="movementcommands_8c_html_a91a70b77df95bd8b0830b49a094c2acb"><div class="ttname"><a href="movementcommands_8c.html#a91a70b77df95bd8b0830b49a094c2acb">data</a></div><div class="ttdeci">char * data</div><div class="ttdef"><b>Definition:</b> <a href="movementcommands_8c_source.html#l00041">movementcommands.c:41</a></div></div>
+<div class="ttc" id="timer4_8c_html_afe6c9dd8b2439c58273cbd63b95088fe"><div class="ttname"><a href="timer4_8c.html#afe6c9dd8b2439c58273cbd63b95088fe">clock_timer_init</a></div><div class="ttdeci">void clock_timer_init(void)</div><div class="ttdef"><b>Definition:</b> <a href="timer4_8c_source.html#l00024">timer4.c:24</a></div></div>
+<div class="ttc" id="open__interface_8c_html_a9129559bba5ff9dc7e4df64330864674"><div class="ttname"><a href="open__interface_8c.html#a9129559bba5ff9dc7e4df64330864674">oi_update</a></div><div class="ttdeci">void oi_update(oi_t *self)</div><div class="ttdoc">Update all sensor and store in oi_t struct. </div><div class="ttdef"><b>Definition:</b> <a href="open__interface_8c_source.html#l00169">open_interface.c:169</a></div></div>
 <div class="ttc" id="movementcommands_8c_html_ac19e613d92cdd54f047e591fc0c99b07"><div class="ttname"><a href="movementcommands_8c.html#ac19e613d92cdd54f047e591fc0c99b07">moveRobotDistance</a></div><div class="ttdeci">void moveRobotDistance(oi_t *self, int input)</div><div class="ttdef"><b>Definition:</b> <a href="movementcommands_8c_source.html#l00044">movementcommands.c:44</a></div></div>
 <div class="ttc" id="uart_8c_html_a8be40187644dacbc28cabbc673a36bff"><div class="ttname"><a href="uart_8c.html#a8be40187644dacbc28cabbc673a36bff">uart_clear</a></div><div class="ttdeci">void uart_clear()</div><div class="ttdef"><b>Definition:</b> <a href="uart_8c_source.html#l00047">uart.c:47</a></div></div>
+<div class="ttc" id="timer_8h_html"><div class="ttname"><a href="timer_8h.html">timer.h</a></div><div class="ttdoc">Header file for timer.c Library Functions for pause timer. </div></div>
 <div class="ttc" id="movementcommands_8c_html_a35f84947bb1dd6f437da3949f213c373"><div class="ttname"><a href="movementcommands_8c.html#a35f84947bb1dd6f437da3949f213c373">getPosition</a></div><div class="ttdeci">void getPosition(float *x, float *y, float *d)</div><div class="ttdef"><b>Definition:</b> <a href="movementcommands_8c_source.html#l00300">movementcommands.c:300</a></div></div>
+<div class="ttc" id="open__interface_8h_html"><div class="ttname"><a href="open__interface_8h.html">open_interface.h</a></div><div class="ttdoc">Header file for open_interface.c Contains all functionality to interface with the IRobot Create V2 Co...</div></div>
+<div class="ttc" id="timer_8c_html_a7e2a3b4520e885e5e7d40fa87e242a75"><div class="ttname"><a href="timer_8c.html#a7e2a3b4520e885e5e7d40fa87e242a75">timer_waitMillis</a></div><div class="ttdeci">void timer_waitMillis(uint32_t millis)</div><div class="ttdef"><b>Definition:</b> <a href="timer_8c_source.html#l00015">timer.c:15</a></div></div>
+<div class="ttc" id="main_8c_html_a91a70b77df95bd8b0830b49a094c2acb"><div class="ttname"><a href="main_8c.html#a91a70b77df95bd8b0830b49a094c2acb">data</a></div><div class="ttdeci">char * data</div><div class="ttdef"><b>Definition:</b> <a href="main_8c_source.html#l00028">main.c:28</a></div></div>
 <div class="ttc" id="cliff__sensor_8c_html_a1fa03a7f9a05ace91224ea610463e871"><div class="ttname"><a href="cliff__sensor_8c.html#a1fa03a7f9a05ace91224ea610463e871">cs_getTerrain</a></div><div class="ttdeci">Terrain cs_getTerrain(oi_t *self, CliffSensor sensor)</div><div class="ttdef"><b>Definition:</b> <a href="cliff__sensor_8c_source.html#l00053">cliff_sensor.c:53</a></div></div>
 <div class="ttc" id="uart_8c_html_a46df527ddf86c0ebfe750173a41dd4d3"><div class="ttname"><a href="uart_8c.html#a46df527ddf86c0ebfe750173a41dd4d3">getLastLine</a></div><div class="ttdeci">char * getLastLine()</div><div class="ttdef"><b>Definition:</b> <a href="uart_8c_source.html#l00160">uart.c:160</a></div></div>
+<div class="ttc" id="lcd_8h_html"><div class="ttname"><a href="lcd_8h.html">lcd.h</a></div><div class="ttdoc">Header file for lcd.c. </div></div>
+<div class="ttc" id="timer4_8h_html"><div class="ttname"><a href="timer4_8h.html">timer4.h</a></div><div class="ttdoc">Header file for handling a timer interrupt for IR Sensor. </div></div>
 <div class="ttc" id="structoi__t_html"><div class="ttname"><a href="structoi__t.html">oi_t</a></div><div class="ttdoc">iRobot Create Sensor Data </div><div class="ttdef"><b>Definition:</b> <a href="open__interface_8h_source.html#l00031">open_interface.h:31</a></div></div>
+<div class="ttc" id="open__interface_8c_html_a9108ba8c791d0e97444c03b2f40b278a"><div class="ttname"><a href="open__interface_8c.html#a9108ba8c791d0e97444c03b2f40b278a">oi_init</a></div><div class="ttdeci">void oi_init(oi_t *self)</div><div class="ttdoc">Initialize open interface. </div><div class="ttdef"><b>Definition:</b> <a href="open__interface_8c_source.html#l00153">open_interface.c:153</a></div></div>
 <div class="ttc" id="sweep__sensor_8h_html"><div class="ttname"><a href="sweep__sensor_8h.html">sweep_sensor.h</a></div><div class="ttdoc">Header file for sweep_sensor.c. </div></div>
 <div class="ttc" id="sweep__sensor_8c_html_a967045ec4778e4ef6fc5b6d9aba3a80d"><div class="ttname"><a href="sweep__sensor_8c.html#a967045ec4778e4ef6fc5b6d9aba3a80d">sweep_doFullSweep</a></div><div class="ttdeci">void sweep_doFullSweep(float sweepIncrement_deg, uint32_t incDelay_ms)</div><div class="ttdef"><b>Definition:</b> <a href="sweep__sensor_8c_source.html#l00397">sweep_sensor.c:397</a></div></div>
+<div class="ttc" id="open__interface_8c_html_aad249dffdf79454de76e09092a0445f5"><div class="ttname"><a href="open__interface_8c.html#aad249dffdf79454de76e09092a0445f5">oi_alloc</a></div><div class="ttdeci">oi_t * oi_alloc()</div><div class="ttdoc">Allocate and clear all memory for OI Struct. </div><div class="ttdef"><b>Definition:</b> <a href="open__interface_8c_source.html#l00119">open_interface.c:119</a></div></div>
 <div class="ttc" id="_sound_8c_html_a89a739cfb6c248f26551c5ac303b0841"><div class="ttname"><a href="_sound_8c.html#a89a739cfb6c248f26551c5ac303b0841">playSong</a></div><div class="ttdeci">void playSong()</div><div class="ttdef"><b>Definition:</b> <a href="_sound_8c_source.html#l00016">Sound.c:16</a></div></div>
 <div class="ttc" id="movementcommands_8h_html"><div class="ttname"><a href="movementcommands_8h.html">movementcommands.h</a></div><div class="ttdoc">Header for controlling the robot heading and direction. Also includes the UART parser for commands...</div></div>
+<div class="ttc" id="lcd_8c_html_a6842775ba83d166f02b8fef8bb63b1e6"><div class="ttname"><a href="lcd_8c.html#a6842775ba83d166f02b8fef8bb63b1e6">lcd_init</a></div><div class="ttdeci">void lcd_init(void)</div><div class="ttdoc">Initialize PORTB0:6 to Communicate with LCD. </div><div class="ttdef"><b>Definition:</b> <a href="lcd_8c_source.html#l00060">lcd.c:60</a></div></div>
 <div class="ttc" id="movementcommands_8c_html_af24f4aea581508f13025bf49cdb40b44"><div class="ttname"><a href="movementcommands_8c.html#af24f4aea581508f13025bf49cdb40b44">parseCommand</a></div><div class="ttdeci">void parseCommand(char *cmdStr, int *type, int *degree, int *distance)</div><div class="ttdef"><b>Definition:</b> <a href="movementcommands_8c_source.html#l00248">movementcommands.c:248</a></div></div>
 <div class="ttc" id="cliff__sensor_8h_html"><div class="ttname"><a href="cliff__sensor_8h.html">cliff_sensor.h</a></div><div class="ttdoc">Header file for cliff_sensor.c. </div></div>
 <div class="ttc" id="movementcommands_8c_html_aec736dae690e0a896c49d05b27c9b970"><div class="ttname"><a href="movementcommands_8c.html#aec736dae690e0a896c49d05b27c9b970">moveRobotDistanceIgnore</a></div><div class="ttdeci">void moveRobotDistanceIgnore(oi_t *self, int input)</div><div class="ttdef"><b>Definition:</b> <a href="movementcommands_8c_source.html#l00124">movementcommands.c:124</a></div></div>
+<div class="ttc" id="main_8c_html_a840291bc02cba5474a4cb46a9b9566fe"><div class="ttname"><a href="main_8c.html#a840291bc02cba5474a4cb46a9b9566fe">main</a></div><div class="ttdeci">int main(void)</div><div class="ttdef"><b>Definition:</b> <a href="main_8c_source.html#l00030">main.c:30</a></div></div>
 <div class="ttc" id="_sound_8h_html"><div class="ttname"><a href="_sound_8h.html">Sound.h</a></div><div class="ttdoc">Header file for Sound.c. </div></div>
 <div class="ttc" id="uart_8c_html_af96d1ce52b8a52eabc606489d31351e9"><div class="ttname"><a href="uart_8c.html#af96d1ce52b8a52eabc606489d31351e9">uart_sendStr</a></div><div class="ttdeci">void uart_sendStr(const char *data)</div><div class="ttdef"><b>Definition:</b> <a href="uart_8c_source.html#l00133">uart.c:133</a></div></div>
 </div><!-- fragment --></div><!-- contents -->
@@ -117,7 +128,7 @@ $(document).ready(function(){initNavTree('main_8c_source.html','');});
 <!-- start footer part -->
 <div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
   <ul>
-    <li class="navelem"><a class="el" href="dir_d522931ffa1371640980b621734a4381.html">Users</a></li><li class="navelem"><a class="el" href="dir_b324cbc34babe304b9f95739e7202679.html">DonsterLaptop</a></li><li class="navelem"><a class="el" href="dir_e6c4902d624d7a1fd4d40064e095ec38.html">Documents</a></li><li class="navelem"><a class="el" href="dir_cca09f556bdef987ef90adb7ab596965.html">Robot288</a></li><li class="navelem"><a class="el" href="dir_cffdf54b453800c407ef4c3ceba2b426.html">cpre288_generalpurposeautomatedrobot</a></li><li class="navelem"><a class="el" href="dir_c2e164765e5a314cc0de59b27d9c89cd.html">Robot</a></li><li class="navelem"><b>main.c</b></li>
+    <li class="navelem"><a class="el" href="dir_d522931ffa1371640980b621734a4381.html">Users</a></li><li class="navelem"><a class="el" href="dir_b324cbc34babe304b9f95739e7202679.html">DonsterLaptop</a></li><li class="navelem"><a class="el" href="dir_e6c4902d624d7a1fd4d40064e095ec38.html">Documents</a></li><li class="navelem"><a class="el" href="dir_cca09f556bdef987ef90adb7ab596965.html">Robot288</a></li><li class="navelem"><a class="el" href="dir_cffdf54b453800c407ef4c3ceba2b426.html">cpre288_generalpurposeautomatedrobot</a></li><li class="navelem"><a class="el" href="dir_c2e164765e5a314cc0de59b27d9c89cd.html">Robot</a></li><li class="navelem"><a class="el" href="main_8c.html">main.c</a></li>
     <li class="footer">Generated by
     <a href="http://www.doxygen.org/index.html">
     <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.14 </li>
diff --git a/Doxygen/html/main_8cpp_source.html b/Doxygen/html/main_8cpp_source.html
index bbf75d1d159c6029f0bcad3dc2f03f69d9cd8fef..f8c6f64e3b6710cd12c2857955b3f0cf08387eb5 100644
--- a/Doxygen/html/main_8cpp_source.html
+++ b/Doxygen/html/main_8cpp_source.html
@@ -92,7 +92,7 @@ $(document).ready(function(){initNavTree('main_8cpp_source.html','');});
 <div class="title">main.cpp</div>  </div>
 </div><!--header-->
 <div class="contents">
-<a href="main_8cpp.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno">    1</span>&#160;</div><div class="line"><a name="l00013"></a><span class="lineno">   13</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="render_8h.html">render.h</a>&quot;</span></div><div class="line"><a name="l00014"></a><span class="lineno">   14</span>&#160;</div><div class="line"><a name="l00015"></a><span class="lineno">   15</span>&#160;<span class="preprocessor">#define GLEW_STATIC</span></div><div class="line"><a name="l00016"></a><span class="lineno">   16</span>&#160;<span class="preprocessor">#include &lt;GL/glew.h&gt;</span></div><div class="line"><a name="l00017"></a><span class="lineno">   17</span>&#160;</div><div class="line"><a name="l00018"></a><span class="lineno">   18</span>&#160;<span class="preprocessor">#include &lt;gl/GL.h&gt;</span></div><div class="line"><a name="l00019"></a><span class="lineno">   19</span>&#160;<span class="preprocessor">#include &lt;GLFW/glfw3.h&gt;</span></div><div class="line"><a name="l00020"></a><span class="lineno">   20</span>&#160;</div><div class="line"><a name="l00021"></a><span class="lineno">   21</span>&#160;<span class="preprocessor">#include &lt;glm/glm.hpp&gt;</span></div><div class="line"><a name="l00022"></a><span class="lineno">   22</span>&#160;<span class="preprocessor">#include &lt;glm/gtc/matrix_transform.hpp&gt;</span></div><div class="line"><a name="l00023"></a><span class="lineno">   23</span>&#160;<span class="preprocessor">#include &lt;iostream&gt;</span></div><div class="line"><a name="l00024"></a><span class="lineno">   24</span>&#160;<span class="preprocessor">#include &lt;vector&gt;</span></div><div class="line"><a name="l00025"></a><span class="lineno">   25</span>&#160;<span class="preprocessor">#include &lt;sstream&gt;</span></div><div class="line"><a name="l00026"></a><span class="lineno">   26</span>&#160;<span class="preprocessor">#include &lt;fstream&gt;</span></div><div class="line"><a name="l00027"></a><span class="lineno">   27</span>&#160;<span class="preprocessor">#include &lt;streambuf&gt;</span></div><div class="line"><a name="l00028"></a><span class="lineno">   28</span>&#160;</div><div class="line"><a name="l00029"></a><span class="lineno">   29</span>&#160;</div><div class="line"><a name="l00030"></a><span class="lineno">   30</span>&#160;<span class="preprocessor">#include &lt;boost/asio.hpp&gt;</span></div><div class="line"><a name="l00031"></a><span class="lineno">   31</span>&#160;<span class="preprocessor">#include &lt;boost/array.hpp&gt;</span></div><div class="line"><a name="l00032"></a><span class="lineno">   32</span>&#160;<span class="preprocessor">#include &lt;boost/bind.hpp&gt;</span></div><div class="line"><a name="l00033"></a><span class="lineno">   33</span>&#160;<span class="preprocessor">#include &lt;boost/thread.hpp&gt;</span></div><div class="line"><a name="l00034"></a><span class="lineno">   34</span>&#160;<span class="preprocessor">#include &lt;boost/thread.hpp&gt;</span></div><div class="line"><a name="l00035"></a><span class="lineno">   35</span>&#160;</div><div class="line"><a name="l00036"></a><span class="lineno">   36</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="tcp_8h.html">tcp.h</a>&quot;</span></div><div class="line"><a name="l00037"></a><span class="lineno">   37</span>&#160;</div><div class="line"><a name="l00038"></a><span class="lineno">   38</span>&#160;</div><div class="line"><a name="l00039"></a><span class="lineno">   39</span>&#160;<span class="keywordtype">int</span> main(<span class="keywordtype">int</span> argc, <span class="keywordtype">char</span> * argv[]){</div><div class="line"><a name="l00040"></a><span class="lineno">   40</span>&#160;</div><div class="line"><a name="l00041"></a><span class="lineno">   41</span>&#160;    <span class="comment">//Start the renderer</span></div><div class="line"><a name="l00042"></a><span class="lineno">   42</span>&#160;    <a class="code" href="class_render.html">Render</a>* render = <span class="keyword">new</span> <a class="code" href="class_render.html">Render</a>();</div><div class="line"><a name="l00043"></a><span class="lineno">   43</span>&#160;</div><div class="line"><a name="l00044"></a><span class="lineno">   44</span>&#160;    <span class="comment">//Start TCP Internet</span></div><div class="line"><a name="l00045"></a><span class="lineno">   45</span>&#160;    boost::asio::io_context context;</div><div class="line"><a name="l00046"></a><span class="lineno">   46</span>&#160;    <a class="code" href="class_t_c_p_client.html">TCPClient</a> * client = <span class="keyword">new</span> <a class="code" href="class_t_c_p_client.html">TCPClient</a>(context,<span class="stringliteral">&quot;192.168.1.1&quot;</span>, <span class="stringliteral">&quot;288&quot;</span>, render);</div><div class="line"><a name="l00047"></a><span class="lineno">   47</span>&#160;</div><div class="line"><a name="l00048"></a><span class="lineno">   48</span>&#160;</div><div class="line"><a name="l00049"></a><span class="lineno">   49</span>&#160;</div><div class="line"><a name="l00050"></a><span class="lineno">   50</span>&#160;    <span class="comment">//Initialize User Buttons</span></div><div class="line"><a name="l00051"></a><span class="lineno">   51</span>&#160;    <span class="keywordtype">int</span> mouseButtonLeft = GLFW_RELEASE;</div><div class="line"><a name="l00052"></a><span class="lineno">   52</span>&#160;    <span class="keywordtype">int</span> mouseButtonRight = GLFW_RELEASE;</div><div class="line"><a name="l00053"></a><span class="lineno">   53</span>&#160;    <span class="keywordtype">int</span> keyboard_s = GLFW_RELEASE;</div><div class="line"><a name="l00054"></a><span class="lineno">   54</span>&#160;    <span class="keywordtype">int</span> keyboard_p = GLFW_RELEASE;</div><div class="line"><a name="l00055"></a><span class="lineno">   55</span>&#160;    <span class="keywordtype">int</span> keyboard_v = GLFW_RELEASE;</div><div class="line"><a name="l00056"></a><span class="lineno">   56</span>&#160;    <span class="keywordtype">int</span> keyboard_f = GLFW_RELEASE;</div><div class="line"><a name="l00057"></a><span class="lineno">   57</span>&#160;    <span class="keywordtype">int</span> keyboard_minus = GLFW_RELEASE;</div><div class="line"><a name="l00058"></a><span class="lineno">   58</span>&#160;    <span class="keywordtype">int</span> keyboard_plus = GLFW_RELEASE;</div><div class="line"><a name="l00059"></a><span class="lineno">   59</span>&#160;    <span class="comment">//Run until an ESC key is pressed or window is closed.</span></div><div class="line"><a name="l00060"></a><span class="lineno">   60</span>&#160;    <span class="keywordflow">while</span> (glfwGetKey(render-&gt;getWindow(), GLFW_KEY_ESCAPE) != GLFW_PRESS &amp;&amp;</div><div class="line"><a name="l00061"></a><span class="lineno">   61</span>&#160;        glfwWindowShouldClose(render-&gt;getWindow()) == 0) {</div><div class="line"><a name="l00062"></a><span class="lineno">   62</span>&#160;        </div><div class="line"><a name="l00063"></a><span class="lineno">   63</span>&#160;        <span class="comment">//Clear the screen buffer</span></div><div class="line"><a name="l00064"></a><span class="lineno">   64</span>&#160;        glClear(GL_COLOR_BUFFER_BIT);</div><div class="line"><a name="l00065"></a><span class="lineno">   65</span>&#160;        </div><div class="line"><a name="l00066"></a><span class="lineno">   66</span>&#160;        <span class="comment">//Check Left Click</span></div><div class="line"><a name="l00067"></a><span class="lineno">   67</span>&#160;        <span class="keywordflow">if</span> (mouseButtonLeft != glfwGetMouseButton(render-&gt;getWindow(), GLFW_MOUSE_BUTTON_LEFT) &amp;&amp; glfwGetMouseButton(render-&gt;getWindow(), GLFW_MOUSE_BUTTON_LEFT) == GLFW_PRESS) {</div><div class="line"><a name="l00068"></a><span class="lineno">   68</span>&#160;            <span class="comment">//Get Mouse location</span></div><div class="line"><a name="l00069"></a><span class="lineno">   69</span>&#160;            <span class="keywordtype">double</span> xpos, ypos;</div><div class="line"><a name="l00070"></a><span class="lineno">   70</span>&#160;            glfwGetCursorPos(render-&gt;getWindow(), &amp;xpos, &amp;ypos);</div><div class="line"><a name="l00071"></a><span class="lineno">   71</span>&#160;            <span class="comment">//Scale to 600 by 600 pixel window then multiplied by zoom</span></div><div class="line"><a name="l00072"></a><span class="lineno">   72</span>&#160;            xpos = render-&gt;<a class="code" href="class_render.html#ae426f00e82704fa09578f5446e22d915">width</a> * (xpos - 600.0/2.0)/(600.0/2.0);</div><div class="line"><a name="l00073"></a><span class="lineno">   73</span>&#160;            ypos = render-&gt;<a class="code" href="class_render.html#a48083b65ac9a863566dc3e3fff09a5b4">height</a> * (600.0/2.0-ypos) / (600.0/2.0);</div><div class="line"><a name="l00074"></a><span class="lineno">   74</span>&#160;            </div><div class="line"><a name="l00075"></a><span class="lineno">   75</span>&#160;            <span class="comment">//Get the Current position and heading</span></div><div class="line"><a name="l00076"></a><span class="lineno">   76</span>&#160;            glm::vec3 pos = render-&gt;<a class="code" href="class_render.html#a6505f30cb1ff7180fbaac9354ab126b0">getRobotPosition</a>();</div><div class="line"><a name="l00077"></a><span class="lineno">   77</span>&#160;            std::stringstream command;</div><div class="line"><a name="l00078"></a><span class="lineno">   78</span>&#160;            <span class="keywordtype">float</span> robotHeadingRads = render-&gt;<a class="code" href="class_render.html#ae3f76a2d2e8e781d24a8fb02f5c491fe">getRobotHeading</a>()*3.1415 / 180.0;</div><div class="line"><a name="l00079"></a><span class="lineno">   79</span>&#160;            </div><div class="line"><a name="l00080"></a><span class="lineno">   80</span>&#160;            <span class="comment">//Calculate Distance from center of screen to mouse</span></div><div class="line"><a name="l00081"></a><span class="lineno">   81</span>&#160;            <span class="keywordtype">float</span> distance = sqrt(xpos*xpos + ypos * ypos);</div><div class="line"><a name="l00082"></a><span class="lineno">   82</span>&#160;            </div><div class="line"><a name="l00083"></a><span class="lineno">   83</span>&#160;            <span class="comment">//Calcuate Delta Difference of Robot heading and where we want to go</span></div><div class="line"><a name="l00084"></a><span class="lineno">   84</span>&#160;            <span class="keywordtype">float</span> delta_degree = (atan2(-xpos, ypos) - render-&gt;<a class="code" href="class_render.html#ae3f76a2d2e8e781d24a8fb02f5c491fe">getRobotHeading</a>()*3.1415 / 180.0)*180.0 / 3.1415;</div><div class="line"><a name="l00085"></a><span class="lineno">   85</span>&#160;            <span class="keywordflow">if</span> (delta_degree &gt; 180) {</div><div class="line"><a name="l00086"></a><span class="lineno">   86</span>&#160;                delta_degree -= 360.0;</div><div class="line"><a name="l00087"></a><span class="lineno">   87</span>&#160;            }</div><div class="line"><a name="l00088"></a><span class="lineno">   88</span>&#160;            <span class="keywordflow">if</span> (delta_degree &lt; -180) {</div><div class="line"><a name="l00089"></a><span class="lineno">   89</span>&#160;                delta_degree += 360.0;</div><div class="line"><a name="l00090"></a><span class="lineno">   90</span>&#160;            }</div><div class="line"><a name="l00091"></a><span class="lineno">   91</span>&#160;            </div><div class="line"><a name="l00092"></a><span class="lineno">   92</span>&#160;            <span class="comment">//Send out how to turn and move the robot</span></div><div class="line"><a name="l00093"></a><span class="lineno">   93</span>&#160;            command &lt;&lt; <span class="stringliteral">&quot;m &quot;</span> &lt;&lt; delta_degree &lt;&lt;<span class="stringliteral">&quot; &quot;</span>&lt;&lt; distance ;</div><div class="line"><a name="l00094"></a><span class="lineno">   94</span>&#160;            std::cout&lt;&lt; <span class="stringliteral">&quot;m &quot;</span> &lt;&lt; delta_degree &lt;&lt; <span class="stringliteral">&quot; &quot;</span> &lt;&lt; distance &lt;&lt; std::endl;</div><div class="line"><a name="l00095"></a><span class="lineno">   95</span>&#160;            client-&gt;<a class="code" href="class_t_c_p_client.html#af83a77ee901507599e03e55976a99b7d">send</a>(command.str());</div><div class="line"><a name="l00096"></a><span class="lineno">   96</span>&#160;            <span class="comment">//render-&gt;addObstacles(pos.x + xpos, pos.y + ypos, 0);</span></div><div class="line"><a name="l00097"></a><span class="lineno">   97</span>&#160;        }</div><div class="line"><a name="l00098"></a><span class="lineno">   98</span>&#160;</div><div class="line"><a name="l00099"></a><span class="lineno">   99</span>&#160;        <span class="keywordflow">if</span> (mouseButtonRight != glfwGetMouseButton(render-&gt;getWindow(), GLFW_MOUSE_BUTTON_RIGHT) &amp;&amp; glfwGetMouseButton(render-&gt;getWindow(), GLFW_MOUSE_BUTTON_RIGHT) == GLFW_PRESS) {</div><div class="line"><a name="l00100"></a><span class="lineno">  100</span>&#160;            </div><div class="line"><a name="l00101"></a><span class="lineno">  101</span>&#160;            <span class="comment">//Get Mouse location</span></div><div class="line"><a name="l00102"></a><span class="lineno">  102</span>&#160;            <span class="keywordtype">double</span> xpos, ypos;</div><div class="line"><a name="l00103"></a><span class="lineno">  103</span>&#160;            glfwGetCursorPos(render-&gt;getWindow(), &amp;xpos, &amp;ypos);</div><div class="line"><a name="l00104"></a><span class="lineno">  104</span>&#160;            <span class="comment">//Scale to 600 by 600 pixel window then multiplied by zoom</span></div><div class="line"><a name="l00105"></a><span class="lineno">  105</span>&#160;            xpos = render-&gt;<a class="code" href="class_render.html#ae426f00e82704fa09578f5446e22d915">width</a> * (xpos - 600.0/2.0)/(600.0/2.0);</div><div class="line"><a name="l00106"></a><span class="lineno">  106</span>&#160;            ypos = render-&gt;<a class="code" href="class_render.html#a48083b65ac9a863566dc3e3fff09a5b4">height</a> * (600.0/2.0-ypos) / (600.0/2.0);</div><div class="line"><a name="l00107"></a><span class="lineno">  107</span>&#160;            </div><div class="line"><a name="l00108"></a><span class="lineno">  108</span>&#160;            <span class="comment">//Get the Current position and heading</span></div><div class="line"><a name="l00109"></a><span class="lineno">  109</span>&#160;            glm::vec3 pos = render-&gt;<a class="code" href="class_render.html#a6505f30cb1ff7180fbaac9354ab126b0">getRobotPosition</a>();</div><div class="line"><a name="l00110"></a><span class="lineno">  110</span>&#160;            std::stringstream command;</div><div class="line"><a name="l00111"></a><span class="lineno">  111</span>&#160;            <span class="keywordtype">float</span> robotHeadingRads = render-&gt;<a class="code" href="class_render.html#ae3f76a2d2e8e781d24a8fb02f5c491fe">getRobotHeading</a>()*3.1415 / 180.0;</div><div class="line"><a name="l00112"></a><span class="lineno">  112</span>&#160;            </div><div class="line"><a name="l00113"></a><span class="lineno">  113</span>&#160;            <span class="comment">//Calculate Distance from center of screen to mouse</span></div><div class="line"><a name="l00114"></a><span class="lineno">  114</span>&#160;            <span class="keywordtype">float</span> distance = sqrt(xpos*xpos + ypos * ypos);</div><div class="line"><a name="l00115"></a><span class="lineno">  115</span>&#160;            </div><div class="line"><a name="l00116"></a><span class="lineno">  116</span>&#160;            <span class="comment">//Calcuate Delta Difference of Robot heading and where we want to go</span></div><div class="line"><a name="l00117"></a><span class="lineno">  117</span>&#160;            <span class="keywordtype">float</span> delta_degree = (atan2(-xpos, ypos) - render-&gt;<a class="code" href="class_render.html#ae3f76a2d2e8e781d24a8fb02f5c491fe">getRobotHeading</a>()*3.1415 / 180.0)*180.0 / 3.1415;</div><div class="line"><a name="l00118"></a><span class="lineno">  118</span>&#160;            <span class="keywordflow">if</span> (delta_degree &gt; 180) {</div><div class="line"><a name="l00119"></a><span class="lineno">  119</span>&#160;                delta_degree -= 360.0;</div><div class="line"><a name="l00120"></a><span class="lineno">  120</span>&#160;            }</div><div class="line"><a name="l00121"></a><span class="lineno">  121</span>&#160;            <span class="keywordflow">if</span> (delta_degree &lt; -180) {</div><div class="line"><a name="l00122"></a><span class="lineno">  122</span>&#160;                delta_degree += 360.0;</div><div class="line"><a name="l00123"></a><span class="lineno">  123</span>&#160;            }</div><div class="line"><a name="l00124"></a><span class="lineno">  124</span>&#160;            </div><div class="line"><a name="l00125"></a><span class="lineno">  125</span>&#160;            <span class="comment">//Send out how to turn and move the robot</span></div><div class="line"><a name="l00126"></a><span class="lineno">  126</span>&#160;            command &lt;&lt; <span class="stringliteral">&quot;m &quot;</span> &lt;&lt; delta_degree &lt;&lt; <span class="stringliteral">&quot; &quot;</span> &lt;&lt; 0.0;</div><div class="line"><a name="l00127"></a><span class="lineno">  127</span>&#160;            <span class="comment">//render-&gt;setRobotPosition(pos.x + xpos, pos.y + ypos, 0);</span></div><div class="line"><a name="l00128"></a><span class="lineno">  128</span>&#160;            client-&gt;<a class="code" href="class_t_c_p_client.html#af83a77ee901507599e03e55976a99b7d">send</a>(command.str());</div><div class="line"><a name="l00129"></a><span class="lineno">  129</span>&#160;            <span class="comment">//render-&gt;addObstacles(pos.x + xpos, pos.y + ypos, 0);</span></div><div class="line"><a name="l00130"></a><span class="lineno">  130</span>&#160;        }</div><div class="line"><a name="l00131"></a><span class="lineno">  131</span>&#160;</div><div class="line"><a name="l00132"></a><span class="lineno">  132</span>&#160;</div><div class="line"><a name="l00133"></a><span class="lineno">  133</span>&#160;        <span class="keywordflow">if</span> (keyboard_f != glfwGetKey(render-&gt;getWindow(), GLFW_KEY_F) &amp;&amp; glfwGetKey(render-&gt;getWindow(), GLFW_KEY_F) == GLFW_PRESS) {</div><div class="line"><a name="l00134"></a><span class="lineno">  134</span>&#160;            <span class="comment">//Get Mouse location</span></div><div class="line"><a name="l00135"></a><span class="lineno">  135</span>&#160;            <span class="keywordtype">double</span> xpos, ypos;</div><div class="line"><a name="l00136"></a><span class="lineno">  136</span>&#160;            glfwGetCursorPos(render-&gt;getWindow(), &amp;xpos, &amp;ypos);</div><div class="line"><a name="l00137"></a><span class="lineno">  137</span>&#160;            <span class="comment">//Scale to 600 by 600 pixel window then multiplied by zoom</span></div><div class="line"><a name="l00138"></a><span class="lineno">  138</span>&#160;            xpos = render-&gt;<a class="code" href="class_render.html#ae426f00e82704fa09578f5446e22d915">width</a> * (xpos - 600.0/2.0)/(600.0/2.0);</div><div class="line"><a name="l00139"></a><span class="lineno">  139</span>&#160;            ypos = render-&gt;<a class="code" href="class_render.html#a48083b65ac9a863566dc3e3fff09a5b4">height</a> * (600.0/2.0-ypos) / (600.0/2.0);</div><div class="line"><a name="l00140"></a><span class="lineno">  140</span>&#160;            </div><div class="line"><a name="l00141"></a><span class="lineno">  141</span>&#160;            <span class="comment">//Get the Current position and heading</span></div><div class="line"><a name="l00142"></a><span class="lineno">  142</span>&#160;            glm::vec3 pos = render-&gt;<a class="code" href="class_render.html#a6505f30cb1ff7180fbaac9354ab126b0">getRobotPosition</a>();</div><div class="line"><a name="l00143"></a><span class="lineno">  143</span>&#160;            std::stringstream command;</div><div class="line"><a name="l00144"></a><span class="lineno">  144</span>&#160;            <span class="keywordtype">float</span> robotHeadingRads = render-&gt;<a class="code" href="class_render.html#ae3f76a2d2e8e781d24a8fb02f5c491fe">getRobotHeading</a>()*3.1415 / 180.0;</div><div class="line"><a name="l00145"></a><span class="lineno">  145</span>&#160;            </div><div class="line"><a name="l00146"></a><span class="lineno">  146</span>&#160;            <span class="comment">//Calculate Distance from center of screen to mouse</span></div><div class="line"><a name="l00147"></a><span class="lineno">  147</span>&#160;            <span class="keywordtype">float</span> distance = sqrt(xpos*xpos + ypos * ypos);</div><div class="line"><a name="l00148"></a><span class="lineno">  148</span>&#160;            </div><div class="line"><a name="l00149"></a><span class="lineno">  149</span>&#160;            <span class="comment">//Calcuate Delta Difference of Robot heading and where we want to go</span></div><div class="line"><a name="l00150"></a><span class="lineno">  150</span>&#160;            <span class="keywordtype">float</span> delta_degree = (atan2(-xpos, ypos) - render-&gt;<a class="code" href="class_render.html#ae3f76a2d2e8e781d24a8fb02f5c491fe">getRobotHeading</a>()*3.1415 / 180.0)*180.0 / 3.1415;</div><div class="line"><a name="l00151"></a><span class="lineno">  151</span>&#160;            <span class="keywordflow">if</span> (delta_degree &gt; 180) {</div><div class="line"><a name="l00152"></a><span class="lineno">  152</span>&#160;                delta_degree -= 360.0;</div><div class="line"><a name="l00153"></a><span class="lineno">  153</span>&#160;            }</div><div class="line"><a name="l00154"></a><span class="lineno">  154</span>&#160;            <span class="keywordflow">if</span> (delta_degree &lt; -180) {</div><div class="line"><a name="l00155"></a><span class="lineno">  155</span>&#160;                delta_degree += 360.0;</div><div class="line"><a name="l00156"></a><span class="lineno">  156</span>&#160;            }</div><div class="line"><a name="l00157"></a><span class="lineno">  157</span>&#160;            </div><div class="line"><a name="l00158"></a><span class="lineno">  158</span>&#160;            <span class="comment">//Send out how to turn and move the robot</span></div><div class="line"><a name="l00159"></a><span class="lineno">  159</span>&#160;            command &lt;&lt; <span class="stringliteral">&quot;f &quot;</span> &lt;&lt; delta_degree &lt;&lt; <span class="stringliteral">&quot; &quot;</span> &lt;&lt; distance;</div><div class="line"><a name="l00160"></a><span class="lineno">  160</span>&#160;            std::cout &lt;&lt; <span class="stringliteral">&quot;f &quot;</span> &lt;&lt; delta_degree &lt;&lt; <span class="stringliteral">&quot; &quot;</span> &lt;&lt; distance &lt;&lt; std::endl;</div><div class="line"><a name="l00161"></a><span class="lineno">  161</span>&#160;            client-&gt;<a class="code" href="class_t_c_p_client.html#af83a77ee901507599e03e55976a99b7d">send</a>(command.str());</div><div class="line"><a name="l00162"></a><span class="lineno">  162</span>&#160;        }</div><div class="line"><a name="l00163"></a><span class="lineno">  163</span>&#160;</div><div class="line"><a name="l00164"></a><span class="lineno">  164</span>&#160;        <span class="comment">//Activate Sensor Sweep</span></div><div class="line"><a name="l00165"></a><span class="lineno">  165</span>&#160;        <span class="keywordflow">if</span> (keyboard_s != glfwGetKey(render-&gt;getWindow(), GLFW_KEY_S) &amp;&amp; glfwGetKey(render-&gt;getWindow(), GLFW_KEY_S) == GLFW_PRESS) {</div><div class="line"><a name="l00166"></a><span class="lineno">  166</span>&#160;            client-&gt;<a class="code" href="class_t_c_p_client.html#af83a77ee901507599e03e55976a99b7d">send</a>(std::string(<span class="stringliteral">&quot;s&quot;</span>));</div><div class="line"><a name="l00167"></a><span class="lineno">  167</span>&#160;        }</div><div class="line"><a name="l00168"></a><span class="lineno">  168</span>&#160;</div><div class="line"><a name="l00169"></a><span class="lineno">  169</span>&#160;</div><div class="line"><a name="l00170"></a><span class="lineno">  170</span>&#160;</div><div class="line"><a name="l00171"></a><span class="lineno">  171</span>&#160;        <span class="comment">//Play a sound</span></div><div class="line"><a name="l00172"></a><span class="lineno">  172</span>&#160;        <span class="keywordflow">if</span> (keyboard_p != glfwGetKey(render-&gt;getWindow(), GLFW_KEY_P) &amp;&amp; glfwGetKey(render-&gt;getWindow(), GLFW_KEY_P) == GLFW_PRESS) {</div><div class="line"><a name="l00173"></a><span class="lineno">  173</span>&#160;            client-&gt;<a class="code" href="class_t_c_p_client.html#af83a77ee901507599e03e55976a99b7d">send</a>(std::string(<span class="stringliteral">&quot;p&quot;</span>));</div><div class="line"><a name="l00174"></a><span class="lineno">  174</span>&#160;        }</div><div class="line"><a name="l00175"></a><span class="lineno">  175</span>&#160;        </div><div class="line"><a name="l00176"></a><span class="lineno">  176</span>&#160;        <span class="comment">//Place a obstacle on map</span></div><div class="line"><a name="l00177"></a><span class="lineno">  177</span>&#160;        <span class="keywordflow">if</span> (keyboard_v != glfwGetKey(render-&gt;getWindow(), GLFW_KEY_V) &amp;&amp; glfwGetKey(render-&gt;getWindow(), GLFW_KEY_V) == GLFW_PRESS) {</div><div class="line"><a name="l00178"></a><span class="lineno">  178</span>&#160;            <span class="comment">//Get mouse coordinates scaled by window size in pixels.</span></div><div class="line"><a name="l00179"></a><span class="lineno">  179</span>&#160;            <span class="keywordtype">double</span> xpos, ypos;</div><div class="line"><a name="l00180"></a><span class="lineno">  180</span>&#160;            glfwGetCursorPos(render-&gt;getWindow(), &amp;xpos, &amp;ypos);</div><div class="line"><a name="l00181"></a><span class="lineno">  181</span>&#160;            xpos = render-&gt;<a class="code" href="class_render.html#ae426f00e82704fa09578f5446e22d915">width</a> * (xpos - 600.0 / 2.0) / (600.0 / 2.0);</div><div class="line"><a name="l00182"></a><span class="lineno">  182</span>&#160;            ypos = render-&gt;<a class="code" href="class_render.html#a48083b65ac9a863566dc3e3fff09a5b4">height</a> * (600.0 / 2.0 - ypos) / (600.0 / 2.0);</div><div class="line"><a name="l00183"></a><span class="lineno">  183</span>&#160;</div><div class="line"><a name="l00184"></a><span class="lineno">  184</span>&#160;            render-&gt;<a class="code" href="class_render.html#a7ca7709673e2a045a5d081b70eff0c24">addObstacles</a>(xpos, ypos, 4);</div><div class="line"><a name="l00185"></a><span class="lineno">  185</span>&#160;        }</div><div class="line"><a name="l00186"></a><span class="lineno">  186</span>&#160;        <span class="comment">//Zoom in by 500mm</span></div><div class="line"><a name="l00187"></a><span class="lineno">  187</span>&#160;        <span class="keywordflow">if</span> (keyboard_minus != glfwGetKey(render-&gt;getWindow(), GLFW_KEY_MINUS) &amp;&amp; glfwGetKey(render-&gt;getWindow(), GLFW_KEY_MINUS) == GLFW_PRESS) {</div><div class="line"><a name="l00188"></a><span class="lineno">  188</span>&#160;            render-&gt;<a class="code" href="class_render.html#a8f9e3fbd4a2142fea7d5933c54c36ee1">setView</a>(-500);</div><div class="line"><a name="l00189"></a><span class="lineno">  189</span>&#160;        }</div><div class="line"><a name="l00190"></a><span class="lineno">  190</span>&#160;        <span class="comment">//Zoom out by 500mm</span></div><div class="line"><a name="l00191"></a><span class="lineno">  191</span>&#160;        <span class="keywordflow">if</span> (keyboard_plus != glfwGetKey(render-&gt;getWindow(), GLFW_KEY_EQUAL) &amp;&amp; glfwGetKey(render-&gt;getWindow(), GLFW_KEY_EQUAL) == GLFW_PRESS) {</div><div class="line"><a name="l00192"></a><span class="lineno">  192</span>&#160;            render-&gt;<a class="code" href="class_render.html#a8f9e3fbd4a2142fea7d5933c54c36ee1">setView</a>(500);</div><div class="line"><a name="l00193"></a><span class="lineno">  193</span>&#160;        }</div><div class="line"><a name="l00194"></a><span class="lineno">  194</span>&#160;</div><div class="line"><a name="l00195"></a><span class="lineno">  195</span>&#160;        <span class="comment">//Set button to current state so we can only capture one event per press.</span></div><div class="line"><a name="l00196"></a><span class="lineno">  196</span>&#160;        keyboard_p = glfwGetKey(render-&gt;getWindow(), GLFW_KEY_P);</div><div class="line"><a name="l00197"></a><span class="lineno">  197</span>&#160;        keyboard_s = glfwGetKey(render-&gt;getWindow(), GLFW_KEY_S);</div><div class="line"><a name="l00198"></a><span class="lineno">  198</span>&#160;        keyboard_v = glfwGetKey(render-&gt;getWindow(), GLFW_KEY_V);</div><div class="line"><a name="l00199"></a><span class="lineno">  199</span>&#160;        keyboard_f = glfwGetKey(render-&gt;getWindow(), GLFW_KEY_F);</div><div class="line"><a name="l00200"></a><span class="lineno">  200</span>&#160;        keyboard_minus = glfwGetKey(render-&gt;getWindow(), GLFW_KEY_MINUS);</div><div class="line"><a name="l00201"></a><span class="lineno">  201</span>&#160;        keyboard_plus = glfwGetKey(render-&gt;getWindow(), GLFW_KEY_EQUAL);</div><div class="line"><a name="l00202"></a><span class="lineno">  202</span>&#160;        mouseButtonLeft = glfwGetMouseButton(render-&gt;getWindow(), GLFW_MOUSE_BUTTON_LEFT);</div><div class="line"><a name="l00203"></a><span class="lineno">  203</span>&#160;        mouseButtonRight = glfwGetMouseButton(render-&gt;getWindow(), GLFW_MOUSE_BUTTON_RIGHT);</div><div class="line"><a name="l00204"></a><span class="lineno">  204</span>&#160;        </div><div class="line"><a name="l00205"></a><span class="lineno">  205</span>&#160;        <span class="comment">//Render in this order as every render overwrites</span></div><div class="line"><a name="l00206"></a><span class="lineno">  206</span>&#160;        <span class="comment">//Thus the priority we want to see is:</span></div><div class="line"><a name="l00207"></a><span class="lineno">  207</span>&#160;        <span class="comment">//1) Heading Arrow</span></div><div class="line"><a name="l00208"></a><span class="lineno">  208</span>&#160;        <span class="comment">//2) Robot</span></div><div class="line"><a name="l00209"></a><span class="lineno">  209</span>&#160;        <span class="comment">//3) Sensor Data</span></div><div class="line"><a name="l00210"></a><span class="lineno">  210</span>&#160;        <span class="comment">//4) Obstacles</span></div><div class="line"><a name="l00211"></a><span class="lineno">  211</span>&#160;        <span class="comment">//5) Sonar Line</span></div><div class="line"><a name="l00212"></a><span class="lineno">  212</span>&#160;        <span class="comment">//6) Map</span></div><div class="line"><a name="l00213"></a><span class="lineno">  213</span>&#160;        render-&gt;<a class="code" href="class_render.html#a2d6238081fd4a76a2755d078b9b9b6fc">renderMap</a>();</div><div class="line"><a name="l00214"></a><span class="lineno">  214</span>&#160;        render-&gt;renderSonarLine();</div><div class="line"><a name="l00215"></a><span class="lineno">  215</span>&#160;        render-&gt;<a class="code" href="class_render.html#af473a7ea3d059175e0f1f085326c53fe">renderObstacles</a>();</div><div class="line"><a name="l00216"></a><span class="lineno">  216</span>&#160;        render-&gt;<a class="code" href="class_render.html#a4f3a31b51a2a4eb97b1aa38720fe66a5">renderSensors</a>();</div><div class="line"><a name="l00217"></a><span class="lineno">  217</span>&#160;        render-&gt;<a class="code" href="class_render.html#a5e195ec754f2f525da6ed44c59110f87">renderRobot</a>();</div><div class="line"><a name="l00218"></a><span class="lineno">  218</span>&#160;        render-&gt;<a class="code" href="class_render.html#a15d8aae84de7cbdc642c502ebe06edd6">renderHeading</a>();</div><div class="line"><a name="l00219"></a><span class="lineno">  219</span>&#160;        </div><div class="line"><a name="l00220"></a><span class="lineno">  220</span>&#160;        <span class="comment">//Render to Screen</span></div><div class="line"><a name="l00221"></a><span class="lineno">  221</span>&#160;        glfwSwapBuffers(render-&gt;getWindow());</div><div class="line"><a name="l00222"></a><span class="lineno">  222</span>&#160;        <span class="comment">//Poll for Events</span></div><div class="line"><a name="l00223"></a><span class="lineno">  223</span>&#160;        glfwPollEvents();</div><div class="line"><a name="l00224"></a><span class="lineno">  224</span>&#160;</div><div class="line"><a name="l00225"></a><span class="lineno">  225</span>&#160;    }</div><div class="line"><a name="l00226"></a><span class="lineno">  226</span>&#160;    </div><div class="line"><a name="l00227"></a><span class="lineno">  227</span>&#160;    <span class="comment">//Data Management and Garbage Collection</span></div><div class="line"><a name="l00228"></a><span class="lineno">  228</span>&#160;    <span class="keyword">delete</span> client;</div><div class="line"><a name="l00229"></a><span class="lineno">  229</span>&#160;    <span class="keyword">delete</span> render;</div><div class="line"><a name="l00230"></a><span class="lineno">  230</span>&#160;<span class="keywordflow">return</span> 0;</div><div class="line"><a name="l00231"></a><span class="lineno">  231</span>&#160;}</div><div class="ttc" id="class_render_html"><div class="ttname"><a href="class_render.html">Render</a></div><div class="ttdef"><b>Definition:</b> <a href="render_8h_source.html#l00041">render.h:41</a></div></div>
+<a href="main_8cpp.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno">    1</span>&#160;</div><div class="line"><a name="l00013"></a><span class="lineno">   13</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="render_8h.html">render.h</a>&quot;</span></div><div class="line"><a name="l00014"></a><span class="lineno">   14</span>&#160;</div><div class="line"><a name="l00015"></a><span class="lineno">   15</span>&#160;<span class="preprocessor">#define GLEW_STATIC</span></div><div class="line"><a name="l00016"></a><span class="lineno">   16</span>&#160;<span class="preprocessor">#include &lt;GL/glew.h&gt;</span></div><div class="line"><a name="l00017"></a><span class="lineno">   17</span>&#160;</div><div class="line"><a name="l00018"></a><span class="lineno">   18</span>&#160;<span class="preprocessor">#include &lt;gl/GL.h&gt;</span></div><div class="line"><a name="l00019"></a><span class="lineno">   19</span>&#160;<span class="preprocessor">#include &lt;GLFW/glfw3.h&gt;</span></div><div class="line"><a name="l00020"></a><span class="lineno">   20</span>&#160;</div><div class="line"><a name="l00021"></a><span class="lineno">   21</span>&#160;<span class="preprocessor">#include &lt;glm/glm.hpp&gt;</span></div><div class="line"><a name="l00022"></a><span class="lineno">   22</span>&#160;<span class="preprocessor">#include &lt;glm/gtc/matrix_transform.hpp&gt;</span></div><div class="line"><a name="l00023"></a><span class="lineno">   23</span>&#160;<span class="preprocessor">#include &lt;iostream&gt;</span></div><div class="line"><a name="l00024"></a><span class="lineno">   24</span>&#160;<span class="preprocessor">#include &lt;vector&gt;</span></div><div class="line"><a name="l00025"></a><span class="lineno">   25</span>&#160;<span class="preprocessor">#include &lt;sstream&gt;</span></div><div class="line"><a name="l00026"></a><span class="lineno">   26</span>&#160;<span class="preprocessor">#include &lt;fstream&gt;</span></div><div class="line"><a name="l00027"></a><span class="lineno">   27</span>&#160;<span class="preprocessor">#include &lt;streambuf&gt;</span></div><div class="line"><a name="l00028"></a><span class="lineno">   28</span>&#160;</div><div class="line"><a name="l00029"></a><span class="lineno">   29</span>&#160;</div><div class="line"><a name="l00030"></a><span class="lineno">   30</span>&#160;<span class="preprocessor">#include &lt;boost/asio.hpp&gt;</span></div><div class="line"><a name="l00031"></a><span class="lineno">   31</span>&#160;<span class="preprocessor">#include &lt;boost/array.hpp&gt;</span></div><div class="line"><a name="l00032"></a><span class="lineno">   32</span>&#160;<span class="preprocessor">#include &lt;boost/bind.hpp&gt;</span></div><div class="line"><a name="l00033"></a><span class="lineno">   33</span>&#160;<span class="preprocessor">#include &lt;boost/thread.hpp&gt;</span></div><div class="line"><a name="l00034"></a><span class="lineno">   34</span>&#160;<span class="preprocessor">#include &lt;boost/thread.hpp&gt;</span></div><div class="line"><a name="l00035"></a><span class="lineno">   35</span>&#160;</div><div class="line"><a name="l00036"></a><span class="lineno">   36</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="tcp_8h.html">tcp.h</a>&quot;</span></div><div class="line"><a name="l00037"></a><span class="lineno">   37</span>&#160;</div><div class="line"><a name="l00038"></a><span class="lineno">   38</span>&#160;</div><div class="line"><a name="l00039"></a><span class="lineno">   39</span>&#160;<span class="keywordtype">int</span> <a class="code" href="main_8c.html#a840291bc02cba5474a4cb46a9b9566fe">main</a>(<span class="keywordtype">int</span> argc, <span class="keywordtype">char</span> * argv[]){</div><div class="line"><a name="l00040"></a><span class="lineno">   40</span>&#160;</div><div class="line"><a name="l00041"></a><span class="lineno">   41</span>&#160;    <span class="comment">//Start the renderer</span></div><div class="line"><a name="l00042"></a><span class="lineno">   42</span>&#160;    <a class="code" href="class_render.html">Render</a>* render = <span class="keyword">new</span> <a class="code" href="class_render.html">Render</a>();</div><div class="line"><a name="l00043"></a><span class="lineno">   43</span>&#160;</div><div class="line"><a name="l00044"></a><span class="lineno">   44</span>&#160;    <span class="comment">//Start TCP Internet</span></div><div class="line"><a name="l00045"></a><span class="lineno">   45</span>&#160;    boost::asio::io_context context;</div><div class="line"><a name="l00046"></a><span class="lineno">   46</span>&#160;    <a class="code" href="class_t_c_p_client.html">TCPClient</a> * client = <span class="keyword">new</span> <a class="code" href="class_t_c_p_client.html">TCPClient</a>(context,<span class="stringliteral">&quot;192.168.1.1&quot;</span>, <span class="stringliteral">&quot;288&quot;</span>, render);</div><div class="line"><a name="l00047"></a><span class="lineno">   47</span>&#160;</div><div class="line"><a name="l00048"></a><span class="lineno">   48</span>&#160;</div><div class="line"><a name="l00049"></a><span class="lineno">   49</span>&#160;</div><div class="line"><a name="l00050"></a><span class="lineno">   50</span>&#160;    <span class="comment">//Initialize User Buttons</span></div><div class="line"><a name="l00051"></a><span class="lineno">   51</span>&#160;    <span class="keywordtype">int</span> mouseButtonLeft = GLFW_RELEASE;</div><div class="line"><a name="l00052"></a><span class="lineno">   52</span>&#160;    <span class="keywordtype">int</span> mouseButtonRight = GLFW_RELEASE;</div><div class="line"><a name="l00053"></a><span class="lineno">   53</span>&#160;    <span class="keywordtype">int</span> keyboard_s = GLFW_RELEASE;</div><div class="line"><a name="l00054"></a><span class="lineno">   54</span>&#160;    <span class="keywordtype">int</span> keyboard_p = GLFW_RELEASE;</div><div class="line"><a name="l00055"></a><span class="lineno">   55</span>&#160;    <span class="keywordtype">int</span> keyboard_v = GLFW_RELEASE;</div><div class="line"><a name="l00056"></a><span class="lineno">   56</span>&#160;    <span class="keywordtype">int</span> keyboard_f = GLFW_RELEASE;</div><div class="line"><a name="l00057"></a><span class="lineno">   57</span>&#160;    <span class="keywordtype">int</span> keyboard_minus = GLFW_RELEASE;</div><div class="line"><a name="l00058"></a><span class="lineno">   58</span>&#160;    <span class="keywordtype">int</span> keyboard_plus = GLFW_RELEASE;</div><div class="line"><a name="l00059"></a><span class="lineno">   59</span>&#160;    <span class="comment">//Run until an ESC key is pressed or window is closed.</span></div><div class="line"><a name="l00060"></a><span class="lineno">   60</span>&#160;    <span class="keywordflow">while</span> (glfwGetKey(render-&gt;getWindow(), GLFW_KEY_ESCAPE) != GLFW_PRESS &amp;&amp;</div><div class="line"><a name="l00061"></a><span class="lineno">   61</span>&#160;        glfwWindowShouldClose(render-&gt;getWindow()) == 0) {</div><div class="line"><a name="l00062"></a><span class="lineno">   62</span>&#160;        </div><div class="line"><a name="l00063"></a><span class="lineno">   63</span>&#160;        <span class="comment">//Clear the screen buffer</span></div><div class="line"><a name="l00064"></a><span class="lineno">   64</span>&#160;        glClear(GL_COLOR_BUFFER_BIT);</div><div class="line"><a name="l00065"></a><span class="lineno">   65</span>&#160;        </div><div class="line"><a name="l00066"></a><span class="lineno">   66</span>&#160;        <span class="comment">//Check Left Click</span></div><div class="line"><a name="l00067"></a><span class="lineno">   67</span>&#160;        <span class="keywordflow">if</span> (mouseButtonLeft != glfwGetMouseButton(render-&gt;getWindow(), GLFW_MOUSE_BUTTON_LEFT) &amp;&amp; glfwGetMouseButton(render-&gt;getWindow(), GLFW_MOUSE_BUTTON_LEFT) == GLFW_PRESS) {</div><div class="line"><a name="l00068"></a><span class="lineno">   68</span>&#160;            <span class="comment">//Get Mouse location</span></div><div class="line"><a name="l00069"></a><span class="lineno">   69</span>&#160;            <span class="keywordtype">double</span> xpos, ypos;</div><div class="line"><a name="l00070"></a><span class="lineno">   70</span>&#160;            glfwGetCursorPos(render-&gt;getWindow(), &amp;xpos, &amp;ypos);</div><div class="line"><a name="l00071"></a><span class="lineno">   71</span>&#160;            <span class="comment">//Scale to 600 by 600 pixel window then multiplied by zoom</span></div><div class="line"><a name="l00072"></a><span class="lineno">   72</span>&#160;            xpos = render-&gt;<a class="code" href="class_render.html#ae426f00e82704fa09578f5446e22d915">width</a> * (xpos - 600.0/2.0)/(600.0/2.0);</div><div class="line"><a name="l00073"></a><span class="lineno">   73</span>&#160;            ypos = render-&gt;<a class="code" href="class_render.html#a48083b65ac9a863566dc3e3fff09a5b4">height</a> * (600.0/2.0-ypos) / (600.0/2.0);</div><div class="line"><a name="l00074"></a><span class="lineno">   74</span>&#160;            </div><div class="line"><a name="l00075"></a><span class="lineno">   75</span>&#160;            <span class="comment">//Get the Current position and heading</span></div><div class="line"><a name="l00076"></a><span class="lineno">   76</span>&#160;            glm::vec3 pos = render-&gt;<a class="code" href="class_render.html#a6505f30cb1ff7180fbaac9354ab126b0">getRobotPosition</a>();</div><div class="line"><a name="l00077"></a><span class="lineno">   77</span>&#160;            std::stringstream command;</div><div class="line"><a name="l00078"></a><span class="lineno">   78</span>&#160;            <span class="keywordtype">float</span> robotHeadingRads = render-&gt;<a class="code" href="class_render.html#ae3f76a2d2e8e781d24a8fb02f5c491fe">getRobotHeading</a>()*3.1415 / 180.0;</div><div class="line"><a name="l00079"></a><span class="lineno">   79</span>&#160;            </div><div class="line"><a name="l00080"></a><span class="lineno">   80</span>&#160;            <span class="comment">//Calculate Distance from center of screen to mouse</span></div><div class="line"><a name="l00081"></a><span class="lineno">   81</span>&#160;            <span class="keywordtype">float</span> distance = sqrt(xpos*xpos + ypos * ypos);</div><div class="line"><a name="l00082"></a><span class="lineno">   82</span>&#160;            </div><div class="line"><a name="l00083"></a><span class="lineno">   83</span>&#160;            <span class="comment">//Calcuate Delta Difference of Robot heading and where we want to go</span></div><div class="line"><a name="l00084"></a><span class="lineno">   84</span>&#160;            <span class="keywordtype">float</span> delta_degree = (atan2(-xpos, ypos) - render-&gt;<a class="code" href="class_render.html#ae3f76a2d2e8e781d24a8fb02f5c491fe">getRobotHeading</a>()*3.1415 / 180.0)*180.0 / 3.1415;</div><div class="line"><a name="l00085"></a><span class="lineno">   85</span>&#160;            <span class="keywordflow">if</span> (delta_degree &gt; 180) {</div><div class="line"><a name="l00086"></a><span class="lineno">   86</span>&#160;                delta_degree -= 360.0;</div><div class="line"><a name="l00087"></a><span class="lineno">   87</span>&#160;            }</div><div class="line"><a name="l00088"></a><span class="lineno">   88</span>&#160;            <span class="keywordflow">if</span> (delta_degree &lt; -180) {</div><div class="line"><a name="l00089"></a><span class="lineno">   89</span>&#160;                delta_degree += 360.0;</div><div class="line"><a name="l00090"></a><span class="lineno">   90</span>&#160;            }</div><div class="line"><a name="l00091"></a><span class="lineno">   91</span>&#160;            </div><div class="line"><a name="l00092"></a><span class="lineno">   92</span>&#160;            <span class="comment">//Send out how to turn and move the robot</span></div><div class="line"><a name="l00093"></a><span class="lineno">   93</span>&#160;            command &lt;&lt; <span class="stringliteral">&quot;m &quot;</span> &lt;&lt; delta_degree &lt;&lt;<span class="stringliteral">&quot; &quot;</span>&lt;&lt; distance ;</div><div class="line"><a name="l00094"></a><span class="lineno">   94</span>&#160;            std::cout&lt;&lt; <span class="stringliteral">&quot;m &quot;</span> &lt;&lt; delta_degree &lt;&lt; <span class="stringliteral">&quot; &quot;</span> &lt;&lt; distance &lt;&lt; std::endl;</div><div class="line"><a name="l00095"></a><span class="lineno">   95</span>&#160;            client-&gt;<a class="code" href="class_t_c_p_client.html#af83a77ee901507599e03e55976a99b7d">send</a>(command.str());</div><div class="line"><a name="l00096"></a><span class="lineno">   96</span>&#160;            <span class="comment">//render-&gt;addObstacles(pos.x + xpos, pos.y + ypos, 0);</span></div><div class="line"><a name="l00097"></a><span class="lineno">   97</span>&#160;        }</div><div class="line"><a name="l00098"></a><span class="lineno">   98</span>&#160;</div><div class="line"><a name="l00099"></a><span class="lineno">   99</span>&#160;        <span class="keywordflow">if</span> (mouseButtonRight != glfwGetMouseButton(render-&gt;getWindow(), GLFW_MOUSE_BUTTON_RIGHT) &amp;&amp; glfwGetMouseButton(render-&gt;getWindow(), GLFW_MOUSE_BUTTON_RIGHT) == GLFW_PRESS) {</div><div class="line"><a name="l00100"></a><span class="lineno">  100</span>&#160;            </div><div class="line"><a name="l00101"></a><span class="lineno">  101</span>&#160;            <span class="comment">//Get Mouse location</span></div><div class="line"><a name="l00102"></a><span class="lineno">  102</span>&#160;            <span class="keywordtype">double</span> xpos, ypos;</div><div class="line"><a name="l00103"></a><span class="lineno">  103</span>&#160;            glfwGetCursorPos(render-&gt;getWindow(), &amp;xpos, &amp;ypos);</div><div class="line"><a name="l00104"></a><span class="lineno">  104</span>&#160;            <span class="comment">//Scale to 600 by 600 pixel window then multiplied by zoom</span></div><div class="line"><a name="l00105"></a><span class="lineno">  105</span>&#160;            xpos = render-&gt;<a class="code" href="class_render.html#ae426f00e82704fa09578f5446e22d915">width</a> * (xpos - 600.0/2.0)/(600.0/2.0);</div><div class="line"><a name="l00106"></a><span class="lineno">  106</span>&#160;            ypos = render-&gt;<a class="code" href="class_render.html#a48083b65ac9a863566dc3e3fff09a5b4">height</a> * (600.0/2.0-ypos) / (600.0/2.0);</div><div class="line"><a name="l00107"></a><span class="lineno">  107</span>&#160;            </div><div class="line"><a name="l00108"></a><span class="lineno">  108</span>&#160;            <span class="comment">//Get the Current position and heading</span></div><div class="line"><a name="l00109"></a><span class="lineno">  109</span>&#160;            glm::vec3 pos = render-&gt;<a class="code" href="class_render.html#a6505f30cb1ff7180fbaac9354ab126b0">getRobotPosition</a>();</div><div class="line"><a name="l00110"></a><span class="lineno">  110</span>&#160;            std::stringstream command;</div><div class="line"><a name="l00111"></a><span class="lineno">  111</span>&#160;            <span class="keywordtype">float</span> robotHeadingRads = render-&gt;<a class="code" href="class_render.html#ae3f76a2d2e8e781d24a8fb02f5c491fe">getRobotHeading</a>()*3.1415 / 180.0;</div><div class="line"><a name="l00112"></a><span class="lineno">  112</span>&#160;            </div><div class="line"><a name="l00113"></a><span class="lineno">  113</span>&#160;            <span class="comment">//Calculate Distance from center of screen to mouse</span></div><div class="line"><a name="l00114"></a><span class="lineno">  114</span>&#160;            <span class="keywordtype">float</span> distance = sqrt(xpos*xpos + ypos * ypos);</div><div class="line"><a name="l00115"></a><span class="lineno">  115</span>&#160;            </div><div class="line"><a name="l00116"></a><span class="lineno">  116</span>&#160;            <span class="comment">//Calcuate Delta Difference of Robot heading and where we want to go</span></div><div class="line"><a name="l00117"></a><span class="lineno">  117</span>&#160;            <span class="keywordtype">float</span> delta_degree = (atan2(-xpos, ypos) - render-&gt;<a class="code" href="class_render.html#ae3f76a2d2e8e781d24a8fb02f5c491fe">getRobotHeading</a>()*3.1415 / 180.0)*180.0 / 3.1415;</div><div class="line"><a name="l00118"></a><span class="lineno">  118</span>&#160;            <span class="keywordflow">if</span> (delta_degree &gt; 180) {</div><div class="line"><a name="l00119"></a><span class="lineno">  119</span>&#160;                delta_degree -= 360.0;</div><div class="line"><a name="l00120"></a><span class="lineno">  120</span>&#160;            }</div><div class="line"><a name="l00121"></a><span class="lineno">  121</span>&#160;            <span class="keywordflow">if</span> (delta_degree &lt; -180) {</div><div class="line"><a name="l00122"></a><span class="lineno">  122</span>&#160;                delta_degree += 360.0;</div><div class="line"><a name="l00123"></a><span class="lineno">  123</span>&#160;            }</div><div class="line"><a name="l00124"></a><span class="lineno">  124</span>&#160;            </div><div class="line"><a name="l00125"></a><span class="lineno">  125</span>&#160;            <span class="comment">//Send out how to turn and move the robot</span></div><div class="line"><a name="l00126"></a><span class="lineno">  126</span>&#160;            command &lt;&lt; <span class="stringliteral">&quot;m &quot;</span> &lt;&lt; delta_degree &lt;&lt; <span class="stringliteral">&quot; &quot;</span> &lt;&lt; 0.0;</div><div class="line"><a name="l00127"></a><span class="lineno">  127</span>&#160;            <span class="comment">//render-&gt;setRobotPosition(pos.x + xpos, pos.y + ypos, 0);</span></div><div class="line"><a name="l00128"></a><span class="lineno">  128</span>&#160;            client-&gt;<a class="code" href="class_t_c_p_client.html#af83a77ee901507599e03e55976a99b7d">send</a>(command.str());</div><div class="line"><a name="l00129"></a><span class="lineno">  129</span>&#160;            <span class="comment">//render-&gt;addObstacles(pos.x + xpos, pos.y + ypos, 0);</span></div><div class="line"><a name="l00130"></a><span class="lineno">  130</span>&#160;        }</div><div class="line"><a name="l00131"></a><span class="lineno">  131</span>&#160;</div><div class="line"><a name="l00132"></a><span class="lineno">  132</span>&#160;</div><div class="line"><a name="l00133"></a><span class="lineno">  133</span>&#160;        <span class="keywordflow">if</span> (keyboard_f != glfwGetKey(render-&gt;getWindow(), GLFW_KEY_F) &amp;&amp; glfwGetKey(render-&gt;getWindow(), GLFW_KEY_F) == GLFW_PRESS) {</div><div class="line"><a name="l00134"></a><span class="lineno">  134</span>&#160;            <span class="comment">//Get Mouse location</span></div><div class="line"><a name="l00135"></a><span class="lineno">  135</span>&#160;            <span class="keywordtype">double</span> xpos, ypos;</div><div class="line"><a name="l00136"></a><span class="lineno">  136</span>&#160;            glfwGetCursorPos(render-&gt;getWindow(), &amp;xpos, &amp;ypos);</div><div class="line"><a name="l00137"></a><span class="lineno">  137</span>&#160;            <span class="comment">//Scale to 600 by 600 pixel window then multiplied by zoom</span></div><div class="line"><a name="l00138"></a><span class="lineno">  138</span>&#160;            xpos = render-&gt;<a class="code" href="class_render.html#ae426f00e82704fa09578f5446e22d915">width</a> * (xpos - 600.0/2.0)/(600.0/2.0);</div><div class="line"><a name="l00139"></a><span class="lineno">  139</span>&#160;            ypos = render-&gt;<a class="code" href="class_render.html#a48083b65ac9a863566dc3e3fff09a5b4">height</a> * (600.0/2.0-ypos) / (600.0/2.0);</div><div class="line"><a name="l00140"></a><span class="lineno">  140</span>&#160;            </div><div class="line"><a name="l00141"></a><span class="lineno">  141</span>&#160;            <span class="comment">//Get the Current position and heading</span></div><div class="line"><a name="l00142"></a><span class="lineno">  142</span>&#160;            glm::vec3 pos = render-&gt;<a class="code" href="class_render.html#a6505f30cb1ff7180fbaac9354ab126b0">getRobotPosition</a>();</div><div class="line"><a name="l00143"></a><span class="lineno">  143</span>&#160;            std::stringstream command;</div><div class="line"><a name="l00144"></a><span class="lineno">  144</span>&#160;            <span class="keywordtype">float</span> robotHeadingRads = render-&gt;<a class="code" href="class_render.html#ae3f76a2d2e8e781d24a8fb02f5c491fe">getRobotHeading</a>()*3.1415 / 180.0;</div><div class="line"><a name="l00145"></a><span class="lineno">  145</span>&#160;            </div><div class="line"><a name="l00146"></a><span class="lineno">  146</span>&#160;            <span class="comment">//Calculate Distance from center of screen to mouse</span></div><div class="line"><a name="l00147"></a><span class="lineno">  147</span>&#160;            <span class="keywordtype">float</span> distance = sqrt(xpos*xpos + ypos * ypos);</div><div class="line"><a name="l00148"></a><span class="lineno">  148</span>&#160;            </div><div class="line"><a name="l00149"></a><span class="lineno">  149</span>&#160;            <span class="comment">//Calcuate Delta Difference of Robot heading and where we want to go</span></div><div class="line"><a name="l00150"></a><span class="lineno">  150</span>&#160;            <span class="keywordtype">float</span> delta_degree = (atan2(-xpos, ypos) - render-&gt;<a class="code" href="class_render.html#ae3f76a2d2e8e781d24a8fb02f5c491fe">getRobotHeading</a>()*3.1415 / 180.0)*180.0 / 3.1415;</div><div class="line"><a name="l00151"></a><span class="lineno">  151</span>&#160;            <span class="keywordflow">if</span> (delta_degree &gt; 180) {</div><div class="line"><a name="l00152"></a><span class="lineno">  152</span>&#160;                delta_degree -= 360.0;</div><div class="line"><a name="l00153"></a><span class="lineno">  153</span>&#160;            }</div><div class="line"><a name="l00154"></a><span class="lineno">  154</span>&#160;            <span class="keywordflow">if</span> (delta_degree &lt; -180) {</div><div class="line"><a name="l00155"></a><span class="lineno">  155</span>&#160;                delta_degree += 360.0;</div><div class="line"><a name="l00156"></a><span class="lineno">  156</span>&#160;            }</div><div class="line"><a name="l00157"></a><span class="lineno">  157</span>&#160;            </div><div class="line"><a name="l00158"></a><span class="lineno">  158</span>&#160;            <span class="comment">//Send out how to turn and move the robot</span></div><div class="line"><a name="l00159"></a><span class="lineno">  159</span>&#160;            command &lt;&lt; <span class="stringliteral">&quot;f &quot;</span> &lt;&lt; delta_degree &lt;&lt; <span class="stringliteral">&quot; &quot;</span> &lt;&lt; distance;</div><div class="line"><a name="l00160"></a><span class="lineno">  160</span>&#160;            std::cout &lt;&lt; <span class="stringliteral">&quot;f &quot;</span> &lt;&lt; delta_degree &lt;&lt; <span class="stringliteral">&quot; &quot;</span> &lt;&lt; distance &lt;&lt; std::endl;</div><div class="line"><a name="l00161"></a><span class="lineno">  161</span>&#160;            client-&gt;<a class="code" href="class_t_c_p_client.html#af83a77ee901507599e03e55976a99b7d">send</a>(command.str());</div><div class="line"><a name="l00162"></a><span class="lineno">  162</span>&#160;        }</div><div class="line"><a name="l00163"></a><span class="lineno">  163</span>&#160;</div><div class="line"><a name="l00164"></a><span class="lineno">  164</span>&#160;        <span class="comment">//Activate Sensor Sweep</span></div><div class="line"><a name="l00165"></a><span class="lineno">  165</span>&#160;        <span class="keywordflow">if</span> (keyboard_s != glfwGetKey(render-&gt;getWindow(), GLFW_KEY_S) &amp;&amp; glfwGetKey(render-&gt;getWindow(), GLFW_KEY_S) == GLFW_PRESS) {</div><div class="line"><a name="l00166"></a><span class="lineno">  166</span>&#160;            client-&gt;<a class="code" href="class_t_c_p_client.html#af83a77ee901507599e03e55976a99b7d">send</a>(std::string(<span class="stringliteral">&quot;s&quot;</span>));</div><div class="line"><a name="l00167"></a><span class="lineno">  167</span>&#160;        }</div><div class="line"><a name="l00168"></a><span class="lineno">  168</span>&#160;</div><div class="line"><a name="l00169"></a><span class="lineno">  169</span>&#160;</div><div class="line"><a name="l00170"></a><span class="lineno">  170</span>&#160;</div><div class="line"><a name="l00171"></a><span class="lineno">  171</span>&#160;        <span class="comment">//Play a sound</span></div><div class="line"><a name="l00172"></a><span class="lineno">  172</span>&#160;        <span class="keywordflow">if</span> (keyboard_p != glfwGetKey(render-&gt;getWindow(), GLFW_KEY_P) &amp;&amp; glfwGetKey(render-&gt;getWindow(), GLFW_KEY_P) == GLFW_PRESS) {</div><div class="line"><a name="l00173"></a><span class="lineno">  173</span>&#160;            client-&gt;<a class="code" href="class_t_c_p_client.html#af83a77ee901507599e03e55976a99b7d">send</a>(std::string(<span class="stringliteral">&quot;p&quot;</span>));</div><div class="line"><a name="l00174"></a><span class="lineno">  174</span>&#160;        }</div><div class="line"><a name="l00175"></a><span class="lineno">  175</span>&#160;        </div><div class="line"><a name="l00176"></a><span class="lineno">  176</span>&#160;        <span class="comment">//Place a obstacle on map</span></div><div class="line"><a name="l00177"></a><span class="lineno">  177</span>&#160;        <span class="keywordflow">if</span> (keyboard_v != glfwGetKey(render-&gt;getWindow(), GLFW_KEY_V) &amp;&amp; glfwGetKey(render-&gt;getWindow(), GLFW_KEY_V) == GLFW_PRESS) {</div><div class="line"><a name="l00178"></a><span class="lineno">  178</span>&#160;            <span class="comment">//Get mouse coordinates scaled by window size in pixels.</span></div><div class="line"><a name="l00179"></a><span class="lineno">  179</span>&#160;            <span class="keywordtype">double</span> xpos, ypos;</div><div class="line"><a name="l00180"></a><span class="lineno">  180</span>&#160;            glfwGetCursorPos(render-&gt;getWindow(), &amp;xpos, &amp;ypos);</div><div class="line"><a name="l00181"></a><span class="lineno">  181</span>&#160;            xpos = render-&gt;<a class="code" href="class_render.html#ae426f00e82704fa09578f5446e22d915">width</a> * (xpos - 600.0 / 2.0) / (600.0 / 2.0);</div><div class="line"><a name="l00182"></a><span class="lineno">  182</span>&#160;            ypos = render-&gt;<a class="code" href="class_render.html#a48083b65ac9a863566dc3e3fff09a5b4">height</a> * (600.0 / 2.0 - ypos) / (600.0 / 2.0);</div><div class="line"><a name="l00183"></a><span class="lineno">  183</span>&#160;</div><div class="line"><a name="l00184"></a><span class="lineno">  184</span>&#160;            render-&gt;<a class="code" href="class_render.html#a7ca7709673e2a045a5d081b70eff0c24">addObstacles</a>(xpos, ypos, 4);</div><div class="line"><a name="l00185"></a><span class="lineno">  185</span>&#160;        }</div><div class="line"><a name="l00186"></a><span class="lineno">  186</span>&#160;        <span class="comment">//Zoom in by 500mm</span></div><div class="line"><a name="l00187"></a><span class="lineno">  187</span>&#160;        <span class="keywordflow">if</span> (keyboard_minus != glfwGetKey(render-&gt;getWindow(), GLFW_KEY_MINUS) &amp;&amp; glfwGetKey(render-&gt;getWindow(), GLFW_KEY_MINUS) == GLFW_PRESS) {</div><div class="line"><a name="l00188"></a><span class="lineno">  188</span>&#160;            render-&gt;<a class="code" href="class_render.html#a8f9e3fbd4a2142fea7d5933c54c36ee1">setView</a>(-500);</div><div class="line"><a name="l00189"></a><span class="lineno">  189</span>&#160;        }</div><div class="line"><a name="l00190"></a><span class="lineno">  190</span>&#160;        <span class="comment">//Zoom out by 500mm</span></div><div class="line"><a name="l00191"></a><span class="lineno">  191</span>&#160;        <span class="keywordflow">if</span> (keyboard_plus != glfwGetKey(render-&gt;getWindow(), GLFW_KEY_EQUAL) &amp;&amp; glfwGetKey(render-&gt;getWindow(), GLFW_KEY_EQUAL) == GLFW_PRESS) {</div><div class="line"><a name="l00192"></a><span class="lineno">  192</span>&#160;            render-&gt;<a class="code" href="class_render.html#a8f9e3fbd4a2142fea7d5933c54c36ee1">setView</a>(500);</div><div class="line"><a name="l00193"></a><span class="lineno">  193</span>&#160;        }</div><div class="line"><a name="l00194"></a><span class="lineno">  194</span>&#160;</div><div class="line"><a name="l00195"></a><span class="lineno">  195</span>&#160;        <span class="comment">//Set button to current state so we can only capture one event per press.</span></div><div class="line"><a name="l00196"></a><span class="lineno">  196</span>&#160;        keyboard_p = glfwGetKey(render-&gt;getWindow(), GLFW_KEY_P);</div><div class="line"><a name="l00197"></a><span class="lineno">  197</span>&#160;        keyboard_s = glfwGetKey(render-&gt;getWindow(), GLFW_KEY_S);</div><div class="line"><a name="l00198"></a><span class="lineno">  198</span>&#160;        keyboard_v = glfwGetKey(render-&gt;getWindow(), GLFW_KEY_V);</div><div class="line"><a name="l00199"></a><span class="lineno">  199</span>&#160;        keyboard_f = glfwGetKey(render-&gt;getWindow(), GLFW_KEY_F);</div><div class="line"><a name="l00200"></a><span class="lineno">  200</span>&#160;        keyboard_minus = glfwGetKey(render-&gt;getWindow(), GLFW_KEY_MINUS);</div><div class="line"><a name="l00201"></a><span class="lineno">  201</span>&#160;        keyboard_plus = glfwGetKey(render-&gt;getWindow(), GLFW_KEY_EQUAL);</div><div class="line"><a name="l00202"></a><span class="lineno">  202</span>&#160;        mouseButtonLeft = glfwGetMouseButton(render-&gt;getWindow(), GLFW_MOUSE_BUTTON_LEFT);</div><div class="line"><a name="l00203"></a><span class="lineno">  203</span>&#160;        mouseButtonRight = glfwGetMouseButton(render-&gt;getWindow(), GLFW_MOUSE_BUTTON_RIGHT);</div><div class="line"><a name="l00204"></a><span class="lineno">  204</span>&#160;        </div><div class="line"><a name="l00205"></a><span class="lineno">  205</span>&#160;        <span class="comment">//Render in this order as every render overwrites</span></div><div class="line"><a name="l00206"></a><span class="lineno">  206</span>&#160;        <span class="comment">//Thus the priority we want to see is:</span></div><div class="line"><a name="l00207"></a><span class="lineno">  207</span>&#160;        <span class="comment">//1) Heading Arrow</span></div><div class="line"><a name="l00208"></a><span class="lineno">  208</span>&#160;        <span class="comment">//2) Robot</span></div><div class="line"><a name="l00209"></a><span class="lineno">  209</span>&#160;        <span class="comment">//3) Sensor Data</span></div><div class="line"><a name="l00210"></a><span class="lineno">  210</span>&#160;        <span class="comment">//4) Obstacles</span></div><div class="line"><a name="l00211"></a><span class="lineno">  211</span>&#160;        <span class="comment">//5) Sonar Line</span></div><div class="line"><a name="l00212"></a><span class="lineno">  212</span>&#160;        <span class="comment">//6) Map</span></div><div class="line"><a name="l00213"></a><span class="lineno">  213</span>&#160;        render-&gt;<a class="code" href="class_render.html#a2d6238081fd4a76a2755d078b9b9b6fc">renderMap</a>();</div><div class="line"><a name="l00214"></a><span class="lineno">  214</span>&#160;        render-&gt;renderSonarLine();</div><div class="line"><a name="l00215"></a><span class="lineno">  215</span>&#160;        render-&gt;<a class="code" href="class_render.html#af473a7ea3d059175e0f1f085326c53fe">renderObstacles</a>();</div><div class="line"><a name="l00216"></a><span class="lineno">  216</span>&#160;        render-&gt;<a class="code" href="class_render.html#a4f3a31b51a2a4eb97b1aa38720fe66a5">renderSensors</a>();</div><div class="line"><a name="l00217"></a><span class="lineno">  217</span>&#160;        render-&gt;<a class="code" href="class_render.html#a5e195ec754f2f525da6ed44c59110f87">renderRobot</a>();</div><div class="line"><a name="l00218"></a><span class="lineno">  218</span>&#160;        render-&gt;<a class="code" href="class_render.html#a15d8aae84de7cbdc642c502ebe06edd6">renderHeading</a>();</div><div class="line"><a name="l00219"></a><span class="lineno">  219</span>&#160;        </div><div class="line"><a name="l00220"></a><span class="lineno">  220</span>&#160;        <span class="comment">//Render to Screen</span></div><div class="line"><a name="l00221"></a><span class="lineno">  221</span>&#160;        glfwSwapBuffers(render-&gt;getWindow());</div><div class="line"><a name="l00222"></a><span class="lineno">  222</span>&#160;        <span class="comment">//Poll for Events</span></div><div class="line"><a name="l00223"></a><span class="lineno">  223</span>&#160;        glfwPollEvents();</div><div class="line"><a name="l00224"></a><span class="lineno">  224</span>&#160;</div><div class="line"><a name="l00225"></a><span class="lineno">  225</span>&#160;    }</div><div class="line"><a name="l00226"></a><span class="lineno">  226</span>&#160;    </div><div class="line"><a name="l00227"></a><span class="lineno">  227</span>&#160;    <span class="comment">//Data Management and Garbage Collection</span></div><div class="line"><a name="l00228"></a><span class="lineno">  228</span>&#160;    <span class="keyword">delete</span> client;</div><div class="line"><a name="l00229"></a><span class="lineno">  229</span>&#160;    <span class="keyword">delete</span> render;</div><div class="line"><a name="l00230"></a><span class="lineno">  230</span>&#160;<span class="keywordflow">return</span> 0;</div><div class="line"><a name="l00231"></a><span class="lineno">  231</span>&#160;}</div><div class="ttc" id="class_render_html"><div class="ttname"><a href="class_render.html">Render</a></div><div class="ttdef"><b>Definition:</b> <a href="render_8h_source.html#l00041">render.h:41</a></div></div>
 <div class="ttc" id="class_render_html_a48083b65ac9a863566dc3e3fff09a5b4"><div class="ttname"><a href="class_render.html#a48083b65ac9a863566dc3e3fff09a5b4">Render::height</a></div><div class="ttdeci">float height</div><div class="ttdef"><b>Definition:</b> <a href="render_8h_source.html#l00058">render.h:58</a></div></div>
 <div class="ttc" id="class_render_html_a5e195ec754f2f525da6ed44c59110f87"><div class="ttname"><a href="class_render.html#a5e195ec754f2f525da6ed44c59110f87">Render::renderRobot</a></div><div class="ttdeci">void renderRobot()</div><div class="ttdef"><b>Definition:</b> <a href="render_8cpp_source.html#l00304">render.cpp:304</a></div></div>
 <div class="ttc" id="class_render_html_ae3f76a2d2e8e781d24a8fb02f5c491fe"><div class="ttname"><a href="class_render.html#ae3f76a2d2e8e781d24a8fb02f5c491fe">Render::getRobotHeading</a></div><div class="ttdeci">float getRobotHeading()</div><div class="ttdef"><b>Definition:</b> <a href="render_8cpp_source.html#l00279">render.cpp:279</a></div></div>
@@ -108,6 +108,7 @@ $(document).ready(function(){initNavTree('main_8cpp_source.html','');});
 <div class="ttc" id="class_render_html_a15d8aae84de7cbdc642c502ebe06edd6"><div class="ttname"><a href="class_render.html#a15d8aae84de7cbdc642c502ebe06edd6">Render::renderHeading</a></div><div class="ttdeci">void renderHeading()</div><div class="ttdef"><b>Definition:</b> <a href="render_8cpp_source.html#l00450">render.cpp:450</a></div></div>
 <div class="ttc" id="class_render_html_a4f3a31b51a2a4eb97b1aa38720fe66a5"><div class="ttname"><a href="class_render.html#a4f3a31b51a2a4eb97b1aa38720fe66a5">Render::renderSensors</a></div><div class="ttdeci">void renderSensors()</div><div class="ttdef"><b>Definition:</b> <a href="render_8cpp_source.html#l00416">render.cpp:416</a></div></div>
 <div class="ttc" id="tcp_8h_html"><div class="ttname"><a href="tcp_8h.html">tcp.h</a></div><div class="ttdoc">Header for processing and communicating with The robot. </div></div>
+<div class="ttc" id="main_8c_html_a840291bc02cba5474a4cb46a9b9566fe"><div class="ttname"><a href="main_8c.html#a840291bc02cba5474a4cb46a9b9566fe">main</a></div><div class="ttdeci">int main(void)</div><div class="ttdef"><b>Definition:</b> <a href="main_8c_source.html#l00030">main.c:30</a></div></div>
 </div><!-- fragment --></div><!-- contents -->
 </div><!-- doc-content -->
 <!-- start footer part -->
diff --git a/Doxygen/html/menudata.js b/Doxygen/html/menudata.js
index dae2ae1387f32ae4a5f3fc3b9a4aac741f1183ae..a932118a4d4736686d22bdd9532cc2cf7a9a1ebe 100644
--- a/Doxygen/html/menudata.js
+++ b/Doxygen/html/menudata.js
@@ -45,6 +45,7 @@ var menudata={children:[
 {text:"i",url:"globals.html#index_i"},
 {text:"l",url:"globals.html#index_l"},
 {text:"m",url:"globals.html#index_m"},
+{text:"o",url:"globals.html#index_o"},
 {text:"p",url:"globals.html#index_p"},
 {text:"r",url:"globals.html#index_r"},
 {text:"s",url:"globals.html#index_s"},
@@ -56,7 +57,9 @@ var menudata={children:[
 {text:"c",url:"globals_func.html#index_c"},
 {text:"g",url:"globals_func.html#index_g"},
 {text:"i",url:"globals_func.html#index_i"},
+{text:"l",url:"globals_func.html#index_l"},
 {text:"m",url:"globals_func.html#index_m"},
+{text:"o",url:"globals_func.html#index_o"},
 {text:"p",url:"globals_func.html#index_p"},
 {text:"s",url:"globals_func.html#index_s"},
 {text:"t",url:"globals_func.html#index_t"},
diff --git a/Doxygen/html/movementcommands_8c_source.html b/Doxygen/html/movementcommands_8c_source.html
index bb2b7edecea86edbcdb24980d55feeac31dcf8cb..68691d7fb5d9ac58fb7593cc768a03910655bd26 100644
--- a/Doxygen/html/movementcommands_8c_source.html
+++ b/Doxygen/html/movementcommands_8c_source.html
@@ -92,15 +92,18 @@ $(document).ready(function(){initNavTree('movementcommands_8c_source.html','');}
 <div class="title">movementcommands.c</div>  </div>
 </div><!--header-->
 <div class="contents">
-<a href="movementcommands_8c.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno">    1</span>&#160;</div><div class="line"><a name="l00012"></a><span class="lineno">   12</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="movementcommands_8h.html">movementcommands.h</a>&quot;</span></div><div class="line"><a name="l00013"></a><span class="lineno">   13</span>&#160;<span class="preprocessor">#include &lt;math.h&gt;</span></div><div class="line"><a name="l00014"></a><span class="lineno">   14</span>&#160;<span class="preprocessor">#include &lt;Utils/lcd.h&gt;</span></div><div class="line"><a name="l00015"></a><span class="lineno">   15</span>&#160;<span class="preprocessor">#include &lt;<a class="code" href="cliff__sensor_8h.html">Sensor/cliff_sensor.h</a>&gt;</span></div><div class="line"><a name="l00016"></a><span class="lineno">   16</span>&#160;</div><div class="line"><a name="l00017"></a><span class="lineno">   17</span>&#160;<span class="preprocessor">#define PI 3.1415926535897932</span></div><div class="line"><a name="l00018"></a><span class="lineno">   18</span>&#160;</div><div class="line"><a name="l00019"></a><span class="lineno">   19</span>&#160;<span class="comment">// -------------------------------- BEGIN GLOBAL VARIABLES -------------------------------- //</span></div><div class="line"><a name="l00020"></a><span class="lineno">   20</span>&#160;</div><div class="line"><a name="l00021"></a><span class="lineno">   21</span>&#160;<span class="comment">// GLOBAL VARIABLE(S) FOR MOVEMENTCOMMANDS:</span></div><div class="line"><a name="l00025"></a><span class="lineno"><a class="line" href="movementcommands_8c.html#ac5682e48513a771560df50e3b213e61a">   25</a></span>&#160;<span class="comment"></span><span class="keywordtype">float</span> <a class="code" href="movementcommands_8c.html#ac5682e48513a771560df50e3b213e61a">heading</a> = 0;</div><div class="line"><a name="l00029"></a><span class="lineno"><a class="line" href="movementcommands_8c.html#ad03773048a53823ad40f581d998dc34b">   29</a></span>&#160;<span class="keywordtype">float</span> <a class="code" href="movementcommands_8c.html#ad03773048a53823ad40f581d998dc34b">posx</a> = 0;</div><div class="line"><a name="l00033"></a><span class="lineno"><a class="line" href="movementcommands_8c.html#a43b49252713d5c09faf4af4ce59fdc12">   33</a></span>&#160;<span class="keywordtype">float</span> <a class="code" href="movementcommands_8c.html#a43b49252713d5c09faf4af4ce59fdc12">posy</a> = 0;</div><div class="line"><a name="l00037"></a><span class="lineno"><a class="line" href="movementcommands_8c.html#a5bc58d43105d723b774621219125aeb1">   37</a></span>&#160;<span class="keywordtype">float</span> <a class="code" href="movementcommands_8c.html#a5bc58d43105d723b774621219125aeb1">err</a> = 5.0;</div><div class="line"><a name="l00041"></a><span class="lineno"><a class="line" href="movementcommands_8c.html#a91a70b77df95bd8b0830b49a094c2acb">   41</a></span>&#160;<span class="keywordtype">char</span> * <a class="code" href="movementcommands_8c.html#a91a70b77df95bd8b0830b49a094c2acb">data</a>;</div><div class="line"><a name="l00042"></a><span class="lineno">   42</span>&#160;<span class="comment">// -------------------------------- END GLOBAL VARIABLES -------------------------------- //</span></div><div class="line"><a name="l00043"></a><span class="lineno">   43</span>&#160;</div><div class="line"><a name="l00044"></a><span class="lineno"><a class="line" href="movementcommands_8h.html#ac19e613d92cdd54f047e591fc0c99b07">   44</a></span>&#160;<span class="keywordtype">void</span> <a class="code" href="movementcommands_8c.html#ac19e613d92cdd54f047e591fc0c99b07">moveRobotDistance</a>(<a class="code" href="structoi__t.html">oi_t</a>* <span class="keyword">self</span>, <span class="keywordtype">int</span> input)</div><div class="line"><a name="l00045"></a><span class="lineno">   45</span>&#160;{</div><div class="line"><a name="l00046"></a><span class="lineno">   46</span>&#160;    oi_update(<span class="keyword">self</span>);</div><div class="line"><a name="l00047"></a><span class="lineno">   47</span>&#160;    oi_update(<span class="keyword">self</span>);</div><div class="line"><a name="l00048"></a><span class="lineno">   48</span>&#160;</div><div class="line"><a name="l00049"></a><span class="lineno">   49</span>&#160;    <span class="keywordtype">float</span> current_distance = <span class="keyword">self</span>-&gt;distance; <span class="comment">// Set Current distance to the delta distance from last update</span></div><div class="line"><a name="l00050"></a><span class="lineno">   50</span>&#160;    <span class="keywordtype">float</span> kp = 5; <span class="comment">//KP Gain to 5</span></div><div class="line"><a name="l00051"></a><span class="lineno">   51</span>&#160;    <span class="keywordtype">float</span> error = kp * (input - current_distance); <span class="comment">//Initialize feedback error</span></div><div class="line"><a name="l00052"></a><span class="lineno">   52</span>&#160;    <span class="keywordtype">int</span> groundVar = 0; <span class="comment">//Initialize Ground Check</span></div><div class="line"><a name="l00053"></a><span class="lineno">   53</span>&#160;    <span class="keywordtype">int</span> lastGround = 0; <span class="comment">// Initialize Bumper Check or Cliff check</span></div><div class="line"><a name="l00054"></a><span class="lineno">   54</span>&#160;    <span class="comment">//Move until we hit steady state error</span></div><div class="line"><a name="l00055"></a><span class="lineno">   55</span>&#160;    <span class="keywordflow">while</span> ((error / kp) &gt; <a class="code" href="movementcommands_8c.html#a5bc58d43105d723b774621219125aeb1">err</a> || (error / kp) &lt; -<a class="code" href="movementcommands_8c.html#a5bc58d43105d723b774621219125aeb1">err</a>)</div><div class="line"><a name="l00056"></a><span class="lineno">   56</span>&#160;    {</div><div class="line"><a name="l00057"></a><span class="lineno">   57</span>&#160;        oi_update(<span class="keyword">self</span>);</div><div class="line"><a name="l00058"></a><span class="lineno">   58</span>&#160;        <span class="comment">//Add distance traveled from last update</span></div><div class="line"><a name="l00059"></a><span class="lineno">   59</span>&#160;        current_distance += <span class="keyword">self</span>-&gt;distance;</div><div class="line"><a name="l00060"></a><span class="lineno">   60</span>&#160;        <span class="comment">//Set Feedback Error</span></div><div class="line"><a name="l00061"></a><span class="lineno">   61</span>&#160;        error = kp * (input - current_distance);</div><div class="line"><a name="l00062"></a><span class="lineno">   62</span>&#160;</div><div class="line"><a name="l00063"></a><span class="lineno">   63</span>&#160;        groundVar = <a class="code" href="cliff__sensor_8c.html#aea9fa7041962d3fde3549a56f8855162">checkGroundSensors</a>(<span class="keyword">self</span>);</div><div class="line"><a name="l00064"></a><span class="lineno">   64</span>&#160;</div><div class="line"><a name="l00066"></a><span class="lineno">   66</span>&#160;        <span class="keywordflow">if</span> (groundVar == 3)</div><div class="line"><a name="l00067"></a><span class="lineno">   67</span>&#160;        {</div><div class="line"><a name="l00068"></a><span class="lineno">   68</span>&#160;            snprintf(<a class="code" href="movementcommands_8c.html#a91a70b77df95bd8b0830b49a094c2acb">data</a>, 100, <span class="stringliteral">&quot;z %d %d %d %d\0&quot;</span>, <a class="code" href="cliff__sensor_8c.html#a1fa03a7f9a05ace91224ea610463e871">cs_getTerrain</a>(<span class="keyword">self</span>, LEFT),</div><div class="line"><a name="l00069"></a><span class="lineno">   69</span>&#160;                     <a class="code" href="cliff__sensor_8c.html#a1fa03a7f9a05ace91224ea610463e871">cs_getTerrain</a>(<span class="keyword">self</span>, FRONT_LEFT),</div><div class="line"><a name="l00070"></a><span class="lineno">   70</span>&#160;                     <a class="code" href="cliff__sensor_8c.html#a1fa03a7f9a05ace91224ea610463e871">cs_getTerrain</a>(<span class="keyword">self</span>, FRONT_RIGHT),</div><div class="line"><a name="l00071"></a><span class="lineno">   71</span>&#160;                     <a class="code" href="cliff__sensor_8c.html#a1fa03a7f9a05ace91224ea610463e871">cs_getTerrain</a>(<span class="keyword">self</span>, RIGHT));</div><div class="line"><a name="l00072"></a><span class="lineno">   72</span>&#160;            <a class="code" href="uart_8c.html#af96d1ce52b8a52eabc606489d31351e9">uart_sendStr</a>(<a class="code" href="movementcommands_8c.html#a91a70b77df95bd8b0830b49a094c2acb">data</a>);</div><div class="line"><a name="l00073"></a><span class="lineno">   73</span>&#160;        }</div><div class="line"><a name="l00074"></a><span class="lineno">   74</span>&#160;        <span class="keywordflow">else</span> <span class="keywordflow">if</span> (groundVar == 2)</div><div class="line"><a name="l00075"></a><span class="lineno">   75</span>&#160;        {</div><div class="line"><a name="l00076"></a><span class="lineno">   76</span>&#160;            oi_setWheels(0, 0);</div><div class="line"><a name="l00077"></a><span class="lineno">   77</span>&#160;            snprintf(<a class="code" href="movementcommands_8c.html#a91a70b77df95bd8b0830b49a094c2acb">data</a>, 100, <span class="stringliteral">&quot;b %d %d %d %d\0&quot;</span>, <a class="code" href="cliff__sensor_8c.html#a1fa03a7f9a05ace91224ea610463e871">cs_getTerrain</a>(<span class="keyword">self</span>, LEFT),</div><div class="line"><a name="l00078"></a><span class="lineno">   78</span>&#160;                     <a class="code" href="cliff__sensor_8c.html#a1fa03a7f9a05ace91224ea610463e871">cs_getTerrain</a>(<span class="keyword">self</span>, FRONT_LEFT),</div><div class="line"><a name="l00079"></a><span class="lineno">   79</span>&#160;                     <a class="code" href="cliff__sensor_8c.html#a1fa03a7f9a05ace91224ea610463e871">cs_getTerrain</a>(<span class="keyword">self</span>, FRONT_RIGHT),</div><div class="line"><a name="l00080"></a><span class="lineno">   80</span>&#160;                     <a class="code" href="cliff__sensor_8c.html#a1fa03a7f9a05ace91224ea610463e871">cs_getTerrain</a>(<span class="keyword">self</span>, RIGHT));</div><div class="line"><a name="l00081"></a><span class="lineno">   81</span>&#160;            <a class="code" href="uart_8c.html#af96d1ce52b8a52eabc606489d31351e9">uart_sendStr</a>(<a class="code" href="movementcommands_8c.html#a91a70b77df95bd8b0830b49a094c2acb">data</a>);</div><div class="line"><a name="l00082"></a><span class="lineno">   82</span>&#160;            <span class="keywordflow">break</span>;</div><div class="line"><a name="l00083"></a><span class="lineno">   83</span>&#160;</div><div class="line"><a name="l00084"></a><span class="lineno">   84</span>&#160;        }</div><div class="line"><a name="l00085"></a><span class="lineno">   85</span>&#160;        <span class="keywordflow">else</span> <span class="keywordflow">if</span> (groundVar == 1 &amp;&amp; lastGround == 0)</div><div class="line"><a name="l00086"></a><span class="lineno">   86</span>&#160;        {</div><div class="line"><a name="l00087"></a><span class="lineno">   87</span>&#160;            lastGround = 1;</div><div class="line"><a name="l00088"></a><span class="lineno">   88</span>&#160;            oi_setWheels(0, 0);</div><div class="line"><a name="l00089"></a><span class="lineno">   89</span>&#160;            snprintf(<a class="code" href="movementcommands_8c.html#a91a70b77df95bd8b0830b49a094c2acb">data</a>, 100, <span class="stringliteral">&quot;c %d %d %d %d\0&quot;</span>, <a class="code" href="cliff__sensor_8c.html#a1fa03a7f9a05ace91224ea610463e871">cs_getTerrain</a>(<span class="keyword">self</span>, LEFT),</div><div class="line"><a name="l00090"></a><span class="lineno">   90</span>&#160;                     <a class="code" href="cliff__sensor_8c.html#a1fa03a7f9a05ace91224ea610463e871">cs_getTerrain</a>(<span class="keyword">self</span>, FRONT_LEFT),</div><div class="line"><a name="l00091"></a><span class="lineno">   91</span>&#160;                     <a class="code" href="cliff__sensor_8c.html#a1fa03a7f9a05ace91224ea610463e871">cs_getTerrain</a>(<span class="keyword">self</span>, FRONT_RIGHT),</div><div class="line"><a name="l00092"></a><span class="lineno">   92</span>&#160;                     <a class="code" href="cliff__sensor_8c.html#a1fa03a7f9a05ace91224ea610463e871">cs_getTerrain</a>(<span class="keyword">self</span>, RIGHT));</div><div class="line"><a name="l00093"></a><span class="lineno">   93</span>&#160;            <a class="code" href="uart_8c.html#af96d1ce52b8a52eabc606489d31351e9">uart_sendStr</a>(<a class="code" href="movementcommands_8c.html#a91a70b77df95bd8b0830b49a094c2acb">data</a>);</div><div class="line"><a name="l00094"></a><span class="lineno">   94</span>&#160;            <span class="keywordflow">break</span>;</div><div class="line"><a name="l00095"></a><span class="lineno">   95</span>&#160;        }</div><div class="line"><a name="l00096"></a><span class="lineno">   96</span>&#160;</div><div class="line"><a name="l00098"></a><span class="lineno">   98</span>&#160;        <span class="keywordflow">if</span> ((self-&gt;bumpLeft == 1 || self-&gt;bumpRight == 1) &amp;&amp; lastGround == 0)</div><div class="line"><a name="l00099"></a><span class="lineno">   99</span>&#160;        {</div><div class="line"><a name="l00100"></a><span class="lineno">  100</span>&#160;            oi_setWheels(0, 0);</div><div class="line"><a name="l00101"></a><span class="lineno">  101</span>&#160;            lastGround = 1;</div><div class="line"><a name="l00102"></a><span class="lineno">  102</span>&#160;            snprintf(<a class="code" href="movementcommands_8c.html#a91a70b77df95bd8b0830b49a094c2acb">data</a>, 100, <span class="stringliteral">&quot;q %d %d\0&quot;</span>, self-&gt;bumpLeft, self-&gt;bumpRight);</div><div class="line"><a name="l00103"></a><span class="lineno">  103</span>&#160;            <a class="code" href="uart_8c.html#af96d1ce52b8a52eabc606489d31351e9">uart_sendStr</a>(<a class="code" href="movementcommands_8c.html#a91a70b77df95bd8b0830b49a094c2acb">data</a>);</div><div class="line"><a name="l00104"></a><span class="lineno">  104</span>&#160;            <span class="keywordflow">break</span>;</div><div class="line"><a name="l00105"></a><span class="lineno">  105</span>&#160;        }</div><div class="line"><a name="l00106"></a><span class="lineno">  106</span>&#160;</div><div class="line"><a name="l00108"></a><span class="lineno">  108</span>&#160;        error = error &gt; 150.0 ? 150.0 : error;</div><div class="line"><a name="l00109"></a><span class="lineno">  109</span>&#160;        error = error &lt; -150.0 ? -150.0 : error;</div><div class="line"><a name="l00110"></a><span class="lineno">  110</span>&#160;        oi_setWheels((<span class="keywordtype">int</span>) error, (<span class="keywordtype">int</span>) error);</div><div class="line"><a name="l00111"></a><span class="lineno">  111</span>&#160;        snprintf(<a class="code" href="movementcommands_8c.html#a91a70b77df95bd8b0830b49a094c2acb">data</a>, 100, <span class="stringliteral">&quot;x %.2f y %.2f h %.2f\0&quot;</span>,</div><div class="line"><a name="l00112"></a><span class="lineno">  112</span>&#160;                 <a class="code" href="movementcommands_8c.html#ad03773048a53823ad40f581d998dc34b">posx</a> - current_distance * sin(<a class="code" href="movementcommands_8c.html#ac5682e48513a771560df50e3b213e61a">heading</a> * PI / 180.0),</div><div class="line"><a name="l00113"></a><span class="lineno">  113</span>&#160;                 <a class="code" href="movementcommands_8c.html#a43b49252713d5c09faf4af4ce59fdc12">posy</a> + current_distance * cos(<a class="code" href="movementcommands_8c.html#ac5682e48513a771560df50e3b213e61a">heading</a> * PI / 180.0), <a class="code" href="movementcommands_8c.html#ac5682e48513a771560df50e3b213e61a">heading</a>);</div><div class="line"><a name="l00114"></a><span class="lineno">  114</span>&#160;        <a class="code" href="uart_8c.html#af96d1ce52b8a52eabc606489d31351e9">uart_sendStr</a>(<a class="code" href="movementcommands_8c.html#a91a70b77df95bd8b0830b49a094c2acb">data</a>);</div><div class="line"><a name="l00115"></a><span class="lineno">  115</span>&#160;</div><div class="line"><a name="l00116"></a><span class="lineno">  116</span>&#160;    }</div><div class="line"><a name="l00117"></a><span class="lineno">  117</span>&#160;</div><div class="line"><a name="l00118"></a><span class="lineno">  118</span>&#160;    <a class="code" href="movementcommands_8c.html#ad03773048a53823ad40f581d998dc34b">posx</a> += -current_distance * sin(<a class="code" href="movementcommands_8c.html#ac5682e48513a771560df50e3b213e61a">heading</a> * PI / 180.0);</div><div class="line"><a name="l00119"></a><span class="lineno">  119</span>&#160;    <a class="code" href="movementcommands_8c.html#a43b49252713d5c09faf4af4ce59fdc12">posy</a> += current_distance * cos(<a class="code" href="movementcommands_8c.html#ac5682e48513a771560df50e3b213e61a">heading</a> * PI / 180.0);</div><div class="line"><a name="l00120"></a><span class="lineno">  120</span>&#160;    oi_setWheels(0, 0);</div><div class="line"><a name="l00121"></a><span class="lineno">  121</span>&#160;</div><div class="line"><a name="l00122"></a><span class="lineno">  122</span>&#160;}</div><div class="line"><a name="l00123"></a><span class="lineno">  123</span>&#160;</div><div class="line"><a name="l00124"></a><span class="lineno"><a class="line" href="movementcommands_8h.html#aec736dae690e0a896c49d05b27c9b970">  124</a></span>&#160;<span class="keywordtype">void</span> <a class="code" href="movementcommands_8c.html#aec736dae690e0a896c49d05b27c9b970">moveRobotDistanceIgnore</a>(<a class="code" href="structoi__t.html">oi_t</a>* <span class="keyword">self</span>, <span class="keywordtype">int</span> input)</div><div class="line"><a name="l00125"></a><span class="lineno">  125</span>&#160;{</div><div class="line"><a name="l00126"></a><span class="lineno">  126</span>&#160;    oi_update(<span class="keyword">self</span>);</div><div class="line"><a name="l00127"></a><span class="lineno">  127</span>&#160;    oi_update(<span class="keyword">self</span>);</div><div class="line"><a name="l00128"></a><span class="lineno">  128</span>&#160;</div><div class="line"><a name="l00129"></a><span class="lineno">  129</span>&#160;    <span class="keywordtype">float</span> current_distance = <span class="keyword">self</span>-&gt;distance; <span class="comment">// Set Current distance to the delta distance from last update</span></div><div class="line"><a name="l00130"></a><span class="lineno">  130</span>&#160;    <span class="keywordtype">float</span> kp = 5; <span class="comment">//KP Gain to 5</span></div><div class="line"><a name="l00131"></a><span class="lineno">  131</span>&#160;    <span class="keywordtype">float</span> error = kp * (input - current_distance); <span class="comment">//Initialize feedback error</span></div><div class="line"><a name="l00132"></a><span class="lineno">  132</span>&#160;    <span class="keywordtype">int</span> groundVar = 0; <span class="comment">//Initialize Ground Check</span></div><div class="line"><a name="l00133"></a><span class="lineno">  133</span>&#160;    <span class="keywordtype">int</span> lastGround = 0; <span class="comment">// Initialize Bumper Check or Cliff check</span></div><div class="line"><a name="l00134"></a><span class="lineno">  134</span>&#160;    <span class="comment">//Move until we hit steady state error</span></div><div class="line"><a name="l00135"></a><span class="lineno">  135</span>&#160;    <span class="keywordflow">while</span> ((error / kp) &gt; <a class="code" href="movementcommands_8c.html#a5bc58d43105d723b774621219125aeb1">err</a> || (error / kp) &lt; -<a class="code" href="movementcommands_8c.html#a5bc58d43105d723b774621219125aeb1">err</a>)</div><div class="line"><a name="l00136"></a><span class="lineno">  136</span>&#160;    {</div><div class="line"><a name="l00137"></a><span class="lineno">  137</span>&#160;        oi_update(<span class="keyword">self</span>);</div><div class="line"><a name="l00138"></a><span class="lineno">  138</span>&#160;        current_distance += <span class="keyword">self</span>-&gt;distance;</div><div class="line"><a name="l00139"></a><span class="lineno">  139</span>&#160;        error = kp * (input - current_distance);</div><div class="line"><a name="l00140"></a><span class="lineno">  140</span>&#160;</div><div class="line"><a name="l00142"></a><span class="lineno">  142</span>&#160;        groundVar = <a class="code" href="cliff__sensor_8c.html#aea9fa7041962d3fde3549a56f8855162">checkGroundSensors</a>(<span class="keyword">self</span>);</div><div class="line"><a name="l00143"></a><span class="lineno">  143</span>&#160;        <span class="keywordflow">if</span> (groundVar == 3)</div><div class="line"><a name="l00144"></a><span class="lineno">  144</span>&#160;        {</div><div class="line"><a name="l00145"></a><span class="lineno">  145</span>&#160;            snprintf(<a class="code" href="movementcommands_8c.html#a91a70b77df95bd8b0830b49a094c2acb">data</a>, 100, <span class="stringliteral">&quot;z %d %d %d %d\0&quot;</span>, <a class="code" href="cliff__sensor_8c.html#a1fa03a7f9a05ace91224ea610463e871">cs_getTerrain</a>(<span class="keyword">self</span>, LEFT),</div><div class="line"><a name="l00146"></a><span class="lineno">  146</span>&#160;                     <a class="code" href="cliff__sensor_8c.html#a1fa03a7f9a05ace91224ea610463e871">cs_getTerrain</a>(<span class="keyword">self</span>, FRONT_LEFT),</div><div class="line"><a name="l00147"></a><span class="lineno">  147</span>&#160;                     <a class="code" href="cliff__sensor_8c.html#a1fa03a7f9a05ace91224ea610463e871">cs_getTerrain</a>(<span class="keyword">self</span>, FRONT_RIGHT),</div><div class="line"><a name="l00148"></a><span class="lineno">  148</span>&#160;                     <a class="code" href="cliff__sensor_8c.html#a1fa03a7f9a05ace91224ea610463e871">cs_getTerrain</a>(<span class="keyword">self</span>, RIGHT));</div><div class="line"><a name="l00149"></a><span class="lineno">  149</span>&#160;            <a class="code" href="uart_8c.html#af96d1ce52b8a52eabc606489d31351e9">uart_sendStr</a>(<a class="code" href="movementcommands_8c.html#a91a70b77df95bd8b0830b49a094c2acb">data</a>);</div><div class="line"><a name="l00150"></a><span class="lineno">  150</span>&#160;        }</div><div class="line"><a name="l00151"></a><span class="lineno">  151</span>&#160;        <span class="keywordflow">else</span> <span class="keywordflow">if</span> (groundVar == 2)</div><div class="line"><a name="l00152"></a><span class="lineno">  152</span>&#160;        {</div><div class="line"><a name="l00153"></a><span class="lineno">  153</span>&#160;            snprintf(<a class="code" href="movementcommands_8c.html#a91a70b77df95bd8b0830b49a094c2acb">data</a>, 100, <span class="stringliteral">&quot;b %d %d %d %d\0&quot;</span>, <a class="code" href="cliff__sensor_8c.html#a1fa03a7f9a05ace91224ea610463e871">cs_getTerrain</a>(<span class="keyword">self</span>, LEFT),</div><div class="line"><a name="l00154"></a><span class="lineno">  154</span>&#160;                     <a class="code" href="cliff__sensor_8c.html#a1fa03a7f9a05ace91224ea610463e871">cs_getTerrain</a>(<span class="keyword">self</span>, FRONT_LEFT),</div><div class="line"><a name="l00155"></a><span class="lineno">  155</span>&#160;                     <a class="code" href="cliff__sensor_8c.html#a1fa03a7f9a05ace91224ea610463e871">cs_getTerrain</a>(<span class="keyword">self</span>, FRONT_RIGHT),</div><div class="line"><a name="l00156"></a><span class="lineno">  156</span>&#160;                     <a class="code" href="cliff__sensor_8c.html#a1fa03a7f9a05ace91224ea610463e871">cs_getTerrain</a>(<span class="keyword">self</span>, RIGHT));</div><div class="line"><a name="l00157"></a><span class="lineno">  157</span>&#160;            <a class="code" href="uart_8c.html#af96d1ce52b8a52eabc606489d31351e9">uart_sendStr</a>(<a class="code" href="movementcommands_8c.html#a91a70b77df95bd8b0830b49a094c2acb">data</a>);</div><div class="line"><a name="l00158"></a><span class="lineno">  158</span>&#160;        }</div><div class="line"><a name="l00159"></a><span class="lineno">  159</span>&#160;        <span class="keywordflow">else</span> <span class="keywordflow">if</span> (groundVar == 1 &amp;&amp; lastGround == 0)</div><div class="line"><a name="l00160"></a><span class="lineno">  160</span>&#160;        {</div><div class="line"><a name="l00161"></a><span class="lineno">  161</span>&#160;            lastGround = 1;</div><div class="line"><a name="l00162"></a><span class="lineno">  162</span>&#160;            oi_setWheels(0, 0);</div><div class="line"><a name="l00163"></a><span class="lineno">  163</span>&#160;            snprintf(<a class="code" href="movementcommands_8c.html#a91a70b77df95bd8b0830b49a094c2acb">data</a>, 100, <span class="stringliteral">&quot;c %d %d %d %d\0&quot;</span>, <a class="code" href="cliff__sensor_8c.html#a1fa03a7f9a05ace91224ea610463e871">cs_getTerrain</a>(<span class="keyword">self</span>, LEFT),</div><div class="line"><a name="l00164"></a><span class="lineno">  164</span>&#160;                     <a class="code" href="cliff__sensor_8c.html#a1fa03a7f9a05ace91224ea610463e871">cs_getTerrain</a>(<span class="keyword">self</span>, FRONT_LEFT),</div><div class="line"><a name="l00165"></a><span class="lineno">  165</span>&#160;                     <a class="code" href="cliff__sensor_8c.html#a1fa03a7f9a05ace91224ea610463e871">cs_getTerrain</a>(<span class="keyword">self</span>, FRONT_RIGHT),</div><div class="line"><a name="l00166"></a><span class="lineno">  166</span>&#160;                     <a class="code" href="cliff__sensor_8c.html#a1fa03a7f9a05ace91224ea610463e871">cs_getTerrain</a>(<span class="keyword">self</span>, RIGHT));</div><div class="line"><a name="l00167"></a><span class="lineno">  167</span>&#160;            <a class="code" href="uart_8c.html#af96d1ce52b8a52eabc606489d31351e9">uart_sendStr</a>(<a class="code" href="movementcommands_8c.html#a91a70b77df95bd8b0830b49a094c2acb">data</a>);</div><div class="line"><a name="l00168"></a><span class="lineno">  168</span>&#160;            <span class="keywordflow">break</span>;</div><div class="line"><a name="l00169"></a><span class="lineno">  169</span>&#160;        }</div><div class="line"><a name="l00171"></a><span class="lineno">  171</span>&#160;        <span class="keywordflow">if</span> ((self-&gt;bumpLeft == 1 || self-&gt;bumpRight == 1) &amp;&amp; lastGround == 0)</div><div class="line"><a name="l00172"></a><span class="lineno">  172</span>&#160;        {</div><div class="line"><a name="l00173"></a><span class="lineno">  173</span>&#160;            oi_setWheels(0, 0);</div><div class="line"><a name="l00174"></a><span class="lineno">  174</span>&#160;            lastGround = 1;</div><div class="line"><a name="l00175"></a><span class="lineno">  175</span>&#160;            snprintf(<a class="code" href="movementcommands_8c.html#a91a70b77df95bd8b0830b49a094c2acb">data</a>, 100, <span class="stringliteral">&quot;q %d %d\0&quot;</span>, self-&gt;bumpLeft, self-&gt;bumpRight);</div><div class="line"><a name="l00176"></a><span class="lineno">  176</span>&#160;            <a class="code" href="uart_8c.html#af96d1ce52b8a52eabc606489d31351e9">uart_sendStr</a>(<a class="code" href="movementcommands_8c.html#a91a70b77df95bd8b0830b49a094c2acb">data</a>);</div><div class="line"><a name="l00177"></a><span class="lineno">  177</span>&#160;            <span class="keywordflow">break</span>;</div><div class="line"><a name="l00178"></a><span class="lineno">  178</span>&#160;        }</div><div class="line"><a name="l00179"></a><span class="lineno">  179</span>&#160;</div><div class="line"><a name="l00181"></a><span class="lineno">  181</span>&#160;        error = error &gt; 150.0 ? 150.0 : error;</div><div class="line"><a name="l00182"></a><span class="lineno">  182</span>&#160;        error = error &lt; -150.0 ? -150.0 : error;</div><div class="line"><a name="l00183"></a><span class="lineno">  183</span>&#160;        oi_setWheels((<span class="keywordtype">int</span>) error, (<span class="keywordtype">int</span>) error);</div><div class="line"><a name="l00184"></a><span class="lineno">  184</span>&#160;        snprintf(<a class="code" href="movementcommands_8c.html#a91a70b77df95bd8b0830b49a094c2acb">data</a>, 100, <span class="stringliteral">&quot;x %.2f y %.2f h %.2f\0&quot;</span>,</div><div class="line"><a name="l00185"></a><span class="lineno">  185</span>&#160;                 <a class="code" href="movementcommands_8c.html#ad03773048a53823ad40f581d998dc34b">posx</a> - current_distance * sin(<a class="code" href="movementcommands_8c.html#ac5682e48513a771560df50e3b213e61a">heading</a> * PI / 180.0),</div><div class="line"><a name="l00186"></a><span class="lineno">  186</span>&#160;                 <a class="code" href="movementcommands_8c.html#a43b49252713d5c09faf4af4ce59fdc12">posy</a> + current_distance * cos(<a class="code" href="movementcommands_8c.html#ac5682e48513a771560df50e3b213e61a">heading</a> * PI / 180.0), <a class="code" href="movementcommands_8c.html#ac5682e48513a771560df50e3b213e61a">heading</a>);</div><div class="line"><a name="l00187"></a><span class="lineno">  187</span>&#160;        <a class="code" href="uart_8c.html#af96d1ce52b8a52eabc606489d31351e9">uart_sendStr</a>(<a class="code" href="movementcommands_8c.html#a91a70b77df95bd8b0830b49a094c2acb">data</a>);</div><div class="line"><a name="l00188"></a><span class="lineno">  188</span>&#160;</div><div class="line"><a name="l00189"></a><span class="lineno">  189</span>&#160;    }</div><div class="line"><a name="l00190"></a><span class="lineno">  190</span>&#160;</div><div class="line"><a name="l00191"></a><span class="lineno">  191</span>&#160;    <a class="code" href="movementcommands_8c.html#ad03773048a53823ad40f581d998dc34b">posx</a> += -current_distance * sin(<a class="code" href="movementcommands_8c.html#ac5682e48513a771560df50e3b213e61a">heading</a> * PI / 180.0);</div><div class="line"><a name="l00192"></a><span class="lineno">  192</span>&#160;    <a class="code" href="movementcommands_8c.html#a43b49252713d5c09faf4af4ce59fdc12">posy</a> += current_distance * cos(<a class="code" href="movementcommands_8c.html#ac5682e48513a771560df50e3b213e61a">heading</a> * PI / 180.0);</div><div class="line"><a name="l00193"></a><span class="lineno">  193</span>&#160;    oi_setWheels(0, 0);</div><div class="line"><a name="l00194"></a><span class="lineno">  194</span>&#160;</div><div class="line"><a name="l00195"></a><span class="lineno">  195</span>&#160;}</div><div class="line"><a name="l00196"></a><span class="lineno">  196</span>&#160;</div><div class="line"><a name="l00197"></a><span class="lineno"><a class="line" href="movementcommands_8h.html#a363d2d2063890c9731f0d9222060cd48">  197</a></span>&#160;<span class="keywordtype">float</span> <a class="code" href="movementcommands_8c.html#a363d2d2063890c9731f0d9222060cd48">turnRobotDegree</a>(<a class="code" href="structoi__t.html">oi_t</a>* <span class="keyword">self</span>, <span class="keywordtype">float</span> degrees)</div><div class="line"><a name="l00198"></a><span class="lineno">  198</span>&#160;{</div><div class="line"><a name="l00199"></a><span class="lineno">  199</span>&#160;    oi_update(<span class="keyword">self</span>);</div><div class="line"><a name="l00200"></a><span class="lineno">  200</span>&#160;    oi_update(<span class="keyword">self</span>);</div><div class="line"><a name="l00201"></a><span class="lineno">  201</span>&#160;    <span class="keywordtype">float</span> current_degree = 0;</div><div class="line"><a name="l00202"></a><span class="lineno">  202</span>&#160;    <span class="keywordtype">float</span> kp = 10;</div><div class="line"><a name="l00203"></a><span class="lineno">  203</span>&#160;    <span class="keywordtype">float</span> error = kp * (degrees - current_degree);</div><div class="line"><a name="l00204"></a><span class="lineno">  204</span>&#160;    <span class="keywordtype">float</span> newHeading = <a class="code" href="movementcommands_8c.html#ac5682e48513a771560df50e3b213e61a">heading</a>;</div><div class="line"><a name="l00205"></a><span class="lineno">  205</span>&#160;    <span class="comment">//Turn until we hit steady state error</span></div><div class="line"><a name="l00206"></a><span class="lineno">  206</span>&#160;    <span class="keywordflow">while</span> ((error / kp) &gt; 1.0 || (error / kp) &lt; -1.0)</div><div class="line"><a name="l00207"></a><span class="lineno">  207</span>&#160;    {</div><div class="line"><a name="l00208"></a><span class="lineno">  208</span>&#160;        <span class="comment">//Add delta degrees to degree</span></div><div class="line"><a name="l00209"></a><span class="lineno">  209</span>&#160;        current_degree += <span class="keyword">self</span>-&gt;angle;</div><div class="line"><a name="l00210"></a><span class="lineno">  210</span>&#160;        <span class="comment">//set the Feedback error</span></div><div class="line"><a name="l00211"></a><span class="lineno">  211</span>&#160;        error = kp * (degrees - current_degree);</div><div class="line"><a name="l00212"></a><span class="lineno">  212</span>&#160;        <span class="comment">//Bound motor speed to 200 mm/s</span></div><div class="line"><a name="l00213"></a><span class="lineno">  213</span>&#160;        error = error &gt; 200 ? 200 : error;</div><div class="line"><a name="l00214"></a><span class="lineno">  214</span>&#160;        error = error &lt; -200 ? -200 : error;</div><div class="line"><a name="l00215"></a><span class="lineno">  215</span>&#160;</div><div class="line"><a name="l00216"></a><span class="lineno">  216</span>&#160;        oi_setWheels(error, -error);</div><div class="line"><a name="l00217"></a><span class="lineno">  217</span>&#160;        oi_update(<span class="keyword">self</span>);</div><div class="line"><a name="l00218"></a><span class="lineno">  218</span>&#160;        snprintf(<a class="code" href="movementcommands_8c.html#a91a70b77df95bd8b0830b49a094c2acb">data</a>, 100, <span class="stringliteral">&quot;x %.2f y %.2f h %.2f\0&quot;</span>, (<span class="keywordtype">float</span>) <a class="code" href="movementcommands_8c.html#ad03773048a53823ad40f581d998dc34b">posx</a>,</div><div class="line"><a name="l00219"></a><span class="lineno">  219</span>&#160;                 (<span class="keywordtype">float</span>) <a class="code" href="movementcommands_8c.html#a43b49252713d5c09faf4af4ce59fdc12">posy</a>, (<span class="keywordtype">float</span>) newHeading);</div><div class="line"><a name="l00220"></a><span class="lineno">  220</span>&#160;        <a class="code" href="uart_8c.html#af96d1ce52b8a52eabc606489d31351e9">uart_sendStr</a>(<a class="code" href="movementcommands_8c.html#a91a70b77df95bd8b0830b49a094c2acb">data</a>);</div><div class="line"><a name="l00221"></a><span class="lineno">  221</span>&#160;        newHeading = <a class="code" href="movementcommands_8c.html#ac5682e48513a771560df50e3b213e61a">heading</a> + current_degree;</div><div class="line"><a name="l00222"></a><span class="lineno">  222</span>&#160;    }</div><div class="line"><a name="l00223"></a><span class="lineno">  223</span>&#160;</div><div class="line"><a name="l00225"></a><span class="lineno">  225</span>&#160;    <span class="keywordflow">if</span> (<a class="code" href="movementcommands_8c.html#ac5682e48513a771560df50e3b213e61a">heading</a> + current_degree &gt; 360)</div><div class="line"><a name="l00226"></a><span class="lineno">  226</span>&#160;    {</div><div class="line"><a name="l00227"></a><span class="lineno">  227</span>&#160;        newHeading = <a class="code" href="movementcommands_8c.html#ac5682e48513a771560df50e3b213e61a">heading</a> + current_degree;</div><div class="line"><a name="l00228"></a><span class="lineno">  228</span>&#160;        <a class="code" href="movementcommands_8c.html#ac5682e48513a771560df50e3b213e61a">heading</a> = newHeading - 360;</div><div class="line"><a name="l00229"></a><span class="lineno">  229</span>&#160;    }</div><div class="line"><a name="l00230"></a><span class="lineno">  230</span>&#160;    <span class="keywordflow">else</span> <span class="keywordflow">if</span> (<a class="code" href="movementcommands_8c.html#ac5682e48513a771560df50e3b213e61a">heading</a> + current_degree &lt; -360)</div><div class="line"><a name="l00231"></a><span class="lineno">  231</span>&#160;    {</div><div class="line"><a name="l00232"></a><span class="lineno">  232</span>&#160;        newHeading = <a class="code" href="movementcommands_8c.html#ac5682e48513a771560df50e3b213e61a">heading</a> + current_degree;</div><div class="line"><a name="l00233"></a><span class="lineno">  233</span>&#160;        <a class="code" href="movementcommands_8c.html#ac5682e48513a771560df50e3b213e61a">heading</a> = newHeading + 360;</div><div class="line"><a name="l00234"></a><span class="lineno">  234</span>&#160;    }</div><div class="line"><a name="l00235"></a><span class="lineno">  235</span>&#160;    <span class="keywordflow">else</span></div><div class="line"><a name="l00236"></a><span class="lineno">  236</span>&#160;    {</div><div class="line"><a name="l00237"></a><span class="lineno">  237</span>&#160;        newHeading = <a class="code" href="movementcommands_8c.html#ac5682e48513a771560df50e3b213e61a">heading</a> + current_degree;</div><div class="line"><a name="l00238"></a><span class="lineno">  238</span>&#160;        <a class="code" href="movementcommands_8c.html#ac5682e48513a771560df50e3b213e61a">heading</a> = newHeading;</div><div class="line"><a name="l00239"></a><span class="lineno">  239</span>&#160;    }</div><div class="line"><a name="l00240"></a><span class="lineno">  240</span>&#160;</div><div class="line"><a name="l00241"></a><span class="lineno">  241</span>&#160;    <a class="code" href="movementcommands_8c.html#ac5682e48513a771560df50e3b213e61a">heading</a> = newHeading;</div><div class="line"><a name="l00242"></a><span class="lineno">  242</span>&#160;</div><div class="line"><a name="l00243"></a><span class="lineno">  243</span>&#160;    oi_setWheels(0, 0);</div><div class="line"><a name="l00244"></a><span class="lineno">  244</span>&#160;    oi_update(<span class="keyword">self</span>);</div><div class="line"><a name="l00245"></a><span class="lineno">  245</span>&#160;    <span class="keywordflow">return</span> current_degree;</div><div class="line"><a name="l00246"></a><span class="lineno">  246</span>&#160;}</div><div class="line"><a name="l00247"></a><span class="lineno">  247</span>&#160;</div><div class="line"><a name="l00248"></a><span class="lineno"><a class="line" href="movementcommands_8h.html#af24f4aea581508f13025bf49cdb40b44">  248</a></span>&#160;<span class="keywordtype">void</span> <a class="code" href="movementcommands_8c.html#af24f4aea581508f13025bf49cdb40b44">parseCommand</a>(<span class="keywordtype">char</span> * cmdStr, <span class="keywordtype">int</span> * type, <span class="keywordtype">int</span> * degree, <span class="keywordtype">int</span> * distance)</div><div class="line"><a name="l00249"></a><span class="lineno">  249</span>&#160;{</div><div class="line"><a name="l00250"></a><span class="lineno">  250</span>&#160;</div><div class="line"><a name="l00253"></a><span class="lineno">  253</span>&#160;    <span class="keywordflow">if</span> (cmdStr[0] == <span class="charliteral">&#39;m&#39;</span>)</div><div class="line"><a name="l00254"></a><span class="lineno">  254</span>&#160;    {</div><div class="line"><a name="l00255"></a><span class="lineno">  255</span>&#160;        *type = MOVE;</div><div class="line"><a name="l00256"></a><span class="lineno">  256</span>&#160;        <span class="keywordtype">int</span> i = 0;</div><div class="line"><a name="l00257"></a><span class="lineno">  257</span>&#160;        i += 2;</div><div class="line"><a name="l00258"></a><span class="lineno">  258</span>&#160;        <span class="keywordtype">char</span> * parse;</div><div class="line"><a name="l00259"></a><span class="lineno">  259</span>&#160;        parse = strtok(&amp;cmdStr[i], <span class="stringliteral">&quot; &quot;</span>);</div><div class="line"><a name="l00260"></a><span class="lineno">  260</span>&#160;        *degree = atoi(parse);</div><div class="line"><a name="l00261"></a><span class="lineno">  261</span>&#160;        i += strlen(parse);</div><div class="line"><a name="l00262"></a><span class="lineno">  262</span>&#160;</div><div class="line"><a name="l00263"></a><span class="lineno">  263</span>&#160;        parse = &amp;cmdStr[i + 1];</div><div class="line"><a name="l00264"></a><span class="lineno">  264</span>&#160;        *distance = atoi(parse);</div><div class="line"><a name="l00265"></a><span class="lineno">  265</span>&#160;</div><div class="line"><a name="l00266"></a><span class="lineno">  266</span>&#160;    }</div><div class="line"><a name="l00267"></a><span class="lineno">  267</span>&#160;    <span class="keywordflow">else</span> <span class="keywordflow">if</span> (cmdStr[0] == <span class="charliteral">&#39;p&#39;</span>)</div><div class="line"><a name="l00268"></a><span class="lineno">  268</span>&#160;    {</div><div class="line"><a name="l00269"></a><span class="lineno">  269</span>&#160;        *type = PLAY_SOUND;</div><div class="line"><a name="l00270"></a><span class="lineno">  270</span>&#160;    }</div><div class="line"><a name="l00271"></a><span class="lineno">  271</span>&#160;    <span class="keywordflow">else</span> <span class="keywordflow">if</span> (cmdStr[0] == <span class="charliteral">&#39;s&#39;</span>)</div><div class="line"><a name="l00272"></a><span class="lineno">  272</span>&#160;    {</div><div class="line"><a name="l00273"></a><span class="lineno">  273</span>&#160;        *type = SWEEP_SENSOR;</div><div class="line"><a name="l00274"></a><span class="lineno">  274</span>&#160;    }</div><div class="line"><a name="l00275"></a><span class="lineno">  275</span>&#160;    <span class="keywordflow">else</span> <span class="keywordflow">if</span> (cmdStr[0] == <span class="charliteral">&#39;r&#39;</span>)</div><div class="line"><a name="l00276"></a><span class="lineno">  276</span>&#160;    {</div><div class="line"><a name="l00277"></a><span class="lineno">  277</span>&#160;        *type = QUERY_MOVEMENT;</div><div class="line"><a name="l00278"></a><span class="lineno">  278</span>&#160;    }</div><div class="line"><a name="l00279"></a><span class="lineno">  279</span>&#160;    <span class="keywordflow">else</span> <span class="keywordflow">if</span> (cmdStr[0] == <span class="charliteral">&#39;f&#39;</span>)</div><div class="line"><a name="l00280"></a><span class="lineno">  280</span>&#160;    {</div><div class="line"><a name="l00281"></a><span class="lineno">  281</span>&#160;        *type = MOVE_IGNORE;</div><div class="line"><a name="l00282"></a><span class="lineno">  282</span>&#160;        <span class="keywordtype">int</span> i = 0;</div><div class="line"><a name="l00283"></a><span class="lineno">  283</span>&#160;        i += 2;</div><div class="line"><a name="l00284"></a><span class="lineno">  284</span>&#160;        <span class="keywordtype">char</span> * parse;</div><div class="line"><a name="l00285"></a><span class="lineno">  285</span>&#160;        parse = strtok(&amp;cmdStr[i], <span class="stringliteral">&quot; &quot;</span>);</div><div class="line"><a name="l00286"></a><span class="lineno">  286</span>&#160;        *degree = atoi(parse);</div><div class="line"><a name="l00287"></a><span class="lineno">  287</span>&#160;        i += strlen(parse);</div><div class="line"><a name="l00288"></a><span class="lineno">  288</span>&#160;</div><div class="line"><a name="l00289"></a><span class="lineno">  289</span>&#160;        parse = &amp;cmdStr[i + 1];</div><div class="line"><a name="l00290"></a><span class="lineno">  290</span>&#160;        *distance = atoi(parse);</div><div class="line"><a name="l00291"></a><span class="lineno">  291</span>&#160;</div><div class="line"><a name="l00292"></a><span class="lineno">  292</span>&#160;    }</div><div class="line"><a name="l00293"></a><span class="lineno">  293</span>&#160;    <span class="keywordflow">else</span></div><div class="line"><a name="l00294"></a><span class="lineno">  294</span>&#160;    {</div><div class="line"><a name="l00295"></a><span class="lineno">  295</span>&#160;        *type = ERROR;</div><div class="line"><a name="l00296"></a><span class="lineno">  296</span>&#160;    }</div><div class="line"><a name="l00297"></a><span class="lineno">  297</span>&#160;</div><div class="line"><a name="l00298"></a><span class="lineno">  298</span>&#160;}</div><div class="line"><a name="l00299"></a><span class="lineno">  299</span>&#160;</div><div class="line"><a name="l00300"></a><span class="lineno"><a class="line" href="movementcommands_8h.html#a35f84947bb1dd6f437da3949f213c373">  300</a></span>&#160;<span class="keywordtype">void</span> <a class="code" href="movementcommands_8c.html#a35f84947bb1dd6f437da3949f213c373">getPosition</a>(<span class="keywordtype">float</span> * x, <span class="keywordtype">float</span> * y, <span class="keywordtype">float</span> * d)</div><div class="line"><a name="l00301"></a><span class="lineno">  301</span>&#160;{</div><div class="line"><a name="l00302"></a><span class="lineno">  302</span>&#160;    *x = <a class="code" href="movementcommands_8c.html#ad03773048a53823ad40f581d998dc34b">posx</a>;</div><div class="line"><a name="l00303"></a><span class="lineno">  303</span>&#160;    *y = <a class="code" href="movementcommands_8c.html#a43b49252713d5c09faf4af4ce59fdc12">posy</a>;</div><div class="line"><a name="l00304"></a><span class="lineno">  304</span>&#160;    *d = <a class="code" href="movementcommands_8c.html#ac5682e48513a771560df50e3b213e61a">heading</a>;</div><div class="line"><a name="l00305"></a><span class="lineno">  305</span>&#160;}</div><div class="ttc" id="cliff__sensor_8c_html_aea9fa7041962d3fde3549a56f8855162"><div class="ttname"><a href="cliff__sensor_8c.html#aea9fa7041962d3fde3549a56f8855162">checkGroundSensors</a></div><div class="ttdeci">int checkGroundSensors(oi_t *self)</div><div class="ttdef"><b>Definition:</b> <a href="cliff__sensor_8c_source.html#l00083">cliff_sensor.c:83</a></div></div>
+<a href="movementcommands_8c.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno">    1</span>&#160;</div><div class="line"><a name="l00012"></a><span class="lineno">   12</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="movementcommands_8h.html">movementcommands.h</a>&quot;</span></div><div class="line"><a name="l00013"></a><span class="lineno">   13</span>&#160;<span class="preprocessor">#include &lt;math.h&gt;</span></div><div class="line"><a name="l00014"></a><span class="lineno">   14</span>&#160;<span class="preprocessor">#include &lt;<a class="code" href="lcd_8h.html">Utils/lcd.h</a>&gt;</span></div><div class="line"><a name="l00015"></a><span class="lineno">   15</span>&#160;<span class="preprocessor">#include &lt;<a class="code" href="cliff__sensor_8h.html">Sensor/cliff_sensor.h</a>&gt;</span></div><div class="line"><a name="l00016"></a><span class="lineno">   16</span>&#160;</div><div class="line"><a name="l00017"></a><span class="lineno">   17</span>&#160;<span class="preprocessor">#define PI 3.1415926535897932</span></div><div class="line"><a name="l00018"></a><span class="lineno">   18</span>&#160;</div><div class="line"><a name="l00019"></a><span class="lineno">   19</span>&#160;<span class="comment">// -------------------------------- BEGIN GLOBAL VARIABLES -------------------------------- //</span></div><div class="line"><a name="l00020"></a><span class="lineno">   20</span>&#160;</div><div class="line"><a name="l00021"></a><span class="lineno">   21</span>&#160;<span class="comment">// GLOBAL VARIABLE(S) FOR MOVEMENTCOMMANDS:</span></div><div class="line"><a name="l00025"></a><span class="lineno"><a class="line" href="movementcommands_8c.html#ac5682e48513a771560df50e3b213e61a">   25</a></span>&#160;<span class="comment"></span><span class="keywordtype">float</span> <a class="code" href="movementcommands_8c.html#ac5682e48513a771560df50e3b213e61a">heading</a> = 0;</div><div class="line"><a name="l00029"></a><span class="lineno"><a class="line" href="movementcommands_8c.html#ad03773048a53823ad40f581d998dc34b">   29</a></span>&#160;<span class="keywordtype">float</span> <a class="code" href="movementcommands_8c.html#ad03773048a53823ad40f581d998dc34b">posx</a> = 0;</div><div class="line"><a name="l00033"></a><span class="lineno"><a class="line" href="movementcommands_8c.html#a43b49252713d5c09faf4af4ce59fdc12">   33</a></span>&#160;<span class="keywordtype">float</span> <a class="code" href="movementcommands_8c.html#a43b49252713d5c09faf4af4ce59fdc12">posy</a> = 0;</div><div class="line"><a name="l00037"></a><span class="lineno"><a class="line" href="movementcommands_8c.html#a5bc58d43105d723b774621219125aeb1">   37</a></span>&#160;<span class="keywordtype">float</span> <a class="code" href="movementcommands_8c.html#a5bc58d43105d723b774621219125aeb1">err</a> = 5.0;</div><div class="line"><a name="l00041"></a><span class="lineno"><a class="line" href="movementcommands_8c.html#a91a70b77df95bd8b0830b49a094c2acb">   41</a></span>&#160;<span class="keywordtype">char</span> * <a class="code" href="movementcommands_8c.html#a91a70b77df95bd8b0830b49a094c2acb">data</a>;</div><div class="line"><a name="l00042"></a><span class="lineno">   42</span>&#160;<span class="comment">// -------------------------------- END GLOBAL VARIABLES -------------------------------- //</span></div><div class="line"><a name="l00043"></a><span class="lineno">   43</span>&#160;</div><div class="line"><a name="l00044"></a><span class="lineno"><a class="line" href="movementcommands_8h.html#ac19e613d92cdd54f047e591fc0c99b07">   44</a></span>&#160;<span class="keywordtype">void</span> <a class="code" href="movementcommands_8c.html#ac19e613d92cdd54f047e591fc0c99b07">moveRobotDistance</a>(<a class="code" href="structoi__t.html">oi_t</a>* <span class="keyword">self</span>, <span class="keywordtype">int</span> input)</div><div class="line"><a name="l00045"></a><span class="lineno">   45</span>&#160;{</div><div class="line"><a name="l00046"></a><span class="lineno">   46</span>&#160;    <a class="code" href="open__interface_8c.html#a9129559bba5ff9dc7e4df64330864674">oi_update</a>(<span class="keyword">self</span>);</div><div class="line"><a name="l00047"></a><span class="lineno">   47</span>&#160;    <a class="code" href="open__interface_8c.html#a9129559bba5ff9dc7e4df64330864674">oi_update</a>(<span class="keyword">self</span>);</div><div class="line"><a name="l00048"></a><span class="lineno">   48</span>&#160;</div><div class="line"><a name="l00049"></a><span class="lineno">   49</span>&#160;    <span class="keywordtype">float</span> current_distance = <span class="keyword">self</span>-&gt;distance; <span class="comment">// Set Current distance to the delta distance from last update</span></div><div class="line"><a name="l00050"></a><span class="lineno">   50</span>&#160;    <span class="keywordtype">float</span> kp = 5; <span class="comment">//KP Gain to 5</span></div><div class="line"><a name="l00051"></a><span class="lineno">   51</span>&#160;    <span class="keywordtype">float</span> error = kp * (input - current_distance); <span class="comment">//Initialize feedback error</span></div><div class="line"><a name="l00052"></a><span class="lineno">   52</span>&#160;    <span class="keywordtype">int</span> groundVar = 0; <span class="comment">//Initialize Ground Check</span></div><div class="line"><a name="l00053"></a><span class="lineno">   53</span>&#160;    <span class="keywordtype">int</span> lastGround = 0; <span class="comment">// Initialize Bumper Check or Cliff check</span></div><div class="line"><a name="l00054"></a><span class="lineno">   54</span>&#160;    <span class="comment">//Move until we hit steady state error</span></div><div class="line"><a name="l00055"></a><span class="lineno">   55</span>&#160;    <span class="keywordflow">while</span> ((error / kp) &gt; <a class="code" href="movementcommands_8c.html#a5bc58d43105d723b774621219125aeb1">err</a> || (error / kp) &lt; -<a class="code" href="movementcommands_8c.html#a5bc58d43105d723b774621219125aeb1">err</a>)</div><div class="line"><a name="l00056"></a><span class="lineno">   56</span>&#160;    {</div><div class="line"><a name="l00057"></a><span class="lineno">   57</span>&#160;        <a class="code" href="open__interface_8c.html#a9129559bba5ff9dc7e4df64330864674">oi_update</a>(<span class="keyword">self</span>);</div><div class="line"><a name="l00058"></a><span class="lineno">   58</span>&#160;        <span class="comment">//Add distance traveled from last update</span></div><div class="line"><a name="l00059"></a><span class="lineno">   59</span>&#160;        current_distance += <span class="keyword">self</span>-&gt;distance;</div><div class="line"><a name="l00060"></a><span class="lineno">   60</span>&#160;        <span class="comment">//Set Feedback Error</span></div><div class="line"><a name="l00061"></a><span class="lineno">   61</span>&#160;        error = kp * (input - current_distance);</div><div class="line"><a name="l00062"></a><span class="lineno">   62</span>&#160;</div><div class="line"><a name="l00063"></a><span class="lineno">   63</span>&#160;        groundVar = <a class="code" href="cliff__sensor_8c.html#aea9fa7041962d3fde3549a56f8855162">checkGroundSensors</a>(<span class="keyword">self</span>);</div><div class="line"><a name="l00064"></a><span class="lineno">   64</span>&#160;</div><div class="line"><a name="l00066"></a><span class="lineno">   66</span>&#160;        <span class="keywordflow">if</span> (groundVar == 3)</div><div class="line"><a name="l00067"></a><span class="lineno">   67</span>&#160;        {</div><div class="line"><a name="l00068"></a><span class="lineno">   68</span>&#160;            snprintf(<a class="code" href="movementcommands_8c.html#a91a70b77df95bd8b0830b49a094c2acb">data</a>, 100, <span class="stringliteral">&quot;z %d %d %d %d\0&quot;</span>, <a class="code" href="cliff__sensor_8c.html#a1fa03a7f9a05ace91224ea610463e871">cs_getTerrain</a>(<span class="keyword">self</span>, LEFT),</div><div class="line"><a name="l00069"></a><span class="lineno">   69</span>&#160;                     <a class="code" href="cliff__sensor_8c.html#a1fa03a7f9a05ace91224ea610463e871">cs_getTerrain</a>(<span class="keyword">self</span>, FRONT_LEFT),</div><div class="line"><a name="l00070"></a><span class="lineno">   70</span>&#160;                     <a class="code" href="cliff__sensor_8c.html#a1fa03a7f9a05ace91224ea610463e871">cs_getTerrain</a>(<span class="keyword">self</span>, FRONT_RIGHT),</div><div class="line"><a name="l00071"></a><span class="lineno">   71</span>&#160;                     <a class="code" href="cliff__sensor_8c.html#a1fa03a7f9a05ace91224ea610463e871">cs_getTerrain</a>(<span class="keyword">self</span>, RIGHT));</div><div class="line"><a name="l00072"></a><span class="lineno">   72</span>&#160;            <a class="code" href="uart_8c.html#af96d1ce52b8a52eabc606489d31351e9">uart_sendStr</a>(<a class="code" href="movementcommands_8c.html#a91a70b77df95bd8b0830b49a094c2acb">data</a>);</div><div class="line"><a name="l00073"></a><span class="lineno">   73</span>&#160;        }</div><div class="line"><a name="l00074"></a><span class="lineno">   74</span>&#160;        <span class="keywordflow">else</span> <span class="keywordflow">if</span> (groundVar == 2)</div><div class="line"><a name="l00075"></a><span class="lineno">   75</span>&#160;        {</div><div class="line"><a name="l00076"></a><span class="lineno">   76</span>&#160;            <a class="code" href="open__interface_8c.html#a49949f029cc5f84ad903aa7022f4e5e0">oi_setWheels</a>(0, 0);</div><div class="line"><a name="l00077"></a><span class="lineno">   77</span>&#160;            snprintf(<a class="code" href="movementcommands_8c.html#a91a70b77df95bd8b0830b49a094c2acb">data</a>, 100, <span class="stringliteral">&quot;b %d %d %d %d\0&quot;</span>, <a class="code" href="cliff__sensor_8c.html#a1fa03a7f9a05ace91224ea610463e871">cs_getTerrain</a>(<span class="keyword">self</span>, LEFT),</div><div class="line"><a name="l00078"></a><span class="lineno">   78</span>&#160;                     <a class="code" href="cliff__sensor_8c.html#a1fa03a7f9a05ace91224ea610463e871">cs_getTerrain</a>(<span class="keyword">self</span>, FRONT_LEFT),</div><div class="line"><a name="l00079"></a><span class="lineno">   79</span>&#160;                     <a class="code" href="cliff__sensor_8c.html#a1fa03a7f9a05ace91224ea610463e871">cs_getTerrain</a>(<span class="keyword">self</span>, FRONT_RIGHT),</div><div class="line"><a name="l00080"></a><span class="lineno">   80</span>&#160;                     <a class="code" href="cliff__sensor_8c.html#a1fa03a7f9a05ace91224ea610463e871">cs_getTerrain</a>(<span class="keyword">self</span>, RIGHT));</div><div class="line"><a name="l00081"></a><span class="lineno">   81</span>&#160;            <a class="code" href="uart_8c.html#af96d1ce52b8a52eabc606489d31351e9">uart_sendStr</a>(<a class="code" href="movementcommands_8c.html#a91a70b77df95bd8b0830b49a094c2acb">data</a>);</div><div class="line"><a name="l00082"></a><span class="lineno">   82</span>&#160;            <span class="keywordflow">break</span>;</div><div class="line"><a name="l00083"></a><span class="lineno">   83</span>&#160;</div><div class="line"><a name="l00084"></a><span class="lineno">   84</span>&#160;        }</div><div class="line"><a name="l00085"></a><span class="lineno">   85</span>&#160;        <span class="keywordflow">else</span> <span class="keywordflow">if</span> (groundVar == 1 &amp;&amp; lastGround == 0)</div><div class="line"><a name="l00086"></a><span class="lineno">   86</span>&#160;        {</div><div class="line"><a name="l00087"></a><span class="lineno">   87</span>&#160;            lastGround = 1;</div><div class="line"><a name="l00088"></a><span class="lineno">   88</span>&#160;            <a class="code" href="open__interface_8c.html#a49949f029cc5f84ad903aa7022f4e5e0">oi_setWheels</a>(0, 0);</div><div class="line"><a name="l00089"></a><span class="lineno">   89</span>&#160;            snprintf(<a class="code" href="movementcommands_8c.html#a91a70b77df95bd8b0830b49a094c2acb">data</a>, 100, <span class="stringliteral">&quot;c %d %d %d %d\0&quot;</span>, <a class="code" href="cliff__sensor_8c.html#a1fa03a7f9a05ace91224ea610463e871">cs_getTerrain</a>(<span class="keyword">self</span>, LEFT),</div><div class="line"><a name="l00090"></a><span class="lineno">   90</span>&#160;                     <a class="code" href="cliff__sensor_8c.html#a1fa03a7f9a05ace91224ea610463e871">cs_getTerrain</a>(<span class="keyword">self</span>, FRONT_LEFT),</div><div class="line"><a name="l00091"></a><span class="lineno">   91</span>&#160;                     <a class="code" href="cliff__sensor_8c.html#a1fa03a7f9a05ace91224ea610463e871">cs_getTerrain</a>(<span class="keyword">self</span>, FRONT_RIGHT),</div><div class="line"><a name="l00092"></a><span class="lineno">   92</span>&#160;                     <a class="code" href="cliff__sensor_8c.html#a1fa03a7f9a05ace91224ea610463e871">cs_getTerrain</a>(<span class="keyword">self</span>, RIGHT));</div><div class="line"><a name="l00093"></a><span class="lineno">   93</span>&#160;            <a class="code" href="uart_8c.html#af96d1ce52b8a52eabc606489d31351e9">uart_sendStr</a>(<a class="code" href="movementcommands_8c.html#a91a70b77df95bd8b0830b49a094c2acb">data</a>);</div><div class="line"><a name="l00094"></a><span class="lineno">   94</span>&#160;            <span class="keywordflow">break</span>;</div><div class="line"><a name="l00095"></a><span class="lineno">   95</span>&#160;        }</div><div class="line"><a name="l00096"></a><span class="lineno">   96</span>&#160;</div><div class="line"><a name="l00098"></a><span class="lineno">   98</span>&#160;        <span class="keywordflow">if</span> ((self-&gt;bumpLeft == 1 || self-&gt;bumpRight == 1) &amp;&amp; lastGround == 0)</div><div class="line"><a name="l00099"></a><span class="lineno">   99</span>&#160;        {</div><div class="line"><a name="l00100"></a><span class="lineno">  100</span>&#160;            <a class="code" href="open__interface_8c.html#a49949f029cc5f84ad903aa7022f4e5e0">oi_setWheels</a>(0, 0);</div><div class="line"><a name="l00101"></a><span class="lineno">  101</span>&#160;            lastGround = 1;</div><div class="line"><a name="l00102"></a><span class="lineno">  102</span>&#160;            snprintf(<a class="code" href="movementcommands_8c.html#a91a70b77df95bd8b0830b49a094c2acb">data</a>, 100, <span class="stringliteral">&quot;q %d %d\0&quot;</span>, self-&gt;bumpLeft, self-&gt;bumpRight);</div><div class="line"><a name="l00103"></a><span class="lineno">  103</span>&#160;            <a class="code" href="uart_8c.html#af96d1ce52b8a52eabc606489d31351e9">uart_sendStr</a>(<a class="code" href="movementcommands_8c.html#a91a70b77df95bd8b0830b49a094c2acb">data</a>);</div><div class="line"><a name="l00104"></a><span class="lineno">  104</span>&#160;            <span class="keywordflow">break</span>;</div><div class="line"><a name="l00105"></a><span class="lineno">  105</span>&#160;        }</div><div class="line"><a name="l00106"></a><span class="lineno">  106</span>&#160;</div><div class="line"><a name="l00108"></a><span class="lineno">  108</span>&#160;        error = error &gt; 150.0 ? 150.0 : error;</div><div class="line"><a name="l00109"></a><span class="lineno">  109</span>&#160;        error = error &lt; -150.0 ? -150.0 : error;</div><div class="line"><a name="l00110"></a><span class="lineno">  110</span>&#160;        <a class="code" href="open__interface_8c.html#a49949f029cc5f84ad903aa7022f4e5e0">oi_setWheels</a>((<span class="keywordtype">int</span>) error, (<span class="keywordtype">int</span>) error);</div><div class="line"><a name="l00111"></a><span class="lineno">  111</span>&#160;        snprintf(<a class="code" href="movementcommands_8c.html#a91a70b77df95bd8b0830b49a094c2acb">data</a>, 100, <span class="stringliteral">&quot;x %.2f y %.2f h %.2f\0&quot;</span>,</div><div class="line"><a name="l00112"></a><span class="lineno">  112</span>&#160;                 <a class="code" href="movementcommands_8c.html#ad03773048a53823ad40f581d998dc34b">posx</a> - current_distance * sin(<a class="code" href="movementcommands_8c.html#ac5682e48513a771560df50e3b213e61a">heading</a> * PI / 180.0),</div><div class="line"><a name="l00113"></a><span class="lineno">  113</span>&#160;                 <a class="code" href="movementcommands_8c.html#a43b49252713d5c09faf4af4ce59fdc12">posy</a> + current_distance * cos(<a class="code" href="movementcommands_8c.html#ac5682e48513a771560df50e3b213e61a">heading</a> * PI / 180.0), <a class="code" href="movementcommands_8c.html#ac5682e48513a771560df50e3b213e61a">heading</a>);</div><div class="line"><a name="l00114"></a><span class="lineno">  114</span>&#160;        <a class="code" href="uart_8c.html#af96d1ce52b8a52eabc606489d31351e9">uart_sendStr</a>(<a class="code" href="movementcommands_8c.html#a91a70b77df95bd8b0830b49a094c2acb">data</a>);</div><div class="line"><a name="l00115"></a><span class="lineno">  115</span>&#160;</div><div class="line"><a name="l00116"></a><span class="lineno">  116</span>&#160;    }</div><div class="line"><a name="l00117"></a><span class="lineno">  117</span>&#160;</div><div class="line"><a name="l00118"></a><span class="lineno">  118</span>&#160;    <a class="code" href="movementcommands_8c.html#ad03773048a53823ad40f581d998dc34b">posx</a> += -current_distance * sin(<a class="code" href="movementcommands_8c.html#ac5682e48513a771560df50e3b213e61a">heading</a> * PI / 180.0);</div><div class="line"><a name="l00119"></a><span class="lineno">  119</span>&#160;    <a class="code" href="movementcommands_8c.html#a43b49252713d5c09faf4af4ce59fdc12">posy</a> += current_distance * cos(<a class="code" href="movementcommands_8c.html#ac5682e48513a771560df50e3b213e61a">heading</a> * PI / 180.0);</div><div class="line"><a name="l00120"></a><span class="lineno">  120</span>&#160;    <a class="code" href="open__interface_8c.html#a49949f029cc5f84ad903aa7022f4e5e0">oi_setWheels</a>(0, 0);</div><div class="line"><a name="l00121"></a><span class="lineno">  121</span>&#160;</div><div class="line"><a name="l00122"></a><span class="lineno">  122</span>&#160;}</div><div class="line"><a name="l00123"></a><span class="lineno">  123</span>&#160;</div><div class="line"><a name="l00124"></a><span class="lineno"><a class="line" href="movementcommands_8h.html#aec736dae690e0a896c49d05b27c9b970">  124</a></span>&#160;<span class="keywordtype">void</span> <a class="code" href="movementcommands_8c.html#aec736dae690e0a896c49d05b27c9b970">moveRobotDistanceIgnore</a>(<a class="code" href="structoi__t.html">oi_t</a>* <span class="keyword">self</span>, <span class="keywordtype">int</span> input)</div><div class="line"><a name="l00125"></a><span class="lineno">  125</span>&#160;{</div><div class="line"><a name="l00126"></a><span class="lineno">  126</span>&#160;    <a class="code" href="open__interface_8c.html#a9129559bba5ff9dc7e4df64330864674">oi_update</a>(<span class="keyword">self</span>);</div><div class="line"><a name="l00127"></a><span class="lineno">  127</span>&#160;    <a class="code" href="open__interface_8c.html#a9129559bba5ff9dc7e4df64330864674">oi_update</a>(<span class="keyword">self</span>);</div><div class="line"><a name="l00128"></a><span class="lineno">  128</span>&#160;</div><div class="line"><a name="l00129"></a><span class="lineno">  129</span>&#160;    <span class="keywordtype">float</span> current_distance = <span class="keyword">self</span>-&gt;distance; <span class="comment">// Set Current distance to the delta distance from last update</span></div><div class="line"><a name="l00130"></a><span class="lineno">  130</span>&#160;    <span class="keywordtype">float</span> kp = 5; <span class="comment">//KP Gain to 5</span></div><div class="line"><a name="l00131"></a><span class="lineno">  131</span>&#160;    <span class="keywordtype">float</span> error = kp * (input - current_distance); <span class="comment">//Initialize feedback error</span></div><div class="line"><a name="l00132"></a><span class="lineno">  132</span>&#160;    <span class="keywordtype">int</span> groundVar = 0; <span class="comment">//Initialize Ground Check</span></div><div class="line"><a name="l00133"></a><span class="lineno">  133</span>&#160;    <span class="keywordtype">int</span> lastGround = 0; <span class="comment">// Initialize Bumper Check or Cliff check</span></div><div class="line"><a name="l00134"></a><span class="lineno">  134</span>&#160;    <span class="comment">//Move until we hit steady state error</span></div><div class="line"><a name="l00135"></a><span class="lineno">  135</span>&#160;    <span class="keywordflow">while</span> ((error / kp) &gt; <a class="code" href="movementcommands_8c.html#a5bc58d43105d723b774621219125aeb1">err</a> || (error / kp) &lt; -<a class="code" href="movementcommands_8c.html#a5bc58d43105d723b774621219125aeb1">err</a>)</div><div class="line"><a name="l00136"></a><span class="lineno">  136</span>&#160;    {</div><div class="line"><a name="l00137"></a><span class="lineno">  137</span>&#160;        <a class="code" href="open__interface_8c.html#a9129559bba5ff9dc7e4df64330864674">oi_update</a>(<span class="keyword">self</span>);</div><div class="line"><a name="l00138"></a><span class="lineno">  138</span>&#160;        current_distance += <span class="keyword">self</span>-&gt;distance;</div><div class="line"><a name="l00139"></a><span class="lineno">  139</span>&#160;        error = kp * (input - current_distance);</div><div class="line"><a name="l00140"></a><span class="lineno">  140</span>&#160;</div><div class="line"><a name="l00142"></a><span class="lineno">  142</span>&#160;        groundVar = <a class="code" href="cliff__sensor_8c.html#aea9fa7041962d3fde3549a56f8855162">checkGroundSensors</a>(<span class="keyword">self</span>);</div><div class="line"><a name="l00143"></a><span class="lineno">  143</span>&#160;        <span class="keywordflow">if</span> (groundVar == 3)</div><div class="line"><a name="l00144"></a><span class="lineno">  144</span>&#160;        {</div><div class="line"><a name="l00145"></a><span class="lineno">  145</span>&#160;            snprintf(<a class="code" href="movementcommands_8c.html#a91a70b77df95bd8b0830b49a094c2acb">data</a>, 100, <span class="stringliteral">&quot;z %d %d %d %d\0&quot;</span>, <a class="code" href="cliff__sensor_8c.html#a1fa03a7f9a05ace91224ea610463e871">cs_getTerrain</a>(<span class="keyword">self</span>, LEFT),</div><div class="line"><a name="l00146"></a><span class="lineno">  146</span>&#160;                     <a class="code" href="cliff__sensor_8c.html#a1fa03a7f9a05ace91224ea610463e871">cs_getTerrain</a>(<span class="keyword">self</span>, FRONT_LEFT),</div><div class="line"><a name="l00147"></a><span class="lineno">  147</span>&#160;                     <a class="code" href="cliff__sensor_8c.html#a1fa03a7f9a05ace91224ea610463e871">cs_getTerrain</a>(<span class="keyword">self</span>, FRONT_RIGHT),</div><div class="line"><a name="l00148"></a><span class="lineno">  148</span>&#160;                     <a class="code" href="cliff__sensor_8c.html#a1fa03a7f9a05ace91224ea610463e871">cs_getTerrain</a>(<span class="keyword">self</span>, RIGHT));</div><div class="line"><a name="l00149"></a><span class="lineno">  149</span>&#160;            <a class="code" href="uart_8c.html#af96d1ce52b8a52eabc606489d31351e9">uart_sendStr</a>(<a class="code" href="movementcommands_8c.html#a91a70b77df95bd8b0830b49a094c2acb">data</a>);</div><div class="line"><a name="l00150"></a><span class="lineno">  150</span>&#160;        }</div><div class="line"><a name="l00151"></a><span class="lineno">  151</span>&#160;        <span class="keywordflow">else</span> <span class="keywordflow">if</span> (groundVar == 2)</div><div class="line"><a name="l00152"></a><span class="lineno">  152</span>&#160;        {</div><div class="line"><a name="l00153"></a><span class="lineno">  153</span>&#160;            snprintf(<a class="code" href="movementcommands_8c.html#a91a70b77df95bd8b0830b49a094c2acb">data</a>, 100, <span class="stringliteral">&quot;b %d %d %d %d\0&quot;</span>, <a class="code" href="cliff__sensor_8c.html#a1fa03a7f9a05ace91224ea610463e871">cs_getTerrain</a>(<span class="keyword">self</span>, LEFT),</div><div class="line"><a name="l00154"></a><span class="lineno">  154</span>&#160;                     <a class="code" href="cliff__sensor_8c.html#a1fa03a7f9a05ace91224ea610463e871">cs_getTerrain</a>(<span class="keyword">self</span>, FRONT_LEFT),</div><div class="line"><a name="l00155"></a><span class="lineno">  155</span>&#160;                     <a class="code" href="cliff__sensor_8c.html#a1fa03a7f9a05ace91224ea610463e871">cs_getTerrain</a>(<span class="keyword">self</span>, FRONT_RIGHT),</div><div class="line"><a name="l00156"></a><span class="lineno">  156</span>&#160;                     <a class="code" href="cliff__sensor_8c.html#a1fa03a7f9a05ace91224ea610463e871">cs_getTerrain</a>(<span class="keyword">self</span>, RIGHT));</div><div class="line"><a name="l00157"></a><span class="lineno">  157</span>&#160;            <a class="code" href="uart_8c.html#af96d1ce52b8a52eabc606489d31351e9">uart_sendStr</a>(<a class="code" href="movementcommands_8c.html#a91a70b77df95bd8b0830b49a094c2acb">data</a>);</div><div class="line"><a name="l00158"></a><span class="lineno">  158</span>&#160;        }</div><div class="line"><a name="l00159"></a><span class="lineno">  159</span>&#160;        <span class="keywordflow">else</span> <span class="keywordflow">if</span> (groundVar == 1 &amp;&amp; lastGround == 0)</div><div class="line"><a name="l00160"></a><span class="lineno">  160</span>&#160;        {</div><div class="line"><a name="l00161"></a><span class="lineno">  161</span>&#160;            lastGround = 1;</div><div class="line"><a name="l00162"></a><span class="lineno">  162</span>&#160;            <a class="code" href="open__interface_8c.html#a49949f029cc5f84ad903aa7022f4e5e0">oi_setWheels</a>(0, 0);</div><div class="line"><a name="l00163"></a><span class="lineno">  163</span>&#160;            snprintf(<a class="code" href="movementcommands_8c.html#a91a70b77df95bd8b0830b49a094c2acb">data</a>, 100, <span class="stringliteral">&quot;c %d %d %d %d\0&quot;</span>, <a class="code" href="cliff__sensor_8c.html#a1fa03a7f9a05ace91224ea610463e871">cs_getTerrain</a>(<span class="keyword">self</span>, LEFT),</div><div class="line"><a name="l00164"></a><span class="lineno">  164</span>&#160;                     <a class="code" href="cliff__sensor_8c.html#a1fa03a7f9a05ace91224ea610463e871">cs_getTerrain</a>(<span class="keyword">self</span>, FRONT_LEFT),</div><div class="line"><a name="l00165"></a><span class="lineno">  165</span>&#160;                     <a class="code" href="cliff__sensor_8c.html#a1fa03a7f9a05ace91224ea610463e871">cs_getTerrain</a>(<span class="keyword">self</span>, FRONT_RIGHT),</div><div class="line"><a name="l00166"></a><span class="lineno">  166</span>&#160;                     <a class="code" href="cliff__sensor_8c.html#a1fa03a7f9a05ace91224ea610463e871">cs_getTerrain</a>(<span class="keyword">self</span>, RIGHT));</div><div class="line"><a name="l00167"></a><span class="lineno">  167</span>&#160;            <a class="code" href="uart_8c.html#af96d1ce52b8a52eabc606489d31351e9">uart_sendStr</a>(<a class="code" href="movementcommands_8c.html#a91a70b77df95bd8b0830b49a094c2acb">data</a>);</div><div class="line"><a name="l00168"></a><span class="lineno">  168</span>&#160;            <span class="keywordflow">break</span>;</div><div class="line"><a name="l00169"></a><span class="lineno">  169</span>&#160;        }</div><div class="line"><a name="l00171"></a><span class="lineno">  171</span>&#160;        <span class="keywordflow">if</span> ((self-&gt;bumpLeft == 1 || self-&gt;bumpRight == 1) &amp;&amp; lastGround == 0)</div><div class="line"><a name="l00172"></a><span class="lineno">  172</span>&#160;        {</div><div class="line"><a name="l00173"></a><span class="lineno">  173</span>&#160;            <a class="code" href="open__interface_8c.html#a49949f029cc5f84ad903aa7022f4e5e0">oi_setWheels</a>(0, 0);</div><div class="line"><a name="l00174"></a><span class="lineno">  174</span>&#160;            lastGround = 1;</div><div class="line"><a name="l00175"></a><span class="lineno">  175</span>&#160;            snprintf(<a class="code" href="movementcommands_8c.html#a91a70b77df95bd8b0830b49a094c2acb">data</a>, 100, <span class="stringliteral">&quot;q %d %d\0&quot;</span>, self-&gt;bumpLeft, self-&gt;bumpRight);</div><div class="line"><a name="l00176"></a><span class="lineno">  176</span>&#160;            <a class="code" href="uart_8c.html#af96d1ce52b8a52eabc606489d31351e9">uart_sendStr</a>(<a class="code" href="movementcommands_8c.html#a91a70b77df95bd8b0830b49a094c2acb">data</a>);</div><div class="line"><a name="l00177"></a><span class="lineno">  177</span>&#160;            <span class="keywordflow">break</span>;</div><div class="line"><a name="l00178"></a><span class="lineno">  178</span>&#160;        }</div><div class="line"><a name="l00179"></a><span class="lineno">  179</span>&#160;</div><div class="line"><a name="l00181"></a><span class="lineno">  181</span>&#160;        error = error &gt; 150.0 ? 150.0 : error;</div><div class="line"><a name="l00182"></a><span class="lineno">  182</span>&#160;        error = error &lt; -150.0 ? -150.0 : error;</div><div class="line"><a name="l00183"></a><span class="lineno">  183</span>&#160;        <a class="code" href="open__interface_8c.html#a49949f029cc5f84ad903aa7022f4e5e0">oi_setWheels</a>((<span class="keywordtype">int</span>) error, (<span class="keywordtype">int</span>) error);</div><div class="line"><a name="l00184"></a><span class="lineno">  184</span>&#160;        snprintf(<a class="code" href="movementcommands_8c.html#a91a70b77df95bd8b0830b49a094c2acb">data</a>, 100, <span class="stringliteral">&quot;x %.2f y %.2f h %.2f\0&quot;</span>,</div><div class="line"><a name="l00185"></a><span class="lineno">  185</span>&#160;                 <a class="code" href="movementcommands_8c.html#ad03773048a53823ad40f581d998dc34b">posx</a> - current_distance * sin(<a class="code" href="movementcommands_8c.html#ac5682e48513a771560df50e3b213e61a">heading</a> * PI / 180.0),</div><div class="line"><a name="l00186"></a><span class="lineno">  186</span>&#160;                 <a class="code" href="movementcommands_8c.html#a43b49252713d5c09faf4af4ce59fdc12">posy</a> + current_distance * cos(<a class="code" href="movementcommands_8c.html#ac5682e48513a771560df50e3b213e61a">heading</a> * PI / 180.0), <a class="code" href="movementcommands_8c.html#ac5682e48513a771560df50e3b213e61a">heading</a>);</div><div class="line"><a name="l00187"></a><span class="lineno">  187</span>&#160;        <a class="code" href="uart_8c.html#af96d1ce52b8a52eabc606489d31351e9">uart_sendStr</a>(<a class="code" href="movementcommands_8c.html#a91a70b77df95bd8b0830b49a094c2acb">data</a>);</div><div class="line"><a name="l00188"></a><span class="lineno">  188</span>&#160;</div><div class="line"><a name="l00189"></a><span class="lineno">  189</span>&#160;    }</div><div class="line"><a name="l00190"></a><span class="lineno">  190</span>&#160;</div><div class="line"><a name="l00191"></a><span class="lineno">  191</span>&#160;    <a class="code" href="movementcommands_8c.html#ad03773048a53823ad40f581d998dc34b">posx</a> += -current_distance * sin(<a class="code" href="movementcommands_8c.html#ac5682e48513a771560df50e3b213e61a">heading</a> * PI / 180.0);</div><div class="line"><a name="l00192"></a><span class="lineno">  192</span>&#160;    <a class="code" href="movementcommands_8c.html#a43b49252713d5c09faf4af4ce59fdc12">posy</a> += current_distance * cos(<a class="code" href="movementcommands_8c.html#ac5682e48513a771560df50e3b213e61a">heading</a> * PI / 180.0);</div><div class="line"><a name="l00193"></a><span class="lineno">  193</span>&#160;    <a class="code" href="open__interface_8c.html#a49949f029cc5f84ad903aa7022f4e5e0">oi_setWheels</a>(0, 0);</div><div class="line"><a name="l00194"></a><span class="lineno">  194</span>&#160;</div><div class="line"><a name="l00195"></a><span class="lineno">  195</span>&#160;}</div><div class="line"><a name="l00196"></a><span class="lineno">  196</span>&#160;</div><div class="line"><a name="l00197"></a><span class="lineno"><a class="line" href="movementcommands_8h.html#a363d2d2063890c9731f0d9222060cd48">  197</a></span>&#160;<span class="keywordtype">float</span> <a class="code" href="movementcommands_8c.html#a363d2d2063890c9731f0d9222060cd48">turnRobotDegree</a>(<a class="code" href="structoi__t.html">oi_t</a>* <span class="keyword">self</span>, <span class="keywordtype">float</span> degrees)</div><div class="line"><a name="l00198"></a><span class="lineno">  198</span>&#160;{</div><div class="line"><a name="l00199"></a><span class="lineno">  199</span>&#160;    <a class="code" href="open__interface_8c.html#a9129559bba5ff9dc7e4df64330864674">oi_update</a>(<span class="keyword">self</span>);</div><div class="line"><a name="l00200"></a><span class="lineno">  200</span>&#160;    <a class="code" href="open__interface_8c.html#a9129559bba5ff9dc7e4df64330864674">oi_update</a>(<span class="keyword">self</span>);</div><div class="line"><a name="l00201"></a><span class="lineno">  201</span>&#160;    <span class="keywordtype">float</span> current_degree = 0;</div><div class="line"><a name="l00202"></a><span class="lineno">  202</span>&#160;    <span class="keywordtype">float</span> kp = 10;</div><div class="line"><a name="l00203"></a><span class="lineno">  203</span>&#160;    <span class="keywordtype">float</span> error = kp * (degrees - current_degree);</div><div class="line"><a name="l00204"></a><span class="lineno">  204</span>&#160;    <span class="keywordtype">float</span> newHeading = <a class="code" href="movementcommands_8c.html#ac5682e48513a771560df50e3b213e61a">heading</a>;</div><div class="line"><a name="l00205"></a><span class="lineno">  205</span>&#160;    <span class="comment">//Turn until we hit steady state error</span></div><div class="line"><a name="l00206"></a><span class="lineno">  206</span>&#160;    <span class="keywordflow">while</span> ((error / kp) &gt; 1.0 || (error / kp) &lt; -1.0)</div><div class="line"><a name="l00207"></a><span class="lineno">  207</span>&#160;    {</div><div class="line"><a name="l00208"></a><span class="lineno">  208</span>&#160;        <span class="comment">//Add delta degrees to degree</span></div><div class="line"><a name="l00209"></a><span class="lineno">  209</span>&#160;        current_degree += <span class="keyword">self</span>-&gt;angle;</div><div class="line"><a name="l00210"></a><span class="lineno">  210</span>&#160;        <span class="comment">//set the Feedback error</span></div><div class="line"><a name="l00211"></a><span class="lineno">  211</span>&#160;        error = kp * (degrees - current_degree);</div><div class="line"><a name="l00212"></a><span class="lineno">  212</span>&#160;        <span class="comment">//Bound motor speed to 200 mm/s</span></div><div class="line"><a name="l00213"></a><span class="lineno">  213</span>&#160;        error = error &gt; 200 ? 200 : error;</div><div class="line"><a name="l00214"></a><span class="lineno">  214</span>&#160;        error = error &lt; -200 ? -200 : error;</div><div class="line"><a name="l00215"></a><span class="lineno">  215</span>&#160;</div><div class="line"><a name="l00216"></a><span class="lineno">  216</span>&#160;        <a class="code" href="open__interface_8c.html#a49949f029cc5f84ad903aa7022f4e5e0">oi_setWheels</a>(error, -error);</div><div class="line"><a name="l00217"></a><span class="lineno">  217</span>&#160;        <a class="code" href="open__interface_8c.html#a9129559bba5ff9dc7e4df64330864674">oi_update</a>(<span class="keyword">self</span>);</div><div class="line"><a name="l00218"></a><span class="lineno">  218</span>&#160;        snprintf(<a class="code" href="movementcommands_8c.html#a91a70b77df95bd8b0830b49a094c2acb">data</a>, 100, <span class="stringliteral">&quot;x %.2f y %.2f h %.2f\0&quot;</span>, (<span class="keywordtype">float</span>) <a class="code" href="movementcommands_8c.html#ad03773048a53823ad40f581d998dc34b">posx</a>,</div><div class="line"><a name="l00219"></a><span class="lineno">  219</span>&#160;                 (<span class="keywordtype">float</span>) <a class="code" href="movementcommands_8c.html#a43b49252713d5c09faf4af4ce59fdc12">posy</a>, (<span class="keywordtype">float</span>) newHeading);</div><div class="line"><a name="l00220"></a><span class="lineno">  220</span>&#160;        <a class="code" href="uart_8c.html#af96d1ce52b8a52eabc606489d31351e9">uart_sendStr</a>(<a class="code" href="movementcommands_8c.html#a91a70b77df95bd8b0830b49a094c2acb">data</a>);</div><div class="line"><a name="l00221"></a><span class="lineno">  221</span>&#160;        newHeading = <a class="code" href="movementcommands_8c.html#ac5682e48513a771560df50e3b213e61a">heading</a> + current_degree;</div><div class="line"><a name="l00222"></a><span class="lineno">  222</span>&#160;    }</div><div class="line"><a name="l00223"></a><span class="lineno">  223</span>&#160;</div><div class="line"><a name="l00225"></a><span class="lineno">  225</span>&#160;    <span class="keywordflow">if</span> (<a class="code" href="movementcommands_8c.html#ac5682e48513a771560df50e3b213e61a">heading</a> + current_degree &gt; 360)</div><div class="line"><a name="l00226"></a><span class="lineno">  226</span>&#160;    {</div><div class="line"><a name="l00227"></a><span class="lineno">  227</span>&#160;        newHeading = <a class="code" href="movementcommands_8c.html#ac5682e48513a771560df50e3b213e61a">heading</a> + current_degree;</div><div class="line"><a name="l00228"></a><span class="lineno">  228</span>&#160;        <a class="code" href="movementcommands_8c.html#ac5682e48513a771560df50e3b213e61a">heading</a> = newHeading - 360;</div><div class="line"><a name="l00229"></a><span class="lineno">  229</span>&#160;    }</div><div class="line"><a name="l00230"></a><span class="lineno">  230</span>&#160;    <span class="keywordflow">else</span> <span class="keywordflow">if</span> (<a class="code" href="movementcommands_8c.html#ac5682e48513a771560df50e3b213e61a">heading</a> + current_degree &lt; -360)</div><div class="line"><a name="l00231"></a><span class="lineno">  231</span>&#160;    {</div><div class="line"><a name="l00232"></a><span class="lineno">  232</span>&#160;        newHeading = <a class="code" href="movementcommands_8c.html#ac5682e48513a771560df50e3b213e61a">heading</a> + current_degree;</div><div class="line"><a name="l00233"></a><span class="lineno">  233</span>&#160;        <a class="code" href="movementcommands_8c.html#ac5682e48513a771560df50e3b213e61a">heading</a> = newHeading + 360;</div><div class="line"><a name="l00234"></a><span class="lineno">  234</span>&#160;    }</div><div class="line"><a name="l00235"></a><span class="lineno">  235</span>&#160;    <span class="keywordflow">else</span></div><div class="line"><a name="l00236"></a><span class="lineno">  236</span>&#160;    {</div><div class="line"><a name="l00237"></a><span class="lineno">  237</span>&#160;        newHeading = <a class="code" href="movementcommands_8c.html#ac5682e48513a771560df50e3b213e61a">heading</a> + current_degree;</div><div class="line"><a name="l00238"></a><span class="lineno">  238</span>&#160;        <a class="code" href="movementcommands_8c.html#ac5682e48513a771560df50e3b213e61a">heading</a> = newHeading;</div><div class="line"><a name="l00239"></a><span class="lineno">  239</span>&#160;    }</div><div class="line"><a name="l00240"></a><span class="lineno">  240</span>&#160;</div><div class="line"><a name="l00241"></a><span class="lineno">  241</span>&#160;    <a class="code" href="movementcommands_8c.html#ac5682e48513a771560df50e3b213e61a">heading</a> = newHeading;</div><div class="line"><a name="l00242"></a><span class="lineno">  242</span>&#160;</div><div class="line"><a name="l00243"></a><span class="lineno">  243</span>&#160;    <a class="code" href="open__interface_8c.html#a49949f029cc5f84ad903aa7022f4e5e0">oi_setWheels</a>(0, 0);</div><div class="line"><a name="l00244"></a><span class="lineno">  244</span>&#160;    <a class="code" href="open__interface_8c.html#a9129559bba5ff9dc7e4df64330864674">oi_update</a>(<span class="keyword">self</span>);</div><div class="line"><a name="l00245"></a><span class="lineno">  245</span>&#160;    <span class="keywordflow">return</span> current_degree;</div><div class="line"><a name="l00246"></a><span class="lineno">  246</span>&#160;}</div><div class="line"><a name="l00247"></a><span class="lineno">  247</span>&#160;</div><div class="line"><a name="l00248"></a><span class="lineno"><a class="line" href="movementcommands_8h.html#af24f4aea581508f13025bf49cdb40b44">  248</a></span>&#160;<span class="keywordtype">void</span> <a class="code" href="movementcommands_8c.html#af24f4aea581508f13025bf49cdb40b44">parseCommand</a>(<span class="keywordtype">char</span> * cmdStr, <span class="keywordtype">int</span> * type, <span class="keywordtype">int</span> * degree, <span class="keywordtype">int</span> * distance)</div><div class="line"><a name="l00249"></a><span class="lineno">  249</span>&#160;{</div><div class="line"><a name="l00250"></a><span class="lineno">  250</span>&#160;</div><div class="line"><a name="l00253"></a><span class="lineno">  253</span>&#160;    <span class="keywordflow">if</span> (cmdStr[0] == <span class="charliteral">&#39;m&#39;</span>)</div><div class="line"><a name="l00254"></a><span class="lineno">  254</span>&#160;    {</div><div class="line"><a name="l00255"></a><span class="lineno">  255</span>&#160;        *type = MOVE;</div><div class="line"><a name="l00256"></a><span class="lineno">  256</span>&#160;        <span class="keywordtype">int</span> i = 0;</div><div class="line"><a name="l00257"></a><span class="lineno">  257</span>&#160;        i += 2;</div><div class="line"><a name="l00258"></a><span class="lineno">  258</span>&#160;        <span class="keywordtype">char</span> * parse;</div><div class="line"><a name="l00259"></a><span class="lineno">  259</span>&#160;        parse = strtok(&amp;cmdStr[i], <span class="stringliteral">&quot; &quot;</span>);</div><div class="line"><a name="l00260"></a><span class="lineno">  260</span>&#160;        *degree = atoi(parse);</div><div class="line"><a name="l00261"></a><span class="lineno">  261</span>&#160;        i += strlen(parse);</div><div class="line"><a name="l00262"></a><span class="lineno">  262</span>&#160;</div><div class="line"><a name="l00263"></a><span class="lineno">  263</span>&#160;        parse = &amp;cmdStr[i + 1];</div><div class="line"><a name="l00264"></a><span class="lineno">  264</span>&#160;        *distance = atoi(parse);</div><div class="line"><a name="l00265"></a><span class="lineno">  265</span>&#160;</div><div class="line"><a name="l00266"></a><span class="lineno">  266</span>&#160;    }</div><div class="line"><a name="l00267"></a><span class="lineno">  267</span>&#160;    <span class="keywordflow">else</span> <span class="keywordflow">if</span> (cmdStr[0] == <span class="charliteral">&#39;p&#39;</span>)</div><div class="line"><a name="l00268"></a><span class="lineno">  268</span>&#160;    {</div><div class="line"><a name="l00269"></a><span class="lineno">  269</span>&#160;        *type = PLAY_SOUND;</div><div class="line"><a name="l00270"></a><span class="lineno">  270</span>&#160;    }</div><div class="line"><a name="l00271"></a><span class="lineno">  271</span>&#160;    <span class="keywordflow">else</span> <span class="keywordflow">if</span> (cmdStr[0] == <span class="charliteral">&#39;s&#39;</span>)</div><div class="line"><a name="l00272"></a><span class="lineno">  272</span>&#160;    {</div><div class="line"><a name="l00273"></a><span class="lineno">  273</span>&#160;        *type = SWEEP_SENSOR;</div><div class="line"><a name="l00274"></a><span class="lineno">  274</span>&#160;    }</div><div class="line"><a name="l00275"></a><span class="lineno">  275</span>&#160;    <span class="keywordflow">else</span> <span class="keywordflow">if</span> (cmdStr[0] == <span class="charliteral">&#39;r&#39;</span>)</div><div class="line"><a name="l00276"></a><span class="lineno">  276</span>&#160;    {</div><div class="line"><a name="l00277"></a><span class="lineno">  277</span>&#160;        *type = QUERY_MOVEMENT;</div><div class="line"><a name="l00278"></a><span class="lineno">  278</span>&#160;    }</div><div class="line"><a name="l00279"></a><span class="lineno">  279</span>&#160;    <span class="keywordflow">else</span> <span class="keywordflow">if</span> (cmdStr[0] == <span class="charliteral">&#39;f&#39;</span>)</div><div class="line"><a name="l00280"></a><span class="lineno">  280</span>&#160;    {</div><div class="line"><a name="l00281"></a><span class="lineno">  281</span>&#160;        *type = MOVE_IGNORE;</div><div class="line"><a name="l00282"></a><span class="lineno">  282</span>&#160;        <span class="keywordtype">int</span> i = 0;</div><div class="line"><a name="l00283"></a><span class="lineno">  283</span>&#160;        i += 2;</div><div class="line"><a name="l00284"></a><span class="lineno">  284</span>&#160;        <span class="keywordtype">char</span> * parse;</div><div class="line"><a name="l00285"></a><span class="lineno">  285</span>&#160;        parse = strtok(&amp;cmdStr[i], <span class="stringliteral">&quot; &quot;</span>);</div><div class="line"><a name="l00286"></a><span class="lineno">  286</span>&#160;        *degree = atoi(parse);</div><div class="line"><a name="l00287"></a><span class="lineno">  287</span>&#160;        i += strlen(parse);</div><div class="line"><a name="l00288"></a><span class="lineno">  288</span>&#160;</div><div class="line"><a name="l00289"></a><span class="lineno">  289</span>&#160;        parse = &amp;cmdStr[i + 1];</div><div class="line"><a name="l00290"></a><span class="lineno">  290</span>&#160;        *distance = atoi(parse);</div><div class="line"><a name="l00291"></a><span class="lineno">  291</span>&#160;</div><div class="line"><a name="l00292"></a><span class="lineno">  292</span>&#160;    }</div><div class="line"><a name="l00293"></a><span class="lineno">  293</span>&#160;    <span class="keywordflow">else</span></div><div class="line"><a name="l00294"></a><span class="lineno">  294</span>&#160;    {</div><div class="line"><a name="l00295"></a><span class="lineno">  295</span>&#160;        *type = ERROR;</div><div class="line"><a name="l00296"></a><span class="lineno">  296</span>&#160;    }</div><div class="line"><a name="l00297"></a><span class="lineno">  297</span>&#160;</div><div class="line"><a name="l00298"></a><span class="lineno">  298</span>&#160;}</div><div class="line"><a name="l00299"></a><span class="lineno">  299</span>&#160;</div><div class="line"><a name="l00300"></a><span class="lineno"><a class="line" href="movementcommands_8h.html#a35f84947bb1dd6f437da3949f213c373">  300</a></span>&#160;<span class="keywordtype">void</span> <a class="code" href="movementcommands_8c.html#a35f84947bb1dd6f437da3949f213c373">getPosition</a>(<span class="keywordtype">float</span> * x, <span class="keywordtype">float</span> * y, <span class="keywordtype">float</span> * d)</div><div class="line"><a name="l00301"></a><span class="lineno">  301</span>&#160;{</div><div class="line"><a name="l00302"></a><span class="lineno">  302</span>&#160;    *x = <a class="code" href="movementcommands_8c.html#ad03773048a53823ad40f581d998dc34b">posx</a>;</div><div class="line"><a name="l00303"></a><span class="lineno">  303</span>&#160;    *y = <a class="code" href="movementcommands_8c.html#a43b49252713d5c09faf4af4ce59fdc12">posy</a>;</div><div class="line"><a name="l00304"></a><span class="lineno">  304</span>&#160;    *d = <a class="code" href="movementcommands_8c.html#ac5682e48513a771560df50e3b213e61a">heading</a>;</div><div class="line"><a name="l00305"></a><span class="lineno">  305</span>&#160;}</div><div class="ttc" id="cliff__sensor_8c_html_aea9fa7041962d3fde3549a56f8855162"><div class="ttname"><a href="cliff__sensor_8c.html#aea9fa7041962d3fde3549a56f8855162">checkGroundSensors</a></div><div class="ttdeci">int checkGroundSensors(oi_t *self)</div><div class="ttdef"><b>Definition:</b> <a href="cliff__sensor_8c_source.html#l00083">cliff_sensor.c:83</a></div></div>
 <div class="ttc" id="movementcommands_8c_html_a5bc58d43105d723b774621219125aeb1"><div class="ttname"><a href="movementcommands_8c.html#a5bc58d43105d723b774621219125aeb1">err</a></div><div class="ttdeci">float err</div><div class="ttdef"><b>Definition:</b> <a href="movementcommands_8c_source.html#l00037">movementcommands.c:37</a></div></div>
 <div class="ttc" id="movementcommands_8c_html_ad03773048a53823ad40f581d998dc34b"><div class="ttname"><a href="movementcommands_8c.html#ad03773048a53823ad40f581d998dc34b">posx</a></div><div class="ttdeci">float posx</div><div class="ttdef"><b>Definition:</b> <a href="movementcommands_8c_source.html#l00029">movementcommands.c:29</a></div></div>
 <div class="ttc" id="movementcommands_8c_html_a363d2d2063890c9731f0d9222060cd48"><div class="ttname"><a href="movementcommands_8c.html#a363d2d2063890c9731f0d9222060cd48">turnRobotDegree</a></div><div class="ttdeci">float turnRobotDegree(oi_t *self, float degrees)</div><div class="ttdef"><b>Definition:</b> <a href="movementcommands_8c_source.html#l00197">movementcommands.c:197</a></div></div>
 <div class="ttc" id="movementcommands_8c_html_a91a70b77df95bd8b0830b49a094c2acb"><div class="ttname"><a href="movementcommands_8c.html#a91a70b77df95bd8b0830b49a094c2acb">data</a></div><div class="ttdeci">char * data</div><div class="ttdef"><b>Definition:</b> <a href="movementcommands_8c_source.html#l00041">movementcommands.c:41</a></div></div>
+<div class="ttc" id="open__interface_8c_html_a9129559bba5ff9dc7e4df64330864674"><div class="ttname"><a href="open__interface_8c.html#a9129559bba5ff9dc7e4df64330864674">oi_update</a></div><div class="ttdeci">void oi_update(oi_t *self)</div><div class="ttdoc">Update all sensor and store in oi_t struct. </div><div class="ttdef"><b>Definition:</b> <a href="open__interface_8c_source.html#l00169">open_interface.c:169</a></div></div>
 <div class="ttc" id="movementcommands_8c_html_ac19e613d92cdd54f047e591fc0c99b07"><div class="ttname"><a href="movementcommands_8c.html#ac19e613d92cdd54f047e591fc0c99b07">moveRobotDistance</a></div><div class="ttdeci">void moveRobotDistance(oi_t *self, int input)</div><div class="ttdef"><b>Definition:</b> <a href="movementcommands_8c_source.html#l00044">movementcommands.c:44</a></div></div>
 <div class="ttc" id="movementcommands_8c_html_a43b49252713d5c09faf4af4ce59fdc12"><div class="ttname"><a href="movementcommands_8c.html#a43b49252713d5c09faf4af4ce59fdc12">posy</a></div><div class="ttdeci">float posy</div><div class="ttdef"><b>Definition:</b> <a href="movementcommands_8c_source.html#l00033">movementcommands.c:33</a></div></div>
+<div class="ttc" id="open__interface_8c_html_a49949f029cc5f84ad903aa7022f4e5e0"><div class="ttname"><a href="open__interface_8c.html#a49949f029cc5f84ad903aa7022f4e5e0">oi_setWheels</a></div><div class="ttdeci">void oi_setWheels(int16_t right_wheel, int16_t left_wheel)</div><div class="ttdoc">Set direction and speed of the robot&amp;#39;s wheels. </div><div class="ttdef"><b>Definition:</b> <a href="open__interface_8c_source.html#l00316">open_interface.c:316</a></div></div>
 <div class="ttc" id="movementcommands_8c_html_a35f84947bb1dd6f437da3949f213c373"><div class="ttname"><a href="movementcommands_8c.html#a35f84947bb1dd6f437da3949f213c373">getPosition</a></div><div class="ttdeci">void getPosition(float *x, float *y, float *d)</div><div class="ttdef"><b>Definition:</b> <a href="movementcommands_8c_source.html#l00300">movementcommands.c:300</a></div></div>
 <div class="ttc" id="cliff__sensor_8c_html_a1fa03a7f9a05ace91224ea610463e871"><div class="ttname"><a href="cliff__sensor_8c.html#a1fa03a7f9a05ace91224ea610463e871">cs_getTerrain</a></div><div class="ttdeci">Terrain cs_getTerrain(oi_t *self, CliffSensor sensor)</div><div class="ttdef"><b>Definition:</b> <a href="cliff__sensor_8c_source.html#l00053">cliff_sensor.c:53</a></div></div>
+<div class="ttc" id="lcd_8h_html"><div class="ttname"><a href="lcd_8h.html">lcd.h</a></div><div class="ttdoc">Header file for lcd.c. </div></div>
 <div class="ttc" id="structoi__t_html"><div class="ttname"><a href="structoi__t.html">oi_t</a></div><div class="ttdoc">iRobot Create Sensor Data </div><div class="ttdef"><b>Definition:</b> <a href="open__interface_8h_source.html#l00031">open_interface.h:31</a></div></div>
 <div class="ttc" id="movementcommands_8c_html_ac5682e48513a771560df50e3b213e61a"><div class="ttname"><a href="movementcommands_8c.html#ac5682e48513a771560df50e3b213e61a">heading</a></div><div class="ttdeci">float heading</div><div class="ttdef"><b>Definition:</b> <a href="movementcommands_8c_source.html#l00025">movementcommands.c:25</a></div></div>
 <div class="ttc" id="movementcommands_8h_html"><div class="ttname"><a href="movementcommands_8h.html">movementcommands.h</a></div><div class="ttdoc">Header for controlling the robot heading and direction. Also includes the UART parser for commands...</div></div>
diff --git a/Doxygen/html/movementcommands_8h_source.html b/Doxygen/html/movementcommands_8h_source.html
index fa049a975b99d09d0d63ced775839ca0e7eb2acc..c57e9b5ad8391704b06b8c6566748e829f50e1cb 100644
--- a/Doxygen/html/movementcommands_8h_source.html
+++ b/Doxygen/html/movementcommands_8h_source.html
@@ -92,10 +92,11 @@ $(document).ready(function(){initNavTree('movementcommands_8h_source.html','');}
 <div class="title">movementcommands.h</div>  </div>
 </div><!--header-->
 <div class="contents">
-<a href="movementcommands_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno">    1</span>&#160;</div><div class="line"><a name="l00016"></a><span class="lineno">   16</span>&#160;<span class="preprocessor">#include &lt;Utils/open_interface.h&gt;</span></div><div class="line"><a name="l00017"></a><span class="lineno">   17</span>&#160;<span class="preprocessor">#include &lt;<a class="code" href="uart_8h.html">Communication/uart.h</a>&gt;</span></div><div class="line"><a name="l00018"></a><span class="lineno">   18</span>&#160;</div><div class="line"><a name="l00019"></a><span class="lineno">   19</span>&#160;<span class="preprocessor">#ifndef NAVIGATION_MOVEMENTCOMMANDS_H_</span></div><div class="line"><a name="l00020"></a><span class="lineno">   20</span>&#160;<span class="preprocessor">#define NAVIGATION_MOVEMENTCOMMANDS_H_</span></div><div class="line"><a name="l00021"></a><span class="lineno">   21</span>&#160;</div><div class="line"><a name="l00028"></a><span class="lineno">   28</span>&#160;<span class="keywordtype">void</span> <a class="code" href="movementcommands_8h.html#ac19e613d92cdd54f047e591fc0c99b07">moveRobotDistance</a>(<a class="code" href="structoi__t.html">oi_t</a>* <span class="keyword">self</span>, <span class="keywordtype">int</span> input);</div><div class="line"><a name="l00035"></a><span class="lineno">   35</span>&#160;<span class="keywordtype">void</span> <a class="code" href="movementcommands_8h.html#aec736dae690e0a896c49d05b27c9b970">moveRobotDistanceIgnore</a>(<a class="code" href="structoi__t.html">oi_t</a>* <span class="keyword">self</span>, <span class="keywordtype">int</span> input);</div><div class="line"><a name="l00046"></a><span class="lineno">   46</span>&#160;<span class="keywordtype">float</span> <a class="code" href="movementcommands_8h.html#a363d2d2063890c9731f0d9222060cd48">turnRobotDegree</a>(<a class="code" href="structoi__t.html">oi_t</a>* <span class="keyword">self</span>, <span class="keywordtype">float</span> degrees);</div><div class="line"><a name="l00047"></a><span class="lineno">   47</span>&#160;</div><div class="line"><a name="l00057"></a><span class="lineno">   57</span>&#160;<span class="keywordtype">void</span> <a class="code" href="movementcommands_8h.html#af24f4aea581508f13025bf49cdb40b44">parseCommand</a>(<span class="keywordtype">char</span> * cmdStr, <span class="keywordtype">int</span> * type, <span class="keywordtype">int</span> * degree, <span class="keywordtype">int</span> * distance);</div><div class="line"><a name="l00067"></a><span class="lineno">   67</span>&#160;<span class="keywordtype">void</span> <a class="code" href="movementcommands_8h.html#a35f84947bb1dd6f437da3949f213c373">getPosition</a>(<span class="keywordtype">float</span> * x, <span class="keywordtype">float</span> * y, <span class="keywordtype">float</span> * d);</div><div class="line"><a name="l00068"></a><span class="lineno">   68</span>&#160;<span class="keyword">enum</span> TCP_COMMAND_TYPE</div><div class="line"><a name="l00069"></a><span class="lineno">   69</span>&#160;{</div><div class="line"><a name="l00070"></a><span class="lineno">   70</span>&#160;    ERROR, MOVE, PLAY_SOUND, SWEEP_SENSOR, QUERY_MOVEMENT, MOVE_IGNORE</div><div class="line"><a name="l00071"></a><span class="lineno">   71</span>&#160;</div><div class="line"><a name="l00072"></a><span class="lineno">   72</span>&#160;};</div><div class="line"><a name="l00073"></a><span class="lineno">   73</span>&#160;</div><div class="line"><a name="l00074"></a><span class="lineno">   74</span>&#160;<span class="preprocessor">#endif </span><span class="comment">/* NAVIGATION_MOVEMENTCOMMANDS_H_ */</span><span class="preprocessor"></span></div><div class="ttc" id="uart_8h_html"><div class="ttname"><a href="uart_8h.html">uart.h</a></div><div class="ttdoc">Header file for uart.c Used to set up the RS232 connector and WIFI module uses UART1 at 115200...</div></div>
+<a href="movementcommands_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno">    1</span>&#160;</div><div class="line"><a name="l00016"></a><span class="lineno">   16</span>&#160;<span class="preprocessor">#include &lt;<a class="code" href="open__interface_8h.html">Utils/open_interface.h</a>&gt;</span></div><div class="line"><a name="l00017"></a><span class="lineno">   17</span>&#160;<span class="preprocessor">#include &lt;<a class="code" href="uart_8h.html">Communication/uart.h</a>&gt;</span></div><div class="line"><a name="l00018"></a><span class="lineno">   18</span>&#160;</div><div class="line"><a name="l00019"></a><span class="lineno">   19</span>&#160;<span class="preprocessor">#ifndef NAVIGATION_MOVEMENTCOMMANDS_H_</span></div><div class="line"><a name="l00020"></a><span class="lineno">   20</span>&#160;<span class="preprocessor">#define NAVIGATION_MOVEMENTCOMMANDS_H_</span></div><div class="line"><a name="l00021"></a><span class="lineno">   21</span>&#160;</div><div class="line"><a name="l00028"></a><span class="lineno">   28</span>&#160;<span class="keywordtype">void</span> <a class="code" href="movementcommands_8h.html#ac19e613d92cdd54f047e591fc0c99b07">moveRobotDistance</a>(<a class="code" href="structoi__t.html">oi_t</a>* <span class="keyword">self</span>, <span class="keywordtype">int</span> input);</div><div class="line"><a name="l00035"></a><span class="lineno">   35</span>&#160;<span class="keywordtype">void</span> <a class="code" href="movementcommands_8h.html#aec736dae690e0a896c49d05b27c9b970">moveRobotDistanceIgnore</a>(<a class="code" href="structoi__t.html">oi_t</a>* <span class="keyword">self</span>, <span class="keywordtype">int</span> input);</div><div class="line"><a name="l00046"></a><span class="lineno">   46</span>&#160;<span class="keywordtype">float</span> <a class="code" href="movementcommands_8h.html#a363d2d2063890c9731f0d9222060cd48">turnRobotDegree</a>(<a class="code" href="structoi__t.html">oi_t</a>* <span class="keyword">self</span>, <span class="keywordtype">float</span> degrees);</div><div class="line"><a name="l00047"></a><span class="lineno">   47</span>&#160;</div><div class="line"><a name="l00057"></a><span class="lineno">   57</span>&#160;<span class="keywordtype">void</span> <a class="code" href="movementcommands_8h.html#af24f4aea581508f13025bf49cdb40b44">parseCommand</a>(<span class="keywordtype">char</span> * cmdStr, <span class="keywordtype">int</span> * type, <span class="keywordtype">int</span> * degree, <span class="keywordtype">int</span> * distance);</div><div class="line"><a name="l00067"></a><span class="lineno">   67</span>&#160;<span class="keywordtype">void</span> <a class="code" href="movementcommands_8h.html#a35f84947bb1dd6f437da3949f213c373">getPosition</a>(<span class="keywordtype">float</span> * x, <span class="keywordtype">float</span> * y, <span class="keywordtype">float</span> * d);</div><div class="line"><a name="l00068"></a><span class="lineno">   68</span>&#160;<span class="keyword">enum</span> TCP_COMMAND_TYPE</div><div class="line"><a name="l00069"></a><span class="lineno">   69</span>&#160;{</div><div class="line"><a name="l00070"></a><span class="lineno">   70</span>&#160;    ERROR, MOVE, PLAY_SOUND, SWEEP_SENSOR, QUERY_MOVEMENT, MOVE_IGNORE</div><div class="line"><a name="l00071"></a><span class="lineno">   71</span>&#160;</div><div class="line"><a name="l00072"></a><span class="lineno">   72</span>&#160;};</div><div class="line"><a name="l00073"></a><span class="lineno">   73</span>&#160;</div><div class="line"><a name="l00074"></a><span class="lineno">   74</span>&#160;<span class="preprocessor">#endif </span><span class="comment">/* NAVIGATION_MOVEMENTCOMMANDS_H_ */</span><span class="preprocessor"></span></div><div class="ttc" id="uart_8h_html"><div class="ttname"><a href="uart_8h.html">uart.h</a></div><div class="ttdoc">Header file for uart.c Used to set up the RS232 connector and WIFI module uses UART1 at 115200...</div></div>
 <div class="ttc" id="movementcommands_8h_html_ac19e613d92cdd54f047e591fc0c99b07"><div class="ttname"><a href="movementcommands_8h.html#ac19e613d92cdd54f047e591fc0c99b07">moveRobotDistance</a></div><div class="ttdeci">void moveRobotDistance(oi_t *self, int input)</div><div class="ttdef"><b>Definition:</b> <a href="movementcommands_8c_source.html#l00044">movementcommands.c:44</a></div></div>
 <div class="ttc" id="movementcommands_8h_html_af24f4aea581508f13025bf49cdb40b44"><div class="ttname"><a href="movementcommands_8h.html#af24f4aea581508f13025bf49cdb40b44">parseCommand</a></div><div class="ttdeci">void parseCommand(char *cmdStr, int *type, int *degree, int *distance)</div><div class="ttdef"><b>Definition:</b> <a href="movementcommands_8c_source.html#l00248">movementcommands.c:248</a></div></div>
 <div class="ttc" id="movementcommands_8h_html_aec736dae690e0a896c49d05b27c9b970"><div class="ttname"><a href="movementcommands_8h.html#aec736dae690e0a896c49d05b27c9b970">moveRobotDistanceIgnore</a></div><div class="ttdeci">void moveRobotDistanceIgnore(oi_t *self, int input)</div><div class="ttdef"><b>Definition:</b> <a href="movementcommands_8c_source.html#l00124">movementcommands.c:124</a></div></div>
+<div class="ttc" id="open__interface_8h_html"><div class="ttname"><a href="open__interface_8h.html">open_interface.h</a></div><div class="ttdoc">Header file for open_interface.c Contains all functionality to interface with the IRobot Create V2 Co...</div></div>
 <div class="ttc" id="structoi__t_html"><div class="ttname"><a href="structoi__t.html">oi_t</a></div><div class="ttdoc">iRobot Create Sensor Data </div><div class="ttdef"><b>Definition:</b> <a href="open__interface_8h_source.html#l00031">open_interface.h:31</a></div></div>
 <div class="ttc" id="movementcommands_8h_html_a363d2d2063890c9731f0d9222060cd48"><div class="ttname"><a href="movementcommands_8h.html#a363d2d2063890c9731f0d9222060cd48">turnRobotDegree</a></div><div class="ttdeci">float turnRobotDegree(oi_t *self, float degrees)</div><div class="ttdef"><b>Definition:</b> <a href="movementcommands_8c_source.html#l00197">movementcommands.c:197</a></div></div>
 <div class="ttc" id="movementcommands_8h_html_a35f84947bb1dd6f437da3949f213c373"><div class="ttname"><a href="movementcommands_8h.html#a35f84947bb1dd6f437da3949f213c373">getPosition</a></div><div class="ttdeci">void getPosition(float *x, float *y, float *d)</div><div class="ttdef"><b>Definition:</b> <a href="movementcommands_8c_source.html#l00300">movementcommands.c:300</a></div></div>
diff --git a/Doxygen/html/navtreedata.js b/Doxygen/html/navtreedata.js
index e806cc2b62b9fe74f598065d58488b8863f8f474..27138e18060da502b03206e448999a1afc74e39b 100644
--- a/Doxygen/html/navtreedata.js
+++ b/Doxygen/html/navtreedata.js
@@ -63,7 +63,7 @@ var NAVTREE =
 var NAVTREEINDEX =
 [
 "_sound_8c.html",
-"sweep__sensor_8c.html#a81c686546c2c34dce41931315aa910df"
+"open__interface_8c.html#abf2e9049aff2b4de42371af9f44085c8"
 ];
 
 var SYNCONMSG = 'click to disable panel synchronisation';
diff --git a/Doxygen/html/navtreeindex0.js b/Doxygen/html/navtreeindex0.js
index 8a6856c0efce28aafaf575d75792046319405ac8..8f541d1e4a04c28a4337f5d6d8d9c0ac1a93e387 100644
--- a/Doxygen/html/navtreeindex0.js
+++ b/Doxygen/html/navtreeindex0.js
@@ -107,8 +107,61 @@ var NAVTREEINDEX0 =
 "ir_8h.html#a9350c2275f27f9622b8253d3f2126cb3":[3,0,0,0,0,0,0,1,2,3,4],
 "ir_8h.html#ae93f8650ba123c393dee0fb921eb4dc6":[3,0,0,0,0,0,0,1,2,3,0],
 "ir_8h_source.html":[3,0,0,0,0,0,0,1,2,3],
+"lcd_8c.html":[3,0,0,0,0,0,0,1,3,0],
+"lcd_8c.html#a153b3bd178fbca97e5313ff29a640aad":[3,0,0,0,0,0,0,1,3,0,11],
+"lcd_8c.html#a19693eac3018d3e7800fde141921b812":[3,0,0,0,0,0,0,1,3,0,27],
+"lcd_8c.html#a1b59543ebb020ae74d6bcdf06e2b6d3b":[3,0,0,0,0,0,0,1,3,0,35],
+"lcd_8c.html#a22493bdaca08073e3014decb34db38a6":[3,0,0,0,0,0,0,1,3,0,31],
+"lcd_8c.html#a311d37e515d8595f0bc9cd66ea9826c3":[3,0,0,0,0,0,0,1,3,0,16],
+"lcd_8c.html#a34ea6729c3f96d0fc4daadfdf8b2d9d7":[3,0,0,0,0,0,0,1,3,0,10],
+"lcd_8c.html#a3aabf730aa4e0393bb5c959583c00a8e":[3,0,0,0,0,0,0,1,3,0,32],
+"lcd_8c.html#a3c12e31b86febabfc7e62b51e0b9dc30":[3,0,0,0,0,0,0,1,3,0,34],
+"lcd_8c.html#a45ed9a99012e698aee49fa9460735928":[3,0,0,0,0,0,0,1,3,0,22],
+"lcd_8c.html#a4ef1551f87724c3ac1e449b22bf7d138":[3,0,0,0,0,0,0,1,3,0,20],
+"lcd_8c.html#a51df3b1bb8cd82859b25c897dfdf2fbb":[3,0,0,0,0,0,0,1,3,0,13],
+"lcd_8c.html#a53a8b2a971de4b88047192655a48b651":[3,0,0,0,0,0,0,1,3,0,23],
+"lcd_8c.html#a58b0868e2e6ef863c909620296cb0b90":[3,0,0,0,0,0,0,1,3,0,15],
+"lcd_8c.html#a601923eba46784638244c1ebf2622a2a":[3,0,0,0,0,0,0,1,3,0,1],
+"lcd_8c.html#a633642a9a86d32062329c1de46d68faf":[3,0,0,0,0,0,0,1,3,0,25],
+"lcd_8c.html#a673b148932ff504cb6b8770a65263037":[3,0,0,0,0,0,0,1,3,0,8],
+"lcd_8c.html#a6772c96a092ba214fd9f7ccae9720b38":[3,0,0,0,0,0,0,1,3,0,9],
+"lcd_8c.html#a6842775ba83d166f02b8fef8bb63b1e6":[3,0,0,0,0,0,0,1,3,0,33],
+"lcd_8c.html#a6c93cb72e1c48bc08179d4124c4cb2fe":[3,0,0,0,0,0,0,1,3,0,21],
+"lcd_8c.html#a72595f0ec85ae5b90e3bdd46f0c17eb2":[3,0,0,0,0,0,0,1,3,0,14],
+"lcd_8c.html#a76885eaba7dbd9863c2ea8bf7113c57f":[3,0,0,0,0,0,0,1,3,0,38],
+"lcd_8c.html#a785788c99ba018918ffb2db717773fa4":[3,0,0,0,0,0,0,1,3,0,39],
+"lcd_8c.html#a7985d37f6167fb3acde581f3b6cd2005":[3,0,0,0,0,0,0,1,3,0,24],
+"lcd_8c.html#a79ed1fe715d9c516a784b53419a16990":[3,0,0,0,0,0,0,1,3,0,18],
+"lcd_8c.html#a8e44574a8a8becc885b05f3bc367ef6a":[3,0,0,0,0,0,0,1,3,0,3],
+"lcd_8c.html#a9c9560bccccb00174801c728f1ed1399":[3,0,0,0,0,0,0,1,3,0,2],
+"lcd_8c.html#a9f297b248deaba17c2476cf6a639f807":[3,0,0,0,0,0,0,1,3,0,17],
+"lcd_8c.html#aa212e4f928275b196e6db53fad2c1a5f":[3,0,0,0,0,0,0,1,3,0,37],
+"lcd_8c.html#aa6b8f3261ae9e2e1043380c192f7b5f0":[3,0,0,0,0,0,0,1,3,0,7],
+"lcd_8c.html#aa731e0b6cf75f4e637ee88959315f5e4":[3,0,0,0,0,0,0,1,3,0,4],
+"lcd_8c.html#aa9d8a09151949151e9b1d9a3ddff9e4f":[3,0,0,0,0,0,0,1,3,0,26],
+"lcd_8c.html#aaabda7c2722dfdad3fb406e186be4d2d":[3,0,0,0,0,0,0,1,3,0,19],
+"lcd_8c.html#ab36f7bcb538b332ae44f0b2b2375b2de":[3,0,0,0,0,0,0,1,3,0,28],
+"lcd_8c.html#ac68eefc9e6fce7854f6319aba267ff58":[3,0,0,0,0,0,0,1,3,0,36],
+"lcd_8c.html#acc2d074401e2b6322ee8f03476c24677":[3,0,0,0,0,0,0,1,3,0,6],
+"lcd_8c.html#ad235a86241458b1e7b8771688bfdaf9a":[3,0,0,0,0,0,0,1,3,0,30],
+"lcd_8c.html#ad4d43f8748b542bce39e18790f845ecc":[3,0,0,0,0,0,0,1,3,0,0],
+"lcd_8c.html#ae692bc3df48028ceb1ddc2534a993bb8":[3,0,0,0,0,0,0,1,3,0,5],
+"lcd_8c.html#aea4c4faf14e470e4305b4d0d52970ce6":[3,0,0,0,0,0,0,1,3,0,12],
+"lcd_8c.html#af1976219619b43405b2ebb8a53feb4a0":[3,0,0,0,0,0,0,1,3,0,29],
 "lcd_8c_source.html":[3,0,0,0,0,0,0,1,3,0],
+"lcd_8h.html":[3,0,0,0,0,0,0,1,3,1],
+"lcd_8h.html#a1b59543ebb020ae74d6bcdf06e2b6d3b":[3,0,0,0,0,0,0,1,3,1,5],
+"lcd_8h.html#a22493bdaca08073e3014decb34db38a6":[3,0,0,0,0,0,0,1,3,1,1],
+"lcd_8h.html#a3aabf730aa4e0393bb5c959583c00a8e":[3,0,0,0,0,0,0,1,3,1,2],
+"lcd_8h.html#a3c12e31b86febabfc7e62b51e0b9dc30":[3,0,0,0,0,0,0,1,3,1,4],
+"lcd_8h.html#a6842775ba83d166f02b8fef8bb63b1e6":[3,0,0,0,0,0,0,1,3,1,3],
+"lcd_8h.html#a785788c99ba018918ffb2db717773fa4":[3,0,0,0,0,0,0,1,3,1,7],
+"lcd_8h.html#ac68eefc9e6fce7854f6319aba267ff58":[3,0,0,0,0,0,0,1,3,1,6],
+"lcd_8h.html#ad235a86241458b1e7b8771688bfdaf9a":[3,0,0,0,0,0,0,1,3,1,0],
 "lcd_8h_source.html":[3,0,0,0,0,0,0,1,3,1],
+"main_8c.html":[3,0,0,0,0,0,0,1,4],
+"main_8c.html#a840291bc02cba5474a4cb46a9b9566fe":[3,0,0,0,0,0,0,1,4,0],
+"main_8c.html#a91a70b77df95bd8b0830b49a094c2acb":[3,0,0,0,0,0,0,1,4,1],
 "main_8c_source.html":[3,0,0,0,0,0,0,1,4],
 "main_8cpp.html":[3,0,0,0,0,0,0,0,0],
 "main_8cpp.html#a0ddf1224851353fc92bfbff6f499fa97":[3,0,0,0,0,0,0,0,0,1],
@@ -141,113 +194,60 @@ var NAVTREEINDEX0 =
 "movementcommands_8h.html#aec736dae690e0a896c49d05b27c9b970":[3,0,0,0,0,0,0,1,1,1,3],
 "movementcommands_8h.html#af24f4aea581508f13025bf49cdb40b44":[3,0,0,0,0,0,0,1,1,1,4],
 "movementcommands_8h_source.html":[3,0,0,0,0,0,0,1,1,1],
-"open__interface_8c_source.html":[3,0,0,0,0,0,0,1,3,2],
-"open__interface_8h_source.html":[3,0,0,0,0,0,0,1,3,3],
-"pages.html":[],
-"render_8cpp.html":[3,0,0,0,0,0,0,0,1],
-"render_8cpp.html#a0e9d4003787634607af9e97e14b9668b":[3,0,0,0,0,0,0,0,1,1],
-"render_8cpp.html#a598a3330b3c21701223ee0ca14316eca":[3,0,0,0,0,0,0,0,1,2],
-"render_8cpp.html#a67c033ebb1c835e04b70b255d30d792d":[3,0,0,0,0,0,0,0,1,3],
-"render_8cpp.html#a9059fa76eb5e8e86f870405d63e72c4c":[3,0,0,0,0,0,0,0,1,0],
-"render_8cpp_source.html":[3,0,0,0,0,0,0,0,1],
-"render_8h.html":[3,0,0,0,0,0,0,0,2],
-"render_8h.html#abcde84ea0ef5f934384e4620f092c85a":[3,0,0,0,0,0,0,0,2,1],
-"render_8h_source.html":[3,0,0,0,0,0,0,0,2],
-"sonic_8c.html":[3,0,0,0,0,0,0,1,2,4],
-"sonic_8c.html#a0176373c7a145890460b8b194e3ca0ce":[3,0,0,0,0,0,0,1,2,4,7],
-"sonic_8c.html#a026052969f1c177a4c0c035b1ea5b9e7":[3,0,0,0,0,0,0,1,2,4,1],
-"sonic_8c.html#a0cd05251349a248cfafffcea2499cd15":[3,0,0,0,0,0,0,1,2,4,6],
-"sonic_8c.html#a38d9037aaec50c0d1cf0110dbc535493":[3,0,0,0,0,0,0,1,2,4,0],
-"sonic_8c.html#a588b501da316bcf0dec4756000d5ebce":[3,0,0,0,0,0,0,1,2,4,3],
-"sonic_8c.html#a5c25582d16e2ebac840768e056b48d39":[3,0,0,0,0,0,0,1,2,4,9],
-"sonic_8c.html#a6ddb01fc5fc0c1b2931dbd1705c5b6b1":[3,0,0,0,0,0,0,1,2,4,5],
-"sonic_8c.html#ab57b797a1fd5d1fbfcdbc150282bff91":[3,0,0,0,0,0,0,1,2,4,4],
-"sonic_8c.html#abeb94c8bc008aa5a114ad4c89ea1a1c4":[3,0,0,0,0,0,0,1,2,4,8],
-"sonic_8c.html#adbe32feee06ccd7a0a9c14709b9a1ce4":[3,0,0,0,0,0,0,1,2,4,2],
-"sonic_8c.html#af4b4715f3c15d0e48d08060ec180625c":[3,0,0,0,0,0,0,1,2,4,10],
-"sonic_8c_source.html":[3,0,0,0,0,0,0,1,2,4],
-"sonic_8h.html":[3,0,0,0,0,0,0,1,2,5],
-"sonic_8h.html#a0176373c7a145890460b8b194e3ca0ce":[3,0,0,0,0,0,0,1,2,5,6],
-"sonic_8h.html#a026052969f1c177a4c0c035b1ea5b9e7":[3,0,0,0,0,0,0,1,2,5,0],
-"sonic_8h.html#a0cd05251349a248cfafffcea2499cd15":[3,0,0,0,0,0,0,1,2,5,5],
-"sonic_8h.html#a588b501da316bcf0dec4756000d5ebce":[3,0,0,0,0,0,0,1,2,5,2],
-"sonic_8h.html#a6ddb01fc5fc0c1b2931dbd1705c5b6b1":[3,0,0,0,0,0,0,1,2,5,4],
-"sonic_8h.html#ab57b797a1fd5d1fbfcdbc150282bff91":[3,0,0,0,0,0,0,1,2,5,3],
-"sonic_8h.html#adbe32feee06ccd7a0a9c14709b9a1ce4":[3,0,0,0,0,0,0,1,2,5,1],
-"sonic_8h_source.html":[3,0,0,0,0,0,0,1,2,5],
-"structoi__t.html":[2,0,0],
-"structoi__t.html#a029cea1b10d916256c90347ba6d723cf":[2,0,0,38],
-"structoi__t.html#a0525f3028acf5bbf7a3ee83c5e502737":[2,0,0,20],
-"structoi__t.html#a1321960b869a82397f8d71fbe1ccc153":[2,0,0,25],
-"structoi__t.html#a1da6e611ffe6b8ebe40894ef158b0246":[2,0,0,64],
-"structoi__t.html#a1f876c6079c6e5f6f57af3d321ee696b":[2,0,0,46],
-"structoi__t.html#a22ce470ace552a8bf5fb7dc586230fac":[2,0,0,33],
-"structoi__t.html#a23f6662c79e9b13336ed5d97adf2f97b":[2,0,0,29],
-"structoi__t.html#a2ad926d641311deffa8ff4d1a0f559d9":[2,0,0,50],
-"structoi__t.html#a2db6c9307ca3110690cdb512313d7891":[2,0,0,5],
-"structoi__t.html#a302a7fc127908e4ad96b4e09e2de3276":[2,0,0,58],
-"structoi__t.html#a310417ceded1fa52242eed13b65ac87d":[2,0,0,26],
-"structoi__t.html#a36c50f0a6fc5673715ee3bb2dd25495d":[2,0,0,36],
-"structoi__t.html#a378a14eef64d71d89a55dea43114bc24":[2,0,0,65],
-"structoi__t.html#a3a27a7c2e21306c281b081b4f16b2a2d":[2,0,0,49],
-"structoi__t.html#a3e4129f9af351001602172ee79071a6c":[2,0,0,63],
-"structoi__t.html#a4025e6af4bd31c26feffac4237c87c45":[2,0,0,14],
-"structoi__t.html#a41f65336fa0074d0f38f0be533537d8e":[2,0,0,53],
-"structoi__t.html#a42138eef3702b90590423ee2d728faa4":[2,0,0,9],
-"structoi__t.html#a4b2d61b83183c40bfd1d569bef4996b7":[2,0,0,30],
-"structoi__t.html#a4cda2dc8b4b56dcea6c994362d211f85":[2,0,0,15],
-"structoi__t.html#a4f09e765308cdb5da18e4941e2e43ca3":[2,0,0,19],
-"structoi__t.html#a5280f5d3fe62e2e77951e40c7a92db71":[2,0,0,10],
-"structoi__t.html#a5427fc8729a253b25301620a5422c010":[2,0,0,37],
-"structoi__t.html#a5688dae6a890e1fdc1c18056ccdde0df":[2,0,0,21],
-"structoi__t.html#a59d673457b0f4a86be6d9a2e251994d8":[2,0,0,2],
-"structoi__t.html#a6101a4054af0886a74e816282a545e46":[2,0,0,13],
-"structoi__t.html#a61c63dc44dfa758772fda76c06552f8c":[2,0,0,16],
-"structoi__t.html#a61d1ef749a5512c40fecd02ee4271dc6":[2,0,0,44],
-"structoi__t.html#a6c31f8965f8949918c5eaf0d1bc17be0":[2,0,0,1],
-"structoi__t.html#a6d0f641675993fd50593b25ea76d7282":[2,0,0,35],
-"structoi__t.html#a6db3b2cd78447ec91c5c9f0272ccc6f3":[2,0,0,24],
-"structoi__t.html#a6f378668473a5cc4eb3ff21211f12df3":[2,0,0,8],
-"structoi__t.html#a74edc9cd5f06ae5a987ed77fc5803a5f":[2,0,0,55],
-"structoi__t.html#a76dfe5b68a00d47dc70f00c536ba4153":[2,0,0,47],
-"structoi__t.html#a77fecbd59c3febff1d5b3447a583585e":[2,0,0,56],
-"structoi__t.html#a7af2afbb4e2bef0f4c827ff42ae8f84b":[2,0,0,52],
-"structoi__t.html#a7f441cdd462ae2c8ea161e4f70ecc30e":[2,0,0,3],
-"structoi__t.html#a824c4a5e7b30099216a347d69a005609":[2,0,0,6],
-"structoi__t.html#a8258eb5aef9753670993aa6c9143b59d":[2,0,0,34],
-"structoi__t.html#a83970dccdbff34f4460e7bb9b7ca724f":[2,0,0,40],
-"structoi__t.html#a8415545db085823163e91bfb4bd5cb03":[2,0,0,12],
-"structoi__t.html#a88054d3e0cdc55c5b9a7298bec41a13d":[2,0,0,11],
-"structoi__t.html#a89500d54abcfc9f1959dbab71d80fea3":[2,0,0,42],
-"structoi__t.html#a9966cc50857bb8736c074353a07ad710":[2,0,0,57],
-"structoi__t.html#aa271c7f6d456ae134dedb897e92cfaa1":[2,0,0,59],
-"structoi__t.html#ab8c655089897ecc55b235309bc959078":[2,0,0,32],
-"structoi__t.html#ab8ef1bf8a70cc07c6d55823c390a7e76":[2,0,0,0],
-"structoi__t.html#ab93e5a43bd4a946cc9749d28995a0822":[2,0,0,61],
-"structoi__t.html#ab9925fb04fac6873cb9b67f8471aa50d":[2,0,0,7],
-"structoi__t.html#aba3741485fbda69cadc30882c38d6fd8":[2,0,0,4],
-"structoi__t.html#ac5518a7ded7e68024213a45fe4218b0a":[2,0,0,54],
-"structoi__t.html#ac9bebdc5e5dbf4bb39d5b515b9afa849":[2,0,0,18],
-"structoi__t.html#ace6a9050eb276bbfae509c8ce35d4966":[2,0,0,39],
-"structoi__t.html#ad0f02ef6f2e6b5426591f428829be9fa":[2,0,0,22],
-"structoi__t.html#ad2c50dcc11b35661eb477cba53978b7f":[2,0,0,60],
-"structoi__t.html#ad38131f92527ab4d4f780011f74c9d34":[2,0,0,27],
-"structoi__t.html#ad3b8a9c6d98b1b2538d8f61ce1d53bf0":[2,0,0,45],
-"structoi__t.html#ad48acc807b0650da03e2fc64b0b81e45":[2,0,0,48],
-"structoi__t.html#ad76a3ef8c00fe4fb26d42e21ed4a1b97":[2,0,0,28],
-"structoi__t.html#ad90cfd5f6246bcb725d160b7d43556f8":[2,0,0,41],
-"structoi__t.html#adaf98f20edaa2f7451dbf301dc0379a7":[2,0,0,17],
-"structoi__t.html#ae3550e50c7e59704e629548b53cf7855":[2,0,0,31],
-"structoi__t.html#aee879c625c629111c026f2bb961fdf5a":[2,0,0,43],
-"structoi__t.html#af065f404af47aa84dc8075b2d3719bc8":[2,0,0,51],
-"structoi__t.html#af0ef352d1e51ded672307724ca2f1ae7":[2,0,0,66],
-"structoi__t.html#af5772a518c39152bc47b5d8f9b66e126":[2,0,0,23],
-"structoi__t.html#afa9ba50ad24dc1ced6056323112ee3f3":[2,0,0,62],
-"sweep__sensor_8c.html":[3,0,0,0,0,0,0,1,2,6],
-"sweep__sensor_8c.html#a059b6d41eb8934ac26e0928818843c6e":[3,0,0,0,0,0,0,1,2,6,11],
-"sweep__sensor_8c.html#a111f017ba6449291db5ba445d602659c":[3,0,0,0,0,0,0,1,2,6,6],
-"sweep__sensor_8c.html#a2d01ba8e6facddebf5e5f716b45b8566":[3,0,0,0,0,0,0,1,2,6,0],
-"sweep__sensor_8c.html#a3570da170a331a34c81a23922b3197fc":[3,0,0,0,0,0,0,1,2,6,9],
-"sweep__sensor_8c.html#a5ba88e74de0c170f9f8c067ac55034e1":[3,0,0,0,0,0,0,1,2,6,1],
-"sweep__sensor_8c.html#a6579d7b211ae42d014bae9f1e9244b86":[3,0,0,0,0,0,0,1,2,6,2]
+"open__interface_8c.html":[3,0,0,0,0,0,0,1,3,2],
+"open__interface_8c.html#a00eee15766387eb1ba21a62afea605d0":[3,0,0,0,0,0,0,1,3,2,20],
+"open__interface_8c.html#a02aad0ed1a15a7938e39823becf866e6":[3,0,0,0,0,0,0,1,3,2,50],
+"open__interface_8c.html#a0308e9d4d0e347192c79d26a9a55730f":[3,0,0,0,0,0,0,1,3,2,45],
+"open__interface_8c.html#a0a52eb8bdd74e2538f832d4d23e66add":[3,0,0,0,0,0,0,1,3,2,43],
+"open__interface_8c.html#a0b7617e96cc05d5d1bc29011f3ed9498":[3,0,0,0,0,0,0,1,3,2,47],
+"open__interface_8c.html#a0b77489f1c0fb2f8cb50d73ebf748fe1":[3,0,0,0,0,0,0,1,3,2,32],
+"open__interface_8c.html#a0bd41079cf831c46d529c15c9d5fde30":[3,0,0,0,0,0,0,1,3,2,6],
+"open__interface_8c.html#a0d01c08dd87a55206ad4bd20a0179f17":[3,0,0,0,0,0,0,1,3,2,26],
+"open__interface_8c.html#a1bca24fa8dd6fb148a6ec99ffbe2f29d":[3,0,0,0,0,0,0,1,3,2,63],
+"open__interface_8c.html#a223df92a4b48a164a8f28f9f15001d77":[3,0,0,0,0,0,0,1,3,2,12],
+"open__interface_8c.html#a22aaec790964654073dbafd0e5d1e9d4":[3,0,0,0,0,0,0,1,3,2,4],
+"open__interface_8c.html#a22afee5afdd7d60bc1bd9d58a428e4b7":[3,0,0,0,0,0,0,1,3,2,48],
+"open__interface_8c.html#a2402ce23640b9fd98efc80b4115b83b5":[3,0,0,0,0,0,0,1,3,2,19],
+"open__interface_8c.html#a275188aacd7fd1d1a157bb3da4f4f5ea":[3,0,0,0,0,0,0,1,3,2,35],
+"open__interface_8c.html#a28534b99a6ac30a2a16acb3125eab8bd":[3,0,0,0,0,0,0,1,3,2,29],
+"open__interface_8c.html#a33bd73bbfbc570a633f3622069087066":[3,0,0,0,0,0,0,1,3,2,71],
+"open__interface_8c.html#a353765c4297939ef0390a47ca869af56":[3,0,0,0,0,0,0,1,3,2,60],
+"open__interface_8c.html#a3cbff3d875802968563cba2435dbf553":[3,0,0,0,0,0,0,1,3,2,16],
+"open__interface_8c.html#a458eaece85dd1f93a4cf656efd10d49b":[3,0,0,0,0,0,0,1,3,2,36],
+"open__interface_8c.html#a459768368a73c0a552d07edcea9c981e":[3,0,0,0,0,0,0,1,3,2,53],
+"open__interface_8c.html#a45c53f7ba0c37cbc4f705655c3145671":[3,0,0,0,0,0,0,1,3,2,15],
+"open__interface_8c.html#a49949f029cc5f84ad903aa7022f4e5e0":[3,0,0,0,0,0,0,1,3,2,62],
+"open__interface_8c.html#a49971234693d82c35d5ab3d65f2d886c":[3,0,0,0,0,0,0,1,3,2,27],
+"open__interface_8c.html#a4c267de6adfb91fbf8000f6b96d577e7":[3,0,0,0,0,0,0,1,3,2,38],
+"open__interface_8c.html#a5a4c74c16eef89b9eb24be4ca8a105a3":[3,0,0,0,0,0,0,1,3,2,1],
+"open__interface_8c.html#a5a7f0b374de9418a8be24c4c0f779459":[3,0,0,0,0,0,0,1,3,2,39],
+"open__interface_8c.html#a5e7e1773c5782c2be5f333f733aab29f":[3,0,0,0,0,0,0,1,3,2,66],
+"open__interface_8c.html#a5e9d8fe2c07b6311a28dbe202de543d9":[3,0,0,0,0,0,0,1,3,2,17],
+"open__interface_8c.html#a5eb8e6923f80c6f02cccbb79535cfa7f":[3,0,0,0,0,0,0,1,3,2,69],
+"open__interface_8c.html#a6a905744bdc52af351c33c9de745fa33":[3,0,0,0,0,0,0,1,3,2,28],
+"open__interface_8c.html#a6c701c5d6642b0f7128b03542a09ed76":[3,0,0,0,0,0,0,1,3,2,49],
+"open__interface_8c.html#a6d6815f54a892636ffccfce7d626bcb6":[3,0,0,0,0,0,0,1,3,2,2],
+"open__interface_8c.html#a73704af99ea9a811ee4c65b54c8c7971":[3,0,0,0,0,0,0,1,3,2,21],
+"open__interface_8c.html#a7ff5a93670e8dd5217aad477125f22b6":[3,0,0,0,0,0,0,1,3,2,22],
+"open__interface_8c.html#a8c54153bd272749c1fc36a3f98ffc8b1":[3,0,0,0,0,0,0,1,3,2,58],
+"open__interface_8c.html#a8d8d74e55111f4257c59b3dcdcba7cc9":[3,0,0,0,0,0,0,1,3,2,18],
+"open__interface_8c.html#a8e3d150003195087b9a23f5b3e1eecdc":[3,0,0,0,0,0,0,1,3,2,41],
+"open__interface_8c.html#a8e7a7c2bcd0018d05a3483c1d15e2244":[3,0,0,0,0,0,0,1,3,2,34],
+"open__interface_8c.html#a9108ba8c791d0e97444c03b2f40b278a":[3,0,0,0,0,0,0,1,3,2,55],
+"open__interface_8c.html#a9129559bba5ff9dc7e4df64330864674":[3,0,0,0,0,0,0,1,3,2,70],
+"open__interface_8c.html#a913ac876afa51aa8e18483efe4cd7ed1":[3,0,0,0,0,0,0,1,3,2,0],
+"open__interface_8c.html#a987fc759071d896dfdfe5d9f9e4271ed":[3,0,0,0,0,0,0,1,3,2,3],
+"open__interface_8c.html#a9ce8d6194cf8cb1d39104b641cb5254d":[3,0,0,0,0,0,0,1,3,2,61],
+"open__interface_8c.html#a9eb127996527aa4528f694af6ee1d733":[3,0,0,0,0,0,0,1,3,2,33],
+"open__interface_8c.html#aa238e081cfecd7a9bf3d274f53504362":[3,0,0,0,0,0,0,1,3,2,59],
+"open__interface_8c.html#aa2ac676f76e089e7fd0110a2d4337c6c":[3,0,0,0,0,0,0,1,3,2,11],
+"open__interface_8c.html#aa6f9cf219ee63e780934486148dc9f82":[3,0,0,0,0,0,0,1,3,2,44],
+"open__interface_8c.html#aa8ba9e54d5bf417d1d7e0c8d1d48295e":[3,0,0,0,0,0,0,1,3,2,40],
+"open__interface_8c.html#aac2a43ac65e1d3e15b65f8dd540ec134":[3,0,0,0,0,0,0,1,3,2,7],
+"open__interface_8c.html#aad249dffdf79454de76e09092a0445f5":[3,0,0,0,0,0,0,1,3,2,51],
+"open__interface_8c.html#aadfb64298500f1666cdb1764a5e63172":[3,0,0,0,0,0,0,1,3,2,5],
+"open__interface_8c.html#aae887b2e06add18cf0f1ec127faef2b2":[3,0,0,0,0,0,0,1,3,2,10],
+"open__interface_8c.html#ab23ecc4b2ef0843c49cc4b0cc9c630fa":[3,0,0,0,0,0,0,1,3,2,9],
+"open__interface_8c.html#ab9f9ce4d36375338817f04b500240080":[3,0,0,0,0,0,0,1,3,2,23],
+"open__interface_8c.html#abe8995b948a2f47938a574b59c2dda7e":[3,0,0,0,0,0,0,1,3,2,54]
 };
diff --git a/Doxygen/html/open__interface_8c_source.html b/Doxygen/html/open__interface_8c_source.html
index a7268bbab431626f8921c0d6e3ab367e398f532d..34e6e8bd9f737a9e6392d2dbdaf6d86985c3634b 100644
--- a/Doxygen/html/open__interface_8c_source.html
+++ b/Doxygen/html/open__interface_8c_source.html
@@ -92,16 +92,38 @@ $(document).ready(function(){initNavTree('open__interface_8c_source.html','');})
 <div class="title">open_interface.c</div>  </div>
 </div><!--header-->
 <div class="contents">
-<div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno">    1</span>&#160;<span class="comment">/*</span></div><div class="line"><a name="l00002"></a><span class="lineno">    2</span>&#160;<span class="comment"> * open_interface.c</span></div><div class="line"><a name="l00003"></a><span class="lineno">    3</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00004"></a><span class="lineno">    4</span>&#160;<span class="comment"> *  Created on: Mar 11, 2016</span></div><div class="line"><a name="l00005"></a><span class="lineno">    5</span>&#160;<span class="comment"> *      Author: nbergman</span></div><div class="line"><a name="l00006"></a><span class="lineno">    6</span>&#160;<span class="comment"> */</span></div><div class="line"><a name="l00007"></a><span class="lineno">    7</span>&#160;</div><div class="line"><a name="l00008"></a><span class="lineno">    8</span>&#160;<span class="comment">/*</span></div><div class="line"><a name="l00009"></a><span class="lineno">    9</span>&#160;<span class="comment"> * Open Interface</span></div><div class="line"><a name="l00010"></a><span class="lineno">   10</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00011"></a><span class="lineno">   11</span>&#160;<span class="comment"> *  Created on: Mar 3, 2016</span></div><div class="line"><a name="l00012"></a><span class="lineno">   12</span>&#160;<span class="comment"> *      Author: Noah Bergman, Eric Middleton, dmlarson</span></div><div class="line"><a name="l00013"></a><span class="lineno">   13</span>&#160;<span class="comment"> */</span></div><div class="line"><a name="l00014"></a><span class="lineno">   14</span>&#160;</div><div class="line"><a name="l00015"></a><span class="lineno">   15</span>&#160;<span class="preprocessor">#include &quot;open_interface.h&quot;</span></div><div class="line"><a name="l00016"></a><span class="lineno">   16</span>&#160;</div><div class="line"><a name="l00017"></a><span class="lineno">   17</span>&#160;<span class="preprocessor">#define OI_OPCODE_START            128</span></div><div class="line"><a name="l00018"></a><span class="lineno">   18</span>&#160;<span class="preprocessor">#define OI_OPCODE_BAUD             129</span></div><div class="line"><a name="l00019"></a><span class="lineno">   19</span>&#160;<span class="preprocessor">#define OI_OPCODE_CONTROL          130</span></div><div class="line"><a name="l00020"></a><span class="lineno">   20</span>&#160;<span class="preprocessor">#define OI_OPCODE_SAFE             131</span></div><div class="line"><a name="l00021"></a><span class="lineno">   21</span>&#160;<span class="preprocessor">#define OI_OPCODE_FULL             132</span></div><div class="line"><a name="l00022"></a><span class="lineno">   22</span>&#160;<span class="preprocessor">#define OI_OPCODE_POWER            133      //POWER DOWN ROOMBA</span></div><div class="line"><a name="l00023"></a><span class="lineno">   23</span>&#160;<span class="preprocessor">#define OI_OPCODE_SPOT             134</span></div><div class="line"><a name="l00024"></a><span class="lineno">   24</span>&#160;<span class="preprocessor">#define OI_OPCODE_CLEAN            135</span></div><div class="line"><a name="l00025"></a><span class="lineno">   25</span>&#160;<span class="preprocessor">#define OI_OPCODE_MAX              136</span></div><div class="line"><a name="l00026"></a><span class="lineno">   26</span>&#160;<span class="preprocessor">#define OI_OPCODE_DRIVE            137</span></div><div class="line"><a name="l00027"></a><span class="lineno">   27</span>&#160;<span class="preprocessor">#define OI_OPCODE_MOTORS           138</span></div><div class="line"><a name="l00028"></a><span class="lineno">   28</span>&#160;<span class="preprocessor">#define OI_OPCODE_LEDS             139</span></div><div class="line"><a name="l00029"></a><span class="lineno">   29</span>&#160;<span class="preprocessor">#define OI_OPCODE_SONG             140</span></div><div class="line"><a name="l00030"></a><span class="lineno">   30</span>&#160;<span class="preprocessor">#define OI_OPCODE_PLAY             141</span></div><div class="line"><a name="l00031"></a><span class="lineno">   31</span>&#160;<span class="preprocessor">#define OI_OPCODE_SENSORS          142</span></div><div class="line"><a name="l00032"></a><span class="lineno">   32</span>&#160;<span class="preprocessor">#define OI_OPCODE_FORCEDOCK        143</span></div><div class="line"><a name="l00033"></a><span class="lineno">   33</span>&#160;</div><div class="line"><a name="l00034"></a><span class="lineno">   34</span>&#160;<span class="preprocessor">#define OI_OPCODE_PWM_MOTORS       144</span></div><div class="line"><a name="l00035"></a><span class="lineno">   35</span>&#160;<span class="preprocessor">#define OI_OPCODE_DRIVE_WHEELS     145</span></div><div class="line"><a name="l00036"></a><span class="lineno">   36</span>&#160;<span class="preprocessor">#define OI_OPCODE_DRIVE_PWM        146</span></div><div class="line"><a name="l00037"></a><span class="lineno">   37</span>&#160;<span class="preprocessor">#define OI_OPCODE_OUTPUTS          147</span></div><div class="line"><a name="l00038"></a><span class="lineno">   38</span>&#160;<span class="preprocessor">#define OI_OPCODE_STREAM           148</span></div><div class="line"><a name="l00039"></a><span class="lineno">   39</span>&#160;<span class="preprocessor">#define OI_OPCODE_QUERY_LIST       149</span></div><div class="line"><a name="l00040"></a><span class="lineno">   40</span>&#160;<span class="preprocessor">#define OI_OPCODE_DO_STREAM        150</span></div><div class="line"><a name="l00041"></a><span class="lineno">   41</span>&#160;<span class="preprocessor">#define OI_OPCODE_SEND_IR_CHAR     151</span></div><div class="line"><a name="l00042"></a><span class="lineno">   42</span>&#160;<span class="preprocessor">#define OI_OPCODE_SCRIPT           152</span></div><div class="line"><a name="l00043"></a><span class="lineno">   43</span>&#160;<span class="preprocessor">#define OI_OPCODE_PLAY_SCRIPT      153</span></div><div class="line"><a name="l00044"></a><span class="lineno">   44</span>&#160;<span class="preprocessor">#define OI_OPCODE_SHOW_SCRIPT      154</span></div><div class="line"><a name="l00045"></a><span class="lineno">   45</span>&#160;<span class="preprocessor">#define OI_OPCODE_WAIT_TIME        155</span></div><div class="line"><a name="l00046"></a><span class="lineno">   46</span>&#160;<span class="preprocessor">#define OI_OPCODE_WAIT_DISTANCE    156</span></div><div class="line"><a name="l00047"></a><span class="lineno">   47</span>&#160;<span class="preprocessor">#define OI_OPCODE_WAIT_ANGLE       157</span></div><div class="line"><a name="l00048"></a><span class="lineno">   48</span>&#160;<span class="preprocessor">#define OI_OPCODE_WAIT_EVENT       158</span></div><div class="line"><a name="l00049"></a><span class="lineno">   49</span>&#160;</div><div class="line"><a name="l00050"></a><span class="lineno">   50</span>&#160;<span class="preprocessor">#define OI_OPCODE_RESET             7   //RESET ROOMBA - GO TO</span></div><div class="line"><a name="l00051"></a><span class="lineno">   51</span>&#160;<span class="preprocessor">#define OI_OPCODE_STOP              173</span></div><div class="line"><a name="l00052"></a><span class="lineno">   52</span>&#160;<span class="preprocessor">#define OI_OPCODE_SCHEDULE          167</span></div><div class="line"><a name="l00053"></a><span class="lineno">   53</span>&#160;<span class="preprocessor">#define OI_OPCODE_SCHED_LED         162 //MONDAY THROUGH SUNDAY LEDS</span></div><div class="line"><a name="l00054"></a><span class="lineno">   54</span>&#160;<span class="preprocessor">#define OI_OPCODE_7SEG              163</span></div><div class="line"><a name="l00055"></a><span class="lineno">   55</span>&#160;</div><div class="line"><a name="l00056"></a><span class="lineno">   56</span>&#160;<span class="comment">// Contains Packets 7-26</span></div><div class="line"><a name="l00057"></a><span class="lineno">   57</span>&#160;<span class="preprocessor">#define OI_SENSOR_PACKET_GROUP0 0</span></div><div class="line"><a name="l00058"></a><span class="lineno">   58</span>&#160;<span class="comment">// Contains Packets 7-16</span></div><div class="line"><a name="l00059"></a><span class="lineno">   59</span>&#160;<span class="preprocessor">#define OI_SENSOR_PACKET_GROUP1 1</span></div><div class="line"><a name="l00060"></a><span class="lineno">   60</span>&#160;<span class="comment">// Contains Packets 17-20</span></div><div class="line"><a name="l00061"></a><span class="lineno">   61</span>&#160;<span class="preprocessor">#define OI_SENSOR_PACKET_GROUP2 2</span></div><div class="line"><a name="l00062"></a><span class="lineno">   62</span>&#160;<span class="comment">// Contains Packets 21-26</span></div><div class="line"><a name="l00063"></a><span class="lineno">   63</span>&#160;<span class="preprocessor">#define OI_SENSOR_PACKET_GROUP3 3</span></div><div class="line"><a name="l00064"></a><span class="lineno">   64</span>&#160;<span class="comment">// Contains Packets 27-34</span></div><div class="line"><a name="l00065"></a><span class="lineno">   65</span>&#160;<span class="preprocessor">#define OI_SENSOR_PACKET_GROUP4 4</span></div><div class="line"><a name="l00066"></a><span class="lineno">   66</span>&#160;<span class="comment">// Contains Packets 35-42</span></div><div class="line"><a name="l00067"></a><span class="lineno">   67</span>&#160;<span class="preprocessor">#define OI_SENSOR_PACKET_GROUP5 5</span></div><div class="line"><a name="l00068"></a><span class="lineno">   68</span>&#160;<span class="comment">// Contains Packets 7-42</span></div><div class="line"><a name="l00069"></a><span class="lineno">   69</span>&#160;<span class="preprocessor">#define OI_SENSOR_PACKET_GROUP6 6</span></div><div class="line"><a name="l00070"></a><span class="lineno">   70</span>&#160;<span class="comment">// Contains Packets 7-58 For Use With Create 2 Only</span></div><div class="line"><a name="l00071"></a><span class="lineno">   71</span>&#160;<span class="preprocessor">#define OI_SENSOR_PACKET_GROUP100 100</span></div><div class="line"><a name="l00072"></a><span class="lineno">   72</span>&#160;<span class="comment">// Contains Packets 43-58 For Use With Create 2 Only</span></div><div class="line"><a name="l00073"></a><span class="lineno">   73</span>&#160;<span class="preprocessor">#define OI_SENSOR_PACKET_GROUP101 101</span></div><div class="line"><a name="l00074"></a><span class="lineno">   74</span>&#160;<span class="comment">// Contains Packets 46-51 For Use With Create 2 Only</span></div><div class="line"><a name="l00075"></a><span class="lineno">   75</span>&#160;<span class="preprocessor">#define OI_SENSOR_PACKET_GROUP106 106</span></div><div class="line"><a name="l00076"></a><span class="lineno">   76</span>&#160;<span class="comment">// Contains Packets 54-58 For Use With Create 2 Only</span></div><div class="line"><a name="l00077"></a><span class="lineno">   77</span>&#160;<span class="preprocessor">#define OI_SENSOR_PACKET_GROUP107 107</span></div><div class="line"><a name="l00078"></a><span class="lineno">   78</span>&#160;</div><div class="line"><a name="l00079"></a><span class="lineno">   79</span>&#160;<span class="preprocessor">#define SENSOR_PACKET_SIZE  80</span></div><div class="line"><a name="l00080"></a><span class="lineno">   80</span>&#160;</div><div class="line"><a name="l00083"></a><span class="lineno">   83</span>&#160;<span class="keywordtype">void</span> oi_init_noupdate(<span class="keywordtype">void</span>);</div><div class="line"><a name="l00084"></a><span class="lineno">   84</span>&#160;</div><div class="line"><a name="l00087"></a><span class="lineno">   87</span>&#160;<span class="keywordtype">void</span> oi_uartInit(<span class="keywordtype">void</span>);</div><div class="line"><a name="l00088"></a><span class="lineno">   88</span>&#160;</div><div class="line"><a name="l00090"></a><span class="lineno">   90</span>&#160;<span class="keywordtype">void</span> oi_uartFastMode(<span class="keywordtype">void</span>);</div><div class="line"><a name="l00091"></a><span class="lineno">   91</span>&#160;</div><div class="line"><a name="l00094"></a><span class="lineno">   94</span>&#160;<span class="keywordtype">void</span> oi_uartSendChar(<span class="keywordtype">char</span> <a class="code" href="movementcommands_8c.html#a91a70b77df95bd8b0830b49a094c2acb">data</a>);</div><div class="line"><a name="l00095"></a><span class="lineno">   95</span>&#160;</div><div class="line"><a name="l00098"></a><span class="lineno">   98</span>&#160;<span class="keywordtype">void</span> <a class="code" href="uart_8c.html#af96d1ce52b8a52eabc606489d31351e9">uart_sendStr</a>(<span class="keyword">const</span> <span class="keywordtype">char</span> *theData);</div><div class="line"><a name="l00099"></a><span class="lineno">   99</span>&#160;</div><div class="line"><a name="l00102"></a><span class="lineno">  102</span>&#160;<span class="keywordtype">char</span> oi_uartReceive(<span class="keywordtype">void</span>);</div><div class="line"><a name="l00103"></a><span class="lineno">  103</span>&#160;</div><div class="line"><a name="l00105"></a><span class="lineno">  105</span>&#160;<span class="keywordtype">void</span> oi_parsePacket(<a class="code" href="structoi__t.html">oi_t</a>* <span class="keyword">self</span>, uint8_t packet[]);</div><div class="line"><a name="l00106"></a><span class="lineno">  106</span>&#160;</div><div class="line"><a name="l00109"></a><span class="lineno">  109</span>&#160;<span class="keywordtype">void</span> oi_uartSendBuff(<span class="keyword">const</span> uint8_t theData[], uint8_t theSize);</div><div class="line"><a name="l00110"></a><span class="lineno">  110</span>&#160;</div><div class="line"><a name="l00113"></a><span class="lineno">  113</span>&#160;int16_t oi_parseInt(uint8_t* theInt);</div><div class="line"><a name="l00114"></a><span class="lineno">  114</span>&#160;</div><div class="line"><a name="l00116"></a><span class="lineno">  116</span>&#160;<a class="code" href="structoi__t.html">oi_t</a>* oi_alloc()</div><div class="line"><a name="l00117"></a><span class="lineno">  117</span>&#160;{</div><div class="line"><a name="l00118"></a><span class="lineno">  118</span>&#160;    <span class="keywordflow">return</span> calloc(1, <span class="keyword">sizeof</span>(<a class="code" href="structoi__t.html">oi_t</a>));</div><div class="line"><a name="l00119"></a><span class="lineno">  119</span>&#160;}</div><div class="line"><a name="l00120"></a><span class="lineno">  120</span>&#160;</div><div class="line"><a name="l00122"></a><span class="lineno">  122</span>&#160;<span class="keywordtype">void</span> oi_free(<a class="code" href="structoi__t.html">oi_t</a> *<span class="keyword">self</span>)</div><div class="line"><a name="l00123"></a><span class="lineno">  123</span>&#160;{</div><div class="line"><a name="l00124"></a><span class="lineno">  124</span>&#160;    free(<span class="keyword">self</span>);</div><div class="line"><a name="l00125"></a><span class="lineno">  125</span>&#160;</div><div class="line"><a name="l00126"></a><span class="lineno">  126</span>&#160;    <span class="comment">//Send the stop command to the iRobot</span></div><div class="line"><a name="l00127"></a><span class="lineno">  127</span>&#160;    oi_close();</div><div class="line"><a name="l00128"></a><span class="lineno">  128</span>&#160;}</div><div class="line"><a name="l00129"></a><span class="lineno">  129</span>&#160;</div><div class="line"><a name="l00130"></a><span class="lineno">  130</span>&#160;<span class="keywordtype">void</span> oi_init_noupdate()</div><div class="line"><a name="l00131"></a><span class="lineno">  131</span>&#160;{</div><div class="line"><a name="l00132"></a><span class="lineno">  132</span>&#160;    oi_uartInit();</div><div class="line"><a name="l00133"></a><span class="lineno">  133</span>&#160;    oi_uartSendChar(OI_OPCODE_START);</div><div class="line"><a name="l00134"></a><span class="lineno">  134</span>&#160;</div><div class="line"><a name="l00135"></a><span class="lineno">  135</span>&#160;    oi_uartSendChar(OI_OPCODE_FULL);    <span class="comment">//Use full mode, unrestricted control</span></div><div class="line"><a name="l00136"></a><span class="lineno">  136</span>&#160;    oi_setLeds(1, 1, 7, 255);</div><div class="line"><a name="l00137"></a><span class="lineno">  137</span>&#160;</div><div class="line"><a name="l00138"></a><span class="lineno">  138</span>&#160;    oi_shutoff_init(); <span class="comment">//allows for pushbutton SW2 on PF0 to kill oi</span></div><div class="line"><a name="l00139"></a><span class="lineno">  139</span>&#160;</div><div class="line"><a name="l00140"></a><span class="lineno">  140</span>&#160;}</div><div class="line"><a name="l00141"></a><span class="lineno">  141</span>&#160;</div><div class="line"><a name="l00150"></a><span class="lineno">  150</span>&#160;<span class="keywordtype">void</span> oi_init(<a class="code" href="structoi__t.html">oi_t</a> *<span class="keyword">self</span>)</div><div class="line"><a name="l00151"></a><span class="lineno">  151</span>&#160;{</div><div class="line"><a name="l00152"></a><span class="lineno">  152</span>&#160;    oi_init_noupdate();</div><div class="line"><a name="l00153"></a><span class="lineno">  153</span>&#160;</div><div class="line"><a name="l00154"></a><span class="lineno">  154</span>&#160;    oi_update(<span class="keyword">self</span>);</div><div class="line"><a name="l00155"></a><span class="lineno">  155</span>&#160;    oi_update(<span class="keyword">self</span>); <span class="comment">//Call twice to clear distance/angle</span></div><div class="line"><a name="l00156"></a><span class="lineno">  156</span>&#160;</div><div class="line"><a name="l00157"></a><span class="lineno">  157</span>&#160;}</div><div class="line"><a name="l00158"></a><span class="lineno">  158</span>&#160;</div><div class="line"><a name="l00159"></a><span class="lineno">  159</span>&#160;<span class="keywordtype">void</span> oi_close()</div><div class="line"><a name="l00160"></a><span class="lineno">  160</span>&#160;{</div><div class="line"><a name="l00161"></a><span class="lineno">  161</span>&#160;    oi_setWheels(0, 0);</div><div class="line"><a name="l00162"></a><span class="lineno">  162</span>&#160;    oi_uartSendChar(OI_OPCODE_STOP);</div><div class="line"><a name="l00163"></a><span class="lineno">  163</span>&#160;}</div><div class="line"><a name="l00164"></a><span class="lineno">  164</span>&#160;</div><div class="line"><a name="l00166"></a><span class="lineno">  166</span>&#160;<span class="keywordtype">void</span> oi_update(<a class="code" href="structoi__t.html">oi_t</a> *<span class="keyword">self</span>)</div><div class="line"><a name="l00167"></a><span class="lineno">  167</span>&#160;{</div><div class="line"><a name="l00168"></a><span class="lineno">  168</span>&#160;    uint8_t sensorBuffer[SENSOR_PACKET_SIZE];</div><div class="line"><a name="l00169"></a><span class="lineno">  169</span>&#160;</div><div class="line"><a name="l00170"></a><span class="lineno">  170</span>&#160;    <span class="comment">//Query list of sensors</span></div><div class="line"><a name="l00171"></a><span class="lineno">  171</span>&#160;    oi_uartSendChar(OI_OPCODE_SENSORS);</div><div class="line"><a name="l00172"></a><span class="lineno">  172</span>&#160;    oi_uartSendChar(OI_SENSOR_PACKET_GROUP100);</div><div class="line"><a name="l00173"></a><span class="lineno">  173</span>&#160;</div><div class="line"><a name="l00174"></a><span class="lineno">  174</span>&#160;    <span class="comment">// Read all the sensor data</span></div><div class="line"><a name="l00175"></a><span class="lineno">  175</span>&#160;    uint8_t i;</div><div class="line"><a name="l00176"></a><span class="lineno">  176</span>&#160;    <span class="keywordflow">for</span> (i = 0; i &lt; SENSOR_PACKET_SIZE; i++)</div><div class="line"><a name="l00177"></a><span class="lineno">  177</span>&#160;    {</div><div class="line"><a name="l00178"></a><span class="lineno">  178</span>&#160;        <span class="comment">// read each sensor byte</span></div><div class="line"><a name="l00179"></a><span class="lineno">  179</span>&#160;        sensorBuffer[i] = oi_uartReceive();</div><div class="line"><a name="l00180"></a><span class="lineno">  180</span>&#160;    }</div><div class="line"><a name="l00181"></a><span class="lineno">  181</span>&#160;</div><div class="line"><a name="l00182"></a><span class="lineno">  182</span>&#160;    <span class="comment">//Parse the sensor data into the struct</span></div><div class="line"><a name="l00183"></a><span class="lineno">  183</span>&#160;    oi_parsePacket(<span class="keyword">self</span>, sensorBuffer);</div><div class="line"><a name="l00184"></a><span class="lineno">  184</span>&#160;</div><div class="line"><a name="l00185"></a><span class="lineno">  185</span>&#160;    timer_waitMillis(25); <span class="comment">// reduces USART errors that occur when continuously transmitting/receiving min wait time=15ms</span></div><div class="line"><a name="l00186"></a><span class="lineno">  186</span>&#160;}</div><div class="line"><a name="l00187"></a><span class="lineno">  187</span>&#160;</div><div class="line"><a name="l00188"></a><span class="lineno">  188</span>&#160;<span class="keywordtype">void</span> oi_parsePacket(<a class="code" href="structoi__t.html">oi_t</a>* <span class="keyword">self</span>, uint8_t packet[])</div><div class="line"><a name="l00189"></a><span class="lineno">  189</span>&#160;{</div><div class="line"><a name="l00190"></a><span class="lineno">  190</span>&#160;    <span class="keyword">self</span>-&gt;wheelDropLeft = !!(packet[0] &amp; 0x08);</div><div class="line"><a name="l00191"></a><span class="lineno">  191</span>&#160;    <span class="keyword">self</span>-&gt;wheelDropRight = !!(packet[0] &amp; 0x04);</div><div class="line"><a name="l00192"></a><span class="lineno">  192</span>&#160;    <span class="keyword">self</span>-&gt;bumpLeft = !!(packet[0] &amp; 0x02);</div><div class="line"><a name="l00193"></a><span class="lineno">  193</span>&#160;    <span class="keyword">self</span>-&gt;bumpRight = packet[0] &amp; 0x01;</div><div class="line"><a name="l00194"></a><span class="lineno">  194</span>&#160;</div><div class="line"><a name="l00195"></a><span class="lineno">  195</span>&#160;    <span class="keyword">self</span>-&gt;wallSensor = packet[1];</div><div class="line"><a name="l00196"></a><span class="lineno">  196</span>&#160;</div><div class="line"><a name="l00197"></a><span class="lineno">  197</span>&#160;    <span class="keyword">self</span>-&gt;cliffLeft = packet[2];</div><div class="line"><a name="l00198"></a><span class="lineno">  198</span>&#160;    <span class="keyword">self</span>-&gt;cliffFrontLeft = packet[3];</div><div class="line"><a name="l00199"></a><span class="lineno">  199</span>&#160;    <span class="keyword">self</span>-&gt;cliffFrontRight = packet[4];</div><div class="line"><a name="l00200"></a><span class="lineno">  200</span>&#160;    <span class="keyword">self</span>-&gt;cliffRight = packet[5];</div><div class="line"><a name="l00201"></a><span class="lineno">  201</span>&#160;</div><div class="line"><a name="l00202"></a><span class="lineno">  202</span>&#160;    <span class="keyword">self</span>-&gt;virtualWall = packet[6];</div><div class="line"><a name="l00203"></a><span class="lineno">  203</span>&#160;</div><div class="line"><a name="l00204"></a><span class="lineno">  204</span>&#160;    <span class="keyword">self</span>-&gt;overcurrentLeftWheel = !!(packet[7] &amp; 0x10);</div><div class="line"><a name="l00205"></a><span class="lineno">  205</span>&#160;    <span class="keyword">self</span>-&gt;overcurrentRightWheel = !!(packet[7] &amp; 0x08);</div><div class="line"><a name="l00206"></a><span class="lineno">  206</span>&#160;    <span class="keyword">self</span>-&gt;overcurrentMainBrush = !!(packet[7] &amp; 0x04);</div><div class="line"><a name="l00207"></a><span class="lineno">  207</span>&#160;    <span class="keyword">self</span>-&gt;overcurrentSideBrush = packet[7] &amp; 0x01;</div><div class="line"><a name="l00208"></a><span class="lineno">  208</span>&#160;</div><div class="line"><a name="l00209"></a><span class="lineno">  209</span>&#160;    <span class="keyword">self</span>-&gt;dirtDetect = packet[8];</div><div class="line"><a name="l00210"></a><span class="lineno">  210</span>&#160;</div><div class="line"><a name="l00211"></a><span class="lineno">  211</span>&#160;    <span class="comment">//Byte 9 unused</span></div><div class="line"><a name="l00212"></a><span class="lineno">  212</span>&#160;</div><div class="line"><a name="l00213"></a><span class="lineno">  213</span>&#160;    <span class="keyword">self</span>-&gt;infraredCharOmni = packet[10];</div><div class="line"><a name="l00214"></a><span class="lineno">  214</span>&#160;</div><div class="line"><a name="l00215"></a><span class="lineno">  215</span>&#160;    <span class="keyword">self</span>-&gt;buttonClock = !!(packet[11] &amp; 0x80);</div><div class="line"><a name="l00216"></a><span class="lineno">  216</span>&#160;    <span class="keyword">self</span>-&gt;buttonSchedule = !!(packet[11] &amp; 0x40);</div><div class="line"><a name="l00217"></a><span class="lineno">  217</span>&#160;    <span class="keyword">self</span>-&gt;buttonDay = !!(packet[11] &amp; 0x20);</div><div class="line"><a name="l00218"></a><span class="lineno">  218</span>&#160;    <span class="keyword">self</span>-&gt;buttonHour = !!(packet[11] &amp; 0x10);</div><div class="line"><a name="l00219"></a><span class="lineno">  219</span>&#160;    <span class="keyword">self</span>-&gt;buttonMinute = !!(packet[11] &amp; 0x08);</div><div class="line"><a name="l00220"></a><span class="lineno">  220</span>&#160;    <span class="keyword">self</span>-&gt;buttonDock = !!(packet[11] &amp; 0x04);</div><div class="line"><a name="l00221"></a><span class="lineno">  221</span>&#160;    <span class="keyword">self</span>-&gt;buttonSpot = !!(packet[11] &amp; 0x02);</div><div class="line"><a name="l00222"></a><span class="lineno">  222</span>&#160;    <span class="keyword">self</span>-&gt;buttonClean = packet[11] &amp; 0x01;</div><div class="line"><a name="l00223"></a><span class="lineno">  223</span>&#160;</div><div class="line"><a name="l00224"></a><span class="lineno">  224</span>&#160;    <span class="keyword">self</span>-&gt;distance = oi_parseInt(packet + 12);</div><div class="line"><a name="l00225"></a><span class="lineno">  225</span>&#160;</div><div class="line"><a name="l00226"></a><span class="lineno">  226</span>&#160;    <span class="keyword">self</span>-&gt;chargingState = packet[16];</div><div class="line"><a name="l00227"></a><span class="lineno">  227</span>&#160;    <span class="keyword">self</span>-&gt;batteryVoltage = oi_parseInt(packet + 17);</div><div class="line"><a name="l00228"></a><span class="lineno">  228</span>&#160;    <span class="keyword">self</span>-&gt;batteryCurrent = oi_parseInt(packet + 19);</div><div class="line"><a name="l00229"></a><span class="lineno">  229</span>&#160;    <span class="keyword">self</span>-&gt;batteryTemperature = packet[21];</div><div class="line"><a name="l00230"></a><span class="lineno">  230</span>&#160;    <span class="keyword">self</span>-&gt;batteryCharge = oi_parseInt(packet + 22);</div><div class="line"><a name="l00231"></a><span class="lineno">  231</span>&#160;    <span class="keyword">self</span>-&gt;batteryCapacity = oi_parseInt(packet + 24);</div><div class="line"><a name="l00232"></a><span class="lineno">  232</span>&#160;</div><div class="line"><a name="l00233"></a><span class="lineno">  233</span>&#160;    <span class="keyword">self</span>-&gt;wallSignal = oi_parseInt(packet + 26);</div><div class="line"><a name="l00234"></a><span class="lineno">  234</span>&#160;</div><div class="line"><a name="l00235"></a><span class="lineno">  235</span>&#160;    <span class="keyword">self</span>-&gt;cliffLeftSignal = oi_parseInt(packet + 28);</div><div class="line"><a name="l00236"></a><span class="lineno">  236</span>&#160;    <span class="keyword">self</span>-&gt;cliffFrontLeftSignal = oi_parseInt(packet + 30);</div><div class="line"><a name="l00237"></a><span class="lineno">  237</span>&#160;    <span class="keyword">self</span>-&gt;cliffFrontRightSignal = oi_parseInt(packet + 32);</div><div class="line"><a name="l00238"></a><span class="lineno">  238</span>&#160;    <span class="keyword">self</span>-&gt;cliffRightSignal = oi_parseInt(packet + 34);</div><div class="line"><a name="l00239"></a><span class="lineno">  239</span>&#160;</div><div class="line"><a name="l00240"></a><span class="lineno">  240</span>&#160;    <span class="comment">//Bytes 36-38 unused</span></div><div class="line"><a name="l00241"></a><span class="lineno">  241</span>&#160;</div><div class="line"><a name="l00242"></a><span class="lineno">  242</span>&#160;    <span class="keyword">self</span>-&gt;chargingSourcesAvailable = packet[39];</div><div class="line"><a name="l00243"></a><span class="lineno">  243</span>&#160;    <span class="keyword">self</span>-&gt;oiMode = packet[40];</div><div class="line"><a name="l00244"></a><span class="lineno">  244</span>&#160;</div><div class="line"><a name="l00245"></a><span class="lineno">  245</span>&#160;    <span class="keyword">self</span>-&gt;songNumber = packet[41];</div><div class="line"><a name="l00246"></a><span class="lineno">  246</span>&#160;    <span class="keyword">self</span>-&gt;songPlaying = packet[42];</div><div class="line"><a name="l00247"></a><span class="lineno">  247</span>&#160;</div><div class="line"><a name="l00248"></a><span class="lineno">  248</span>&#160;    <span class="keyword">self</span>-&gt;numberOfStreamPackets = packet[43];</div><div class="line"><a name="l00249"></a><span class="lineno">  249</span>&#160;</div><div class="line"><a name="l00250"></a><span class="lineno">  250</span>&#160;    <span class="keyword">self</span>-&gt;requestedVelocity = oi_parseInt(packet + 44);</div><div class="line"><a name="l00251"></a><span class="lineno">  251</span>&#160;    <span class="keyword">self</span>-&gt;requestedRadius = oi_parseInt(packet + 46);</div><div class="line"><a name="l00252"></a><span class="lineno">  252</span>&#160;    <span class="keyword">self</span>-&gt;requestedRightVelocity = oi_parseInt(packet + 48);</div><div class="line"><a name="l00253"></a><span class="lineno">  253</span>&#160;    <span class="keyword">self</span>-&gt;requestedLeftVelocity = oi_parseInt(packet + 50);</div><div class="line"><a name="l00254"></a><span class="lineno">  254</span>&#160;    <span class="keyword">self</span>-&gt;leftEncoderCount = oi_parseInt(packet + 52);</div><div class="line"><a name="l00255"></a><span class="lineno">  255</span>&#160;    <span class="keyword">self</span>-&gt;rightEncoderCount = oi_parseInt(packet + 54);</div><div class="line"><a name="l00256"></a><span class="lineno">  256</span>&#160;</div><div class="line"><a name="l00257"></a><span class="lineno">  257</span>&#160;    <span class="keyword">self</span>-&gt;lightBumperRight = !!(packet[56] &amp; 0x20);</div><div class="line"><a name="l00258"></a><span class="lineno">  258</span>&#160;    <span class="keyword">self</span>-&gt;lightBumperFrontRight = !!(packet[56] &amp; 0x10);</div><div class="line"><a name="l00259"></a><span class="lineno">  259</span>&#160;    <span class="keyword">self</span>-&gt;lightBumperCenterRight = !!(packet[56] &amp; 0x08);</div><div class="line"><a name="l00260"></a><span class="lineno">  260</span>&#160;    <span class="keyword">self</span>-&gt;lightBumperCenterLeft = !!(packet[56] &amp; 0x04);</div><div class="line"><a name="l00261"></a><span class="lineno">  261</span>&#160;    <span class="keyword">self</span>-&gt;lightBumperFrontLeft = !!(packet[56] &amp; 0x02);</div><div class="line"><a name="l00262"></a><span class="lineno">  262</span>&#160;    <span class="keyword">self</span>-&gt;lightBumperLeft = packet[56] &amp; 0x01;</div><div class="line"><a name="l00263"></a><span class="lineno">  263</span>&#160;</div><div class="line"><a name="l00264"></a><span class="lineno">  264</span>&#160;    <span class="keyword">self</span>-&gt;lightBumpLeftSignal = oi_parseInt(packet + 57);</div><div class="line"><a name="l00265"></a><span class="lineno">  265</span>&#160;    <span class="keyword">self</span>-&gt;lightBumpFrontLeftSignal = oi_parseInt(packet + 59);</div><div class="line"><a name="l00266"></a><span class="lineno">  266</span>&#160;    <span class="keyword">self</span>-&gt;lightBumpCenterLeftSignal = oi_parseInt(packet + 61);</div><div class="line"><a name="l00267"></a><span class="lineno">  267</span>&#160;    <span class="keyword">self</span>-&gt;lightBumpCenterRightSignal = oi_parseInt(packet + 63);</div><div class="line"><a name="l00268"></a><span class="lineno">  268</span>&#160;    <span class="keyword">self</span>-&gt;lightBumpFrontRightSignal = oi_parseInt(packet + 65);</div><div class="line"><a name="l00269"></a><span class="lineno">  269</span>&#160;    <span class="keyword">self</span>-&gt;lightBumpRightSignal = oi_parseInt(packet + 67);</div><div class="line"><a name="l00270"></a><span class="lineno">  270</span>&#160;</div><div class="line"><a name="l00271"></a><span class="lineno">  271</span>&#160;    <span class="keyword">self</span>-&gt;infraredCharLeft = packet[69];</div><div class="line"><a name="l00272"></a><span class="lineno">  272</span>&#160;    <span class="keyword">self</span>-&gt;infraredCharRight = packet[70];</div><div class="line"><a name="l00273"></a><span class="lineno">  273</span>&#160;</div><div class="line"><a name="l00274"></a><span class="lineno">  274</span>&#160;    <span class="keyword">self</span>-&gt;leftMotorCurrent = oi_parseInt(packet + 71);</div><div class="line"><a name="l00275"></a><span class="lineno">  275</span>&#160;    <span class="keyword">self</span>-&gt;rightMotorCurrent = oi_parseInt(packet + 73);</div><div class="line"><a name="l00276"></a><span class="lineno">  276</span>&#160;    <span class="keyword">self</span>-&gt;mainBrushMotorCurrent = oi_parseInt(packet + 75);</div><div class="line"><a name="l00277"></a><span class="lineno">  277</span>&#160;    <span class="keyword">self</span>-&gt;sideBrushMotorCurrent = oi_parseInt(packet + 77);</div><div class="line"><a name="l00278"></a><span class="lineno">  278</span>&#160;</div><div class="line"><a name="l00279"></a><span class="lineno">  279</span>&#160;    <span class="keyword">self</span>-&gt;stasis = packet[79];</div><div class="line"><a name="l00280"></a><span class="lineno">  280</span>&#160;</div><div class="line"><a name="l00281"></a><span class="lineno">  281</span>&#160;    <span class="keyword">self</span>-&gt;angle = getDegrees(<span class="keyword">self</span>);</div><div class="line"><a name="l00282"></a><span class="lineno">  282</span>&#160;}</div><div class="line"><a name="l00283"></a><span class="lineno">  283</span>&#160;</div><div class="line"><a name="l00284"></a><span class="lineno">  284</span>&#160;<span class="keyword">inline</span> int16_t oi_parseInt(uint8_t* theInt)</div><div class="line"><a name="l00285"></a><span class="lineno">  285</span>&#160;{</div><div class="line"><a name="l00286"></a><span class="lineno">  286</span>&#160;    <span class="keywordflow">return</span> (theInt[0] &lt;&lt; 8) | theInt[1];</div><div class="line"><a name="l00287"></a><span class="lineno">  287</span>&#160;}</div><div class="line"><a name="l00288"></a><span class="lineno">  288</span>&#160;</div><div class="line"><a name="l00294"></a><span class="lineno">  294</span>&#160;<span class="keywordtype">void</span> oi_setLeds(uint8_t play_led, uint8_t advance_led, uint8_t power_color,</div><div class="line"><a name="l00295"></a><span class="lineno">  295</span>&#160;                uint8_t power_intensity)</div><div class="line"><a name="l00296"></a><span class="lineno">  296</span>&#160;{</div><div class="line"><a name="l00297"></a><span class="lineno">  297</span>&#160;    <span class="comment">// LED Opcode</span></div><div class="line"><a name="l00298"></a><span class="lineno">  298</span>&#160;    oi_uartSendChar(OI_OPCODE_LEDS);</div><div class="line"><a name="l00299"></a><span class="lineno">  299</span>&#160;</div><div class="line"><a name="l00300"></a><span class="lineno">  300</span>&#160;    <span class="comment">// Set the Play and Advance LEDs</span></div><div class="line"><a name="l00301"></a><span class="lineno">  301</span>&#160;    oi_uartSendChar(advance_led &lt;&lt; 3 &amp;&amp; play_led &lt;&lt; 2);</div><div class="line"><a name="l00302"></a><span class="lineno">  302</span>&#160;</div><div class="line"><a name="l00303"></a><span class="lineno">  303</span>&#160;    <span class="comment">// Set the power led color</span></div><div class="line"><a name="l00304"></a><span class="lineno">  304</span>&#160;    oi_uartSendChar(power_color);</div><div class="line"><a name="l00305"></a><span class="lineno">  305</span>&#160;</div><div class="line"><a name="l00306"></a><span class="lineno">  306</span>&#160;    <span class="comment">// Set the power led intensity</span></div><div class="line"><a name="l00307"></a><span class="lineno">  307</span>&#160;    oi_uartSendChar(power_intensity);</div><div class="line"><a name="l00308"></a><span class="lineno">  308</span>&#160;}</div><div class="line"><a name="l00309"></a><span class="lineno">  309</span>&#160;</div><div class="line"><a name="l00313"></a><span class="lineno">  313</span>&#160;<span class="keywordtype">void</span> oi_setWheels(int16_t right_wheel, int16_t left_wheel)</div><div class="line"><a name="l00314"></a><span class="lineno">  314</span>&#160;{</div><div class="line"><a name="l00315"></a><span class="lineno">  315</span>&#160;    oi_uartSendChar(OI_OPCODE_DRIVE_WHEELS);</div><div class="line"><a name="l00316"></a><span class="lineno">  316</span>&#160;    oi_uartSendChar(right_wheel &gt;&gt; 8);</div><div class="line"><a name="l00317"></a><span class="lineno">  317</span>&#160;    oi_uartSendChar(right_wheel &amp; 0xff);</div><div class="line"><a name="l00318"></a><span class="lineno">  318</span>&#160;    oi_uartSendChar(left_wheel &gt;&gt; 8);</div><div class="line"><a name="l00319"></a><span class="lineno">  319</span>&#160;    oi_uartSendChar(left_wheel &amp; 0xff);</div><div class="line"><a name="l00320"></a><span class="lineno">  320</span>&#160;}</div><div class="line"><a name="l00321"></a><span class="lineno">  321</span>&#160;</div><div class="line"><a name="l00327"></a><span class="lineno">  327</span>&#160;<span class="keywordtype">void</span> oi_loadSong(<span class="keywordtype">int</span> song_index, <span class="keywordtype">int</span> num_notes, <span class="keywordtype">unsigned</span> <span class="keywordtype">char</span> *notes,</div><div class="line"><a name="l00328"></a><span class="lineno">  328</span>&#160;                 <span class="keywordtype">unsigned</span> <span class="keywordtype">char</span> *duration)</div><div class="line"><a name="l00329"></a><span class="lineno">  329</span>&#160;{</div><div class="line"><a name="l00330"></a><span class="lineno">  330</span>&#160;    <span class="keywordtype">int</span> i;</div><div class="line"><a name="l00331"></a><span class="lineno">  331</span>&#160;    oi_uartSendChar(OI_OPCODE_SONG);</div><div class="line"><a name="l00332"></a><span class="lineno">  332</span>&#160;    oi_uartSendChar(song_index);</div><div class="line"><a name="l00333"></a><span class="lineno">  333</span>&#160;    oi_uartSendChar(num_notes);</div><div class="line"><a name="l00334"></a><span class="lineno">  334</span>&#160;    <span class="keywordflow">for</span> (i = 0; i &lt; num_notes; i++)</div><div class="line"><a name="l00335"></a><span class="lineno">  335</span>&#160;    {</div><div class="line"><a name="l00336"></a><span class="lineno">  336</span>&#160;        oi_uartSendChar(notes[i]);</div><div class="line"><a name="l00337"></a><span class="lineno">  337</span>&#160;        oi_uartSendChar(duration[i]);</div><div class="line"><a name="l00338"></a><span class="lineno">  338</span>&#160;    }</div><div class="line"><a name="l00339"></a><span class="lineno">  339</span>&#160;}</div><div class="line"><a name="l00340"></a><span class="lineno">  340</span>&#160;</div><div class="line"><a name="l00342"></a><span class="lineno">  342</span>&#160;<span class="keywordtype">void</span> oi_play_song(<span class="keywordtype">int</span> index)</div><div class="line"><a name="l00343"></a><span class="lineno">  343</span>&#160;{</div><div class="line"><a name="l00344"></a><span class="lineno">  344</span>&#160;    oi_uartSendChar(OI_OPCODE_PLAY);</div><div class="line"><a name="l00345"></a><span class="lineno">  345</span>&#160;    oi_uartSendChar(index);</div><div class="line"><a name="l00346"></a><span class="lineno">  346</span>&#160;}</div><div class="line"><a name="l00347"></a><span class="lineno">  347</span>&#160;</div><div class="line"><a name="l00349"></a><span class="lineno">  349</span>&#160;<span class="keywordtype">void</span> go_charge(<span class="keywordtype">void</span>)</div><div class="line"><a name="l00350"></a><span class="lineno">  350</span>&#160;{</div><div class="line"><a name="l00351"></a><span class="lineno">  351</span>&#160;    <span class="comment">//char charging_state=0;</span></div><div class="line"><a name="l00352"></a><span class="lineno">  352</span>&#160;</div><div class="line"><a name="l00353"></a><span class="lineno">  353</span>&#160;    <span class="comment">/*  //Calling demo that will cause Create to seek out home base</span></div><div class="line"><a name="l00354"></a><span class="lineno">  354</span>&#160;<span class="comment">     oi_uartSendChar(OI_OPCODE_MAX);</span></div><div class="line"><a name="l00355"></a><span class="lineno">  355</span>&#160;<span class="comment">     oi_uartSendChar(0x01);</span></div><div class="line"><a name="l00356"></a><span class="lineno">  356</span>&#160;<span class="comment"></span></div><div class="line"><a name="l00357"></a><span class="lineno">  357</span>&#160;<span class="comment">     //Control is returned immediately, so need to check for docking status</span></div><div class="line"><a name="l00358"></a><span class="lineno">  358</span>&#160;<span class="comment">     DDRB &amp;= ~0x80; //Setting pin7 to input</span></div><div class="line"><a name="l00359"></a><span class="lineno">  359</span>&#160;<span class="comment">     PORTB |= 0x80; //Setting pullup on pin7</span></div><div class="line"><a name="l00360"></a><span class="lineno">  360</span>&#160;<span class="comment"></span></div><div class="line"><a name="l00361"></a><span class="lineno">  361</span>&#160;<span class="comment">     do {</span></div><div class="line"><a name="l00362"></a><span class="lineno">  362</span>&#160;<span class="comment">     charging_state = PINB &gt;&gt; 7;</span></div><div class="line"><a name="l00363"></a><span class="lineno">  363</span>&#160;<span class="comment">     } while (charging_state == 0);</span></div><div class="line"><a name="l00364"></a><span class="lineno">  364</span>&#160;<span class="comment">     */</span></div><div class="line"><a name="l00365"></a><span class="lineno">  365</span>&#160;}</div><div class="line"><a name="l00366"></a><span class="lineno">  366</span>&#160;</div><div class="line"><a name="l00369"></a><span class="lineno">  369</span>&#160;<span class="keywordtype">void</span> oi_uartInit(<span class="keywordtype">void</span>)</div><div class="line"><a name="l00370"></a><span class="lineno">  370</span>&#160;{</div><div class="line"><a name="l00371"></a><span class="lineno">  371</span>&#160;    <span class="comment">//Calculated Baudrate for 115200;</span></div><div class="line"><a name="l00372"></a><span class="lineno">  372</span>&#160;    uint16_t iBRD = 0x08; <span class="comment">//BRD=SYSCLK/((ClkDiv)(BaudRate)), HSE=0 ClkDiv=16, BaudRate=115,200</span></div><div class="line"><a name="l00373"></a><span class="lineno">  373</span>&#160;    uint16_t fBRD = 44; <span class="comment">//Fractional remainder is 0.6805, DIVFRAC = (.6805)(64)+0.5 = 44</span></div><div class="line"><a name="l00374"></a><span class="lineno">  374</span>&#160;</div><div class="line"><a name="l00375"></a><span class="lineno">  375</span>&#160;    SYSCTL_RCGCGPIO_R |= SYSCTL_RCGCGPIO_R2; <span class="comment">//enable GPIO Port C</span></div><div class="line"><a name="l00376"></a><span class="lineno">  376</span>&#160;</div><div class="line"><a name="l00377"></a><span class="lineno">  377</span>&#160;    SYSCTL_RCGCUART_R |= SYSCTL_RCGCUART_R4; <span class="comment">//enable UART4</span></div><div class="line"><a name="l00378"></a><span class="lineno">  378</span>&#160;</div><div class="line"><a name="l00379"></a><span class="lineno">  379</span>&#160;    GPIO_PORTC_AFSEL_R |= (BIT4 | BIT5); <span class="comment">//Enable alternate function on PC6,PC7</span></div><div class="line"><a name="l00380"></a><span class="lineno">  380</span>&#160;    GPIO_PORTC_PCTL_R |= 0x00110000; <span class="comment">//Enable function 1 (UART Rx/Tx) on PC4,PC5</span></div><div class="line"><a name="l00381"></a><span class="lineno">  381</span>&#160;    GPIO_PORTC_DEN_R |= (BIT4 | BIT5); <span class="comment">//Enable PC4,5 data</span></div><div class="line"><a name="l00382"></a><span class="lineno">  382</span>&#160;    GPIO_PORTC_DIR_R |= BIT5; <span class="comment">//Set pin direction to output on PC5</span></div><div class="line"><a name="l00383"></a><span class="lineno">  383</span>&#160;    GPIO_PORTC_DIR_R &amp;= ~BIT4; <span class="comment">//Set pin direction to input on PC4</span></div><div class="line"><a name="l00384"></a><span class="lineno">  384</span>&#160;</div><div class="line"><a name="l00385"></a><span class="lineno">  385</span>&#160;    UART4_CTL_R &amp;= ~(UART_CTL_UARTEN); <span class="comment">//Disable UART4 while we mess with it</span></div><div class="line"><a name="l00386"></a><span class="lineno">  386</span>&#160;</div><div class="line"><a name="l00387"></a><span class="lineno">  387</span>&#160;    UART4_IBRD_R = iBRD;</div><div class="line"><a name="l00388"></a><span class="lineno">  388</span>&#160;    UART4_FBRD_R = fBRD;</div><div class="line"><a name="l00389"></a><span class="lineno">  389</span>&#160;</div><div class="line"><a name="l00390"></a><span class="lineno">  390</span>&#160;    UART4_LCRH_R = UART_LCRH_WLEN_8; <span class="comment">//8 bit, 1 stop, no parity, no FIFO</span></div><div class="line"><a name="l00391"></a><span class="lineno">  391</span>&#160;    UART4_CC_R = UART_CC_CS_SYSCLK; <span class="comment">//Use System Clock</span></div><div class="line"><a name="l00392"></a><span class="lineno">  392</span>&#160;    UART4_CTL_R = UART_CTL_RXE | UART_CTL_TXE | UART_CTL_UARTEN; <span class="comment">//Enable Rx, Tx and UART module</span></div><div class="line"><a name="l00393"></a><span class="lineno">  393</span>&#160;}</div><div class="line"><a name="l00394"></a><span class="lineno">  394</span>&#160;</div><div class="line"><a name="l00397"></a><span class="lineno">  397</span>&#160;<span class="keywordtype">void</span> oi_uartSendChar(<span class="keywordtype">char</span> <a class="code" href="movementcommands_8c.html#a91a70b77df95bd8b0830b49a094c2acb">data</a>)</div><div class="line"><a name="l00398"></a><span class="lineno">  398</span>&#160;{</div><div class="line"><a name="l00399"></a><span class="lineno">  399</span>&#160;    <span class="keywordflow">while</span> ((UART4_FR_R &amp; UART_FR_TXFF) != 0)</div><div class="line"><a name="l00400"></a><span class="lineno">  400</span>&#160;        ; <span class="comment">//holds until no data in transmit buffer</span></div><div class="line"><a name="l00401"></a><span class="lineno">  401</span>&#160;</div><div class="line"><a name="l00402"></a><span class="lineno">  402</span>&#160;    UART4_DR_R = <a class="code" href="movementcommands_8c.html#a91a70b77df95bd8b0830b49a094c2acb">data</a>; <span class="comment">//puts data in transmission buffer</span></div><div class="line"><a name="l00403"></a><span class="lineno">  403</span>&#160;</div><div class="line"><a name="l00404"></a><span class="lineno">  404</span>&#160;    <span class="comment">//For debugging</span></div><div class="line"><a name="l00405"></a><span class="lineno">  405</span>&#160;    <span class="comment">//timer_waitMicros(1000);</span></div><div class="line"><a name="l00406"></a><span class="lineno">  406</span>&#160;}</div><div class="line"><a name="l00407"></a><span class="lineno">  407</span>&#160;</div><div class="line"><a name="l00408"></a><span class="lineno">  408</span>&#160;<span class="keywordtype">char</span> oi_uartReceive(<span class="keywordtype">void</span>)</div><div class="line"><a name="l00409"></a><span class="lineno">  409</span>&#160;{</div><div class="line"><a name="l00410"></a><span class="lineno">  410</span>&#160;    <span class="keyword">static</span> <span class="keywordtype">int</span> count = 0;</div><div class="line"><a name="l00411"></a><span class="lineno">  411</span>&#160;    <span class="comment">//uint32_t tempData; //used for error checking</span></div><div class="line"><a name="l00412"></a><span class="lineno">  412</span>&#160;    <span class="keywordtype">char</span> <a class="code" href="movementcommands_8c.html#a91a70b77df95bd8b0830b49a094c2acb">data</a>;</div><div class="line"><a name="l00413"></a><span class="lineno">  413</span>&#160;</div><div class="line"><a name="l00414"></a><span class="lineno">  414</span>&#160;    <span class="keywordflow">while</span> ((UART4_FR_R &amp; UART_FR_RXFE))</div><div class="line"><a name="l00415"></a><span class="lineno">  415</span>&#160;        ; <span class="comment">//wait here until data is recieved</span></div><div class="line"><a name="l00416"></a><span class="lineno">  416</span>&#160;</div><div class="line"><a name="l00417"></a><span class="lineno">  417</span>&#160;    <a class="code" href="movementcommands_8c.html#a91a70b77df95bd8b0830b49a094c2acb">data</a> = (char) (UART4_DR_R &amp; 0xFF);</div><div class="line"><a name="l00418"></a><span class="lineno">  418</span>&#160;</div><div class="line"><a name="l00419"></a><span class="lineno">  419</span>&#160;    count++;</div><div class="line"><a name="l00420"></a><span class="lineno">  420</span>&#160;</div><div class="line"><a name="l00421"></a><span class="lineno">  421</span>&#160;    <span class="comment">//ToDo: Implement error checking</span></div><div class="line"><a name="l00422"></a><span class="lineno">  422</span>&#160;    <span class="keywordflow">return</span> <a class="code" href="movementcommands_8c.html#a91a70b77df95bd8b0830b49a094c2acb">data</a>;</div><div class="line"><a name="l00423"></a><span class="lineno">  423</span>&#160;}</div><div class="line"><a name="l00424"></a><span class="lineno">  424</span>&#160;</div><div class="line"><a name="l00426"></a><span class="lineno">  426</span>&#160;<span class="keywordtype">void</span> oi_uartSendStr(<span class="keyword">const</span> <span class="keywordtype">char</span> *theData)</div><div class="line"><a name="l00427"></a><span class="lineno">  427</span>&#160;{</div><div class="line"><a name="l00428"></a><span class="lineno">  428</span>&#160;    <span class="keywordflow">while</span> (*theData != <span class="charliteral">&#39;\0&#39;</span>)</div><div class="line"><a name="l00429"></a><span class="lineno">  429</span>&#160;    {</div><div class="line"><a name="l00430"></a><span class="lineno">  430</span>&#160;        oi_uartSendChar(*theData);</div><div class="line"><a name="l00431"></a><span class="lineno">  431</span>&#160;        theData++;</div><div class="line"><a name="l00432"></a><span class="lineno">  432</span>&#160;    }</div><div class="line"><a name="l00433"></a><span class="lineno">  433</span>&#160;</div><div class="line"><a name="l00434"></a><span class="lineno">  434</span>&#160;}</div><div class="line"><a name="l00435"></a><span class="lineno">  435</span>&#160;</div><div class="line"><a name="l00436"></a><span class="lineno">  436</span>&#160;<span class="keywordtype">void</span> oi_uartSendBuff(<span class="keyword">const</span> uint8_t theData[], uint8_t theSize)</div><div class="line"><a name="l00437"></a><span class="lineno">  437</span>&#160;{</div><div class="line"><a name="l00438"></a><span class="lineno">  438</span>&#160;    <span class="keywordtype">int</span> i;</div><div class="line"><a name="l00439"></a><span class="lineno">  439</span>&#160;</div><div class="line"><a name="l00440"></a><span class="lineno">  440</span>&#160;    <span class="keywordflow">for</span> (i = 0; i &lt; theSize; i++)</div><div class="line"><a name="l00441"></a><span class="lineno">  441</span>&#160;    {</div><div class="line"><a name="l00442"></a><span class="lineno">  442</span>&#160;        oi_uartSendChar(theData[i]);</div><div class="line"><a name="l00443"></a><span class="lineno">  443</span>&#160;    }</div><div class="line"><a name="l00444"></a><span class="lineno">  444</span>&#160;}</div><div class="line"><a name="l00445"></a><span class="lineno">  445</span>&#160;</div><div class="line"><a name="l00446"></a><span class="lineno">  446</span>&#160;<span class="keywordtype">char</span>* oi_checkFirmware()</div><div class="line"><a name="l00447"></a><span class="lineno">  447</span>&#160;{</div><div class="line"><a name="l00448"></a><span class="lineno">  448</span>&#160;    <span class="keyword">const</span> <span class="keywordtype">char</span> FIRM_STR[] = <span class="stringliteral">&quot;r3_robot/tags/&quot;</span>;</div><div class="line"><a name="l00449"></a><span class="lineno">  449</span>&#160;    <span class="keyword">const</span> <span class="keywordtype">char</span> FIRM_END = <span class="charliteral">&#39;:&#39;</span>;</div><div class="line"><a name="l00450"></a><span class="lineno">  450</span>&#160;    <span class="keyword">const</span> uint8_t FIRM_STRLEN = 14;</div><div class="line"><a name="l00451"></a><span class="lineno">  451</span>&#160;</div><div class="line"><a name="l00452"></a><span class="lineno">  452</span>&#160;    <span class="keyword">static</span> <span class="keywordtype">char</span> firmware[21];</div><div class="line"><a name="l00453"></a><span class="lineno">  453</span>&#160;</div><div class="line"><a name="l00454"></a><span class="lineno">  454</span>&#160;    <span class="keywordtype">char</span> <a class="code" href="uart_8h.html#aff2566f4c366b48d73479bef43ee4d2e">buffer</a>[512];</div><div class="line"><a name="l00455"></a><span class="lineno">  455</span>&#160;    uint16_t ptr;</div><div class="line"><a name="l00456"></a><span class="lineno">  456</span>&#160;</div><div class="line"><a name="l00457"></a><span class="lineno">  457</span>&#160;    <span class="comment">//Reset the iRobot</span></div><div class="line"><a name="l00458"></a><span class="lineno">  458</span>&#160;    oi_uartSendChar(OI_OPCODE_RESET);</div><div class="line"><a name="l00459"></a><span class="lineno">  459</span>&#160;</div><div class="line"><a name="l00460"></a><span class="lineno">  460</span>&#160;    <span class="keywordtype">char</span> c;</div><div class="line"><a name="l00461"></a><span class="lineno">  461</span>&#160;    <span class="keywordflow">while</span> ((c = oi_uartReceive()) || 1)</div><div class="line"><a name="l00462"></a><span class="lineno">  462</span>&#160;    {</div><div class="line"><a name="l00463"></a><span class="lineno">  463</span>&#160;        <a class="code" href="uart_8h.html#aff2566f4c366b48d73479bef43ee4d2e">buffer</a>[ptr++] = c;</div><div class="line"><a name="l00464"></a><span class="lineno">  464</span>&#160;</div><div class="line"><a name="l00465"></a><span class="lineno">  465</span>&#160;        <span class="comment">//Do a string compare</span></div><div class="line"><a name="l00466"></a><span class="lineno">  466</span>&#160;        <a class="code" href="uart_8h.html#aff2566f4c366b48d73479bef43ee4d2e">buffer</a>[ptr] = <span class="charliteral">&#39;\0&#39;</span>;</div><div class="line"><a name="l00467"></a><span class="lineno">  467</span>&#160;        <span class="keywordflow">if</span> (ptr &gt;= FIRM_STRLEN &amp;&amp; !strcmp(<a class="code" href="uart_8h.html#aff2566f4c366b48d73479bef43ee4d2e">buffer</a> + ptr - FIRM_STRLEN, FIRM_STR))</div><div class="line"><a name="l00468"></a><span class="lineno">  468</span>&#160;        {</div><div class="line"><a name="l00469"></a><span class="lineno">  469</span>&#160;            ptr = 0;</div><div class="line"><a name="l00470"></a><span class="lineno">  470</span>&#160;            <span class="comment">//Firmware version incoming</span></div><div class="line"><a name="l00471"></a><span class="lineno">  471</span>&#160;            <span class="keywordflow">while</span> ((c = oi_uartReceive()) != FIRM_END)</div><div class="line"><a name="l00472"></a><span class="lineno">  472</span>&#160;            {</div><div class="line"><a name="l00473"></a><span class="lineno">  473</span>&#160;                firmware[ptr++] = c;</div><div class="line"><a name="l00474"></a><span class="lineno">  474</span>&#160;            }</div><div class="line"><a name="l00475"></a><span class="lineno">  475</span>&#160;</div><div class="line"><a name="l00476"></a><span class="lineno">  476</span>&#160;            <span class="keywordflow">break</span>;</div><div class="line"><a name="l00477"></a><span class="lineno">  477</span>&#160;        }</div><div class="line"><a name="l00478"></a><span class="lineno">  478</span>&#160;    }</div><div class="line"><a name="l00479"></a><span class="lineno">  479</span>&#160;</div><div class="line"><a name="l00480"></a><span class="lineno">  480</span>&#160;    firmware[ptr] = <span class="charliteral">&#39;\0&#39;</span>;</div><div class="line"><a name="l00481"></a><span class="lineno">  481</span>&#160;</div><div class="line"><a name="l00482"></a><span class="lineno">  482</span>&#160;    <span class="keywordflow">return</span> firmware;</div><div class="line"><a name="l00483"></a><span class="lineno">  483</span>&#160;}</div><div class="line"><a name="l00484"></a><span class="lineno">  484</span>&#160;</div><div class="line"><a name="l00486"></a><span class="lineno">  486</span>&#160;<span class="keywordtype">void</span> oi_shutoff_init(<span class="keywordtype">void</span>)</div><div class="line"><a name="l00487"></a><span class="lineno">  487</span>&#160;{</div><div class="line"><a name="l00488"></a><span class="lineno">  488</span>&#160;    <span class="comment">//PF0 user switch - OI shut down</span></div><div class="line"><a name="l00489"></a><span class="lineno">  489</span>&#160;    SYSCTL_RCGCGPIO_R |= SYSCTL_RCGCGPIO_R5; <span class="comment">//enable clock to GPIO F</span></div><div class="line"><a name="l00490"></a><span class="lineno">  490</span>&#160;    GPIO_PORTF_LOCK_R = 0x4C4F434B; <span class="comment">//unlock PF0</span></div><div class="line"><a name="l00491"></a><span class="lineno">  491</span>&#160;    GPIO_PORTF_CR_R |= 0x01; <span class="comment">//allow writes PF0 DEN to be commited</span></div><div class="line"><a name="l00492"></a><span class="lineno">  492</span>&#160;    GPIO_PORTF_DEN_R |= BIT0; <span class="comment">//enable digital on pin 0</span></div><div class="line"><a name="l00493"></a><span class="lineno">  493</span>&#160;    GPIO_PORTF_DIR_R |= ~BIT0; <span class="comment">//set pin 0 to input</span></div><div class="line"><a name="l00494"></a><span class="lineno">  494</span>&#160;    GPIO_PORTF_IBE_R |= BIT0; <span class="comment">//both edges can trigger</span></div><div class="line"><a name="l00495"></a><span class="lineno">  495</span>&#160;    GPIO_PORTF_IEV_R |= BIT0; <span class="comment">//enable rising edge trigger</span></div><div class="line"><a name="l00496"></a><span class="lineno">  496</span>&#160;    GPIO_PORTF_ICR_R |= BIT0; <span class="comment">//clear interrupt if there is already one</span></div><div class="line"><a name="l00497"></a><span class="lineno">  497</span>&#160;    GPIO_PORTF_IM_R |= BIT0; <span class="comment">//unmask interrupt</span></div><div class="line"><a name="l00498"></a><span class="lineno">  498</span>&#160;</div><div class="line"><a name="l00499"></a><span class="lineno">  499</span>&#160;    NVIC_EN0_R |= 0x40000000; <span class="comment">//enable IRQ by setting bit 30</span></div><div class="line"><a name="l00500"></a><span class="lineno">  500</span>&#160;    IntRegister(INT_GPIOF, GPIOF_Handler); <span class="comment">//tell cpu to use ISR handler for GPIOF</span></div><div class="line"><a name="l00501"></a><span class="lineno">  501</span>&#160;    IntMasterEnable(); <span class="comment">//enable global interrupts</span></div><div class="line"><a name="l00502"></a><span class="lineno">  502</span>&#160;}</div><div class="line"><a name="l00503"></a><span class="lineno">  503</span>&#160;</div><div class="line"><a name="l00504"></a><span class="lineno">  504</span>&#160;<span class="keywordtype">void</span> GPIOF_Handler(<span class="keywordtype">void</span>)</div><div class="line"><a name="l00505"></a><span class="lineno">  505</span>&#160;{</div><div class="line"><a name="l00506"></a><span class="lineno">  506</span>&#160;    <span class="keywordflow">if</span> (GPIO_PORTF_RIS_R &amp; BIT0)</div><div class="line"><a name="l00507"></a><span class="lineno">  507</span>&#160;    {</div><div class="line"><a name="l00508"></a><span class="lineno">  508</span>&#160;        <span class="comment">//shutoff button was pressed, turn off OI</span></div><div class="line"><a name="l00509"></a><span class="lineno">  509</span>&#160;        oi_close();</div><div class="line"><a name="l00510"></a><span class="lineno">  510</span>&#160;</div><div class="line"><a name="l00511"></a><span class="lineno">  511</span>&#160;        GPIO_PORTF_ICR_R |= BIT0; <span class="comment">//clear interrupt</span></div><div class="line"><a name="l00512"></a><span class="lineno">  512</span>&#160;    }</div><div class="line"><a name="l00513"></a><span class="lineno">  513</span>&#160;}</div><div class="line"><a name="l00514"></a><span class="lineno">  514</span>&#160;</div><div class="line"><a name="l00519"></a><span class="lineno">  519</span>&#160;<span class="keywordtype">float</span> getDegrees(<a class="code" href="structoi__t.html">oi_t</a> *<span class="keyword">self</span>)</div><div class="line"><a name="l00520"></a><span class="lineno">  520</span>&#160;{</div><div class="line"><a name="l00521"></a><span class="lineno">  521</span>&#160;    <span class="keyword">static</span> <span class="keywordtype">int</span> iterations = 0;</div><div class="line"><a name="l00522"></a><span class="lineno">  522</span>&#160;    <span class="keyword">static</span> <span class="keywordtype">int</span> prevLeft = 0;</div><div class="line"><a name="l00523"></a><span class="lineno">  523</span>&#160;    <span class="keyword">static</span> <span class="keywordtype">int</span> prevRight = 0;</div><div class="line"><a name="l00524"></a><span class="lineno">  524</span>&#160;</div><div class="line"><a name="l00525"></a><span class="lineno">  525</span>&#160;    <span class="comment">//if(self-&gt;leftEncoderCount == 0 || self-&gt;rightEncoderCount == 0){  // update was called with no movement of the bot</span></div><div class="line"><a name="l00526"></a><span class="lineno">  526</span>&#160;    <span class="comment">//  return 0;</span></div><div class="line"><a name="l00527"></a><span class="lineno">  527</span>&#160;    <span class="comment">//}</span></div><div class="line"><a name="l00528"></a><span class="lineno">  528</span>&#160;</div><div class="line"><a name="l00529"></a><span class="lineno">  529</span>&#160;    <span class="keywordflow">if</span> ((self-&gt;leftEncoderCount == prevLeft)</div><div class="line"><a name="l00530"></a><span class="lineno">  530</span>&#160;            &amp;&amp; (self-&gt;rightEncoderCount == prevRight))</div><div class="line"><a name="l00531"></a><span class="lineno">  531</span>&#160;    { <span class="comment">// if the bot has not moved since previous update</span></div><div class="line"><a name="l00532"></a><span class="lineno">  532</span>&#160;        prevLeft = <span class="keyword">self</span>-&gt;leftEncoderCount;</div><div class="line"><a name="l00533"></a><span class="lineno">  533</span>&#160;        prevRight = <span class="keyword">self</span>-&gt;rightEncoderCount;</div><div class="line"><a name="l00534"></a><span class="lineno">  534</span>&#160;        <span class="keywordflow">return</span> 0;</div><div class="line"><a name="l00535"></a><span class="lineno">  535</span>&#160;    }</div><div class="line"><a name="l00536"></a><span class="lineno">  536</span>&#160;    <span class="comment">//ignore the first run, such that we do not have prevLeft or right=0, this would give a very large degree moved.</span></div><div class="line"><a name="l00537"></a><span class="lineno">  537</span>&#160;    <span class="keywordflow">else</span> <span class="keywordflow">if</span> (iterations == 0)</div><div class="line"><a name="l00538"></a><span class="lineno">  538</span>&#160;    {</div><div class="line"><a name="l00539"></a><span class="lineno">  539</span>&#160;        prevLeft = <span class="keyword">self</span>-&gt;leftEncoderCount;</div><div class="line"><a name="l00540"></a><span class="lineno">  540</span>&#160;        prevRight = <span class="keyword">self</span>-&gt;rightEncoderCount;</div><div class="line"><a name="l00541"></a><span class="lineno">  541</span>&#160;        iterations++;</div><div class="line"><a name="l00542"></a><span class="lineno">  542</span>&#160;        <span class="keywordflow">return</span> 0;</div><div class="line"><a name="l00543"></a><span class="lineno">  543</span>&#160;    }</div><div class="line"><a name="l00544"></a><span class="lineno">  544</span>&#160;</div><div class="line"><a name="l00545"></a><span class="lineno">  545</span>&#160;    <span class="comment">//get distance moved in mm for the left and right wheel</span></div><div class="line"><a name="l00546"></a><span class="lineno">  546</span>&#160;    <span class="comment">// equation: ticks * (1/508)*72pi</span></div><div class="line"><a name="l00547"></a><span class="lineno">  547</span>&#160;    <span class="comment">//update the previous values to be correct</span></div><div class="line"><a name="l00548"></a><span class="lineno">  548</span>&#160;    <span class="keywordtype">int</span> distLeft = (<span class="keyword">self</span>-&gt;leftEncoderCount - prevLeft) * (0.445265);</div><div class="line"><a name="l00549"></a><span class="lineno">  549</span>&#160;    <span class="keywordtype">int</span> distRight = (<span class="keyword">self</span>-&gt;rightEncoderCount - prevRight) * (0.445265);</div><div class="line"><a name="l00550"></a><span class="lineno">  550</span>&#160;    prevLeft = <span class="keyword">self</span>-&gt;leftEncoderCount;</div><div class="line"><a name="l00551"></a><span class="lineno">  551</span>&#160;    prevRight = <span class="keyword">self</span>-&gt;rightEncoderCount;</div><div class="line"><a name="l00552"></a><span class="lineno">  552</span>&#160;</div><div class="line"><a name="l00553"></a><span class="lineno">  553</span>&#160;    <span class="comment">//calculate the degree travelled by (right-left)/wheel base in mm</span></div><div class="line"><a name="l00554"></a><span class="lineno">  554</span>&#160;    <span class="keywordtype">float</span> deg = .82 * (distRight - distLeft) / 178.5;<span class="comment">//change 178.5 to improve accuracy of turning if needed</span></div><div class="line"><a name="l00555"></a><span class="lineno">  555</span>&#160;    deg = (deg * 180) / M_PI;</div><div class="line"><a name="l00556"></a><span class="lineno">  556</span>&#160;</div><div class="line"><a name="l00557"></a><span class="lineno">  557</span>&#160;    <span class="keywordflow">return</span> (deg);</div><div class="line"><a name="l00558"></a><span class="lineno">  558</span>&#160;</div><div class="line"><a name="l00559"></a><span class="lineno">  559</span>&#160;}</div><div class="line"><a name="l00560"></a><span class="lineno">  560</span>&#160;</div><div class="ttc" id="movementcommands_8c_html_a91a70b77df95bd8b0830b49a094c2acb"><div class="ttname"><a href="movementcommands_8c.html#a91a70b77df95bd8b0830b49a094c2acb">data</a></div><div class="ttdeci">char * data</div><div class="ttdef"><b>Definition:</b> <a href="movementcommands_8c_source.html#l00041">movementcommands.c:41</a></div></div>
+<a href="open__interface_8c.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno">    1</span>&#160;</div><div class="line"><a name="l00011"></a><span class="lineno">   11</span>&#160;<span class="comment">/*</span></div><div class="line"><a name="l00012"></a><span class="lineno">   12</span>&#160;<span class="comment"> * Open Interface</span></div><div class="line"><a name="l00013"></a><span class="lineno">   13</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00014"></a><span class="lineno">   14</span>&#160;<span class="comment"> *  Created on: Mar 3, 2016</span></div><div class="line"><a name="l00015"></a><span class="lineno">   15</span>&#160;<span class="comment"> *      Author: Noah Bergman, Eric Middleton, dmlarson</span></div><div class="line"><a name="l00016"></a><span class="lineno">   16</span>&#160;<span class="comment"> */</span></div><div class="line"><a name="l00017"></a><span class="lineno">   17</span>&#160;</div><div class="line"><a name="l00018"></a><span class="lineno">   18</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="open__interface_8h.html">open_interface.h</a>&quot;</span></div><div class="line"><a name="l00019"></a><span class="lineno">   19</span>&#160;</div><div class="line"><a name="l00020"></a><span class="lineno">   20</span>&#160;<span class="preprocessor">#define OI_OPCODE_START            128</span></div><div class="line"><a name="l00021"></a><span class="lineno">   21</span>&#160;<span class="preprocessor">#define OI_OPCODE_BAUD             129</span></div><div class="line"><a name="l00022"></a><span class="lineno">   22</span>&#160;<span class="preprocessor">#define OI_OPCODE_CONTROL          130</span></div><div class="line"><a name="l00023"></a><span class="lineno">   23</span>&#160;<span class="preprocessor">#define OI_OPCODE_SAFE             131</span></div><div class="line"><a name="l00024"></a><span class="lineno">   24</span>&#160;<span class="preprocessor">#define OI_OPCODE_FULL             132</span></div><div class="line"><a name="l00025"></a><span class="lineno">   25</span>&#160;<span class="preprocessor">#define OI_OPCODE_POWER            133      //POWER DOWN ROOMBA</span></div><div class="line"><a name="l00026"></a><span class="lineno">   26</span>&#160;<span class="preprocessor">#define OI_OPCODE_SPOT             134</span></div><div class="line"><a name="l00027"></a><span class="lineno">   27</span>&#160;<span class="preprocessor">#define OI_OPCODE_CLEAN            135</span></div><div class="line"><a name="l00028"></a><span class="lineno">   28</span>&#160;<span class="preprocessor">#define OI_OPCODE_MAX              136</span></div><div class="line"><a name="l00029"></a><span class="lineno">   29</span>&#160;<span class="preprocessor">#define OI_OPCODE_DRIVE            137</span></div><div class="line"><a name="l00030"></a><span class="lineno">   30</span>&#160;<span class="preprocessor">#define OI_OPCODE_MOTORS           138</span></div><div class="line"><a name="l00031"></a><span class="lineno">   31</span>&#160;<span class="preprocessor">#define OI_OPCODE_LEDS             139</span></div><div class="line"><a name="l00032"></a><span class="lineno">   32</span>&#160;<span class="preprocessor">#define OI_OPCODE_SONG             140</span></div><div class="line"><a name="l00033"></a><span class="lineno">   33</span>&#160;<span class="preprocessor">#define OI_OPCODE_PLAY             141</span></div><div class="line"><a name="l00034"></a><span class="lineno">   34</span>&#160;<span class="preprocessor">#define OI_OPCODE_SENSORS          142</span></div><div class="line"><a name="l00035"></a><span class="lineno">   35</span>&#160;<span class="preprocessor">#define OI_OPCODE_FORCEDOCK        143</span></div><div class="line"><a name="l00036"></a><span class="lineno">   36</span>&#160;</div><div class="line"><a name="l00037"></a><span class="lineno">   37</span>&#160;<span class="preprocessor">#define OI_OPCODE_PWM_MOTORS       144</span></div><div class="line"><a name="l00038"></a><span class="lineno">   38</span>&#160;<span class="preprocessor">#define OI_OPCODE_DRIVE_WHEELS     145</span></div><div class="line"><a name="l00039"></a><span class="lineno">   39</span>&#160;<span class="preprocessor">#define OI_OPCODE_DRIVE_PWM        146</span></div><div class="line"><a name="l00040"></a><span class="lineno">   40</span>&#160;<span class="preprocessor">#define OI_OPCODE_OUTPUTS          147</span></div><div class="line"><a name="l00041"></a><span class="lineno">   41</span>&#160;<span class="preprocessor">#define OI_OPCODE_STREAM           148</span></div><div class="line"><a name="l00042"></a><span class="lineno">   42</span>&#160;<span class="preprocessor">#define OI_OPCODE_QUERY_LIST       149</span></div><div class="line"><a name="l00043"></a><span class="lineno">   43</span>&#160;<span class="preprocessor">#define OI_OPCODE_DO_STREAM        150</span></div><div class="line"><a name="l00044"></a><span class="lineno">   44</span>&#160;<span class="preprocessor">#define OI_OPCODE_SEND_IR_CHAR     151</span></div><div class="line"><a name="l00045"></a><span class="lineno">   45</span>&#160;<span class="preprocessor">#define OI_OPCODE_SCRIPT           152</span></div><div class="line"><a name="l00046"></a><span class="lineno">   46</span>&#160;<span class="preprocessor">#define OI_OPCODE_PLAY_SCRIPT      153</span></div><div class="line"><a name="l00047"></a><span class="lineno">   47</span>&#160;<span class="preprocessor">#define OI_OPCODE_SHOW_SCRIPT      154</span></div><div class="line"><a name="l00048"></a><span class="lineno">   48</span>&#160;<span class="preprocessor">#define OI_OPCODE_WAIT_TIME        155</span></div><div class="line"><a name="l00049"></a><span class="lineno">   49</span>&#160;<span class="preprocessor">#define OI_OPCODE_WAIT_DISTANCE    156</span></div><div class="line"><a name="l00050"></a><span class="lineno">   50</span>&#160;<span class="preprocessor">#define OI_OPCODE_WAIT_ANGLE       157</span></div><div class="line"><a name="l00051"></a><span class="lineno">   51</span>&#160;<span class="preprocessor">#define OI_OPCODE_WAIT_EVENT       158</span></div><div class="line"><a name="l00052"></a><span class="lineno">   52</span>&#160;</div><div class="line"><a name="l00053"></a><span class="lineno">   53</span>&#160;<span class="preprocessor">#define OI_OPCODE_RESET             7   //RESET ROOMBA - GO TO</span></div><div class="line"><a name="l00054"></a><span class="lineno">   54</span>&#160;<span class="preprocessor">#define OI_OPCODE_STOP              173</span></div><div class="line"><a name="l00055"></a><span class="lineno">   55</span>&#160;<span class="preprocessor">#define OI_OPCODE_SCHEDULE          167</span></div><div class="line"><a name="l00056"></a><span class="lineno">   56</span>&#160;<span class="preprocessor">#define OI_OPCODE_SCHED_LED         162 //MONDAY THROUGH SUNDAY LEDS</span></div><div class="line"><a name="l00057"></a><span class="lineno">   57</span>&#160;<span class="preprocessor">#define OI_OPCODE_7SEG              163</span></div><div class="line"><a name="l00058"></a><span class="lineno">   58</span>&#160;</div><div class="line"><a name="l00059"></a><span class="lineno">   59</span>&#160;<span class="comment">// Contains Packets 7-26</span></div><div class="line"><a name="l00060"></a><span class="lineno">   60</span>&#160;<span class="preprocessor">#define OI_SENSOR_PACKET_GROUP0 0</span></div><div class="line"><a name="l00061"></a><span class="lineno">   61</span>&#160;<span class="comment">// Contains Packets 7-16</span></div><div class="line"><a name="l00062"></a><span class="lineno">   62</span>&#160;<span class="preprocessor">#define OI_SENSOR_PACKET_GROUP1 1</span></div><div class="line"><a name="l00063"></a><span class="lineno">   63</span>&#160;<span class="comment">// Contains Packets 17-20</span></div><div class="line"><a name="l00064"></a><span class="lineno">   64</span>&#160;<span class="preprocessor">#define OI_SENSOR_PACKET_GROUP2 2</span></div><div class="line"><a name="l00065"></a><span class="lineno">   65</span>&#160;<span class="comment">// Contains Packets 21-26</span></div><div class="line"><a name="l00066"></a><span class="lineno">   66</span>&#160;<span class="preprocessor">#define OI_SENSOR_PACKET_GROUP3 3</span></div><div class="line"><a name="l00067"></a><span class="lineno">   67</span>&#160;<span class="comment">// Contains Packets 27-34</span></div><div class="line"><a name="l00068"></a><span class="lineno">   68</span>&#160;<span class="preprocessor">#define OI_SENSOR_PACKET_GROUP4 4</span></div><div class="line"><a name="l00069"></a><span class="lineno">   69</span>&#160;<span class="comment">// Contains Packets 35-42</span></div><div class="line"><a name="l00070"></a><span class="lineno">   70</span>&#160;<span class="preprocessor">#define OI_SENSOR_PACKET_GROUP5 5</span></div><div class="line"><a name="l00071"></a><span class="lineno">   71</span>&#160;<span class="comment">// Contains Packets 7-42</span></div><div class="line"><a name="l00072"></a><span class="lineno">   72</span>&#160;<span class="preprocessor">#define OI_SENSOR_PACKET_GROUP6 6</span></div><div class="line"><a name="l00073"></a><span class="lineno">   73</span>&#160;<span class="comment">// Contains Packets 7-58 For Use With Create 2 Only</span></div><div class="line"><a name="l00074"></a><span class="lineno">   74</span>&#160;<span class="preprocessor">#define OI_SENSOR_PACKET_GROUP100 100</span></div><div class="line"><a name="l00075"></a><span class="lineno">   75</span>&#160;<span class="comment">// Contains Packets 43-58 For Use With Create 2 Only</span></div><div class="line"><a name="l00076"></a><span class="lineno">   76</span>&#160;<span class="preprocessor">#define OI_SENSOR_PACKET_GROUP101 101</span></div><div class="line"><a name="l00077"></a><span class="lineno">   77</span>&#160;<span class="comment">// Contains Packets 46-51 For Use With Create 2 Only</span></div><div class="line"><a name="l00078"></a><span class="lineno">   78</span>&#160;<span class="preprocessor">#define OI_SENSOR_PACKET_GROUP106 106</span></div><div class="line"><a name="l00079"></a><span class="lineno">   79</span>&#160;<span class="comment">// Contains Packets 54-58 For Use With Create 2 Only</span></div><div class="line"><a name="l00080"></a><span class="lineno">   80</span>&#160;<span class="preprocessor">#define OI_SENSOR_PACKET_GROUP107 107</span></div><div class="line"><a name="l00081"></a><span class="lineno">   81</span>&#160;</div><div class="line"><a name="l00082"></a><span class="lineno">   82</span>&#160;<span class="preprocessor">#define SENSOR_PACKET_SIZE  80</span></div><div class="line"><a name="l00083"></a><span class="lineno">   83</span>&#160;</div><div class="line"><a name="l00086"></a><span class="lineno">   86</span>&#160;<span class="keywordtype">void</span> <a class="code" href="open__interface_8c.html#ae2a441c2fb23be5db165a8cd7eca0fe7">oi_init_noupdate</a>(<span class="keywordtype">void</span>);</div><div class="line"><a name="l00087"></a><span class="lineno">   87</span>&#160;</div><div class="line"><a name="l00090"></a><span class="lineno">   90</span>&#160;<span class="keywordtype">void</span> <a class="code" href="open__interface_8c.html#ad9923d0a228d340572e71997ddf32df9">oi_uartInit</a>(<span class="keywordtype">void</span>);</div><div class="line"><a name="l00091"></a><span class="lineno">   91</span>&#160;</div><div class="line"><a name="l00093"></a><span class="lineno">   93</span>&#160;<span class="keywordtype">void</span> <a class="code" href="open__interface_8c.html#af7fe40c5fd5331db4a79ee4d77b12398">oi_uartFastMode</a>(<span class="keywordtype">void</span>);</div><div class="line"><a name="l00094"></a><span class="lineno">   94</span>&#160;</div><div class="line"><a name="l00097"></a><span class="lineno">   97</span>&#160;<span class="keywordtype">void</span> <a class="code" href="open__interface_8c.html#aced7535453b0c0e29af698308d0498d4">oi_uartSendChar</a>(<span class="keywordtype">char</span> <a class="code" href="main_8c.html#a91a70b77df95bd8b0830b49a094c2acb">data</a>);</div><div class="line"><a name="l00098"></a><span class="lineno">   98</span>&#160;</div><div class="line"><a name="l00101"></a><span class="lineno">  101</span>&#160;<span class="keywordtype">void</span> <a class="code" href="open__interface_8c.html#a33bd73bbfbc570a633f3622069087066">uart_sendStr</a>(<span class="keyword">const</span> <span class="keywordtype">char</span> *theData);</div><div class="line"><a name="l00102"></a><span class="lineno">  102</span>&#160;</div><div class="line"><a name="l00105"></a><span class="lineno">  105</span>&#160;<span class="keywordtype">char</span> <a class="code" href="open__interface_8c.html#a5e7e1773c5782c2be5f333f733aab29f">oi_uartReceive</a>(<span class="keywordtype">void</span>);</div><div class="line"><a name="l00106"></a><span class="lineno">  106</span>&#160;</div><div class="line"><a name="l00108"></a><span class="lineno">  108</span>&#160;<span class="keywordtype">void</span> <a class="code" href="open__interface_8c.html#aa238e081cfecd7a9bf3d274f53504362">oi_parsePacket</a>(<a class="code" href="structoi__t.html">oi_t</a>* <span class="keyword">self</span>, uint8_t packet[]);</div><div class="line"><a name="l00109"></a><span class="lineno">  109</span>&#160;</div><div class="line"><a name="l00112"></a><span class="lineno">  112</span>&#160;<span class="keywordtype">void</span> <a class="code" href="open__interface_8c.html#afcbad4c0a94458d1ba7ff11dac9ff42b">oi_uartSendBuff</a>(<span class="keyword">const</span> uint8_t theData[], uint8_t theSize);</div><div class="line"><a name="l00113"></a><span class="lineno">  113</span>&#160;</div><div class="line"><a name="l00116"></a><span class="lineno">  116</span>&#160;int16_t <a class="code" href="open__interface_8c.html#a8c54153bd272749c1fc36a3f98ffc8b1">oi_parseInt</a>(uint8_t* theInt);</div><div class="line"><a name="l00117"></a><span class="lineno">  117</span>&#160;</div><div class="line"><a name="l00119"></a><span class="lineno"><a class="line" href="open__interface_8h.html#aad249dffdf79454de76e09092a0445f5">  119</a></span>&#160;<a class="code" href="structoi__t.html">oi_t</a>* <a class="code" href="open__interface_8c.html#aad249dffdf79454de76e09092a0445f5">oi_alloc</a>()</div><div class="line"><a name="l00120"></a><span class="lineno">  120</span>&#160;{</div><div class="line"><a name="l00121"></a><span class="lineno">  121</span>&#160;    <span class="keywordflow">return</span> calloc(1, <span class="keyword">sizeof</span>(<a class="code" href="structoi__t.html">oi_t</a>));</div><div class="line"><a name="l00122"></a><span class="lineno">  122</span>&#160;}</div><div class="line"><a name="l00123"></a><span class="lineno">  123</span>&#160;</div><div class="line"><a name="l00125"></a><span class="lineno"><a class="line" href="open__interface_8h.html#abe8995b948a2f47938a574b59c2dda7e">  125</a></span>&#160;<span class="keywordtype">void</span> <a class="code" href="open__interface_8c.html#abe8995b948a2f47938a574b59c2dda7e">oi_free</a>(<a class="code" href="structoi__t.html">oi_t</a> *<span class="keyword">self</span>)</div><div class="line"><a name="l00126"></a><span class="lineno">  126</span>&#160;{</div><div class="line"><a name="l00127"></a><span class="lineno">  127</span>&#160;    free(<span class="keyword">self</span>);</div><div class="line"><a name="l00128"></a><span class="lineno">  128</span>&#160;</div><div class="line"><a name="l00129"></a><span class="lineno">  129</span>&#160;    <span class="comment">//Send the stop command to the iRobot</span></div><div class="line"><a name="l00130"></a><span class="lineno">  130</span>&#160;    oi_close();</div><div class="line"><a name="l00131"></a><span class="lineno">  131</span>&#160;}</div><div class="line"><a name="l00132"></a><span class="lineno">  132</span>&#160;</div><div class="line"><a name="l00133"></a><span class="lineno"><a class="line" href="open__interface_8c.html#ae2a441c2fb23be5db165a8cd7eca0fe7">  133</a></span>&#160;<span class="keywordtype">void</span> <a class="code" href="open__interface_8c.html#ae2a441c2fb23be5db165a8cd7eca0fe7">oi_init_noupdate</a>()</div><div class="line"><a name="l00134"></a><span class="lineno">  134</span>&#160;{</div><div class="line"><a name="l00135"></a><span class="lineno">  135</span>&#160;    <a class="code" href="open__interface_8c.html#ad9923d0a228d340572e71997ddf32df9">oi_uartInit</a>();</div><div class="line"><a name="l00136"></a><span class="lineno">  136</span>&#160;    <a class="code" href="open__interface_8c.html#aced7535453b0c0e29af698308d0498d4">oi_uartSendChar</a>(OI_OPCODE_START);</div><div class="line"><a name="l00137"></a><span class="lineno">  137</span>&#160;</div><div class="line"><a name="l00138"></a><span class="lineno">  138</span>&#160;    <a class="code" href="open__interface_8c.html#aced7535453b0c0e29af698308d0498d4">oi_uartSendChar</a>(OI_OPCODE_FULL);    <span class="comment">//Use full mode, unrestricted control</span></div><div class="line"><a name="l00139"></a><span class="lineno">  139</span>&#160;    <a class="code" href="open__interface_8c.html#a9ce8d6194cf8cb1d39104b641cb5254d">oi_setLeds</a>(1, 1, 7, 255);</div><div class="line"><a name="l00140"></a><span class="lineno">  140</span>&#160;</div><div class="line"><a name="l00141"></a><span class="lineno">  141</span>&#160;    <a class="code" href="open__interface_8c.html#a1bca24fa8dd6fb148a6ec99ffbe2f29d">oi_shutoff_init</a>(); <span class="comment">//allows for pushbutton SW2 on PF0 to kill oi</span></div><div class="line"><a name="l00142"></a><span class="lineno">  142</span>&#160;</div><div class="line"><a name="l00143"></a><span class="lineno">  143</span>&#160;}</div><div class="line"><a name="l00144"></a><span class="lineno">  144</span>&#160;</div><div class="line"><a name="l00153"></a><span class="lineno"><a class="line" href="open__interface_8h.html#a9108ba8c791d0e97444c03b2f40b278a">  153</a></span>&#160;<span class="keywordtype">void</span> <a class="code" href="open__interface_8c.html#a9108ba8c791d0e97444c03b2f40b278a">oi_init</a>(<a class="code" href="structoi__t.html">oi_t</a> *<span class="keyword">self</span>)</div><div class="line"><a name="l00154"></a><span class="lineno">  154</span>&#160;{</div><div class="line"><a name="l00155"></a><span class="lineno">  155</span>&#160;    <a class="code" href="open__interface_8c.html#ae2a441c2fb23be5db165a8cd7eca0fe7">oi_init_noupdate</a>();</div><div class="line"><a name="l00156"></a><span class="lineno">  156</span>&#160;</div><div class="line"><a name="l00157"></a><span class="lineno">  157</span>&#160;    <a class="code" href="open__interface_8c.html#a9129559bba5ff9dc7e4df64330864674">oi_update</a>(<span class="keyword">self</span>);</div><div class="line"><a name="l00158"></a><span class="lineno">  158</span>&#160;    <a class="code" href="open__interface_8c.html#a9129559bba5ff9dc7e4df64330864674">oi_update</a>(<span class="keyword">self</span>); <span class="comment">//Call twice to clear distance/angle</span></div><div class="line"><a name="l00159"></a><span class="lineno">  159</span>&#160;</div><div class="line"><a name="l00160"></a><span class="lineno">  160</span>&#160;}</div><div class="line"><a name="l00161"></a><span class="lineno">  161</span>&#160;</div><div class="line"><a name="l00162"></a><span class="lineno">  162</span>&#160;<span class="keywordtype">void</span> oi_close()</div><div class="line"><a name="l00163"></a><span class="lineno">  163</span>&#160;{</div><div class="line"><a name="l00164"></a><span class="lineno">  164</span>&#160;    <a class="code" href="open__interface_8c.html#a49949f029cc5f84ad903aa7022f4e5e0">oi_setWheels</a>(0, 0);</div><div class="line"><a name="l00165"></a><span class="lineno">  165</span>&#160;    <a class="code" href="open__interface_8c.html#aced7535453b0c0e29af698308d0498d4">oi_uartSendChar</a>(OI_OPCODE_STOP);</div><div class="line"><a name="l00166"></a><span class="lineno">  166</span>&#160;}</div><div class="line"><a name="l00167"></a><span class="lineno">  167</span>&#160;</div><div class="line"><a name="l00169"></a><span class="lineno"><a class="line" href="open__interface_8h.html#a9129559bba5ff9dc7e4df64330864674">  169</a></span>&#160;<span class="keywordtype">void</span> <a class="code" href="open__interface_8c.html#a9129559bba5ff9dc7e4df64330864674">oi_update</a>(<a class="code" href="structoi__t.html">oi_t</a> *<span class="keyword">self</span>)</div><div class="line"><a name="l00170"></a><span class="lineno">  170</span>&#160;{</div><div class="line"><a name="l00171"></a><span class="lineno">  171</span>&#160;    uint8_t sensorBuffer[SENSOR_PACKET_SIZE];</div><div class="line"><a name="l00172"></a><span class="lineno">  172</span>&#160;</div><div class="line"><a name="l00173"></a><span class="lineno">  173</span>&#160;    <span class="comment">//Query list of sensors</span></div><div class="line"><a name="l00174"></a><span class="lineno">  174</span>&#160;    <a class="code" href="open__interface_8c.html#aced7535453b0c0e29af698308d0498d4">oi_uartSendChar</a>(OI_OPCODE_SENSORS);</div><div class="line"><a name="l00175"></a><span class="lineno">  175</span>&#160;    <a class="code" href="open__interface_8c.html#aced7535453b0c0e29af698308d0498d4">oi_uartSendChar</a>(OI_SENSOR_PACKET_GROUP100);</div><div class="line"><a name="l00176"></a><span class="lineno">  176</span>&#160;</div><div class="line"><a name="l00177"></a><span class="lineno">  177</span>&#160;    <span class="comment">// Read all the sensor data</span></div><div class="line"><a name="l00178"></a><span class="lineno">  178</span>&#160;    uint8_t i;</div><div class="line"><a name="l00179"></a><span class="lineno">  179</span>&#160;    <span class="keywordflow">for</span> (i = 0; i &lt; SENSOR_PACKET_SIZE; i++)</div><div class="line"><a name="l00180"></a><span class="lineno">  180</span>&#160;    {</div><div class="line"><a name="l00181"></a><span class="lineno">  181</span>&#160;        <span class="comment">// read each sensor byte</span></div><div class="line"><a name="l00182"></a><span class="lineno">  182</span>&#160;        sensorBuffer[i] = <a class="code" href="open__interface_8c.html#a5e7e1773c5782c2be5f333f733aab29f">oi_uartReceive</a>();</div><div class="line"><a name="l00183"></a><span class="lineno">  183</span>&#160;    }</div><div class="line"><a name="l00184"></a><span class="lineno">  184</span>&#160;</div><div class="line"><a name="l00185"></a><span class="lineno">  185</span>&#160;    <span class="comment">//Parse the sensor data into the struct</span></div><div class="line"><a name="l00186"></a><span class="lineno">  186</span>&#160;    <a class="code" href="open__interface_8c.html#aa238e081cfecd7a9bf3d274f53504362">oi_parsePacket</a>(<span class="keyword">self</span>, sensorBuffer);</div><div class="line"><a name="l00187"></a><span class="lineno">  187</span>&#160;</div><div class="line"><a name="l00188"></a><span class="lineno">  188</span>&#160;    <a class="code" href="timer_8c.html#a7e2a3b4520e885e5e7d40fa87e242a75">timer_waitMillis</a>(25); <span class="comment">// reduces USART errors that occur when continuously transmitting/receiving min wait time=15ms</span></div><div class="line"><a name="l00189"></a><span class="lineno">  189</span>&#160;}</div><div class="line"><a name="l00190"></a><span class="lineno">  190</span>&#160;</div><div class="line"><a name="l00191"></a><span class="lineno"><a class="line" href="open__interface_8c.html#aa238e081cfecd7a9bf3d274f53504362">  191</a></span>&#160;<span class="keywordtype">void</span> <a class="code" href="open__interface_8c.html#aa238e081cfecd7a9bf3d274f53504362">oi_parsePacket</a>(<a class="code" href="structoi__t.html">oi_t</a>* <span class="keyword">self</span>, uint8_t packet[])</div><div class="line"><a name="l00192"></a><span class="lineno">  192</span>&#160;{</div><div class="line"><a name="l00193"></a><span class="lineno">  193</span>&#160;    <span class="keyword">self</span>-&gt;wheelDropLeft = !!(packet[0] &amp; 0x08);</div><div class="line"><a name="l00194"></a><span class="lineno">  194</span>&#160;    <span class="keyword">self</span>-&gt;wheelDropRight = !!(packet[0] &amp; 0x04);</div><div class="line"><a name="l00195"></a><span class="lineno">  195</span>&#160;    <span class="keyword">self</span>-&gt;bumpLeft = !!(packet[0] &amp; 0x02);</div><div class="line"><a name="l00196"></a><span class="lineno">  196</span>&#160;    <span class="keyword">self</span>-&gt;bumpRight = packet[0] &amp; 0x01;</div><div class="line"><a name="l00197"></a><span class="lineno">  197</span>&#160;</div><div class="line"><a name="l00198"></a><span class="lineno">  198</span>&#160;    <span class="keyword">self</span>-&gt;wallSensor = packet[1];</div><div class="line"><a name="l00199"></a><span class="lineno">  199</span>&#160;</div><div class="line"><a name="l00200"></a><span class="lineno">  200</span>&#160;    <span class="keyword">self</span>-&gt;cliffLeft = packet[2];</div><div class="line"><a name="l00201"></a><span class="lineno">  201</span>&#160;    <span class="keyword">self</span>-&gt;cliffFrontLeft = packet[3];</div><div class="line"><a name="l00202"></a><span class="lineno">  202</span>&#160;    <span class="keyword">self</span>-&gt;cliffFrontRight = packet[4];</div><div class="line"><a name="l00203"></a><span class="lineno">  203</span>&#160;    <span class="keyword">self</span>-&gt;cliffRight = packet[5];</div><div class="line"><a name="l00204"></a><span class="lineno">  204</span>&#160;</div><div class="line"><a name="l00205"></a><span class="lineno">  205</span>&#160;    <span class="keyword">self</span>-&gt;virtualWall = packet[6];</div><div class="line"><a name="l00206"></a><span class="lineno">  206</span>&#160;</div><div class="line"><a name="l00207"></a><span class="lineno">  207</span>&#160;    <span class="keyword">self</span>-&gt;overcurrentLeftWheel = !!(packet[7] &amp; 0x10);</div><div class="line"><a name="l00208"></a><span class="lineno">  208</span>&#160;    <span class="keyword">self</span>-&gt;overcurrentRightWheel = !!(packet[7] &amp; 0x08);</div><div class="line"><a name="l00209"></a><span class="lineno">  209</span>&#160;    <span class="keyword">self</span>-&gt;overcurrentMainBrush = !!(packet[7] &amp; 0x04);</div><div class="line"><a name="l00210"></a><span class="lineno">  210</span>&#160;    <span class="keyword">self</span>-&gt;overcurrentSideBrush = packet[7] &amp; 0x01;</div><div class="line"><a name="l00211"></a><span class="lineno">  211</span>&#160;</div><div class="line"><a name="l00212"></a><span class="lineno">  212</span>&#160;    <span class="keyword">self</span>-&gt;dirtDetect = packet[8];</div><div class="line"><a name="l00213"></a><span class="lineno">  213</span>&#160;</div><div class="line"><a name="l00214"></a><span class="lineno">  214</span>&#160;    <span class="comment">//Byte 9 unused</span></div><div class="line"><a name="l00215"></a><span class="lineno">  215</span>&#160;</div><div class="line"><a name="l00216"></a><span class="lineno">  216</span>&#160;    <span class="keyword">self</span>-&gt;infraredCharOmni = packet[10];</div><div class="line"><a name="l00217"></a><span class="lineno">  217</span>&#160;</div><div class="line"><a name="l00218"></a><span class="lineno">  218</span>&#160;    <span class="keyword">self</span>-&gt;buttonClock = !!(packet[11] &amp; 0x80);</div><div class="line"><a name="l00219"></a><span class="lineno">  219</span>&#160;    <span class="keyword">self</span>-&gt;buttonSchedule = !!(packet[11] &amp; 0x40);</div><div class="line"><a name="l00220"></a><span class="lineno">  220</span>&#160;    <span class="keyword">self</span>-&gt;buttonDay = !!(packet[11] &amp; 0x20);</div><div class="line"><a name="l00221"></a><span class="lineno">  221</span>&#160;    <span class="keyword">self</span>-&gt;buttonHour = !!(packet[11] &amp; 0x10);</div><div class="line"><a name="l00222"></a><span class="lineno">  222</span>&#160;    <span class="keyword">self</span>-&gt;buttonMinute = !!(packet[11] &amp; 0x08);</div><div class="line"><a name="l00223"></a><span class="lineno">  223</span>&#160;    <span class="keyword">self</span>-&gt;buttonDock = !!(packet[11] &amp; 0x04);</div><div class="line"><a name="l00224"></a><span class="lineno">  224</span>&#160;    <span class="keyword">self</span>-&gt;buttonSpot = !!(packet[11] &amp; 0x02);</div><div class="line"><a name="l00225"></a><span class="lineno">  225</span>&#160;    <span class="keyword">self</span>-&gt;buttonClean = packet[11] &amp; 0x01;</div><div class="line"><a name="l00226"></a><span class="lineno">  226</span>&#160;</div><div class="line"><a name="l00227"></a><span class="lineno">  227</span>&#160;    <span class="keyword">self</span>-&gt;distance = <a class="code" href="open__interface_8c.html#a8c54153bd272749c1fc36a3f98ffc8b1">oi_parseInt</a>(packet + 12);</div><div class="line"><a name="l00228"></a><span class="lineno">  228</span>&#160;</div><div class="line"><a name="l00229"></a><span class="lineno">  229</span>&#160;    <span class="keyword">self</span>-&gt;chargingState = packet[16];</div><div class="line"><a name="l00230"></a><span class="lineno">  230</span>&#160;    <span class="keyword">self</span>-&gt;batteryVoltage = <a class="code" href="open__interface_8c.html#a8c54153bd272749c1fc36a3f98ffc8b1">oi_parseInt</a>(packet + 17);</div><div class="line"><a name="l00231"></a><span class="lineno">  231</span>&#160;    <span class="keyword">self</span>-&gt;batteryCurrent = <a class="code" href="open__interface_8c.html#a8c54153bd272749c1fc36a3f98ffc8b1">oi_parseInt</a>(packet + 19);</div><div class="line"><a name="l00232"></a><span class="lineno">  232</span>&#160;    <span class="keyword">self</span>-&gt;batteryTemperature = packet[21];</div><div class="line"><a name="l00233"></a><span class="lineno">  233</span>&#160;    <span class="keyword">self</span>-&gt;batteryCharge = <a class="code" href="open__interface_8c.html#a8c54153bd272749c1fc36a3f98ffc8b1">oi_parseInt</a>(packet + 22);</div><div class="line"><a name="l00234"></a><span class="lineno">  234</span>&#160;    <span class="keyword">self</span>-&gt;batteryCapacity = <a class="code" href="open__interface_8c.html#a8c54153bd272749c1fc36a3f98ffc8b1">oi_parseInt</a>(packet + 24);</div><div class="line"><a name="l00235"></a><span class="lineno">  235</span>&#160;</div><div class="line"><a name="l00236"></a><span class="lineno">  236</span>&#160;    <span class="keyword">self</span>-&gt;wallSignal = <a class="code" href="open__interface_8c.html#a8c54153bd272749c1fc36a3f98ffc8b1">oi_parseInt</a>(packet + 26);</div><div class="line"><a name="l00237"></a><span class="lineno">  237</span>&#160;</div><div class="line"><a name="l00238"></a><span class="lineno">  238</span>&#160;    <span class="keyword">self</span>-&gt;cliffLeftSignal = <a class="code" href="open__interface_8c.html#a8c54153bd272749c1fc36a3f98ffc8b1">oi_parseInt</a>(packet + 28);</div><div class="line"><a name="l00239"></a><span class="lineno">  239</span>&#160;    <span class="keyword">self</span>-&gt;cliffFrontLeftSignal = <a class="code" href="open__interface_8c.html#a8c54153bd272749c1fc36a3f98ffc8b1">oi_parseInt</a>(packet + 30);</div><div class="line"><a name="l00240"></a><span class="lineno">  240</span>&#160;    <span class="keyword">self</span>-&gt;cliffFrontRightSignal = <a class="code" href="open__interface_8c.html#a8c54153bd272749c1fc36a3f98ffc8b1">oi_parseInt</a>(packet + 32);</div><div class="line"><a name="l00241"></a><span class="lineno">  241</span>&#160;    <span class="keyword">self</span>-&gt;cliffRightSignal = <a class="code" href="open__interface_8c.html#a8c54153bd272749c1fc36a3f98ffc8b1">oi_parseInt</a>(packet + 34);</div><div class="line"><a name="l00242"></a><span class="lineno">  242</span>&#160;</div><div class="line"><a name="l00243"></a><span class="lineno">  243</span>&#160;    <span class="comment">//Bytes 36-38 unused</span></div><div class="line"><a name="l00244"></a><span class="lineno">  244</span>&#160;</div><div class="line"><a name="l00245"></a><span class="lineno">  245</span>&#160;    <span class="keyword">self</span>-&gt;chargingSourcesAvailable = packet[39];</div><div class="line"><a name="l00246"></a><span class="lineno">  246</span>&#160;    <span class="keyword">self</span>-&gt;oiMode = packet[40];</div><div class="line"><a name="l00247"></a><span class="lineno">  247</span>&#160;</div><div class="line"><a name="l00248"></a><span class="lineno">  248</span>&#160;    <span class="keyword">self</span>-&gt;songNumber = packet[41];</div><div class="line"><a name="l00249"></a><span class="lineno">  249</span>&#160;    <span class="keyword">self</span>-&gt;songPlaying = packet[42];</div><div class="line"><a name="l00250"></a><span class="lineno">  250</span>&#160;</div><div class="line"><a name="l00251"></a><span class="lineno">  251</span>&#160;    <span class="keyword">self</span>-&gt;numberOfStreamPackets = packet[43];</div><div class="line"><a name="l00252"></a><span class="lineno">  252</span>&#160;</div><div class="line"><a name="l00253"></a><span class="lineno">  253</span>&#160;    <span class="keyword">self</span>-&gt;requestedVelocity = <a class="code" href="open__interface_8c.html#a8c54153bd272749c1fc36a3f98ffc8b1">oi_parseInt</a>(packet + 44);</div><div class="line"><a name="l00254"></a><span class="lineno">  254</span>&#160;    <span class="keyword">self</span>-&gt;requestedRadius = <a class="code" href="open__interface_8c.html#a8c54153bd272749c1fc36a3f98ffc8b1">oi_parseInt</a>(packet + 46);</div><div class="line"><a name="l00255"></a><span class="lineno">  255</span>&#160;    <span class="keyword">self</span>-&gt;requestedRightVelocity = <a class="code" href="open__interface_8c.html#a8c54153bd272749c1fc36a3f98ffc8b1">oi_parseInt</a>(packet + 48);</div><div class="line"><a name="l00256"></a><span class="lineno">  256</span>&#160;    <span class="keyword">self</span>-&gt;requestedLeftVelocity = <a class="code" href="open__interface_8c.html#a8c54153bd272749c1fc36a3f98ffc8b1">oi_parseInt</a>(packet + 50);</div><div class="line"><a name="l00257"></a><span class="lineno">  257</span>&#160;    <span class="keyword">self</span>-&gt;leftEncoderCount = <a class="code" href="open__interface_8c.html#a8c54153bd272749c1fc36a3f98ffc8b1">oi_parseInt</a>(packet + 52);</div><div class="line"><a name="l00258"></a><span class="lineno">  258</span>&#160;    <span class="keyword">self</span>-&gt;rightEncoderCount = <a class="code" href="open__interface_8c.html#a8c54153bd272749c1fc36a3f98ffc8b1">oi_parseInt</a>(packet + 54);</div><div class="line"><a name="l00259"></a><span class="lineno">  259</span>&#160;</div><div class="line"><a name="l00260"></a><span class="lineno">  260</span>&#160;    <span class="keyword">self</span>-&gt;lightBumperRight = !!(packet[56] &amp; 0x20);</div><div class="line"><a name="l00261"></a><span class="lineno">  261</span>&#160;    <span class="keyword">self</span>-&gt;lightBumperFrontRight = !!(packet[56] &amp; 0x10);</div><div class="line"><a name="l00262"></a><span class="lineno">  262</span>&#160;    <span class="keyword">self</span>-&gt;lightBumperCenterRight = !!(packet[56] &amp; 0x08);</div><div class="line"><a name="l00263"></a><span class="lineno">  263</span>&#160;    <span class="keyword">self</span>-&gt;lightBumperCenterLeft = !!(packet[56] &amp; 0x04);</div><div class="line"><a name="l00264"></a><span class="lineno">  264</span>&#160;    <span class="keyword">self</span>-&gt;lightBumperFrontLeft = !!(packet[56] &amp; 0x02);</div><div class="line"><a name="l00265"></a><span class="lineno">  265</span>&#160;    <span class="keyword">self</span>-&gt;lightBumperLeft = packet[56] &amp; 0x01;</div><div class="line"><a name="l00266"></a><span class="lineno">  266</span>&#160;</div><div class="line"><a name="l00267"></a><span class="lineno">  267</span>&#160;    <span class="keyword">self</span>-&gt;lightBumpLeftSignal = <a class="code" href="open__interface_8c.html#a8c54153bd272749c1fc36a3f98ffc8b1">oi_parseInt</a>(packet + 57);</div><div class="line"><a name="l00268"></a><span class="lineno">  268</span>&#160;    <span class="keyword">self</span>-&gt;lightBumpFrontLeftSignal = <a class="code" href="open__interface_8c.html#a8c54153bd272749c1fc36a3f98ffc8b1">oi_parseInt</a>(packet + 59);</div><div class="line"><a name="l00269"></a><span class="lineno">  269</span>&#160;    <span class="keyword">self</span>-&gt;lightBumpCenterLeftSignal = <a class="code" href="open__interface_8c.html#a8c54153bd272749c1fc36a3f98ffc8b1">oi_parseInt</a>(packet + 61);</div><div class="line"><a name="l00270"></a><span class="lineno">  270</span>&#160;    <span class="keyword">self</span>-&gt;lightBumpCenterRightSignal = <a class="code" href="open__interface_8c.html#a8c54153bd272749c1fc36a3f98ffc8b1">oi_parseInt</a>(packet + 63);</div><div class="line"><a name="l00271"></a><span class="lineno">  271</span>&#160;    <span class="keyword">self</span>-&gt;lightBumpFrontRightSignal = <a class="code" href="open__interface_8c.html#a8c54153bd272749c1fc36a3f98ffc8b1">oi_parseInt</a>(packet + 65);</div><div class="line"><a name="l00272"></a><span class="lineno">  272</span>&#160;    <span class="keyword">self</span>-&gt;lightBumpRightSignal = <a class="code" href="open__interface_8c.html#a8c54153bd272749c1fc36a3f98ffc8b1">oi_parseInt</a>(packet + 67);</div><div class="line"><a name="l00273"></a><span class="lineno">  273</span>&#160;</div><div class="line"><a name="l00274"></a><span class="lineno">  274</span>&#160;    <span class="keyword">self</span>-&gt;infraredCharLeft = packet[69];</div><div class="line"><a name="l00275"></a><span class="lineno">  275</span>&#160;    <span class="keyword">self</span>-&gt;infraredCharRight = packet[70];</div><div class="line"><a name="l00276"></a><span class="lineno">  276</span>&#160;</div><div class="line"><a name="l00277"></a><span class="lineno">  277</span>&#160;    <span class="keyword">self</span>-&gt;leftMotorCurrent = <a class="code" href="open__interface_8c.html#a8c54153bd272749c1fc36a3f98ffc8b1">oi_parseInt</a>(packet + 71);</div><div class="line"><a name="l00278"></a><span class="lineno">  278</span>&#160;    <span class="keyword">self</span>-&gt;rightMotorCurrent = <a class="code" href="open__interface_8c.html#a8c54153bd272749c1fc36a3f98ffc8b1">oi_parseInt</a>(packet + 73);</div><div class="line"><a name="l00279"></a><span class="lineno">  279</span>&#160;    <span class="keyword">self</span>-&gt;mainBrushMotorCurrent = <a class="code" href="open__interface_8c.html#a8c54153bd272749c1fc36a3f98ffc8b1">oi_parseInt</a>(packet + 75);</div><div class="line"><a name="l00280"></a><span class="lineno">  280</span>&#160;    <span class="keyword">self</span>-&gt;sideBrushMotorCurrent = <a class="code" href="open__interface_8c.html#a8c54153bd272749c1fc36a3f98ffc8b1">oi_parseInt</a>(packet + 77);</div><div class="line"><a name="l00281"></a><span class="lineno">  281</span>&#160;</div><div class="line"><a name="l00282"></a><span class="lineno">  282</span>&#160;    <span class="keyword">self</span>-&gt;stasis = packet[79];</div><div class="line"><a name="l00283"></a><span class="lineno">  283</span>&#160;</div><div class="line"><a name="l00284"></a><span class="lineno">  284</span>&#160;    <span class="keyword">self</span>-&gt;angle = <a class="code" href="open__interface_8c.html#a22afee5afdd7d60bc1bd9d58a428e4b7">getDegrees</a>(<span class="keyword">self</span>);</div><div class="line"><a name="l00285"></a><span class="lineno">  285</span>&#160;}</div><div class="line"><a name="l00286"></a><span class="lineno">  286</span>&#160;</div><div class="line"><a name="l00287"></a><span class="lineno"><a class="line" href="open__interface_8c.html#a8c54153bd272749c1fc36a3f98ffc8b1">  287</a></span>&#160;<span class="keyword">inline</span> int16_t <a class="code" href="open__interface_8c.html#a8c54153bd272749c1fc36a3f98ffc8b1">oi_parseInt</a>(uint8_t* theInt)</div><div class="line"><a name="l00288"></a><span class="lineno">  288</span>&#160;{</div><div class="line"><a name="l00289"></a><span class="lineno">  289</span>&#160;    <span class="keywordflow">return</span> (theInt[0] &lt;&lt; 8) | theInt[1];</div><div class="line"><a name="l00290"></a><span class="lineno">  290</span>&#160;}</div><div class="line"><a name="l00291"></a><span class="lineno">  291</span>&#160;</div><div class="line"><a name="l00297"></a><span class="lineno"><a class="line" href="open__interface_8h.html#a9ce8d6194cf8cb1d39104b641cb5254d">  297</a></span>&#160;<span class="keywordtype">void</span> <a class="code" href="open__interface_8c.html#a9ce8d6194cf8cb1d39104b641cb5254d">oi_setLeds</a>(uint8_t play_led, uint8_t advance_led, uint8_t power_color,</div><div class="line"><a name="l00298"></a><span class="lineno">  298</span>&#160;                uint8_t power_intensity)</div><div class="line"><a name="l00299"></a><span class="lineno">  299</span>&#160;{</div><div class="line"><a name="l00300"></a><span class="lineno">  300</span>&#160;    <span class="comment">// LED Opcode</span></div><div class="line"><a name="l00301"></a><span class="lineno">  301</span>&#160;    <a class="code" href="open__interface_8c.html#aced7535453b0c0e29af698308d0498d4">oi_uartSendChar</a>(OI_OPCODE_LEDS);</div><div class="line"><a name="l00302"></a><span class="lineno">  302</span>&#160;</div><div class="line"><a name="l00303"></a><span class="lineno">  303</span>&#160;    <span class="comment">// Set the Play and Advance LEDs</span></div><div class="line"><a name="l00304"></a><span class="lineno">  304</span>&#160;    <a class="code" href="open__interface_8c.html#aced7535453b0c0e29af698308d0498d4">oi_uartSendChar</a>(advance_led &lt;&lt; 3 &amp;&amp; play_led &lt;&lt; 2);</div><div class="line"><a name="l00305"></a><span class="lineno">  305</span>&#160;</div><div class="line"><a name="l00306"></a><span class="lineno">  306</span>&#160;    <span class="comment">// Set the power led color</span></div><div class="line"><a name="l00307"></a><span class="lineno">  307</span>&#160;    <a class="code" href="open__interface_8c.html#aced7535453b0c0e29af698308d0498d4">oi_uartSendChar</a>(power_color);</div><div class="line"><a name="l00308"></a><span class="lineno">  308</span>&#160;</div><div class="line"><a name="l00309"></a><span class="lineno">  309</span>&#160;    <span class="comment">// Set the power led intensity</span></div><div class="line"><a name="l00310"></a><span class="lineno">  310</span>&#160;    <a class="code" href="open__interface_8c.html#aced7535453b0c0e29af698308d0498d4">oi_uartSendChar</a>(power_intensity);</div><div class="line"><a name="l00311"></a><span class="lineno">  311</span>&#160;}</div><div class="line"><a name="l00312"></a><span class="lineno">  312</span>&#160;</div><div class="line"><a name="l00316"></a><span class="lineno"><a class="line" href="open__interface_8h.html#a49949f029cc5f84ad903aa7022f4e5e0">  316</a></span>&#160;<span class="keywordtype">void</span> <a class="code" href="open__interface_8c.html#a49949f029cc5f84ad903aa7022f4e5e0">oi_setWheels</a>(int16_t right_wheel, int16_t left_wheel)</div><div class="line"><a name="l00317"></a><span class="lineno">  317</span>&#160;{</div><div class="line"><a name="l00318"></a><span class="lineno">  318</span>&#160;    <a class="code" href="open__interface_8c.html#aced7535453b0c0e29af698308d0498d4">oi_uartSendChar</a>(OI_OPCODE_DRIVE_WHEELS);</div><div class="line"><a name="l00319"></a><span class="lineno">  319</span>&#160;    <a class="code" href="open__interface_8c.html#aced7535453b0c0e29af698308d0498d4">oi_uartSendChar</a>(right_wheel &gt;&gt; 8);</div><div class="line"><a name="l00320"></a><span class="lineno">  320</span>&#160;    <a class="code" href="open__interface_8c.html#aced7535453b0c0e29af698308d0498d4">oi_uartSendChar</a>(right_wheel &amp; 0xff);</div><div class="line"><a name="l00321"></a><span class="lineno">  321</span>&#160;    <a class="code" href="open__interface_8c.html#aced7535453b0c0e29af698308d0498d4">oi_uartSendChar</a>(left_wheel &gt;&gt; 8);</div><div class="line"><a name="l00322"></a><span class="lineno">  322</span>&#160;    <a class="code" href="open__interface_8c.html#aced7535453b0c0e29af698308d0498d4">oi_uartSendChar</a>(left_wheel &amp; 0xff);</div><div class="line"><a name="l00323"></a><span class="lineno">  323</span>&#160;}</div><div class="line"><a name="l00324"></a><span class="lineno">  324</span>&#160;</div><div class="line"><a name="l00330"></a><span class="lineno"><a class="line" href="open__interface_8h.html#ad945411d8b234cf7c50488a8d9388ff5">  330</a></span>&#160;<span class="keywordtype">void</span> <a class="code" href="open__interface_8c.html#ad945411d8b234cf7c50488a8d9388ff5">oi_loadSong</a>(<span class="keywordtype">int</span> song_index, <span class="keywordtype">int</span> num_notes, <span class="keywordtype">unsigned</span> <span class="keywordtype">char</span> *notes,</div><div class="line"><a name="l00331"></a><span class="lineno">  331</span>&#160;                 <span class="keywordtype">unsigned</span> <span class="keywordtype">char</span> *duration)</div><div class="line"><a name="l00332"></a><span class="lineno">  332</span>&#160;{</div><div class="line"><a name="l00333"></a><span class="lineno">  333</span>&#160;    <span class="keywordtype">int</span> i;</div><div class="line"><a name="l00334"></a><span class="lineno">  334</span>&#160;    <a class="code" href="open__interface_8c.html#aced7535453b0c0e29af698308d0498d4">oi_uartSendChar</a>(OI_OPCODE_SONG);</div><div class="line"><a name="l00335"></a><span class="lineno">  335</span>&#160;    <a class="code" href="open__interface_8c.html#aced7535453b0c0e29af698308d0498d4">oi_uartSendChar</a>(song_index);</div><div class="line"><a name="l00336"></a><span class="lineno">  336</span>&#160;    <a class="code" href="open__interface_8c.html#aced7535453b0c0e29af698308d0498d4">oi_uartSendChar</a>(num_notes);</div><div class="line"><a name="l00337"></a><span class="lineno">  337</span>&#160;    <span class="keywordflow">for</span> (i = 0; i &lt; num_notes; i++)</div><div class="line"><a name="l00338"></a><span class="lineno">  338</span>&#160;    {</div><div class="line"><a name="l00339"></a><span class="lineno">  339</span>&#160;        <a class="code" href="open__interface_8c.html#aced7535453b0c0e29af698308d0498d4">oi_uartSendChar</a>(notes[i]);</div><div class="line"><a name="l00340"></a><span class="lineno">  340</span>&#160;        <a class="code" href="open__interface_8c.html#aced7535453b0c0e29af698308d0498d4">oi_uartSendChar</a>(duration[i]);</div><div class="line"><a name="l00341"></a><span class="lineno">  341</span>&#160;    }</div><div class="line"><a name="l00342"></a><span class="lineno">  342</span>&#160;}</div><div class="line"><a name="l00343"></a><span class="lineno">  343</span>&#160;</div><div class="line"><a name="l00345"></a><span class="lineno"><a class="line" href="open__interface_8h.html#a353765c4297939ef0390a47ca869af56">  345</a></span>&#160;<span class="keywordtype">void</span> <a class="code" href="open__interface_8c.html#a353765c4297939ef0390a47ca869af56">oi_play_song</a>(<span class="keywordtype">int</span> index)</div><div class="line"><a name="l00346"></a><span class="lineno">  346</span>&#160;{</div><div class="line"><a name="l00347"></a><span class="lineno">  347</span>&#160;    <a class="code" href="open__interface_8c.html#aced7535453b0c0e29af698308d0498d4">oi_uartSendChar</a>(OI_OPCODE_PLAY);</div><div class="line"><a name="l00348"></a><span class="lineno">  348</span>&#160;    <a class="code" href="open__interface_8c.html#aced7535453b0c0e29af698308d0498d4">oi_uartSendChar</a>(index);</div><div class="line"><a name="l00349"></a><span class="lineno">  349</span>&#160;}</div><div class="line"><a name="l00350"></a><span class="lineno">  350</span>&#160;</div><div class="line"><a name="l00352"></a><span class="lineno"><a class="line" href="open__interface_8h.html#a6c701c5d6642b0f7128b03542a09ed76">  352</a></span>&#160;<span class="keywordtype">void</span> <a class="code" href="open__interface_8c.html#a6c701c5d6642b0f7128b03542a09ed76">go_charge</a>(<span class="keywordtype">void</span>)</div><div class="line"><a name="l00353"></a><span class="lineno">  353</span>&#160;{</div><div class="line"><a name="l00354"></a><span class="lineno">  354</span>&#160;    <span class="comment">//char charging_state=0;</span></div><div class="line"><a name="l00355"></a><span class="lineno">  355</span>&#160;</div><div class="line"><a name="l00356"></a><span class="lineno">  356</span>&#160;    <span class="comment">/*  //Calling demo that will cause Create to seek out home base</span></div><div class="line"><a name="l00357"></a><span class="lineno">  357</span>&#160;<span class="comment">     oi_uartSendChar(OI_OPCODE_MAX);</span></div><div class="line"><a name="l00358"></a><span class="lineno">  358</span>&#160;<span class="comment">     oi_uartSendChar(0x01);</span></div><div class="line"><a name="l00359"></a><span class="lineno">  359</span>&#160;<span class="comment"></span></div><div class="line"><a name="l00360"></a><span class="lineno">  360</span>&#160;<span class="comment">     //Control is returned immediately, so need to check for docking status</span></div><div class="line"><a name="l00361"></a><span class="lineno">  361</span>&#160;<span class="comment">     DDRB &amp;= ~0x80; //Setting pin7 to input</span></div><div class="line"><a name="l00362"></a><span class="lineno">  362</span>&#160;<span class="comment">     PORTB |= 0x80; //Setting pullup on pin7</span></div><div class="line"><a name="l00363"></a><span class="lineno">  363</span>&#160;<span class="comment"></span></div><div class="line"><a name="l00364"></a><span class="lineno">  364</span>&#160;<span class="comment">     do {</span></div><div class="line"><a name="l00365"></a><span class="lineno">  365</span>&#160;<span class="comment">     charging_state = PINB &gt;&gt; 7;</span></div><div class="line"><a name="l00366"></a><span class="lineno">  366</span>&#160;<span class="comment">     } while (charging_state == 0);</span></div><div class="line"><a name="l00367"></a><span class="lineno">  367</span>&#160;<span class="comment">     */</span></div><div class="line"><a name="l00368"></a><span class="lineno">  368</span>&#160;}</div><div class="line"><a name="l00369"></a><span class="lineno">  369</span>&#160;</div><div class="line"><a name="l00372"></a><span class="lineno"><a class="line" href="open__interface_8c.html#ad9923d0a228d340572e71997ddf32df9">  372</a></span>&#160;<span class="keywordtype">void</span> <a class="code" href="open__interface_8c.html#ad9923d0a228d340572e71997ddf32df9">oi_uartInit</a>(<span class="keywordtype">void</span>)</div><div class="line"><a name="l00373"></a><span class="lineno">  373</span>&#160;{</div><div class="line"><a name="l00374"></a><span class="lineno">  374</span>&#160;    <span class="comment">//Calculated Baudrate for 115200;</span></div><div class="line"><a name="l00375"></a><span class="lineno">  375</span>&#160;    uint16_t iBRD = 0x08; <span class="comment">//BRD=SYSCLK/((ClkDiv)(BaudRate)), HSE=0 ClkDiv=16, BaudRate=115,200</span></div><div class="line"><a name="l00376"></a><span class="lineno">  376</span>&#160;    uint16_t fBRD = 44; <span class="comment">//Fractional remainder is 0.6805, DIVFRAC = (.6805)(64)+0.5 = 44</span></div><div class="line"><a name="l00377"></a><span class="lineno">  377</span>&#160;</div><div class="line"><a name="l00378"></a><span class="lineno">  378</span>&#160;    SYSCTL_RCGCGPIO_R |= SYSCTL_RCGCGPIO_R2; <span class="comment">//enable GPIO Port C</span></div><div class="line"><a name="l00379"></a><span class="lineno">  379</span>&#160;</div><div class="line"><a name="l00380"></a><span class="lineno">  380</span>&#160;    SYSCTL_RCGCUART_R |= SYSCTL_RCGCUART_R4; <span class="comment">//enable UART4</span></div><div class="line"><a name="l00381"></a><span class="lineno">  381</span>&#160;</div><div class="line"><a name="l00382"></a><span class="lineno">  382</span>&#160;    GPIO_PORTC_AFSEL_R |= (BIT4 | BIT5); <span class="comment">//Enable alternate function on PC6,PC7</span></div><div class="line"><a name="l00383"></a><span class="lineno">  383</span>&#160;    GPIO_PORTC_PCTL_R |= 0x00110000; <span class="comment">//Enable function 1 (UART Rx/Tx) on PC4,PC5</span></div><div class="line"><a name="l00384"></a><span class="lineno">  384</span>&#160;    GPIO_PORTC_DEN_R |= (BIT4 | BIT5); <span class="comment">//Enable PC4,5 data</span></div><div class="line"><a name="l00385"></a><span class="lineno">  385</span>&#160;    GPIO_PORTC_DIR_R |= BIT5; <span class="comment">//Set pin direction to output on PC5</span></div><div class="line"><a name="l00386"></a><span class="lineno">  386</span>&#160;    GPIO_PORTC_DIR_R &amp;= ~BIT4; <span class="comment">//Set pin direction to input on PC4</span></div><div class="line"><a name="l00387"></a><span class="lineno">  387</span>&#160;</div><div class="line"><a name="l00388"></a><span class="lineno">  388</span>&#160;    UART4_CTL_R &amp;= ~(UART_CTL_UARTEN); <span class="comment">//Disable UART4 while we mess with it</span></div><div class="line"><a name="l00389"></a><span class="lineno">  389</span>&#160;</div><div class="line"><a name="l00390"></a><span class="lineno">  390</span>&#160;    UART4_IBRD_R = iBRD;</div><div class="line"><a name="l00391"></a><span class="lineno">  391</span>&#160;    UART4_FBRD_R = fBRD;</div><div class="line"><a name="l00392"></a><span class="lineno">  392</span>&#160;</div><div class="line"><a name="l00393"></a><span class="lineno">  393</span>&#160;    UART4_LCRH_R = UART_LCRH_WLEN_8; <span class="comment">//8 bit, 1 stop, no parity, no FIFO</span></div><div class="line"><a name="l00394"></a><span class="lineno">  394</span>&#160;    UART4_CC_R = UART_CC_CS_SYSCLK; <span class="comment">//Use System Clock</span></div><div class="line"><a name="l00395"></a><span class="lineno">  395</span>&#160;    UART4_CTL_R = UART_CTL_RXE | UART_CTL_TXE | UART_CTL_UARTEN; <span class="comment">//Enable Rx, Tx and UART module</span></div><div class="line"><a name="l00396"></a><span class="lineno">  396</span>&#160;}</div><div class="line"><a name="l00397"></a><span class="lineno">  397</span>&#160;</div><div class="line"><a name="l00400"></a><span class="lineno"><a class="line" href="open__interface_8c.html#aced7535453b0c0e29af698308d0498d4">  400</a></span>&#160;<span class="keywordtype">void</span> <a class="code" href="open__interface_8c.html#aced7535453b0c0e29af698308d0498d4">oi_uartSendChar</a>(<span class="keywordtype">char</span> <a class="code" href="main_8c.html#a91a70b77df95bd8b0830b49a094c2acb">data</a>)</div><div class="line"><a name="l00401"></a><span class="lineno">  401</span>&#160;{</div><div class="line"><a name="l00402"></a><span class="lineno">  402</span>&#160;    <span class="keywordflow">while</span> ((UART4_FR_R &amp; UART_FR_TXFF) != 0)</div><div class="line"><a name="l00403"></a><span class="lineno">  403</span>&#160;        ; <span class="comment">//holds until no data in transmit buffer</span></div><div class="line"><a name="l00404"></a><span class="lineno">  404</span>&#160;</div><div class="line"><a name="l00405"></a><span class="lineno">  405</span>&#160;    UART4_DR_R = <a class="code" href="main_8c.html#a91a70b77df95bd8b0830b49a094c2acb">data</a>; <span class="comment">//puts data in transmission buffer</span></div><div class="line"><a name="l00406"></a><span class="lineno">  406</span>&#160;</div><div class="line"><a name="l00407"></a><span class="lineno">  407</span>&#160;    <span class="comment">//For debugging</span></div><div class="line"><a name="l00408"></a><span class="lineno">  408</span>&#160;    <span class="comment">//timer_waitMicros(1000);</span></div><div class="line"><a name="l00409"></a><span class="lineno">  409</span>&#160;}</div><div class="line"><a name="l00410"></a><span class="lineno">  410</span>&#160;</div><div class="line"><a name="l00411"></a><span class="lineno"><a class="line" href="open__interface_8c.html#a5e7e1773c5782c2be5f333f733aab29f">  411</a></span>&#160;<span class="keywordtype">char</span> <a class="code" href="open__interface_8c.html#a5e7e1773c5782c2be5f333f733aab29f">oi_uartReceive</a>(<span class="keywordtype">void</span>)</div><div class="line"><a name="l00412"></a><span class="lineno">  412</span>&#160;{</div><div class="line"><a name="l00413"></a><span class="lineno">  413</span>&#160;    <span class="keyword">static</span> <span class="keywordtype">int</span> count = 0;</div><div class="line"><a name="l00414"></a><span class="lineno">  414</span>&#160;    <span class="comment">//uint32_t tempData; //used for error checking</span></div><div class="line"><a name="l00415"></a><span class="lineno">  415</span>&#160;    <span class="keywordtype">char</span> <a class="code" href="main_8c.html#a91a70b77df95bd8b0830b49a094c2acb">data</a>;</div><div class="line"><a name="l00416"></a><span class="lineno">  416</span>&#160;</div><div class="line"><a name="l00417"></a><span class="lineno">  417</span>&#160;    <span class="keywordflow">while</span> ((UART4_FR_R &amp; UART_FR_RXFE))</div><div class="line"><a name="l00418"></a><span class="lineno">  418</span>&#160;        ; <span class="comment">//wait here until data is recieved</span></div><div class="line"><a name="l00419"></a><span class="lineno">  419</span>&#160;</div><div class="line"><a name="l00420"></a><span class="lineno">  420</span>&#160;    <a class="code" href="main_8c.html#a91a70b77df95bd8b0830b49a094c2acb">data</a> = (char) (UART4_DR_R &amp; 0xFF);</div><div class="line"><a name="l00421"></a><span class="lineno">  421</span>&#160;</div><div class="line"><a name="l00422"></a><span class="lineno">  422</span>&#160;    count++;</div><div class="line"><a name="l00423"></a><span class="lineno">  423</span>&#160;</div><div class="line"><a name="l00424"></a><span class="lineno">  424</span>&#160;    <span class="comment">//ToDo: Implement error checking</span></div><div class="line"><a name="l00425"></a><span class="lineno">  425</span>&#160;    <span class="keywordflow">return</span> <a class="code" href="main_8c.html#a91a70b77df95bd8b0830b49a094c2acb">data</a>;</div><div class="line"><a name="l00426"></a><span class="lineno">  426</span>&#160;}</div><div class="line"><a name="l00427"></a><span class="lineno">  427</span>&#160;</div><div class="line"><a name="l00429"></a><span class="lineno"><a class="line" href="open__interface_8c.html#a5eb8e6923f80c6f02cccbb79535cfa7f">  429</a></span>&#160;<span class="keywordtype">void</span> <a class="code" href="open__interface_8c.html#a5eb8e6923f80c6f02cccbb79535cfa7f">oi_uartSendStr</a>(<span class="keyword">const</span> <span class="keywordtype">char</span> *theData)</div><div class="line"><a name="l00430"></a><span class="lineno">  430</span>&#160;{</div><div class="line"><a name="l00431"></a><span class="lineno">  431</span>&#160;    <span class="keywordflow">while</span> (*theData != <span class="charliteral">&#39;\0&#39;</span>)</div><div class="line"><a name="l00432"></a><span class="lineno">  432</span>&#160;    {</div><div class="line"><a name="l00433"></a><span class="lineno">  433</span>&#160;        <a class="code" href="open__interface_8c.html#aced7535453b0c0e29af698308d0498d4">oi_uartSendChar</a>(*theData);</div><div class="line"><a name="l00434"></a><span class="lineno">  434</span>&#160;        theData++;</div><div class="line"><a name="l00435"></a><span class="lineno">  435</span>&#160;    }</div><div class="line"><a name="l00436"></a><span class="lineno">  436</span>&#160;</div><div class="line"><a name="l00437"></a><span class="lineno">  437</span>&#160;}</div><div class="line"><a name="l00438"></a><span class="lineno">  438</span>&#160;</div><div class="line"><a name="l00439"></a><span class="lineno"><a class="line" href="open__interface_8c.html#afcbad4c0a94458d1ba7ff11dac9ff42b">  439</a></span>&#160;<span class="keywordtype">void</span> <a class="code" href="open__interface_8c.html#afcbad4c0a94458d1ba7ff11dac9ff42b">oi_uartSendBuff</a>(<span class="keyword">const</span> uint8_t theData[], uint8_t theSize)</div><div class="line"><a name="l00440"></a><span class="lineno">  440</span>&#160;{</div><div class="line"><a name="l00441"></a><span class="lineno">  441</span>&#160;    <span class="keywordtype">int</span> i;</div><div class="line"><a name="l00442"></a><span class="lineno">  442</span>&#160;</div><div class="line"><a name="l00443"></a><span class="lineno">  443</span>&#160;    <span class="keywordflow">for</span> (i = 0; i &lt; theSize; i++)</div><div class="line"><a name="l00444"></a><span class="lineno">  444</span>&#160;    {</div><div class="line"><a name="l00445"></a><span class="lineno">  445</span>&#160;        <a class="code" href="open__interface_8c.html#aced7535453b0c0e29af698308d0498d4">oi_uartSendChar</a>(theData[i]);</div><div class="line"><a name="l00446"></a><span class="lineno">  446</span>&#160;    }</div><div class="line"><a name="l00447"></a><span class="lineno">  447</span>&#160;}</div><div class="line"><a name="l00448"></a><span class="lineno">  448</span>&#160;</div><div class="line"><a name="l00449"></a><span class="lineno">  449</span>&#160;<span class="keywordtype">char</span>* oi_checkFirmware()</div><div class="line"><a name="l00450"></a><span class="lineno">  450</span>&#160;{</div><div class="line"><a name="l00451"></a><span class="lineno">  451</span>&#160;    <span class="keyword">const</span> <span class="keywordtype">char</span> FIRM_STR[] = <span class="stringliteral">&quot;r3_robot/tags/&quot;</span>;</div><div class="line"><a name="l00452"></a><span class="lineno">  452</span>&#160;    <span class="keyword">const</span> <span class="keywordtype">char</span> FIRM_END = <span class="charliteral">&#39;:&#39;</span>;</div><div class="line"><a name="l00453"></a><span class="lineno">  453</span>&#160;    <span class="keyword">const</span> uint8_t FIRM_STRLEN = 14;</div><div class="line"><a name="l00454"></a><span class="lineno">  454</span>&#160;</div><div class="line"><a name="l00455"></a><span class="lineno">  455</span>&#160;    <span class="keyword">static</span> <span class="keywordtype">char</span> firmware[21];</div><div class="line"><a name="l00456"></a><span class="lineno">  456</span>&#160;</div><div class="line"><a name="l00457"></a><span class="lineno">  457</span>&#160;    <span class="keywordtype">char</span> <a class="code" href="uart_8h.html#aff2566f4c366b48d73479bef43ee4d2e">buffer</a>[512];</div><div class="line"><a name="l00458"></a><span class="lineno">  458</span>&#160;    uint16_t ptr;</div><div class="line"><a name="l00459"></a><span class="lineno">  459</span>&#160;</div><div class="line"><a name="l00460"></a><span class="lineno">  460</span>&#160;    <span class="comment">//Reset the iRobot</span></div><div class="line"><a name="l00461"></a><span class="lineno">  461</span>&#160;    <a class="code" href="open__interface_8c.html#aced7535453b0c0e29af698308d0498d4">oi_uartSendChar</a>(OI_OPCODE_RESET);</div><div class="line"><a name="l00462"></a><span class="lineno">  462</span>&#160;</div><div class="line"><a name="l00463"></a><span class="lineno">  463</span>&#160;    <span class="keywordtype">char</span> c;</div><div class="line"><a name="l00464"></a><span class="lineno">  464</span>&#160;    <span class="keywordflow">while</span> ((c = <a class="code" href="open__interface_8c.html#a5e7e1773c5782c2be5f333f733aab29f">oi_uartReceive</a>()) || 1)</div><div class="line"><a name="l00465"></a><span class="lineno">  465</span>&#160;    {</div><div class="line"><a name="l00466"></a><span class="lineno">  466</span>&#160;        <a class="code" href="uart_8h.html#aff2566f4c366b48d73479bef43ee4d2e">buffer</a>[ptr++] = c;</div><div class="line"><a name="l00467"></a><span class="lineno">  467</span>&#160;</div><div class="line"><a name="l00468"></a><span class="lineno">  468</span>&#160;        <span class="comment">//Do a string compare</span></div><div class="line"><a name="l00469"></a><span class="lineno">  469</span>&#160;        <a class="code" href="uart_8h.html#aff2566f4c366b48d73479bef43ee4d2e">buffer</a>[ptr] = <span class="charliteral">&#39;\0&#39;</span>;</div><div class="line"><a name="l00470"></a><span class="lineno">  470</span>&#160;        <span class="keywordflow">if</span> (ptr &gt;= FIRM_STRLEN &amp;&amp; !strcmp(<a class="code" href="uart_8h.html#aff2566f4c366b48d73479bef43ee4d2e">buffer</a> + ptr - FIRM_STRLEN, FIRM_STR))</div><div class="line"><a name="l00471"></a><span class="lineno">  471</span>&#160;        {</div><div class="line"><a name="l00472"></a><span class="lineno">  472</span>&#160;            ptr = 0;</div><div class="line"><a name="l00473"></a><span class="lineno">  473</span>&#160;            <span class="comment">//Firmware version incoming</span></div><div class="line"><a name="l00474"></a><span class="lineno">  474</span>&#160;            <span class="keywordflow">while</span> ((c = <a class="code" href="open__interface_8c.html#a5e7e1773c5782c2be5f333f733aab29f">oi_uartReceive</a>()) != FIRM_END)</div><div class="line"><a name="l00475"></a><span class="lineno">  475</span>&#160;            {</div><div class="line"><a name="l00476"></a><span class="lineno">  476</span>&#160;                firmware[ptr++] = c;</div><div class="line"><a name="l00477"></a><span class="lineno">  477</span>&#160;            }</div><div class="line"><a name="l00478"></a><span class="lineno">  478</span>&#160;</div><div class="line"><a name="l00479"></a><span class="lineno">  479</span>&#160;            <span class="keywordflow">break</span>;</div><div class="line"><a name="l00480"></a><span class="lineno">  480</span>&#160;        }</div><div class="line"><a name="l00481"></a><span class="lineno">  481</span>&#160;    }</div><div class="line"><a name="l00482"></a><span class="lineno">  482</span>&#160;</div><div class="line"><a name="l00483"></a><span class="lineno">  483</span>&#160;    firmware[ptr] = <span class="charliteral">&#39;\0&#39;</span>;</div><div class="line"><a name="l00484"></a><span class="lineno">  484</span>&#160;</div><div class="line"><a name="l00485"></a><span class="lineno">  485</span>&#160;    <span class="keywordflow">return</span> firmware;</div><div class="line"><a name="l00486"></a><span class="lineno">  486</span>&#160;}</div><div class="line"><a name="l00487"></a><span class="lineno">  487</span>&#160;</div><div class="line"><a name="l00489"></a><span class="lineno"><a class="line" href="open__interface_8h.html#a1bca24fa8dd6fb148a6ec99ffbe2f29d">  489</a></span>&#160;<span class="keywordtype">void</span> <a class="code" href="open__interface_8c.html#a1bca24fa8dd6fb148a6ec99ffbe2f29d">oi_shutoff_init</a>(<span class="keywordtype">void</span>)</div><div class="line"><a name="l00490"></a><span class="lineno">  490</span>&#160;{</div><div class="line"><a name="l00491"></a><span class="lineno">  491</span>&#160;    <span class="comment">//PF0 user switch - OI shut down</span></div><div class="line"><a name="l00492"></a><span class="lineno">  492</span>&#160;    SYSCTL_RCGCGPIO_R |= SYSCTL_RCGCGPIO_R5; <span class="comment">//enable clock to GPIO F</span></div><div class="line"><a name="l00493"></a><span class="lineno">  493</span>&#160;    GPIO_PORTF_LOCK_R = 0x4C4F434B; <span class="comment">//unlock PF0</span></div><div class="line"><a name="l00494"></a><span class="lineno">  494</span>&#160;    GPIO_PORTF_CR_R |= 0x01; <span class="comment">//allow writes PF0 DEN to be commited</span></div><div class="line"><a name="l00495"></a><span class="lineno">  495</span>&#160;    GPIO_PORTF_DEN_R |= BIT0; <span class="comment">//enable digital on pin 0</span></div><div class="line"><a name="l00496"></a><span class="lineno">  496</span>&#160;    GPIO_PORTF_DIR_R |= ~BIT0; <span class="comment">//set pin 0 to input</span></div><div class="line"><a name="l00497"></a><span class="lineno">  497</span>&#160;    GPIO_PORTF_IBE_R |= BIT0; <span class="comment">//both edges can trigger</span></div><div class="line"><a name="l00498"></a><span class="lineno">  498</span>&#160;    GPIO_PORTF_IEV_R |= BIT0; <span class="comment">//enable rising edge trigger</span></div><div class="line"><a name="l00499"></a><span class="lineno">  499</span>&#160;    GPIO_PORTF_ICR_R |= BIT0; <span class="comment">//clear interrupt if there is already one</span></div><div class="line"><a name="l00500"></a><span class="lineno">  500</span>&#160;    GPIO_PORTF_IM_R |= BIT0; <span class="comment">//unmask interrupt</span></div><div class="line"><a name="l00501"></a><span class="lineno">  501</span>&#160;</div><div class="line"><a name="l00502"></a><span class="lineno">  502</span>&#160;    NVIC_EN0_R |= 0x40000000; <span class="comment">//enable IRQ by setting bit 30</span></div><div class="line"><a name="l00503"></a><span class="lineno">  503</span>&#160;    IntRegister(INT_GPIOF, GPIOF_Handler); <span class="comment">//tell cpu to use ISR handler for GPIOF</span></div><div class="line"><a name="l00504"></a><span class="lineno">  504</span>&#160;    IntMasterEnable(); <span class="comment">//enable global interrupts</span></div><div class="line"><a name="l00505"></a><span class="lineno">  505</span>&#160;}</div><div class="line"><a name="l00506"></a><span class="lineno">  506</span>&#160;</div><div class="line"><a name="l00507"></a><span class="lineno">  507</span>&#160;<span class="keywordtype">void</span> GPIOF_Handler(<span class="keywordtype">void</span>)</div><div class="line"><a name="l00508"></a><span class="lineno">  508</span>&#160;{</div><div class="line"><a name="l00509"></a><span class="lineno">  509</span>&#160;    <span class="keywordflow">if</span> (GPIO_PORTF_RIS_R &amp; BIT0)</div><div class="line"><a name="l00510"></a><span class="lineno">  510</span>&#160;    {</div><div class="line"><a name="l00511"></a><span class="lineno">  511</span>&#160;        <span class="comment">//shutoff button was pressed, turn off OI</span></div><div class="line"><a name="l00512"></a><span class="lineno">  512</span>&#160;        oi_close();</div><div class="line"><a name="l00513"></a><span class="lineno">  513</span>&#160;</div><div class="line"><a name="l00514"></a><span class="lineno">  514</span>&#160;        GPIO_PORTF_ICR_R |= BIT0; <span class="comment">//clear interrupt</span></div><div class="line"><a name="l00515"></a><span class="lineno">  515</span>&#160;    }</div><div class="line"><a name="l00516"></a><span class="lineno">  516</span>&#160;}</div><div class="line"><a name="l00517"></a><span class="lineno">  517</span>&#160;</div><div class="line"><a name="l00522"></a><span class="lineno"><a class="line" href="open__interface_8h.html#a22afee5afdd7d60bc1bd9d58a428e4b7">  522</a></span>&#160;<span class="keywordtype">float</span> <a class="code" href="open__interface_8c.html#a22afee5afdd7d60bc1bd9d58a428e4b7">getDegrees</a>(<a class="code" href="structoi__t.html">oi_t</a> *<span class="keyword">self</span>)</div><div class="line"><a name="l00523"></a><span class="lineno">  523</span>&#160;{</div><div class="line"><a name="l00524"></a><span class="lineno">  524</span>&#160;    <span class="keyword">static</span> <span class="keywordtype">int</span> iterations = 0;</div><div class="line"><a name="l00525"></a><span class="lineno">  525</span>&#160;    <span class="keyword">static</span> <span class="keywordtype">int</span> prevLeft = 0;</div><div class="line"><a name="l00526"></a><span class="lineno">  526</span>&#160;    <span class="keyword">static</span> <span class="keywordtype">int</span> prevRight = 0;</div><div class="line"><a name="l00527"></a><span class="lineno">  527</span>&#160;</div><div class="line"><a name="l00528"></a><span class="lineno">  528</span>&#160;    <span class="comment">//if(self-&gt;leftEncoderCount == 0 || self-&gt;rightEncoderCount == 0){  // update was called with no movement of the bot</span></div><div class="line"><a name="l00529"></a><span class="lineno">  529</span>&#160;    <span class="comment">//  return 0;</span></div><div class="line"><a name="l00530"></a><span class="lineno">  530</span>&#160;    <span class="comment">//}</span></div><div class="line"><a name="l00531"></a><span class="lineno">  531</span>&#160;</div><div class="line"><a name="l00532"></a><span class="lineno">  532</span>&#160;    <span class="keywordflow">if</span> ((self-&gt;leftEncoderCount == prevLeft)</div><div class="line"><a name="l00533"></a><span class="lineno">  533</span>&#160;            &amp;&amp; (self-&gt;rightEncoderCount == prevRight))</div><div class="line"><a name="l00534"></a><span class="lineno">  534</span>&#160;    { <span class="comment">// if the bot has not moved since previous update</span></div><div class="line"><a name="l00535"></a><span class="lineno">  535</span>&#160;        prevLeft = <span class="keyword">self</span>-&gt;leftEncoderCount;</div><div class="line"><a name="l00536"></a><span class="lineno">  536</span>&#160;        prevRight = <span class="keyword">self</span>-&gt;rightEncoderCount;</div><div class="line"><a name="l00537"></a><span class="lineno">  537</span>&#160;        <span class="keywordflow">return</span> 0;</div><div class="line"><a name="l00538"></a><span class="lineno">  538</span>&#160;    }</div><div class="line"><a name="l00539"></a><span class="lineno">  539</span>&#160;    <span class="comment">//ignore the first run, such that we do not have prevLeft or right=0, this would give a very large degree moved.</span></div><div class="line"><a name="l00540"></a><span class="lineno">  540</span>&#160;    <span class="keywordflow">else</span> <span class="keywordflow">if</span> (iterations == 0)</div><div class="line"><a name="l00541"></a><span class="lineno">  541</span>&#160;    {</div><div class="line"><a name="l00542"></a><span class="lineno">  542</span>&#160;        prevLeft = <span class="keyword">self</span>-&gt;leftEncoderCount;</div><div class="line"><a name="l00543"></a><span class="lineno">  543</span>&#160;        prevRight = <span class="keyword">self</span>-&gt;rightEncoderCount;</div><div class="line"><a name="l00544"></a><span class="lineno">  544</span>&#160;        iterations++;</div><div class="line"><a name="l00545"></a><span class="lineno">  545</span>&#160;        <span class="keywordflow">return</span> 0;</div><div class="line"><a name="l00546"></a><span class="lineno">  546</span>&#160;    }</div><div class="line"><a name="l00547"></a><span class="lineno">  547</span>&#160;</div><div class="line"><a name="l00548"></a><span class="lineno">  548</span>&#160;    <span class="comment">//get distance moved in mm for the left and right wheel</span></div><div class="line"><a name="l00549"></a><span class="lineno">  549</span>&#160;    <span class="comment">// equation: ticks * (1/508)*72pi</span></div><div class="line"><a name="l00550"></a><span class="lineno">  550</span>&#160;    <span class="comment">//update the previous values to be correct</span></div><div class="line"><a name="l00551"></a><span class="lineno">  551</span>&#160;    <span class="keywordtype">int</span> distLeft = (<span class="keyword">self</span>-&gt;leftEncoderCount - prevLeft) * (0.445265);</div><div class="line"><a name="l00552"></a><span class="lineno">  552</span>&#160;    <span class="keywordtype">int</span> distRight = (<span class="keyword">self</span>-&gt;rightEncoderCount - prevRight) * (0.445265);</div><div class="line"><a name="l00553"></a><span class="lineno">  553</span>&#160;    prevLeft = <span class="keyword">self</span>-&gt;leftEncoderCount;</div><div class="line"><a name="l00554"></a><span class="lineno">  554</span>&#160;    prevRight = <span class="keyword">self</span>-&gt;rightEncoderCount;</div><div class="line"><a name="l00555"></a><span class="lineno">  555</span>&#160;</div><div class="line"><a name="l00556"></a><span class="lineno">  556</span>&#160;    <span class="comment">//calculate the degree travelled by (right-left)/wheel base in mm</span></div><div class="line"><a name="l00557"></a><span class="lineno">  557</span>&#160;    <span class="keywordtype">float</span> deg = .82 * (distRight - distLeft) / 178.5;<span class="comment">//change 178.5 to improve accuracy of turning if needed</span></div><div class="line"><a name="l00558"></a><span class="lineno">  558</span>&#160;    deg = (deg * 180) / M_PI;</div><div class="line"><a name="l00559"></a><span class="lineno">  559</span>&#160;</div><div class="line"><a name="l00560"></a><span class="lineno">  560</span>&#160;    <span class="keywordflow">return</span> (deg);</div><div class="line"><a name="l00561"></a><span class="lineno">  561</span>&#160;</div><div class="line"><a name="l00562"></a><span class="lineno">  562</span>&#160;}</div><div class="line"><a name="l00563"></a><span class="lineno">  563</span>&#160;</div><div class="ttc" id="open__interface_8c_html_ad9923d0a228d340572e71997ddf32df9"><div class="ttname"><a href="open__interface_8c.html#ad9923d0a228d340572e71997ddf32df9">oi_uartInit</a></div><div class="ttdeci">void oi_uartInit(void)</div><div class="ttdoc">Initialize UART3 for OI Communication and Debugging internal function. </div><div class="ttdef"><b>Definition:</b> <a href="open__interface_8c_source.html#l00372">open_interface.c:372</a></div></div>
+<div class="ttc" id="open__interface_8c_html_ae2a441c2fb23be5db165a8cd7eca0fe7"><div class="ttname"><a href="open__interface_8c.html#ae2a441c2fb23be5db165a8cd7eca0fe7">oi_init_noupdate</a></div><div class="ttdeci">void oi_init_noupdate(void)</div><div class="ttdef"><b>Definition:</b> <a href="open__interface_8c_source.html#l00133">open_interface.c:133</a></div></div>
+<div class="ttc" id="open__interface_8c_html_aa238e081cfecd7a9bf3d274f53504362"><div class="ttname"><a href="open__interface_8c.html#aa238e081cfecd7a9bf3d274f53504362">oi_parsePacket</a></div><div class="ttdeci">void oi_parsePacket(oi_t *self, uint8_t packet[])</div><div class="ttdoc">Parse data from iRobot into oi_t struct. </div><div class="ttdef"><b>Definition:</b> <a href="open__interface_8c_source.html#l00191">open_interface.c:191</a></div></div>
+<div class="ttc" id="open__interface_8c_html_af7fe40c5fd5331db4a79ee4d77b12398"><div class="ttname"><a href="open__interface_8c.html#af7fe40c5fd5331db4a79ee4d77b12398">oi_uartFastMode</a></div><div class="ttdeci">void oi_uartFastMode(void)</div><div class="ttdoc">Set baud to 115200. </div></div>
+<div class="ttc" id="open__interface_8c_html_a9129559bba5ff9dc7e4df64330864674"><div class="ttname"><a href="open__interface_8c.html#a9129559bba5ff9dc7e4df64330864674">oi_update</a></div><div class="ttdeci">void oi_update(oi_t *self)</div><div class="ttdoc">Update all sensor and store in oi_t struct. </div><div class="ttdef"><b>Definition:</b> <a href="open__interface_8c_source.html#l00169">open_interface.c:169</a></div></div>
+<div class="ttc" id="open__interface_8c_html_aced7535453b0c0e29af698308d0498d4"><div class="ttname"><a href="open__interface_8c.html#aced7535453b0c0e29af698308d0498d4">oi_uartSendChar</a></div><div class="ttdeci">void oi_uartSendChar(char data)</div><div class="ttdef"><b>Definition:</b> <a href="open__interface_8c_source.html#l00400">open_interface.c:400</a></div></div>
+<div class="ttc" id="open__interface_8c_html_a353765c4297939ef0390a47ca869af56"><div class="ttname"><a href="open__interface_8c.html#a353765c4297939ef0390a47ca869af56">oi_play_song</a></div><div class="ttdeci">void oi_play_song(int index)</div><div class="ttdoc">Plays a given song; use oi_load_song(...) first. </div><div class="ttdef"><b>Definition:</b> <a href="open__interface_8c_source.html#l00345">open_interface.c:345</a></div></div>
+<div class="ttc" id="open__interface_8c_html_a5eb8e6923f80c6f02cccbb79535cfa7f"><div class="ttname"><a href="open__interface_8c.html#a5eb8e6923f80c6f02cccbb79535cfa7f">oi_uartSendStr</a></div><div class="ttdeci">void oi_uartSendStr(const char *theData)</div><div class="ttdoc">transmit character array </div><div class="ttdef"><b>Definition:</b> <a href="open__interface_8c_source.html#l00429">open_interface.c:429</a></div></div>
+<div class="ttc" id="open__interface_8c_html_a6c701c5d6642b0f7128b03542a09ed76"><div class="ttname"><a href="open__interface_8c.html#a6c701c5d6642b0f7128b03542a09ed76">go_charge</a></div><div class="ttdeci">void go_charge(void)</div><div class="ttdoc">Runs default go charge program; robot will search for dock. </div><div class="ttdef"><b>Definition:</b> <a href="open__interface_8c_source.html#l00352">open_interface.c:352</a></div></div>
+<div class="ttc" id="open__interface_8c_html_a49949f029cc5f84ad903aa7022f4e5e0"><div class="ttname"><a href="open__interface_8c.html#a49949f029cc5f84ad903aa7022f4e5e0">oi_setWheels</a></div><div class="ttdeci">void oi_setWheels(int16_t right_wheel, int16_t left_wheel)</div><div class="ttdoc">Set direction and speed of the robot&amp;#39;s wheels. </div><div class="ttdef"><b>Definition:</b> <a href="open__interface_8c_source.html#l00316">open_interface.c:316</a></div></div>
+<div class="ttc" id="open__interface_8c_html_ad945411d8b234cf7c50488a8d9388ff5"><div class="ttname"><a href="open__interface_8c.html#ad945411d8b234cf7c50488a8d9388ff5">oi_loadSong</a></div><div class="ttdeci">void oi_loadSong(int song_index, int num_notes, unsigned char *notes, unsigned char *duration)</div><div class="ttdoc">Load song sequence. </div><div class="ttdef"><b>Definition:</b> <a href="open__interface_8c_source.html#l00330">open_interface.c:330</a></div></div>
+<div class="ttc" id="open__interface_8h_html"><div class="ttname"><a href="open__interface_8h.html">open_interface.h</a></div><div class="ttdoc">Header file for open_interface.c Contains all functionality to interface with the IRobot Create V2 Co...</div></div>
+<div class="ttc" id="open__interface_8c_html_abe8995b948a2f47938a574b59c2dda7e"><div class="ttname"><a href="open__interface_8c.html#abe8995b948a2f47938a574b59c2dda7e">oi_free</a></div><div class="ttdeci">void oi_free(oi_t *self)</div><div class="ttdoc">Free memory from pointer to Open Interface Struct. </div><div class="ttdef"><b>Definition:</b> <a href="open__interface_8c_source.html#l00125">open_interface.c:125</a></div></div>
+<div class="ttc" id="open__interface_8c_html_a9ce8d6194cf8cb1d39104b641cb5254d"><div class="ttname"><a href="open__interface_8c.html#a9ce8d6194cf8cb1d39104b641cb5254d">oi_setLeds</a></div><div class="ttdeci">void oi_setLeds(uint8_t play_led, uint8_t advance_led, uint8_t power_color, uint8_t power_intensity)</div><div class="ttdoc">Set the LEDS on the Create. </div><div class="ttdef"><b>Definition:</b> <a href="open__interface_8c_source.html#l00297">open_interface.c:297</a></div></div>
+<div class="ttc" id="timer_8c_html_a7e2a3b4520e885e5e7d40fa87e242a75"><div class="ttname"><a href="timer_8c.html#a7e2a3b4520e885e5e7d40fa87e242a75">timer_waitMillis</a></div><div class="ttdeci">void timer_waitMillis(uint32_t millis)</div><div class="ttdef"><b>Definition:</b> <a href="timer_8c_source.html#l00015">timer.c:15</a></div></div>
+<div class="ttc" id="main_8c_html_a91a70b77df95bd8b0830b49a094c2acb"><div class="ttname"><a href="main_8c.html#a91a70b77df95bd8b0830b49a094c2acb">data</a></div><div class="ttdeci">char * data</div><div class="ttdef"><b>Definition:</b> <a href="main_8c_source.html#l00028">main.c:28</a></div></div>
+<div class="ttc" id="open__interface_8c_html_a5e7e1773c5782c2be5f333f733aab29f"><div class="ttname"><a href="open__interface_8c.html#a5e7e1773c5782c2be5f333f733aab29f">oi_uartReceive</a></div><div class="ttdeci">char oi_uartReceive(void)</div><div class="ttdef"><b>Definition:</b> <a href="open__interface_8c_source.html#l00411">open_interface.c:411</a></div></div>
+<div class="ttc" id="open__interface_8c_html_a22afee5afdd7d60bc1bd9d58a428e4b7"><div class="ttname"><a href="open__interface_8c.html#a22afee5afdd7d60bc1bd9d58a428e4b7">getDegrees</a></div><div class="ttdeci">float getDegrees(oi_t *self)</div><div class="ttdef"><b>Definition:</b> <a href="open__interface_8c_source.html#l00522">open_interface.c:522</a></div></div>
 <div class="ttc" id="structoi__t_html"><div class="ttname"><a href="structoi__t.html">oi_t</a></div><div class="ttdoc">iRobot Create Sensor Data </div><div class="ttdef"><b>Definition:</b> <a href="open__interface_8h_source.html#l00031">open_interface.h:31</a></div></div>
-<div class="ttc" id="uart_8h_html_aff2566f4c366b48d73479bef43ee4d2e"><div class="ttname"><a href="uart_8h.html#aff2566f4c366b48d73479bef43ee4d2e">buffer</a></div><div class="ttdeci">char * buffer</div><div class="ttdef"><b>Definition:</b> <a href="uart_8h_source.html#l00029">uart.h:29</a></div></div>
-<div class="ttc" id="uart_8c_html_af96d1ce52b8a52eabc606489d31351e9"><div class="ttname"><a href="uart_8c.html#af96d1ce52b8a52eabc606489d31351e9">uart_sendStr</a></div><div class="ttdeci">void uart_sendStr(const char *data)</div><div class="ttdef"><b>Definition:</b> <a href="uart_8c_source.html#l00133">uart.c:133</a></div></div>
+<div class="ttc" id="uart_8h_html_aff2566f4c366b48d73479bef43ee4d2e"><div class="ttname"><a href="uart_8h.html#aff2566f4c366b48d73479bef43ee4d2e">buffer</a></div><div class="ttdeci">char * buffer</div><div class="ttdef"><b>Definition:</b> <a href="uart_8h_source.html#l00028">uart.h:28</a></div></div>
+<div class="ttc" id="open__interface_8c_html_a9108ba8c791d0e97444c03b2f40b278a"><div class="ttname"><a href="open__interface_8c.html#a9108ba8c791d0e97444c03b2f40b278a">oi_init</a></div><div class="ttdeci">void oi_init(oi_t *self)</div><div class="ttdoc">Initialize open interface. </div><div class="ttdef"><b>Definition:</b> <a href="open__interface_8c_source.html#l00153">open_interface.c:153</a></div></div>
+<div class="ttc" id="open__interface_8c_html_a1bca24fa8dd6fb148a6ec99ffbe2f29d"><div class="ttname"><a href="open__interface_8c.html#a1bca24fa8dd6fb148a6ec99ffbe2f29d">oi_shutoff_init</a></div><div class="ttdeci">void oi_shutoff_init(void)</div><div class="ttdoc">initializes the user button to shut off OI </div><div class="ttdef"><b>Definition:</b> <a href="open__interface_8c_source.html#l00489">open_interface.c:489</a></div></div>
+<div class="ttc" id="open__interface_8c_html_a33bd73bbfbc570a633f3622069087066"><div class="ttname"><a href="open__interface_8c.html#a33bd73bbfbc570a633f3622069087066">uart_sendStr</a></div><div class="ttdeci">void uart_sendStr(const char *theData)</div><div class="ttdef"><b>Definition:</b> <a href="uart_8c_source.html#l00133">uart.c:133</a></div></div>
+<div class="ttc" id="open__interface_8c_html_aad249dffdf79454de76e09092a0445f5"><div class="ttname"><a href="open__interface_8c.html#aad249dffdf79454de76e09092a0445f5">oi_alloc</a></div><div class="ttdeci">oi_t * oi_alloc()</div><div class="ttdoc">Allocate and clear all memory for OI Struct. </div><div class="ttdef"><b>Definition:</b> <a href="open__interface_8c_source.html#l00119">open_interface.c:119</a></div></div>
+<div class="ttc" id="open__interface_8c_html_afcbad4c0a94458d1ba7ff11dac9ff42b"><div class="ttname"><a href="open__interface_8c.html#afcbad4c0a94458d1ba7ff11dac9ff42b">oi_uartSendBuff</a></div><div class="ttdeci">void oi_uartSendBuff(const uint8_t theData[], uint8_t theSize)</div><div class="ttdef"><b>Definition:</b> <a href="open__interface_8c_source.html#l00439">open_interface.c:439</a></div></div>
+<div class="ttc" id="open__interface_8c_html_a8c54153bd272749c1fc36a3f98ffc8b1"><div class="ttname"><a href="open__interface_8c.html#a8c54153bd272749c1fc36a3f98ffc8b1">oi_parseInt</a></div><div class="ttdeci">int16_t oi_parseInt(uint8_t *theInt)</div><div class="ttdef"><b>Definition:</b> <a href="open__interface_8c_source.html#l00287">open_interface.c:287</a></div></div>
 </div><!-- fragment --></div><!-- contents -->
 </div><!-- doc-content -->
 <!-- start footer part -->
 <div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
   <ul>
-    <li class="navelem"><a class="el" href="dir_d522931ffa1371640980b621734a4381.html">Users</a></li><li class="navelem"><a class="el" href="dir_b324cbc34babe304b9f95739e7202679.html">DonsterLaptop</a></li><li class="navelem"><a class="el" href="dir_e6c4902d624d7a1fd4d40064e095ec38.html">Documents</a></li><li class="navelem"><a class="el" href="dir_cca09f556bdef987ef90adb7ab596965.html">Robot288</a></li><li class="navelem"><a class="el" href="dir_cffdf54b453800c407ef4c3ceba2b426.html">cpre288_generalpurposeautomatedrobot</a></li><li class="navelem"><a class="el" href="dir_c2e164765e5a314cc0de59b27d9c89cd.html">Robot</a></li><li class="navelem"><a class="el" href="dir_af5038295b43384ea1ab75d71dfd6e0e.html">Utils</a></li><li class="navelem"><b>open_interface.c</b></li>
+    <li class="navelem"><a class="el" href="dir_d522931ffa1371640980b621734a4381.html">Users</a></li><li class="navelem"><a class="el" href="dir_b324cbc34babe304b9f95739e7202679.html">DonsterLaptop</a></li><li class="navelem"><a class="el" href="dir_e6c4902d624d7a1fd4d40064e095ec38.html">Documents</a></li><li class="navelem"><a class="el" href="dir_cca09f556bdef987ef90adb7ab596965.html">Robot288</a></li><li class="navelem"><a class="el" href="dir_cffdf54b453800c407ef4c3ceba2b426.html">cpre288_generalpurposeautomatedrobot</a></li><li class="navelem"><a class="el" href="dir_c2e164765e5a314cc0de59b27d9c89cd.html">Robot</a></li><li class="navelem"><a class="el" href="dir_af5038295b43384ea1ab75d71dfd6e0e.html">Utils</a></li><li class="navelem"><a class="el" href="open__interface_8c.html">open_interface.c</a></li>
     <li class="footer">Generated by
     <a href="http://www.doxygen.org/index.html">
     <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.14 </li>
diff --git a/Doxygen/html/open__interface_8h_source.html b/Doxygen/html/open__interface_8h_source.html
index 167b359f5fd362f169a0be67bf7ba2ce5ad743a7..b8215e11c01f11cdbbf5f24177cbf5aaa92f89ab 100644
--- a/Doxygen/html/open__interface_8h_source.html
+++ b/Doxygen/html/open__interface_8h_source.html
@@ -92,13 +92,26 @@ $(document).ready(function(){initNavTree('open__interface_8h_source.html','');})
 <div class="title">open_interface.h</div>  </div>
 </div><!--header-->
 <div class="contents">
-<div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno">    1</span>&#160;<span class="comment">/*</span></div><div class="line"><a name="l00002"></a><span class="lineno">    2</span>&#160;<span class="comment"> *      @file   open_interface.h</span></div><div class="line"><a name="l00003"></a><span class="lineno">    3</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00004"></a><span class="lineno">    4</span>&#160;<span class="comment"> *      @brief  Header file for open_interface.c</span></div><div class="line"><a name="l00005"></a><span class="lineno">    5</span>&#160;<span class="comment"> *              Contains all functionality to interface with the IRobot Create V2</span></div><div class="line"><a name="l00006"></a><span class="lineno">    6</span>&#160;<span class="comment"> *              Communication over UART4 at 115200</span></div><div class="line"><a name="l00007"></a><span class="lineno">    7</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00008"></a><span class="lineno">    8</span>&#160;<span class="comment"> * @author Noah Bergman</span></div><div class="line"><a name="l00009"></a><span class="lineno">    9</span>&#160;<span class="comment"> * @date 03/11/2016</span></div><div class="line"><a name="l00010"></a><span class="lineno">   10</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00011"></a><span class="lineno">   11</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00012"></a><span class="lineno">   12</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00013"></a><span class="lineno">   13</span>&#160;<span class="comment"> */</span></div><div class="line"><a name="l00014"></a><span class="lineno">   14</span>&#160;</div><div class="line"><a name="l00015"></a><span class="lineno">   15</span>&#160;<span class="preprocessor">#ifndef OPEN_INTERFACE_H_</span></div><div class="line"><a name="l00016"></a><span class="lineno">   16</span>&#160;<span class="preprocessor">#define OPEN_INTERFACE_H_</span></div><div class="line"><a name="l00017"></a><span class="lineno">   17</span>&#160;</div><div class="line"><a name="l00018"></a><span class="lineno">   18</span>&#160;<span class="preprocessor">#include &lt;stdio.h&gt;</span></div><div class="line"><a name="l00019"></a><span class="lineno">   19</span>&#160;<span class="preprocessor">#include &lt;stdint.h&gt;</span></div><div class="line"><a name="l00020"></a><span class="lineno">   20</span>&#160;<span class="preprocessor">#include &lt;string.h&gt;</span></div><div class="line"><a name="l00021"></a><span class="lineno">   21</span>&#160;<span class="preprocessor">#include &lt;stdlib.h&gt;</span></div><div class="line"><a name="l00022"></a><span class="lineno">   22</span>&#160;<span class="preprocessor">#include &lt;math.h&gt;</span></div><div class="line"><a name="l00023"></a><span class="lineno">   23</span>&#160;<span class="preprocessor">#include &quot;Utils/Timer.h&quot;</span></div><div class="line"><a name="l00024"></a><span class="lineno">   24</span>&#160;<span class="preprocessor">#include &quot;Utils/lcd.h&quot;</span></div><div class="line"><a name="l00025"></a><span class="lineno">   25</span>&#160;<span class="preprocessor">#include &lt;inc/tm4c123gh6pm.h&gt;</span></div><div class="line"><a name="l00026"></a><span class="lineno">   26</span>&#160;<span class="preprocessor">#include &lt;stdbool.h&gt;</span></div><div class="line"><a name="l00027"></a><span class="lineno">   27</span>&#160;<span class="preprocessor">#include &quot;driverlib/interrupt.h&quot;</span></div><div class="line"><a name="l00028"></a><span class="lineno">   28</span>&#160;<span class="preprocessor">#define M_PI 3.14159265358979323846</span></div><div class="line"><a name="l00029"></a><span class="lineno">   29</span>&#160;</div><div class="line"><a name="l00031"></a><span class="lineno"><a class="line" href="structoi__t.html">   31</a></span>&#160;<span class="keyword">typedef</span> <span class="keyword">struct</span></div><div class="line"><a name="l00032"></a><span class="lineno">   32</span>&#160;{</div><div class="line"><a name="l00033"></a><span class="lineno">   33</span>&#160;    <span class="comment">//Boolean sensor values</span></div><div class="line"><a name="l00034"></a><span class="lineno">   34</span>&#160;    uint32_t wheelDropLeft :1;</div><div class="line"><a name="l00035"></a><span class="lineno">   35</span>&#160;    uint32_t wheelDropRight :1;</div><div class="line"><a name="l00036"></a><span class="lineno">   36</span>&#160;    uint32_t bumpLeft :1;</div><div class="line"><a name="l00037"></a><span class="lineno">   37</span>&#160;    uint32_t bumpRight :1;</div><div class="line"><a name="l00038"></a><span class="lineno">   38</span>&#160;    uint32_t cliffLeft :1;</div><div class="line"><a name="l00039"></a><span class="lineno">   39</span>&#160;    uint32_t cliffFrontLeft :1;</div><div class="line"><a name="l00040"></a><span class="lineno">   40</span>&#160;    uint32_t cliffFrontRight :1;</div><div class="line"><a name="l00041"></a><span class="lineno">   41</span>&#160;    uint32_t cliffRight :1;</div><div class="line"><a name="l00042"></a><span class="lineno">   42</span>&#160;</div><div class="line"><a name="l00043"></a><span class="lineno">   43</span>&#160;    uint32_t lightBumperRight :1;</div><div class="line"><a name="l00044"></a><span class="lineno">   44</span>&#160;    uint32_t lightBumperFrontRight :1;</div><div class="line"><a name="l00045"></a><span class="lineno">   45</span>&#160;    uint32_t lightBumperCenterRight :1;</div><div class="line"><a name="l00046"></a><span class="lineno">   46</span>&#160;    uint32_t lightBumperCenterLeft :1;</div><div class="line"><a name="l00047"></a><span class="lineno">   47</span>&#160;    uint32_t lightBumperFrontLeft :1;</div><div class="line"><a name="l00048"></a><span class="lineno">   48</span>&#160;    uint32_t lightBumperLeft :1;</div><div class="line"><a name="l00049"></a><span class="lineno">   49</span>&#160;</div><div class="line"><a name="l00050"></a><span class="lineno">   50</span>&#160;    uint32_t wallSensor :1;</div><div class="line"><a name="l00051"></a><span class="lineno">   51</span>&#160;    uint32_t virtualWall :1;</div><div class="line"><a name="l00052"></a><span class="lineno">   52</span>&#160;</div><div class="line"><a name="l00053"></a><span class="lineno">   53</span>&#160;    uint32_t overcurrentLeftWheel :1;</div><div class="line"><a name="l00054"></a><span class="lineno">   54</span>&#160;    uint32_t overcurrentRightWheel :1;</div><div class="line"><a name="l00055"></a><span class="lineno">   55</span>&#160;    uint32_t overcurrentMainBrush :1;</div><div class="line"><a name="l00056"></a><span class="lineno">   56</span>&#160;    uint32_t overcurrentSideBrush :1;</div><div class="line"><a name="l00057"></a><span class="lineno">   57</span>&#160;</div><div class="line"><a name="l00058"></a><span class="lineno">   58</span>&#160;    uint32_t buttonClock :1;</div><div class="line"><a name="l00059"></a><span class="lineno">   59</span>&#160;    uint32_t buttonSchedule :1;</div><div class="line"><a name="l00060"></a><span class="lineno">   60</span>&#160;    uint32_t buttonDay :1;</div><div class="line"><a name="l00061"></a><span class="lineno">   61</span>&#160;    uint32_t buttonHour :1;</div><div class="line"><a name="l00062"></a><span class="lineno">   62</span>&#160;    uint32_t buttonMinute :1;</div><div class="line"><a name="l00063"></a><span class="lineno">   63</span>&#160;    uint32_t buttonDock :1;</div><div class="line"><a name="l00064"></a><span class="lineno">   64</span>&#160;    uint32_t buttonSpot :1;</div><div class="line"><a name="l00065"></a><span class="lineno">   65</span>&#160;    uint32_t buttonClean :1;</div><div class="line"><a name="l00066"></a><span class="lineno">   66</span>&#160;</div><div class="line"><a name="l00067"></a><span class="lineno">   67</span>&#160;    <span class="comment">//Cliff sensors</span></div><div class="line"><a name="l00068"></a><span class="lineno">   68</span>&#160;    uint16_t cliffLeftSignal;</div><div class="line"><a name="l00069"></a><span class="lineno">   69</span>&#160;    uint16_t cliffFrontLeftSignal;</div><div class="line"><a name="l00070"></a><span class="lineno">   70</span>&#160;    uint16_t cliffFrontRightSignal;</div><div class="line"><a name="l00071"></a><span class="lineno">   71</span>&#160;    uint16_t cliffRightSignal;</div><div class="line"><a name="l00072"></a><span class="lineno">   72</span>&#160;</div><div class="line"><a name="l00073"></a><span class="lineno">   73</span>&#160;    <span class="comment">//Light bump sensors</span></div><div class="line"><a name="l00074"></a><span class="lineno">   74</span>&#160;    uint16_t lightBumpLeftSignal;</div><div class="line"><a name="l00075"></a><span class="lineno">   75</span>&#160;    uint16_t lightBumpFrontLeftSignal;</div><div class="line"><a name="l00076"></a><span class="lineno">   76</span>&#160;    uint16_t lightBumpCenterLeftSignal;</div><div class="line"><a name="l00077"></a><span class="lineno">   77</span>&#160;    uint16_t lightBumpCenterRightSignal;</div><div class="line"><a name="l00078"></a><span class="lineno">   78</span>&#160;    uint16_t lightBumpFrontRightSignal;</div><div class="line"><a name="l00079"></a><span class="lineno">   79</span>&#160;    uint16_t lightBumpRightSignal;</div><div class="line"><a name="l00080"></a><span class="lineno">   80</span>&#160;</div><div class="line"><a name="l00081"></a><span class="lineno">   81</span>&#160;    <span class="comment">//Misc sensors</span></div><div class="line"><a name="l00082"></a><span class="lineno">   82</span>&#160;    uint16_t wallSignal;</div><div class="line"><a name="l00083"></a><span class="lineno">   83</span>&#160;    uint8_t dirtDetect;</div><div class="line"><a name="l00084"></a><span class="lineno">   84</span>&#160;</div><div class="line"><a name="l00085"></a><span class="lineno">   85</span>&#160;    <span class="comment">//Power</span></div><div class="line"><a name="l00086"></a><span class="lineno">   86</span>&#160;    int16_t leftMotorCurrent;</div><div class="line"><a name="l00087"></a><span class="lineno">   87</span>&#160;    int16_t rightMotorCurrent;</div><div class="line"><a name="l00088"></a><span class="lineno">   88</span>&#160;    int16_t mainBrushMotorCurrent;</div><div class="line"><a name="l00089"></a><span class="lineno">   89</span>&#160;    int16_t sideBrushMotorCurrent;</div><div class="line"><a name="l00090"></a><span class="lineno">   90</span>&#160;</div><div class="line"><a name="l00091"></a><span class="lineno">   91</span>&#160;    <span class="comment">//Motion sensors</span></div><div class="line"><a name="l00092"></a><span class="lineno">   92</span>&#160;    int16_t distance;</div><div class="line"><a name="l00093"></a><span class="lineno">   93</span>&#160;    <span class="keywordtype">float</span> angle;</div><div class="line"><a name="l00094"></a><span class="lineno">   94</span>&#160;    int8_t requestedVelocity;</div><div class="line"><a name="l00095"></a><span class="lineno">   95</span>&#160;    int8_t requestedRadius;</div><div class="line"><a name="l00096"></a><span class="lineno">   96</span>&#160;    int16_t requestedRightVelocity;</div><div class="line"><a name="l00097"></a><span class="lineno">   97</span>&#160;    int16_t requestedLeftVelocity;</div><div class="line"><a name="l00098"></a><span class="lineno">   98</span>&#160;    uint16_t leftEncoderCount;      <span class="comment">//here the encoder counts were made unsigned</span></div><div class="line"><a name="l00099"></a><span class="lineno">   99</span>&#160;    uint16_t rightEncoderCount;       <span class="comment">//made unsigned</span></div><div class="line"><a name="l00100"></a><span class="lineno">  100</span>&#160;</div><div class="line"><a name="l00101"></a><span class="lineno">  101</span>&#160;    <span class="comment">//Information from the infrared beacon sensors</span></div><div class="line"><a name="l00102"></a><span class="lineno">  102</span>&#160;    <span class="keywordtype">char</span> infraredCharOmni;</div><div class="line"><a name="l00103"></a><span class="lineno">  103</span>&#160;    <span class="keywordtype">char</span> infraredCharLeft;</div><div class="line"><a name="l00104"></a><span class="lineno">  104</span>&#160;    <span class="keywordtype">char</span> infraredCharRight;</div><div class="line"><a name="l00105"></a><span class="lineno">  105</span>&#160;</div><div class="line"><a name="l00106"></a><span class="lineno">  106</span>&#160;    <span class="comment">//Battery information</span></div><div class="line"><a name="l00107"></a><span class="lineno">  107</span>&#160;    uint8_t chargingState;</div><div class="line"><a name="l00108"></a><span class="lineno">  108</span>&#160;    uint8_t chargingSourcesAvailable;</div><div class="line"><a name="l00109"></a><span class="lineno">  109</span>&#160;    uint16_t batteryVoltage;</div><div class="line"><a name="l00110"></a><span class="lineno">  110</span>&#160;    int16_t batteryCurrent;</div><div class="line"><a name="l00111"></a><span class="lineno">  111</span>&#160;    uint8_t batteryTemperature;</div><div class="line"><a name="l00112"></a><span class="lineno">  112</span>&#160;    uint16_t batteryCharge;</div><div class="line"><a name="l00113"></a><span class="lineno">  113</span>&#160;    uint16_t batteryCapacity;</div><div class="line"><a name="l00114"></a><span class="lineno">  114</span>&#160;</div><div class="line"><a name="l00115"></a><span class="lineno">  115</span>&#160;    <span class="comment">//Music</span></div><div class="line"><a name="l00116"></a><span class="lineno">  116</span>&#160;    uint8_t songNumber;</div><div class="line"><a name="l00117"></a><span class="lineno">  117</span>&#160;    uint8_t songPlaying;</div><div class="line"><a name="l00118"></a><span class="lineno">  118</span>&#160;</div><div class="line"><a name="l00119"></a><span class="lineno">  119</span>&#160;    <span class="comment">//Misc</span></div><div class="line"><a name="l00120"></a><span class="lineno">  120</span>&#160;    uint8_t oiMode;</div><div class="line"><a name="l00121"></a><span class="lineno">  121</span>&#160;    uint8_t numberOfStreamPackets;</div><div class="line"><a name="l00122"></a><span class="lineno">  122</span>&#160;    uint8_t stasis;</div><div class="line"><a name="l00123"></a><span class="lineno">  123</span>&#160;</div><div class="line"><a name="l00124"></a><span class="lineno">  124</span>&#160;} <a class="code" href="structoi__t.html">oi_t</a>;</div><div class="line"><a name="l00125"></a><span class="lineno">  125</span>&#160;</div><div class="line"><a name="l00127"></a><span class="lineno">  127</span>&#160;<a class="code" href="structoi__t.html">oi_t</a> * oi_alloc();</div><div class="line"><a name="l00128"></a><span class="lineno">  128</span>&#160;</div><div class="line"><a name="l00130"></a><span class="lineno">  130</span>&#160;<span class="keywordtype">void</span> oi_free(<a class="code" href="structoi__t.html">oi_t</a> *<span class="keyword">self</span>);</div><div class="line"><a name="l00131"></a><span class="lineno">  131</span>&#160;</div><div class="line"><a name="l00133"></a><span class="lineno">  133</span>&#160;<span class="keywordtype">void</span> oi_init(<a class="code" href="structoi__t.html">oi_t</a> *<span class="keyword">self</span>);</div><div class="line"><a name="l00134"></a><span class="lineno">  134</span>&#160;</div><div class="line"><a name="l00135"></a><span class="lineno">  135</span>&#160;<span class="keywordtype">void</span> oi_close();</div><div class="line"><a name="l00136"></a><span class="lineno">  136</span>&#160;</div><div class="line"><a name="l00138"></a><span class="lineno">  138</span>&#160;<span class="keywordtype">void</span> oi_update(<a class="code" href="structoi__t.html">oi_t</a> *<span class="keyword">self</span>);</div><div class="line"><a name="l00139"></a><span class="lineno">  139</span>&#160;</div><div class="line"><a name="l00145"></a><span class="lineno">  145</span>&#160;<span class="keywordtype">void</span> oi_setLeds(uint8_t play_led, uint8_t advance_led, uint8_t power_color,</div><div class="line"><a name="l00146"></a><span class="lineno">  146</span>&#160;                uint8_t power_intensity);</div><div class="line"><a name="l00147"></a><span class="lineno">  147</span>&#160;</div><div class="line"><a name="l00151"></a><span class="lineno">  151</span>&#160;<span class="keywordtype">void</span> oi_setWheels(int16_t right_wheel, int16_t left_wheel);</div><div class="line"><a name="l00152"></a><span class="lineno">  152</span>&#160;</div><div class="line"><a name="l00158"></a><span class="lineno">  158</span>&#160;<span class="keywordtype">void</span> oi_loadSong(<span class="keywordtype">int</span> song_index, <span class="keywordtype">int</span> num_notes, <span class="keywordtype">unsigned</span> <span class="keywordtype">char</span> *notes,</div><div class="line"><a name="l00159"></a><span class="lineno">  159</span>&#160;                 <span class="keywordtype">unsigned</span> <span class="keywordtype">char</span> *duration);</div><div class="line"><a name="l00160"></a><span class="lineno">  160</span>&#160;</div><div class="line"><a name="l00163"></a><span class="lineno">  163</span>&#160;<span class="keywordtype">void</span> oi_play_song(<span class="keywordtype">int</span> index);</div><div class="line"><a name="l00164"></a><span class="lineno">  164</span>&#160;</div><div class="line"><a name="l00167"></a><span class="lineno">  167</span>&#160;<span class="keywordtype">void</span> go_charge(<span class="keywordtype">void</span>);</div><div class="line"><a name="l00168"></a><span class="lineno">  168</span>&#160;</div><div class="line"><a name="l00169"></a><span class="lineno">  169</span>&#160;<span class="keywordtype">char</span>* oi_checkFirmware();</div><div class="line"><a name="l00170"></a><span class="lineno">  170</span>&#160;</div><div class="line"><a name="l00171"></a><span class="lineno">  171</span>&#160;<span class="comment">//initializes interrupt and gpio to handle button press to end OI</span></div><div class="line"><a name="l00172"></a><span class="lineno">  172</span>&#160;<span class="keywordtype">void</span> oi_shutoff_init(<span class="keywordtype">void</span>);</div><div class="line"><a name="l00173"></a><span class="lineno">  173</span>&#160;</div><div class="line"><a name="l00174"></a><span class="lineno">  174</span>&#160;<span class="comment">//used to handle interrupt to shut off OI</span></div><div class="line"><a name="l00175"></a><span class="lineno">  175</span>&#160;<span class="keywordtype">void</span> GPIOF_Handler(<span class="keywordtype">void</span>);</div><div class="line"><a name="l00176"></a><span class="lineno">  176</span>&#160;</div><div class="line"><a name="l00177"></a><span class="lineno">  177</span>&#160;<span class="comment">//used to get the current moved degrees from encoder count</span></div><div class="line"><a name="l00178"></a><span class="lineno">  178</span>&#160;<span class="keywordtype">float</span> getDegrees(<a class="code" href="structoi__t.html">oi_t</a> *<span class="keyword">self</span>);</div><div class="line"><a name="l00179"></a><span class="lineno">  179</span>&#160;</div><div class="line"><a name="l00180"></a><span class="lineno">  180</span>&#160;<span class="preprocessor">#endif </span><span class="comment">/* OPEN_INTERFACE_H_ */</span><span class="preprocessor"></span></div><div class="ttc" id="structoi__t_html"><div class="ttname"><a href="structoi__t.html">oi_t</a></div><div class="ttdoc">iRobot Create Sensor Data </div><div class="ttdef"><b>Definition:</b> <a href="open__interface_8h_source.html#l00031">open_interface.h:31</a></div></div>
+<a href="open__interface_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno">    1</span>&#160;</div><div class="line"><a name="l00015"></a><span class="lineno">   15</span>&#160;<span class="preprocessor">#ifndef OPEN_INTERFACE_H_</span></div><div class="line"><a name="l00016"></a><span class="lineno">   16</span>&#160;<span class="preprocessor">#define OPEN_INTERFACE_H_</span></div><div class="line"><a name="l00017"></a><span class="lineno">   17</span>&#160;</div><div class="line"><a name="l00018"></a><span class="lineno">   18</span>&#160;<span class="preprocessor">#include &lt;stdio.h&gt;</span></div><div class="line"><a name="l00019"></a><span class="lineno">   19</span>&#160;<span class="preprocessor">#include &lt;stdint.h&gt;</span></div><div class="line"><a name="l00020"></a><span class="lineno">   20</span>&#160;<span class="preprocessor">#include &lt;string.h&gt;</span></div><div class="line"><a name="l00021"></a><span class="lineno">   21</span>&#160;<span class="preprocessor">#include &lt;stdlib.h&gt;</span></div><div class="line"><a name="l00022"></a><span class="lineno">   22</span>&#160;<span class="preprocessor">#include &lt;math.h&gt;</span></div><div class="line"><a name="l00023"></a><span class="lineno">   23</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="timer_8h.html">Utils/Timer.h</a>&quot;</span></div><div class="line"><a name="l00024"></a><span class="lineno">   24</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="lcd_8h.html">Utils/lcd.h</a>&quot;</span></div><div class="line"><a name="l00025"></a><span class="lineno">   25</span>&#160;<span class="preprocessor">#include &lt;inc/tm4c123gh6pm.h&gt;</span></div><div class="line"><a name="l00026"></a><span class="lineno">   26</span>&#160;<span class="preprocessor">#include &lt;stdbool.h&gt;</span></div><div class="line"><a name="l00027"></a><span class="lineno">   27</span>&#160;<span class="preprocessor">#include &quot;driverlib/interrupt.h&quot;</span></div><div class="line"><a name="l00028"></a><span class="lineno">   28</span>&#160;<span class="preprocessor">#define M_PI 3.14159265358979323846</span></div><div class="line"><a name="l00029"></a><span class="lineno">   29</span>&#160;</div><div class="line"><a name="l00031"></a><span class="lineno"><a class="line" href="structoi__t.html">   31</a></span>&#160;<span class="keyword">typedef</span> <span class="keyword">struct</span></div><div class="line"><a name="l00032"></a><span class="lineno">   32</span>&#160;{</div><div class="line"><a name="l00033"></a><span class="lineno">   33</span>&#160;    <span class="comment">//Boolean sensor values</span></div><div class="line"><a name="l00034"></a><span class="lineno">   34</span>&#160;    uint32_t wheelDropLeft :1;</div><div class="line"><a name="l00035"></a><span class="lineno">   35</span>&#160;    uint32_t wheelDropRight :1;</div><div class="line"><a name="l00036"></a><span class="lineno">   36</span>&#160;    uint32_t bumpLeft :1;</div><div class="line"><a name="l00037"></a><span class="lineno">   37</span>&#160;    uint32_t bumpRight :1;</div><div class="line"><a name="l00038"></a><span class="lineno">   38</span>&#160;    uint32_t cliffLeft :1;</div><div class="line"><a name="l00039"></a><span class="lineno">   39</span>&#160;    uint32_t cliffFrontLeft :1;</div><div class="line"><a name="l00040"></a><span class="lineno">   40</span>&#160;    uint32_t cliffFrontRight :1;</div><div class="line"><a name="l00041"></a><span class="lineno">   41</span>&#160;    uint32_t cliffRight :1;</div><div class="line"><a name="l00042"></a><span class="lineno">   42</span>&#160;</div><div class="line"><a name="l00043"></a><span class="lineno">   43</span>&#160;    uint32_t lightBumperRight :1;</div><div class="line"><a name="l00044"></a><span class="lineno">   44</span>&#160;    uint32_t lightBumperFrontRight :1;</div><div class="line"><a name="l00045"></a><span class="lineno">   45</span>&#160;    uint32_t lightBumperCenterRight :1;</div><div class="line"><a name="l00046"></a><span class="lineno">   46</span>&#160;    uint32_t lightBumperCenterLeft :1;</div><div class="line"><a name="l00047"></a><span class="lineno">   47</span>&#160;    uint32_t lightBumperFrontLeft :1;</div><div class="line"><a name="l00048"></a><span class="lineno">   48</span>&#160;    uint32_t lightBumperLeft :1;</div><div class="line"><a name="l00049"></a><span class="lineno">   49</span>&#160;</div><div class="line"><a name="l00050"></a><span class="lineno">   50</span>&#160;    uint32_t wallSensor :1;</div><div class="line"><a name="l00051"></a><span class="lineno">   51</span>&#160;    uint32_t virtualWall :1;</div><div class="line"><a name="l00052"></a><span class="lineno">   52</span>&#160;</div><div class="line"><a name="l00053"></a><span class="lineno">   53</span>&#160;    uint32_t overcurrentLeftWheel :1;</div><div class="line"><a name="l00054"></a><span class="lineno">   54</span>&#160;    uint32_t overcurrentRightWheel :1;</div><div class="line"><a name="l00055"></a><span class="lineno">   55</span>&#160;    uint32_t overcurrentMainBrush :1;</div><div class="line"><a name="l00056"></a><span class="lineno">   56</span>&#160;    uint32_t overcurrentSideBrush :1;</div><div class="line"><a name="l00057"></a><span class="lineno">   57</span>&#160;</div><div class="line"><a name="l00058"></a><span class="lineno">   58</span>&#160;    uint32_t buttonClock :1;</div><div class="line"><a name="l00059"></a><span class="lineno">   59</span>&#160;    uint32_t buttonSchedule :1;</div><div class="line"><a name="l00060"></a><span class="lineno">   60</span>&#160;    uint32_t buttonDay :1;</div><div class="line"><a name="l00061"></a><span class="lineno">   61</span>&#160;    uint32_t buttonHour :1;</div><div class="line"><a name="l00062"></a><span class="lineno">   62</span>&#160;    uint32_t buttonMinute :1;</div><div class="line"><a name="l00063"></a><span class="lineno">   63</span>&#160;    uint32_t buttonDock :1;</div><div class="line"><a name="l00064"></a><span class="lineno">   64</span>&#160;    uint32_t buttonSpot :1;</div><div class="line"><a name="l00065"></a><span class="lineno">   65</span>&#160;    uint32_t buttonClean :1;</div><div class="line"><a name="l00066"></a><span class="lineno">   66</span>&#160;</div><div class="line"><a name="l00067"></a><span class="lineno">   67</span>&#160;    <span class="comment">//Cliff sensors</span></div><div class="line"><a name="l00068"></a><span class="lineno">   68</span>&#160;    uint16_t cliffLeftSignal;</div><div class="line"><a name="l00069"></a><span class="lineno">   69</span>&#160;    uint16_t cliffFrontLeftSignal;</div><div class="line"><a name="l00070"></a><span class="lineno">   70</span>&#160;    uint16_t cliffFrontRightSignal;</div><div class="line"><a name="l00071"></a><span class="lineno">   71</span>&#160;    uint16_t cliffRightSignal;</div><div class="line"><a name="l00072"></a><span class="lineno">   72</span>&#160;</div><div class="line"><a name="l00073"></a><span class="lineno">   73</span>&#160;    <span class="comment">//Light bump sensors</span></div><div class="line"><a name="l00074"></a><span class="lineno">   74</span>&#160;    uint16_t lightBumpLeftSignal;</div><div class="line"><a name="l00075"></a><span class="lineno">   75</span>&#160;    uint16_t lightBumpFrontLeftSignal;</div><div class="line"><a name="l00076"></a><span class="lineno">   76</span>&#160;    uint16_t lightBumpCenterLeftSignal;</div><div class="line"><a name="l00077"></a><span class="lineno">   77</span>&#160;    uint16_t lightBumpCenterRightSignal;</div><div class="line"><a name="l00078"></a><span class="lineno">   78</span>&#160;    uint16_t lightBumpFrontRightSignal;</div><div class="line"><a name="l00079"></a><span class="lineno">   79</span>&#160;    uint16_t lightBumpRightSignal;</div><div class="line"><a name="l00080"></a><span class="lineno">   80</span>&#160;</div><div class="line"><a name="l00081"></a><span class="lineno">   81</span>&#160;    <span class="comment">//Misc sensors</span></div><div class="line"><a name="l00082"></a><span class="lineno">   82</span>&#160;    uint16_t wallSignal;</div><div class="line"><a name="l00083"></a><span class="lineno">   83</span>&#160;    uint8_t dirtDetect;</div><div class="line"><a name="l00084"></a><span class="lineno">   84</span>&#160;</div><div class="line"><a name="l00085"></a><span class="lineno">   85</span>&#160;    <span class="comment">//Power</span></div><div class="line"><a name="l00086"></a><span class="lineno">   86</span>&#160;    int16_t leftMotorCurrent;</div><div class="line"><a name="l00087"></a><span class="lineno">   87</span>&#160;    int16_t rightMotorCurrent;</div><div class="line"><a name="l00088"></a><span class="lineno">   88</span>&#160;    int16_t mainBrushMotorCurrent;</div><div class="line"><a name="l00089"></a><span class="lineno">   89</span>&#160;    int16_t sideBrushMotorCurrent;</div><div class="line"><a name="l00090"></a><span class="lineno">   90</span>&#160;</div><div class="line"><a name="l00091"></a><span class="lineno">   91</span>&#160;    <span class="comment">//Motion sensors</span></div><div class="line"><a name="l00092"></a><span class="lineno">   92</span>&#160;    int16_t distance;</div><div class="line"><a name="l00093"></a><span class="lineno">   93</span>&#160;    <span class="keywordtype">float</span> angle;</div><div class="line"><a name="l00094"></a><span class="lineno">   94</span>&#160;    int8_t requestedVelocity;</div><div class="line"><a name="l00095"></a><span class="lineno">   95</span>&#160;    int8_t requestedRadius;</div><div class="line"><a name="l00096"></a><span class="lineno">   96</span>&#160;    int16_t requestedRightVelocity;</div><div class="line"><a name="l00097"></a><span class="lineno">   97</span>&#160;    int16_t requestedLeftVelocity;</div><div class="line"><a name="l00098"></a><span class="lineno">   98</span>&#160;    uint16_t leftEncoderCount;      <span class="comment">//here the encoder counts were made unsigned</span></div><div class="line"><a name="l00099"></a><span class="lineno">   99</span>&#160;    uint16_t rightEncoderCount;       <span class="comment">//made unsigned</span></div><div class="line"><a name="l00100"></a><span class="lineno">  100</span>&#160;</div><div class="line"><a name="l00101"></a><span class="lineno">  101</span>&#160;    <span class="comment">//Information from the infrared beacon sensors</span></div><div class="line"><a name="l00102"></a><span class="lineno">  102</span>&#160;    <span class="keywordtype">char</span> infraredCharOmni;</div><div class="line"><a name="l00103"></a><span class="lineno">  103</span>&#160;    <span class="keywordtype">char</span> infraredCharLeft;</div><div class="line"><a name="l00104"></a><span class="lineno">  104</span>&#160;    <span class="keywordtype">char</span> infraredCharRight;</div><div class="line"><a name="l00105"></a><span class="lineno">  105</span>&#160;</div><div class="line"><a name="l00106"></a><span class="lineno">  106</span>&#160;    <span class="comment">//Battery information</span></div><div class="line"><a name="l00107"></a><span class="lineno">  107</span>&#160;    uint8_t chargingState;</div><div class="line"><a name="l00108"></a><span class="lineno">  108</span>&#160;    uint8_t chargingSourcesAvailable;</div><div class="line"><a name="l00109"></a><span class="lineno">  109</span>&#160;    uint16_t batteryVoltage;</div><div class="line"><a name="l00110"></a><span class="lineno">  110</span>&#160;    int16_t batteryCurrent;</div><div class="line"><a name="l00111"></a><span class="lineno">  111</span>&#160;    uint8_t batteryTemperature;</div><div class="line"><a name="l00112"></a><span class="lineno">  112</span>&#160;    uint16_t batteryCharge;</div><div class="line"><a name="l00113"></a><span class="lineno">  113</span>&#160;    uint16_t batteryCapacity;</div><div class="line"><a name="l00114"></a><span class="lineno">  114</span>&#160;</div><div class="line"><a name="l00115"></a><span class="lineno">  115</span>&#160;    <span class="comment">//Music</span></div><div class="line"><a name="l00116"></a><span class="lineno">  116</span>&#160;    uint8_t songNumber;</div><div class="line"><a name="l00117"></a><span class="lineno">  117</span>&#160;    uint8_t songPlaying;</div><div class="line"><a name="l00118"></a><span class="lineno">  118</span>&#160;</div><div class="line"><a name="l00119"></a><span class="lineno">  119</span>&#160;    <span class="comment">//Misc</span></div><div class="line"><a name="l00120"></a><span class="lineno">  120</span>&#160;    uint8_t oiMode;</div><div class="line"><a name="l00121"></a><span class="lineno">  121</span>&#160;    uint8_t numberOfStreamPackets;</div><div class="line"><a name="l00122"></a><span class="lineno">  122</span>&#160;    uint8_t stasis;</div><div class="line"><a name="l00123"></a><span class="lineno">  123</span>&#160;</div><div class="line"><a name="l00124"></a><span class="lineno">  124</span>&#160;} <a class="code" href="structoi__t.html">oi_t</a>;</div><div class="line"><a name="l00125"></a><span class="lineno">  125</span>&#160;</div><div class="line"><a name="l00127"></a><span class="lineno">  127</span>&#160;<a class="code" href="structoi__t.html">oi_t</a> * <a class="code" href="open__interface_8h.html#aad249dffdf79454de76e09092a0445f5">oi_alloc</a>();</div><div class="line"><a name="l00128"></a><span class="lineno">  128</span>&#160;</div><div class="line"><a name="l00130"></a><span class="lineno">  130</span>&#160;<span class="keywordtype">void</span> <a class="code" href="open__interface_8h.html#abe8995b948a2f47938a574b59c2dda7e">oi_free</a>(<a class="code" href="structoi__t.html">oi_t</a> *<span class="keyword">self</span>);</div><div class="line"><a name="l00131"></a><span class="lineno">  131</span>&#160;</div><div class="line"><a name="l00133"></a><span class="lineno">  133</span>&#160;<span class="keywordtype">void</span> <a class="code" href="open__interface_8h.html#a9108ba8c791d0e97444c03b2f40b278a">oi_init</a>(<a class="code" href="structoi__t.html">oi_t</a> *<span class="keyword">self</span>);</div><div class="line"><a name="l00134"></a><span class="lineno">  134</span>&#160;</div><div class="line"><a name="l00135"></a><span class="lineno">  135</span>&#160;<span class="keywordtype">void</span> oi_close();</div><div class="line"><a name="l00136"></a><span class="lineno">  136</span>&#160;</div><div class="line"><a name="l00138"></a><span class="lineno">  138</span>&#160;<span class="keywordtype">void</span> <a class="code" href="open__interface_8h.html#a9129559bba5ff9dc7e4df64330864674">oi_update</a>(<a class="code" href="structoi__t.html">oi_t</a> *<span class="keyword">self</span>);</div><div class="line"><a name="l00139"></a><span class="lineno">  139</span>&#160;</div><div class="line"><a name="l00145"></a><span class="lineno">  145</span>&#160;<span class="keywordtype">void</span> <a class="code" href="open__interface_8h.html#a9ce8d6194cf8cb1d39104b641cb5254d">oi_setLeds</a>(uint8_t play_led, uint8_t advance_led, uint8_t power_color,</div><div class="line"><a name="l00146"></a><span class="lineno">  146</span>&#160;                uint8_t power_intensity);</div><div class="line"><a name="l00147"></a><span class="lineno">  147</span>&#160;</div><div class="line"><a name="l00151"></a><span class="lineno">  151</span>&#160;<span class="keywordtype">void</span> <a class="code" href="open__interface_8h.html#a49949f029cc5f84ad903aa7022f4e5e0">oi_setWheels</a>(int16_t right_wheel, int16_t left_wheel);</div><div class="line"><a name="l00152"></a><span class="lineno">  152</span>&#160;</div><div class="line"><a name="l00158"></a><span class="lineno">  158</span>&#160;<span class="keywordtype">void</span> <a class="code" href="open__interface_8h.html#ad945411d8b234cf7c50488a8d9388ff5">oi_loadSong</a>(<span class="keywordtype">int</span> song_index, <span class="keywordtype">int</span> num_notes, <span class="keywordtype">unsigned</span> <span class="keywordtype">char</span> *notes,</div><div class="line"><a name="l00159"></a><span class="lineno">  159</span>&#160;                 <span class="keywordtype">unsigned</span> <span class="keywordtype">char</span> *duration);</div><div class="line"><a name="l00160"></a><span class="lineno">  160</span>&#160;</div><div class="line"><a name="l00163"></a><span class="lineno">  163</span>&#160;<span class="keywordtype">void</span> <a class="code" href="open__interface_8h.html#a353765c4297939ef0390a47ca869af56">oi_play_song</a>(<span class="keywordtype">int</span> index);</div><div class="line"><a name="l00164"></a><span class="lineno">  164</span>&#160;</div><div class="line"><a name="l00167"></a><span class="lineno">  167</span>&#160;<span class="keywordtype">void</span> <a class="code" href="open__interface_8h.html#a6c701c5d6642b0f7128b03542a09ed76">go_charge</a>(<span class="keywordtype">void</span>);</div><div class="line"><a name="l00168"></a><span class="lineno">  168</span>&#160;</div><div class="line"><a name="l00169"></a><span class="lineno">  169</span>&#160;<span class="keywordtype">char</span>* oi_checkFirmware();</div><div class="line"><a name="l00170"></a><span class="lineno">  170</span>&#160;</div><div class="line"><a name="l00171"></a><span class="lineno">  171</span>&#160;<span class="comment">//initializes interrupt and gpio to handle button press to end OI</span></div><div class="line"><a name="l00172"></a><span class="lineno">  172</span>&#160;<span class="keywordtype">void</span> <a class="code" href="open__interface_8h.html#a1bca24fa8dd6fb148a6ec99ffbe2f29d">oi_shutoff_init</a>(<span class="keywordtype">void</span>);</div><div class="line"><a name="l00173"></a><span class="lineno">  173</span>&#160;</div><div class="line"><a name="l00174"></a><span class="lineno">  174</span>&#160;<span class="comment">//used to handle interrupt to shut off OI</span></div><div class="line"><a name="l00175"></a><span class="lineno">  175</span>&#160;<span class="keywordtype">void</span> GPIOF_Handler(<span class="keywordtype">void</span>);</div><div class="line"><a name="l00176"></a><span class="lineno">  176</span>&#160;</div><div class="line"><a name="l00177"></a><span class="lineno">  177</span>&#160;<span class="comment">//used to get the current moved degrees from encoder count</span></div><div class="line"><a name="l00178"></a><span class="lineno">  178</span>&#160;<span class="comment">//Don Kieu: Modified to get this in float instead of integer</span></div><div class="line"><a name="l00179"></a><span class="lineno">  179</span>&#160;<span class="keywordtype">float</span> <a class="code" href="open__interface_8h.html#a22afee5afdd7d60bc1bd9d58a428e4b7">getDegrees</a>(<a class="code" href="structoi__t.html">oi_t</a> *<span class="keyword">self</span>);</div><div class="line"><a name="l00180"></a><span class="lineno">  180</span>&#160;</div><div class="line"><a name="l00181"></a><span class="lineno">  181</span>&#160;<span class="preprocessor">#endif </span><span class="comment">/* OPEN_INTERFACE_H_ */</span><span class="preprocessor"></span></div><div class="ttc" id="open__interface_8h_html_a49949f029cc5f84ad903aa7022f4e5e0"><div class="ttname"><a href="open__interface_8h.html#a49949f029cc5f84ad903aa7022f4e5e0">oi_setWheels</a></div><div class="ttdeci">void oi_setWheels(int16_t right_wheel, int16_t left_wheel)</div><div class="ttdoc">Set direction and speed of the robot&amp;#39;s wheels. </div><div class="ttdef"><b>Definition:</b> <a href="open__interface_8c_source.html#l00316">open_interface.c:316</a></div></div>
+<div class="ttc" id="open__interface_8h_html_a9ce8d6194cf8cb1d39104b641cb5254d"><div class="ttname"><a href="open__interface_8h.html#a9ce8d6194cf8cb1d39104b641cb5254d">oi_setLeds</a></div><div class="ttdeci">void oi_setLeds(uint8_t play_led, uint8_t advance_led, uint8_t power_color, uint8_t power_intensity)</div><div class="ttdoc">Set the LEDS on the Create. </div><div class="ttdef"><b>Definition:</b> <a href="open__interface_8c_source.html#l00297">open_interface.c:297</a></div></div>
+<div class="ttc" id="open__interface_8h_html_abe8995b948a2f47938a574b59c2dda7e"><div class="ttname"><a href="open__interface_8h.html#abe8995b948a2f47938a574b59c2dda7e">oi_free</a></div><div class="ttdeci">void oi_free(oi_t *self)</div><div class="ttdoc">Free memory from pointer to Open Interface Struct. </div><div class="ttdef"><b>Definition:</b> <a href="open__interface_8c_source.html#l00125">open_interface.c:125</a></div></div>
+<div class="ttc" id="open__interface_8h_html_a9108ba8c791d0e97444c03b2f40b278a"><div class="ttname"><a href="open__interface_8h.html#a9108ba8c791d0e97444c03b2f40b278a">oi_init</a></div><div class="ttdeci">void oi_init(oi_t *self)</div><div class="ttdoc">Initialize open interface. </div><div class="ttdef"><b>Definition:</b> <a href="open__interface_8c_source.html#l00153">open_interface.c:153</a></div></div>
+<div class="ttc" id="timer_8h_html"><div class="ttname"><a href="timer_8h.html">timer.h</a></div><div class="ttdoc">Header file for timer.c Library Functions for pause timer. </div></div>
+<div class="ttc" id="open__interface_8h_html_a9129559bba5ff9dc7e4df64330864674"><div class="ttname"><a href="open__interface_8h.html#a9129559bba5ff9dc7e4df64330864674">oi_update</a></div><div class="ttdeci">void oi_update(oi_t *self)</div><div class="ttdoc">Update sensor data. </div><div class="ttdef"><b>Definition:</b> <a href="open__interface_8c_source.html#l00169">open_interface.c:169</a></div></div>
+<div class="ttc" id="open__interface_8h_html_a353765c4297939ef0390a47ca869af56"><div class="ttname"><a href="open__interface_8h.html#a353765c4297939ef0390a47ca869af56">oi_play_song</a></div><div class="ttdeci">void oi_play_song(int index)</div><div class="ttdoc">Play song. </div><div class="ttdef"><b>Definition:</b> <a href="open__interface_8c_source.html#l00345">open_interface.c:345</a></div></div>
+<div class="ttc" id="open__interface_8h_html_aad249dffdf79454de76e09092a0445f5"><div class="ttname"><a href="open__interface_8h.html#aad249dffdf79454de76e09092a0445f5">oi_alloc</a></div><div class="ttdeci">oi_t * oi_alloc()</div><div class="ttdoc">Allocate and clear all memory for OI Struct. </div><div class="ttdef"><b>Definition:</b> <a href="open__interface_8c_source.html#l00119">open_interface.c:119</a></div></div>
+<div class="ttc" id="lcd_8h_html"><div class="ttname"><a href="lcd_8h.html">lcd.h</a></div><div class="ttdoc">Header file for lcd.c. </div></div>
+<div class="ttc" id="open__interface_8h_html_ad945411d8b234cf7c50488a8d9388ff5"><div class="ttname"><a href="open__interface_8h.html#ad945411d8b234cf7c50488a8d9388ff5">oi_loadSong</a></div><div class="ttdeci">void oi_loadSong(int song_index, int num_notes, unsigned char *notes, unsigned char *duration)</div><div class="ttdoc">Load song sequence. </div><div class="ttdef"><b>Definition:</b> <a href="open__interface_8c_source.html#l00330">open_interface.c:330</a></div></div>
+<div class="ttc" id="structoi__t_html"><div class="ttname"><a href="structoi__t.html">oi_t</a></div><div class="ttdoc">iRobot Create Sensor Data </div><div class="ttdef"><b>Definition:</b> <a href="open__interface_8h_source.html#l00031">open_interface.h:31</a></div></div>
+<div class="ttc" id="open__interface_8h_html_a6c701c5d6642b0f7128b03542a09ed76"><div class="ttname"><a href="open__interface_8h.html#a6c701c5d6642b0f7128b03542a09ed76">go_charge</a></div><div class="ttdeci">void go_charge(void)</div><div class="ttdoc">Runs default go charge program; robot will search for dock. </div><div class="ttdef"><b>Definition:</b> <a href="open__interface_8c_source.html#l00352">open_interface.c:352</a></div></div>
+<div class="ttc" id="open__interface_8h_html_a22afee5afdd7d60bc1bd9d58a428e4b7"><div class="ttname"><a href="open__interface_8h.html#a22afee5afdd7d60bc1bd9d58a428e4b7">getDegrees</a></div><div class="ttdeci">float getDegrees(oi_t *self)</div><div class="ttdef"><b>Definition:</b> <a href="open__interface_8c_source.html#l00522">open_interface.c:522</a></div></div>
+<div class="ttc" id="open__interface_8h_html_a1bca24fa8dd6fb148a6ec99ffbe2f29d"><div class="ttname"><a href="open__interface_8h.html#a1bca24fa8dd6fb148a6ec99ffbe2f29d">oi_shutoff_init</a></div><div class="ttdeci">void oi_shutoff_init(void)</div><div class="ttdoc">initializes the user button to shut off OI </div><div class="ttdef"><b>Definition:</b> <a href="open__interface_8c_source.html#l00489">open_interface.c:489</a></div></div>
 </div><!-- fragment --></div><!-- contents -->
 </div><!-- doc-content -->
 <!-- start footer part -->
 <div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
   <ul>
-    <li class="navelem"><a class="el" href="dir_d522931ffa1371640980b621734a4381.html">Users</a></li><li class="navelem"><a class="el" href="dir_b324cbc34babe304b9f95739e7202679.html">DonsterLaptop</a></li><li class="navelem"><a class="el" href="dir_e6c4902d624d7a1fd4d40064e095ec38.html">Documents</a></li><li class="navelem"><a class="el" href="dir_cca09f556bdef987ef90adb7ab596965.html">Robot288</a></li><li class="navelem"><a class="el" href="dir_cffdf54b453800c407ef4c3ceba2b426.html">cpre288_generalpurposeautomatedrobot</a></li><li class="navelem"><a class="el" href="dir_c2e164765e5a314cc0de59b27d9c89cd.html">Robot</a></li><li class="navelem"><a class="el" href="dir_af5038295b43384ea1ab75d71dfd6e0e.html">Utils</a></li><li class="navelem"><b>open_interface.h</b></li>
+    <li class="navelem"><a class="el" href="dir_d522931ffa1371640980b621734a4381.html">Users</a></li><li class="navelem"><a class="el" href="dir_b324cbc34babe304b9f95739e7202679.html">DonsterLaptop</a></li><li class="navelem"><a class="el" href="dir_e6c4902d624d7a1fd4d40064e095ec38.html">Documents</a></li><li class="navelem"><a class="el" href="dir_cca09f556bdef987ef90adb7ab596965.html">Robot288</a></li><li class="navelem"><a class="el" href="dir_cffdf54b453800c407ef4c3ceba2b426.html">cpre288_generalpurposeautomatedrobot</a></li><li class="navelem"><a class="el" href="dir_c2e164765e5a314cc0de59b27d9c89cd.html">Robot</a></li><li class="navelem"><a class="el" href="dir_af5038295b43384ea1ab75d71dfd6e0e.html">Utils</a></li><li class="navelem"><a class="el" href="open__interface_8h.html">open_interface.h</a></li>
     <li class="footer">Generated by
     <a href="http://www.doxygen.org/index.html">
     <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.14 </li>
diff --git a/Doxygen/html/search/all_2.js b/Doxygen/html/search/all_2.js
index fec49c0b9ba969434e37e33493207bce0841e058..2332a99d45f3e2a4eb4e53f5f48be3c996db611f 100644
--- a/Doxygen/html/search/all_2.js
+++ b/Doxygen/html/search/all_2.js
@@ -5,6 +5,7 @@ var searchData=
   ['cliff_5fsensor_2ec',['cliff_sensor.c',['../cliff__sensor_8c.html',1,'']]],
   ['cliff_5fsensor_2eh',['cliff_sensor.h',['../cliff__sensor_8h.html',1,'']]],
   ['cliffsensor',['CliffSensor',['../cliff__sensor_8h.html#a063460cc4181aaf54ece2e9b6b1d5ac4',1,'cliff_sensor.h']]],
+  ['clock_5ftimer_5finit',['clock_timer_init',['../timer4_8c.html#afe6c9dd8b2439c58273cbd63b95088fe',1,'clock_timer_init(void):&#160;timer4.c'],['../timer4_8h.html#afe6c9dd8b2439c58273cbd63b95088fe',1,'clock_timer_init(void):&#160;timer4.c']]],
   ['cs_5fgetterrain',['cs_getTerrain',['../cliff__sensor_8c.html#a1fa03a7f9a05ace91224ea610463e871',1,'cs_getTerrain(oi_t *self, CliffSensor sensor):&#160;cliff_sensor.c'],['../cliff__sensor_8h.html#a1fa03a7f9a05ace91224ea610463e871',1,'cs_getTerrain(oi_t *self, CliffSensor sensor):&#160;cliff_sensor.c']]],
   ['cs_5freadsensorraw',['cs_readSensorRaw',['../cliff__sensor_8c.html#ad8ad20a05cb459df743b6e8a4ed37be6',1,'cs_readSensorRaw(oi_t *self, CliffSensor sensor):&#160;cliff_sensor.c'],['../cliff__sensor_8h.html#ad8ad20a05cb459df743b6e8a4ed37be6',1,'cs_readSensorRaw(oi_t *self, CliffSensor sensor):&#160;cliff_sensor.c']]]
 ];
diff --git a/Doxygen/html/search/all_3.js b/Doxygen/html/search/all_3.js
index c3920ac3f803ff2b6e6fdaf0d8fa1408958f7704..a64a438595e75dce7a2ec1df3f9ce5cf39f4039b 100644
--- a/Doxygen/html/search/all_3.js
+++ b/Doxygen/html/search/all_3.js
@@ -1,5 +1,5 @@
 var searchData=
 [
-  ['data',['data',['../movementcommands_8c.html#a91a70b77df95bd8b0830b49a094c2acb',1,'movementcommands.c']]],
+  ['data',['data',['../main_8c.html#a91a70b77df95bd8b0830b49a094c2acb',1,'data():&#160;main.c'],['../movementcommands_8c.html#a91a70b77df95bd8b0830b49a094c2acb',1,'data():&#160;movementcommands.c']]],
   ['degrees_5fper_5fmicros',['degrees_per_micros',['../sweep__sensor_8c.html#ad15c1ce3dc8d7295980df0c002469685',1,'sweep_sensor.c']]]
 ];
diff --git a/Doxygen/html/search/all_5.js b/Doxygen/html/search/all_5.js
index ab86785b858e869c9775983132a530cc4f5b2956..8d2d4fa5ceb9deb796c68244326d093791ad42ad 100644
--- a/Doxygen/html/search/all_5.js
+++ b/Doxygen/html/search/all_5.js
@@ -2,8 +2,10 @@ var searchData=
 [
   ['get_5fsonic_5freading',['get_sonic_reading',['../sonic_8c.html#adbe32feee06ccd7a0a9c14709b9a1ce4',1,'get_sonic_reading():&#160;sonic.c'],['../sonic_8h.html#adbe32feee06ccd7a0a9c14709b9a1ce4',1,'get_sonic_reading():&#160;sonic.c']]],
   ['getadcreading',['getADCReading',['../ir_8c.html#a7e70a945ffc15434f5310c8684643eb3',1,'getADCReading():&#160;ir.c'],['../ir_8h.html#a7e70a945ffc15434f5310c8684643eb3',1,'getADCReading():&#160;ir.c']]],
+  ['getdegrees',['getDegrees',['../open__interface_8c.html#a22afee5afdd7d60bc1bd9d58a428e4b7',1,'getDegrees(oi_t *self):&#160;open_interface.c'],['../open__interface_8h.html#a22afee5afdd7d60bc1bd9d58a428e4b7',1,'getDegrees(oi_t *self):&#160;open_interface.c']]],
   ['getlastline',['getLastLine',['../uart_8c.html#a46df527ddf86c0ebfe750173a41dd4d3',1,'getLastLine():&#160;uart.c'],['../uart_8h.html#a46df527ddf86c0ebfe750173a41dd4d3',1,'getLastLine():&#160;uart.c']]],
   ['getposition',['getPosition',['../movementcommands_8c.html#a35f84947bb1dd6f437da3949f213c373',1,'getPosition(float *x, float *y, float *d):&#160;movementcommands.c'],['../movementcommands_8h.html#a35f84947bb1dd6f437da3949f213c373',1,'getPosition(float *x, float *y, float *d):&#160;movementcommands.c']]],
   ['getrobotheading',['getRobotHeading',['../class_render.html#ae3f76a2d2e8e781d24a8fb02f5c491fe',1,'Render']]],
-  ['getrobotposition',['getRobotPosition',['../class_render.html#a6505f30cb1ff7180fbaac9354ab126b0',1,'Render']]]
+  ['getrobotposition',['getRobotPosition',['../class_render.html#a6505f30cb1ff7180fbaac9354ab126b0',1,'Render']]],
+  ['go_5fcharge',['go_charge',['../open__interface_8c.html#a6c701c5d6642b0f7128b03542a09ed76',1,'go_charge(void):&#160;open_interface.c'],['../open__interface_8h.html#a6c701c5d6642b0f7128b03542a09ed76',1,'go_charge(void):&#160;open_interface.c']]]
 ];
diff --git a/Doxygen/html/search/all_8.js b/Doxygen/html/search/all_8.js
index 970c7b6678a676e51b2dc98eb75ed941d581c299..98531d93d4aedd60d36d36a77d9a2ddb74cb091b 100644
--- a/Doxygen/html/search/all_8.js
+++ b/Doxygen/html/search/all_8.js
@@ -1,4 +1,16 @@
 var searchData=
 [
-  ['lastline',['LastLine',['../uart_8h.html#af1bf0c65f126ec15b3204246afdc614e',1,'uart.h']]]
+  ['lastline',['LastLine',['../uart_8h.html#af1bf0c65f126ec15b3204246afdc614e',1,'uart.h']]],
+  ['lcd_2ec',['lcd.c',['../lcd_8c.html',1,'']]],
+  ['lcd_2eh',['lcd.h',['../lcd_8h.html',1,'']]],
+  ['lcd_5fclear',['lcd_clear',['../lcd_8c.html#ad235a86241458b1e7b8771688bfdaf9a',1,'lcd_clear(void):&#160;lcd.c'],['../lcd_8h.html#ad235a86241458b1e7b8771688bfdaf9a',1,'lcd_clear(void):&#160;lcd.c']]],
+  ['lcd_5fgotoline',['lcd_gotoLine',['../lcd_8c.html#a22493bdaca08073e3014decb34db38a6',1,'lcd_gotoLine(uint8_t lineNum):&#160;lcd.c'],['../lcd_8h.html#a22493bdaca08073e3014decb34db38a6',1,'lcd_gotoLine(uint8_t lineNum):&#160;lcd.c']]],
+  ['lcd_5fhome',['lcd_home',['../lcd_8c.html#a3aabf730aa4e0393bb5c959583c00a8e',1,'lcd_home(void):&#160;lcd.c'],['../lcd_8h.html#a3aabf730aa4e0393bb5c959583c00a8e',1,'lcd_home(void):&#160;lcd.c']]],
+  ['lcd_5finit',['lcd_init',['../lcd_8c.html#a6842775ba83d166f02b8fef8bb63b1e6',1,'lcd_init(void):&#160;lcd.c'],['../lcd_8h.html#a6842775ba83d166f02b8fef8bb63b1e6',1,'lcd_init(void):&#160;lcd.c']]],
+  ['lcd_5fprintf',['lcd_printf',['../lcd_8c.html#a3c12e31b86febabfc7e62b51e0b9dc30',1,'lcd_printf(const char *format,...):&#160;lcd.c'],['../lcd_8h.html#a3c12e31b86febabfc7e62b51e0b9dc30',1,'lcd_printf(const char *format,...):&#160;lcd.c']]],
+  ['lcd_5fputc',['lcd_putc',['../lcd_8c.html#a1b59543ebb020ae74d6bcdf06e2b6d3b',1,'lcd_putc(char data):&#160;lcd.c'],['../lcd_8h.html#a1b59543ebb020ae74d6bcdf06e2b6d3b',1,'lcd_putc(char data):&#160;lcd.c']]],
+  ['lcd_5fputs',['lcd_puts',['../lcd_8c.html#ac68eefc9e6fce7854f6319aba267ff58',1,'lcd_puts(char data[]):&#160;lcd.c'],['../lcd_8h.html#ac68eefc9e6fce7854f6319aba267ff58',1,'lcd_puts(char data[]):&#160;lcd.c']]],
+  ['lcd_5fsendcommand',['lcd_sendCommand',['../lcd_8c.html#aa212e4f928275b196e6db53fad2c1a5f',1,'lcd.c']]],
+  ['lcd_5fsendnibble',['lcd_sendNibble',['../lcd_8c.html#a76885eaba7dbd9863c2ea8bf7113c57f',1,'lcd.c']]],
+  ['lcd_5fsetcursorpos',['lcd_setCursorPos',['../lcd_8c.html#a785788c99ba018918ffb2db717773fa4',1,'lcd_setCursorPos(uint8_t x, uint8_t y):&#160;lcd.c'],['../lcd_8h.html#a785788c99ba018918ffb2db717773fa4',1,'lcd_setCursorPos(uint8_t x, uint8_t y):&#160;lcd.c']]]
 ];
diff --git a/Doxygen/html/search/all_9.js b/Doxygen/html/search/all_9.js
index 3778c387a909cb18740fc93d5b5f8427d06ed49f..d7e52a4139150c9ff8efd217394406761a1fcb0f 100644
--- a/Doxygen/html/search/all_9.js
+++ b/Doxygen/html/search/all_9.js
@@ -1,5 +1,7 @@
 var searchData=
 [
+  ['main',['main',['../main_8c.html#a840291bc02cba5474a4cb46a9b9566fe',1,'main.c']]],
+  ['main_2ec',['main.c',['../main_8c.html',1,'']]],
   ['main_2ecpp',['main.cpp',['../main_8cpp.html',1,'']]],
   ['micros_5foffset',['micros_offset',['../sweep__sensor_8c.html#add67b8431980e75798449c977e7178d6',1,'sweep_sensor.c']]],
   ['movementcommands_2ec',['movementcommands.c',['../movementcommands_8c.html',1,'']]],
diff --git a/Doxygen/html/search/all_a.js b/Doxygen/html/search/all_a.js
index 7e99f99045115eeb41db1e2c15c2a6146fb32001..873f7a7694fed57e1ea128c53dc7b5404ff4ee84 100644
--- a/Doxygen/html/search/all_a.js
+++ b/Doxygen/html/search/all_a.js
@@ -1,4 +1,24 @@
 var searchData=
 [
-  ['oi_5ft',['oi_t',['../structoi__t.html',1,'']]]
+  ['oi_5falloc',['oi_alloc',['../open__interface_8c.html#aad249dffdf79454de76e09092a0445f5',1,'oi_alloc():&#160;open_interface.c'],['../open__interface_8h.html#aad249dffdf79454de76e09092a0445f5',1,'oi_alloc():&#160;open_interface.c']]],
+  ['oi_5ffree',['oi_free',['../open__interface_8c.html#abe8995b948a2f47938a574b59c2dda7e',1,'oi_free(oi_t *self):&#160;open_interface.c'],['../open__interface_8h.html#abe8995b948a2f47938a574b59c2dda7e',1,'oi_free(oi_t *self):&#160;open_interface.c']]],
+  ['oi_5finit',['oi_init',['../open__interface_8c.html#a9108ba8c791d0e97444c03b2f40b278a',1,'oi_init(oi_t *self):&#160;open_interface.c'],['../open__interface_8h.html#a9108ba8c791d0e97444c03b2f40b278a',1,'oi_init(oi_t *self):&#160;open_interface.c']]],
+  ['oi_5finit_5fnoupdate',['oi_init_noupdate',['../open__interface_8c.html#ae2a441c2fb23be5db165a8cd7eca0fe7',1,'open_interface.c']]],
+  ['oi_5floadsong',['oi_loadSong',['../open__interface_8c.html#ad945411d8b234cf7c50488a8d9388ff5',1,'oi_loadSong(int song_index, int num_notes, unsigned char *notes, unsigned char *duration):&#160;open_interface.c'],['../open__interface_8h.html#ad945411d8b234cf7c50488a8d9388ff5',1,'oi_loadSong(int song_index, int num_notes, unsigned char *notes, unsigned char *duration):&#160;open_interface.c']]],
+  ['oi_5fparseint',['oi_parseInt',['../open__interface_8c.html#a8c54153bd272749c1fc36a3f98ffc8b1',1,'open_interface.c']]],
+  ['oi_5fparsepacket',['oi_parsePacket',['../open__interface_8c.html#aa238e081cfecd7a9bf3d274f53504362',1,'open_interface.c']]],
+  ['oi_5fplay_5fsong',['oi_play_song',['../open__interface_8c.html#a353765c4297939ef0390a47ca869af56',1,'oi_play_song(int index):&#160;open_interface.c'],['../open__interface_8h.html#a353765c4297939ef0390a47ca869af56',1,'oi_play_song(int index):&#160;open_interface.c']]],
+  ['oi_5fsetleds',['oi_setLeds',['../open__interface_8c.html#a9ce8d6194cf8cb1d39104b641cb5254d',1,'oi_setLeds(uint8_t play_led, uint8_t advance_led, uint8_t power_color, uint8_t power_intensity):&#160;open_interface.c'],['../open__interface_8h.html#a9ce8d6194cf8cb1d39104b641cb5254d',1,'oi_setLeds(uint8_t play_led, uint8_t advance_led, uint8_t power_color, uint8_t power_intensity):&#160;open_interface.c']]],
+  ['oi_5fsetwheels',['oi_setWheels',['../open__interface_8c.html#a49949f029cc5f84ad903aa7022f4e5e0',1,'oi_setWheels(int16_t right_wheel, int16_t left_wheel):&#160;open_interface.c'],['../open__interface_8h.html#a49949f029cc5f84ad903aa7022f4e5e0',1,'oi_setWheels(int16_t right_wheel, int16_t left_wheel):&#160;open_interface.c']]],
+  ['oi_5fshutoff_5finit',['oi_shutoff_init',['../open__interface_8c.html#a1bca24fa8dd6fb148a6ec99ffbe2f29d',1,'oi_shutoff_init(void):&#160;open_interface.c'],['../open__interface_8h.html#a1bca24fa8dd6fb148a6ec99ffbe2f29d',1,'oi_shutoff_init(void):&#160;open_interface.c']]],
+  ['oi_5ft',['oi_t',['../structoi__t.html',1,'']]],
+  ['oi_5fuartfastmode',['oi_uartFastMode',['../open__interface_8c.html#af7fe40c5fd5331db4a79ee4d77b12398',1,'open_interface.c']]],
+  ['oi_5fuartinit',['oi_uartInit',['../open__interface_8c.html#ad9923d0a228d340572e71997ddf32df9',1,'open_interface.c']]],
+  ['oi_5fuartreceive',['oi_uartReceive',['../open__interface_8c.html#a5e7e1773c5782c2be5f333f733aab29f',1,'open_interface.c']]],
+  ['oi_5fuartsendbuff',['oi_uartSendBuff',['../open__interface_8c.html#afcbad4c0a94458d1ba7ff11dac9ff42b',1,'open_interface.c']]],
+  ['oi_5fuartsendchar',['oi_uartSendChar',['../open__interface_8c.html#aced7535453b0c0e29af698308d0498d4',1,'open_interface.c']]],
+  ['oi_5fuartsendstr',['oi_uartSendStr',['../open__interface_8c.html#a5eb8e6923f80c6f02cccbb79535cfa7f',1,'open_interface.c']]],
+  ['oi_5fupdate',['oi_update',['../open__interface_8c.html#a9129559bba5ff9dc7e4df64330864674',1,'oi_update(oi_t *self):&#160;open_interface.c'],['../open__interface_8h.html#a9129559bba5ff9dc7e4df64330864674',1,'oi_update(oi_t *self):&#160;open_interface.c']]],
+  ['open_5finterface_2ec',['open_interface.c',['../open__interface_8c.html',1,'']]],
+  ['open_5finterface_2eh',['open_interface.h',['../open__interface_8h.html',1,'']]]
 ];
diff --git a/Doxygen/html/search/files_2.js b/Doxygen/html/search/files_2.js
index 70ea14cde308e1f45629390fb4ffd722191880b2..aa3263da5486e271eed221269779bf5a92402eec 100644
--- a/Doxygen/html/search/files_2.js
+++ b/Doxygen/html/search/files_2.js
@@ -1,6 +1,5 @@
 var searchData=
 [
-  ['main_2ecpp',['main.cpp',['../main_8cpp.html',1,'']]],
-  ['movementcommands_2ec',['movementcommands.c',['../movementcommands_8c.html',1,'']]],
-  ['movementcommands_2eh',['movementcommands.h',['../movementcommands_8h.html',1,'']]]
+  ['lcd_2ec',['lcd.c',['../lcd_8c.html',1,'']]],
+  ['lcd_2eh',['lcd.h',['../lcd_8h.html',1,'']]]
 ];
diff --git a/Doxygen/html/search/functions_1.js b/Doxygen/html/search/functions_1.js
index 808a595ab106b297b1734ecc03aa221603651673..ea513aaaa08240139fae7c9252d2c1e8c8cda0d3 100644
--- a/Doxygen/html/search/functions_1.js
+++ b/Doxygen/html/search/functions_1.js
@@ -2,6 +2,7 @@ var searchData=
 [
   ['checkgroundsensors',['checkGroundSensors',['../cliff__sensor_8c.html#aea9fa7041962d3fde3549a56f8855162',1,'checkGroundSensors(oi_t *self):&#160;cliff_sensor.c'],['../cliff__sensor_8h.html#aea9fa7041962d3fde3549a56f8855162',1,'checkGroundSensors(oi_t *self):&#160;cliff_sensor.c']]],
   ['chirp_5finit',['chirp_init',['../sonic_8c.html#a026052969f1c177a4c0c035b1ea5b9e7',1,'chirp_init():&#160;sonic.c'],['../sonic_8h.html#a026052969f1c177a4c0c035b1ea5b9e7',1,'chirp_init():&#160;sonic.c']]],
+  ['clock_5ftimer_5finit',['clock_timer_init',['../timer4_8c.html#afe6c9dd8b2439c58273cbd63b95088fe',1,'clock_timer_init(void):&#160;timer4.c'],['../timer4_8h.html#afe6c9dd8b2439c58273cbd63b95088fe',1,'clock_timer_init(void):&#160;timer4.c']]],
   ['cs_5fgetterrain',['cs_getTerrain',['../cliff__sensor_8c.html#a1fa03a7f9a05ace91224ea610463e871',1,'cs_getTerrain(oi_t *self, CliffSensor sensor):&#160;cliff_sensor.c'],['../cliff__sensor_8h.html#a1fa03a7f9a05ace91224ea610463e871',1,'cs_getTerrain(oi_t *self, CliffSensor sensor):&#160;cliff_sensor.c']]],
   ['cs_5freadsensorraw',['cs_readSensorRaw',['../cliff__sensor_8c.html#ad8ad20a05cb459df743b6e8a4ed37be6',1,'cs_readSensorRaw(oi_t *self, CliffSensor sensor):&#160;cliff_sensor.c'],['../cliff__sensor_8h.html#ad8ad20a05cb459df743b6e8a4ed37be6',1,'cs_readSensorRaw(oi_t *self, CliffSensor sensor):&#160;cliff_sensor.c']]]
 ];
diff --git a/Doxygen/html/search/functions_2.js b/Doxygen/html/search/functions_2.js
index ab86785b858e869c9775983132a530cc4f5b2956..8d2d4fa5ceb9deb796c68244326d093791ad42ad 100644
--- a/Doxygen/html/search/functions_2.js
+++ b/Doxygen/html/search/functions_2.js
@@ -2,8 +2,10 @@ var searchData=
 [
   ['get_5fsonic_5freading',['get_sonic_reading',['../sonic_8c.html#adbe32feee06ccd7a0a9c14709b9a1ce4',1,'get_sonic_reading():&#160;sonic.c'],['../sonic_8h.html#adbe32feee06ccd7a0a9c14709b9a1ce4',1,'get_sonic_reading():&#160;sonic.c']]],
   ['getadcreading',['getADCReading',['../ir_8c.html#a7e70a945ffc15434f5310c8684643eb3',1,'getADCReading():&#160;ir.c'],['../ir_8h.html#a7e70a945ffc15434f5310c8684643eb3',1,'getADCReading():&#160;ir.c']]],
+  ['getdegrees',['getDegrees',['../open__interface_8c.html#a22afee5afdd7d60bc1bd9d58a428e4b7',1,'getDegrees(oi_t *self):&#160;open_interface.c'],['../open__interface_8h.html#a22afee5afdd7d60bc1bd9d58a428e4b7',1,'getDegrees(oi_t *self):&#160;open_interface.c']]],
   ['getlastline',['getLastLine',['../uart_8c.html#a46df527ddf86c0ebfe750173a41dd4d3',1,'getLastLine():&#160;uart.c'],['../uart_8h.html#a46df527ddf86c0ebfe750173a41dd4d3',1,'getLastLine():&#160;uart.c']]],
   ['getposition',['getPosition',['../movementcommands_8c.html#a35f84947bb1dd6f437da3949f213c373',1,'getPosition(float *x, float *y, float *d):&#160;movementcommands.c'],['../movementcommands_8h.html#a35f84947bb1dd6f437da3949f213c373',1,'getPosition(float *x, float *y, float *d):&#160;movementcommands.c']]],
   ['getrobotheading',['getRobotHeading',['../class_render.html#ae3f76a2d2e8e781d24a8fb02f5c491fe',1,'Render']]],
-  ['getrobotposition',['getRobotPosition',['../class_render.html#a6505f30cb1ff7180fbaac9354ab126b0',1,'Render']]]
+  ['getrobotposition',['getRobotPosition',['../class_render.html#a6505f30cb1ff7180fbaac9354ab126b0',1,'Render']]],
+  ['go_5fcharge',['go_charge',['../open__interface_8c.html#a6c701c5d6642b0f7128b03542a09ed76',1,'go_charge(void):&#160;open_interface.c'],['../open__interface_8h.html#a6c701c5d6642b0f7128b03542a09ed76',1,'go_charge(void):&#160;open_interface.c']]]
 ];
diff --git a/Doxygen/html/search/functions_4.js b/Doxygen/html/search/functions_4.js
index 72c58281c0ae5720c8984e8893ff7a239d32fee6..711dfd0bee7abde8c56e7352a65e5d58a6bf8b49 100644
--- a/Doxygen/html/search/functions_4.js
+++ b/Doxygen/html/search/functions_4.js
@@ -1,5 +1,13 @@
 var searchData=
 [
-  ['moverobotdistance',['moveRobotDistance',['../movementcommands_8c.html#ac19e613d92cdd54f047e591fc0c99b07',1,'moveRobotDistance(oi_t *self, int input):&#160;movementcommands.c'],['../movementcommands_8h.html#ac19e613d92cdd54f047e591fc0c99b07',1,'moveRobotDistance(oi_t *self, int input):&#160;movementcommands.c']]],
-  ['moverobotdistanceignore',['moveRobotDistanceIgnore',['../movementcommands_8c.html#aec736dae690e0a896c49d05b27c9b970',1,'moveRobotDistanceIgnore(oi_t *self, int input):&#160;movementcommands.c'],['../movementcommands_8h.html#aec736dae690e0a896c49d05b27c9b970',1,'moveRobotDistanceIgnore(oi_t *self, int input):&#160;movementcommands.c']]]
+  ['lcd_5fclear',['lcd_clear',['../lcd_8c.html#ad235a86241458b1e7b8771688bfdaf9a',1,'lcd_clear(void):&#160;lcd.c'],['../lcd_8h.html#ad235a86241458b1e7b8771688bfdaf9a',1,'lcd_clear(void):&#160;lcd.c']]],
+  ['lcd_5fgotoline',['lcd_gotoLine',['../lcd_8c.html#a22493bdaca08073e3014decb34db38a6',1,'lcd_gotoLine(uint8_t lineNum):&#160;lcd.c'],['../lcd_8h.html#a22493bdaca08073e3014decb34db38a6',1,'lcd_gotoLine(uint8_t lineNum):&#160;lcd.c']]],
+  ['lcd_5fhome',['lcd_home',['../lcd_8c.html#a3aabf730aa4e0393bb5c959583c00a8e',1,'lcd_home(void):&#160;lcd.c'],['../lcd_8h.html#a3aabf730aa4e0393bb5c959583c00a8e',1,'lcd_home(void):&#160;lcd.c']]],
+  ['lcd_5finit',['lcd_init',['../lcd_8c.html#a6842775ba83d166f02b8fef8bb63b1e6',1,'lcd_init(void):&#160;lcd.c'],['../lcd_8h.html#a6842775ba83d166f02b8fef8bb63b1e6',1,'lcd_init(void):&#160;lcd.c']]],
+  ['lcd_5fprintf',['lcd_printf',['../lcd_8c.html#a3c12e31b86febabfc7e62b51e0b9dc30',1,'lcd_printf(const char *format,...):&#160;lcd.c'],['../lcd_8h.html#a3c12e31b86febabfc7e62b51e0b9dc30',1,'lcd_printf(const char *format,...):&#160;lcd.c']]],
+  ['lcd_5fputc',['lcd_putc',['../lcd_8c.html#a1b59543ebb020ae74d6bcdf06e2b6d3b',1,'lcd_putc(char data):&#160;lcd.c'],['../lcd_8h.html#a1b59543ebb020ae74d6bcdf06e2b6d3b',1,'lcd_putc(char data):&#160;lcd.c']]],
+  ['lcd_5fputs',['lcd_puts',['../lcd_8c.html#ac68eefc9e6fce7854f6319aba267ff58',1,'lcd_puts(char data[]):&#160;lcd.c'],['../lcd_8h.html#ac68eefc9e6fce7854f6319aba267ff58',1,'lcd_puts(char data[]):&#160;lcd.c']]],
+  ['lcd_5fsendcommand',['lcd_sendCommand',['../lcd_8c.html#aa212e4f928275b196e6db53fad2c1a5f',1,'lcd.c']]],
+  ['lcd_5fsendnibble',['lcd_sendNibble',['../lcd_8c.html#a76885eaba7dbd9863c2ea8bf7113c57f',1,'lcd.c']]],
+  ['lcd_5fsetcursorpos',['lcd_setCursorPos',['../lcd_8c.html#a785788c99ba018918ffb2db717773fa4',1,'lcd_setCursorPos(uint8_t x, uint8_t y):&#160;lcd.c'],['../lcd_8h.html#a785788c99ba018918ffb2db717773fa4',1,'lcd_setCursorPos(uint8_t x, uint8_t y):&#160;lcd.c']]]
 ];
diff --git a/Doxygen/html/search/functions_5.js b/Doxygen/html/search/functions_5.js
index 0dbbbecbf8c86601859e9753fe1c0ecb82186134..e47545605bbe179e4d64a131964b954c079c8a4a 100644
--- a/Doxygen/html/search/functions_5.js
+++ b/Doxygen/html/search/functions_5.js
@@ -1,5 +1,6 @@
 var searchData=
 [
-  ['parsecommand',['parseCommand',['../class_t_c_p_client.html#ae0b7b7d3223372c4b887f7bbc1e30ce8',1,'TCPClient::parseCommand()'],['../movementcommands_8c.html#af24f4aea581508f13025bf49cdb40b44',1,'parseCommand(char *cmdStr, int *type, int *degree, int *distance):&#160;movementcommands.c'],['../movementcommands_8h.html#af24f4aea581508f13025bf49cdb40b44',1,'parseCommand(char *cmdStr, int *type, int *degree, int *distance):&#160;movementcommands.c']]],
-  ['playsong',['playSong',['../_sound_8c.html#a89a739cfb6c248f26551c5ac303b0841',1,'playSong():&#160;Sound.c'],['../_sound_8h.html#a89a739cfb6c248f26551c5ac303b0841',1,'playSong():&#160;Sound.c']]]
+  ['main',['main',['../main_8c.html#a840291bc02cba5474a4cb46a9b9566fe',1,'main.c']]],
+  ['moverobotdistance',['moveRobotDistance',['../movementcommands_8c.html#ac19e613d92cdd54f047e591fc0c99b07',1,'moveRobotDistance(oi_t *self, int input):&#160;movementcommands.c'],['../movementcommands_8h.html#ac19e613d92cdd54f047e591fc0c99b07',1,'moveRobotDistance(oi_t *self, int input):&#160;movementcommands.c']]],
+  ['moverobotdistanceignore',['moveRobotDistanceIgnore',['../movementcommands_8c.html#aec736dae690e0a896c49d05b27c9b970',1,'moveRobotDistanceIgnore(oi_t *self, int input):&#160;movementcommands.c'],['../movementcommands_8h.html#aec736dae690e0a896c49d05b27c9b970',1,'moveRobotDistanceIgnore(oi_t *self, int input):&#160;movementcommands.c']]]
 ];
diff --git a/Doxygen/html/search/functions_6.js b/Doxygen/html/search/functions_6.js
index 761d2e08beeeb287e3401c089befabed808c8db9..a8d4cf6c175b134b14db357ce2435829028d64c9 100644
--- a/Doxygen/html/search/functions_6.js
+++ b/Doxygen/html/search/functions_6.js
@@ -1,10 +1,21 @@
 var searchData=
 [
-  ['recieve',['recieve',['../class_t_c_p_client.html#ad00d93c6d424d2a9793d5e605f1381f9',1,'TCPClient']]],
-  ['render',['Render',['../class_render.html#a1a6915de89093bc6383d7c1f18ab81e2',1,'Render']]],
-  ['renderheading',['renderHeading',['../class_render.html#a15d8aae84de7cbdc642c502ebe06edd6',1,'Render']]],
-  ['rendermap',['renderMap',['../class_render.html#a2d6238081fd4a76a2755d078b9b9b6fc',1,'Render']]],
-  ['renderobstacles',['renderObstacles',['../class_render.html#af473a7ea3d059175e0f1f085326c53fe',1,'Render']]],
-  ['renderrobot',['renderRobot',['../class_render.html#a5e195ec754f2f525da6ed44c59110f87',1,'Render']]],
-  ['rendersensors',['renderSensors',['../class_render.html#a4f3a31b51a2a4eb97b1aa38720fe66a5',1,'Render']]]
+  ['oi_5falloc',['oi_alloc',['../open__interface_8c.html#aad249dffdf79454de76e09092a0445f5',1,'oi_alloc():&#160;open_interface.c'],['../open__interface_8h.html#aad249dffdf79454de76e09092a0445f5',1,'oi_alloc():&#160;open_interface.c']]],
+  ['oi_5ffree',['oi_free',['../open__interface_8c.html#abe8995b948a2f47938a574b59c2dda7e',1,'oi_free(oi_t *self):&#160;open_interface.c'],['../open__interface_8h.html#abe8995b948a2f47938a574b59c2dda7e',1,'oi_free(oi_t *self):&#160;open_interface.c']]],
+  ['oi_5finit',['oi_init',['../open__interface_8c.html#a9108ba8c791d0e97444c03b2f40b278a',1,'oi_init(oi_t *self):&#160;open_interface.c'],['../open__interface_8h.html#a9108ba8c791d0e97444c03b2f40b278a',1,'oi_init(oi_t *self):&#160;open_interface.c']]],
+  ['oi_5finit_5fnoupdate',['oi_init_noupdate',['../open__interface_8c.html#ae2a441c2fb23be5db165a8cd7eca0fe7',1,'open_interface.c']]],
+  ['oi_5floadsong',['oi_loadSong',['../open__interface_8c.html#ad945411d8b234cf7c50488a8d9388ff5',1,'oi_loadSong(int song_index, int num_notes, unsigned char *notes, unsigned char *duration):&#160;open_interface.c'],['../open__interface_8h.html#ad945411d8b234cf7c50488a8d9388ff5',1,'oi_loadSong(int song_index, int num_notes, unsigned char *notes, unsigned char *duration):&#160;open_interface.c']]],
+  ['oi_5fparseint',['oi_parseInt',['../open__interface_8c.html#a8c54153bd272749c1fc36a3f98ffc8b1',1,'open_interface.c']]],
+  ['oi_5fparsepacket',['oi_parsePacket',['../open__interface_8c.html#aa238e081cfecd7a9bf3d274f53504362',1,'open_interface.c']]],
+  ['oi_5fplay_5fsong',['oi_play_song',['../open__interface_8c.html#a353765c4297939ef0390a47ca869af56',1,'oi_play_song(int index):&#160;open_interface.c'],['../open__interface_8h.html#a353765c4297939ef0390a47ca869af56',1,'oi_play_song(int index):&#160;open_interface.c']]],
+  ['oi_5fsetleds',['oi_setLeds',['../open__interface_8c.html#a9ce8d6194cf8cb1d39104b641cb5254d',1,'oi_setLeds(uint8_t play_led, uint8_t advance_led, uint8_t power_color, uint8_t power_intensity):&#160;open_interface.c'],['../open__interface_8h.html#a9ce8d6194cf8cb1d39104b641cb5254d',1,'oi_setLeds(uint8_t play_led, uint8_t advance_led, uint8_t power_color, uint8_t power_intensity):&#160;open_interface.c']]],
+  ['oi_5fsetwheels',['oi_setWheels',['../open__interface_8c.html#a49949f029cc5f84ad903aa7022f4e5e0',1,'oi_setWheels(int16_t right_wheel, int16_t left_wheel):&#160;open_interface.c'],['../open__interface_8h.html#a49949f029cc5f84ad903aa7022f4e5e0',1,'oi_setWheels(int16_t right_wheel, int16_t left_wheel):&#160;open_interface.c']]],
+  ['oi_5fshutoff_5finit',['oi_shutoff_init',['../open__interface_8c.html#a1bca24fa8dd6fb148a6ec99ffbe2f29d',1,'oi_shutoff_init(void):&#160;open_interface.c'],['../open__interface_8h.html#a1bca24fa8dd6fb148a6ec99ffbe2f29d',1,'oi_shutoff_init(void):&#160;open_interface.c']]],
+  ['oi_5fuartfastmode',['oi_uartFastMode',['../open__interface_8c.html#af7fe40c5fd5331db4a79ee4d77b12398',1,'open_interface.c']]],
+  ['oi_5fuartinit',['oi_uartInit',['../open__interface_8c.html#ad9923d0a228d340572e71997ddf32df9',1,'open_interface.c']]],
+  ['oi_5fuartreceive',['oi_uartReceive',['../open__interface_8c.html#a5e7e1773c5782c2be5f333f733aab29f',1,'open_interface.c']]],
+  ['oi_5fuartsendbuff',['oi_uartSendBuff',['../open__interface_8c.html#afcbad4c0a94458d1ba7ff11dac9ff42b',1,'open_interface.c']]],
+  ['oi_5fuartsendchar',['oi_uartSendChar',['../open__interface_8c.html#aced7535453b0c0e29af698308d0498d4',1,'open_interface.c']]],
+  ['oi_5fuartsendstr',['oi_uartSendStr',['../open__interface_8c.html#a5eb8e6923f80c6f02cccbb79535cfa7f',1,'open_interface.c']]],
+  ['oi_5fupdate',['oi_update',['../open__interface_8c.html#a9129559bba5ff9dc7e4df64330864674',1,'oi_update(oi_t *self):&#160;open_interface.c'],['../open__interface_8h.html#a9129559bba5ff9dc7e4df64330864674',1,'oi_update(oi_t *self):&#160;open_interface.c']]]
 ];
diff --git a/Doxygen/html/search/functions_7.js b/Doxygen/html/search/functions_7.js
index e3a458e06111e2b4053b7463d74d8709d803779c..0dbbbecbf8c86601859e9753fe1c0ecb82186134 100644
--- a/Doxygen/html/search/functions_7.js
+++ b/Doxygen/html/search/functions_7.js
@@ -1,20 +1,5 @@
 var searchData=
 [
-  ['send',['send',['../class_t_c_p_client.html#af83a77ee901507599e03e55976a99b7d',1,'TCPClient']]],
-  ['setrobotposition',['setRobotPosition',['../class_render.html#ae295d0c33bdce379be5e30f45455170b',1,'Render']]],
-  ['setview',['setView',['../class_render.html#a8f9e3fbd4a2142fea7d5933c54c36ee1',1,'Render']]],
-  ['sonic_5fchirp',['sonic_chirp',['../sonic_8c.html#a588b501da316bcf0dec4756000d5ebce',1,'sonic_chirp():&#160;sonic.c'],['../sonic_8h.html#a588b501da316bcf0dec4756000d5ebce',1,'sonic_chirp():&#160;sonic.c']]],
-  ['sonic_5fconverttodist',['sonic_convertToDist',['../sonic_8c.html#ab57b797a1fd5d1fbfcdbc150282bff91',1,'sonic_convertToDist(int rawSonicValue):&#160;sonic.c'],['../sonic_8h.html#ab57b797a1fd5d1fbfcdbc150282bff91',1,'sonic_convertToDist(int rawSonicValue):&#160;sonic.c']]],
-  ['sonic_5fhandler',['sonic_handler',['../sonic_8c.html#a6ddb01fc5fc0c1b2931dbd1705c5b6b1',1,'sonic_handler():&#160;sonic.c'],['../sonic_8h.html#a6ddb01fc5fc0c1b2931dbd1705c5b6b1',1,'sonic_handler():&#160;sonic.c']]],
-  ['sonic_5finit',['sonic_init',['../sonic_8c.html#a0cd05251349a248cfafffcea2499cd15',1,'sonic_init():&#160;sonic.c'],['../sonic_8h.html#a0cd05251349a248cfafffcea2499cd15',1,'sonic_init():&#160;sonic.c']]],
-  ['sonic_5fstart',['sonic_start',['../sonic_8c.html#a0176373c7a145890460b8b194e3ca0ce',1,'sonic_start():&#160;sonic.c'],['../sonic_8h.html#a0176373c7a145890460b8b194e3ca0ce',1,'sonic_start():&#160;sonic.c']]],
-  ['start',['start',['../class_t_c_p_client.html#a60de64d75454385b23995437f1d72669',1,'TCPClient']]],
-  ['sweep_5fdofullsweep',['sweep_doFullSweep',['../sweep__sensor_8c.html#a967045ec4778e4ef6fc5b6d9aba3a80d',1,'sweep_doFullSweep(float sweepIncrement_deg, uint32_t incDelay_ms):&#160;sweep_sensor.c'],['../sweep__sensor_8h.html#a967045ec4778e4ef6fc5b6d9aba3a80d',1,'sweep_doFullSweep(float sweepIncrement_deg, uint32_t incDelay_ms):&#160;sweep_sensor.c']]],
-  ['sweep_5fdosweep',['sweep_doSweep',['../sweep__sensor_8c.html#ad299d740e7020063a809deb1e7401d92',1,'sweep_doSweep(float startAngle_deg, float endAngle_deg, float sweepIncrement_deg, uint32_t incDelay_ms):&#160;sweep_sensor.c'],['../sweep__sensor_8h.html#ad299d740e7020063a809deb1e7401d92',1,'sweep_doSweep(float startAngle_deg, float endAngle_deg, float sweepIncrement_deg, uint32_t incDelay_ms):&#160;sweep_sensor.c']]],
-  ['sweep_5fgetpos',['sweep_getPos',['../sweep__sensor_8c.html#a111f017ba6449291db5ba445d602659c',1,'sweep_getPos():&#160;sweep_sensor.c'],['../sweep__sensor_8h.html#a111f017ba6449291db5ba445d602659c',1,'sweep_getPos():&#160;sweep_sensor.c']]],
-  ['sweep_5finit',['sweep_init',['../sweep__sensor_8c.html#aa858319b04e153550a93648468db3171',1,'sweep_init():&#160;sweep_sensor.c'],['../sweep__sensor_8h.html#aa858319b04e153550a93648468db3171',1,'sweep_init():&#160;sweep_sensor.c']]],
-  ['sweep_5fmoveabsolute',['sweep_moveAbsolute',['../sweep__sensor_8c.html#a87706abc24e10327499a2612a0ae3cbc',1,'sweep_moveAbsolute(float angularPos_deg):&#160;sweep_sensor.c'],['../sweep__sensor_8h.html#a87706abc24e10327499a2612a0ae3cbc',1,'sweep_moveAbsolute(float angularPos_deg):&#160;sweep_sensor.c']]],
-  ['sweep_5fmoverelative',['sweep_moveRelative',['../sweep__sensor_8c.html#a3570da170a331a34c81a23922b3197fc',1,'sweep_moveRelative(float angularOffset_deg):&#160;sweep_sensor.c'],['../sweep__sensor_8h.html#a3570da170a331a34c81a23922b3197fc',1,'sweep_moveRelative(float angularOffset_deg):&#160;sweep_sensor.c']]],
-  ['sweep_5freadirsensor',['sweep_readIRSensor',['../sweep__sensor_8c.html#af1fcacf7ec9956ea6fb31a62f593d6e7',1,'sweep_readIRSensor():&#160;sweep_sensor.c'],['../sweep__sensor_8h.html#af1fcacf7ec9956ea6fb31a62f593d6e7',1,'sweep_readIRSensor():&#160;sweep_sensor.c']]],
-  ['sweep_5freadsonicsensor',['sweep_readSonicSensor',['../sweep__sensor_8c.html#a059b6d41eb8934ac26e0928818843c6e',1,'sweep_readSonicSensor():&#160;sweep_sensor.c'],['../sweep__sensor_8h.html#a059b6d41eb8934ac26e0928818843c6e',1,'sweep_readSonicSensor():&#160;sweep_sensor.c']]]
+  ['parsecommand',['parseCommand',['../class_t_c_p_client.html#ae0b7b7d3223372c4b887f7bbc1e30ce8',1,'TCPClient::parseCommand()'],['../movementcommands_8c.html#af24f4aea581508f13025bf49cdb40b44',1,'parseCommand(char *cmdStr, int *type, int *degree, int *distance):&#160;movementcommands.c'],['../movementcommands_8h.html#af24f4aea581508f13025bf49cdb40b44',1,'parseCommand(char *cmdStr, int *type, int *degree, int *distance):&#160;movementcommands.c']]],
+  ['playsong',['playSong',['../_sound_8c.html#a89a739cfb6c248f26551c5ac303b0841',1,'playSong():&#160;Sound.c'],['../_sound_8h.html#a89a739cfb6c248f26551c5ac303b0841',1,'playSong():&#160;Sound.c']]]
 ];
diff --git a/Doxygen/html/search/functions_8.js b/Doxygen/html/search/functions_8.js
index b7c21468165109affc0416a1566f8aadc2288e11..761d2e08beeeb287e3401c089befabed808c8db9 100644
--- a/Doxygen/html/search/functions_8.js
+++ b/Doxygen/html/search/functions_8.js
@@ -1,5 +1,10 @@
 var searchData=
 [
-  ['tcpclient',['TCPClient',['../class_t_c_p_client.html#acc9b868574c5cf4325f931c2a3ec9249',1,'TCPClient']]],
-  ['turnrobotdegree',['turnRobotDegree',['../movementcommands_8c.html#a363d2d2063890c9731f0d9222060cd48',1,'turnRobotDegree(oi_t *self, float degrees):&#160;movementcommands.c'],['../movementcommands_8h.html#a363d2d2063890c9731f0d9222060cd48',1,'turnRobotDegree(oi_t *self, float degrees):&#160;movementcommands.c']]]
+  ['recieve',['recieve',['../class_t_c_p_client.html#ad00d93c6d424d2a9793d5e605f1381f9',1,'TCPClient']]],
+  ['render',['Render',['../class_render.html#a1a6915de89093bc6383d7c1f18ab81e2',1,'Render']]],
+  ['renderheading',['renderHeading',['../class_render.html#a15d8aae84de7cbdc642c502ebe06edd6',1,'Render']]],
+  ['rendermap',['renderMap',['../class_render.html#a2d6238081fd4a76a2755d078b9b9b6fc',1,'Render']]],
+  ['renderobstacles',['renderObstacles',['../class_render.html#af473a7ea3d059175e0f1f085326c53fe',1,'Render']]],
+  ['renderrobot',['renderRobot',['../class_render.html#a5e195ec754f2f525da6ed44c59110f87',1,'Render']]],
+  ['rendersensors',['renderSensors',['../class_render.html#a4f3a31b51a2a4eb97b1aa38720fe66a5',1,'Render']]]
 ];
diff --git a/Doxygen/html/search/searchdata.js b/Doxygen/html/search/searchdata.js
index faf79187743d8d3af59d4cc87baf9f787f405fce..712394ce91d31c89d79c7dbcd686fb7ee764cc94 100644
--- a/Doxygen/html/search/searchdata.js
+++ b/Doxygen/html/search/searchdata.js
@@ -2,8 +2,8 @@ var indexSectionsWithContent =
 {
   0: "abcdeghilmoprstuvw~",
   1: "ort",
-  2: "cimrstu",
-  3: "acgimprstu~",
+  2: "cilmorstu",
+  3: "acgilmoprstu~",
   4: "bdehlmprsvw",
   5: "ct",
   6: "pt"
diff --git a/Doxygen/html/search/variables_1.js b/Doxygen/html/search/variables_1.js
index c3920ac3f803ff2b6e6fdaf0d8fa1408958f7704..a64a438595e75dce7a2ec1df3f9ce5cf39f4039b 100644
--- a/Doxygen/html/search/variables_1.js
+++ b/Doxygen/html/search/variables_1.js
@@ -1,5 +1,5 @@
 var searchData=
 [
-  ['data',['data',['../movementcommands_8c.html#a91a70b77df95bd8b0830b49a094c2acb',1,'movementcommands.c']]],
+  ['data',['data',['../main_8c.html#a91a70b77df95bd8b0830b49a094c2acb',1,'data():&#160;main.c'],['../movementcommands_8c.html#a91a70b77df95bd8b0830b49a094c2acb',1,'data():&#160;movementcommands.c']]],
   ['degrees_5fper_5fmicros',['degrees_per_micros',['../sweep__sensor_8c.html#ad15c1ce3dc8d7295980df0c002469685',1,'sweep_sensor.c']]]
 ];
diff --git a/Doxygen/html/sonic_8c_source.html b/Doxygen/html/sonic_8c_source.html
index ee395035079f7646f1c812fc4d1e2e1a57bd2fbc..31ddb38ef5dff9355b490d320d76daa5315d6d62 100644
--- a/Doxygen/html/sonic_8c_source.html
+++ b/Doxygen/html/sonic_8c_source.html
@@ -92,7 +92,7 @@ $(document).ready(function(){initNavTree('sonic_8c_source.html','');});
 <div class="title">sonic.c</div>  </div>
 </div><!--header-->
 <div class="contents">
-<a href="sonic_8c.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno">    1</span>&#160;</div><div class="line"><a name="l00014"></a><span class="lineno">   14</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="sonic_8h.html">sonic.h</a>&quot;</span></div><div class="line"><a name="l00015"></a><span class="lineno">   15</span>&#160;</div><div class="line"><a name="l00016"></a><span class="lineno">   16</span>&#160;<span class="comment">// The speed of sound in centimeters per second</span></div><div class="line"><a name="l00017"></a><span class="lineno">   17</span>&#160;<span class="preprocessor">#define V_SOUND_cmps 34000</span></div><div class="line"><a name="l00018"></a><span class="lineno">   18</span>&#160;</div><div class="line"><a name="l00019"></a><span class="lineno">   19</span>&#160;</div><div class="line"><a name="l00020"></a><span class="lineno">   20</span>&#160;<span class="comment">// -------------------------------- BEGIN GLOBAL VARIABLES -------------------------------- //</span></div><div class="line"><a name="l00021"></a><span class="lineno">   21</span>&#160;</div><div class="line"><a name="l00022"></a><span class="lineno">   22</span>&#160;<span class="comment">// GLOBAL VARIABLE(S) FOR SONIC:</span></div><div class="line"><a name="l00026"></a><span class="lineno"><a class="line" href="sonic_8c.html#af4b4715f3c15d0e48d08060ec180625c">   26</a></span>&#160;<span class="comment"></span><span class="keyword">volatile</span> <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> <a class="code" href="sonic_8c.html#af4b4715f3c15d0e48d08060ec180625c">sonic_timer</a> = 0;</div><div class="line"><a name="l00027"></a><span class="lineno">   27</span>&#160;</div><div class="line"><a name="l00031"></a><span class="lineno"><a class="line" href="sonic_8c.html#abeb94c8bc008aa5a114ad4c89ea1a1c4">   31</a></span>&#160;<span class="keyword">volatile</span> <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> <a class="code" href="sonic_8c.html#abeb94c8bc008aa5a114ad4c89ea1a1c4">sonic_read</a> = 0;</div><div class="line"><a name="l00032"></a><span class="lineno">   32</span>&#160;</div><div class="line"><a name="l00036"></a><span class="lineno"><a class="line" href="sonic_8c.html#a5c25582d16e2ebac840768e056b48d39">   36</a></span>&#160;<span class="keyword">volatile</span> <span class="keywordtype">bool</span> <a class="code" href="sonic_8c.html#a5c25582d16e2ebac840768e056b48d39">sonic_ready</a> = 0;</div><div class="line"><a name="l00037"></a><span class="lineno">   37</span>&#160;</div><div class="line"><a name="l00038"></a><span class="lineno">   38</span>&#160;<span class="comment">// -------------------------------- END GLOBAL VARIABLES -------------------------------- //</span></div><div class="line"><a name="l00039"></a><span class="lineno">   39</span>&#160;</div><div class="line"><a name="l00040"></a><span class="lineno">   40</span>&#160;</div><div class="line"><a name="l00041"></a><span class="lineno"><a class="line" href="sonic_8h.html#a6ddb01fc5fc0c1b2931dbd1705c5b6b1">   41</a></span>&#160;<span class="keywordtype">void</span> <a class="code" href="sonic_8c.html#a6ddb01fc5fc0c1b2931dbd1705c5b6b1">sonic_handler</a>()</div><div class="line"><a name="l00042"></a><span class="lineno">   42</span>&#160;{</div><div class="line"><a name="l00043"></a><span class="lineno">   43</span>&#160;</div><div class="line"><a name="l00044"></a><span class="lineno">   44</span>&#160;    <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> current_reading = TIMER3_TBR_R;</div><div class="line"><a name="l00045"></a><span class="lineno">   45</span>&#160;    <span class="comment">//Check Flags and reset if not input capture flag</span></div><div class="line"><a name="l00046"></a><span class="lineno">   46</span>&#160;    <span class="keywordflow">if</span> (TIMER3_RIS_R &amp; 0xB00)</div><div class="line"><a name="l00047"></a><span class="lineno">   47</span>&#160;    {</div><div class="line"><a name="l00048"></a><span class="lineno">   48</span>&#160;        TIMER3_ICR_R |= 0xB00;</div><div class="line"><a name="l00049"></a><span class="lineno">   49</span>&#160;    }</div><div class="line"><a name="l00050"></a><span class="lineno">   50</span>&#160;    <span class="keywordflow">else</span></div><div class="line"><a name="l00051"></a><span class="lineno">   51</span>&#160;    {</div><div class="line"><a name="l00052"></a><span class="lineno">   52</span>&#160;        <span class="comment">//check if the last sonic pulse returned</span></div><div class="line"><a name="l00053"></a><span class="lineno">   53</span>&#160;        <span class="keywordflow">if</span> (<a class="code" href="sonic_8c.html#a5c25582d16e2ebac840768e056b48d39">sonic_ready</a>)</div><div class="line"><a name="l00054"></a><span class="lineno">   54</span>&#160;        {</div><div class="line"><a name="l00055"></a><span class="lineno">   55</span>&#160;            <span class="comment">//Make sure it&#39;s a trigger of sonic sensor by checking PB3</span></div><div class="line"><a name="l00056"></a><span class="lineno">   56</span>&#160;            <span class="keywordflow">if</span> ((GPIO_PORTB_DATA_R &amp; 0x08))</div><div class="line"><a name="l00057"></a><span class="lineno">   57</span>&#160;            {</div><div class="line"><a name="l00058"></a><span class="lineno">   58</span>&#160;                <a class="code" href="sonic_8c.html#abeb94c8bc008aa5a114ad4c89ea1a1c4">sonic_read</a> = current_reading;</div><div class="line"><a name="l00059"></a><span class="lineno">   59</span>&#160;            }</div><div class="line"><a name="l00060"></a><span class="lineno">   60</span>&#160;            <span class="keywordflow">else</span></div><div class="line"><a name="l00061"></a><span class="lineno">   61</span>&#160;            {</div><div class="line"><a name="l00062"></a><span class="lineno">   62</span>&#160;                <span class="comment">//Read Sonic sensor, if overflow do different calculation</span></div><div class="line"><a name="l00063"></a><span class="lineno">   63</span>&#160;                <span class="keywordflow">if</span> (current_reading &lt; <a class="code" href="sonic_8c.html#abeb94c8bc008aa5a114ad4c89ea1a1c4">sonic_read</a>)</div><div class="line"><a name="l00064"></a><span class="lineno">   64</span>&#160;                {</div><div class="line"><a name="l00065"></a><span class="lineno">   65</span>&#160;                    <a class="code" href="sonic_8c.html#af4b4715f3c15d0e48d08060ec180625c">sonic_timer</a> = (0xFFFFFF - <a class="code" href="sonic_8c.html#abeb94c8bc008aa5a114ad4c89ea1a1c4">sonic_read</a>) + current_reading;</div><div class="line"><a name="l00066"></a><span class="lineno">   66</span>&#160;                }</div><div class="line"><a name="l00067"></a><span class="lineno">   67</span>&#160;                <span class="keywordflow">else</span></div><div class="line"><a name="l00068"></a><span class="lineno">   68</span>&#160;                {</div><div class="line"><a name="l00069"></a><span class="lineno">   69</span>&#160;                    <a class="code" href="sonic_8c.html#af4b4715f3c15d0e48d08060ec180625c">sonic_timer</a> = current_reading - <a class="code" href="sonic_8c.html#abeb94c8bc008aa5a114ad4c89ea1a1c4">sonic_read</a>;</div><div class="line"><a name="l00070"></a><span class="lineno">   70</span>&#160;                }</div><div class="line"><a name="l00071"></a><span class="lineno">   71</span>&#160;                <a class="code" href="sonic_8c.html#a5c25582d16e2ebac840768e056b48d39">sonic_ready</a> = 0;</div><div class="line"><a name="l00072"></a><span class="lineno">   72</span>&#160;            }</div><div class="line"><a name="l00073"></a><span class="lineno">   73</span>&#160;</div><div class="line"><a name="l00074"></a><span class="lineno">   74</span>&#160;        }</div><div class="line"><a name="l00075"></a><span class="lineno">   75</span>&#160;        TIMER3_ICR_R |= 0x400;</div><div class="line"><a name="l00076"></a><span class="lineno">   76</span>&#160;    }</div><div class="line"><a name="l00077"></a><span class="lineno">   77</span>&#160;}</div><div class="line"><a name="l00078"></a><span class="lineno">   78</span>&#160;</div><div class="line"><a name="l00079"></a><span class="lineno"><a class="line" href="sonic_8h.html#a026052969f1c177a4c0c035b1ea5b9e7">   79</a></span>&#160;<span class="keywordtype">void</span> <a class="code" href="sonic_8c.html#a026052969f1c177a4c0c035b1ea5b9e7">chirp_init</a>()</div><div class="line"><a name="l00080"></a><span class="lineno">   80</span>&#160;{</div><div class="line"><a name="l00081"></a><span class="lineno">   81</span>&#160;    GPIO_PORTB_AFSEL_R &amp;= ~0x08; <span class="comment">//Disable TIMER3 input</span></div><div class="line"><a name="l00082"></a><span class="lineno">   82</span>&#160;    GPIO_PORTB_DIR_R &amp;= ~0x000000008; <span class="comment">//Clear the PB3 direction</span></div><div class="line"><a name="l00083"></a><span class="lineno">   83</span>&#160;    GPIO_PORTB_DIR_R |= 0x000000008; <span class="comment">//Set PB3 as output</span></div><div class="line"><a name="l00084"></a><span class="lineno">   84</span>&#160;</div><div class="line"><a name="l00085"></a><span class="lineno">   85</span>&#160;}</div><div class="line"><a name="l00086"></a><span class="lineno">   86</span>&#160;</div><div class="line"><a name="l00087"></a><span class="lineno"><a class="line" href="sonic_8h.html#a0176373c7a145890460b8b194e3ca0ce">   87</a></span>&#160;<span class="keywordtype">void</span> <a class="code" href="sonic_8c.html#a0176373c7a145890460b8b194e3ca0ce">sonic_start</a>()</div><div class="line"><a name="l00088"></a><span class="lineno">   88</span>&#160;{</div><div class="line"><a name="l00089"></a><span class="lineno">   89</span>&#160;    GPIO_PORTB_DATA_R &amp;= ~0x08; <span class="comment">//Set PB3 to LOW</span></div><div class="line"><a name="l00090"></a><span class="lineno">   90</span>&#160;    GPIO_PORTB_AFSEL_R |= 0x08; <span class="comment">//Set PB3 as AFSEL</span></div><div class="line"><a name="l00091"></a><span class="lineno">   91</span>&#160;    GPIO_PORTB_DIR_R &amp;= ~0x000000008; <span class="comment">//set PB3 as input</span></div><div class="line"><a name="l00092"></a><span class="lineno">   92</span>&#160;    GPIO_PORTB_PCTL_R |= 0x7000; <span class="comment">//set PB3 to Timer 3</span></div><div class="line"><a name="l00093"></a><span class="lineno">   93</span>&#160;    TIMER3_ICR_R |= 0xF00; <span class="comment">// Reset the Interrupt flag</span></div><div class="line"><a name="l00094"></a><span class="lineno">   94</span>&#160;    <a class="code" href="sonic_8c.html#a5c25582d16e2ebac840768e056b48d39">sonic_ready</a> = 1; <span class="comment">//Note that pulse has been sent for the handler to wait for it</span></div><div class="line"><a name="l00095"></a><span class="lineno">   95</span>&#160;}</div><div class="line"><a name="l00096"></a><span class="lineno">   96</span>&#160;</div><div class="line"><a name="l00097"></a><span class="lineno"><a class="line" href="sonic_8h.html#a0cd05251349a248cfafffcea2499cd15">   97</a></span>&#160;<span class="keywordtype">void</span> <a class="code" href="sonic_8c.html#a0cd05251349a248cfafffcea2499cd15">sonic_init</a>()</div><div class="line"><a name="l00098"></a><span class="lineno">   98</span>&#160;{</div><div class="line"><a name="l00099"></a><span class="lineno">   99</span>&#160;    SYSCTL_RCGCTIMER_R |= 0x08; <span class="comment">//Enable Timer 3</span></div><div class="line"><a name="l00100"></a><span class="lineno">  100</span>&#160;    SYSCTL_RCGCGPIO_R |= 0x02; <span class="comment">//Enable port B</span></div><div class="line"><a name="l00101"></a><span class="lineno">  101</span>&#160;    timer_waitMillis(10);</div><div class="line"><a name="l00102"></a><span class="lineno">  102</span>&#160;    GPIO_PORTB_DEN_R |= 0x08; <span class="comment">//Enable pin 3</span></div><div class="line"><a name="l00103"></a><span class="lineno">  103</span>&#160;</div><div class="line"><a name="l00104"></a><span class="lineno">  104</span>&#160;    TIMER3_CTL_R &amp;= ~0x101; <span class="comment">//Clear timer 3 CTL</span></div><div class="line"><a name="l00105"></a><span class="lineno">  105</span>&#160;    TIMER3_CFG_R &amp;= ~0x007; <span class="comment">//Clear timer 3 CFG</span></div><div class="line"><a name="l00106"></a><span class="lineno">  106</span>&#160;    TIMER3_CFG_R |= 0x04;   <span class="comment">//Set to 16 bit timer</span></div><div class="line"><a name="l00107"></a><span class="lineno">  107</span>&#160;    TIMER3_TBMR_R &amp;= ~0xFFF; <span class="comment">//Clear Timer 3 TBMR</span></div><div class="line"><a name="l00108"></a><span class="lineno">  108</span>&#160;    TIMER3_TBMR_R |= 0x37; <span class="comment">//Set to capture mode, Edge Time, and Match interrupt.</span></div><div class="line"><a name="l00109"></a><span class="lineno">  109</span>&#160;</div><div class="line"><a name="l00110"></a><span class="lineno">  110</span>&#160;</div><div class="line"><a name="l00111"></a><span class="lineno">  111</span>&#160;</div><div class="line"><a name="l00112"></a><span class="lineno">  112</span>&#160;    TIMER3_CTL_R |= 0xC00; <span class="comment">//Interrupt on both edges</span></div><div class="line"><a name="l00113"></a><span class="lineno">  113</span>&#160;    TIMER3_IMR_R |= 0xF00; <span class="comment">//Set interrupt to all mask</span></div><div class="line"><a name="l00114"></a><span class="lineno">  114</span>&#160;    TIMER3_ICR_R |= 0xF00; <span class="comment">//Clear all interrupt flags</span></div><div class="line"><a name="l00115"></a><span class="lineno">  115</span>&#160;    NVIC_EN1_R |= (0x1 &lt;&lt; 4); <span class="comment">//Turn on Timer 3 interrupt</span></div><div class="line"><a name="l00116"></a><span class="lineno">  116</span>&#160;</div><div class="line"><a name="l00117"></a><span class="lineno">  117</span>&#160;    IntRegister(INT_TIMER3B, <a class="code" href="sonic_8c.html#a6ddb01fc5fc0c1b2931dbd1705c5b6b1">sonic_handler</a>); <span class="comment">//register TIMER3A interrupt handler</span></div><div class="line"><a name="l00118"></a><span class="lineno">  118</span>&#160;    IntMasterEnable(); <span class="comment">//Initialize global interrupts</span></div><div class="line"><a name="l00119"></a><span class="lineno">  119</span>&#160;</div><div class="line"><a name="l00120"></a><span class="lineno">  120</span>&#160;    TIMER3_CTL_R |= 0x101; <span class="comment">//Turn on both A and B timers</span></div><div class="line"><a name="l00121"></a><span class="lineno">  121</span>&#160;}</div><div class="line"><a name="l00122"></a><span class="lineno">  122</span>&#160;</div><div class="line"><a name="l00123"></a><span class="lineno"><a class="line" href="sonic_8h.html#a588b501da316bcf0dec4756000d5ebce">  123</a></span>&#160;<span class="keywordtype">void</span> <a class="code" href="sonic_8c.html#a588b501da316bcf0dec4756000d5ebce">sonic_chirp</a>()</div><div class="line"><a name="l00124"></a><span class="lineno">  124</span>&#160;{</div><div class="line"><a name="l00125"></a><span class="lineno">  125</span>&#160;    <a class="code" href="sonic_8c.html#a026052969f1c177a4c0c035b1ea5b9e7">chirp_init</a>(); <span class="comment">//Turn off Reading mode and set up GPIO for pulse sending</span></div><div class="line"><a name="l00126"></a><span class="lineno">  126</span>&#160;    GPIO_PORTB_DIR_R &amp;= ~0x000000008;<span class="comment">//Clear the direction of PB3</span></div><div class="line"><a name="l00127"></a><span class="lineno">  127</span>&#160;    GPIO_PORTB_DIR_R |= 0x000000008;<span class="comment">//Set PB3 as output</span></div><div class="line"><a name="l00128"></a><span class="lineno">  128</span>&#160;</div><div class="line"><a name="l00129"></a><span class="lineno">  129</span>&#160;    GPIO_PORTB_DATA_R |= 0x08; <span class="comment">//Set PB3 to HIGH</span></div><div class="line"><a name="l00130"></a><span class="lineno">  130</span>&#160;    timer_waitMicros(25);</div><div class="line"><a name="l00131"></a><span class="lineno">  131</span>&#160;    GPIO_PORTB_DATA_R &amp;= ~0x08; <span class="comment">//Set PB3 to LOW</span></div><div class="line"><a name="l00132"></a><span class="lineno">  132</span>&#160;    timer_waitMicros(25);</div><div class="line"><a name="l00133"></a><span class="lineno">  133</span>&#160;    <a class="code" href="sonic_8c.html#a0176373c7a145890460b8b194e3ca0ce">sonic_start</a>(); <span class="comment">//Wait for return pulse</span></div><div class="line"><a name="l00134"></a><span class="lineno">  134</span>&#160;</div><div class="line"><a name="l00135"></a><span class="lineno">  135</span>&#160;}</div><div class="line"><a name="l00136"></a><span class="lineno">  136</span>&#160;</div><div class="line"><a name="l00137"></a><span class="lineno"><a class="line" href="sonic_8h.html#adbe32feee06ccd7a0a9c14709b9a1ce4">  137</a></span>&#160;<span class="keywordtype">int</span> <a class="code" href="sonic_8c.html#adbe32feee06ccd7a0a9c14709b9a1ce4">get_sonic_reading</a>()</div><div class="line"><a name="l00138"></a><span class="lineno">  138</span>&#160;{</div><div class="line"><a name="l00139"></a><span class="lineno">  139</span>&#160;    <span class="keywordflow">return</span> <a class="code" href="sonic_8c.html#af4b4715f3c15d0e48d08060ec180625c">sonic_timer</a>; <span class="comment">//Raw reading of the timer</span></div><div class="line"><a name="l00140"></a><span class="lineno">  140</span>&#160;}</div><div class="line"><a name="l00141"></a><span class="lineno">  141</span>&#160;</div><div class="line"><a name="l00142"></a><span class="lineno"><a class="line" href="sonic_8h.html#ab57b797a1fd5d1fbfcdbc150282bff91">  142</a></span>&#160;<span class="keywordtype">float</span> <a class="code" href="sonic_8c.html#ab57b797a1fd5d1fbfcdbc150282bff91">sonic_convertToDist</a>(<span class="keywordtype">int</span> rawSonicValue)</div><div class="line"><a name="l00143"></a><span class="lineno">  143</span>&#160;{</div><div class="line"><a name="l00144"></a><span class="lineno">  144</span>&#160;    <span class="comment">// Calculate and return the distance to the detected object in centimeters</span></div><div class="line"><a name="l00145"></a><span class="lineno">  145</span>&#160;    <span class="keywordflow">return</span> ((rawSonicValue / 16000000.0) * 0.5 * V_SOUND_cmps);</div><div class="line"><a name="l00146"></a><span class="lineno">  146</span>&#160;}</div><div class="ttc" id="sonic_8c_html_adbe32feee06ccd7a0a9c14709b9a1ce4"><div class="ttname"><a href="sonic_8c.html#adbe32feee06ccd7a0a9c14709b9a1ce4">get_sonic_reading</a></div><div class="ttdeci">int get_sonic_reading()</div><div class="ttdef"><b>Definition:</b> <a href="sonic_8c_source.html#l00137">sonic.c:137</a></div></div>
+<a href="sonic_8c.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno">    1</span>&#160;</div><div class="line"><a name="l00014"></a><span class="lineno">   14</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="sonic_8h.html">sonic.h</a>&quot;</span></div><div class="line"><a name="l00015"></a><span class="lineno">   15</span>&#160;</div><div class="line"><a name="l00016"></a><span class="lineno">   16</span>&#160;<span class="comment">// The speed of sound in centimeters per second</span></div><div class="line"><a name="l00017"></a><span class="lineno">   17</span>&#160;<span class="preprocessor">#define V_SOUND_cmps 34000</span></div><div class="line"><a name="l00018"></a><span class="lineno">   18</span>&#160;</div><div class="line"><a name="l00019"></a><span class="lineno">   19</span>&#160;</div><div class="line"><a name="l00020"></a><span class="lineno">   20</span>&#160;<span class="comment">// -------------------------------- BEGIN GLOBAL VARIABLES -------------------------------- //</span></div><div class="line"><a name="l00021"></a><span class="lineno">   21</span>&#160;</div><div class="line"><a name="l00022"></a><span class="lineno">   22</span>&#160;<span class="comment">// GLOBAL VARIABLE(S) FOR SONIC:</span></div><div class="line"><a name="l00026"></a><span class="lineno"><a class="line" href="sonic_8c.html#af4b4715f3c15d0e48d08060ec180625c">   26</a></span>&#160;<span class="comment"></span><span class="keyword">volatile</span> <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> <a class="code" href="sonic_8c.html#af4b4715f3c15d0e48d08060ec180625c">sonic_timer</a> = 0;</div><div class="line"><a name="l00027"></a><span class="lineno">   27</span>&#160;</div><div class="line"><a name="l00031"></a><span class="lineno"><a class="line" href="sonic_8c.html#abeb94c8bc008aa5a114ad4c89ea1a1c4">   31</a></span>&#160;<span class="keyword">volatile</span> <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> <a class="code" href="sonic_8c.html#abeb94c8bc008aa5a114ad4c89ea1a1c4">sonic_read</a> = 0;</div><div class="line"><a name="l00032"></a><span class="lineno">   32</span>&#160;</div><div class="line"><a name="l00036"></a><span class="lineno"><a class="line" href="sonic_8c.html#a5c25582d16e2ebac840768e056b48d39">   36</a></span>&#160;<span class="keyword">volatile</span> <span class="keywordtype">bool</span> <a class="code" href="sonic_8c.html#a5c25582d16e2ebac840768e056b48d39">sonic_ready</a> = 0;</div><div class="line"><a name="l00037"></a><span class="lineno">   37</span>&#160;</div><div class="line"><a name="l00038"></a><span class="lineno">   38</span>&#160;<span class="comment">// -------------------------------- END GLOBAL VARIABLES -------------------------------- //</span></div><div class="line"><a name="l00039"></a><span class="lineno">   39</span>&#160;</div><div class="line"><a name="l00040"></a><span class="lineno">   40</span>&#160;</div><div class="line"><a name="l00041"></a><span class="lineno"><a class="line" href="sonic_8h.html#a6ddb01fc5fc0c1b2931dbd1705c5b6b1">   41</a></span>&#160;<span class="keywordtype">void</span> <a class="code" href="sonic_8c.html#a6ddb01fc5fc0c1b2931dbd1705c5b6b1">sonic_handler</a>()</div><div class="line"><a name="l00042"></a><span class="lineno">   42</span>&#160;{</div><div class="line"><a name="l00043"></a><span class="lineno">   43</span>&#160;</div><div class="line"><a name="l00044"></a><span class="lineno">   44</span>&#160;    <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> current_reading = TIMER3_TBR_R;</div><div class="line"><a name="l00045"></a><span class="lineno">   45</span>&#160;    <span class="comment">//Check Flags and reset if not input capture flag</span></div><div class="line"><a name="l00046"></a><span class="lineno">   46</span>&#160;    <span class="keywordflow">if</span> (TIMER3_RIS_R &amp; 0xB00)</div><div class="line"><a name="l00047"></a><span class="lineno">   47</span>&#160;    {</div><div class="line"><a name="l00048"></a><span class="lineno">   48</span>&#160;        TIMER3_ICR_R |= 0xB00;</div><div class="line"><a name="l00049"></a><span class="lineno">   49</span>&#160;    }</div><div class="line"><a name="l00050"></a><span class="lineno">   50</span>&#160;    <span class="keywordflow">else</span></div><div class="line"><a name="l00051"></a><span class="lineno">   51</span>&#160;    {</div><div class="line"><a name="l00052"></a><span class="lineno">   52</span>&#160;        <span class="comment">//check if the last sonic pulse returned</span></div><div class="line"><a name="l00053"></a><span class="lineno">   53</span>&#160;        <span class="keywordflow">if</span> (<a class="code" href="sonic_8c.html#a5c25582d16e2ebac840768e056b48d39">sonic_ready</a>)</div><div class="line"><a name="l00054"></a><span class="lineno">   54</span>&#160;        {</div><div class="line"><a name="l00055"></a><span class="lineno">   55</span>&#160;            <span class="comment">//Make sure it&#39;s a trigger of sonic sensor by checking PB3</span></div><div class="line"><a name="l00056"></a><span class="lineno">   56</span>&#160;            <span class="keywordflow">if</span> ((GPIO_PORTB_DATA_R &amp; 0x08))</div><div class="line"><a name="l00057"></a><span class="lineno">   57</span>&#160;            {</div><div class="line"><a name="l00058"></a><span class="lineno">   58</span>&#160;                <a class="code" href="sonic_8c.html#abeb94c8bc008aa5a114ad4c89ea1a1c4">sonic_read</a> = current_reading;</div><div class="line"><a name="l00059"></a><span class="lineno">   59</span>&#160;            }</div><div class="line"><a name="l00060"></a><span class="lineno">   60</span>&#160;            <span class="keywordflow">else</span></div><div class="line"><a name="l00061"></a><span class="lineno">   61</span>&#160;            {</div><div class="line"><a name="l00062"></a><span class="lineno">   62</span>&#160;                <span class="comment">//Read Sonic sensor, if overflow do different calculation</span></div><div class="line"><a name="l00063"></a><span class="lineno">   63</span>&#160;                <span class="keywordflow">if</span> (current_reading &lt; <a class="code" href="sonic_8c.html#abeb94c8bc008aa5a114ad4c89ea1a1c4">sonic_read</a>)</div><div class="line"><a name="l00064"></a><span class="lineno">   64</span>&#160;                {</div><div class="line"><a name="l00065"></a><span class="lineno">   65</span>&#160;                    <a class="code" href="sonic_8c.html#af4b4715f3c15d0e48d08060ec180625c">sonic_timer</a> = (0xFFFFFF - <a class="code" href="sonic_8c.html#abeb94c8bc008aa5a114ad4c89ea1a1c4">sonic_read</a>) + current_reading;</div><div class="line"><a name="l00066"></a><span class="lineno">   66</span>&#160;                }</div><div class="line"><a name="l00067"></a><span class="lineno">   67</span>&#160;                <span class="keywordflow">else</span></div><div class="line"><a name="l00068"></a><span class="lineno">   68</span>&#160;                {</div><div class="line"><a name="l00069"></a><span class="lineno">   69</span>&#160;                    <a class="code" href="sonic_8c.html#af4b4715f3c15d0e48d08060ec180625c">sonic_timer</a> = current_reading - <a class="code" href="sonic_8c.html#abeb94c8bc008aa5a114ad4c89ea1a1c4">sonic_read</a>;</div><div class="line"><a name="l00070"></a><span class="lineno">   70</span>&#160;                }</div><div class="line"><a name="l00071"></a><span class="lineno">   71</span>&#160;                <a class="code" href="sonic_8c.html#a5c25582d16e2ebac840768e056b48d39">sonic_ready</a> = 0;</div><div class="line"><a name="l00072"></a><span class="lineno">   72</span>&#160;            }</div><div class="line"><a name="l00073"></a><span class="lineno">   73</span>&#160;</div><div class="line"><a name="l00074"></a><span class="lineno">   74</span>&#160;        }</div><div class="line"><a name="l00075"></a><span class="lineno">   75</span>&#160;        TIMER3_ICR_R |= 0x400;</div><div class="line"><a name="l00076"></a><span class="lineno">   76</span>&#160;    }</div><div class="line"><a name="l00077"></a><span class="lineno">   77</span>&#160;}</div><div class="line"><a name="l00078"></a><span class="lineno">   78</span>&#160;</div><div class="line"><a name="l00079"></a><span class="lineno"><a class="line" href="sonic_8h.html#a026052969f1c177a4c0c035b1ea5b9e7">   79</a></span>&#160;<span class="keywordtype">void</span> <a class="code" href="sonic_8c.html#a026052969f1c177a4c0c035b1ea5b9e7">chirp_init</a>()</div><div class="line"><a name="l00080"></a><span class="lineno">   80</span>&#160;{</div><div class="line"><a name="l00081"></a><span class="lineno">   81</span>&#160;    GPIO_PORTB_AFSEL_R &amp;= ~0x08; <span class="comment">//Disable TIMER3 input</span></div><div class="line"><a name="l00082"></a><span class="lineno">   82</span>&#160;    GPIO_PORTB_DIR_R &amp;= ~0x000000008; <span class="comment">//Clear the PB3 direction</span></div><div class="line"><a name="l00083"></a><span class="lineno">   83</span>&#160;    GPIO_PORTB_DIR_R |= 0x000000008; <span class="comment">//Set PB3 as output</span></div><div class="line"><a name="l00084"></a><span class="lineno">   84</span>&#160;</div><div class="line"><a name="l00085"></a><span class="lineno">   85</span>&#160;}</div><div class="line"><a name="l00086"></a><span class="lineno">   86</span>&#160;</div><div class="line"><a name="l00087"></a><span class="lineno"><a class="line" href="sonic_8h.html#a0176373c7a145890460b8b194e3ca0ce">   87</a></span>&#160;<span class="keywordtype">void</span> <a class="code" href="sonic_8c.html#a0176373c7a145890460b8b194e3ca0ce">sonic_start</a>()</div><div class="line"><a name="l00088"></a><span class="lineno">   88</span>&#160;{</div><div class="line"><a name="l00089"></a><span class="lineno">   89</span>&#160;    GPIO_PORTB_DATA_R &amp;= ~0x08; <span class="comment">//Set PB3 to LOW</span></div><div class="line"><a name="l00090"></a><span class="lineno">   90</span>&#160;    GPIO_PORTB_AFSEL_R |= 0x08; <span class="comment">//Set PB3 as AFSEL</span></div><div class="line"><a name="l00091"></a><span class="lineno">   91</span>&#160;    GPIO_PORTB_DIR_R &amp;= ~0x000000008; <span class="comment">//set PB3 as input</span></div><div class="line"><a name="l00092"></a><span class="lineno">   92</span>&#160;    GPIO_PORTB_PCTL_R |= 0x7000; <span class="comment">//set PB3 to Timer 3</span></div><div class="line"><a name="l00093"></a><span class="lineno">   93</span>&#160;    TIMER3_ICR_R |= 0xF00; <span class="comment">// Reset the Interrupt flag</span></div><div class="line"><a name="l00094"></a><span class="lineno">   94</span>&#160;    <a class="code" href="sonic_8c.html#a5c25582d16e2ebac840768e056b48d39">sonic_ready</a> = 1; <span class="comment">//Note that pulse has been sent for the handler to wait for it</span></div><div class="line"><a name="l00095"></a><span class="lineno">   95</span>&#160;}</div><div class="line"><a name="l00096"></a><span class="lineno">   96</span>&#160;</div><div class="line"><a name="l00097"></a><span class="lineno"><a class="line" href="sonic_8h.html#a0cd05251349a248cfafffcea2499cd15">   97</a></span>&#160;<span class="keywordtype">void</span> <a class="code" href="sonic_8c.html#a0cd05251349a248cfafffcea2499cd15">sonic_init</a>()</div><div class="line"><a name="l00098"></a><span class="lineno">   98</span>&#160;{</div><div class="line"><a name="l00099"></a><span class="lineno">   99</span>&#160;    SYSCTL_RCGCTIMER_R |= 0x08; <span class="comment">//Enable Timer 3</span></div><div class="line"><a name="l00100"></a><span class="lineno">  100</span>&#160;    SYSCTL_RCGCGPIO_R |= 0x02; <span class="comment">//Enable port B</span></div><div class="line"><a name="l00101"></a><span class="lineno">  101</span>&#160;    <a class="code" href="timer_8c.html#a7e2a3b4520e885e5e7d40fa87e242a75">timer_waitMillis</a>(10);</div><div class="line"><a name="l00102"></a><span class="lineno">  102</span>&#160;    GPIO_PORTB_DEN_R |= 0x08; <span class="comment">//Enable pin 3</span></div><div class="line"><a name="l00103"></a><span class="lineno">  103</span>&#160;</div><div class="line"><a name="l00104"></a><span class="lineno">  104</span>&#160;    TIMER3_CTL_R &amp;= ~0x101; <span class="comment">//Clear timer 3 CTL</span></div><div class="line"><a name="l00105"></a><span class="lineno">  105</span>&#160;    TIMER3_CFG_R &amp;= ~0x007; <span class="comment">//Clear timer 3 CFG</span></div><div class="line"><a name="l00106"></a><span class="lineno">  106</span>&#160;    TIMER3_CFG_R |= 0x04;   <span class="comment">//Set to 16 bit timer</span></div><div class="line"><a name="l00107"></a><span class="lineno">  107</span>&#160;    TIMER3_TBMR_R &amp;= ~0xFFF; <span class="comment">//Clear Timer 3 TBMR</span></div><div class="line"><a name="l00108"></a><span class="lineno">  108</span>&#160;    TIMER3_TBMR_R |= 0x37; <span class="comment">//Set to capture mode, Edge Time, and Match interrupt.</span></div><div class="line"><a name="l00109"></a><span class="lineno">  109</span>&#160;</div><div class="line"><a name="l00110"></a><span class="lineno">  110</span>&#160;</div><div class="line"><a name="l00111"></a><span class="lineno">  111</span>&#160;</div><div class="line"><a name="l00112"></a><span class="lineno">  112</span>&#160;    TIMER3_CTL_R |= 0xC00; <span class="comment">//Interrupt on both edges</span></div><div class="line"><a name="l00113"></a><span class="lineno">  113</span>&#160;    TIMER3_IMR_R |= 0xF00; <span class="comment">//Set interrupt to all mask</span></div><div class="line"><a name="l00114"></a><span class="lineno">  114</span>&#160;    TIMER3_ICR_R |= 0xF00; <span class="comment">//Clear all interrupt flags</span></div><div class="line"><a name="l00115"></a><span class="lineno">  115</span>&#160;    NVIC_EN1_R |= (0x1 &lt;&lt; 4); <span class="comment">//Turn on Timer 3 interrupt</span></div><div class="line"><a name="l00116"></a><span class="lineno">  116</span>&#160;</div><div class="line"><a name="l00117"></a><span class="lineno">  117</span>&#160;    IntRegister(INT_TIMER3B, <a class="code" href="sonic_8c.html#a6ddb01fc5fc0c1b2931dbd1705c5b6b1">sonic_handler</a>); <span class="comment">//register TIMER3A interrupt handler</span></div><div class="line"><a name="l00118"></a><span class="lineno">  118</span>&#160;    IntMasterEnable(); <span class="comment">//Initialize global interrupts</span></div><div class="line"><a name="l00119"></a><span class="lineno">  119</span>&#160;</div><div class="line"><a name="l00120"></a><span class="lineno">  120</span>&#160;    TIMER3_CTL_R |= 0x101; <span class="comment">//Turn on both A and B timers</span></div><div class="line"><a name="l00121"></a><span class="lineno">  121</span>&#160;}</div><div class="line"><a name="l00122"></a><span class="lineno">  122</span>&#160;</div><div class="line"><a name="l00123"></a><span class="lineno"><a class="line" href="sonic_8h.html#a588b501da316bcf0dec4756000d5ebce">  123</a></span>&#160;<span class="keywordtype">void</span> <a class="code" href="sonic_8c.html#a588b501da316bcf0dec4756000d5ebce">sonic_chirp</a>()</div><div class="line"><a name="l00124"></a><span class="lineno">  124</span>&#160;{</div><div class="line"><a name="l00125"></a><span class="lineno">  125</span>&#160;    <a class="code" href="sonic_8c.html#a026052969f1c177a4c0c035b1ea5b9e7">chirp_init</a>(); <span class="comment">//Turn off Reading mode and set up GPIO for pulse sending</span></div><div class="line"><a name="l00126"></a><span class="lineno">  126</span>&#160;    GPIO_PORTB_DIR_R &amp;= ~0x000000008;<span class="comment">//Clear the direction of PB3</span></div><div class="line"><a name="l00127"></a><span class="lineno">  127</span>&#160;    GPIO_PORTB_DIR_R |= 0x000000008;<span class="comment">//Set PB3 as output</span></div><div class="line"><a name="l00128"></a><span class="lineno">  128</span>&#160;</div><div class="line"><a name="l00129"></a><span class="lineno">  129</span>&#160;    GPIO_PORTB_DATA_R |= 0x08; <span class="comment">//Set PB3 to HIGH</span></div><div class="line"><a name="l00130"></a><span class="lineno">  130</span>&#160;    timer_waitMicros(25);</div><div class="line"><a name="l00131"></a><span class="lineno">  131</span>&#160;    GPIO_PORTB_DATA_R &amp;= ~0x08; <span class="comment">//Set PB3 to LOW</span></div><div class="line"><a name="l00132"></a><span class="lineno">  132</span>&#160;    timer_waitMicros(25);</div><div class="line"><a name="l00133"></a><span class="lineno">  133</span>&#160;    <a class="code" href="sonic_8c.html#a0176373c7a145890460b8b194e3ca0ce">sonic_start</a>(); <span class="comment">//Wait for return pulse</span></div><div class="line"><a name="l00134"></a><span class="lineno">  134</span>&#160;</div><div class="line"><a name="l00135"></a><span class="lineno">  135</span>&#160;}</div><div class="line"><a name="l00136"></a><span class="lineno">  136</span>&#160;</div><div class="line"><a name="l00137"></a><span class="lineno"><a class="line" href="sonic_8h.html#adbe32feee06ccd7a0a9c14709b9a1ce4">  137</a></span>&#160;<span class="keywordtype">int</span> <a class="code" href="sonic_8c.html#adbe32feee06ccd7a0a9c14709b9a1ce4">get_sonic_reading</a>()</div><div class="line"><a name="l00138"></a><span class="lineno">  138</span>&#160;{</div><div class="line"><a name="l00139"></a><span class="lineno">  139</span>&#160;    <span class="keywordflow">return</span> <a class="code" href="sonic_8c.html#af4b4715f3c15d0e48d08060ec180625c">sonic_timer</a>; <span class="comment">//Raw reading of the timer</span></div><div class="line"><a name="l00140"></a><span class="lineno">  140</span>&#160;}</div><div class="line"><a name="l00141"></a><span class="lineno">  141</span>&#160;</div><div class="line"><a name="l00142"></a><span class="lineno"><a class="line" href="sonic_8h.html#ab57b797a1fd5d1fbfcdbc150282bff91">  142</a></span>&#160;<span class="keywordtype">float</span> <a class="code" href="sonic_8c.html#ab57b797a1fd5d1fbfcdbc150282bff91">sonic_convertToDist</a>(<span class="keywordtype">int</span> rawSonicValue)</div><div class="line"><a name="l00143"></a><span class="lineno">  143</span>&#160;{</div><div class="line"><a name="l00144"></a><span class="lineno">  144</span>&#160;    <span class="comment">// Calculate and return the distance to the detected object in centimeters</span></div><div class="line"><a name="l00145"></a><span class="lineno">  145</span>&#160;    <span class="keywordflow">return</span> ((rawSonicValue / 16000000.0) * 0.5 * V_SOUND_cmps);</div><div class="line"><a name="l00146"></a><span class="lineno">  146</span>&#160;}</div><div class="ttc" id="sonic_8c_html_adbe32feee06ccd7a0a9c14709b9a1ce4"><div class="ttname"><a href="sonic_8c.html#adbe32feee06ccd7a0a9c14709b9a1ce4">get_sonic_reading</a></div><div class="ttdeci">int get_sonic_reading()</div><div class="ttdef"><b>Definition:</b> <a href="sonic_8c_source.html#l00137">sonic.c:137</a></div></div>
 <div class="ttc" id="sonic_8c_html_a6ddb01fc5fc0c1b2931dbd1705c5b6b1"><div class="ttname"><a href="sonic_8c.html#a6ddb01fc5fc0c1b2931dbd1705c5b6b1">sonic_handler</a></div><div class="ttdeci">void sonic_handler()</div><div class="ttdef"><b>Definition:</b> <a href="sonic_8c_source.html#l00041">sonic.c:41</a></div></div>
 <div class="ttc" id="sonic_8c_html_a588b501da316bcf0dec4756000d5ebce"><div class="ttname"><a href="sonic_8c.html#a588b501da316bcf0dec4756000d5ebce">sonic_chirp</a></div><div class="ttdeci">void sonic_chirp()</div><div class="ttdef"><b>Definition:</b> <a href="sonic_8c_source.html#l00123">sonic.c:123</a></div></div>
 <div class="ttc" id="sonic_8c_html_a0176373c7a145890460b8b194e3ca0ce"><div class="ttname"><a href="sonic_8c.html#a0176373c7a145890460b8b194e3ca0ce">sonic_start</a></div><div class="ttdeci">void sonic_start()</div><div class="ttdef"><b>Definition:</b> <a href="sonic_8c_source.html#l00087">sonic.c:87</a></div></div>
@@ -100,6 +100,7 @@ $(document).ready(function(){initNavTree('sonic_8c_source.html','');});
 <div class="ttc" id="sonic_8h_html"><div class="ttname"><a href="sonic_8h.html">sonic.h</a></div><div class="ttdoc">Header file for sonic.c. </div></div>
 <div class="ttc" id="sonic_8c_html_a5c25582d16e2ebac840768e056b48d39"><div class="ttname"><a href="sonic_8c.html#a5c25582d16e2ebac840768e056b48d39">sonic_ready</a></div><div class="ttdeci">volatile bool sonic_ready</div><div class="ttdef"><b>Definition:</b> <a href="sonic_8c_source.html#l00036">sonic.c:36</a></div></div>
 <div class="ttc" id="sonic_8c_html_a0cd05251349a248cfafffcea2499cd15"><div class="ttname"><a href="sonic_8c.html#a0cd05251349a248cfafffcea2499cd15">sonic_init</a></div><div class="ttdeci">void sonic_init()</div><div class="ttdef"><b>Definition:</b> <a href="sonic_8c_source.html#l00097">sonic.c:97</a></div></div>
+<div class="ttc" id="timer_8c_html_a7e2a3b4520e885e5e7d40fa87e242a75"><div class="ttname"><a href="timer_8c.html#a7e2a3b4520e885e5e7d40fa87e242a75">timer_waitMillis</a></div><div class="ttdeci">void timer_waitMillis(uint32_t millis)</div><div class="ttdef"><b>Definition:</b> <a href="timer_8c_source.html#l00015">timer.c:15</a></div></div>
 <div class="ttc" id="sonic_8c_html_ab57b797a1fd5d1fbfcdbc150282bff91"><div class="ttname"><a href="sonic_8c.html#ab57b797a1fd5d1fbfcdbc150282bff91">sonic_convertToDist</a></div><div class="ttdeci">float sonic_convertToDist(int rawSonicValue)</div><div class="ttdef"><b>Definition:</b> <a href="sonic_8c_source.html#l00142">sonic.c:142</a></div></div>
 <div class="ttc" id="sonic_8c_html_abeb94c8bc008aa5a114ad4c89ea1a1c4"><div class="ttname"><a href="sonic_8c.html#abeb94c8bc008aa5a114ad4c89ea1a1c4">sonic_read</a></div><div class="ttdeci">volatile unsigned int sonic_read</div><div class="ttdef"><b>Definition:</b> <a href="sonic_8c_source.html#l00031">sonic.c:31</a></div></div>
 <div class="ttc" id="sonic_8c_html_af4b4715f3c15d0e48d08060ec180625c"><div class="ttname"><a href="sonic_8c.html#af4b4715f3c15d0e48d08060ec180625c">sonic_timer</a></div><div class="ttdeci">volatile unsigned int sonic_timer</div><div class="ttdef"><b>Definition:</b> <a href="sonic_8c_source.html#l00026">sonic.c:26</a></div></div>
diff --git a/Doxygen/html/sonic_8h.html b/Doxygen/html/sonic_8h.html
index c914132f9f31de87ab633987d45da2ab50a6e024..78b6e1c261089ee7f01f0b379546af1fcabc32c4 100644
--- a/Doxygen/html/sonic_8h.html
+++ b/Doxygen/html/sonic_8h.html
@@ -97,7 +97,7 @@ $(document).ready(function(){initNavTree('sonic_8h.html','');});
 
 <p>Header file for <a class="el" href="sonic_8c.html" title="Library of functions for reading the Sonic Sensor. ">sonic.c</a>.  
 <a href="#details">More...</a></p>
-<div class="textblock"><code>#include &lt;Utils/timer.h&gt;</code><br />
+<div class="textblock"><code>#include &lt;<a class="el" href="timer_8h_source.html">Utils/timer.h</a>&gt;</code><br />
 <code>#include &lt;stdbool.h&gt;</code><br />
 <code>#include &lt;inc/tm4c123gh6pm.h&gt;</code><br />
 <code>#include &quot;driverlib/interrupt.h&quot;</code><br />
diff --git a/Doxygen/html/sonic_8h_source.html b/Doxygen/html/sonic_8h_source.html
index 758050a50628733ee2a2f102f46e97d89a45f582..eee6c58a3e6809445d3f7fa58331b6d88620ffe6 100644
--- a/Doxygen/html/sonic_8h_source.html
+++ b/Doxygen/html/sonic_8h_source.html
@@ -92,8 +92,9 @@ $(document).ready(function(){initNavTree('sonic_8h_source.html','');});
 <div class="title">sonic.h</div>  </div>
 </div><!--header-->
 <div class="contents">
-<a href="sonic_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno">    1</span>&#160;</div><div class="line"><a name="l00016"></a><span class="lineno">   16</span>&#160;<span class="preprocessor">#include &lt;Utils/timer.h&gt;</span></div><div class="line"><a name="l00017"></a><span class="lineno">   17</span>&#160;<span class="preprocessor">#include &lt;stdbool.h&gt;</span></div><div class="line"><a name="l00018"></a><span class="lineno">   18</span>&#160;<span class="preprocessor">#include &lt;inc/tm4c123gh6pm.h&gt;</span></div><div class="line"><a name="l00019"></a><span class="lineno">   19</span>&#160;<span class="preprocessor">#include &quot;driverlib/interrupt.h&quot;</span></div><div class="line"><a name="l00020"></a><span class="lineno">   20</span>&#160;</div><div class="line"><a name="l00024"></a><span class="lineno">   24</span>&#160;<span class="keywordtype">void</span> <a class="code" href="sonic_8h.html#a0cd05251349a248cfafffcea2499cd15">sonic_init</a>();</div><div class="line"><a name="l00025"></a><span class="lineno">   25</span>&#160;</div><div class="line"><a name="l00029"></a><span class="lineno">   29</span>&#160;<span class="keywordtype">void</span> <a class="code" href="sonic_8h.html#a588b501da316bcf0dec4756000d5ebce">sonic_chirp</a>();</div><div class="line"><a name="l00030"></a><span class="lineno">   30</span>&#160;</div><div class="line"><a name="l00034"></a><span class="lineno">   34</span>&#160;<span class="keywordtype">void</span> <a class="code" href="sonic_8h.html#a6ddb01fc5fc0c1b2931dbd1705c5b6b1">sonic_handler</a>();</div><div class="line"><a name="l00035"></a><span class="lineno">   35</span>&#160;</div><div class="line"><a name="l00039"></a><span class="lineno">   39</span>&#160;<span class="keywordtype">void</span> <a class="code" href="sonic_8h.html#a026052969f1c177a4c0c035b1ea5b9e7">chirp_init</a>();</div><div class="line"><a name="l00040"></a><span class="lineno">   40</span>&#160;</div><div class="line"><a name="l00044"></a><span class="lineno">   44</span>&#160;<span class="keywordtype">void</span> <a class="code" href="sonic_8h.html#a0176373c7a145890460b8b194e3ca0ce">sonic_start</a>();</div><div class="line"><a name="l00045"></a><span class="lineno">   45</span>&#160;</div><div class="line"><a name="l00052"></a><span class="lineno">   52</span>&#160;<span class="keywordtype">int</span> <a class="code" href="sonic_8h.html#adbe32feee06ccd7a0a9c14709b9a1ce4">get_sonic_reading</a>();</div><div class="line"><a name="l00053"></a><span class="lineno">   53</span>&#160;</div><div class="line"><a name="l00063"></a><span class="lineno">   63</span>&#160;<span class="keywordtype">float</span> <a class="code" href="sonic_8h.html#ab57b797a1fd5d1fbfcdbc150282bff91">sonic_convertToDist</a>(<span class="keywordtype">int</span> rawSonicValue);</div><div class="ttc" id="sonic_8h_html_a0176373c7a145890460b8b194e3ca0ce"><div class="ttname"><a href="sonic_8h.html#a0176373c7a145890460b8b194e3ca0ce">sonic_start</a></div><div class="ttdeci">void sonic_start()</div><div class="ttdef"><b>Definition:</b> <a href="sonic_8c_source.html#l00087">sonic.c:87</a></div></div>
+<a href="sonic_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno">    1</span>&#160;</div><div class="line"><a name="l00016"></a><span class="lineno">   16</span>&#160;<span class="preprocessor">#include &lt;<a class="code" href="timer_8h.html">Utils/timer.h</a>&gt;</span></div><div class="line"><a name="l00017"></a><span class="lineno">   17</span>&#160;<span class="preprocessor">#include &lt;stdbool.h&gt;</span></div><div class="line"><a name="l00018"></a><span class="lineno">   18</span>&#160;<span class="preprocessor">#include &lt;inc/tm4c123gh6pm.h&gt;</span></div><div class="line"><a name="l00019"></a><span class="lineno">   19</span>&#160;<span class="preprocessor">#include &quot;driverlib/interrupt.h&quot;</span></div><div class="line"><a name="l00020"></a><span class="lineno">   20</span>&#160;</div><div class="line"><a name="l00024"></a><span class="lineno">   24</span>&#160;<span class="keywordtype">void</span> <a class="code" href="sonic_8h.html#a0cd05251349a248cfafffcea2499cd15">sonic_init</a>();</div><div class="line"><a name="l00025"></a><span class="lineno">   25</span>&#160;</div><div class="line"><a name="l00029"></a><span class="lineno">   29</span>&#160;<span class="keywordtype">void</span> <a class="code" href="sonic_8h.html#a588b501da316bcf0dec4756000d5ebce">sonic_chirp</a>();</div><div class="line"><a name="l00030"></a><span class="lineno">   30</span>&#160;</div><div class="line"><a name="l00034"></a><span class="lineno">   34</span>&#160;<span class="keywordtype">void</span> <a class="code" href="sonic_8h.html#a6ddb01fc5fc0c1b2931dbd1705c5b6b1">sonic_handler</a>();</div><div class="line"><a name="l00035"></a><span class="lineno">   35</span>&#160;</div><div class="line"><a name="l00039"></a><span class="lineno">   39</span>&#160;<span class="keywordtype">void</span> <a class="code" href="sonic_8h.html#a026052969f1c177a4c0c035b1ea5b9e7">chirp_init</a>();</div><div class="line"><a name="l00040"></a><span class="lineno">   40</span>&#160;</div><div class="line"><a name="l00044"></a><span class="lineno">   44</span>&#160;<span class="keywordtype">void</span> <a class="code" href="sonic_8h.html#a0176373c7a145890460b8b194e3ca0ce">sonic_start</a>();</div><div class="line"><a name="l00045"></a><span class="lineno">   45</span>&#160;</div><div class="line"><a name="l00052"></a><span class="lineno">   52</span>&#160;<span class="keywordtype">int</span> <a class="code" href="sonic_8h.html#adbe32feee06ccd7a0a9c14709b9a1ce4">get_sonic_reading</a>();</div><div class="line"><a name="l00053"></a><span class="lineno">   53</span>&#160;</div><div class="line"><a name="l00063"></a><span class="lineno">   63</span>&#160;<span class="keywordtype">float</span> <a class="code" href="sonic_8h.html#ab57b797a1fd5d1fbfcdbc150282bff91">sonic_convertToDist</a>(<span class="keywordtype">int</span> rawSonicValue);</div><div class="ttc" id="sonic_8h_html_a0176373c7a145890460b8b194e3ca0ce"><div class="ttname"><a href="sonic_8h.html#a0176373c7a145890460b8b194e3ca0ce">sonic_start</a></div><div class="ttdeci">void sonic_start()</div><div class="ttdef"><b>Definition:</b> <a href="sonic_8c_source.html#l00087">sonic.c:87</a></div></div>
 <div class="ttc" id="sonic_8h_html_a0cd05251349a248cfafffcea2499cd15"><div class="ttname"><a href="sonic_8h.html#a0cd05251349a248cfafffcea2499cd15">sonic_init</a></div><div class="ttdeci">void sonic_init()</div><div class="ttdef"><b>Definition:</b> <a href="sonic_8c_source.html#l00097">sonic.c:97</a></div></div>
+<div class="ttc" id="timer_8h_html"><div class="ttname"><a href="timer_8h.html">timer.h</a></div><div class="ttdoc">Header file for timer.c Library Functions for pause timer. </div></div>
 <div class="ttc" id="sonic_8h_html_ab57b797a1fd5d1fbfcdbc150282bff91"><div class="ttname"><a href="sonic_8h.html#ab57b797a1fd5d1fbfcdbc150282bff91">sonic_convertToDist</a></div><div class="ttdeci">float sonic_convertToDist(int rawSonicValue)</div><div class="ttdef"><b>Definition:</b> <a href="sonic_8c_source.html#l00142">sonic.c:142</a></div></div>
 <div class="ttc" id="sonic_8h_html_adbe32feee06ccd7a0a9c14709b9a1ce4"><div class="ttname"><a href="sonic_8h.html#adbe32feee06ccd7a0a9c14709b9a1ce4">get_sonic_reading</a></div><div class="ttdeci">int get_sonic_reading()</div><div class="ttdef"><b>Definition:</b> <a href="sonic_8c_source.html#l00137">sonic.c:137</a></div></div>
 <div class="ttc" id="sonic_8h_html_a026052969f1c177a4c0c035b1ea5b9e7"><div class="ttname"><a href="sonic_8h.html#a026052969f1c177a4c0c035b1ea5b9e7">chirp_init</a></div><div class="ttdeci">void chirp_init()</div><div class="ttdef"><b>Definition:</b> <a href="sonic_8c_source.html#l00079">sonic.c:79</a></div></div>
diff --git a/Doxygen/html/sweep__sensor_8c_source.html b/Doxygen/html/sweep__sensor_8c_source.html
index e3ff8e23bf19741f4960fbc3afaca32571d38bd1..390e0a7e5bf0ffe7a07a74d154045383650d282c 100644
--- a/Doxygen/html/sweep__sensor_8c_source.html
+++ b/Doxygen/html/sweep__sensor_8c_source.html
@@ -92,7 +92,7 @@ $(document).ready(function(){initNavTree('sweep__sensor_8c_source.html','');});
 <div class="title">sweep_sensor.c</div>  </div>
 </div><!--header-->
 <div class="contents">
-<a href="sweep__sensor_8c.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno">    1</span>&#160;</div><div class="line"><a name="l00013"></a><span class="lineno">   13</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="sweep__sensor_8h.html">sweep_sensor.h</a>&quot;</span></div><div class="line"><a name="l00014"></a><span class="lineno">   14</span>&#160;</div><div class="line"><a name="l00015"></a><span class="lineno">   15</span>&#160;<span class="comment">// -------------------------------- BEGIN CONSTANTS -------------------------------- //</span></div><div class="line"><a name="l00016"></a><span class="lineno">   16</span>&#160;</div><div class="line"><a name="l00023"></a><span class="lineno"><a class="line" href="sweep__sensor_8c.html#a81c686546c2c34dce41931315aa910df">   23</a></span>&#160;<span class="preprocessor">#define TIMER_TICKS_PER_SECOND 16e6</span></div><div class="line"><a name="l00024"></a><span class="lineno">   24</span>&#160;</div><div class="line"><a name="l00028"></a><span class="lineno"><a class="line" href="sweep__sensor_8c.html#a2d01ba8e6facddebf5e5f716b45b8566">   28</a></span>&#160;<span class="preprocessor">#define PWM_PERIOD_MICROS 20000 // 20 milliseconds</span></div><div class="line"><a name="l00029"></a><span class="lineno">   29</span>&#160;</div><div class="line"><a name="l00033"></a><span class="lineno"><a class="line" href="sweep__sensor_8c.html#a6579d7b211ae42d014bae9f1e9244b86">   33</a></span>&#160;<span class="preprocessor">#define TIMER_TICKS_PER_MICROS (TIMER_TICKS_PER_SECOND * (1.0e-6))</span></div><div class="line"><a name="l00034"></a><span class="lineno">   34</span>&#160;</div><div class="line"><a name="l00038"></a><span class="lineno"><a class="line" href="sweep__sensor_8c.html#a5ba88e74de0c170f9f8c067ac55034e1">   38</a></span>&#160;<span class="preprocessor">#define PWM_PERIOD_TICKS (PWM_PERIOD_MICROS * TIMER_TICKS_PER_MICROS) // should be 320,000</span></div><div class="line"><a name="l00039"></a><span class="lineno">   39</span>&#160;</div><div class="line"><a name="l00040"></a><span class="lineno">   40</span>&#160;<span class="comment">// -------------------------------- END CONSTANTS -------------------------------- //</span></div><div class="line"><a name="l00041"></a><span class="lineno">   41</span>&#160;</div><div class="line"><a name="l00042"></a><span class="lineno">   42</span>&#160;<span class="comment">// -------------------------------- BEGIN GLOBAL VARIABLES -------------------------------- //</span></div><div class="line"><a name="l00043"></a><span class="lineno">   43</span>&#160;</div><div class="line"><a name="l00044"></a><span class="lineno">   44</span>&#160;<span class="comment">// GLOBAL VARIABLE(S) FOR PWM:</span></div><div class="line"><a name="l00048"></a><span class="lineno"><a class="line" href="sweep__sensor_8c.html#ae3a16b16a26af9c7aea5947732882e8d">   48</a></span>&#160;<span class="comment"></span><span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> <a class="code" href="sweep__sensor_8c.html#ae3a16b16a26af9c7aea5947732882e8d">pos_counter_value</a>;</div><div class="line"><a name="l00049"></a><span class="lineno">   49</span>&#160;</div><div class="line"><a name="l00058"></a><span class="lineno"><a class="line" href="sweep__sensor_8c.html#ad15c1ce3dc8d7295980df0c002469685">   58</a></span>&#160;<span class="keywordtype">float</span> <a class="code" href="sweep__sensor_8c.html#ad15c1ce3dc8d7295980df0c002469685">degrees_per_micros</a>;</div><div class="line"><a name="l00059"></a><span class="lineno">   59</span>&#160;</div><div class="line"><a name="l00068"></a><span class="lineno"><a class="line" href="sweep__sensor_8c.html#add67b8431980e75798449c977e7178d6">   68</a></span>&#160;<span class="keywordtype">signed</span> <span class="keywordtype">int</span> <a class="code" href="sweep__sensor_8c.html#add67b8431980e75798449c977e7178d6">micros_offset</a>;</div><div class="line"><a name="l00069"></a><span class="lineno">   69</span>&#160;</div><div class="line"><a name="l00070"></a><span class="lineno">   70</span>&#160;<span class="comment">// GLOBAL VARIABLE(S) FOR GENERAL SERVO CONTROL:</span></div><div class="line"><a name="l00076"></a><span class="lineno"><a class="line" href="sweep__sensor_8c.html#aeed67431f921c909818ba6fa768b80bc">   76</a></span>&#160;<span class="comment"></span><span class="keyword">volatile</span> <span class="keywordtype">float</span> <a class="code" href="sweep__sensor_8c.html#aeed67431f921c909818ba6fa768b80bc">servoPos_deg</a>;</div><div class="line"><a name="l00077"></a><span class="lineno">   77</span>&#160;</div><div class="line"><a name="l00078"></a><span class="lineno">   78</span>&#160;<span class="comment">// -------------------------------- END GLOBAL VARIABLES -------------------------------- //</span></div><div class="line"><a name="l00079"></a><span class="lineno">   79</span>&#160;</div><div class="line"><a name="l00080"></a><span class="lineno">   80</span>&#160;<span class="comment">// -------------------------------- BEGIN HELPER FUNCTIONS -------------------------------- //</span></div><div class="line"><a name="l00081"></a><span class="lineno">   81</span>&#160;</div><div class="line"><a name="l00093"></a><span class="lineno">   93</span>&#160;<span class="keyword">static</span> uint32_t getServoWaitTime_Millis(<span class="keywordtype">float</span> prevPos_deg, <span class="keywordtype">float</span> newPos_deg)</div><div class="line"><a name="l00094"></a><span class="lineno">   94</span>&#160;{</div><div class="line"><a name="l00095"></a><span class="lineno">   95</span>&#160;<span class="comment">//    return (fabs(prevPos_deg - newPos_deg) / 0.00045); // Servo moves at a rate of approximately 0.00045 degrees per microsecond (180 deg / 400,000 us)</span></div><div class="line"><a name="l00096"></a><span class="lineno">   96</span>&#160;<span class="comment">//    return (fabs(prevPos_deg - newPos_deg) / 0.00005);</span></div><div class="line"><a name="l00097"></a><span class="lineno">   97</span>&#160;    <span class="keywordflow">return</span> (fabs(prevPos_deg - newPos_deg) * (500 / 90));</div><div class="line"><a name="l00098"></a><span class="lineno">   98</span>&#160;}</div><div class="line"><a name="l00099"></a><span class="lineno">   99</span>&#160;</div><div class="line"><a name="l00105"></a><span class="lineno">  105</span>&#160;<span class="keyword">static</span> <span class="keywordtype">void</span> servo_configurePWM(<span class="keywordtype">float</span> pulseWidth_micros)</div><div class="line"><a name="l00106"></a><span class="lineno">  106</span>&#160;{</div><div class="line"><a name="l00107"></a><span class="lineno">  107</span>&#160;    <span class="comment">// Convert pulse width length from microseconds to timer ticks</span></div><div class="line"><a name="l00108"></a><span class="lineno">  108</span>&#160;    <span class="comment">// and calculate value to load into Match registers</span></div><div class="line"><a name="l00109"></a><span class="lineno">  109</span>&#160;    <span class="comment">//pos_counter_value = (PWM_PERIOD_TICKS - 1) - (pulseWidth_micros * TIMER_TICKS_PER_MICROS); // 16 timer ticks per microsecond</span></div><div class="line"><a name="l00110"></a><span class="lineno">  110</span>&#160;    <a class="code" href="sweep__sensor_8c.html#ae3a16b16a26af9c7aea5947732882e8d">pos_counter_value</a> = (<a class="code" href="sweep__sensor_8c.html#a5ba88e74de0c170f9f8c067ac55034e1">PWM_PERIOD_TICKS</a> - 1)</div><div class="line"><a name="l00111"></a><span class="lineno">  111</span>&#160;            - (pulseWidth_micros * <a class="code" href="sweep__sensor_8c.html#a6579d7b211ae42d014bae9f1e9244b86">TIMER_TICKS_PER_MICROS</a>); <span class="comment">// 16 timer ticks per microsecond</span></div><div class="line"><a name="l00112"></a><span class="lineno">  112</span>&#160;</div><div class="line"><a name="l00113"></a><span class="lineno">  113</span>&#160;    <span class="comment">// Make sure that pulse_width_ticks fits within 24 bits</span></div><div class="line"><a name="l00114"></a><span class="lineno">  114</span>&#160;    <a class="code" href="sweep__sensor_8c.html#ae3a16b16a26af9c7aea5947732882e8d">pos_counter_value</a> &amp;= 0x00FFFFFF; <span class="comment">// Clear upper 8 bits</span></div><div class="line"><a name="l00115"></a><span class="lineno">  115</span>&#160;</div><div class="line"><a name="l00116"></a><span class="lineno">  116</span>&#160;    <span class="comment">// Disable Timer 1B for configuration (clear bit 8 - TBEN)</span></div><div class="line"><a name="l00117"></a><span class="lineno">  117</span>&#160;    TIMER1_CTL_R &amp;= ~0x00000100;</div><div class="line"><a name="l00118"></a><span class="lineno">  118</span>&#160;</div><div class="line"><a name="l00119"></a><span class="lineno">  119</span>&#160;    <span class="comment">// Load the 2 high bytes into Timer B Prescale Match register</span></div><div class="line"><a name="l00120"></a><span class="lineno">  120</span>&#160;    TIMER1_TBPMR_R &amp;= 0xFFFFFF00;</div><div class="line"><a name="l00121"></a><span class="lineno">  121</span>&#160;    TIMER1_TBPMR_R |= (<a class="code" href="sweep__sensor_8c.html#ae3a16b16a26af9c7aea5947732882e8d">pos_counter_value</a> &gt;&gt; 16);</div><div class="line"><a name="l00122"></a><span class="lineno">  122</span>&#160;</div><div class="line"><a name="l00123"></a><span class="lineno">  123</span>&#160;    <span class="comment">// Load the 4 lower bytes into Timer B Match register</span></div><div class="line"><a name="l00124"></a><span class="lineno">  124</span>&#160;    TIMER1_TBMATCHR_R &amp;= 0xFFFF0000;</div><div class="line"><a name="l00125"></a><span class="lineno">  125</span>&#160;    TIMER1_TBMATCHR_R |= (<a class="code" href="sweep__sensor_8c.html#ae3a16b16a26af9c7aea5947732882e8d">pos_counter_value</a> &amp; 0xFFFF);</div><div class="line"><a name="l00126"></a><span class="lineno">  126</span>&#160;</div><div class="line"><a name="l00127"></a><span class="lineno">  127</span>&#160;    <span class="comment">// Re-enable Timer1B and resume PWM-wave generation</span></div><div class="line"><a name="l00128"></a><span class="lineno">  128</span>&#160;    TIMER1_CTL_R |= 0x100;</div><div class="line"><a name="l00129"></a><span class="lineno">  129</span>&#160;}</div><div class="line"><a name="l00130"></a><span class="lineno">  130</span>&#160;</div><div class="line"><a name="l00131"></a><span class="lineno">  131</span>&#160;<span class="comment">// -------------------------------- END HELPER FUNCTIONS -------------------------------- //</span></div><div class="line"><a name="l00132"></a><span class="lineno">  132</span>&#160;</div><div class="line"><a name="l00133"></a><span class="lineno"><a class="line" href="sweep__sensor_8h.html#aa858319b04e153550a93648468db3171">  133</a></span>&#160;<span class="keywordtype">void</span> <a class="code" href="sweep__sensor_8c.html#aa858319b04e153550a93648468db3171">sweep_init</a>()</div><div class="line"><a name="l00134"></a><span class="lineno">  134</span>&#160;{</div><div class="line"><a name="l00135"></a><span class="lineno">  135</span>&#160;    <span class="comment">/*</span></div><div class="line"><a name="l00136"></a><span class="lineno">  136</span>&#160;<span class="comment">     * Part 1:  Configure Timer 1B on pin PB5 for PWM servo control</span></div><div class="line"><a name="l00137"></a><span class="lineno">  137</span>&#160;<span class="comment">     */</span></div><div class="line"><a name="l00138"></a><span class="lineno">  138</span>&#160;    <span class="comment">// Initialize calibration values to their initial values</span></div><div class="line"><a name="l00139"></a><span class="lineno">  139</span>&#160;    <a class="code" href="sweep__sensor_8c.html#ad15c1ce3dc8d7295980df0c002469685">degrees_per_micros</a> = 0.1; <span class="comment">// Originally 0.1</span></div><div class="line"><a name="l00140"></a><span class="lineno">  140</span>&#160;    <a class="code" href="sweep__sensor_8c.html#add67b8431980e75798449c977e7178d6">micros_offset</a> = 525;        <span class="comment">// Originally 500</span></div><div class="line"><a name="l00141"></a><span class="lineno">  141</span>&#160;</div><div class="line"><a name="l00142"></a><span class="lineno">  142</span>&#160;    <span class="comment">// 1. Configure GPIO</span></div><div class="line"><a name="l00143"></a><span class="lineno">  143</span>&#160;</div><div class="line"><a name="l00144"></a><span class="lineno">  144</span>&#160;    <span class="comment">// Enable clock to GPIO port B</span></div><div class="line"><a name="l00145"></a><span class="lineno">  145</span>&#160;    SYSCTL_RCGCGPIO_R |= 0x02;</div><div class="line"><a name="l00146"></a><span class="lineno">  146</span>&#160;</div><div class="line"><a name="l00147"></a><span class="lineno">  147</span>&#160;    <span class="comment">// Set pin 5 of port B as an output</span></div><div class="line"><a name="l00148"></a><span class="lineno">  148</span>&#160;    GPIO_PORTB_DIR_R |= (0x20);</div><div class="line"><a name="l00149"></a><span class="lineno">  149</span>&#160;</div><div class="line"><a name="l00150"></a><span class="lineno">  150</span>&#160;    <span class="comment">// Enable Alt functions on PB5</span></div><div class="line"><a name="l00151"></a><span class="lineno">  151</span>&#160;    GPIO_PORTB_AFSEL_R |= 0x20;</div><div class="line"><a name="l00152"></a><span class="lineno">  152</span>&#160;</div><div class="line"><a name="l00153"></a><span class="lineno">  153</span>&#160;    <span class="comment">// Select Alt. Function #7 (T1CCP1) for PB5</span></div><div class="line"><a name="l00154"></a><span class="lineno">  154</span>&#160;    GPIO_PORTB_PCTL_R &amp;= ~0x00F00000;</div><div class="line"><a name="l00155"></a><span class="lineno">  155</span>&#160;    GPIO_PORTB_PCTL_R |= 0x700000;</div><div class="line"><a name="l00156"></a><span class="lineno">  156</span>&#160;</div><div class="line"><a name="l00157"></a><span class="lineno">  157</span>&#160;    <span class="comment">// Enable digital functionality on PB5</span></div><div class="line"><a name="l00158"></a><span class="lineno">  158</span>&#160;    GPIO_PORTB_DEN_R |= 0x20;</div><div class="line"><a name="l00159"></a><span class="lineno">  159</span>&#160;</div><div class="line"><a name="l00160"></a><span class="lineno">  160</span>&#160;    <span class="comment">// 2. Configure Timer1B</span></div><div class="line"><a name="l00161"></a><span class="lineno">  161</span>&#160;</div><div class="line"><a name="l00162"></a><span class="lineno">  162</span>&#160;    <span class="comment">// Enable &amp; provide a clock to general-purpose timer module 1 in run mode</span></div><div class="line"><a name="l00163"></a><span class="lineno">  163</span>&#160;    SYSCTL_RCGCTIMER_R |= 0x02;</div><div class="line"><a name="l00164"></a><span class="lineno">  164</span>&#160;</div><div class="line"><a name="l00165"></a><span class="lineno">  165</span>&#160;    <span class="comment">// Disable Timer 1B for configuration (clear bit 8 - TBEN)</span></div><div class="line"><a name="l00166"></a><span class="lineno">  166</span>&#160;    TIMER1_CTL_R &amp;= ~0x00000100;</div><div class="line"><a name="l00167"></a><span class="lineno">  167</span>&#160;</div><div class="line"><a name="l00168"></a><span class="lineno">  168</span>&#160;    <span class="comment">// Select 16-bit timer configuration for Timer 1B</span></div><div class="line"><a name="l00169"></a><span class="lineno">  169</span>&#160;    TIMER1_CFG_R |= 0x4;</div><div class="line"><a name="l00170"></a><span class="lineno">  170</span>&#160;</div><div class="line"><a name="l00171"></a><span class="lineno">  171</span>&#160;    <span class="comment">// Set Timer 1B to PWM mode, Edge-count mode, and Periodic Timer mode</span></div><div class="line"><a name="l00172"></a><span class="lineno">  172</span>&#160;    <span class="comment">// (TBAMS = 1, TBCMR = 0, TBMR = 0x2)</span></div><div class="line"><a name="l00173"></a><span class="lineno">  173</span>&#160;    TIMER1_TBMR_R &amp;= ~0x0000000F;</div><div class="line"><a name="l00174"></a><span class="lineno">  174</span>&#160;    TIMER1_TBMR_R |= 0xA;</div><div class="line"><a name="l00175"></a><span class="lineno">  175</span>&#160;</div><div class="line"><a name="l00176"></a><span class="lineno">  176</span>&#160;    <span class="comment">// Ensure that output state of PWM signal is not inverted</span></div><div class="line"><a name="l00177"></a><span class="lineno">  177</span>&#160;    TIMER1_CTL_R &amp;= ~0x4000;</div><div class="line"><a name="l00178"></a><span class="lineno">  178</span>&#160;</div><div class="line"><a name="l00179"></a><span class="lineno">  179</span>&#160;    <span class="comment">// The starting value to set for the timer.</span></div><div class="line"><a name="l00180"></a><span class="lineno">  180</span>&#160;    <span class="comment">//</span></div><div class="line"><a name="l00181"></a><span class="lineno">  181</span>&#160;    <span class="comment">// It is necessary to subtract 1 from PWM_PERIOD_TICKS</span></div><div class="line"><a name="l00182"></a><span class="lineno">  182</span>&#160;    <span class="comment">// because the timer count includes zero.</span></div><div class="line"><a name="l00183"></a><span class="lineno">  183</span>&#160;    <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> timer_start_val = <a class="code" href="sweep__sensor_8c.html#a5ba88e74de0c170f9f8c067ac55034e1">PWM_PERIOD_TICKS</a> - 1;</div><div class="line"><a name="l00184"></a><span class="lineno">  184</span>&#160;</div><div class="line"><a name="l00185"></a><span class="lineno">  185</span>&#160;    <span class="comment">// Clear bits 31:24 (upper 2 bytes) to ensure that the value will fit</span></div><div class="line"><a name="l00186"></a><span class="lineno">  186</span>&#160;    <span class="comment">// into the 24-bit timer (16-bit timer + 8-bit extension)</span></div><div class="line"><a name="l00187"></a><span class="lineno">  187</span>&#160;    timer_start_val &amp;= 0x00FFFFFF;</div><div class="line"><a name="l00188"></a><span class="lineno">  188</span>&#160;</div><div class="line"><a name="l00189"></a><span class="lineno">  189</span>&#160;    <span class="comment">// Set the starting count value of the timer to 319,999</span></div><div class="line"><a name="l00190"></a><span class="lineno">  190</span>&#160;    <span class="comment">// for a period of 20 milliseconds</span></div><div class="line"><a name="l00191"></a><span class="lineno">  191</span>&#160;    TIMER1_TBPR_R &amp;= 0xFFFF0000;</div><div class="line"><a name="l00192"></a><span class="lineno">  192</span>&#160;    <span class="comment">//TIMER1_TBPR_R |= (320000 &gt;&gt; 16); // Load high bytes into Timer B Prescale register</span></div><div class="line"><a name="l00193"></a><span class="lineno">  193</span>&#160;    TIMER1_TBPR_R |= (timer_start_val &gt;&gt; 16); <span class="comment">// Load high bytes into Timer B Prescale register</span></div><div class="line"><a name="l00194"></a><span class="lineno">  194</span>&#160;    TIMER1_TBILR_R &amp;= 0xFFFF0000;</div><div class="line"><a name="l00195"></a><span class="lineno">  195</span>&#160;    <span class="comment">//TIMER1_TBILR_R |= (320000 &amp; 0xFFFF); // Load low bytes into Timer B Interval Load register</span></div><div class="line"><a name="l00196"></a><span class="lineno">  196</span>&#160;    TIMER1_TBILR_R |= (timer_start_val &amp; 0xFFFF); <span class="comment">// Load low bytes into Timer B Interval Load register</span></div><div class="line"><a name="l00197"></a><span class="lineno">  197</span>&#160;</div><div class="line"><a name="l00198"></a><span class="lineno">  198</span>&#160;    <span class="comment">// The initial timer match value to set in order to generate a pulse width</span></div><div class="line"><a name="l00199"></a><span class="lineno">  199</span>&#160;    <span class="comment">// of 1.5 milliseconds (to move the servo motor to its center position)</span></div><div class="line"><a name="l00200"></a><span class="lineno">  200</span>&#160;    <a class="code" href="sweep__sensor_8c.html#ae3a16b16a26af9c7aea5947732882e8d">pos_counter_value</a> = (<a class="code" href="sweep__sensor_8c.html#a5ba88e74de0c170f9f8c067ac55034e1">PWM_PERIOD_TICKS</a> - 1)</div><div class="line"><a name="l00201"></a><span class="lineno">  201</span>&#160;            - (((90 / <a class="code" href="sweep__sensor_8c.html#ad15c1ce3dc8d7295980df0c002469685">degrees_per_micros</a>) + <a class="code" href="sweep__sensor_8c.html#add67b8431980e75798449c977e7178d6">micros_offset</a>)</div><div class="line"><a name="l00202"></a><span class="lineno">  202</span>&#160;                    * <a class="code" href="sweep__sensor_8c.html#a6579d7b211ae42d014bae9f1e9244b86">TIMER_TICKS_PER_MICROS</a>); <span class="comment">// should be 295,999</span></div><div class="line"><a name="l00203"></a><span class="lineno">  203</span>&#160;</div><div class="line"><a name="l00204"></a><span class="lineno">  204</span>&#160;    <span class="comment">// Clear bits 31:24 (upper 2 bytes) to ensure that the value will fit</span></div><div class="line"><a name="l00205"></a><span class="lineno">  205</span>&#160;    <span class="comment">// into the 24-bit timer (16-bit timer + 8-bit extension)</span></div><div class="line"><a name="l00206"></a><span class="lineno">  206</span>&#160;    <a class="code" href="sweep__sensor_8c.html#ae3a16b16a26af9c7aea5947732882e8d">pos_counter_value</a> &amp;= 0x00FFFFFF;</div><div class="line"><a name="l00207"></a><span class="lineno">  207</span>&#160;</div><div class="line"><a name="l00208"></a><span class="lineno">  208</span>&#160;    <span class="comment">// Set the timer match value to an initial value of 295,999</span></div><div class="line"><a name="l00209"></a><span class="lineno">  209</span>&#160;    <span class="comment">// to generate a pulse width of 1.5 milliseconds</span></div><div class="line"><a name="l00210"></a><span class="lineno">  210</span>&#160;    TIMER1_TBPMR_R &amp;= 0xFFFFFF00;</div><div class="line"><a name="l00211"></a><span class="lineno">  211</span>&#160;    <span class="comment">//TIMER1_TBPMR_R |= ((320000 - 24000) &gt;&gt; 16); // Load high bytes into Timer B Prescale Match register</span></div><div class="line"><a name="l00212"></a><span class="lineno">  212</span>&#160;    TIMER1_TBPMR_R |= (<a class="code" href="sweep__sensor_8c.html#ae3a16b16a26af9c7aea5947732882e8d">pos_counter_value</a> &gt;&gt; 16); <span class="comment">// Load high bytes into Timer B Prescale Match register</span></div><div class="line"><a name="l00213"></a><span class="lineno">  213</span>&#160;    TIMER1_TBMATCHR_R &amp;= 0xFFFF0000;</div><div class="line"><a name="l00214"></a><span class="lineno">  214</span>&#160;    <span class="comment">//TIMER1_TBMATCHR_R |= ((320000 - 24000) &amp; 0xFFFF); // Load low bytes into Timer B Match register</span></div><div class="line"><a name="l00215"></a><span class="lineno">  215</span>&#160;    TIMER1_TBMATCHR_R |= (<a class="code" href="sweep__sensor_8c.html#ae3a16b16a26af9c7aea5947732882e8d">pos_counter_value</a> &amp; 0xFFFF); <span class="comment">// Load low bytes into Timer B Match register</span></div><div class="line"><a name="l00216"></a><span class="lineno">  216</span>&#160;</div><div class="line"><a name="l00217"></a><span class="lineno">  217</span>&#160;    <span class="comment">// Re-enable Timer1B and begin counting</span></div><div class="line"><a name="l00218"></a><span class="lineno">  218</span>&#160;    TIMER1_CTL_R |= 0x100;</div><div class="line"><a name="l00219"></a><span class="lineno">  219</span>&#160;</div><div class="line"><a name="l00220"></a><span class="lineno">  220</span>&#160;    <span class="comment">/*</span></div><div class="line"><a name="l00221"></a><span class="lineno">  221</span>&#160;<span class="comment">     * Part 2:  Initialize IR and sonic sensors</span></div><div class="line"><a name="l00222"></a><span class="lineno">  222</span>&#160;<span class="comment">     */</span></div><div class="line"><a name="l00223"></a><span class="lineno">  223</span>&#160;    <span class="comment">// Initialize ADC for IR sensor</span></div><div class="line"><a name="l00224"></a><span class="lineno">  224</span>&#160;    <a class="code" href="ir_8c.html#a1e942fcd91f79d49e4ddb8d7e9d3ef95">adc_init</a>();</div><div class="line"><a name="l00225"></a><span class="lineno">  225</span>&#160;</div><div class="line"><a name="l00226"></a><span class="lineno">  226</span>&#160;    <span class="comment">// Initialize sonic sensor</span></div><div class="line"><a name="l00227"></a><span class="lineno">  227</span>&#160;    <a class="code" href="sonic_8c.html#a0cd05251349a248cfafffcea2499cd15">sonic_init</a>();</div><div class="line"><a name="l00228"></a><span class="lineno">  228</span>&#160;</div><div class="line"><a name="l00229"></a><span class="lineno">  229</span>&#160;    <span class="comment">// Initialize UART for use in sweep routine</span></div><div class="line"><a name="l00230"></a><span class="lineno">  230</span>&#160;    <a class="code" href="uart_8c.html#a0c0ca72359ddf28dcd15900dfba19343">uart_init</a>();</div><div class="line"><a name="l00231"></a><span class="lineno">  231</span>&#160;}</div><div class="line"><a name="l00232"></a><span class="lineno">  232</span>&#160;</div><div class="line"><a name="l00233"></a><span class="lineno"><a class="line" href="sweep__sensor_8h.html#a111f017ba6449291db5ba445d602659c">  233</a></span>&#160;<span class="keywordtype">float</span> <a class="code" href="sweep__sensor_8c.html#a111f017ba6449291db5ba445d602659c">sweep_getPos</a>()</div><div class="line"><a name="l00234"></a><span class="lineno">  234</span>&#160;{</div><div class="line"><a name="l00235"></a><span class="lineno">  235</span>&#160;    <span class="comment">// Return angular position of servo in degrees</span></div><div class="line"><a name="l00236"></a><span class="lineno">  236</span>&#160;    <span class="comment">//return ((degrees_per_micros / TIMER_TICKS_PER_MICROS) * (PWM_PERIOD_TICKS - 1) - (degrees_per_micros * (micros_offset + pos_counter_value) ));</span></div><div class="line"><a name="l00237"></a><span class="lineno">  237</span>&#160;    <span class="keywordflow">return</span> <a class="code" href="sweep__sensor_8c.html#aeed67431f921c909818ba6fa768b80bc">servoPos_deg</a>;</div><div class="line"><a name="l00238"></a><span class="lineno">  238</span>&#160;}</div><div class="line"><a name="l00239"></a><span class="lineno">  239</span>&#160;</div><div class="line"><a name="l00240"></a><span class="lineno"><a class="line" href="sweep__sensor_8h.html#a87706abc24e10327499a2612a0ae3cbc">  240</a></span>&#160;uint32_t <a class="code" href="sweep__sensor_8c.html#a87706abc24e10327499a2612a0ae3cbc">sweep_moveAbsolute</a>(<span class="keywordtype">float</span> angularPos_deg)</div><div class="line"><a name="l00241"></a><span class="lineno">  241</span>&#160;{</div><div class="line"><a name="l00242"></a><span class="lineno">  242</span>&#160;    <span class="comment">// If the specified angular position is outside the range of valid positions,</span></div><div class="line"><a name="l00243"></a><span class="lineno">  243</span>&#160;    <span class="comment">// i.e. outside of [-90,90], then set the servo to its maximum deflection in</span></div><div class="line"><a name="l00244"></a><span class="lineno">  244</span>&#160;    <span class="comment">// either the clockwise or counterclockwise direction (as determined by the</span></div><div class="line"><a name="l00245"></a><span class="lineno">  245</span>&#160;    <span class="comment">// sign of angularPos_deg)</span></div><div class="line"><a name="l00246"></a><span class="lineno">  246</span>&#160;    <span class="keywordflow">if</span> (angularPos_deg &gt; 90)</div><div class="line"><a name="l00247"></a><span class="lineno">  247</span>&#160;    {</div><div class="line"><a name="l00248"></a><span class="lineno">  248</span>&#160;        angularPos_deg = 90;    <span class="comment">// Maximum counterclockwise deflection</span></div><div class="line"><a name="l00249"></a><span class="lineno">  249</span>&#160;    }</div><div class="line"><a name="l00250"></a><span class="lineno">  250</span>&#160;    <span class="keywordflow">else</span> <span class="keywordflow">if</span> (angularPos_deg &lt; -90)</div><div class="line"><a name="l00251"></a><span class="lineno">  251</span>&#160;    {</div><div class="line"><a name="l00252"></a><span class="lineno">  252</span>&#160;        angularPos_deg = -90;   <span class="comment">// Maximum clockwise deflection</span></div><div class="line"><a name="l00253"></a><span class="lineno">  253</span>&#160;    }</div><div class="line"><a name="l00254"></a><span class="lineno">  254</span>&#160;</div><div class="line"><a name="l00255"></a><span class="lineno">  255</span>&#160;    <span class="comment">// Calculate pulse width required to move servo motor to this angle</span></div><div class="line"><a name="l00256"></a><span class="lineno">  256</span>&#160;    <span class="keywordtype">float</span> pulse_width_micros = ((angularPos_deg + 90.0) / <a class="code" href="sweep__sensor_8c.html#ad15c1ce3dc8d7295980df0c002469685">degrees_per_micros</a>)</div><div class="line"><a name="l00257"></a><span class="lineno">  257</span>&#160;            + <a class="code" href="sweep__sensor_8c.html#add67b8431980e75798449c977e7178d6">micros_offset</a>;</div><div class="line"><a name="l00258"></a><span class="lineno">  258</span>&#160;</div><div class="line"><a name="l00259"></a><span class="lineno">  259</span>&#160;    <span class="comment">// Calculate the time required for servo to move to new position in milliseconds</span></div><div class="line"><a name="l00260"></a><span class="lineno">  260</span>&#160;    uint32_t wait_time_servo = getServoWaitTime_Millis(<a class="code" href="sweep__sensor_8c.html#a111f017ba6449291db5ba445d602659c">sweep_getPos</a>(),</div><div class="line"><a name="l00261"></a><span class="lineno">  261</span>&#160;                                                       angularPos_deg);</div><div class="line"><a name="l00262"></a><span class="lineno">  262</span>&#160;</div><div class="line"><a name="l00263"></a><span class="lineno">  263</span>&#160;    <span class="comment">// Call servo_configurePWM() to move the servo to that position</span></div><div class="line"><a name="l00264"></a><span class="lineno">  264</span>&#160;    servo_configurePWM(pulse_width_micros);</div><div class="line"><a name="l00265"></a><span class="lineno">  265</span>&#160;</div><div class="line"><a name="l00266"></a><span class="lineno">  266</span>&#160;    <span class="comment">// Update current position of servo</span></div><div class="line"><a name="l00267"></a><span class="lineno">  267</span>&#160;    <a class="code" href="sweep__sensor_8c.html#aeed67431f921c909818ba6fa768b80bc">servoPos_deg</a> = angularPos_deg;</div><div class="line"><a name="l00268"></a><span class="lineno">  268</span>&#160;</div><div class="line"><a name="l00269"></a><span class="lineno">  269</span>&#160;    <span class="comment">// Return wait time for servo</span></div><div class="line"><a name="l00270"></a><span class="lineno">  270</span>&#160;    <span class="keywordflow">return</span> wait_time_servo;</div><div class="line"><a name="l00271"></a><span class="lineno">  271</span>&#160;}</div><div class="line"><a name="l00272"></a><span class="lineno">  272</span>&#160;</div><div class="line"><a name="l00273"></a><span class="lineno"><a class="line" href="sweep__sensor_8h.html#a3570da170a331a34c81a23922b3197fc">  273</a></span>&#160;uint32_t <a class="code" href="sweep__sensor_8c.html#a3570da170a331a34c81a23922b3197fc">sweep_moveRelative</a>(<span class="keywordtype">float</span> angularOffset_deg)</div><div class="line"><a name="l00274"></a><span class="lineno">  274</span>&#160;{</div><div class="line"><a name="l00275"></a><span class="lineno">  275</span>&#160;    <span class="keywordflow">return</span> <a class="code" href="sweep__sensor_8c.html#a87706abc24e10327499a2612a0ae3cbc">sweep_moveAbsolute</a>(<a class="code" href="sweep__sensor_8c.html#a111f017ba6449291db5ba445d602659c">sweep_getPos</a>() + angularOffset_deg);</div><div class="line"><a name="l00276"></a><span class="lineno">  276</span>&#160;}</div><div class="line"><a name="l00277"></a><span class="lineno">  277</span>&#160;</div><div class="line"><a name="l00278"></a><span class="lineno"><a class="line" href="sweep__sensor_8h.html#af1fcacf7ec9956ea6fb31a62f593d6e7">  278</a></span>&#160;int32_t <a class="code" href="sweep__sensor_8c.html#af1fcacf7ec9956ea6fb31a62f593d6e7">sweep_readIRSensor</a>()</div><div class="line"><a name="l00279"></a><span class="lineno">  279</span>&#160;{</div><div class="line"><a name="l00280"></a><span class="lineno">  280</span>&#160;    <span class="keywordflow">return</span> <a class="code" href="ir_8c.html#a7e70a945ffc15434f5310c8684643eb3">getADCReading</a>();</div><div class="line"><a name="l00281"></a><span class="lineno">  281</span>&#160;}</div><div class="line"><a name="l00282"></a><span class="lineno">  282</span>&#160;</div><div class="line"><a name="l00283"></a><span class="lineno"><a class="line" href="sweep__sensor_8h.html#a059b6d41eb8934ac26e0928818843c6e">  283</a></span>&#160;int32_t <a class="code" href="sweep__sensor_8c.html#a059b6d41eb8934ac26e0928818843c6e">sweep_readSonicSensor</a>()</div><div class="line"><a name="l00284"></a><span class="lineno">  284</span>&#160;{</div><div class="line"><a name="l00285"></a><span class="lineno">  285</span>&#160;    <span class="keywordflow">return</span> <a class="code" href="sonic_8c.html#adbe32feee06ccd7a0a9c14709b9a1ce4">get_sonic_reading</a>();</div><div class="line"><a name="l00286"></a><span class="lineno">  286</span>&#160;}</div><div class="line"><a name="l00287"></a><span class="lineno">  287</span>&#160;</div><div class="line"><a name="l00288"></a><span class="lineno"><a class="line" href="sweep__sensor_8h.html#ad299d740e7020063a809deb1e7401d92">  288</a></span>&#160;<span class="keywordtype">void</span> <a class="code" href="sweep__sensor_8c.html#ad299d740e7020063a809deb1e7401d92">sweep_doSweep</a>(<span class="keywordtype">float</span> startAngle_deg, <span class="keywordtype">float</span> endAngle_deg,</div><div class="line"><a name="l00289"></a><span class="lineno">  289</span>&#160;                   <span class="keywordtype">float</span> sweepIncrement_deg, uint32_t incDelay_ms) <span class="comment">//TODO fix this routine</span></div><div class="line"><a name="l00290"></a><span class="lineno">  290</span>&#160;{</div><div class="line"><a name="l00291"></a><span class="lineno">  291</span>&#160;    <span class="comment">// If the given sweep increment is zero, return immediately.</span></div><div class="line"><a name="l00292"></a><span class="lineno">  292</span>&#160;    <span class="keywordflow">if</span> (!sweepIncrement_deg)</div><div class="line"><a name="l00293"></a><span class="lineno">  293</span>&#160;        <span class="keywordflow">return</span>;</div><div class="line"><a name="l00294"></a><span class="lineno">  294</span>&#160;</div><div class="line"><a name="l00295"></a><span class="lineno">  295</span>&#160;    <span class="comment">// If the specified starting angular position is outside of the valid range [-90,90],  overwrite it with</span></div><div class="line"><a name="l00296"></a><span class="lineno">  296</span>&#160;    <span class="comment">// the closest valid angular position.</span></div><div class="line"><a name="l00297"></a><span class="lineno">  297</span>&#160;    <span class="keywordflow">if</span> (startAngle_deg &gt; 90)</div><div class="line"><a name="l00298"></a><span class="lineno">  298</span>&#160;    {</div><div class="line"><a name="l00299"></a><span class="lineno">  299</span>&#160;        startAngle_deg = 90;</div><div class="line"><a name="l00300"></a><span class="lineno">  300</span>&#160;    }</div><div class="line"><a name="l00301"></a><span class="lineno">  301</span>&#160;    <span class="keywordflow">else</span> <span class="keywordflow">if</span> (startAngle_deg &lt; -90)</div><div class="line"><a name="l00302"></a><span class="lineno">  302</span>&#160;    {</div><div class="line"><a name="l00303"></a><span class="lineno">  303</span>&#160;        startAngle_deg = -90;</div><div class="line"><a name="l00304"></a><span class="lineno">  304</span>&#160;    }</div><div class="line"><a name="l00305"></a><span class="lineno">  305</span>&#160;</div><div class="line"><a name="l00306"></a><span class="lineno">  306</span>&#160;    <span class="comment">// If the specified ending angular position is outside of the valid range [-90,90],  overwrite it with</span></div><div class="line"><a name="l00307"></a><span class="lineno">  307</span>&#160;    <span class="comment">// the closest valid angular position.</span></div><div class="line"><a name="l00308"></a><span class="lineno">  308</span>&#160;    <span class="keywordflow">if</span> (endAngle_deg &gt; 90)</div><div class="line"><a name="l00309"></a><span class="lineno">  309</span>&#160;    {</div><div class="line"><a name="l00310"></a><span class="lineno">  310</span>&#160;        endAngle_deg = 90;</div><div class="line"><a name="l00311"></a><span class="lineno">  311</span>&#160;    }</div><div class="line"><a name="l00312"></a><span class="lineno">  312</span>&#160;    <span class="keywordflow">else</span> <span class="keywordflow">if</span> (endAngle_deg &lt; -90)</div><div class="line"><a name="l00313"></a><span class="lineno">  313</span>&#160;    {</div><div class="line"><a name="l00314"></a><span class="lineno">  314</span>&#160;        endAngle_deg = -90;</div><div class="line"><a name="l00315"></a><span class="lineno">  315</span>&#160;    }</div><div class="line"><a name="l00316"></a><span class="lineno">  316</span>&#160;</div><div class="line"><a name="l00317"></a><span class="lineno">  317</span>&#160;    <span class="comment">// If the given start and end angles are equal, return immediately.</span></div><div class="line"><a name="l00318"></a><span class="lineno">  318</span>&#160;    <span class="keywordflow">if</span> (startAngle_deg == endAngle_deg)</div><div class="line"><a name="l00319"></a><span class="lineno">  319</span>&#160;        <span class="keywordflow">return</span>;</div><div class="line"><a name="l00320"></a><span class="lineno">  320</span>&#160;</div><div class="line"><a name="l00321"></a><span class="lineno">  321</span>&#160;    <span class="comment">// Ensure that the given angle increment is positive</span></div><div class="line"><a name="l00322"></a><span class="lineno">  322</span>&#160;    sweepIncrement_deg = fabs(sweepIncrement_deg);</div><div class="line"><a name="l00323"></a><span class="lineno">  323</span>&#160;    <span class="comment">// The direction of the sweep, represented as either 1 (for a CCW sweep)</span></div><div class="line"><a name="l00324"></a><span class="lineno">  324</span>&#160;    <span class="comment">// or -1 (for a CW sweep).</span></div><div class="line"><a name="l00325"></a><span class="lineno">  325</span>&#160;    int8_t sweepDir = (endAngle_deg &gt; startAngle_deg ? 1 : -1);</div><div class="line"><a name="l00326"></a><span class="lineno">  326</span>&#160;</div><div class="line"><a name="l00327"></a><span class="lineno">  327</span>&#160;    <span class="comment">// The current distance reported by the IR sensor, in cm</span></div><div class="line"><a name="l00328"></a><span class="lineno">  328</span>&#160;    <span class="keywordtype">float</span> current_IR_dist_cm = 0;</div><div class="line"><a name="l00329"></a><span class="lineno">  329</span>&#160;    <span class="comment">// The current distance reported by the sonic sensor, in cm</span></div><div class="line"><a name="l00330"></a><span class="lineno">  330</span>&#160;    <span class="keywordtype">float</span> current_sonic_dist_cm = 0;</div><div class="line"><a name="l00331"></a><span class="lineno">  331</span>&#160;    <span class="comment">// A 128-bit buffer for character data to be sent over UART</span></div><div class="line"><a name="l00332"></a><span class="lineno">  332</span>&#160;    <span class="keywordtype">char</span> text_buffer[128] = { 0 };  <span class="comment">// All values initially set to zero</span></div><div class="line"><a name="l00333"></a><span class="lineno">  333</span>&#160;</div><div class="line"><a name="l00334"></a><span class="lineno">  334</span>&#160;    <span class="comment">// The amount of time to wait before getting the next sensor readings</span></div><div class="line"><a name="l00335"></a><span class="lineno">  335</span>&#160;    uint32_t servoWaitTime_millis = 0;</div><div class="line"><a name="l00336"></a><span class="lineno">  336</span>&#160;</div><div class="line"><a name="l00337"></a><span class="lineno">  337</span>&#160;    <span class="comment">// Ensure that the servo is at the correct starting position before performing the sweep</span></div><div class="line"><a name="l00338"></a><span class="lineno">  338</span>&#160;    <span class="keywordflow">if</span> (<a class="code" href="sweep__sensor_8c.html#a111f017ba6449291db5ba445d602659c">sweep_getPos</a>() != startAngle_deg)</div><div class="line"><a name="l00339"></a><span class="lineno">  339</span>&#160;    {</div><div class="line"><a name="l00340"></a><span class="lineno">  340</span>&#160;        <span class="comment">// Move servo to correct position</span></div><div class="line"><a name="l00341"></a><span class="lineno">  341</span>&#160;        servoWaitTime_millis = <a class="code" href="sweep__sensor_8c.html#a87706abc24e10327499a2612a0ae3cbc">sweep_moveAbsolute</a>(startAngle_deg);</div><div class="line"><a name="l00342"></a><span class="lineno">  342</span>&#160;        <span class="comment">// Wait to ensure that the servo has reached the correct position</span></div><div class="line"><a name="l00343"></a><span class="lineno">  343</span>&#160;        timer_waitMillis(servoWaitTime_millis);</div><div class="line"><a name="l00344"></a><span class="lineno">  344</span>&#160;    }</div><div class="line"><a name="l00345"></a><span class="lineno">  345</span>&#160;</div><div class="line"><a name="l00346"></a><span class="lineno">  346</span>&#160;    <span class="comment">// The angular position of the robot on the previous loop iteration</span></div><div class="line"><a name="l00347"></a><span class="lineno">  347</span>&#160;    <span class="keywordtype">float</span> prevPos_deg = startAngle_deg - (sweepDir * sweepIncrement_deg);</div><div class="line"><a name="l00348"></a><span class="lineno">  348</span>&#160;</div><div class="line"><a name="l00349"></a><span class="lineno">  349</span>&#160;    <span class="comment">// Perform the sweep in the proper direction using the given increment</span></div><div class="line"><a name="l00350"></a><span class="lineno">  350</span>&#160;    <span class="keywordflow">while</span> (((sweepDir &gt;= 0)</div><div class="line"><a name="l00351"></a><span class="lineno">  351</span>&#160;            &amp;&amp; ((prevPos_deg + sweepIncrement_deg) &lt;= endAngle_deg))</div><div class="line"><a name="l00352"></a><span class="lineno">  352</span>&#160;            || ((sweepDir &lt; 0)</div><div class="line"><a name="l00353"></a><span class="lineno">  353</span>&#160;                    &amp;&amp; ((prevPos_deg - sweepIncrement_deg) &gt;= endAngle_deg)))</div><div class="line"><a name="l00354"></a><span class="lineno">  354</span>&#160;    {</div><div class="line"><a name="l00355"></a><span class="lineno">  355</span>&#160;        <span class="comment">// Wait to ensure that the servo has reached the correct position</span></div><div class="line"><a name="l00356"></a><span class="lineno">  356</span>&#160;        <span class="keywordflow">if</span> (servoWaitTime_millis &gt; 0)</div><div class="line"><a name="l00357"></a><span class="lineno">  357</span>&#160;            timer_waitMillis(servoWaitTime_millis);</div><div class="line"><a name="l00358"></a><span class="lineno">  358</span>&#160;        <span class="comment">// Delay the specified amount of time between increments</span></div><div class="line"><a name="l00359"></a><span class="lineno">  359</span>&#160;        <span class="keywordflow">if</span> (incDelay_ms &gt; 0)</div><div class="line"><a name="l00360"></a><span class="lineno">  360</span>&#160;            timer_waitMillis(incDelay_ms);</div><div class="line"><a name="l00361"></a><span class="lineno">  361</span>&#160;</div><div class="line"><a name="l00362"></a><span class="lineno">  362</span>&#160;        <span class="comment">// Start sonic measurement</span></div><div class="line"><a name="l00363"></a><span class="lineno">  363</span>&#160;        <a class="code" href="sonic_8c.html#a588b501da316bcf0dec4756000d5ebce">sonic_chirp</a>();</div><div class="line"><a name="l00364"></a><span class="lineno">  364</span>&#160;</div><div class="line"><a name="l00365"></a><span class="lineno">  365</span>&#160;        <span class="comment">// Read current value of sonic sensor and convert to distance in cm</span></div><div class="line"><a name="l00366"></a><span class="lineno">  366</span>&#160;        current_sonic_dist_cm = <a class="code" href="sonic_8c.html#ab57b797a1fd5d1fbfcdbc150282bff91">sonic_convertToDist</a>(<a class="code" href="sweep__sensor_8c.html#a059b6d41eb8934ac26e0928818843c6e">sweep_readSonicSensor</a>());</div><div class="line"><a name="l00367"></a><span class="lineno">  367</span>&#160;        <span class="comment">// Read current value of IR sensor and convert to distance in cm</span></div><div class="line"><a name="l00368"></a><span class="lineno">  368</span>&#160;        current_IR_dist_cm = <a class="code" href="ir_8c.html#a9350c2275f27f9622b8253d3f2126cb3">ir_convertToDist</a>(<a class="code" href="sweep__sensor_8c.html#af1fcacf7ec9956ea6fb31a62f593d6e7">sweep_readIRSensor</a>());</div><div class="line"><a name="l00369"></a><span class="lineno">  369</span>&#160;</div><div class="line"><a name="l00370"></a><span class="lineno">  370</span>&#160;        <span class="keywordtype">float</span> sweep_offset_deg = 8.0;</div><div class="line"><a name="l00371"></a><span class="lineno">  371</span>&#160;</div><div class="line"><a name="l00372"></a><span class="lineno">  372</span>&#160;        <span class="comment">// Format data into a string and send it over UART.</span></div><div class="line"><a name="l00373"></a><span class="lineno">  373</span>&#160;        <span class="comment">// Note: Only send an IR sensor reading if the measured distance is less than or equal to 60 cm.</span></div><div class="line"><a name="l00374"></a><span class="lineno">  374</span>&#160;        snprintf(text_buffer, 128, <span class="stringliteral">&quot;s %.2f %.2f %.2f\r\n&quot;</span>,</div><div class="line"><a name="l00375"></a><span class="lineno">  375</span>&#160;                 <a class="code" href="sweep__sensor_8c.html#a111f017ba6449291db5ba445d602659c">sweep_getPos</a>() - (sweepDir * sweep_offset_deg),</div><div class="line"><a name="l00376"></a><span class="lineno">  376</span>&#160;                 current_sonic_dist_cm,</div><div class="line"><a name="l00377"></a><span class="lineno">  377</span>&#160;                 (current_IR_dist_cm &gt; 60 ? 0.0 : current_IR_dist_cm));</div><div class="line"><a name="l00378"></a><span class="lineno">  378</span>&#160;        <a class="code" href="uart_8c.html#af96d1ce52b8a52eabc606489d31351e9">uart_sendStr</a>(text_buffer);</div><div class="line"><a name="l00379"></a><span class="lineno">  379</span>&#160;</div><div class="line"><a name="l00380"></a><span class="lineno">  380</span>&#160;        <span class="comment">// Update previous position variable</span></div><div class="line"><a name="l00381"></a><span class="lineno">  381</span>&#160;        prevPos_deg = <a class="code" href="sweep__sensor_8c.html#a111f017ba6449291db5ba445d602659c">sweep_getPos</a>();</div><div class="line"><a name="l00382"></a><span class="lineno">  382</span>&#160;</div><div class="line"><a name="l00383"></a><span class="lineno">  383</span>&#160;        <span class="comment">// Move the sensor assembly by the specified increment in the</span></div><div class="line"><a name="l00384"></a><span class="lineno">  384</span>&#160;        <span class="comment">// correct direction and get the new wait time</span></div><div class="line"><a name="l00385"></a><span class="lineno">  385</span>&#160;        servoWaitTime_millis = <a class="code" href="sweep__sensor_8c.html#a3570da170a331a34c81a23922b3197fc">sweep_moveRelative</a>(</div><div class="line"><a name="l00386"></a><span class="lineno">  386</span>&#160;                sweepDir * sweepIncrement_deg);</div><div class="line"><a name="l00387"></a><span class="lineno">  387</span>&#160;    }</div><div class="line"><a name="l00388"></a><span class="lineno">  388</span>&#160;</div><div class="line"><a name="l00389"></a><span class="lineno">  389</span>&#160;    <span class="comment">// Wait to ensure that the servo has reached the correct position</span></div><div class="line"><a name="l00390"></a><span class="lineno">  390</span>&#160;    <span class="keywordflow">if</span> (servoWaitTime_millis &gt; 0)</div><div class="line"><a name="l00391"></a><span class="lineno">  391</span>&#160;    {</div><div class="line"><a name="l00392"></a><span class="lineno">  392</span>&#160;        timer_waitMillis(servoWaitTime_millis);</div><div class="line"><a name="l00393"></a><span class="lineno">  393</span>&#160;    }</div><div class="line"><a name="l00394"></a><span class="lineno">  394</span>&#160;</div><div class="line"><a name="l00395"></a><span class="lineno">  395</span>&#160;}</div><div class="line"><a name="l00396"></a><span class="lineno">  396</span>&#160;</div><div class="line"><a name="l00397"></a><span class="lineno"><a class="line" href="sweep__sensor_8h.html#a967045ec4778e4ef6fc5b6d9aba3a80d">  397</a></span>&#160;<span class="keywordtype">void</span> <a class="code" href="sweep__sensor_8c.html#a967045ec4778e4ef6fc5b6d9aba3a80d">sweep_doFullSweep</a>(<span class="keywordtype">float</span> sweepIncrement_deg, uint32_t incDelay_ms)</div><div class="line"><a name="l00398"></a><span class="lineno">  398</span>&#160;{</div><div class="line"><a name="l00399"></a><span class="lineno">  399</span>&#160;    <span class="comment">// If the given sweep increment is zero, return immediately.</span></div><div class="line"><a name="l00400"></a><span class="lineno">  400</span>&#160;    <span class="keywordflow">if</span> (!sweepIncrement_deg)</div><div class="line"><a name="l00401"></a><span class="lineno">  401</span>&#160;        <span class="keywordflow">return</span>;</div><div class="line"><a name="l00402"></a><span class="lineno">  402</span>&#160;</div><div class="line"><a name="l00403"></a><span class="lineno">  403</span>&#160;    <span class="comment">// The direction of the sweep, represented as either 1 (for a CCW sweep)</span></div><div class="line"><a name="l00404"></a><span class="lineno">  404</span>&#160;    <span class="comment">// or -1 (for a CW sweep).</span></div><div class="line"><a name="l00405"></a><span class="lineno">  405</span>&#160;    int8_t sweepDir = 1;</div><div class="line"><a name="l00406"></a><span class="lineno">  406</span>&#160;    <span class="comment">// The amount of time to wait before getting the next sensor readings</span></div><div class="line"><a name="l00407"></a><span class="lineno">  407</span>&#160;    uint32_t servoWaitTime_millis = 0;</div><div class="line"><a name="l00408"></a><span class="lineno">  408</span>&#160;</div><div class="line"><a name="l00409"></a><span class="lineno">  409</span>&#160;    <span class="comment">// Determine whether the sensor&#39;s greatest clockwise or counterclockwise deflection</span></div><div class="line"><a name="l00410"></a><span class="lineno">  410</span>&#160;    <span class="comment">// whichever is closest to its current position, then perform a sweep from that</span></div><div class="line"><a name="l00411"></a><span class="lineno">  411</span>&#160;    <span class="comment">// deflection to the other maximum deflection.</span></div><div class="line"><a name="l00412"></a><span class="lineno">  412</span>&#160;    <span class="keywordflow">if</span> (<a class="code" href="sweep__sensor_8c.html#a111f017ba6449291db5ba445d602659c">sweep_getPos</a>() &lt; 0)</div><div class="line"><a name="l00413"></a><span class="lineno">  413</span>&#160;    {</div><div class="line"><a name="l00414"></a><span class="lineno">  414</span>&#160;        <span class="comment">// Move sensor to maximum clockwise deflection</span></div><div class="line"><a name="l00415"></a><span class="lineno">  415</span>&#160;        servoWaitTime_millis = <a class="code" href="sweep__sensor_8c.html#a87706abc24e10327499a2612a0ae3cbc">sweep_moveAbsolute</a>(-90.0);</div><div class="line"><a name="l00416"></a><span class="lineno">  416</span>&#160;        <span class="comment">// Sweep from &quot;negative&quot; side to &quot;positive&quot; side (Counterclockwise)</span></div><div class="line"><a name="l00417"></a><span class="lineno">  417</span>&#160;        sweepDir = 1;</div><div class="line"><a name="l00418"></a><span class="lineno">  418</span>&#160;    }</div><div class="line"><a name="l00419"></a><span class="lineno">  419</span>&#160;    <span class="keywordflow">else</span></div><div class="line"><a name="l00420"></a><span class="lineno">  420</span>&#160;    {</div><div class="line"><a name="l00421"></a><span class="lineno">  421</span>&#160;        <span class="comment">// Move sensor to maximum counterclockwise deflection</span></div><div class="line"><a name="l00422"></a><span class="lineno">  422</span>&#160;        servoWaitTime_millis = <a class="code" href="sweep__sensor_8c.html#a87706abc24e10327499a2612a0ae3cbc">sweep_moveAbsolute</a>(90);</div><div class="line"><a name="l00423"></a><span class="lineno">  423</span>&#160;        <span class="comment">// Sweep from &quot;positive&quot; side to &quot;negative&quot; side (Clockwise)</span></div><div class="line"><a name="l00424"></a><span class="lineno">  424</span>&#160;        sweepDir = -1;</div><div class="line"><a name="l00425"></a><span class="lineno">  425</span>&#160;    }</div><div class="line"><a name="l00426"></a><span class="lineno">  426</span>&#160;</div><div class="line"><a name="l00427"></a><span class="lineno">  427</span>&#160;    <span class="comment">// Wait to ensure that the servo has reached the correct position</span></div><div class="line"><a name="l00428"></a><span class="lineno">  428</span>&#160;    <span class="keywordflow">if</span> (servoWaitTime_millis &gt; 0)</div><div class="line"><a name="l00429"></a><span class="lineno">  429</span>&#160;    {</div><div class="line"><a name="l00430"></a><span class="lineno">  430</span>&#160;        timer_waitMillis(servoWaitTime_millis);</div><div class="line"><a name="l00431"></a><span class="lineno">  431</span>&#160;    }</div><div class="line"><a name="l00432"></a><span class="lineno">  432</span>&#160;</div><div class="line"><a name="l00433"></a><span class="lineno">  433</span>&#160;    <span class="comment">// Perform the sweep routine between the maximum clockwise and counterclockwise</span></div><div class="line"><a name="l00434"></a><span class="lineno">  434</span>&#160;    <span class="comment">// deflections of the sensor assembly in the proper direction</span></div><div class="line"><a name="l00435"></a><span class="lineno">  435</span>&#160;    <a class="code" href="sweep__sensor_8c.html#ad299d740e7020063a809deb1e7401d92">sweep_doSweep</a>(-90.0 * sweepDir, 90.0 * sweepDir, sweepIncrement_deg,</div><div class="line"><a name="l00436"></a><span class="lineno">  436</span>&#160;                  incDelay_ms);</div><div class="line"><a name="l00437"></a><span class="lineno">  437</span>&#160;</div><div class="line"><a name="l00438"></a><span class="lineno">  438</span>&#160;}</div><div class="line"><a name="l00439"></a><span class="lineno">  439</span>&#160;</div><div class="ttc" id="sonic_8c_html_adbe32feee06ccd7a0a9c14709b9a1ce4"><div class="ttname"><a href="sonic_8c.html#adbe32feee06ccd7a0a9c14709b9a1ce4">get_sonic_reading</a></div><div class="ttdeci">int get_sonic_reading()</div><div class="ttdef"><b>Definition:</b> <a href="sonic_8c_source.html#l00137">sonic.c:137</a></div></div>
+<a href="sweep__sensor_8c.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno">    1</span>&#160;</div><div class="line"><a name="l00013"></a><span class="lineno">   13</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="sweep__sensor_8h.html">sweep_sensor.h</a>&quot;</span></div><div class="line"><a name="l00014"></a><span class="lineno">   14</span>&#160;</div><div class="line"><a name="l00015"></a><span class="lineno">   15</span>&#160;<span class="comment">// -------------------------------- BEGIN CONSTANTS -------------------------------- //</span></div><div class="line"><a name="l00016"></a><span class="lineno">   16</span>&#160;</div><div class="line"><a name="l00023"></a><span class="lineno"><a class="line" href="sweep__sensor_8c.html#a81c686546c2c34dce41931315aa910df">   23</a></span>&#160;<span class="preprocessor">#define TIMER_TICKS_PER_SECOND 16e6</span></div><div class="line"><a name="l00024"></a><span class="lineno">   24</span>&#160;</div><div class="line"><a name="l00028"></a><span class="lineno"><a class="line" href="sweep__sensor_8c.html#a2d01ba8e6facddebf5e5f716b45b8566">   28</a></span>&#160;<span class="preprocessor">#define PWM_PERIOD_MICROS 20000 // 20 milliseconds</span></div><div class="line"><a name="l00029"></a><span class="lineno">   29</span>&#160;</div><div class="line"><a name="l00033"></a><span class="lineno"><a class="line" href="sweep__sensor_8c.html#a6579d7b211ae42d014bae9f1e9244b86">   33</a></span>&#160;<span class="preprocessor">#define TIMER_TICKS_PER_MICROS (TIMER_TICKS_PER_SECOND * (1.0e-6))</span></div><div class="line"><a name="l00034"></a><span class="lineno">   34</span>&#160;</div><div class="line"><a name="l00038"></a><span class="lineno"><a class="line" href="sweep__sensor_8c.html#a5ba88e74de0c170f9f8c067ac55034e1">   38</a></span>&#160;<span class="preprocessor">#define PWM_PERIOD_TICKS (PWM_PERIOD_MICROS * TIMER_TICKS_PER_MICROS) // should be 320,000</span></div><div class="line"><a name="l00039"></a><span class="lineno">   39</span>&#160;</div><div class="line"><a name="l00040"></a><span class="lineno">   40</span>&#160;<span class="comment">// -------------------------------- END CONSTANTS -------------------------------- //</span></div><div class="line"><a name="l00041"></a><span class="lineno">   41</span>&#160;</div><div class="line"><a name="l00042"></a><span class="lineno">   42</span>&#160;<span class="comment">// -------------------------------- BEGIN GLOBAL VARIABLES -------------------------------- //</span></div><div class="line"><a name="l00043"></a><span class="lineno">   43</span>&#160;</div><div class="line"><a name="l00044"></a><span class="lineno">   44</span>&#160;<span class="comment">// GLOBAL VARIABLE(S) FOR PWM:</span></div><div class="line"><a name="l00048"></a><span class="lineno"><a class="line" href="sweep__sensor_8c.html#ae3a16b16a26af9c7aea5947732882e8d">   48</a></span>&#160;<span class="comment"></span><span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> <a class="code" href="sweep__sensor_8c.html#ae3a16b16a26af9c7aea5947732882e8d">pos_counter_value</a>;</div><div class="line"><a name="l00049"></a><span class="lineno">   49</span>&#160;</div><div class="line"><a name="l00058"></a><span class="lineno"><a class="line" href="sweep__sensor_8c.html#ad15c1ce3dc8d7295980df0c002469685">   58</a></span>&#160;<span class="keywordtype">float</span> <a class="code" href="sweep__sensor_8c.html#ad15c1ce3dc8d7295980df0c002469685">degrees_per_micros</a>;</div><div class="line"><a name="l00059"></a><span class="lineno">   59</span>&#160;</div><div class="line"><a name="l00068"></a><span class="lineno"><a class="line" href="sweep__sensor_8c.html#add67b8431980e75798449c977e7178d6">   68</a></span>&#160;<span class="keywordtype">signed</span> <span class="keywordtype">int</span> <a class="code" href="sweep__sensor_8c.html#add67b8431980e75798449c977e7178d6">micros_offset</a>;</div><div class="line"><a name="l00069"></a><span class="lineno">   69</span>&#160;</div><div class="line"><a name="l00070"></a><span class="lineno">   70</span>&#160;<span class="comment">// GLOBAL VARIABLE(S) FOR GENERAL SERVO CONTROL:</span></div><div class="line"><a name="l00076"></a><span class="lineno"><a class="line" href="sweep__sensor_8c.html#aeed67431f921c909818ba6fa768b80bc">   76</a></span>&#160;<span class="comment"></span><span class="keyword">volatile</span> <span class="keywordtype">float</span> <a class="code" href="sweep__sensor_8c.html#aeed67431f921c909818ba6fa768b80bc">servoPos_deg</a>;</div><div class="line"><a name="l00077"></a><span class="lineno">   77</span>&#160;</div><div class="line"><a name="l00078"></a><span class="lineno">   78</span>&#160;<span class="comment">// -------------------------------- END GLOBAL VARIABLES -------------------------------- //</span></div><div class="line"><a name="l00079"></a><span class="lineno">   79</span>&#160;</div><div class="line"><a name="l00080"></a><span class="lineno">   80</span>&#160;<span class="comment">// -------------------------------- BEGIN HELPER FUNCTIONS -------------------------------- //</span></div><div class="line"><a name="l00081"></a><span class="lineno">   81</span>&#160;</div><div class="line"><a name="l00093"></a><span class="lineno">   93</span>&#160;<span class="keyword">static</span> uint32_t getServoWaitTime_Millis(<span class="keywordtype">float</span> prevPos_deg, <span class="keywordtype">float</span> newPos_deg)</div><div class="line"><a name="l00094"></a><span class="lineno">   94</span>&#160;{</div><div class="line"><a name="l00095"></a><span class="lineno">   95</span>&#160;<span class="comment">//    return (fabs(prevPos_deg - newPos_deg) / 0.00045); // Servo moves at a rate of approximately 0.00045 degrees per microsecond (180 deg / 400,000 us)</span></div><div class="line"><a name="l00096"></a><span class="lineno">   96</span>&#160;<span class="comment">//    return (fabs(prevPos_deg - newPos_deg) / 0.00005);</span></div><div class="line"><a name="l00097"></a><span class="lineno">   97</span>&#160;    <span class="keywordflow">return</span> (fabs(prevPos_deg - newPos_deg) * (500 / 90));</div><div class="line"><a name="l00098"></a><span class="lineno">   98</span>&#160;}</div><div class="line"><a name="l00099"></a><span class="lineno">   99</span>&#160;</div><div class="line"><a name="l00105"></a><span class="lineno">  105</span>&#160;<span class="keyword">static</span> <span class="keywordtype">void</span> servo_configurePWM(<span class="keywordtype">float</span> pulseWidth_micros)</div><div class="line"><a name="l00106"></a><span class="lineno">  106</span>&#160;{</div><div class="line"><a name="l00107"></a><span class="lineno">  107</span>&#160;    <span class="comment">// Convert pulse width length from microseconds to timer ticks</span></div><div class="line"><a name="l00108"></a><span class="lineno">  108</span>&#160;    <span class="comment">// and calculate value to load into Match registers</span></div><div class="line"><a name="l00109"></a><span class="lineno">  109</span>&#160;    <span class="comment">//pos_counter_value = (PWM_PERIOD_TICKS - 1) - (pulseWidth_micros * TIMER_TICKS_PER_MICROS); // 16 timer ticks per microsecond</span></div><div class="line"><a name="l00110"></a><span class="lineno">  110</span>&#160;    <a class="code" href="sweep__sensor_8c.html#ae3a16b16a26af9c7aea5947732882e8d">pos_counter_value</a> = (<a class="code" href="sweep__sensor_8c.html#a5ba88e74de0c170f9f8c067ac55034e1">PWM_PERIOD_TICKS</a> - 1)</div><div class="line"><a name="l00111"></a><span class="lineno">  111</span>&#160;            - (pulseWidth_micros * <a class="code" href="sweep__sensor_8c.html#a6579d7b211ae42d014bae9f1e9244b86">TIMER_TICKS_PER_MICROS</a>); <span class="comment">// 16 timer ticks per microsecond</span></div><div class="line"><a name="l00112"></a><span class="lineno">  112</span>&#160;</div><div class="line"><a name="l00113"></a><span class="lineno">  113</span>&#160;    <span class="comment">// Make sure that pulse_width_ticks fits within 24 bits</span></div><div class="line"><a name="l00114"></a><span class="lineno">  114</span>&#160;    <a class="code" href="sweep__sensor_8c.html#ae3a16b16a26af9c7aea5947732882e8d">pos_counter_value</a> &amp;= 0x00FFFFFF; <span class="comment">// Clear upper 8 bits</span></div><div class="line"><a name="l00115"></a><span class="lineno">  115</span>&#160;</div><div class="line"><a name="l00116"></a><span class="lineno">  116</span>&#160;    <span class="comment">// Disable Timer 1B for configuration (clear bit 8 - TBEN)</span></div><div class="line"><a name="l00117"></a><span class="lineno">  117</span>&#160;    TIMER1_CTL_R &amp;= ~0x00000100;</div><div class="line"><a name="l00118"></a><span class="lineno">  118</span>&#160;</div><div class="line"><a name="l00119"></a><span class="lineno">  119</span>&#160;    <span class="comment">// Load the 2 high bytes into Timer B Prescale Match register</span></div><div class="line"><a name="l00120"></a><span class="lineno">  120</span>&#160;    TIMER1_TBPMR_R &amp;= 0xFFFFFF00;</div><div class="line"><a name="l00121"></a><span class="lineno">  121</span>&#160;    TIMER1_TBPMR_R |= (<a class="code" href="sweep__sensor_8c.html#ae3a16b16a26af9c7aea5947732882e8d">pos_counter_value</a> &gt;&gt; 16);</div><div class="line"><a name="l00122"></a><span class="lineno">  122</span>&#160;</div><div class="line"><a name="l00123"></a><span class="lineno">  123</span>&#160;    <span class="comment">// Load the 4 lower bytes into Timer B Match register</span></div><div class="line"><a name="l00124"></a><span class="lineno">  124</span>&#160;    TIMER1_TBMATCHR_R &amp;= 0xFFFF0000;</div><div class="line"><a name="l00125"></a><span class="lineno">  125</span>&#160;    TIMER1_TBMATCHR_R |= (<a class="code" href="sweep__sensor_8c.html#ae3a16b16a26af9c7aea5947732882e8d">pos_counter_value</a> &amp; 0xFFFF);</div><div class="line"><a name="l00126"></a><span class="lineno">  126</span>&#160;</div><div class="line"><a name="l00127"></a><span class="lineno">  127</span>&#160;    <span class="comment">// Re-enable Timer1B and resume PWM-wave generation</span></div><div class="line"><a name="l00128"></a><span class="lineno">  128</span>&#160;    TIMER1_CTL_R |= 0x100;</div><div class="line"><a name="l00129"></a><span class="lineno">  129</span>&#160;}</div><div class="line"><a name="l00130"></a><span class="lineno">  130</span>&#160;</div><div class="line"><a name="l00131"></a><span class="lineno">  131</span>&#160;<span class="comment">// -------------------------------- END HELPER FUNCTIONS -------------------------------- //</span></div><div class="line"><a name="l00132"></a><span class="lineno">  132</span>&#160;</div><div class="line"><a name="l00133"></a><span class="lineno"><a class="line" href="sweep__sensor_8h.html#aa858319b04e153550a93648468db3171">  133</a></span>&#160;<span class="keywordtype">void</span> <a class="code" href="sweep__sensor_8c.html#aa858319b04e153550a93648468db3171">sweep_init</a>()</div><div class="line"><a name="l00134"></a><span class="lineno">  134</span>&#160;{</div><div class="line"><a name="l00135"></a><span class="lineno">  135</span>&#160;    <span class="comment">/*</span></div><div class="line"><a name="l00136"></a><span class="lineno">  136</span>&#160;<span class="comment">     * Part 1:  Configure Timer 1B on pin PB5 for PWM servo control</span></div><div class="line"><a name="l00137"></a><span class="lineno">  137</span>&#160;<span class="comment">     */</span></div><div class="line"><a name="l00138"></a><span class="lineno">  138</span>&#160;    <span class="comment">// Initialize calibration values to their initial values</span></div><div class="line"><a name="l00139"></a><span class="lineno">  139</span>&#160;    <a class="code" href="sweep__sensor_8c.html#ad15c1ce3dc8d7295980df0c002469685">degrees_per_micros</a> = 0.1; <span class="comment">// Originally 0.1</span></div><div class="line"><a name="l00140"></a><span class="lineno">  140</span>&#160;    <a class="code" href="sweep__sensor_8c.html#add67b8431980e75798449c977e7178d6">micros_offset</a> = 525;        <span class="comment">// Originally 500</span></div><div class="line"><a name="l00141"></a><span class="lineno">  141</span>&#160;</div><div class="line"><a name="l00142"></a><span class="lineno">  142</span>&#160;    <span class="comment">// 1. Configure GPIO</span></div><div class="line"><a name="l00143"></a><span class="lineno">  143</span>&#160;</div><div class="line"><a name="l00144"></a><span class="lineno">  144</span>&#160;    <span class="comment">// Enable clock to GPIO port B</span></div><div class="line"><a name="l00145"></a><span class="lineno">  145</span>&#160;    SYSCTL_RCGCGPIO_R |= 0x02;</div><div class="line"><a name="l00146"></a><span class="lineno">  146</span>&#160;</div><div class="line"><a name="l00147"></a><span class="lineno">  147</span>&#160;    <span class="comment">// Set pin 5 of port B as an output</span></div><div class="line"><a name="l00148"></a><span class="lineno">  148</span>&#160;    GPIO_PORTB_DIR_R |= (0x20);</div><div class="line"><a name="l00149"></a><span class="lineno">  149</span>&#160;</div><div class="line"><a name="l00150"></a><span class="lineno">  150</span>&#160;    <span class="comment">// Enable Alt functions on PB5</span></div><div class="line"><a name="l00151"></a><span class="lineno">  151</span>&#160;    GPIO_PORTB_AFSEL_R |= 0x20;</div><div class="line"><a name="l00152"></a><span class="lineno">  152</span>&#160;</div><div class="line"><a name="l00153"></a><span class="lineno">  153</span>&#160;    <span class="comment">// Select Alt. Function #7 (T1CCP1) for PB5</span></div><div class="line"><a name="l00154"></a><span class="lineno">  154</span>&#160;    GPIO_PORTB_PCTL_R &amp;= ~0x00F00000;</div><div class="line"><a name="l00155"></a><span class="lineno">  155</span>&#160;    GPIO_PORTB_PCTL_R |= 0x700000;</div><div class="line"><a name="l00156"></a><span class="lineno">  156</span>&#160;</div><div class="line"><a name="l00157"></a><span class="lineno">  157</span>&#160;    <span class="comment">// Enable digital functionality on PB5</span></div><div class="line"><a name="l00158"></a><span class="lineno">  158</span>&#160;    GPIO_PORTB_DEN_R |= 0x20;</div><div class="line"><a name="l00159"></a><span class="lineno">  159</span>&#160;</div><div class="line"><a name="l00160"></a><span class="lineno">  160</span>&#160;    <span class="comment">// 2. Configure Timer1B</span></div><div class="line"><a name="l00161"></a><span class="lineno">  161</span>&#160;</div><div class="line"><a name="l00162"></a><span class="lineno">  162</span>&#160;    <span class="comment">// Enable &amp; provide a clock to general-purpose timer module 1 in run mode</span></div><div class="line"><a name="l00163"></a><span class="lineno">  163</span>&#160;    SYSCTL_RCGCTIMER_R |= 0x02;</div><div class="line"><a name="l00164"></a><span class="lineno">  164</span>&#160;</div><div class="line"><a name="l00165"></a><span class="lineno">  165</span>&#160;    <span class="comment">// Disable Timer 1B for configuration (clear bit 8 - TBEN)</span></div><div class="line"><a name="l00166"></a><span class="lineno">  166</span>&#160;    TIMER1_CTL_R &amp;= ~0x00000100;</div><div class="line"><a name="l00167"></a><span class="lineno">  167</span>&#160;</div><div class="line"><a name="l00168"></a><span class="lineno">  168</span>&#160;    <span class="comment">// Select 16-bit timer configuration for Timer 1B</span></div><div class="line"><a name="l00169"></a><span class="lineno">  169</span>&#160;    TIMER1_CFG_R |= 0x4;</div><div class="line"><a name="l00170"></a><span class="lineno">  170</span>&#160;</div><div class="line"><a name="l00171"></a><span class="lineno">  171</span>&#160;    <span class="comment">// Set Timer 1B to PWM mode, Edge-count mode, and Periodic Timer mode</span></div><div class="line"><a name="l00172"></a><span class="lineno">  172</span>&#160;    <span class="comment">// (TBAMS = 1, TBCMR = 0, TBMR = 0x2)</span></div><div class="line"><a name="l00173"></a><span class="lineno">  173</span>&#160;    TIMER1_TBMR_R &amp;= ~0x0000000F;</div><div class="line"><a name="l00174"></a><span class="lineno">  174</span>&#160;    TIMER1_TBMR_R |= 0xA;</div><div class="line"><a name="l00175"></a><span class="lineno">  175</span>&#160;</div><div class="line"><a name="l00176"></a><span class="lineno">  176</span>&#160;    <span class="comment">// Ensure that output state of PWM signal is not inverted</span></div><div class="line"><a name="l00177"></a><span class="lineno">  177</span>&#160;    TIMER1_CTL_R &amp;= ~0x4000;</div><div class="line"><a name="l00178"></a><span class="lineno">  178</span>&#160;</div><div class="line"><a name="l00179"></a><span class="lineno">  179</span>&#160;    <span class="comment">// The starting value to set for the timer.</span></div><div class="line"><a name="l00180"></a><span class="lineno">  180</span>&#160;    <span class="comment">//</span></div><div class="line"><a name="l00181"></a><span class="lineno">  181</span>&#160;    <span class="comment">// It is necessary to subtract 1 from PWM_PERIOD_TICKS</span></div><div class="line"><a name="l00182"></a><span class="lineno">  182</span>&#160;    <span class="comment">// because the timer count includes zero.</span></div><div class="line"><a name="l00183"></a><span class="lineno">  183</span>&#160;    <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> timer_start_val = <a class="code" href="sweep__sensor_8c.html#a5ba88e74de0c170f9f8c067ac55034e1">PWM_PERIOD_TICKS</a> - 1;</div><div class="line"><a name="l00184"></a><span class="lineno">  184</span>&#160;</div><div class="line"><a name="l00185"></a><span class="lineno">  185</span>&#160;    <span class="comment">// Clear bits 31:24 (upper 2 bytes) to ensure that the value will fit</span></div><div class="line"><a name="l00186"></a><span class="lineno">  186</span>&#160;    <span class="comment">// into the 24-bit timer (16-bit timer + 8-bit extension)</span></div><div class="line"><a name="l00187"></a><span class="lineno">  187</span>&#160;    timer_start_val &amp;= 0x00FFFFFF;</div><div class="line"><a name="l00188"></a><span class="lineno">  188</span>&#160;</div><div class="line"><a name="l00189"></a><span class="lineno">  189</span>&#160;    <span class="comment">// Set the starting count value of the timer to 319,999</span></div><div class="line"><a name="l00190"></a><span class="lineno">  190</span>&#160;    <span class="comment">// for a period of 20 milliseconds</span></div><div class="line"><a name="l00191"></a><span class="lineno">  191</span>&#160;    TIMER1_TBPR_R &amp;= 0xFFFF0000;</div><div class="line"><a name="l00192"></a><span class="lineno">  192</span>&#160;    <span class="comment">//TIMER1_TBPR_R |= (320000 &gt;&gt; 16); // Load high bytes into Timer B Prescale register</span></div><div class="line"><a name="l00193"></a><span class="lineno">  193</span>&#160;    TIMER1_TBPR_R |= (timer_start_val &gt;&gt; 16); <span class="comment">// Load high bytes into Timer B Prescale register</span></div><div class="line"><a name="l00194"></a><span class="lineno">  194</span>&#160;    TIMER1_TBILR_R &amp;= 0xFFFF0000;</div><div class="line"><a name="l00195"></a><span class="lineno">  195</span>&#160;    <span class="comment">//TIMER1_TBILR_R |= (320000 &amp; 0xFFFF); // Load low bytes into Timer B Interval Load register</span></div><div class="line"><a name="l00196"></a><span class="lineno">  196</span>&#160;    TIMER1_TBILR_R |= (timer_start_val &amp; 0xFFFF); <span class="comment">// Load low bytes into Timer B Interval Load register</span></div><div class="line"><a name="l00197"></a><span class="lineno">  197</span>&#160;</div><div class="line"><a name="l00198"></a><span class="lineno">  198</span>&#160;    <span class="comment">// The initial timer match value to set in order to generate a pulse width</span></div><div class="line"><a name="l00199"></a><span class="lineno">  199</span>&#160;    <span class="comment">// of 1.5 milliseconds (to move the servo motor to its center position)</span></div><div class="line"><a name="l00200"></a><span class="lineno">  200</span>&#160;    <a class="code" href="sweep__sensor_8c.html#ae3a16b16a26af9c7aea5947732882e8d">pos_counter_value</a> = (<a class="code" href="sweep__sensor_8c.html#a5ba88e74de0c170f9f8c067ac55034e1">PWM_PERIOD_TICKS</a> - 1)</div><div class="line"><a name="l00201"></a><span class="lineno">  201</span>&#160;            - (((90 / <a class="code" href="sweep__sensor_8c.html#ad15c1ce3dc8d7295980df0c002469685">degrees_per_micros</a>) + <a class="code" href="sweep__sensor_8c.html#add67b8431980e75798449c977e7178d6">micros_offset</a>)</div><div class="line"><a name="l00202"></a><span class="lineno">  202</span>&#160;                    * <a class="code" href="sweep__sensor_8c.html#a6579d7b211ae42d014bae9f1e9244b86">TIMER_TICKS_PER_MICROS</a>); <span class="comment">// should be 295,999</span></div><div class="line"><a name="l00203"></a><span class="lineno">  203</span>&#160;</div><div class="line"><a name="l00204"></a><span class="lineno">  204</span>&#160;    <span class="comment">// Clear bits 31:24 (upper 2 bytes) to ensure that the value will fit</span></div><div class="line"><a name="l00205"></a><span class="lineno">  205</span>&#160;    <span class="comment">// into the 24-bit timer (16-bit timer + 8-bit extension)</span></div><div class="line"><a name="l00206"></a><span class="lineno">  206</span>&#160;    <a class="code" href="sweep__sensor_8c.html#ae3a16b16a26af9c7aea5947732882e8d">pos_counter_value</a> &amp;= 0x00FFFFFF;</div><div class="line"><a name="l00207"></a><span class="lineno">  207</span>&#160;</div><div class="line"><a name="l00208"></a><span class="lineno">  208</span>&#160;    <span class="comment">// Set the timer match value to an initial value of 295,999</span></div><div class="line"><a name="l00209"></a><span class="lineno">  209</span>&#160;    <span class="comment">// to generate a pulse width of 1.5 milliseconds</span></div><div class="line"><a name="l00210"></a><span class="lineno">  210</span>&#160;    TIMER1_TBPMR_R &amp;= 0xFFFFFF00;</div><div class="line"><a name="l00211"></a><span class="lineno">  211</span>&#160;    <span class="comment">//TIMER1_TBPMR_R |= ((320000 - 24000) &gt;&gt; 16); // Load high bytes into Timer B Prescale Match register</span></div><div class="line"><a name="l00212"></a><span class="lineno">  212</span>&#160;    TIMER1_TBPMR_R |= (<a class="code" href="sweep__sensor_8c.html#ae3a16b16a26af9c7aea5947732882e8d">pos_counter_value</a> &gt;&gt; 16); <span class="comment">// Load high bytes into Timer B Prescale Match register</span></div><div class="line"><a name="l00213"></a><span class="lineno">  213</span>&#160;    TIMER1_TBMATCHR_R &amp;= 0xFFFF0000;</div><div class="line"><a name="l00214"></a><span class="lineno">  214</span>&#160;    <span class="comment">//TIMER1_TBMATCHR_R |= ((320000 - 24000) &amp; 0xFFFF); // Load low bytes into Timer B Match register</span></div><div class="line"><a name="l00215"></a><span class="lineno">  215</span>&#160;    TIMER1_TBMATCHR_R |= (<a class="code" href="sweep__sensor_8c.html#ae3a16b16a26af9c7aea5947732882e8d">pos_counter_value</a> &amp; 0xFFFF); <span class="comment">// Load low bytes into Timer B Match register</span></div><div class="line"><a name="l00216"></a><span class="lineno">  216</span>&#160;</div><div class="line"><a name="l00217"></a><span class="lineno">  217</span>&#160;    <span class="comment">// Re-enable Timer1B and begin counting</span></div><div class="line"><a name="l00218"></a><span class="lineno">  218</span>&#160;    TIMER1_CTL_R |= 0x100;</div><div class="line"><a name="l00219"></a><span class="lineno">  219</span>&#160;</div><div class="line"><a name="l00220"></a><span class="lineno">  220</span>&#160;    <span class="comment">/*</span></div><div class="line"><a name="l00221"></a><span class="lineno">  221</span>&#160;<span class="comment">     * Part 2:  Initialize IR and sonic sensors</span></div><div class="line"><a name="l00222"></a><span class="lineno">  222</span>&#160;<span class="comment">     */</span></div><div class="line"><a name="l00223"></a><span class="lineno">  223</span>&#160;    <span class="comment">// Initialize ADC for IR sensor</span></div><div class="line"><a name="l00224"></a><span class="lineno">  224</span>&#160;    <a class="code" href="ir_8c.html#a1e942fcd91f79d49e4ddb8d7e9d3ef95">adc_init</a>();</div><div class="line"><a name="l00225"></a><span class="lineno">  225</span>&#160;</div><div class="line"><a name="l00226"></a><span class="lineno">  226</span>&#160;    <span class="comment">// Initialize sonic sensor</span></div><div class="line"><a name="l00227"></a><span class="lineno">  227</span>&#160;    <a class="code" href="sonic_8c.html#a0cd05251349a248cfafffcea2499cd15">sonic_init</a>();</div><div class="line"><a name="l00228"></a><span class="lineno">  228</span>&#160;</div><div class="line"><a name="l00229"></a><span class="lineno">  229</span>&#160;    <span class="comment">// Initialize UART for use in sweep routine</span></div><div class="line"><a name="l00230"></a><span class="lineno">  230</span>&#160;    <a class="code" href="uart_8c.html#a0c0ca72359ddf28dcd15900dfba19343">uart_init</a>();</div><div class="line"><a name="l00231"></a><span class="lineno">  231</span>&#160;}</div><div class="line"><a name="l00232"></a><span class="lineno">  232</span>&#160;</div><div class="line"><a name="l00233"></a><span class="lineno"><a class="line" href="sweep__sensor_8h.html#a111f017ba6449291db5ba445d602659c">  233</a></span>&#160;<span class="keywordtype">float</span> <a class="code" href="sweep__sensor_8c.html#a111f017ba6449291db5ba445d602659c">sweep_getPos</a>()</div><div class="line"><a name="l00234"></a><span class="lineno">  234</span>&#160;{</div><div class="line"><a name="l00235"></a><span class="lineno">  235</span>&#160;    <span class="comment">// Return angular position of servo in degrees</span></div><div class="line"><a name="l00236"></a><span class="lineno">  236</span>&#160;    <span class="comment">//return ((degrees_per_micros / TIMER_TICKS_PER_MICROS) * (PWM_PERIOD_TICKS - 1) - (degrees_per_micros * (micros_offset + pos_counter_value) ));</span></div><div class="line"><a name="l00237"></a><span class="lineno">  237</span>&#160;    <span class="keywordflow">return</span> <a class="code" href="sweep__sensor_8c.html#aeed67431f921c909818ba6fa768b80bc">servoPos_deg</a>;</div><div class="line"><a name="l00238"></a><span class="lineno">  238</span>&#160;}</div><div class="line"><a name="l00239"></a><span class="lineno">  239</span>&#160;</div><div class="line"><a name="l00240"></a><span class="lineno"><a class="line" href="sweep__sensor_8h.html#a87706abc24e10327499a2612a0ae3cbc">  240</a></span>&#160;uint32_t <a class="code" href="sweep__sensor_8c.html#a87706abc24e10327499a2612a0ae3cbc">sweep_moveAbsolute</a>(<span class="keywordtype">float</span> angularPos_deg)</div><div class="line"><a name="l00241"></a><span class="lineno">  241</span>&#160;{</div><div class="line"><a name="l00242"></a><span class="lineno">  242</span>&#160;    <span class="comment">// If the specified angular position is outside the range of valid positions,</span></div><div class="line"><a name="l00243"></a><span class="lineno">  243</span>&#160;    <span class="comment">// i.e. outside of [-90,90], then set the servo to its maximum deflection in</span></div><div class="line"><a name="l00244"></a><span class="lineno">  244</span>&#160;    <span class="comment">// either the clockwise or counterclockwise direction (as determined by the</span></div><div class="line"><a name="l00245"></a><span class="lineno">  245</span>&#160;    <span class="comment">// sign of angularPos_deg)</span></div><div class="line"><a name="l00246"></a><span class="lineno">  246</span>&#160;    <span class="keywordflow">if</span> (angularPos_deg &gt; 90)</div><div class="line"><a name="l00247"></a><span class="lineno">  247</span>&#160;    {</div><div class="line"><a name="l00248"></a><span class="lineno">  248</span>&#160;        angularPos_deg = 90;    <span class="comment">// Maximum counterclockwise deflection</span></div><div class="line"><a name="l00249"></a><span class="lineno">  249</span>&#160;    }</div><div class="line"><a name="l00250"></a><span class="lineno">  250</span>&#160;    <span class="keywordflow">else</span> <span class="keywordflow">if</span> (angularPos_deg &lt; -90)</div><div class="line"><a name="l00251"></a><span class="lineno">  251</span>&#160;    {</div><div class="line"><a name="l00252"></a><span class="lineno">  252</span>&#160;        angularPos_deg = -90;   <span class="comment">// Maximum clockwise deflection</span></div><div class="line"><a name="l00253"></a><span class="lineno">  253</span>&#160;    }</div><div class="line"><a name="l00254"></a><span class="lineno">  254</span>&#160;</div><div class="line"><a name="l00255"></a><span class="lineno">  255</span>&#160;    <span class="comment">// Calculate pulse width required to move servo motor to this angle</span></div><div class="line"><a name="l00256"></a><span class="lineno">  256</span>&#160;    <span class="keywordtype">float</span> pulse_width_micros = ((angularPos_deg + 90.0) / <a class="code" href="sweep__sensor_8c.html#ad15c1ce3dc8d7295980df0c002469685">degrees_per_micros</a>)</div><div class="line"><a name="l00257"></a><span class="lineno">  257</span>&#160;            + <a class="code" href="sweep__sensor_8c.html#add67b8431980e75798449c977e7178d6">micros_offset</a>;</div><div class="line"><a name="l00258"></a><span class="lineno">  258</span>&#160;</div><div class="line"><a name="l00259"></a><span class="lineno">  259</span>&#160;    <span class="comment">// Calculate the time required for servo to move to new position in milliseconds</span></div><div class="line"><a name="l00260"></a><span class="lineno">  260</span>&#160;    uint32_t wait_time_servo = getServoWaitTime_Millis(<a class="code" href="sweep__sensor_8c.html#a111f017ba6449291db5ba445d602659c">sweep_getPos</a>(),</div><div class="line"><a name="l00261"></a><span class="lineno">  261</span>&#160;                                                       angularPos_deg);</div><div class="line"><a name="l00262"></a><span class="lineno">  262</span>&#160;</div><div class="line"><a name="l00263"></a><span class="lineno">  263</span>&#160;    <span class="comment">// Call servo_configurePWM() to move the servo to that position</span></div><div class="line"><a name="l00264"></a><span class="lineno">  264</span>&#160;    servo_configurePWM(pulse_width_micros);</div><div class="line"><a name="l00265"></a><span class="lineno">  265</span>&#160;</div><div class="line"><a name="l00266"></a><span class="lineno">  266</span>&#160;    <span class="comment">// Update current position of servo</span></div><div class="line"><a name="l00267"></a><span class="lineno">  267</span>&#160;    <a class="code" href="sweep__sensor_8c.html#aeed67431f921c909818ba6fa768b80bc">servoPos_deg</a> = angularPos_deg;</div><div class="line"><a name="l00268"></a><span class="lineno">  268</span>&#160;</div><div class="line"><a name="l00269"></a><span class="lineno">  269</span>&#160;    <span class="comment">// Return wait time for servo</span></div><div class="line"><a name="l00270"></a><span class="lineno">  270</span>&#160;    <span class="keywordflow">return</span> wait_time_servo;</div><div class="line"><a name="l00271"></a><span class="lineno">  271</span>&#160;}</div><div class="line"><a name="l00272"></a><span class="lineno">  272</span>&#160;</div><div class="line"><a name="l00273"></a><span class="lineno"><a class="line" href="sweep__sensor_8h.html#a3570da170a331a34c81a23922b3197fc">  273</a></span>&#160;uint32_t <a class="code" href="sweep__sensor_8c.html#a3570da170a331a34c81a23922b3197fc">sweep_moveRelative</a>(<span class="keywordtype">float</span> angularOffset_deg)</div><div class="line"><a name="l00274"></a><span class="lineno">  274</span>&#160;{</div><div class="line"><a name="l00275"></a><span class="lineno">  275</span>&#160;    <span class="keywordflow">return</span> <a class="code" href="sweep__sensor_8c.html#a87706abc24e10327499a2612a0ae3cbc">sweep_moveAbsolute</a>(<a class="code" href="sweep__sensor_8c.html#a111f017ba6449291db5ba445d602659c">sweep_getPos</a>() + angularOffset_deg);</div><div class="line"><a name="l00276"></a><span class="lineno">  276</span>&#160;}</div><div class="line"><a name="l00277"></a><span class="lineno">  277</span>&#160;</div><div class="line"><a name="l00278"></a><span class="lineno"><a class="line" href="sweep__sensor_8h.html#af1fcacf7ec9956ea6fb31a62f593d6e7">  278</a></span>&#160;int32_t <a class="code" href="sweep__sensor_8c.html#af1fcacf7ec9956ea6fb31a62f593d6e7">sweep_readIRSensor</a>()</div><div class="line"><a name="l00279"></a><span class="lineno">  279</span>&#160;{</div><div class="line"><a name="l00280"></a><span class="lineno">  280</span>&#160;    <span class="keywordflow">return</span> <a class="code" href="ir_8c.html#a7e70a945ffc15434f5310c8684643eb3">getADCReading</a>();</div><div class="line"><a name="l00281"></a><span class="lineno">  281</span>&#160;}</div><div class="line"><a name="l00282"></a><span class="lineno">  282</span>&#160;</div><div class="line"><a name="l00283"></a><span class="lineno"><a class="line" href="sweep__sensor_8h.html#a059b6d41eb8934ac26e0928818843c6e">  283</a></span>&#160;int32_t <a class="code" href="sweep__sensor_8c.html#a059b6d41eb8934ac26e0928818843c6e">sweep_readSonicSensor</a>()</div><div class="line"><a name="l00284"></a><span class="lineno">  284</span>&#160;{</div><div class="line"><a name="l00285"></a><span class="lineno">  285</span>&#160;    <span class="keywordflow">return</span> <a class="code" href="sonic_8c.html#adbe32feee06ccd7a0a9c14709b9a1ce4">get_sonic_reading</a>();</div><div class="line"><a name="l00286"></a><span class="lineno">  286</span>&#160;}</div><div class="line"><a name="l00287"></a><span class="lineno">  287</span>&#160;</div><div class="line"><a name="l00288"></a><span class="lineno"><a class="line" href="sweep__sensor_8h.html#ad299d740e7020063a809deb1e7401d92">  288</a></span>&#160;<span class="keywordtype">void</span> <a class="code" href="sweep__sensor_8c.html#ad299d740e7020063a809deb1e7401d92">sweep_doSweep</a>(<span class="keywordtype">float</span> startAngle_deg, <span class="keywordtype">float</span> endAngle_deg,</div><div class="line"><a name="l00289"></a><span class="lineno">  289</span>&#160;                   <span class="keywordtype">float</span> sweepIncrement_deg, uint32_t incDelay_ms) <span class="comment">//TODO fix this routine</span></div><div class="line"><a name="l00290"></a><span class="lineno">  290</span>&#160;{</div><div class="line"><a name="l00291"></a><span class="lineno">  291</span>&#160;    <span class="comment">// If the given sweep increment is zero, return immediately.</span></div><div class="line"><a name="l00292"></a><span class="lineno">  292</span>&#160;    <span class="keywordflow">if</span> (!sweepIncrement_deg)</div><div class="line"><a name="l00293"></a><span class="lineno">  293</span>&#160;        <span class="keywordflow">return</span>;</div><div class="line"><a name="l00294"></a><span class="lineno">  294</span>&#160;</div><div class="line"><a name="l00295"></a><span class="lineno">  295</span>&#160;    <span class="comment">// If the specified starting angular position is outside of the valid range [-90,90],  overwrite it with</span></div><div class="line"><a name="l00296"></a><span class="lineno">  296</span>&#160;    <span class="comment">// the closest valid angular position.</span></div><div class="line"><a name="l00297"></a><span class="lineno">  297</span>&#160;    <span class="keywordflow">if</span> (startAngle_deg &gt; 90)</div><div class="line"><a name="l00298"></a><span class="lineno">  298</span>&#160;    {</div><div class="line"><a name="l00299"></a><span class="lineno">  299</span>&#160;        startAngle_deg = 90;</div><div class="line"><a name="l00300"></a><span class="lineno">  300</span>&#160;    }</div><div class="line"><a name="l00301"></a><span class="lineno">  301</span>&#160;    <span class="keywordflow">else</span> <span class="keywordflow">if</span> (startAngle_deg &lt; -90)</div><div class="line"><a name="l00302"></a><span class="lineno">  302</span>&#160;    {</div><div class="line"><a name="l00303"></a><span class="lineno">  303</span>&#160;        startAngle_deg = -90;</div><div class="line"><a name="l00304"></a><span class="lineno">  304</span>&#160;    }</div><div class="line"><a name="l00305"></a><span class="lineno">  305</span>&#160;</div><div class="line"><a name="l00306"></a><span class="lineno">  306</span>&#160;    <span class="comment">// If the specified ending angular position is outside of the valid range [-90,90],  overwrite it with</span></div><div class="line"><a name="l00307"></a><span class="lineno">  307</span>&#160;    <span class="comment">// the closest valid angular position.</span></div><div class="line"><a name="l00308"></a><span class="lineno">  308</span>&#160;    <span class="keywordflow">if</span> (endAngle_deg &gt; 90)</div><div class="line"><a name="l00309"></a><span class="lineno">  309</span>&#160;    {</div><div class="line"><a name="l00310"></a><span class="lineno">  310</span>&#160;        endAngle_deg = 90;</div><div class="line"><a name="l00311"></a><span class="lineno">  311</span>&#160;    }</div><div class="line"><a name="l00312"></a><span class="lineno">  312</span>&#160;    <span class="keywordflow">else</span> <span class="keywordflow">if</span> (endAngle_deg &lt; -90)</div><div class="line"><a name="l00313"></a><span class="lineno">  313</span>&#160;    {</div><div class="line"><a name="l00314"></a><span class="lineno">  314</span>&#160;        endAngle_deg = -90;</div><div class="line"><a name="l00315"></a><span class="lineno">  315</span>&#160;    }</div><div class="line"><a name="l00316"></a><span class="lineno">  316</span>&#160;</div><div class="line"><a name="l00317"></a><span class="lineno">  317</span>&#160;    <span class="comment">// If the given start and end angles are equal, return immediately.</span></div><div class="line"><a name="l00318"></a><span class="lineno">  318</span>&#160;    <span class="keywordflow">if</span> (startAngle_deg == endAngle_deg)</div><div class="line"><a name="l00319"></a><span class="lineno">  319</span>&#160;        <span class="keywordflow">return</span>;</div><div class="line"><a name="l00320"></a><span class="lineno">  320</span>&#160;</div><div class="line"><a name="l00321"></a><span class="lineno">  321</span>&#160;    <span class="comment">// Ensure that the given angle increment is positive</span></div><div class="line"><a name="l00322"></a><span class="lineno">  322</span>&#160;    sweepIncrement_deg = fabs(sweepIncrement_deg);</div><div class="line"><a name="l00323"></a><span class="lineno">  323</span>&#160;    <span class="comment">// The direction of the sweep, represented as either 1 (for a CCW sweep)</span></div><div class="line"><a name="l00324"></a><span class="lineno">  324</span>&#160;    <span class="comment">// or -1 (for a CW sweep).</span></div><div class="line"><a name="l00325"></a><span class="lineno">  325</span>&#160;    int8_t sweepDir = (endAngle_deg &gt; startAngle_deg ? 1 : -1);</div><div class="line"><a name="l00326"></a><span class="lineno">  326</span>&#160;</div><div class="line"><a name="l00327"></a><span class="lineno">  327</span>&#160;    <span class="comment">// The current distance reported by the IR sensor, in cm</span></div><div class="line"><a name="l00328"></a><span class="lineno">  328</span>&#160;    <span class="keywordtype">float</span> current_IR_dist_cm = 0;</div><div class="line"><a name="l00329"></a><span class="lineno">  329</span>&#160;    <span class="comment">// The current distance reported by the sonic sensor, in cm</span></div><div class="line"><a name="l00330"></a><span class="lineno">  330</span>&#160;    <span class="keywordtype">float</span> current_sonic_dist_cm = 0;</div><div class="line"><a name="l00331"></a><span class="lineno">  331</span>&#160;    <span class="comment">// A 128-bit buffer for character data to be sent over UART</span></div><div class="line"><a name="l00332"></a><span class="lineno">  332</span>&#160;    <span class="keywordtype">char</span> text_buffer[128] = { 0 };  <span class="comment">// All values initially set to zero</span></div><div class="line"><a name="l00333"></a><span class="lineno">  333</span>&#160;</div><div class="line"><a name="l00334"></a><span class="lineno">  334</span>&#160;    <span class="comment">// The amount of time to wait before getting the next sensor readings</span></div><div class="line"><a name="l00335"></a><span class="lineno">  335</span>&#160;    uint32_t servoWaitTime_millis = 0;</div><div class="line"><a name="l00336"></a><span class="lineno">  336</span>&#160;</div><div class="line"><a name="l00337"></a><span class="lineno">  337</span>&#160;    <span class="comment">// Ensure that the servo is at the correct starting position before performing the sweep</span></div><div class="line"><a name="l00338"></a><span class="lineno">  338</span>&#160;    <span class="keywordflow">if</span> (<a class="code" href="sweep__sensor_8c.html#a111f017ba6449291db5ba445d602659c">sweep_getPos</a>() != startAngle_deg)</div><div class="line"><a name="l00339"></a><span class="lineno">  339</span>&#160;    {</div><div class="line"><a name="l00340"></a><span class="lineno">  340</span>&#160;        <span class="comment">// Move servo to correct position</span></div><div class="line"><a name="l00341"></a><span class="lineno">  341</span>&#160;        servoWaitTime_millis = <a class="code" href="sweep__sensor_8c.html#a87706abc24e10327499a2612a0ae3cbc">sweep_moveAbsolute</a>(startAngle_deg);</div><div class="line"><a name="l00342"></a><span class="lineno">  342</span>&#160;        <span class="comment">// Wait to ensure that the servo has reached the correct position</span></div><div class="line"><a name="l00343"></a><span class="lineno">  343</span>&#160;        <a class="code" href="timer_8c.html#a7e2a3b4520e885e5e7d40fa87e242a75">timer_waitMillis</a>(servoWaitTime_millis);</div><div class="line"><a name="l00344"></a><span class="lineno">  344</span>&#160;    }</div><div class="line"><a name="l00345"></a><span class="lineno">  345</span>&#160;</div><div class="line"><a name="l00346"></a><span class="lineno">  346</span>&#160;    <span class="comment">// The angular position of the robot on the previous loop iteration</span></div><div class="line"><a name="l00347"></a><span class="lineno">  347</span>&#160;    <span class="keywordtype">float</span> prevPos_deg = startAngle_deg - (sweepDir * sweepIncrement_deg);</div><div class="line"><a name="l00348"></a><span class="lineno">  348</span>&#160;</div><div class="line"><a name="l00349"></a><span class="lineno">  349</span>&#160;    <span class="comment">// Perform the sweep in the proper direction using the given increment</span></div><div class="line"><a name="l00350"></a><span class="lineno">  350</span>&#160;    <span class="keywordflow">while</span> (((sweepDir &gt;= 0)</div><div class="line"><a name="l00351"></a><span class="lineno">  351</span>&#160;            &amp;&amp; ((prevPos_deg + sweepIncrement_deg) &lt;= endAngle_deg))</div><div class="line"><a name="l00352"></a><span class="lineno">  352</span>&#160;            || ((sweepDir &lt; 0)</div><div class="line"><a name="l00353"></a><span class="lineno">  353</span>&#160;                    &amp;&amp; ((prevPos_deg - sweepIncrement_deg) &gt;= endAngle_deg)))</div><div class="line"><a name="l00354"></a><span class="lineno">  354</span>&#160;    {</div><div class="line"><a name="l00355"></a><span class="lineno">  355</span>&#160;        <span class="comment">// Wait to ensure that the servo has reached the correct position</span></div><div class="line"><a name="l00356"></a><span class="lineno">  356</span>&#160;        <span class="keywordflow">if</span> (servoWaitTime_millis &gt; 0)</div><div class="line"><a name="l00357"></a><span class="lineno">  357</span>&#160;            <a class="code" href="timer_8c.html#a7e2a3b4520e885e5e7d40fa87e242a75">timer_waitMillis</a>(servoWaitTime_millis);</div><div class="line"><a name="l00358"></a><span class="lineno">  358</span>&#160;        <span class="comment">// Delay the specified amount of time between increments</span></div><div class="line"><a name="l00359"></a><span class="lineno">  359</span>&#160;        <span class="keywordflow">if</span> (incDelay_ms &gt; 0)</div><div class="line"><a name="l00360"></a><span class="lineno">  360</span>&#160;            <a class="code" href="timer_8c.html#a7e2a3b4520e885e5e7d40fa87e242a75">timer_waitMillis</a>(incDelay_ms);</div><div class="line"><a name="l00361"></a><span class="lineno">  361</span>&#160;</div><div class="line"><a name="l00362"></a><span class="lineno">  362</span>&#160;        <span class="comment">// Start sonic measurement</span></div><div class="line"><a name="l00363"></a><span class="lineno">  363</span>&#160;        <a class="code" href="sonic_8c.html#a588b501da316bcf0dec4756000d5ebce">sonic_chirp</a>();</div><div class="line"><a name="l00364"></a><span class="lineno">  364</span>&#160;</div><div class="line"><a name="l00365"></a><span class="lineno">  365</span>&#160;        <span class="comment">// Read current value of sonic sensor and convert to distance in cm</span></div><div class="line"><a name="l00366"></a><span class="lineno">  366</span>&#160;        current_sonic_dist_cm = <a class="code" href="sonic_8c.html#ab57b797a1fd5d1fbfcdbc150282bff91">sonic_convertToDist</a>(<a class="code" href="sweep__sensor_8c.html#a059b6d41eb8934ac26e0928818843c6e">sweep_readSonicSensor</a>());</div><div class="line"><a name="l00367"></a><span class="lineno">  367</span>&#160;        <span class="comment">// Read current value of IR sensor and convert to distance in cm</span></div><div class="line"><a name="l00368"></a><span class="lineno">  368</span>&#160;        current_IR_dist_cm = <a class="code" href="ir_8c.html#a9350c2275f27f9622b8253d3f2126cb3">ir_convertToDist</a>(<a class="code" href="sweep__sensor_8c.html#af1fcacf7ec9956ea6fb31a62f593d6e7">sweep_readIRSensor</a>());</div><div class="line"><a name="l00369"></a><span class="lineno">  369</span>&#160;</div><div class="line"><a name="l00370"></a><span class="lineno">  370</span>&#160;        <span class="keywordtype">float</span> sweep_offset_deg = 8.0;</div><div class="line"><a name="l00371"></a><span class="lineno">  371</span>&#160;</div><div class="line"><a name="l00372"></a><span class="lineno">  372</span>&#160;        <span class="comment">// Format data into a string and send it over UART.</span></div><div class="line"><a name="l00373"></a><span class="lineno">  373</span>&#160;        <span class="comment">// Note: Only send an IR sensor reading if the measured distance is less than or equal to 60 cm.</span></div><div class="line"><a name="l00374"></a><span class="lineno">  374</span>&#160;        snprintf(text_buffer, 128, <span class="stringliteral">&quot;s %.2f %.2f %.2f\r\n&quot;</span>,</div><div class="line"><a name="l00375"></a><span class="lineno">  375</span>&#160;                 <a class="code" href="sweep__sensor_8c.html#a111f017ba6449291db5ba445d602659c">sweep_getPos</a>() - (sweepDir * sweep_offset_deg),</div><div class="line"><a name="l00376"></a><span class="lineno">  376</span>&#160;                 current_sonic_dist_cm,</div><div class="line"><a name="l00377"></a><span class="lineno">  377</span>&#160;                 (current_IR_dist_cm &gt; 60 ? 0.0 : current_IR_dist_cm));</div><div class="line"><a name="l00378"></a><span class="lineno">  378</span>&#160;        <a class="code" href="uart_8c.html#af96d1ce52b8a52eabc606489d31351e9">uart_sendStr</a>(text_buffer);</div><div class="line"><a name="l00379"></a><span class="lineno">  379</span>&#160;</div><div class="line"><a name="l00380"></a><span class="lineno">  380</span>&#160;        <span class="comment">// Update previous position variable</span></div><div class="line"><a name="l00381"></a><span class="lineno">  381</span>&#160;        prevPos_deg = <a class="code" href="sweep__sensor_8c.html#a111f017ba6449291db5ba445d602659c">sweep_getPos</a>();</div><div class="line"><a name="l00382"></a><span class="lineno">  382</span>&#160;</div><div class="line"><a name="l00383"></a><span class="lineno">  383</span>&#160;        <span class="comment">// Move the sensor assembly by the specified increment in the</span></div><div class="line"><a name="l00384"></a><span class="lineno">  384</span>&#160;        <span class="comment">// correct direction and get the new wait time</span></div><div class="line"><a name="l00385"></a><span class="lineno">  385</span>&#160;        servoWaitTime_millis = <a class="code" href="sweep__sensor_8c.html#a3570da170a331a34c81a23922b3197fc">sweep_moveRelative</a>(</div><div class="line"><a name="l00386"></a><span class="lineno">  386</span>&#160;                sweepDir * sweepIncrement_deg);</div><div class="line"><a name="l00387"></a><span class="lineno">  387</span>&#160;    }</div><div class="line"><a name="l00388"></a><span class="lineno">  388</span>&#160;</div><div class="line"><a name="l00389"></a><span class="lineno">  389</span>&#160;    <span class="comment">// Wait to ensure that the servo has reached the correct position</span></div><div class="line"><a name="l00390"></a><span class="lineno">  390</span>&#160;    <span class="keywordflow">if</span> (servoWaitTime_millis &gt; 0)</div><div class="line"><a name="l00391"></a><span class="lineno">  391</span>&#160;    {</div><div class="line"><a name="l00392"></a><span class="lineno">  392</span>&#160;        <a class="code" href="timer_8c.html#a7e2a3b4520e885e5e7d40fa87e242a75">timer_waitMillis</a>(servoWaitTime_millis);</div><div class="line"><a name="l00393"></a><span class="lineno">  393</span>&#160;    }</div><div class="line"><a name="l00394"></a><span class="lineno">  394</span>&#160;</div><div class="line"><a name="l00395"></a><span class="lineno">  395</span>&#160;}</div><div class="line"><a name="l00396"></a><span class="lineno">  396</span>&#160;</div><div class="line"><a name="l00397"></a><span class="lineno"><a class="line" href="sweep__sensor_8h.html#a967045ec4778e4ef6fc5b6d9aba3a80d">  397</a></span>&#160;<span class="keywordtype">void</span> <a class="code" href="sweep__sensor_8c.html#a967045ec4778e4ef6fc5b6d9aba3a80d">sweep_doFullSweep</a>(<span class="keywordtype">float</span> sweepIncrement_deg, uint32_t incDelay_ms)</div><div class="line"><a name="l00398"></a><span class="lineno">  398</span>&#160;{</div><div class="line"><a name="l00399"></a><span class="lineno">  399</span>&#160;    <span class="comment">// If the given sweep increment is zero, return immediately.</span></div><div class="line"><a name="l00400"></a><span class="lineno">  400</span>&#160;    <span class="keywordflow">if</span> (!sweepIncrement_deg)</div><div class="line"><a name="l00401"></a><span class="lineno">  401</span>&#160;        <span class="keywordflow">return</span>;</div><div class="line"><a name="l00402"></a><span class="lineno">  402</span>&#160;</div><div class="line"><a name="l00403"></a><span class="lineno">  403</span>&#160;    <span class="comment">// The direction of the sweep, represented as either 1 (for a CCW sweep)</span></div><div class="line"><a name="l00404"></a><span class="lineno">  404</span>&#160;    <span class="comment">// or -1 (for a CW sweep).</span></div><div class="line"><a name="l00405"></a><span class="lineno">  405</span>&#160;    int8_t sweepDir = 1;</div><div class="line"><a name="l00406"></a><span class="lineno">  406</span>&#160;    <span class="comment">// The amount of time to wait before getting the next sensor readings</span></div><div class="line"><a name="l00407"></a><span class="lineno">  407</span>&#160;    uint32_t servoWaitTime_millis = 0;</div><div class="line"><a name="l00408"></a><span class="lineno">  408</span>&#160;</div><div class="line"><a name="l00409"></a><span class="lineno">  409</span>&#160;    <span class="comment">// Determine whether the sensor&#39;s greatest clockwise or counterclockwise deflection</span></div><div class="line"><a name="l00410"></a><span class="lineno">  410</span>&#160;    <span class="comment">// whichever is closest to its current position, then perform a sweep from that</span></div><div class="line"><a name="l00411"></a><span class="lineno">  411</span>&#160;    <span class="comment">// deflection to the other maximum deflection.</span></div><div class="line"><a name="l00412"></a><span class="lineno">  412</span>&#160;    <span class="keywordflow">if</span> (<a class="code" href="sweep__sensor_8c.html#a111f017ba6449291db5ba445d602659c">sweep_getPos</a>() &lt; 0)</div><div class="line"><a name="l00413"></a><span class="lineno">  413</span>&#160;    {</div><div class="line"><a name="l00414"></a><span class="lineno">  414</span>&#160;        <span class="comment">// Move sensor to maximum clockwise deflection</span></div><div class="line"><a name="l00415"></a><span class="lineno">  415</span>&#160;        servoWaitTime_millis = <a class="code" href="sweep__sensor_8c.html#a87706abc24e10327499a2612a0ae3cbc">sweep_moveAbsolute</a>(-90.0);</div><div class="line"><a name="l00416"></a><span class="lineno">  416</span>&#160;        <span class="comment">// Sweep from &quot;negative&quot; side to &quot;positive&quot; side (Counterclockwise)</span></div><div class="line"><a name="l00417"></a><span class="lineno">  417</span>&#160;        sweepDir = 1;</div><div class="line"><a name="l00418"></a><span class="lineno">  418</span>&#160;    }</div><div class="line"><a name="l00419"></a><span class="lineno">  419</span>&#160;    <span class="keywordflow">else</span></div><div class="line"><a name="l00420"></a><span class="lineno">  420</span>&#160;    {</div><div class="line"><a name="l00421"></a><span class="lineno">  421</span>&#160;        <span class="comment">// Move sensor to maximum counterclockwise deflection</span></div><div class="line"><a name="l00422"></a><span class="lineno">  422</span>&#160;        servoWaitTime_millis = <a class="code" href="sweep__sensor_8c.html#a87706abc24e10327499a2612a0ae3cbc">sweep_moveAbsolute</a>(90);</div><div class="line"><a name="l00423"></a><span class="lineno">  423</span>&#160;        <span class="comment">// Sweep from &quot;positive&quot; side to &quot;negative&quot; side (Clockwise)</span></div><div class="line"><a name="l00424"></a><span class="lineno">  424</span>&#160;        sweepDir = -1;</div><div class="line"><a name="l00425"></a><span class="lineno">  425</span>&#160;    }</div><div class="line"><a name="l00426"></a><span class="lineno">  426</span>&#160;</div><div class="line"><a name="l00427"></a><span class="lineno">  427</span>&#160;    <span class="comment">// Wait to ensure that the servo has reached the correct position</span></div><div class="line"><a name="l00428"></a><span class="lineno">  428</span>&#160;    <span class="keywordflow">if</span> (servoWaitTime_millis &gt; 0)</div><div class="line"><a name="l00429"></a><span class="lineno">  429</span>&#160;    {</div><div class="line"><a name="l00430"></a><span class="lineno">  430</span>&#160;        <a class="code" href="timer_8c.html#a7e2a3b4520e885e5e7d40fa87e242a75">timer_waitMillis</a>(servoWaitTime_millis);</div><div class="line"><a name="l00431"></a><span class="lineno">  431</span>&#160;    }</div><div class="line"><a name="l00432"></a><span class="lineno">  432</span>&#160;</div><div class="line"><a name="l00433"></a><span class="lineno">  433</span>&#160;    <span class="comment">// Perform the sweep routine between the maximum clockwise and counterclockwise</span></div><div class="line"><a name="l00434"></a><span class="lineno">  434</span>&#160;    <span class="comment">// deflections of the sensor assembly in the proper direction</span></div><div class="line"><a name="l00435"></a><span class="lineno">  435</span>&#160;    <a class="code" href="sweep__sensor_8c.html#ad299d740e7020063a809deb1e7401d92">sweep_doSweep</a>(-90.0 * sweepDir, 90.0 * sweepDir, sweepIncrement_deg,</div><div class="line"><a name="l00436"></a><span class="lineno">  436</span>&#160;                  incDelay_ms);</div><div class="line"><a name="l00437"></a><span class="lineno">  437</span>&#160;</div><div class="line"><a name="l00438"></a><span class="lineno">  438</span>&#160;}</div><div class="line"><a name="l00439"></a><span class="lineno">  439</span>&#160;</div><div class="ttc" id="sonic_8c_html_adbe32feee06ccd7a0a9c14709b9a1ce4"><div class="ttname"><a href="sonic_8c.html#adbe32feee06ccd7a0a9c14709b9a1ce4">get_sonic_reading</a></div><div class="ttdeci">int get_sonic_reading()</div><div class="ttdef"><b>Definition:</b> <a href="sonic_8c_source.html#l00137">sonic.c:137</a></div></div>
 <div class="ttc" id="sweep__sensor_8c_html_a87706abc24e10327499a2612a0ae3cbc"><div class="ttname"><a href="sweep__sensor_8c.html#a87706abc24e10327499a2612a0ae3cbc">sweep_moveAbsolute</a></div><div class="ttdeci">uint32_t sweep_moveAbsolute(float angularPos_deg)</div><div class="ttdef"><b>Definition:</b> <a href="sweep__sensor_8c_source.html#l00240">sweep_sensor.c:240</a></div></div>
 <div class="ttc" id="ir_8c_html_a9350c2275f27f9622b8253d3f2126cb3"><div class="ttname"><a href="ir_8c.html#a9350c2275f27f9622b8253d3f2126cb3">ir_convertToDist</a></div><div class="ttdeci">float ir_convertToDist(int rawIRValue)</div><div class="ttdef"><b>Definition:</b> <a href="ir_8c_source.html#l00087">ir.c:87</a></div></div>
 <div class="ttc" id="sweep__sensor_8c_html_a5ba88e74de0c170f9f8c067ac55034e1"><div class="ttname"><a href="sweep__sensor_8c.html#a5ba88e74de0c170f9f8c067ac55034e1">PWM_PERIOD_TICKS</a></div><div class="ttdeci">#define PWM_PERIOD_TICKS</div><div class="ttdef"><b>Definition:</b> <a href="sweep__sensor_8c_source.html#l00038">sweep_sensor.c:38</a></div></div>
@@ -108,6 +108,7 @@ $(document).ready(function(){initNavTree('sweep__sensor_8c_source.html','');});
 <div class="ttc" id="sweep__sensor_8c_html_add67b8431980e75798449c977e7178d6"><div class="ttname"><a href="sweep__sensor_8c.html#add67b8431980e75798449c977e7178d6">micros_offset</a></div><div class="ttdeci">signed int micros_offset</div><div class="ttdef"><b>Definition:</b> <a href="sweep__sensor_8c_source.html#l00068">sweep_sensor.c:68</a></div></div>
 <div class="ttc" id="sweep__sensor_8c_html_af1fcacf7ec9956ea6fb31a62f593d6e7"><div class="ttname"><a href="sweep__sensor_8c.html#af1fcacf7ec9956ea6fb31a62f593d6e7">sweep_readIRSensor</a></div><div class="ttdeci">int32_t sweep_readIRSensor()</div><div class="ttdef"><b>Definition:</b> <a href="sweep__sensor_8c_source.html#l00278">sweep_sensor.c:278</a></div></div>
 <div class="ttc" id="sweep__sensor_8c_html_aeed67431f921c909818ba6fa768b80bc"><div class="ttname"><a href="sweep__sensor_8c.html#aeed67431f921c909818ba6fa768b80bc">servoPos_deg</a></div><div class="ttdeci">volatile float servoPos_deg</div><div class="ttdef"><b>Definition:</b> <a href="sweep__sensor_8c_source.html#l00076">sweep_sensor.c:76</a></div></div>
+<div class="ttc" id="timer_8c_html_a7e2a3b4520e885e5e7d40fa87e242a75"><div class="ttname"><a href="timer_8c.html#a7e2a3b4520e885e5e7d40fa87e242a75">timer_waitMillis</a></div><div class="ttdeci">void timer_waitMillis(uint32_t millis)</div><div class="ttdef"><b>Definition:</b> <a href="timer_8c_source.html#l00015">timer.c:15</a></div></div>
 <div class="ttc" id="sonic_8c_html_ab57b797a1fd5d1fbfcdbc150282bff91"><div class="ttname"><a href="sonic_8c.html#ab57b797a1fd5d1fbfcdbc150282bff91">sonic_convertToDist</a></div><div class="ttdeci">float sonic_convertToDist(int rawSonicValue)</div><div class="ttdef"><b>Definition:</b> <a href="sonic_8c_source.html#l00142">sonic.c:142</a></div></div>
 <div class="ttc" id="sweep__sensor_8c_html_ad299d740e7020063a809deb1e7401d92"><div class="ttname"><a href="sweep__sensor_8c.html#ad299d740e7020063a809deb1e7401d92">sweep_doSweep</a></div><div class="ttdeci">void sweep_doSweep(float startAngle_deg, float endAngle_deg, float sweepIncrement_deg, uint32_t incDelay_ms)</div><div class="ttdef"><b>Definition:</b> <a href="sweep__sensor_8c_source.html#l00288">sweep_sensor.c:288</a></div></div>
 <div class="ttc" id="sweep__sensor_8h_html"><div class="ttname"><a href="sweep__sensor_8h.html">sweep_sensor.h</a></div><div class="ttdoc">Header file for sweep_sensor.c. </div></div>
diff --git a/Doxygen/html/tcp_8cpp_source.html b/Doxygen/html/tcp_8cpp_source.html
index 26a19fb600c885b69464f065a09d84cd4bd2c89a..ce3e1b3b2e8a4919d14368858d027f0e28d5dd8e 100644
--- a/Doxygen/html/tcp_8cpp_source.html
+++ b/Doxygen/html/tcp_8cpp_source.html
@@ -103,7 +103,7 @@ $(document).ready(function(){initNavTree('tcp_8cpp_source.html','');});
 <div class="ttc" id="class_t_c_p_client_html_ad00d93c6d424d2a9793d5e605f1381f9"><div class="ttname"><a href="class_t_c_p_client.html#ad00d93c6d424d2a9793d5e605f1381f9">TCPClient::recieve</a></div><div class="ttdeci">void recieve()</div><div class="ttdef"><b>Definition:</b> <a href="tcp_8cpp_source.html#l00263">tcp.cpp:263</a></div></div>
 <div class="ttc" id="class_t_c_p_client_html_acc9b868574c5cf4325f931c2a3ec9249"><div class="ttname"><a href="class_t_c_p_client.html#acc9b868574c5cf4325f931c2a3ec9249">TCPClient::TCPClient</a></div><div class="ttdeci">TCPClient(boost::asio::io_context &amp;c, const std::string &amp;host, const std::string &amp;port, Render *_render)</div><div class="ttdef"><b>Definition:</b> <a href="tcp_8cpp_source.html#l00023">tcp.cpp:23</a></div></div>
 <div class="ttc" id="class_render_html_a6505f30cb1ff7180fbaac9354ab126b0"><div class="ttname"><a href="class_render.html#a6505f30cb1ff7180fbaac9354ab126b0">Render::getRobotPosition</a></div><div class="ttdeci">glm::vec3 getRobotPosition()</div><div class="ttdef"><b>Definition:</b> <a href="render_8cpp_source.html#l00275">render.cpp:275</a></div></div>
-<div class="ttc" id="uart_8h_html_aff2566f4c366b48d73479bef43ee4d2e"><div class="ttname"><a href="uart_8h.html#aff2566f4c366b48d73479bef43ee4d2e">buffer</a></div><div class="ttdeci">char * buffer</div><div class="ttdef"><b>Definition:</b> <a href="uart_8h_source.html#l00029">uart.h:29</a></div></div>
+<div class="ttc" id="uart_8h_html_aff2566f4c366b48d73479bef43ee4d2e"><div class="ttname"><a href="uart_8h.html#aff2566f4c366b48d73479bef43ee4d2e">buffer</a></div><div class="ttdeci">char * buffer</div><div class="ttdef"><b>Definition:</b> <a href="uart_8h_source.html#l00028">uart.h:28</a></div></div>
 <div class="ttc" id="class_render_html_a7ca7709673e2a045a5d081b70eff0c24"><div class="ttname"><a href="class_render.html#a7ca7709673e2a045a5d081b70eff0c24">Render::addObstacles</a></div><div class="ttdeci">void addObstacles(float x, float y, float type)</div><div class="ttdef"><b>Definition:</b> <a href="render_8cpp_source.html#l00345">render.cpp:345</a></div></div>
 <div class="ttc" id="movementcommands_8c_html_ac5682e48513a771560df50e3b213e61a"><div class="ttname"><a href="movementcommands_8c.html#ac5682e48513a771560df50e3b213e61a">heading</a></div><div class="ttdeci">float heading</div><div class="ttdef"><b>Definition:</b> <a href="movementcommands_8c_source.html#l00025">movementcommands.c:25</a></div></div>
 <div class="ttc" id="class_t_c_p_client_html_af83a77ee901507599e03e55976a99b7d"><div class="ttname"><a href="class_t_c_p_client.html#af83a77ee901507599e03e55976a99b7d">TCPClient::send</a></div><div class="ttdeci">void send(std::string &amp;str)</div><div class="ttdef"><b>Definition:</b> <a href="tcp_8cpp_source.html#l00059">tcp.cpp:59</a></div></div>
diff --git a/Doxygen/html/timer4_8c_source.html b/Doxygen/html/timer4_8c_source.html
index e0aecb72cfd22f180813c70594e8487d2c5b2932..c755a2758c9df99e2a92d6276c8e2acd88be6a68 100644
--- a/Doxygen/html/timer4_8c_source.html
+++ b/Doxygen/html/timer4_8c_source.html
@@ -92,12 +92,14 @@ $(document).ready(function(){initNavTree('timer4_8c_source.html','');});
 <div class="title">timer4.c</div>  </div>
 </div><!--header-->
 <div class="contents">
-<div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno">    1</span>&#160;<span class="comment">/*</span></div><div class="line"><a name="l00002"></a><span class="lineno">    2</span>&#160;<span class="comment"> * timer4.cpp</span></div><div class="line"><a name="l00003"></a><span class="lineno">    3</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00004"></a><span class="lineno">    4</span>&#160;<span class="comment"> *  Created on: Oct 31, 2018</span></div><div class="line"><a name="l00005"></a><span class="lineno">    5</span>&#160;<span class="comment"> *      Author: donster</span></div><div class="line"><a name="l00006"></a><span class="lineno">    6</span>&#160;<span class="comment"> */</span></div><div class="line"><a name="l00007"></a><span class="lineno">    7</span>&#160;</div><div class="line"><a name="l00008"></a><span class="lineno">    8</span>&#160;<span class="preprocessor">#include &quot;timer4.h&quot;</span></div><div class="line"><a name="l00009"></a><span class="lineno">    9</span>&#160;</div><div class="line"><a name="l00010"></a><span class="lineno">   10</span>&#160;<span class="preprocessor">#define TIMER4_PRESCALER 250</span></div><div class="line"><a name="l00011"></a><span class="lineno">   11</span>&#160;</div><div class="line"><a name="l00012"></a><span class="lineno">   12</span>&#160;<span class="comment">// This is the interval for incrementing the clock</span></div><div class="line"><a name="l00013"></a><span class="lineno">   13</span>&#160;<span class="preprocessor">#define TIMER4A_COUNTS 9600 // Starting value of Timer to countdown to zero in 75 millisecond</span></div><div class="line"><a name="l00014"></a><span class="lineno">   14</span>&#160;</div><div class="line"><a name="l00015"></a><span class="lineno">   15</span>&#160;<span class="comment">// This is the interval for checking the buttons</span></div><div class="line"><a name="l00016"></a><span class="lineno">   16</span>&#160;<span class="preprocessor">#define TIMER4B_COUNTS 19200 // Starting value of Timer to countdown to zero in 150 milliseconds</span></div><div class="line"><a name="l00017"></a><span class="lineno">   17</span>&#160;</div><div class="line"><a name="l00018"></a><span class="lineno">   18</span>&#160;<span class="keywordtype">void</span> clock_timer_init(<span class="keywordtype">void</span>)</div><div class="line"><a name="l00019"></a><span class="lineno">   19</span>&#160;{</div><div class="line"><a name="l00020"></a><span class="lineno">   20</span>&#160;    SYSCTL_RCGCTIMER_R |= SYSCTL_RCGCTIMER_R4; <span class="comment">// Turn on clock to TIMER4</span></div><div class="line"><a name="l00021"></a><span class="lineno">   21</span>&#160;</div><div class="line"><a name="l00022"></a><span class="lineno">   22</span>&#160;    <span class="comment">//Configure the timer for input capture mode</span></div><div class="line"><a name="l00023"></a><span class="lineno">   23</span>&#160;    TIMER4_CTL_R &amp;= ~(TIMER_CTL_TAEN | TIMER_CTL_TBEN); <span class="comment">//disable timerB to allow us to change settings</span></div><div class="line"><a name="l00024"></a><span class="lineno">   24</span>&#160;    TIMER4_CFG_R |= TIMER_CFG_16_BIT; <span class="comment">//set to 16 bit timer</span></div><div class="line"><a name="l00025"></a><span class="lineno">   25</span>&#160;</div><div class="line"><a name="l00026"></a><span class="lineno">   26</span>&#160;    TIMER4_TAMR_R = TIMER_TAMR_TAMR_PERIOD; <span class="comment">//set for periodic mode, down count</span></div><div class="line"><a name="l00027"></a><span class="lineno">   27</span>&#160;    TIMER4_TBMR_R = TIMER_TBMR_TBMR_PERIOD; <span class="comment">//set for periodic mode, down count</span></div><div class="line"><a name="l00028"></a><span class="lineno">   28</span>&#160;</div><div class="line"><a name="l00029"></a><span class="lineno">   29</span>&#160;    TIMER4_TAPR_R = TIMER4_PRESCALER - 1; <span class="comment">// 75  ms clock</span></div><div class="line"><a name="l00030"></a><span class="lineno">   30</span>&#160;    TIMER4_TBPR_R = TIMER4_PRESCALER - 1;  <span class="comment">// 200 ms clock</span></div><div class="line"><a name="l00031"></a><span class="lineno">   31</span>&#160;</div><div class="line"><a name="l00032"></a><span class="lineno">   32</span>&#160;    TIMER4_TAILR_R = TIMER4A_COUNTS - 1; <span class="comment">// set the load value for the 1 second clock (with your prescaler, how many clock cycles happen in 1 second?)</span></div><div class="line"><a name="l00033"></a><span class="lineno">   33</span>&#160;    TIMER4_TBILR_R = TIMER4B_COUNTS - 1; <span class="comment">// set the load value for the 0.15 second clock</span></div><div class="line"><a name="l00034"></a><span class="lineno">   34</span>&#160;</div><div class="line"><a name="l00035"></a><span class="lineno">   35</span>&#160;    <span class="comment">//clear TIMER3B interrupt flags</span></div><div class="line"><a name="l00036"></a><span class="lineno">   36</span>&#160;    TIMER4_ICR_R = (TIMER_ICR_TATOCINT | TIMER_ICR_TBTOCINT); <span class="comment">//clears TIMER4 time-out interrupt flags</span></div><div class="line"><a name="l00037"></a><span class="lineno">   37</span>&#160;    TIMER4_IMR_R |= (TIMER_IMR_TATOIM | TIMER_IMR_TBTOIM); <span class="comment">//enable TIMER4(A&amp;B) time-out interrupts</span></div><div class="line"><a name="l00038"></a><span class="lineno">   38</span>&#160;</div><div class="line"><a name="l00039"></a><span class="lineno">   39</span>&#160;</div><div class="line"><a name="l00040"></a><span class="lineno">   40</span>&#160;    TIMER4_CTL_R |= (TIMER_CTL_TAEN | TIMER_CTL_TBEN); <span class="comment">//Enable TIMER4A &amp; TIMER4B</span></div><div class="line"><a name="l00041"></a><span class="lineno">   41</span>&#160;}</div><div class="line"><a name="l00042"></a><span class="lineno">   42</span>&#160;</div></div><!-- fragment --></div><!-- contents -->
+<a href="timer4_8c.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno">    1</span>&#160;</div><div class="line"><a name="l00014"></a><span class="lineno">   14</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="timer4_8h.html">timer4.h</a>&quot;</span></div><div class="line"><a name="l00015"></a><span class="lineno">   15</span>&#160;</div><div class="line"><a name="l00016"></a><span class="lineno">   16</span>&#160;<span class="preprocessor">#define TIMER4_PRESCALER 250</span></div><div class="line"><a name="l00017"></a><span class="lineno">   17</span>&#160;</div><div class="line"><a name="l00018"></a><span class="lineno">   18</span>&#160;<span class="comment">// This is the interval for incrementing the clock</span></div><div class="line"><a name="l00019"></a><span class="lineno">   19</span>&#160;<span class="preprocessor">#define TIMER4A_COUNTS 9600 // Starting value of Timer to countdown to zero in 75 millisecond</span></div><div class="line"><a name="l00020"></a><span class="lineno">   20</span>&#160;</div><div class="line"><a name="l00021"></a><span class="lineno">   21</span>&#160;<span class="comment">// This is the interval for checking the buttons</span></div><div class="line"><a name="l00022"></a><span class="lineno">   22</span>&#160;<span class="preprocessor">#define TIMER4B_COUNTS 19200 // Starting value of Timer to countdown to zero in 150 milliseconds</span></div><div class="line"><a name="l00023"></a><span class="lineno">   23</span>&#160;</div><div class="line"><a name="l00024"></a><span class="lineno"><a class="line" href="timer4_8h.html#afe6c9dd8b2439c58273cbd63b95088fe">   24</a></span>&#160;<span class="keywordtype">void</span> <a class="code" href="timer4_8c.html#afe6c9dd8b2439c58273cbd63b95088fe">clock_timer_init</a>(<span class="keywordtype">void</span>)</div><div class="line"><a name="l00025"></a><span class="lineno">   25</span>&#160;{</div><div class="line"><a name="l00026"></a><span class="lineno">   26</span>&#160;    SYSCTL_RCGCTIMER_R |= SYSCTL_RCGCTIMER_R4; <span class="comment">// Turn on clock to TIMER4</span></div><div class="line"><a name="l00027"></a><span class="lineno">   27</span>&#160;</div><div class="line"><a name="l00028"></a><span class="lineno">   28</span>&#160;    <span class="comment">//Configure the timer for input capture mode</span></div><div class="line"><a name="l00029"></a><span class="lineno">   29</span>&#160;    TIMER4_CTL_R &amp;= ~(TIMER_CTL_TAEN | TIMER_CTL_TBEN); <span class="comment">//disable Timer4A and Timer4B to allow us to change settings</span></div><div class="line"><a name="l00030"></a><span class="lineno">   30</span>&#160;    TIMER4_CFG_R |= TIMER_CFG_16_BIT; <span class="comment">//set to 16 bit timer</span></div><div class="line"><a name="l00031"></a><span class="lineno">   31</span>&#160;</div><div class="line"><a name="l00032"></a><span class="lineno">   32</span>&#160;    TIMER4_TAMR_R = TIMER_TAMR_TAMR_PERIOD; <span class="comment">//set for periodic mode, down count</span></div><div class="line"><a name="l00033"></a><span class="lineno">   33</span>&#160;    TIMER4_TBMR_R = TIMER_TBMR_TBMR_PERIOD; <span class="comment">//set for periodic mode, down count</span></div><div class="line"><a name="l00034"></a><span class="lineno">   34</span>&#160;</div><div class="line"><a name="l00035"></a><span class="lineno">   35</span>&#160;    TIMER4_TAPR_R = TIMER4_PRESCALER - 1; <span class="comment">// 75  ms clock</span></div><div class="line"><a name="l00036"></a><span class="lineno">   36</span>&#160;    TIMER4_TBPR_R = TIMER4_PRESCALER - 1;  <span class="comment">// 150 ms clock</span></div><div class="line"><a name="l00037"></a><span class="lineno">   37</span>&#160;</div><div class="line"><a name="l00038"></a><span class="lineno">   38</span>&#160;    TIMER4_TAILR_R = TIMER4A_COUNTS - 1; <span class="comment">// set the load value for the  75 ms clock</span></div><div class="line"><a name="l00039"></a><span class="lineno">   39</span>&#160;    TIMER4_TBILR_R = TIMER4B_COUNTS - 1; <span class="comment">// set the load value for the 150 ms clock</span></div><div class="line"><a name="l00040"></a><span class="lineno">   40</span>&#160;</div><div class="line"><a name="l00041"></a><span class="lineno">   41</span>&#160;    <span class="comment">//clear TIMER4B interrupt flags</span></div><div class="line"><a name="l00042"></a><span class="lineno">   42</span>&#160;    TIMER4_ICR_R = (TIMER_ICR_TATOCINT | TIMER_ICR_TBTOCINT); <span class="comment">//clears TIMER4 time-out interrupt flags</span></div><div class="line"><a name="l00043"></a><span class="lineno">   43</span>&#160;    TIMER4_IMR_R |= (TIMER_IMR_TATOIM | TIMER_IMR_TBTOIM); <span class="comment">//enable TIMER4(A&amp;B) time-out interrupts</span></div><div class="line"><a name="l00044"></a><span class="lineno">   44</span>&#160;</div><div class="line"><a name="l00045"></a><span class="lineno">   45</span>&#160;</div><div class="line"><a name="l00046"></a><span class="lineno">   46</span>&#160;    TIMER4_CTL_R |= (TIMER_CTL_TAEN | TIMER_CTL_TBEN); <span class="comment">//Enable TIMER4A &amp; TIMER4B</span></div><div class="line"><a name="l00047"></a><span class="lineno">   47</span>&#160;}</div><div class="line"><a name="l00048"></a><span class="lineno">   48</span>&#160;</div><div class="ttc" id="timer4_8c_html_afe6c9dd8b2439c58273cbd63b95088fe"><div class="ttname"><a href="timer4_8c.html#afe6c9dd8b2439c58273cbd63b95088fe">clock_timer_init</a></div><div class="ttdeci">void clock_timer_init(void)</div><div class="ttdef"><b>Definition:</b> <a href="timer4_8c_source.html#l00024">timer4.c:24</a></div></div>
+<div class="ttc" id="timer4_8h_html"><div class="ttname"><a href="timer4_8h.html">timer4.h</a></div><div class="ttdoc">Header file for handling a timer interrupt for IR Sensor. </div></div>
+</div><!-- fragment --></div><!-- contents -->
 </div><!-- doc-content -->
 <!-- start footer part -->
 <div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
   <ul>
-    <li class="navelem"><a class="el" href="dir_d522931ffa1371640980b621734a4381.html">Users</a></li><li class="navelem"><a class="el" href="dir_b324cbc34babe304b9f95739e7202679.html">DonsterLaptop</a></li><li class="navelem"><a class="el" href="dir_e6c4902d624d7a1fd4d40064e095ec38.html">Documents</a></li><li class="navelem"><a class="el" href="dir_cca09f556bdef987ef90adb7ab596965.html">Robot288</a></li><li class="navelem"><a class="el" href="dir_cffdf54b453800c407ef4c3ceba2b426.html">cpre288_generalpurposeautomatedrobot</a></li><li class="navelem"><a class="el" href="dir_c2e164765e5a314cc0de59b27d9c89cd.html">Robot</a></li><li class="navelem"><a class="el" href="dir_af5038295b43384ea1ab75d71dfd6e0e.html">Utils</a></li><li class="navelem"><b>timer4.c</b></li>
+    <li class="navelem"><a class="el" href="dir_d522931ffa1371640980b621734a4381.html">Users</a></li><li class="navelem"><a class="el" href="dir_b324cbc34babe304b9f95739e7202679.html">DonsterLaptop</a></li><li class="navelem"><a class="el" href="dir_e6c4902d624d7a1fd4d40064e095ec38.html">Documents</a></li><li class="navelem"><a class="el" href="dir_cca09f556bdef987ef90adb7ab596965.html">Robot288</a></li><li class="navelem"><a class="el" href="dir_cffdf54b453800c407ef4c3ceba2b426.html">cpre288_generalpurposeautomatedrobot</a></li><li class="navelem"><a class="el" href="dir_c2e164765e5a314cc0de59b27d9c89cd.html">Robot</a></li><li class="navelem"><a class="el" href="dir_af5038295b43384ea1ab75d71dfd6e0e.html">Utils</a></li><li class="navelem"><a class="el" href="timer4_8c.html">timer4.c</a></li>
     <li class="footer">Generated by
     <a href="http://www.doxygen.org/index.html">
     <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.14 </li>
diff --git a/Doxygen/html/timer4_8h_source.html b/Doxygen/html/timer4_8h_source.html
index 742a50da1162555dc7412241cfbe0334499566fd..66f4af3673dfad2a02497bac82c7f93b617d147b 100644
--- a/Doxygen/html/timer4_8h_source.html
+++ b/Doxygen/html/timer4_8h_source.html
@@ -92,12 +92,13 @@ $(document).ready(function(){initNavTree('timer4_8h_source.html','');});
 <div class="title">timer4.h</div>  </div>
 </div><!--header-->
 <div class="contents">
-<div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno">    1</span>&#160;<span class="comment">/*</span></div><div class="line"><a name="l00002"></a><span class="lineno">    2</span>&#160;<span class="comment"> * timer4.h</span></div><div class="line"><a name="l00003"></a><span class="lineno">    3</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00004"></a><span class="lineno">    4</span>&#160;<span class="comment"> *  Created on: Oct 31, 2018</span></div><div class="line"><a name="l00005"></a><span class="lineno">    5</span>&#160;<span class="comment"> *      @author Quentin Urbanowicz</span></div><div class="line"><a name="l00006"></a><span class="lineno">    6</span>&#160;<span class="comment"> *      @author Rene Chavez</span></div><div class="line"><a name="l00007"></a><span class="lineno">    7</span>&#160;<span class="comment"> *      @author Peyton Sher</span></div><div class="line"><a name="l00008"></a><span class="lineno">    8</span>&#160;<span class="comment"> *      @author Don Kieu</span></div><div class="line"><a name="l00009"></a><span class="lineno">    9</span>&#160;<span class="comment"> *      @date   2018-11-13, 2018-11-27</span></div><div class="line"><a name="l00010"></a><span class="lineno">   10</span>&#160;<span class="comment"> */</span></div><div class="line"><a name="l00011"></a><span class="lineno">   11</span>&#160;</div><div class="line"><a name="l00012"></a><span class="lineno">   12</span>&#160;<span class="preprocessor">#include &lt;stdint.h&gt;</span></div><div class="line"><a name="l00013"></a><span class="lineno">   13</span>&#160;<span class="preprocessor">#include &lt;stdbool.h&gt;</span></div><div class="line"><a name="l00014"></a><span class="lineno">   14</span>&#160;<span class="preprocessor">#include &lt;inc/tm4c123gh6pm.h&gt;</span></div><div class="line"><a name="l00015"></a><span class="lineno">   15</span>&#160;<span class="preprocessor">#include &quot;driverlib/interrupt.h&quot;</span></div><div class="line"><a name="l00016"></a><span class="lineno">   16</span>&#160;</div><div class="line"><a name="l00017"></a><span class="lineno">   17</span>&#160;<span class="preprocessor">#ifndef TIMER4_H_</span></div><div class="line"><a name="l00018"></a><span class="lineno">   18</span>&#160;<span class="preprocessor">#define TIMER4_H_</span></div><div class="line"><a name="l00019"></a><span class="lineno">   19</span>&#160;</div><div class="line"><a name="l00023"></a><span class="lineno">   23</span>&#160;<span class="keywordtype">void</span> clock_timer_init(<span class="keywordtype">void</span>);</div><div class="line"><a name="l00024"></a><span class="lineno">   24</span>&#160;</div><div class="line"><a name="l00025"></a><span class="lineno">   25</span>&#160;<span class="preprocessor">#endif </span><span class="comment">/* TIMER4_H_ */</span><span class="preprocessor"></span></div></div><!-- fragment --></div><!-- contents -->
+<a href="timer4_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno">    1</span>&#160;</div><div class="line"><a name="l00014"></a><span class="lineno">   14</span>&#160;<span class="preprocessor">#include &lt;stdint.h&gt;</span></div><div class="line"><a name="l00015"></a><span class="lineno">   15</span>&#160;<span class="preprocessor">#include &lt;stdbool.h&gt;</span></div><div class="line"><a name="l00016"></a><span class="lineno">   16</span>&#160;<span class="preprocessor">#include &lt;inc/tm4c123gh6pm.h&gt;</span></div><div class="line"><a name="l00017"></a><span class="lineno">   17</span>&#160;<span class="preprocessor">#include &quot;driverlib/interrupt.h&quot;</span></div><div class="line"><a name="l00018"></a><span class="lineno">   18</span>&#160;</div><div class="line"><a name="l00019"></a><span class="lineno">   19</span>&#160;<span class="preprocessor">#ifndef TIMER4_H_</span></div><div class="line"><a name="l00020"></a><span class="lineno">   20</span>&#160;<span class="preprocessor">#define TIMER4_H_</span></div><div class="line"><a name="l00021"></a><span class="lineno">   21</span>&#160;</div><div class="line"><a name="l00025"></a><span class="lineno">   25</span>&#160;<span class="keywordtype">void</span> <a class="code" href="timer4_8h.html#afe6c9dd8b2439c58273cbd63b95088fe">clock_timer_init</a>(<span class="keywordtype">void</span>);</div><div class="line"><a name="l00026"></a><span class="lineno">   26</span>&#160;</div><div class="line"><a name="l00027"></a><span class="lineno">   27</span>&#160;<span class="preprocessor">#endif </span><span class="comment">/* TIMER4_H_ */</span><span class="preprocessor"></span></div><div class="ttc" id="timer4_8h_html_afe6c9dd8b2439c58273cbd63b95088fe"><div class="ttname"><a href="timer4_8h.html#afe6c9dd8b2439c58273cbd63b95088fe">clock_timer_init</a></div><div class="ttdeci">void clock_timer_init(void)</div><div class="ttdef"><b>Definition:</b> <a href="timer4_8c_source.html#l00024">timer4.c:24</a></div></div>
+</div><!-- fragment --></div><!-- contents -->
 </div><!-- doc-content -->
 <!-- start footer part -->
 <div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
   <ul>
-    <li class="navelem"><a class="el" href="dir_d522931ffa1371640980b621734a4381.html">Users</a></li><li class="navelem"><a class="el" href="dir_b324cbc34babe304b9f95739e7202679.html">DonsterLaptop</a></li><li class="navelem"><a class="el" href="dir_e6c4902d624d7a1fd4d40064e095ec38.html">Documents</a></li><li class="navelem"><a class="el" href="dir_cca09f556bdef987ef90adb7ab596965.html">Robot288</a></li><li class="navelem"><a class="el" href="dir_cffdf54b453800c407ef4c3ceba2b426.html">cpre288_generalpurposeautomatedrobot</a></li><li class="navelem"><a class="el" href="dir_c2e164765e5a314cc0de59b27d9c89cd.html">Robot</a></li><li class="navelem"><a class="el" href="dir_af5038295b43384ea1ab75d71dfd6e0e.html">Utils</a></li><li class="navelem"><b>timer4.h</b></li>
+    <li class="navelem"><a class="el" href="dir_d522931ffa1371640980b621734a4381.html">Users</a></li><li class="navelem"><a class="el" href="dir_b324cbc34babe304b9f95739e7202679.html">DonsterLaptop</a></li><li class="navelem"><a class="el" href="dir_e6c4902d624d7a1fd4d40064e095ec38.html">Documents</a></li><li class="navelem"><a class="el" href="dir_cca09f556bdef987ef90adb7ab596965.html">Robot288</a></li><li class="navelem"><a class="el" href="dir_cffdf54b453800c407ef4c3ceba2b426.html">cpre288_generalpurposeautomatedrobot</a></li><li class="navelem"><a class="el" href="dir_c2e164765e5a314cc0de59b27d9c89cd.html">Robot</a></li><li class="navelem"><a class="el" href="dir_af5038295b43384ea1ab75d71dfd6e0e.html">Utils</a></li><li class="navelem"><a class="el" href="timer4_8h.html">timer4.h</a></li>
     <li class="footer">Generated by
     <a href="http://www.doxygen.org/index.html">
     <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.14 </li>
diff --git a/Doxygen/html/timer_8c_source.html b/Doxygen/html/timer_8c_source.html
index 75bc8585c20d7cee72f1467859e344326d1f043a..d74421c82800f12d4cce8c595237103386597ee2 100644
--- a/Doxygen/html/timer_8c_source.html
+++ b/Doxygen/html/timer_8c_source.html
@@ -92,12 +92,14 @@ $(document).ready(function(){initNavTree('timer_8c_source.html','');});
 <div class="title">timer.c</div>  </div>
 </div><!--header-->
 <div class="contents">
-<div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno">    1</span>&#160;<span class="comment">/*</span></div><div class="line"><a name="l00002"></a><span class="lineno">    2</span>&#160;<span class="comment"> * Timer.cpp</span></div><div class="line"><a name="l00003"></a><span class="lineno">    3</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00004"></a><span class="lineno">    4</span>&#160;<span class="comment"> *  @author Eric Middleton</span></div><div class="line"><a name="l00005"></a><span class="lineno">    5</span>&#160;<span class="comment"> */</span></div><div class="line"><a name="l00006"></a><span class="lineno">    6</span>&#160;</div><div class="line"><a name="l00007"></a><span class="lineno">    7</span>&#160;<span class="preprocessor">#include &quot;Timer.h&quot;</span></div><div class="line"><a name="l00008"></a><span class="lineno">    8</span>&#160;</div><div class="line"><a name="l00009"></a><span class="lineno">    9</span>&#160;<span class="keyword">volatile</span> uint32_t _timer_ticks;</div><div class="line"><a name="l00010"></a><span class="lineno">   10</span>&#160;</div><div class="line"><a name="l00011"></a><span class="lineno">   11</span>&#160;<span class="keywordtype">void</span> timer_waitMillis(uint32_t millis)</div><div class="line"><a name="l00012"></a><span class="lineno">   12</span>&#160;{</div><div class="line"><a name="l00014"></a><span class="lineno">   14</span>&#160;    timer_startTimer(999);</div><div class="line"><a name="l00015"></a><span class="lineno">   15</span>&#160;</div><div class="line"><a name="l00017"></a><span class="lineno">   17</span>&#160;    <span class="keywordflow">while</span> (millis &gt; 0)</div><div class="line"><a name="l00018"></a><span class="lineno">   18</span>&#160;    {</div><div class="line"><a name="l00020"></a><span class="lineno">   20</span>&#160;        <span class="keywordflow">while</span> (!(TIMER5_RIS_R &amp; TIMER_RIS_TATORIS))</div><div class="line"><a name="l00021"></a><span class="lineno">   21</span>&#160;            ;</div><div class="line"><a name="l00022"></a><span class="lineno">   22</span>&#160;</div><div class="line"><a name="l00024"></a><span class="lineno">   24</span>&#160;        TIMER5_ICR_R |= TIMER_RIS_TATORIS;</div><div class="line"><a name="l00025"></a><span class="lineno">   25</span>&#160;</div><div class="line"><a name="l00026"></a><span class="lineno">   26</span>&#160;        millis--;</div><div class="line"><a name="l00027"></a><span class="lineno">   27</span>&#160;    }</div><div class="line"><a name="l00028"></a><span class="lineno">   28</span>&#160;</div><div class="line"><a name="l00030"></a><span class="lineno">   30</span>&#160;    timer_stopTimer();</div><div class="line"><a name="l00031"></a><span class="lineno">   31</span>&#160;}</div><div class="line"><a name="l00032"></a><span class="lineno">   32</span>&#160;</div><div class="line"><a name="l00033"></a><span class="lineno">   33</span>&#160;<span class="keywordtype">void</span> timer_waitMicros(uint16_t micros)</div><div class="line"><a name="l00034"></a><span class="lineno">   34</span>&#160;{</div><div class="line"><a name="l00035"></a><span class="lineno">   35</span>&#160;    <span class="comment">//Start timer with period of 1us</span></div><div class="line"><a name="l00036"></a><span class="lineno">   36</span>&#160;    timer_startTimer(micros - 1);</div><div class="line"><a name="l00037"></a><span class="lineno">   37</span>&#160;</div><div class="line"><a name="l00038"></a><span class="lineno">   38</span>&#160;    <span class="keywordflow">while</span> (!(TIMER5_RIS_R &amp; TIMER_RIS_TATORIS))</div><div class="line"><a name="l00039"></a><span class="lineno">   39</span>&#160;        ;</div><div class="line"><a name="l00040"></a><span class="lineno">   40</span>&#160;</div><div class="line"><a name="l00041"></a><span class="lineno">   41</span>&#160;    TIMER5_ICR_R |= TIMER_RIS_TATORIS;</div><div class="line"><a name="l00042"></a><span class="lineno">   42</span>&#160;</div><div class="line"><a name="l00043"></a><span class="lineno">   43</span>&#160;    timer_stopTimer();</div><div class="line"><a name="l00044"></a><span class="lineno">   44</span>&#160;}</div><div class="line"><a name="l00045"></a><span class="lineno">   45</span>&#160;</div><div class="line"><a name="l00046"></a><span class="lineno">   46</span>&#160;<span class="keywordtype">void</span> timer_startTimer(uint16_t startValue)</div><div class="line"><a name="l00047"></a><span class="lineno">   47</span>&#160;{</div><div class="line"><a name="l00048"></a><span class="lineno">   48</span>&#160;    <span class="comment">//Enable Timer5</span></div><div class="line"><a name="l00049"></a><span class="lineno">   49</span>&#160;    SYSCTL_RCGCTIMER_R |= SYSCTL_RCGCTIMER_R5;</div><div class="line"><a name="l00050"></a><span class="lineno">   50</span>&#160;</div><div class="line"><a name="l00051"></a><span class="lineno">   51</span>&#160;    <span class="comment">//Disable timer (clear bit TnEN in GPTMCTL)</span></div><div class="line"><a name="l00052"></a><span class="lineno">   52</span>&#160;    TIMER5_CTL_R &amp;= ~TIMER_CTL_TAEN;</div><div class="line"><a name="l00053"></a><span class="lineno">   53</span>&#160;</div><div class="line"><a name="l00054"></a><span class="lineno">   54</span>&#160;    <span class="comment">//Set as 16-bit timer</span></div><div class="line"><a name="l00055"></a><span class="lineno">   55</span>&#160;    TIMER5_CFG_R = TIMER_CFG_16_BIT;</div><div class="line"><a name="l00056"></a><span class="lineno">   56</span>&#160;</div><div class="line"><a name="l00057"></a><span class="lineno">   57</span>&#160;    <span class="comment">//Configure the timer for periodic mode</span></div><div class="line"><a name="l00058"></a><span class="lineno">   58</span>&#160;    <span class="comment">//and countdown</span></div><div class="line"><a name="l00059"></a><span class="lineno">   59</span>&#160;    TIMER5_TAMR_R = TIMER_TAMR_TAMR_PERIOD;</div><div class="line"><a name="l00060"></a><span class="lineno">   60</span>&#160;</div><div class="line"><a name="l00061"></a><span class="lineno">   61</span>&#160;    <span class="comment">//Load initial timer value</span></div><div class="line"><a name="l00062"></a><span class="lineno">   62</span>&#160;    TIMER5_TAILR_R = startValue;</div><div class="line"><a name="l00063"></a><span class="lineno">   63</span>&#160;</div><div class="line"><a name="l00064"></a><span class="lineno">   64</span>&#160;    <span class="comment">//Clear the timeout flag</span></div><div class="line"><a name="l00065"></a><span class="lineno">   65</span>&#160;    TIMER5_ICR_R = TIMER_ICR_TATOCINT;</div><div class="line"><a name="l00066"></a><span class="lineno">   66</span>&#160;</div><div class="line"><a name="l00067"></a><span class="lineno">   67</span>&#160;    <span class="comment">//Set the prescaler to 15 (period = 1us)</span></div><div class="line"><a name="l00068"></a><span class="lineno">   68</span>&#160;    TIMER5_TAPR_R = 15;</div><div class="line"><a name="l00069"></a><span class="lineno">   69</span>&#160;</div><div class="line"><a name="l00070"></a><span class="lineno">   70</span>&#160;    <span class="comment">//Clear the interrupt mask register</span></div><div class="line"><a name="l00071"></a><span class="lineno">   71</span>&#160;    TIMER5_IMR_R = 0;</div><div class="line"><a name="l00072"></a><span class="lineno">   72</span>&#160;</div><div class="line"><a name="l00073"></a><span class="lineno">   73</span>&#160;    <span class="comment">//Enable Timer5 A</span></div><div class="line"><a name="l00074"></a><span class="lineno">   74</span>&#160;    TIMER5_CTL_R |= TIMER_CTL_TAEN;</div><div class="line"><a name="l00075"></a><span class="lineno">   75</span>&#160;}</div><div class="line"><a name="l00076"></a><span class="lineno">   76</span>&#160;</div><div class="line"><a name="l00077"></a><span class="lineno">   77</span>&#160;<span class="keywordtype">void</span> timer_stopTimer(<span class="keywordtype">void</span>)</div><div class="line"><a name="l00078"></a><span class="lineno">   78</span>&#160;{</div><div class="line"><a name="l00079"></a><span class="lineno">   79</span>&#160;    <span class="comment">//Disable timer (clear bit TnEN in GPTMCTL)</span></div><div class="line"><a name="l00080"></a><span class="lineno">   80</span>&#160;    TIMER5_CTL_R &amp;= ~TIMER_CTL_TAEN;</div><div class="line"><a name="l00081"></a><span class="lineno">   81</span>&#160;</div><div class="line"><a name="l00082"></a><span class="lineno">   82</span>&#160;    <span class="comment">//Disable system control for Timer1</span></div><div class="line"><a name="l00083"></a><span class="lineno">   83</span>&#160;    SYSCTL_RCGCTIMER_R &amp;= ~SYSCTL_RCGCTIMER_R5;</div><div class="line"><a name="l00084"></a><span class="lineno">   84</span>&#160;}</div><div class="line"><a name="l00085"></a><span class="lineno">   85</span>&#160;</div><div class="line"><a name="l00086"></a><span class="lineno">   86</span>&#160;clock_t timer_startClock(<span class="keywordtype">void</span>)</div><div class="line"><a name="l00087"></a><span class="lineno">   87</span>&#160;{</div><div class="line"><a name="l00088"></a><span class="lineno">   88</span>&#160;    <span class="comment">//Enable Timer5</span></div><div class="line"><a name="l00089"></a><span class="lineno">   89</span>&#160;    SYSCTL_RCGCTIMER_R |= SYSCTL_RCGCTIMER_R5;</div><div class="line"><a name="l00090"></a><span class="lineno">   90</span>&#160;</div><div class="line"><a name="l00091"></a><span class="lineno">   91</span>&#160;    <span class="comment">//Disable timer (clear bit TnEN in GPTMCTL)</span></div><div class="line"><a name="l00092"></a><span class="lineno">   92</span>&#160;    TIMER5_CTL_R &amp;= ~TIMER_CTL_TBEN;</div><div class="line"><a name="l00093"></a><span class="lineno">   93</span>&#160;</div><div class="line"><a name="l00094"></a><span class="lineno">   94</span>&#160;    <span class="comment">//Set as 16-bit timer</span></div><div class="line"><a name="l00095"></a><span class="lineno">   95</span>&#160;    TIMER5_CFG_R = TIMER_CFG_16_BIT;</div><div class="line"><a name="l00096"></a><span class="lineno">   96</span>&#160;</div><div class="line"><a name="l00097"></a><span class="lineno">   97</span>&#160;    <span class="comment">//Configure the timer for periodic mode</span></div><div class="line"><a name="l00098"></a><span class="lineno">   98</span>&#160;    <span class="comment">//and countdown</span></div><div class="line"><a name="l00099"></a><span class="lineno">   99</span>&#160;    TIMER5_TBMR_R = TIMER_TBMR_TBMR_PERIOD;</div><div class="line"><a name="l00100"></a><span class="lineno">  100</span>&#160;</div><div class="line"><a name="l00101"></a><span class="lineno">  101</span>&#160;    <span class="comment">//Load initial timer value</span></div><div class="line"><a name="l00102"></a><span class="lineno">  102</span>&#160;    TIMER5_TBILR_R = 0;</div><div class="line"><a name="l00103"></a><span class="lineno">  103</span>&#160;</div><div class="line"><a name="l00104"></a><span class="lineno">  104</span>&#160;    <span class="comment">//Clear the timeout flag</span></div><div class="line"><a name="l00105"></a><span class="lineno">  105</span>&#160;    TIMER5_ICR_R = TIMER_ICR_TBTOCINT;</div><div class="line"><a name="l00106"></a><span class="lineno">  106</span>&#160;</div><div class="line"><a name="l00107"></a><span class="lineno">  107</span>&#160;    <span class="comment">//Set the prescaler to 16000 (period = 1us)</span></div><div class="line"><a name="l00108"></a><span class="lineno">  108</span>&#160;    TIMER5_TBPR_R = 16000 - 1;</div><div class="line"><a name="l00109"></a><span class="lineno">  109</span>&#160;</div><div class="line"><a name="l00110"></a><span class="lineno">  110</span>&#160;    <span class="comment">//Clear the interrupt mask register</span></div><div class="line"><a name="l00111"></a><span class="lineno">  111</span>&#160;    TIMER5_IMR_R = 0;</div><div class="line"><a name="l00112"></a><span class="lineno">  112</span>&#160;</div><div class="line"><a name="l00113"></a><span class="lineno">  113</span>&#160;    <span class="comment">//Enable Timer5 B</span></div><div class="line"><a name="l00114"></a><span class="lineno">  114</span>&#160;    TIMER5_CTL_R |= TIMER_CTL_TBEN;</div><div class="line"><a name="l00115"></a><span class="lineno">  115</span>&#160;</div><div class="line"><a name="l00116"></a><span class="lineno">  116</span>&#160;    <span class="keywordflow">return</span> TIMER5_TBR_R;</div><div class="line"><a name="l00117"></a><span class="lineno">  117</span>&#160;}</div><div class="line"><a name="l00118"></a><span class="lineno">  118</span>&#160;</div><div class="line"><a name="l00119"></a><span class="lineno">  119</span>&#160;clock_t timer_getClock(<span class="keywordtype">void</span>)</div><div class="line"><a name="l00120"></a><span class="lineno">  120</span>&#160;{</div><div class="line"><a name="l00121"></a><span class="lineno">  121</span>&#160;    <span class="keywordflow">return</span> TIMER5_TBR_R;</div><div class="line"><a name="l00122"></a><span class="lineno">  122</span>&#160;}</div><div class="line"><a name="l00123"></a><span class="lineno">  123</span>&#160;</div><div class="line"><a name="l00124"></a><span class="lineno">  124</span>&#160;<span class="keywordtype">void</span> timer_stopClock(<span class="keywordtype">void</span>)</div><div class="line"><a name="l00125"></a><span class="lineno">  125</span>&#160;{</div><div class="line"><a name="l00126"></a><span class="lineno">  126</span>&#160;    TIMER5_CTL_R &amp;= ~TIMER_CTL_TBEN;</div><div class="line"><a name="l00127"></a><span class="lineno">  127</span>&#160;}</div></div><!-- fragment --></div><!-- contents -->
+<a href="timer_8c.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno">    1</span>&#160;</div><div class="line"><a name="l00011"></a><span class="lineno">   11</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="timer_8h.html">Timer.h</a>&quot;</span></div><div class="line"><a name="l00012"></a><span class="lineno">   12</span>&#160;</div><div class="line"><a name="l00013"></a><span class="lineno">   13</span>&#160;<span class="keyword">volatile</span> uint32_t _timer_ticks;</div><div class="line"><a name="l00014"></a><span class="lineno">   14</span>&#160;</div><div class="line"><a name="l00015"></a><span class="lineno"><a class="line" href="timer_8h.html#a7e2a3b4520e885e5e7d40fa87e242a75">   15</a></span>&#160;<span class="keywordtype">void</span> <a class="code" href="timer_8c.html#a7e2a3b4520e885e5e7d40fa87e242a75">timer_waitMillis</a>(uint32_t millis)</div><div class="line"><a name="l00016"></a><span class="lineno">   16</span>&#160;{</div><div class="line"><a name="l00018"></a><span class="lineno">   18</span>&#160;    timer_startTimer(999);</div><div class="line"><a name="l00019"></a><span class="lineno">   19</span>&#160;</div><div class="line"><a name="l00021"></a><span class="lineno">   21</span>&#160;    <span class="keywordflow">while</span> (millis &gt; 0)</div><div class="line"><a name="l00022"></a><span class="lineno">   22</span>&#160;    {</div><div class="line"><a name="l00024"></a><span class="lineno">   24</span>&#160;        <span class="keywordflow">while</span> (!(TIMER5_RIS_R &amp; TIMER_RIS_TATORIS))</div><div class="line"><a name="l00025"></a><span class="lineno">   25</span>&#160;            ;</div><div class="line"><a name="l00026"></a><span class="lineno">   26</span>&#160;</div><div class="line"><a name="l00028"></a><span class="lineno">   28</span>&#160;        TIMER5_ICR_R |= TIMER_RIS_TATORIS;</div><div class="line"><a name="l00029"></a><span class="lineno">   29</span>&#160;</div><div class="line"><a name="l00030"></a><span class="lineno">   30</span>&#160;        millis--;</div><div class="line"><a name="l00031"></a><span class="lineno">   31</span>&#160;    }</div><div class="line"><a name="l00032"></a><span class="lineno">   32</span>&#160;</div><div class="line"><a name="l00034"></a><span class="lineno">   34</span>&#160;    timer_stopTimer();</div><div class="line"><a name="l00035"></a><span class="lineno">   35</span>&#160;}</div><div class="line"><a name="l00036"></a><span class="lineno">   36</span>&#160;</div><div class="line"><a name="l00037"></a><span class="lineno">   37</span>&#160;<span class="keywordtype">void</span> timer_waitMicros(uint16_t micros)</div><div class="line"><a name="l00038"></a><span class="lineno">   38</span>&#160;{</div><div class="line"><a name="l00039"></a><span class="lineno">   39</span>&#160;    <span class="comment">//Start timer with period of 1us</span></div><div class="line"><a name="l00040"></a><span class="lineno">   40</span>&#160;    timer_startTimer(micros - 1);</div><div class="line"><a name="l00041"></a><span class="lineno">   41</span>&#160;</div><div class="line"><a name="l00042"></a><span class="lineno">   42</span>&#160;    <span class="keywordflow">while</span> (!(TIMER5_RIS_R &amp; TIMER_RIS_TATORIS))</div><div class="line"><a name="l00043"></a><span class="lineno">   43</span>&#160;        ;</div><div class="line"><a name="l00044"></a><span class="lineno">   44</span>&#160;</div><div class="line"><a name="l00045"></a><span class="lineno">   45</span>&#160;    TIMER5_ICR_R |= TIMER_RIS_TATORIS;</div><div class="line"><a name="l00046"></a><span class="lineno">   46</span>&#160;</div><div class="line"><a name="l00047"></a><span class="lineno">   47</span>&#160;    timer_stopTimer();</div><div class="line"><a name="l00048"></a><span class="lineno">   48</span>&#160;}</div><div class="line"><a name="l00049"></a><span class="lineno">   49</span>&#160;</div><div class="line"><a name="l00050"></a><span class="lineno">   50</span>&#160;<span class="keywordtype">void</span> timer_startTimer(uint16_t startValue)</div><div class="line"><a name="l00051"></a><span class="lineno">   51</span>&#160;{</div><div class="line"><a name="l00052"></a><span class="lineno">   52</span>&#160;    <span class="comment">//Enable Timer5</span></div><div class="line"><a name="l00053"></a><span class="lineno">   53</span>&#160;    SYSCTL_RCGCTIMER_R |= SYSCTL_RCGCTIMER_R5;</div><div class="line"><a name="l00054"></a><span class="lineno">   54</span>&#160;</div><div class="line"><a name="l00055"></a><span class="lineno">   55</span>&#160;    <span class="comment">//Disable timer (clear bit TnEN in GPTMCTL)</span></div><div class="line"><a name="l00056"></a><span class="lineno">   56</span>&#160;    TIMER5_CTL_R &amp;= ~TIMER_CTL_TAEN;</div><div class="line"><a name="l00057"></a><span class="lineno">   57</span>&#160;</div><div class="line"><a name="l00058"></a><span class="lineno">   58</span>&#160;    <span class="comment">//Set as 16-bit timer</span></div><div class="line"><a name="l00059"></a><span class="lineno">   59</span>&#160;    TIMER5_CFG_R = TIMER_CFG_16_BIT;</div><div class="line"><a name="l00060"></a><span class="lineno">   60</span>&#160;</div><div class="line"><a name="l00061"></a><span class="lineno">   61</span>&#160;    <span class="comment">//Configure the timer for periodic mode</span></div><div class="line"><a name="l00062"></a><span class="lineno">   62</span>&#160;    <span class="comment">//and countdown</span></div><div class="line"><a name="l00063"></a><span class="lineno">   63</span>&#160;    TIMER5_TAMR_R = TIMER_TAMR_TAMR_PERIOD;</div><div class="line"><a name="l00064"></a><span class="lineno">   64</span>&#160;</div><div class="line"><a name="l00065"></a><span class="lineno">   65</span>&#160;    <span class="comment">//Load initial timer value</span></div><div class="line"><a name="l00066"></a><span class="lineno">   66</span>&#160;    TIMER5_TAILR_R = startValue;</div><div class="line"><a name="l00067"></a><span class="lineno">   67</span>&#160;</div><div class="line"><a name="l00068"></a><span class="lineno">   68</span>&#160;    <span class="comment">//Clear the timeout flag</span></div><div class="line"><a name="l00069"></a><span class="lineno">   69</span>&#160;    TIMER5_ICR_R = TIMER_ICR_TATOCINT;</div><div class="line"><a name="l00070"></a><span class="lineno">   70</span>&#160;</div><div class="line"><a name="l00071"></a><span class="lineno">   71</span>&#160;    <span class="comment">//Set the prescaler to 15 (period = 1us)</span></div><div class="line"><a name="l00072"></a><span class="lineno">   72</span>&#160;    TIMER5_TAPR_R = 15;</div><div class="line"><a name="l00073"></a><span class="lineno">   73</span>&#160;</div><div class="line"><a name="l00074"></a><span class="lineno">   74</span>&#160;    <span class="comment">//Clear the interrupt mask register</span></div><div class="line"><a name="l00075"></a><span class="lineno">   75</span>&#160;    TIMER5_IMR_R = 0;</div><div class="line"><a name="l00076"></a><span class="lineno">   76</span>&#160;</div><div class="line"><a name="l00077"></a><span class="lineno">   77</span>&#160;    <span class="comment">//Enable Timer5 A</span></div><div class="line"><a name="l00078"></a><span class="lineno">   78</span>&#160;    TIMER5_CTL_R |= TIMER_CTL_TAEN;</div><div class="line"><a name="l00079"></a><span class="lineno">   79</span>&#160;}</div><div class="line"><a name="l00080"></a><span class="lineno">   80</span>&#160;</div><div class="line"><a name="l00081"></a><span class="lineno">   81</span>&#160;<span class="keywordtype">void</span> timer_stopTimer(<span class="keywordtype">void</span>)</div><div class="line"><a name="l00082"></a><span class="lineno">   82</span>&#160;{</div><div class="line"><a name="l00083"></a><span class="lineno">   83</span>&#160;    <span class="comment">//Disable timer (clear bit TnEN in GPTMCTL)</span></div><div class="line"><a name="l00084"></a><span class="lineno">   84</span>&#160;    TIMER5_CTL_R &amp;= ~TIMER_CTL_TAEN;</div><div class="line"><a name="l00085"></a><span class="lineno">   85</span>&#160;</div><div class="line"><a name="l00086"></a><span class="lineno">   86</span>&#160;    <span class="comment">//Disable system control for Timer1</span></div><div class="line"><a name="l00087"></a><span class="lineno">   87</span>&#160;    SYSCTL_RCGCTIMER_R &amp;= ~SYSCTL_RCGCTIMER_R5;</div><div class="line"><a name="l00088"></a><span class="lineno">   88</span>&#160;}</div><div class="line"><a name="l00089"></a><span class="lineno">   89</span>&#160;</div><div class="line"><a name="l00090"></a><span class="lineno">   90</span>&#160;clock_t timer_startClock(<span class="keywordtype">void</span>)</div><div class="line"><a name="l00091"></a><span class="lineno">   91</span>&#160;{</div><div class="line"><a name="l00092"></a><span class="lineno">   92</span>&#160;    <span class="comment">//Enable Timer5</span></div><div class="line"><a name="l00093"></a><span class="lineno">   93</span>&#160;    SYSCTL_RCGCTIMER_R |= SYSCTL_RCGCTIMER_R5;</div><div class="line"><a name="l00094"></a><span class="lineno">   94</span>&#160;</div><div class="line"><a name="l00095"></a><span class="lineno">   95</span>&#160;    <span class="comment">//Disable timer (clear bit TnEN in GPTMCTL)</span></div><div class="line"><a name="l00096"></a><span class="lineno">   96</span>&#160;    TIMER5_CTL_R &amp;= ~TIMER_CTL_TBEN;</div><div class="line"><a name="l00097"></a><span class="lineno">   97</span>&#160;</div><div class="line"><a name="l00098"></a><span class="lineno">   98</span>&#160;    <span class="comment">//Set as 16-bit timer</span></div><div class="line"><a name="l00099"></a><span class="lineno">   99</span>&#160;    TIMER5_CFG_R = TIMER_CFG_16_BIT;</div><div class="line"><a name="l00100"></a><span class="lineno">  100</span>&#160;</div><div class="line"><a name="l00101"></a><span class="lineno">  101</span>&#160;    <span class="comment">//Configure the timer for periodic mode</span></div><div class="line"><a name="l00102"></a><span class="lineno">  102</span>&#160;    <span class="comment">//and countdown</span></div><div class="line"><a name="l00103"></a><span class="lineno">  103</span>&#160;    TIMER5_TBMR_R = TIMER_TBMR_TBMR_PERIOD;</div><div class="line"><a name="l00104"></a><span class="lineno">  104</span>&#160;</div><div class="line"><a name="l00105"></a><span class="lineno">  105</span>&#160;    <span class="comment">//Load initial timer value</span></div><div class="line"><a name="l00106"></a><span class="lineno">  106</span>&#160;    TIMER5_TBILR_R = 0;</div><div class="line"><a name="l00107"></a><span class="lineno">  107</span>&#160;</div><div class="line"><a name="l00108"></a><span class="lineno">  108</span>&#160;    <span class="comment">//Clear the timeout flag</span></div><div class="line"><a name="l00109"></a><span class="lineno">  109</span>&#160;    TIMER5_ICR_R = TIMER_ICR_TBTOCINT;</div><div class="line"><a name="l00110"></a><span class="lineno">  110</span>&#160;</div><div class="line"><a name="l00111"></a><span class="lineno">  111</span>&#160;    <span class="comment">//Set the prescaler to 16000 (period = 1us)</span></div><div class="line"><a name="l00112"></a><span class="lineno">  112</span>&#160;    TIMER5_TBPR_R = 16000 - 1;</div><div class="line"><a name="l00113"></a><span class="lineno">  113</span>&#160;</div><div class="line"><a name="l00114"></a><span class="lineno">  114</span>&#160;    <span class="comment">//Clear the interrupt mask register</span></div><div class="line"><a name="l00115"></a><span class="lineno">  115</span>&#160;    TIMER5_IMR_R = 0;</div><div class="line"><a name="l00116"></a><span class="lineno">  116</span>&#160;</div><div class="line"><a name="l00117"></a><span class="lineno">  117</span>&#160;    <span class="comment">//Enable Timer5 B</span></div><div class="line"><a name="l00118"></a><span class="lineno">  118</span>&#160;    TIMER5_CTL_R |= TIMER_CTL_TBEN;</div><div class="line"><a name="l00119"></a><span class="lineno">  119</span>&#160;</div><div class="line"><a name="l00120"></a><span class="lineno">  120</span>&#160;    <span class="keywordflow">return</span> TIMER5_TBR_R;</div><div class="line"><a name="l00121"></a><span class="lineno">  121</span>&#160;}</div><div class="line"><a name="l00122"></a><span class="lineno">  122</span>&#160;</div><div class="line"><a name="l00123"></a><span class="lineno">  123</span>&#160;clock_t timer_getClock(<span class="keywordtype">void</span>)</div><div class="line"><a name="l00124"></a><span class="lineno">  124</span>&#160;{</div><div class="line"><a name="l00125"></a><span class="lineno">  125</span>&#160;    <span class="keywordflow">return</span> TIMER5_TBR_R;</div><div class="line"><a name="l00126"></a><span class="lineno">  126</span>&#160;}</div><div class="line"><a name="l00127"></a><span class="lineno">  127</span>&#160;</div><div class="line"><a name="l00128"></a><span class="lineno">  128</span>&#160;<span class="keywordtype">void</span> timer_stopClock(<span class="keywordtype">void</span>)</div><div class="line"><a name="l00129"></a><span class="lineno">  129</span>&#160;{</div><div class="line"><a name="l00130"></a><span class="lineno">  130</span>&#160;    TIMER5_CTL_R &amp;= ~TIMER_CTL_TBEN;</div><div class="line"><a name="l00131"></a><span class="lineno">  131</span>&#160;}</div><div class="ttc" id="timer_8h_html"><div class="ttname"><a href="timer_8h.html">timer.h</a></div><div class="ttdoc">Header file for timer.c Library Functions for pause timer. </div></div>
+<div class="ttc" id="timer_8c_html_a7e2a3b4520e885e5e7d40fa87e242a75"><div class="ttname"><a href="timer_8c.html#a7e2a3b4520e885e5e7d40fa87e242a75">timer_waitMillis</a></div><div class="ttdeci">void timer_waitMillis(uint32_t millis)</div><div class="ttdef"><b>Definition:</b> <a href="timer_8c_source.html#l00015">timer.c:15</a></div></div>
+</div><!-- fragment --></div><!-- contents -->
 </div><!-- doc-content -->
 <!-- start footer part -->
 <div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
   <ul>
-    <li class="navelem"><a class="el" href="dir_d522931ffa1371640980b621734a4381.html">Users</a></li><li class="navelem"><a class="el" href="dir_b324cbc34babe304b9f95739e7202679.html">DonsterLaptop</a></li><li class="navelem"><a class="el" href="dir_e6c4902d624d7a1fd4d40064e095ec38.html">Documents</a></li><li class="navelem"><a class="el" href="dir_cca09f556bdef987ef90adb7ab596965.html">Robot288</a></li><li class="navelem"><a class="el" href="dir_cffdf54b453800c407ef4c3ceba2b426.html">cpre288_generalpurposeautomatedrobot</a></li><li class="navelem"><a class="el" href="dir_c2e164765e5a314cc0de59b27d9c89cd.html">Robot</a></li><li class="navelem"><a class="el" href="dir_af5038295b43384ea1ab75d71dfd6e0e.html">Utils</a></li><li class="navelem"><b>timer.c</b></li>
+    <li class="navelem"><a class="el" href="dir_d522931ffa1371640980b621734a4381.html">Users</a></li><li class="navelem"><a class="el" href="dir_b324cbc34babe304b9f95739e7202679.html">DonsterLaptop</a></li><li class="navelem"><a class="el" href="dir_e6c4902d624d7a1fd4d40064e095ec38.html">Documents</a></li><li class="navelem"><a class="el" href="dir_cca09f556bdef987ef90adb7ab596965.html">Robot288</a></li><li class="navelem"><a class="el" href="dir_cffdf54b453800c407ef4c3ceba2b426.html">cpre288_generalpurposeautomatedrobot</a></li><li class="navelem"><a class="el" href="dir_c2e164765e5a314cc0de59b27d9c89cd.html">Robot</a></li><li class="navelem"><a class="el" href="dir_af5038295b43384ea1ab75d71dfd6e0e.html">Utils</a></li><li class="navelem"><a class="el" href="timer_8c.html">timer.c</a></li>
     <li class="footer">Generated by
     <a href="http://www.doxygen.org/index.html">
     <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.14 </li>
diff --git a/Doxygen/html/timer_8h_source.html b/Doxygen/html/timer_8h_source.html
index e3e0955e5bcf1f90d9f2d1a3ae4cf1c020195968..207c1a93bddc7a2c3da37dff2627be87f3711de5 100644
--- a/Doxygen/html/timer_8h_source.html
+++ b/Doxygen/html/timer_8h_source.html
@@ -92,12 +92,13 @@ $(document).ready(function(){initNavTree('timer_8h_source.html','');});
 <div class="title">timer.h</div>  </div>
 </div><!--header-->
 <div class="contents">
-<div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno">    1</span>&#160;<span class="comment">/*</span></div><div class="line"><a name="l00002"></a><span class="lineno">    2</span>&#160;<span class="comment"> *      @file   timer.h</span></div><div class="line"><a name="l00003"></a><span class="lineno">    3</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00004"></a><span class="lineno">    4</span>&#160;<span class="comment"> *      @brief  Header file for timer.c</span></div><div class="line"><a name="l00005"></a><span class="lineno">    5</span>&#160;<span class="comment"> *              Library Functions for pause timer</span></div><div class="line"><a name="l00006"></a><span class="lineno">    6</span>&#160;<span class="comment"> *  Created on: Mar 3, 2016</span></div><div class="line"><a name="l00007"></a><span class="lineno">    7</span>&#160;<span class="comment"> *      Author: ericm</span></div><div class="line"><a name="l00008"></a><span class="lineno">    8</span>&#160;<span class="comment"> */</span></div><div class="line"><a name="l00009"></a><span class="lineno">    9</span>&#160;</div><div class="line"><a name="l00010"></a><span class="lineno">   10</span>&#160;<span class="preprocessor">#ifndef TIMER_H_</span></div><div class="line"><a name="l00011"></a><span class="lineno">   11</span>&#160;<span class="preprocessor">#define TIMER_H_</span></div><div class="line"><a name="l00012"></a><span class="lineno">   12</span>&#160;</div><div class="line"><a name="l00013"></a><span class="lineno">   13</span>&#160;<span class="preprocessor">#include &lt;stdint.h&gt;</span></div><div class="line"><a name="l00014"></a><span class="lineno">   14</span>&#160;</div><div class="line"><a name="l00015"></a><span class="lineno">   15</span>&#160;<span class="preprocessor">#define BIT0        0x01</span></div><div class="line"><a name="l00016"></a><span class="lineno">   16</span>&#160;<span class="preprocessor">#define BIT1        0x02</span></div><div class="line"><a name="l00017"></a><span class="lineno">   17</span>&#160;<span class="preprocessor">#define BIT2        0x04</span></div><div class="line"><a name="l00018"></a><span class="lineno">   18</span>&#160;<span class="preprocessor">#define BIT3        0x08</span></div><div class="line"><a name="l00019"></a><span class="lineno">   19</span>&#160;<span class="preprocessor">#define BIT4        0x10</span></div><div class="line"><a name="l00020"></a><span class="lineno">   20</span>&#160;<span class="preprocessor">#define BIT5        0x20</span></div><div class="line"><a name="l00021"></a><span class="lineno">   21</span>&#160;<span class="preprocessor">#define BIT6        0x40</span></div><div class="line"><a name="l00022"></a><span class="lineno">   22</span>&#160;<span class="preprocessor">#define BIT7        0x80</span></div><div class="line"><a name="l00023"></a><span class="lineno">   23</span>&#160;</div><div class="line"><a name="l00024"></a><span class="lineno">   24</span>&#160;<span class="keyword">typedef</span> uint32_t clock_t;</div><div class="line"><a name="l00025"></a><span class="lineno">   25</span>&#160;</div><div class="line"><a name="l00026"></a><span class="lineno">   26</span>&#160;<span class="preprocessor">#include &lt;inc/tm4c123gh6pm.h&gt;</span></div><div class="line"><a name="l00027"></a><span class="lineno">   27</span>&#160;<span class="preprocessor">#include &lt;stdint.h&gt;</span></div><div class="line"><a name="l00028"></a><span class="lineno">   28</span>&#160;</div><div class="line"><a name="l00029"></a><span class="lineno">   29</span>&#160;<span class="keyword">extern</span> <span class="keyword">volatile</span> uint32_t _timer_ticks;</div><div class="line"><a name="l00030"></a><span class="lineno">   30</span>&#160;</div><div class="line"><a name="l00031"></a><span class="lineno">   31</span>&#160;<span class="keywordtype">void</span> timer_waitMillis(uint32_t millis);</div><div class="line"><a name="l00032"></a><span class="lineno">   32</span>&#160;</div><div class="line"><a name="l00033"></a><span class="lineno">   33</span>&#160;<span class="keywordtype">void</span> timer_waitMicros(uint16_t micros);</div><div class="line"><a name="l00034"></a><span class="lineno">   34</span>&#160;</div><div class="line"><a name="l00035"></a><span class="lineno">   35</span>&#160;<span class="keywordtype">void</span> timer_startTimer(uint16_t startValue);</div><div class="line"><a name="l00036"></a><span class="lineno">   36</span>&#160;</div><div class="line"><a name="l00037"></a><span class="lineno">   37</span>&#160;<span class="keywordtype">void</span> timer_stopTimer(<span class="keywordtype">void</span>);</div><div class="line"><a name="l00038"></a><span class="lineno">   38</span>&#160;</div><div class="line"><a name="l00039"></a><span class="lineno">   39</span>&#160;clock_t timer_startClock(<span class="keywordtype">void</span>);</div><div class="line"><a name="l00040"></a><span class="lineno">   40</span>&#160;</div><div class="line"><a name="l00041"></a><span class="lineno">   41</span>&#160;clock_t timer_getClock(<span class="keywordtype">void</span>);</div><div class="line"><a name="l00042"></a><span class="lineno">   42</span>&#160;</div><div class="line"><a name="l00043"></a><span class="lineno">   43</span>&#160;<span class="keywordtype">void</span> timer_stopClock(<span class="keywordtype">void</span>);</div><div class="line"><a name="l00044"></a><span class="lineno">   44</span>&#160;</div><div class="line"><a name="l00045"></a><span class="lineno">   45</span>&#160;<span class="preprocessor">#endif </span><span class="comment">/* TIMER_H_ */</span><span class="preprocessor"></span></div></div><!-- fragment --></div><!-- contents -->
+<a href="timer_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno">    1</span>&#160;</div><div class="line"><a name="l00012"></a><span class="lineno">   12</span>&#160;<span class="preprocessor">#ifndef TIMER_H_</span></div><div class="line"><a name="l00013"></a><span class="lineno">   13</span>&#160;<span class="preprocessor">#define TIMER_H_</span></div><div class="line"><a name="l00014"></a><span class="lineno">   14</span>&#160;</div><div class="line"><a name="l00015"></a><span class="lineno">   15</span>&#160;<span class="preprocessor">#include &lt;stdint.h&gt;</span></div><div class="line"><a name="l00016"></a><span class="lineno">   16</span>&#160;</div><div class="line"><a name="l00017"></a><span class="lineno">   17</span>&#160;<span class="preprocessor">#define BIT0        0x01</span></div><div class="line"><a name="l00018"></a><span class="lineno">   18</span>&#160;<span class="preprocessor">#define BIT1        0x02</span></div><div class="line"><a name="l00019"></a><span class="lineno">   19</span>&#160;<span class="preprocessor">#define BIT2        0x04</span></div><div class="line"><a name="l00020"></a><span class="lineno">   20</span>&#160;<span class="preprocessor">#define BIT3        0x08</span></div><div class="line"><a name="l00021"></a><span class="lineno">   21</span>&#160;<span class="preprocessor">#define BIT4        0x10</span></div><div class="line"><a name="l00022"></a><span class="lineno">   22</span>&#160;<span class="preprocessor">#define BIT5        0x20</span></div><div class="line"><a name="l00023"></a><span class="lineno">   23</span>&#160;<span class="preprocessor">#define BIT6        0x40</span></div><div class="line"><a name="l00024"></a><span class="lineno">   24</span>&#160;<span class="preprocessor">#define BIT7        0x80</span></div><div class="line"><a name="l00025"></a><span class="lineno">   25</span>&#160;</div><div class="line"><a name="l00026"></a><span class="lineno">   26</span>&#160;<span class="keyword">typedef</span> uint32_t clock_t;</div><div class="line"><a name="l00027"></a><span class="lineno">   27</span>&#160;</div><div class="line"><a name="l00028"></a><span class="lineno">   28</span>&#160;<span class="preprocessor">#include &lt;inc/tm4c123gh6pm.h&gt;</span></div><div class="line"><a name="l00029"></a><span class="lineno">   29</span>&#160;<span class="preprocessor">#include &lt;stdint.h&gt;</span></div><div class="line"><a name="l00030"></a><span class="lineno">   30</span>&#160;</div><div class="line"><a name="l00031"></a><span class="lineno">   31</span>&#160;<span class="keyword">extern</span> <span class="keyword">volatile</span> uint32_t _timer_ticks;</div><div class="line"><a name="l00032"></a><span class="lineno">   32</span>&#160;</div><div class="line"><a name="l00033"></a><span class="lineno">   33</span>&#160;<span class="keywordtype">void</span> <a class="code" href="timer_8h.html#a7e2a3b4520e885e5e7d40fa87e242a75">timer_waitMillis</a>(uint32_t millis);</div><div class="line"><a name="l00034"></a><span class="lineno">   34</span>&#160;</div><div class="line"><a name="l00035"></a><span class="lineno">   35</span>&#160;<span class="keywordtype">void</span> timer_waitMicros(uint16_t micros);</div><div class="line"><a name="l00036"></a><span class="lineno">   36</span>&#160;</div><div class="line"><a name="l00037"></a><span class="lineno">   37</span>&#160;<span class="keywordtype">void</span> timer_startTimer(uint16_t startValue);</div><div class="line"><a name="l00038"></a><span class="lineno">   38</span>&#160;</div><div class="line"><a name="l00039"></a><span class="lineno">   39</span>&#160;<span class="keywordtype">void</span> timer_stopTimer(<span class="keywordtype">void</span>);</div><div class="line"><a name="l00040"></a><span class="lineno">   40</span>&#160;</div><div class="line"><a name="l00041"></a><span class="lineno">   41</span>&#160;clock_t timer_startClock(<span class="keywordtype">void</span>);</div><div class="line"><a name="l00042"></a><span class="lineno">   42</span>&#160;</div><div class="line"><a name="l00043"></a><span class="lineno">   43</span>&#160;clock_t timer_getClock(<span class="keywordtype">void</span>);</div><div class="line"><a name="l00044"></a><span class="lineno">   44</span>&#160;</div><div class="line"><a name="l00045"></a><span class="lineno">   45</span>&#160;<span class="keywordtype">void</span> timer_stopClock(<span class="keywordtype">void</span>);</div><div class="line"><a name="l00046"></a><span class="lineno">   46</span>&#160;</div><div class="line"><a name="l00047"></a><span class="lineno">   47</span>&#160;<span class="preprocessor">#endif </span><span class="comment">/* TIMER_H_ */</span><span class="preprocessor"></span></div><div class="ttc" id="timer_8h_html_a7e2a3b4520e885e5e7d40fa87e242a75"><div class="ttname"><a href="timer_8h.html#a7e2a3b4520e885e5e7d40fa87e242a75">timer_waitMillis</a></div><div class="ttdeci">void timer_waitMillis(uint32_t millis)</div><div class="ttdef"><b>Definition:</b> <a href="timer_8c_source.html#l00015">timer.c:15</a></div></div>
+</div><!-- fragment --></div><!-- contents -->
 </div><!-- doc-content -->
 <!-- start footer part -->
 <div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
   <ul>
-    <li class="navelem"><a class="el" href="dir_d522931ffa1371640980b621734a4381.html">Users</a></li><li class="navelem"><a class="el" href="dir_b324cbc34babe304b9f95739e7202679.html">DonsterLaptop</a></li><li class="navelem"><a class="el" href="dir_e6c4902d624d7a1fd4d40064e095ec38.html">Documents</a></li><li class="navelem"><a class="el" href="dir_cca09f556bdef987ef90adb7ab596965.html">Robot288</a></li><li class="navelem"><a class="el" href="dir_cffdf54b453800c407ef4c3ceba2b426.html">cpre288_generalpurposeautomatedrobot</a></li><li class="navelem"><a class="el" href="dir_c2e164765e5a314cc0de59b27d9c89cd.html">Robot</a></li><li class="navelem"><a class="el" href="dir_af5038295b43384ea1ab75d71dfd6e0e.html">Utils</a></li><li class="navelem"><b>timer.h</b></li>
+    <li class="navelem"><a class="el" href="dir_d522931ffa1371640980b621734a4381.html">Users</a></li><li class="navelem"><a class="el" href="dir_b324cbc34babe304b9f95739e7202679.html">DonsterLaptop</a></li><li class="navelem"><a class="el" href="dir_e6c4902d624d7a1fd4d40064e095ec38.html">Documents</a></li><li class="navelem"><a class="el" href="dir_cca09f556bdef987ef90adb7ab596965.html">Robot288</a></li><li class="navelem"><a class="el" href="dir_cffdf54b453800c407ef4c3ceba2b426.html">cpre288_generalpurposeautomatedrobot</a></li><li class="navelem"><a class="el" href="dir_c2e164765e5a314cc0de59b27d9c89cd.html">Robot</a></li><li class="navelem"><a class="el" href="dir_af5038295b43384ea1ab75d71dfd6e0e.html">Utils</a></li><li class="navelem"><a class="el" href="timer_8h.html">timer.h</a></li>
     <li class="footer">Generated by
     <a href="http://www.doxygen.org/index.html">
     <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.14 </li>
diff --git a/Doxygen/html/uart_8c_source.html b/Doxygen/html/uart_8c_source.html
index 57ff39c8e32c86b78124969c9a39663563b06ff6..a8cac298fac231e4fbe4c68e51fbd99b3723a49a 100644
--- a/Doxygen/html/uart_8c_source.html
+++ b/Doxygen/html/uart_8c_source.html
@@ -92,16 +92,18 @@ $(document).ready(function(){initNavTree('uart_8c_source.html','');});
 <div class="title">uart.c</div>  </div>
 </div><!--header-->
 <div class="contents">
-<a href="uart_8c.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno">    1</span>&#160;</div><div class="line"><a name="l00015"></a><span class="lineno">   15</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="uart_8h.html">Communication/uart.h</a>&quot;</span></div><div class="line"><a name="l00016"></a><span class="lineno">   16</span>&#160;<span class="preprocessor">#include &quot;Utils/lcd.h&quot;</span></div><div class="line"><a name="l00017"></a><span class="lineno">   17</span>&#160;<span class="preprocessor">#include &lt;math.h&gt;</span></div><div class="line"><a name="l00018"></a><span class="lineno">   18</span>&#160;</div><div class="line"><a name="l00019"></a><span class="lineno">   19</span>&#160;<span class="preprocessor">#define SYSTEM_CLOCK_Hz 16000000    // 16 MHz</span></div><div class="line"><a name="l00020"></a><span class="lineno">   20</span>&#160;<span class="preprocessor">#define CLOCK_DIV 16                // Clock divider being used</span></div><div class="line"><a name="l00021"></a><span class="lineno">   21</span>&#160;</div><div class="line"><a name="l00022"></a><span class="lineno">   22</span>&#160;<span class="preprocessor">#define BAUD_RATE 115200            // Baud rate for Wi-Fi communications</span></div><div class="line"><a name="l00023"></a><span class="lineno">   23</span>&#160;<span class="comment">//#define BAUD_RATE 9600              // Baud rate for serial (RS232) communications</span></div><div class="line"><a name="l00024"></a><span class="lineno">   24</span>&#160;</div><div class="line"><a name="l00025"></a><span class="lineno">   25</span>&#160;<span class="keywordtype">void</span> UART1_Handler(<span class="keywordtype">void</span>)</div><div class="line"><a name="l00026"></a><span class="lineno">   26</span>&#160;{</div><div class="line"><a name="l00027"></a><span class="lineno">   27</span>&#160;</div><div class="line"><a name="l00028"></a><span class="lineno">   28</span>&#160;    <span class="keywordtype">char</span> current_letter = 0; <span class="comment">//Initialize the last character</span></div><div class="line"><a name="l00029"></a><span class="lineno">   29</span>&#160;    current_letter = <a class="code" href="uart_8c.html#a2cb93233c32004f54ac6103ac25ef64d">uart_receive</a>(); <span class="comment">//Receive character in UART</span></div><div class="line"><a name="l00030"></a><span class="lineno">   30</span>&#160;    <span class="keywordflow">if</span> (current_letter == <span class="charliteral">&#39;\n&#39;</span>)</div><div class="line"><a name="l00031"></a><span class="lineno">   31</span>&#160;        <a class="code" href="uart_8c.html#a58d025fdfe1c8f521e1fa2a628cfa21d">uart_read</a>(); <span class="comment">//If the last character is return line, send to LastLine and clear buffer</span></div><div class="line"><a name="l00032"></a><span class="lineno">   32</span>&#160;    <span class="keywordflow">else</span></div><div class="line"><a name="l00033"></a><span class="lineno">   33</span>&#160;    {</div><div class="line"><a name="l00034"></a><span class="lineno">   34</span>&#160;        <a class="code" href="uart_8h.html#aff2566f4c366b48d73479bef43ee4d2e">buffer</a>[strlen(<a class="code" href="uart_8h.html#aff2566f4c366b48d73479bef43ee4d2e">buffer</a>)] = current_letter; <span class="comment">//Next character is set to the receive</span></div><div class="line"><a name="l00035"></a><span class="lineno">   35</span>&#160;    }</div><div class="line"><a name="l00036"></a><span class="lineno">   36</span>&#160;    UART1_ICR_R |= (0x10); <span class="comment">//Reset the UART READ FLAG</span></div><div class="line"><a name="l00037"></a><span class="lineno">   37</span>&#160;</div><div class="line"><a name="l00038"></a><span class="lineno">   38</span>&#160;}</div><div class="line"><a name="l00039"></a><span class="lineno">   39</span>&#160;</div><div class="line"><a name="l00040"></a><span class="lineno"><a class="line" href="uart_8h.html#a58d025fdfe1c8f521e1fa2a628cfa21d">   40</a></span>&#160;<span class="keywordtype">void</span> <a class="code" href="uart_8c.html#a58d025fdfe1c8f521e1fa2a628cfa21d">uart_read</a>()</div><div class="line"><a name="l00041"></a><span class="lineno">   41</span>&#160;{</div><div class="line"><a name="l00042"></a><span class="lineno">   42</span>&#160;    memcpy(<a class="code" href="uart_8h.html#af1bf0c65f126ec15b3204246afdc614e">LastLine</a>, <a class="code" href="uart_8h.html#aff2566f4c366b48d73479bef43ee4d2e">buffer</a>, 100); <span class="comment">//Copy buffer to LastLine</span></div><div class="line"><a name="l00043"></a><span class="lineno">   43</span>&#160;    memset(<a class="code" href="uart_8h.html#aff2566f4c366b48d73479bef43ee4d2e">buffer</a>, 0, 100); <span class="comment">//clear the buffer</span></div><div class="line"><a name="l00044"></a><span class="lineno">   44</span>&#160;</div><div class="line"><a name="l00045"></a><span class="lineno">   45</span>&#160;}</div><div class="line"><a name="l00046"></a><span class="lineno">   46</span>&#160;</div><div class="line"><a name="l00047"></a><span class="lineno"><a class="line" href="uart_8h.html#a8be40187644dacbc28cabbc673a36bff">   47</a></span>&#160;<span class="keywordtype">void</span> <a class="code" href="uart_8c.html#a8be40187644dacbc28cabbc673a36bff">uart_clear</a>()</div><div class="line"><a name="l00048"></a><span class="lineno">   48</span>&#160;{</div><div class="line"><a name="l00049"></a><span class="lineno">   49</span>&#160;    memset(<a class="code" href="uart_8h.html#af1bf0c65f126ec15b3204246afdc614e">LastLine</a>, 0, 100); <span class="comment">//clear the LastLine</span></div><div class="line"><a name="l00050"></a><span class="lineno">   50</span>&#160;}</div><div class="line"><a name="l00051"></a><span class="lineno">   51</span>&#160;</div><div class="line"><a name="l00052"></a><span class="lineno"><a class="line" href="uart_8h.html#a0c0ca72359ddf28dcd15900dfba19343">   52</a></span>&#160;<span class="keywordtype">void</span> <a class="code" href="uart_8c.html#a0c0ca72359ddf28dcd15900dfba19343">uart_init</a>(<span class="keywordtype">void</span>)</div><div class="line"><a name="l00053"></a><span class="lineno">   53</span>&#160;{</div><div class="line"><a name="l00054"></a><span class="lineno">   54</span>&#160;</div><div class="line"><a name="l00055"></a><span class="lineno">   55</span>&#160;    <a class="code" href="uart_8h.html#aff2566f4c366b48d73479bef43ee4d2e">buffer</a> = malloc(1024); <span class="comment">//Set aside 1024 bytes for the buffer</span></div><div class="line"><a name="l00056"></a><span class="lineno">   56</span>&#160;    memset(<a class="code" href="uart_8h.html#aff2566f4c366b48d73479bef43ee4d2e">buffer</a>, 0, 1024);</div><div class="line"><a name="l00057"></a><span class="lineno">   57</span>&#160;    <a class="code" href="uart_8h.html#af1bf0c65f126ec15b3204246afdc614e">LastLine</a> = (<span class="keywordtype">char</span>*) malloc(100); <span class="comment">//Set aside 100 bytes for the LastLine</span></div><div class="line"><a name="l00058"></a><span class="lineno">   58</span>&#160;    <span class="comment">// Enable &amp; Provide a clock to GPIO Port B in Run mode</span></div><div class="line"><a name="l00059"></a><span class="lineno">   59</span>&#160;    SYSCTL_RCGCGPIO_R |= 0x02;</div><div class="line"><a name="l00060"></a><span class="lineno">   60</span>&#160;    <span class="comment">// Enable clock to UART1</span></div><div class="line"><a name="l00061"></a><span class="lineno">   61</span>&#160;    SYSCTL_RCGCUART_R |= 0x02;</div><div class="line"><a name="l00062"></a><span class="lineno">   62</span>&#160;</div><div class="line"><a name="l00063"></a><span class="lineno">   63</span>&#160;    timer_waitMillis(1); <span class="comment">// Small delay</span></div><div class="line"><a name="l00064"></a><span class="lineno">   64</span>&#160;</div><div class="line"><a name="l00065"></a><span class="lineno">   65</span>&#160;    <span class="comment">// Set Port B pins 0 and 1 to their alternative function</span></div><div class="line"><a name="l00066"></a><span class="lineno">   66</span>&#160;    GPIO_PORTB_AFSEL_R |= 0x03;</div><div class="line"><a name="l00067"></a><span class="lineno">   67</span>&#160;    <span class="comment">// Enable Rx and Tx:</span></div><div class="line"><a name="l00068"></a><span class="lineno">   68</span>&#160;    <span class="comment">// Set Port B pins 0 and 1 to U1Rx and U1Tx, respectively</span></div><div class="line"><a name="l00069"></a><span class="lineno">   69</span>&#160;    GPIO_PORTB_PCTL_R &amp;= 0xFFFFFF00;    <span class="comment">//Force 0&#39;s at desired locations</span></div><div class="line"><a name="l00070"></a><span class="lineno">   70</span>&#160;    GPIO_PORTB_PCTL_R |= 0x00000011;    <span class="comment">// Force 1&#39;s at desired locations</span></div><div class="line"><a name="l00071"></a><span class="lineno">   71</span>&#160;    <span class="comment">// Enable pins 0 and 1 for Port B</span></div><div class="line"><a name="l00072"></a><span class="lineno">   72</span>&#160;    GPIO_PORTB_DEN_R |= 0x3;</div><div class="line"><a name="l00073"></a><span class="lineno">   73</span>&#160;    <span class="comment">// Set pin 0 (U1Rx) to input and pin 1 (U1Tx) to output</span></div><div class="line"><a name="l00074"></a><span class="lineno">   74</span>&#160;    GPIO_PORTB_DIR_R &amp;= ~0x2;   <span class="comment">// Force 0&#39;s at desired locations</span></div><div class="line"><a name="l00075"></a><span class="lineno">   75</span>&#160;    GPIO_PORTB_DIR_R |= 0x2;    <span class="comment">// Force 1&#39;s at desired locations</span></div><div class="line"><a name="l00076"></a><span class="lineno">   76</span>&#160;</div><div class="line"><a name="l00077"></a><span class="lineno">   77</span>&#160;    <span class="comment">// Calculate Baud Rate Divisor</span></div><div class="line"><a name="l00078"></a><span class="lineno">   78</span>&#160;    <span class="comment">// See section 14.3.2 of datasheet (page 896)</span></div><div class="line"><a name="l00079"></a><span class="lineno">   79</span>&#160;    <span class="keywordtype">double</span> BRD = SYSTEM_CLOCK_Hz / (double) (CLOCK_DIV * BAUD_RATE);</div><div class="line"><a name="l00080"></a><span class="lineno">   80</span>&#160;</div><div class="line"><a name="l00081"></a><span class="lineno">   81</span>&#160;    <span class="keywordtype">double</span> iPart, fPart;</div><div class="line"><a name="l00082"></a><span class="lineno">   82</span>&#160;</div><div class="line"><a name="l00083"></a><span class="lineno">   83</span>&#160;    fPart = modf(BRD, &amp;iPart);</div><div class="line"><a name="l00084"></a><span class="lineno">   84</span>&#160;</div><div class="line"><a name="l00085"></a><span class="lineno">   85</span>&#160;    uint16_t iBRD = iPart;  <span class="comment">// Integer part of BRD</span></div><div class="line"><a name="l00086"></a><span class="lineno">   86</span>&#160;    uint16_t fBRD = fPart * 64 + 0.5;   <span class="comment">// Fractional part of BRD</span></div><div class="line"><a name="l00087"></a><span class="lineno">   87</span>&#160;</div><div class="line"><a name="l00088"></a><span class="lineno">   88</span>&#160;    <span class="comment">// Disable UART1 for configuration</span></div><div class="line"><a name="l00089"></a><span class="lineno">   89</span>&#160;    UART1_CTL_R &amp;= ~0x1;</div><div class="line"><a name="l00090"></a><span class="lineno">   90</span>&#160;    <span class="comment">// Set UART1 baud rate</span></div><div class="line"><a name="l00091"></a><span class="lineno">   91</span>&#160;    UART1_IBRD_R = iBRD;</div><div class="line"><a name="l00092"></a><span class="lineno">   92</span>&#160;    UART1_FBRD_R = fBRD;</div><div class="line"><a name="l00093"></a><span class="lineno">   93</span>&#160;    <span class="comment">// Set frame: 8 data bits, 1 stop bit, no parity, no FIFO</span></div><div class="line"><a name="l00094"></a><span class="lineno">   94</span>&#160;    UART1_LCRH_R &amp;= ~0xFF;</div><div class="line"><a name="l00095"></a><span class="lineno">   95</span>&#160;    UART1_LCRH_R |= 0x60;</div><div class="line"><a name="l00096"></a><span class="lineno">   96</span>&#160;    <span class="comment">// Set system clock as UART Baud Clock Source</span></div><div class="line"><a name="l00097"></a><span class="lineno">   97</span>&#160;    UART1_CC_R = 0x0;</div><div class="line"><a name="l00098"></a><span class="lineno">   98</span>&#160;</div><div class="line"><a name="l00099"></a><span class="lineno">   99</span>&#160;    UART1_IM_R &amp;= 0xFFFFE80D; <span class="comment">// set relavent values to zero for mask</span></div><div class="line"><a name="l00100"></a><span class="lineno">  100</span>&#160;    UART1_IM_R |= 0x00000010; <span class="comment">// set the mask for interrupt on read</span></div><div class="line"><a name="l00101"></a><span class="lineno">  101</span>&#160;    UART1_ICR_R |= (0x10);    <span class="comment">//Clear the read flag</span></div><div class="line"><a name="l00102"></a><span class="lineno">  102</span>&#160;    NVIC_EN0_R |= (1 &lt;&lt; 6);   <span class="comment">//Enable the interrupt for UART1</span></div><div class="line"><a name="l00103"></a><span class="lineno">  103</span>&#160;</div><div class="line"><a name="l00104"></a><span class="lineno">  104</span>&#160;    IntRegister(INT_UART1, UART1_Handler);</div><div class="line"><a name="l00105"></a><span class="lineno">  105</span>&#160;</div><div class="line"><a name="l00106"></a><span class="lineno">  106</span>&#160;    IntMasterEnable(); <span class="comment">//Initialize global interrupts</span></div><div class="line"><a name="l00107"></a><span class="lineno">  107</span>&#160;</div><div class="line"><a name="l00108"></a><span class="lineno">  108</span>&#160;    <span class="comment">// Re-enable UART1</span></div><div class="line"><a name="l00109"></a><span class="lineno">  109</span>&#160;    UART1_CTL_R |= 0x1; <span class="comment">// Rx &amp; Tx are enabled on reset</span></div><div class="line"><a name="l00110"></a><span class="lineno">  110</span>&#160;</div><div class="line"><a name="l00111"></a><span class="lineno">  111</span>&#160;}</div><div class="line"><a name="l00112"></a><span class="lineno">  112</span>&#160;</div><div class="line"><a name="l00113"></a><span class="lineno"><a class="line" href="uart_8h.html#a1bb761703934038d7820c4e7a92896c8">  113</a></span>&#160;<span class="keywordtype">void</span> <a class="code" href="uart_8c.html#a1bb761703934038d7820c4e7a92896c8">uart_sendChar</a>(<span class="keywordtype">char</span> <a class="code" href="movementcommands_8c.html#a91a70b77df95bd8b0830b49a094c2acb">data</a>)</div><div class="line"><a name="l00114"></a><span class="lineno">  114</span>&#160;{</div><div class="line"><a name="l00115"></a><span class="lineno">  115</span>&#160;</div><div class="line"><a name="l00116"></a><span class="lineno">  116</span>&#160;    <span class="comment">// Wait until there is room to send data</span></div><div class="line"><a name="l00117"></a><span class="lineno">  117</span>&#160;    <span class="keywordflow">while</span> ((UART1_FR_R &amp; 0x20))</div><div class="line"><a name="l00118"></a><span class="lineno">  118</span>&#160;        ;</div><div class="line"><a name="l00119"></a><span class="lineno">  119</span>&#160;    <span class="comment">// Send data</span></div><div class="line"><a name="l00120"></a><span class="lineno">  120</span>&#160;    UART1_DR_R = <a class="code" href="movementcommands_8c.html#a91a70b77df95bd8b0830b49a094c2acb">data</a>;</div><div class="line"><a name="l00121"></a><span class="lineno">  121</span>&#160;</div><div class="line"><a name="l00122"></a><span class="lineno">  122</span>&#160;}</div><div class="line"><a name="l00123"></a><span class="lineno">  123</span>&#160;</div><div class="line"><a name="l00124"></a><span class="lineno"><a class="line" href="uart_8h.html#a2cb93233c32004f54ac6103ac25ef64d">  124</a></span>&#160;<span class="keywordtype">char</span> <a class="code" href="uart_8c.html#a2cb93233c32004f54ac6103ac25ef64d">uart_receive</a>(<span class="keywordtype">void</span>)</div><div class="line"><a name="l00125"></a><span class="lineno">  125</span>&#160;{</div><div class="line"><a name="l00126"></a><span class="lineno">  126</span>&#160;    <span class="comment">// Wait for data to receive</span></div><div class="line"><a name="l00127"></a><span class="lineno">  127</span>&#160;    <span class="keywordflow">while</span> (UART1_FR_R &amp; 0x10)</div><div class="line"><a name="l00128"></a><span class="lineno">  128</span>&#160;        ;</div><div class="line"><a name="l00129"></a><span class="lineno">  129</span>&#160;    <span class="comment">// Mask the 4 error bits to grab only the 8 data bits</span></div><div class="line"><a name="l00130"></a><span class="lineno">  130</span>&#160;    <span class="keywordflow">return</span> (UART1_DR_R &amp; 0xFF);</div><div class="line"><a name="l00131"></a><span class="lineno">  131</span>&#160;}</div><div class="line"><a name="l00132"></a><span class="lineno">  132</span>&#160;</div><div class="line"><a name="l00133"></a><span class="lineno"><a class="line" href="uart_8h.html#af96d1ce52b8a52eabc606489d31351e9">  133</a></span>&#160;<span class="keywordtype">void</span> <a class="code" href="uart_8c.html#af96d1ce52b8a52eabc606489d31351e9">uart_sendStr</a>(<span class="keyword">const</span> <span class="keywordtype">char</span> *<a class="code" href="movementcommands_8c.html#a91a70b77df95bd8b0830b49a094c2acb">data</a>)</div><div class="line"><a name="l00134"></a><span class="lineno">  134</span>&#160;{</div><div class="line"><a name="l00135"></a><span class="lineno">  135</span>&#160;</div><div class="line"><a name="l00136"></a><span class="lineno">  136</span>&#160;    <span class="comment">// Iterate through the string and send each character until</span></div><div class="line"><a name="l00137"></a><span class="lineno">  137</span>&#160;    <span class="comment">// the end of the string (null byte) is reached</span></div><div class="line"><a name="l00138"></a><span class="lineno">  138</span>&#160;</div><div class="line"><a name="l00139"></a><span class="lineno">  139</span>&#160;    <span class="keywordflow">while</span> (*<a class="code" href="movementcommands_8c.html#a91a70b77df95bd8b0830b49a094c2acb">data</a> != <span class="charliteral">&#39;\0&#39;</span>)</div><div class="line"><a name="l00140"></a><span class="lineno">  140</span>&#160;    {</div><div class="line"><a name="l00141"></a><span class="lineno">  141</span>&#160;        <span class="comment">// Send the nth char in the string over UART</span></div><div class="line"><a name="l00142"></a><span class="lineno">  142</span>&#160;        <a class="code" href="uart_8c.html#a1bb761703934038d7820c4e7a92896c8">uart_sendChar</a>(*<a class="code" href="movementcommands_8c.html#a91a70b77df95bd8b0830b49a094c2acb">data</a>);</div><div class="line"><a name="l00143"></a><span class="lineno">  143</span>&#160;        <span class="comment">// Move pointer to the next char in the array</span></div><div class="line"><a name="l00144"></a><span class="lineno">  144</span>&#160;        <a class="code" href="movementcommands_8c.html#a91a70b77df95bd8b0830b49a094c2acb">data</a>++;</div><div class="line"><a name="l00145"></a><span class="lineno">  145</span>&#160;    }</div><div class="line"><a name="l00146"></a><span class="lineno">  146</span>&#160;</div><div class="line"><a name="l00147"></a><span class="lineno">  147</span>&#160;    <span class="comment">// Note: for reference see lcd_puts from lcd.c file</span></div><div class="line"><a name="l00148"></a><span class="lineno">  148</span>&#160;}</div><div class="line"><a name="l00149"></a><span class="lineno">  149</span>&#160;</div><div class="line"><a name="l00150"></a><span class="lineno"><a class="line" href="uart_8h.html#a8ed365abbf581c32e90ed632bf60f88e">  150</a></span>&#160;<span class="keywordtype">void</span> <a class="code" href="uart_8c.html#a8ed365abbf581c32e90ed632bf60f88e">uart_sendStrLen</a>(<span class="keyword">const</span> <span class="keywordtype">char</span> *<a class="code" href="movementcommands_8c.html#a91a70b77df95bd8b0830b49a094c2acb">data</a>, <span class="keywordtype">int</span> length)</div><div class="line"><a name="l00151"></a><span class="lineno">  151</span>&#160;{</div><div class="line"><a name="l00152"></a><span class="lineno">  152</span>&#160;    <span class="keywordtype">int</span> i;</div><div class="line"><a name="l00153"></a><span class="lineno">  153</span>&#160;    <span class="keywordflow">for</span> (i = 0; i &lt; length; ++i)</div><div class="line"><a name="l00154"></a><span class="lineno">  154</span>&#160;    {</div><div class="line"><a name="l00155"></a><span class="lineno">  155</span>&#160;        <a class="code" href="uart_8c.html#a1bb761703934038d7820c4e7a92896c8">uart_sendChar</a>(*<a class="code" href="movementcommands_8c.html#a91a70b77df95bd8b0830b49a094c2acb">data</a>); <span class="comment">//Send character</span></div><div class="line"><a name="l00156"></a><span class="lineno">  156</span>&#160;        *<a class="code" href="movementcommands_8c.html#a91a70b77df95bd8b0830b49a094c2acb">data</a>++; <span class="comment">//Increment to the next.</span></div><div class="line"><a name="l00157"></a><span class="lineno">  157</span>&#160;    }</div><div class="line"><a name="l00158"></a><span class="lineno">  158</span>&#160;}</div><div class="line"><a name="l00159"></a><span class="lineno">  159</span>&#160;</div><div class="line"><a name="l00160"></a><span class="lineno"><a class="line" href="uart_8h.html#a46df527ddf86c0ebfe750173a41dd4d3">  160</a></span>&#160;<span class="keywordtype">char</span> * <a class="code" href="uart_8c.html#a46df527ddf86c0ebfe750173a41dd4d3">getLastLine</a>()</div><div class="line"><a name="l00161"></a><span class="lineno">  161</span>&#160;{</div><div class="line"><a name="l00162"></a><span class="lineno">  162</span>&#160;</div><div class="line"><a name="l00163"></a><span class="lineno">  163</span>&#160;    <span class="keywordflow">return</span> <a class="code" href="uart_8h.html#af1bf0c65f126ec15b3204246afdc614e">LastLine</a>; <span class="comment">//Return the Character string</span></div><div class="line"><a name="l00164"></a><span class="lineno">  164</span>&#160;}</div><div class="line"><a name="l00165"></a><span class="lineno">  165</span>&#160;</div><div class="ttc" id="uart_8h_html"><div class="ttname"><a href="uart_8h.html">uart.h</a></div><div class="ttdoc">Header file for uart.c Used to set up the RS232 connector and WIFI module uses UART1 at 115200...</div></div>
-<div class="ttc" id="uart_8h_html_af1bf0c65f126ec15b3204246afdc614e"><div class="ttname"><a href="uart_8h.html#af1bf0c65f126ec15b3204246afdc614e">LastLine</a></div><div class="ttdeci">char * LastLine</div><div class="ttdef"><b>Definition:</b> <a href="uart_8h_source.html#l00033">uart.h:33</a></div></div>
+<a href="uart_8c.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno">    1</span>&#160;</div><div class="line"><a name="l00015"></a><span class="lineno">   15</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="uart_8h.html">Communication/uart.h</a>&quot;</span></div><div class="line"><a name="l00016"></a><span class="lineno">   16</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="lcd_8h.html">Utils/lcd.h</a>&quot;</span></div><div class="line"><a name="l00017"></a><span class="lineno">   17</span>&#160;<span class="preprocessor">#include &lt;math.h&gt;</span></div><div class="line"><a name="l00018"></a><span class="lineno">   18</span>&#160;</div><div class="line"><a name="l00019"></a><span class="lineno">   19</span>&#160;<span class="preprocessor">#define SYSTEM_CLOCK_Hz 16000000    // 16 MHz</span></div><div class="line"><a name="l00020"></a><span class="lineno">   20</span>&#160;<span class="preprocessor">#define CLOCK_DIV 16                // Clock divider being used</span></div><div class="line"><a name="l00021"></a><span class="lineno">   21</span>&#160;</div><div class="line"><a name="l00022"></a><span class="lineno">   22</span>&#160;<span class="preprocessor">#define BAUD_RATE 115200            // Baud rate for Wi-Fi communications</span></div><div class="line"><a name="l00023"></a><span class="lineno">   23</span>&#160;<span class="comment">//#define BAUD_RATE 9600              // Baud rate for serial (RS232) communications</span></div><div class="line"><a name="l00024"></a><span class="lineno">   24</span>&#160;</div><div class="line"><a name="l00025"></a><span class="lineno">   25</span>&#160;<span class="keywordtype">void</span> UART1_Handler(<span class="keywordtype">void</span>)</div><div class="line"><a name="l00026"></a><span class="lineno">   26</span>&#160;{</div><div class="line"><a name="l00027"></a><span class="lineno">   27</span>&#160;</div><div class="line"><a name="l00028"></a><span class="lineno">   28</span>&#160;    <span class="keywordtype">char</span> current_letter = 0; <span class="comment">//Initialize the last character</span></div><div class="line"><a name="l00029"></a><span class="lineno">   29</span>&#160;    current_letter = <a class="code" href="uart_8c.html#a2cb93233c32004f54ac6103ac25ef64d">uart_receive</a>(); <span class="comment">//Receive character in UART</span></div><div class="line"><a name="l00030"></a><span class="lineno">   30</span>&#160;    <span class="keywordflow">if</span> (current_letter == <span class="charliteral">&#39;\n&#39;</span>)</div><div class="line"><a name="l00031"></a><span class="lineno">   31</span>&#160;        <a class="code" href="uart_8c.html#a58d025fdfe1c8f521e1fa2a628cfa21d">uart_read</a>(); <span class="comment">//If the last character is return line, send to LastLine and clear buffer</span></div><div class="line"><a name="l00032"></a><span class="lineno">   32</span>&#160;    <span class="keywordflow">else</span></div><div class="line"><a name="l00033"></a><span class="lineno">   33</span>&#160;    {</div><div class="line"><a name="l00034"></a><span class="lineno">   34</span>&#160;        <a class="code" href="uart_8h.html#aff2566f4c366b48d73479bef43ee4d2e">buffer</a>[strlen(<a class="code" href="uart_8h.html#aff2566f4c366b48d73479bef43ee4d2e">buffer</a>)] = current_letter; <span class="comment">//Next character is set to the receive</span></div><div class="line"><a name="l00035"></a><span class="lineno">   35</span>&#160;    }</div><div class="line"><a name="l00036"></a><span class="lineno">   36</span>&#160;    UART1_ICR_R |= (0x10); <span class="comment">//Reset the UART READ FLAG</span></div><div class="line"><a name="l00037"></a><span class="lineno">   37</span>&#160;</div><div class="line"><a name="l00038"></a><span class="lineno">   38</span>&#160;}</div><div class="line"><a name="l00039"></a><span class="lineno">   39</span>&#160;</div><div class="line"><a name="l00040"></a><span class="lineno"><a class="line" href="uart_8h.html#a58d025fdfe1c8f521e1fa2a628cfa21d">   40</a></span>&#160;<span class="keywordtype">void</span> <a class="code" href="uart_8c.html#a58d025fdfe1c8f521e1fa2a628cfa21d">uart_read</a>()</div><div class="line"><a name="l00041"></a><span class="lineno">   41</span>&#160;{</div><div class="line"><a name="l00042"></a><span class="lineno">   42</span>&#160;    memcpy(<a class="code" href="uart_8h.html#af1bf0c65f126ec15b3204246afdc614e">LastLine</a>, <a class="code" href="uart_8h.html#aff2566f4c366b48d73479bef43ee4d2e">buffer</a>, 100); <span class="comment">//Copy buffer to LastLine</span></div><div class="line"><a name="l00043"></a><span class="lineno">   43</span>&#160;    memset(<a class="code" href="uart_8h.html#aff2566f4c366b48d73479bef43ee4d2e">buffer</a>, 0, 100); <span class="comment">//clear the buffer</span></div><div class="line"><a name="l00044"></a><span class="lineno">   44</span>&#160;</div><div class="line"><a name="l00045"></a><span class="lineno">   45</span>&#160;}</div><div class="line"><a name="l00046"></a><span class="lineno">   46</span>&#160;</div><div class="line"><a name="l00047"></a><span class="lineno"><a class="line" href="uart_8h.html#a8be40187644dacbc28cabbc673a36bff">   47</a></span>&#160;<span class="keywordtype">void</span> <a class="code" href="uart_8c.html#a8be40187644dacbc28cabbc673a36bff">uart_clear</a>()</div><div class="line"><a name="l00048"></a><span class="lineno">   48</span>&#160;{</div><div class="line"><a name="l00049"></a><span class="lineno">   49</span>&#160;    memset(<a class="code" href="uart_8h.html#af1bf0c65f126ec15b3204246afdc614e">LastLine</a>, 0, 100); <span class="comment">//clear the LastLine</span></div><div class="line"><a name="l00050"></a><span class="lineno">   50</span>&#160;}</div><div class="line"><a name="l00051"></a><span class="lineno">   51</span>&#160;</div><div class="line"><a name="l00052"></a><span class="lineno"><a class="line" href="uart_8h.html#a0c0ca72359ddf28dcd15900dfba19343">   52</a></span>&#160;<span class="keywordtype">void</span> <a class="code" href="uart_8c.html#a0c0ca72359ddf28dcd15900dfba19343">uart_init</a>(<span class="keywordtype">void</span>)</div><div class="line"><a name="l00053"></a><span class="lineno">   53</span>&#160;{</div><div class="line"><a name="l00054"></a><span class="lineno">   54</span>&#160;</div><div class="line"><a name="l00055"></a><span class="lineno">   55</span>&#160;    <a class="code" href="uart_8h.html#aff2566f4c366b48d73479bef43ee4d2e">buffer</a> = malloc(1024); <span class="comment">//Set aside 1024 bytes for the buffer</span></div><div class="line"><a name="l00056"></a><span class="lineno">   56</span>&#160;    memset(<a class="code" href="uart_8h.html#aff2566f4c366b48d73479bef43ee4d2e">buffer</a>, 0, 1024);</div><div class="line"><a name="l00057"></a><span class="lineno">   57</span>&#160;    <a class="code" href="uart_8h.html#af1bf0c65f126ec15b3204246afdc614e">LastLine</a> = (<span class="keywordtype">char</span>*) malloc(100); <span class="comment">//Set aside 100 bytes for the LastLine</span></div><div class="line"><a name="l00058"></a><span class="lineno">   58</span>&#160;    <span class="comment">// Enable &amp; Provide a clock to GPIO Port B in Run mode</span></div><div class="line"><a name="l00059"></a><span class="lineno">   59</span>&#160;    SYSCTL_RCGCGPIO_R |= 0x02;</div><div class="line"><a name="l00060"></a><span class="lineno">   60</span>&#160;    <span class="comment">// Enable clock to UART1</span></div><div class="line"><a name="l00061"></a><span class="lineno">   61</span>&#160;    SYSCTL_RCGCUART_R |= 0x02;</div><div class="line"><a name="l00062"></a><span class="lineno">   62</span>&#160;</div><div class="line"><a name="l00063"></a><span class="lineno">   63</span>&#160;    <a class="code" href="timer_8c.html#a7e2a3b4520e885e5e7d40fa87e242a75">timer_waitMillis</a>(1); <span class="comment">// Small delay</span></div><div class="line"><a name="l00064"></a><span class="lineno">   64</span>&#160;</div><div class="line"><a name="l00065"></a><span class="lineno">   65</span>&#160;    <span class="comment">// Set Port B pins 0 and 1 to their alternative function</span></div><div class="line"><a name="l00066"></a><span class="lineno">   66</span>&#160;    GPIO_PORTB_AFSEL_R |= 0x03;</div><div class="line"><a name="l00067"></a><span class="lineno">   67</span>&#160;    <span class="comment">// Enable Rx and Tx:</span></div><div class="line"><a name="l00068"></a><span class="lineno">   68</span>&#160;    <span class="comment">// Set Port B pins 0 and 1 to U1Rx and U1Tx, respectively</span></div><div class="line"><a name="l00069"></a><span class="lineno">   69</span>&#160;    GPIO_PORTB_PCTL_R &amp;= 0xFFFFFF00;    <span class="comment">//Force 0&#39;s at desired locations</span></div><div class="line"><a name="l00070"></a><span class="lineno">   70</span>&#160;    GPIO_PORTB_PCTL_R |= 0x00000011;    <span class="comment">// Force 1&#39;s at desired locations</span></div><div class="line"><a name="l00071"></a><span class="lineno">   71</span>&#160;    <span class="comment">// Enable pins 0 and 1 for Port B</span></div><div class="line"><a name="l00072"></a><span class="lineno">   72</span>&#160;    GPIO_PORTB_DEN_R |= 0x3;</div><div class="line"><a name="l00073"></a><span class="lineno">   73</span>&#160;    <span class="comment">// Set pin 0 (U1Rx) to input and pin 1 (U1Tx) to output</span></div><div class="line"><a name="l00074"></a><span class="lineno">   74</span>&#160;    GPIO_PORTB_DIR_R &amp;= ~0x2;   <span class="comment">// Force 0&#39;s at desired locations</span></div><div class="line"><a name="l00075"></a><span class="lineno">   75</span>&#160;    GPIO_PORTB_DIR_R |= 0x2;    <span class="comment">// Force 1&#39;s at desired locations</span></div><div class="line"><a name="l00076"></a><span class="lineno">   76</span>&#160;</div><div class="line"><a name="l00077"></a><span class="lineno">   77</span>&#160;    <span class="comment">// Calculate Baud Rate Divisor</span></div><div class="line"><a name="l00078"></a><span class="lineno">   78</span>&#160;    <span class="comment">// See section 14.3.2 of datasheet (page 896)</span></div><div class="line"><a name="l00079"></a><span class="lineno">   79</span>&#160;    <span class="keywordtype">double</span> BRD = SYSTEM_CLOCK_Hz / (double) (CLOCK_DIV * BAUD_RATE);</div><div class="line"><a name="l00080"></a><span class="lineno">   80</span>&#160;</div><div class="line"><a name="l00081"></a><span class="lineno">   81</span>&#160;    <span class="keywordtype">double</span> iPart, fPart;</div><div class="line"><a name="l00082"></a><span class="lineno">   82</span>&#160;</div><div class="line"><a name="l00083"></a><span class="lineno">   83</span>&#160;    fPart = modf(BRD, &amp;iPart);</div><div class="line"><a name="l00084"></a><span class="lineno">   84</span>&#160;</div><div class="line"><a name="l00085"></a><span class="lineno">   85</span>&#160;    uint16_t iBRD = iPart;  <span class="comment">// Integer part of BRD</span></div><div class="line"><a name="l00086"></a><span class="lineno">   86</span>&#160;    uint16_t fBRD = fPart * 64 + 0.5;   <span class="comment">// Fractional part of BRD</span></div><div class="line"><a name="l00087"></a><span class="lineno">   87</span>&#160;</div><div class="line"><a name="l00088"></a><span class="lineno">   88</span>&#160;    <span class="comment">// Disable UART1 for configuration</span></div><div class="line"><a name="l00089"></a><span class="lineno">   89</span>&#160;    UART1_CTL_R &amp;= ~0x1;</div><div class="line"><a name="l00090"></a><span class="lineno">   90</span>&#160;    <span class="comment">// Set UART1 baud rate</span></div><div class="line"><a name="l00091"></a><span class="lineno">   91</span>&#160;    UART1_IBRD_R = iBRD;</div><div class="line"><a name="l00092"></a><span class="lineno">   92</span>&#160;    UART1_FBRD_R = fBRD;</div><div class="line"><a name="l00093"></a><span class="lineno">   93</span>&#160;    <span class="comment">// Set frame: 8 data bits, 1 stop bit, no parity, no FIFO</span></div><div class="line"><a name="l00094"></a><span class="lineno">   94</span>&#160;    UART1_LCRH_R &amp;= ~0xFF;</div><div class="line"><a name="l00095"></a><span class="lineno">   95</span>&#160;    UART1_LCRH_R |= 0x60;</div><div class="line"><a name="l00096"></a><span class="lineno">   96</span>&#160;    <span class="comment">// Set system clock as UART Baud Clock Source</span></div><div class="line"><a name="l00097"></a><span class="lineno">   97</span>&#160;    UART1_CC_R = 0x0;</div><div class="line"><a name="l00098"></a><span class="lineno">   98</span>&#160;</div><div class="line"><a name="l00099"></a><span class="lineno">   99</span>&#160;    UART1_IM_R &amp;= 0xFFFFE80D; <span class="comment">// set relavent values to zero for mask</span></div><div class="line"><a name="l00100"></a><span class="lineno">  100</span>&#160;    UART1_IM_R |= 0x00000010; <span class="comment">// set the mask for interrupt on read</span></div><div class="line"><a name="l00101"></a><span class="lineno">  101</span>&#160;    UART1_ICR_R |= (0x10);    <span class="comment">//Clear the read flag</span></div><div class="line"><a name="l00102"></a><span class="lineno">  102</span>&#160;    NVIC_EN0_R |= (1 &lt;&lt; 6);   <span class="comment">//Enable the interrupt for UART1</span></div><div class="line"><a name="l00103"></a><span class="lineno">  103</span>&#160;</div><div class="line"><a name="l00104"></a><span class="lineno">  104</span>&#160;    IntRegister(INT_UART1, UART1_Handler);</div><div class="line"><a name="l00105"></a><span class="lineno">  105</span>&#160;</div><div class="line"><a name="l00106"></a><span class="lineno">  106</span>&#160;    IntMasterEnable(); <span class="comment">//Initialize global interrupts</span></div><div class="line"><a name="l00107"></a><span class="lineno">  107</span>&#160;</div><div class="line"><a name="l00108"></a><span class="lineno">  108</span>&#160;    <span class="comment">// Re-enable UART1</span></div><div class="line"><a name="l00109"></a><span class="lineno">  109</span>&#160;    UART1_CTL_R |= 0x1; <span class="comment">// Rx &amp; Tx are enabled on reset</span></div><div class="line"><a name="l00110"></a><span class="lineno">  110</span>&#160;</div><div class="line"><a name="l00111"></a><span class="lineno">  111</span>&#160;}</div><div class="line"><a name="l00112"></a><span class="lineno">  112</span>&#160;</div><div class="line"><a name="l00113"></a><span class="lineno"><a class="line" href="uart_8h.html#a1bb761703934038d7820c4e7a92896c8">  113</a></span>&#160;<span class="keywordtype">void</span> <a class="code" href="uart_8c.html#a1bb761703934038d7820c4e7a92896c8">uart_sendChar</a>(<span class="keywordtype">char</span> <a class="code" href="main_8c.html#a91a70b77df95bd8b0830b49a094c2acb">data</a>)</div><div class="line"><a name="l00114"></a><span class="lineno">  114</span>&#160;{</div><div class="line"><a name="l00115"></a><span class="lineno">  115</span>&#160;</div><div class="line"><a name="l00116"></a><span class="lineno">  116</span>&#160;    <span class="comment">// Wait until there is room to send data</span></div><div class="line"><a name="l00117"></a><span class="lineno">  117</span>&#160;    <span class="keywordflow">while</span> ((UART1_FR_R &amp; 0x20))</div><div class="line"><a name="l00118"></a><span class="lineno">  118</span>&#160;        ;</div><div class="line"><a name="l00119"></a><span class="lineno">  119</span>&#160;    <span class="comment">// Send data</span></div><div class="line"><a name="l00120"></a><span class="lineno">  120</span>&#160;    UART1_DR_R = <a class="code" href="main_8c.html#a91a70b77df95bd8b0830b49a094c2acb">data</a>;</div><div class="line"><a name="l00121"></a><span class="lineno">  121</span>&#160;</div><div class="line"><a name="l00122"></a><span class="lineno">  122</span>&#160;}</div><div class="line"><a name="l00123"></a><span class="lineno">  123</span>&#160;</div><div class="line"><a name="l00124"></a><span class="lineno"><a class="line" href="uart_8h.html#a2cb93233c32004f54ac6103ac25ef64d">  124</a></span>&#160;<span class="keywordtype">char</span> <a class="code" href="uart_8c.html#a2cb93233c32004f54ac6103ac25ef64d">uart_receive</a>(<span class="keywordtype">void</span>)</div><div class="line"><a name="l00125"></a><span class="lineno">  125</span>&#160;{</div><div class="line"><a name="l00126"></a><span class="lineno">  126</span>&#160;    <span class="comment">// Wait for data to receive</span></div><div class="line"><a name="l00127"></a><span class="lineno">  127</span>&#160;    <span class="keywordflow">while</span> (UART1_FR_R &amp; 0x10)</div><div class="line"><a name="l00128"></a><span class="lineno">  128</span>&#160;        ;</div><div class="line"><a name="l00129"></a><span class="lineno">  129</span>&#160;    <span class="comment">// Mask the 4 error bits to grab only the 8 data bits</span></div><div class="line"><a name="l00130"></a><span class="lineno">  130</span>&#160;    <span class="keywordflow">return</span> (UART1_DR_R &amp; 0xFF);</div><div class="line"><a name="l00131"></a><span class="lineno">  131</span>&#160;}</div><div class="line"><a name="l00132"></a><span class="lineno">  132</span>&#160;</div><div class="line"><a name="l00133"></a><span class="lineno"><a class="line" href="open__interface_8c.html#a33bd73bbfbc570a633f3622069087066">  133</a></span>&#160;<span class="keywordtype">void</span> <a class="code" href="uart_8c.html#af96d1ce52b8a52eabc606489d31351e9">uart_sendStr</a>(<span class="keyword">const</span> <span class="keywordtype">char</span> *<a class="code" href="main_8c.html#a91a70b77df95bd8b0830b49a094c2acb">data</a>)</div><div class="line"><a name="l00134"></a><span class="lineno">  134</span>&#160;{</div><div class="line"><a name="l00135"></a><span class="lineno">  135</span>&#160;</div><div class="line"><a name="l00136"></a><span class="lineno">  136</span>&#160;    <span class="comment">// Iterate through the string and send each character until</span></div><div class="line"><a name="l00137"></a><span class="lineno">  137</span>&#160;    <span class="comment">// the end of the string (null byte) is reached</span></div><div class="line"><a name="l00138"></a><span class="lineno">  138</span>&#160;</div><div class="line"><a name="l00139"></a><span class="lineno">  139</span>&#160;    <span class="keywordflow">while</span> (*<a class="code" href="main_8c.html#a91a70b77df95bd8b0830b49a094c2acb">data</a> != <span class="charliteral">&#39;\0&#39;</span>)</div><div class="line"><a name="l00140"></a><span class="lineno">  140</span>&#160;    {</div><div class="line"><a name="l00141"></a><span class="lineno">  141</span>&#160;        <span class="comment">// Send the nth char in the string over UART</span></div><div class="line"><a name="l00142"></a><span class="lineno">  142</span>&#160;        <a class="code" href="uart_8c.html#a1bb761703934038d7820c4e7a92896c8">uart_sendChar</a>(*<a class="code" href="main_8c.html#a91a70b77df95bd8b0830b49a094c2acb">data</a>);</div><div class="line"><a name="l00143"></a><span class="lineno">  143</span>&#160;        <span class="comment">// Move pointer to the next char in the array</span></div><div class="line"><a name="l00144"></a><span class="lineno">  144</span>&#160;        <a class="code" href="main_8c.html#a91a70b77df95bd8b0830b49a094c2acb">data</a>++;</div><div class="line"><a name="l00145"></a><span class="lineno">  145</span>&#160;    }</div><div class="line"><a name="l00146"></a><span class="lineno">  146</span>&#160;</div><div class="line"><a name="l00147"></a><span class="lineno">  147</span>&#160;    <span class="comment">// Note: for reference see lcd_puts from lcd.c file</span></div><div class="line"><a name="l00148"></a><span class="lineno">  148</span>&#160;}</div><div class="line"><a name="l00149"></a><span class="lineno">  149</span>&#160;</div><div class="line"><a name="l00150"></a><span class="lineno"><a class="line" href="uart_8h.html#a8ed365abbf581c32e90ed632bf60f88e">  150</a></span>&#160;<span class="keywordtype">void</span> <a class="code" href="uart_8c.html#a8ed365abbf581c32e90ed632bf60f88e">uart_sendStrLen</a>(<span class="keyword">const</span> <span class="keywordtype">char</span> *<a class="code" href="main_8c.html#a91a70b77df95bd8b0830b49a094c2acb">data</a>, <span class="keywordtype">int</span> length)</div><div class="line"><a name="l00151"></a><span class="lineno">  151</span>&#160;{</div><div class="line"><a name="l00152"></a><span class="lineno">  152</span>&#160;    <span class="keywordtype">int</span> i;</div><div class="line"><a name="l00153"></a><span class="lineno">  153</span>&#160;    <span class="keywordflow">for</span> (i = 0; i &lt; length; ++i)</div><div class="line"><a name="l00154"></a><span class="lineno">  154</span>&#160;    {</div><div class="line"><a name="l00155"></a><span class="lineno">  155</span>&#160;        <a class="code" href="uart_8c.html#a1bb761703934038d7820c4e7a92896c8">uart_sendChar</a>(*<a class="code" href="main_8c.html#a91a70b77df95bd8b0830b49a094c2acb">data</a>); <span class="comment">//Send character</span></div><div class="line"><a name="l00156"></a><span class="lineno">  156</span>&#160;        *<a class="code" href="main_8c.html#a91a70b77df95bd8b0830b49a094c2acb">data</a>++; <span class="comment">//Increment to the next.</span></div><div class="line"><a name="l00157"></a><span class="lineno">  157</span>&#160;    }</div><div class="line"><a name="l00158"></a><span class="lineno">  158</span>&#160;}</div><div class="line"><a name="l00159"></a><span class="lineno">  159</span>&#160;</div><div class="line"><a name="l00160"></a><span class="lineno"><a class="line" href="uart_8h.html#a46df527ddf86c0ebfe750173a41dd4d3">  160</a></span>&#160;<span class="keywordtype">char</span> * <a class="code" href="uart_8c.html#a46df527ddf86c0ebfe750173a41dd4d3">getLastLine</a>()</div><div class="line"><a name="l00161"></a><span class="lineno">  161</span>&#160;{</div><div class="line"><a name="l00162"></a><span class="lineno">  162</span>&#160;</div><div class="line"><a name="l00163"></a><span class="lineno">  163</span>&#160;    <span class="keywordflow">return</span> <a class="code" href="uart_8h.html#af1bf0c65f126ec15b3204246afdc614e">LastLine</a>; <span class="comment">//Return the Character string</span></div><div class="line"><a name="l00164"></a><span class="lineno">  164</span>&#160;}</div><div class="line"><a name="l00165"></a><span class="lineno">  165</span>&#160;</div><div class="ttc" id="uart_8h_html"><div class="ttname"><a href="uart_8h.html">uart.h</a></div><div class="ttdoc">Header file for uart.c Used to set up the RS232 connector and WIFI module uses UART1 at 115200...</div></div>
+<div class="ttc" id="uart_8h_html_af1bf0c65f126ec15b3204246afdc614e"><div class="ttname"><a href="uart_8h.html#af1bf0c65f126ec15b3204246afdc614e">LastLine</a></div><div class="ttdeci">char * LastLine</div><div class="ttdef"><b>Definition:</b> <a href="uart_8h_source.html#l00032">uart.h:32</a></div></div>
 <div class="ttc" id="uart_8c_html_a0c0ca72359ddf28dcd15900dfba19343"><div class="ttname"><a href="uart_8c.html#a0c0ca72359ddf28dcd15900dfba19343">uart_init</a></div><div class="ttdeci">void uart_init(void)</div><div class="ttdef"><b>Definition:</b> <a href="uart_8c_source.html#l00052">uart.c:52</a></div></div>
-<div class="ttc" id="movementcommands_8c_html_a91a70b77df95bd8b0830b49a094c2acb"><div class="ttname"><a href="movementcommands_8c.html#a91a70b77df95bd8b0830b49a094c2acb">data</a></div><div class="ttdeci">char * data</div><div class="ttdef"><b>Definition:</b> <a href="movementcommands_8c_source.html#l00041">movementcommands.c:41</a></div></div>
 <div class="ttc" id="uart_8c_html_a8be40187644dacbc28cabbc673a36bff"><div class="ttname"><a href="uart_8c.html#a8be40187644dacbc28cabbc673a36bff">uart_clear</a></div><div class="ttdeci">void uart_clear()</div><div class="ttdef"><b>Definition:</b> <a href="uart_8c_source.html#l00047">uart.c:47</a></div></div>
 <div class="ttc" id="uart_8c_html_a58d025fdfe1c8f521e1fa2a628cfa21d"><div class="ttname"><a href="uart_8c.html#a58d025fdfe1c8f521e1fa2a628cfa21d">uart_read</a></div><div class="ttdeci">void uart_read()</div><div class="ttdef"><b>Definition:</b> <a href="uart_8c_source.html#l00040">uart.c:40</a></div></div>
 <div class="ttc" id="uart_8c_html_a2cb93233c32004f54ac6103ac25ef64d"><div class="ttname"><a href="uart_8c.html#a2cb93233c32004f54ac6103ac25ef64d">uart_receive</a></div><div class="ttdeci">char uart_receive(void)</div><div class="ttdef"><b>Definition:</b> <a href="uart_8c_source.html#l00124">uart.c:124</a></div></div>
+<div class="ttc" id="timer_8c_html_a7e2a3b4520e885e5e7d40fa87e242a75"><div class="ttname"><a href="timer_8c.html#a7e2a3b4520e885e5e7d40fa87e242a75">timer_waitMillis</a></div><div class="ttdeci">void timer_waitMillis(uint32_t millis)</div><div class="ttdef"><b>Definition:</b> <a href="timer_8c_source.html#l00015">timer.c:15</a></div></div>
+<div class="ttc" id="main_8c_html_a91a70b77df95bd8b0830b49a094c2acb"><div class="ttname"><a href="main_8c.html#a91a70b77df95bd8b0830b49a094c2acb">data</a></div><div class="ttdeci">char * data</div><div class="ttdef"><b>Definition:</b> <a href="main_8c_source.html#l00028">main.c:28</a></div></div>
 <div class="ttc" id="uart_8c_html_a46df527ddf86c0ebfe750173a41dd4d3"><div class="ttname"><a href="uart_8c.html#a46df527ddf86c0ebfe750173a41dd4d3">getLastLine</a></div><div class="ttdeci">char * getLastLine()</div><div class="ttdef"><b>Definition:</b> <a href="uart_8c_source.html#l00160">uart.c:160</a></div></div>
+<div class="ttc" id="lcd_8h_html"><div class="ttname"><a href="lcd_8h.html">lcd.h</a></div><div class="ttdoc">Header file for lcd.c. </div></div>
 <div class="ttc" id="uart_8c_html_a1bb761703934038d7820c4e7a92896c8"><div class="ttname"><a href="uart_8c.html#a1bb761703934038d7820c4e7a92896c8">uart_sendChar</a></div><div class="ttdeci">void uart_sendChar(char data)</div><div class="ttdef"><b>Definition:</b> <a href="uart_8c_source.html#l00113">uart.c:113</a></div></div>
-<div class="ttc" id="uart_8h_html_aff2566f4c366b48d73479bef43ee4d2e"><div class="ttname"><a href="uart_8h.html#aff2566f4c366b48d73479bef43ee4d2e">buffer</a></div><div class="ttdeci">char * buffer</div><div class="ttdef"><b>Definition:</b> <a href="uart_8h_source.html#l00029">uart.h:29</a></div></div>
+<div class="ttc" id="uart_8h_html_aff2566f4c366b48d73479bef43ee4d2e"><div class="ttname"><a href="uart_8h.html#aff2566f4c366b48d73479bef43ee4d2e">buffer</a></div><div class="ttdeci">char * buffer</div><div class="ttdef"><b>Definition:</b> <a href="uart_8h_source.html#l00028">uart.h:28</a></div></div>
 <div class="ttc" id="uart_8c_html_a8ed365abbf581c32e90ed632bf60f88e"><div class="ttname"><a href="uart_8c.html#a8ed365abbf581c32e90ed632bf60f88e">uart_sendStrLen</a></div><div class="ttdeci">void uart_sendStrLen(const char *data, int length)</div><div class="ttdef"><b>Definition:</b> <a href="uart_8c_source.html#l00150">uart.c:150</a></div></div>
 <div class="ttc" id="uart_8c_html_af96d1ce52b8a52eabc606489d31351e9"><div class="ttname"><a href="uart_8c.html#af96d1ce52b8a52eabc606489d31351e9">uart_sendStr</a></div><div class="ttdeci">void uart_sendStr(const char *data)</div><div class="ttdef"><b>Definition:</b> <a href="uart_8c_source.html#l00133">uart.c:133</a></div></div>
 </div><!-- fragment --></div><!-- contents -->
diff --git a/Doxygen/html/uart_8h_source.html b/Doxygen/html/uart_8h_source.html
index 1c30a96f6376e98fa2398deb0176ceefb01d5b07..398f47bb835bf0df030b4ff01cf22bc79f224cc0 100644
--- a/Doxygen/html/uart_8h_source.html
+++ b/Doxygen/html/uart_8h_source.html
@@ -92,15 +92,16 @@ $(document).ready(function(){initNavTree('uart_8h_source.html','');});
 <div class="title">uart.h</div>  </div>
 </div><!--header-->
 <div class="contents">
-<a href="uart_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno">    1</span>&#160;</div><div class="line"><a name="l00014"></a><span class="lineno">   14</span>&#160;<span class="preprocessor">#ifndef UART_H_</span></div><div class="line"><a name="l00015"></a><span class="lineno">   15</span>&#160;<span class="preprocessor">#define UART_H_</span></div><div class="line"><a name="l00016"></a><span class="lineno">   16</span>&#160;</div><div class="line"><a name="l00017"></a><span class="lineno">   17</span>&#160;<span class="preprocessor">#include &lt;stdlib.h&gt;</span></div><div class="line"><a name="l00018"></a><span class="lineno">   18</span>&#160;<span class="preprocessor">#include &lt;stdio.h&gt;</span></div><div class="line"><a name="l00019"></a><span class="lineno">   19</span>&#160;<span class="preprocessor">#include &lt;stdbool.h&gt;</span></div><div class="line"><a name="l00020"></a><span class="lineno">   20</span>&#160;<span class="preprocessor">#include &quot;Utils/timer.h&quot;</span></div><div class="line"><a name="l00021"></a><span class="lineno">   21</span>&#160;</div><div class="line"><a name="l00022"></a><span class="lineno">   22</span>&#160;<span class="comment">//#include &quot;WiFi.h&quot;</span></div><div class="line"><a name="l00023"></a><span class="lineno">   23</span>&#160;<span class="preprocessor">#include &lt;inc/tm4c123gh6pm.h&gt;</span></div><div class="line"><a name="l00024"></a><span class="lineno">   24</span>&#160;<span class="preprocessor">#include &quot;driverlib/interrupt.h&quot;</span></div><div class="line"><a name="l00025"></a><span class="lineno">   25</span>&#160;</div><div class="line"><a name="l00029"></a><span class="lineno"><a class="line" href="uart_8h.html#aff2566f4c366b48d73479bef43ee4d2e">   29</a></span>&#160;<span class="keywordtype">char</span> * <a class="code" href="uart_8h.html#aff2566f4c366b48d73479bef43ee4d2e">buffer</a>;</div><div class="line"><a name="l00033"></a><span class="lineno"><a class="line" href="uart_8h.html#af1bf0c65f126ec15b3204246afdc614e">   33</a></span>&#160;<span class="keywordtype">char</span> * <a class="code" href="uart_8h.html#af1bf0c65f126ec15b3204246afdc614e">LastLine</a>;</div><div class="line"><a name="l00034"></a><span class="lineno">   34</span>&#160;</div><div class="line"><a name="l00038"></a><span class="lineno">   38</span>&#160;<span class="keywordtype">void</span> <a class="code" href="uart_8h.html#a0c0ca72359ddf28dcd15900dfba19343">uart_init</a>(<span class="keywordtype">void</span>);</div><div class="line"><a name="l00043"></a><span class="lineno">   43</span>&#160;<span class="keywordtype">void</span> <a class="code" href="uart_8h.html#a1bb761703934038d7820c4e7a92896c8">uart_sendChar</a>(<span class="keywordtype">char</span> <a class="code" href="movementcommands_8c.html#a91a70b77df95bd8b0830b49a094c2acb">data</a>);</div><div class="line"><a name="l00044"></a><span class="lineno">   44</span>&#160;</div><div class="line"><a name="l00048"></a><span class="lineno">   48</span>&#160;<span class="keywordtype">char</span> <a class="code" href="uart_8h.html#a2cb93233c32004f54ac6103ac25ef64d">uart_receive</a>(<span class="keywordtype">void</span>);</div><div class="line"><a name="l00053"></a><span class="lineno">   53</span>&#160;<span class="keywordtype">void</span> <a class="code" href="uart_8h.html#af96d1ce52b8a52eabc606489d31351e9">uart_sendStr</a>(<span class="keyword">const</span> <span class="keywordtype">char</span> *<a class="code" href="movementcommands_8c.html#a91a70b77df95bd8b0830b49a094c2acb">data</a>);</div><div class="line"><a name="l00059"></a><span class="lineno">   59</span>&#160;<span class="keywordtype">void</span> <a class="code" href="uart_8h.html#a8ed365abbf581c32e90ed632bf60f88e">uart_sendStrLen</a>(<span class="keyword">const</span> <span class="keywordtype">char</span> *<a class="code" href="movementcommands_8c.html#a91a70b77df95bd8b0830b49a094c2acb">data</a>, <span class="keywordtype">int</span> length);</div><div class="line"><a name="l00063"></a><span class="lineno">   63</span>&#160;<span class="keywordtype">void</span> <a class="code" href="uart_8h.html#a58d025fdfe1c8f521e1fa2a628cfa21d">uart_read</a>();</div><div class="line"><a name="l00067"></a><span class="lineno">   67</span>&#160;<span class="keywordtype">void</span> <a class="code" href="uart_8h.html#a8be40187644dacbc28cabbc673a36bff">uart_clear</a>();</div><div class="line"><a name="l00071"></a><span class="lineno">   71</span>&#160;<span class="keywordtype">char</span> * <a class="code" href="uart_8h.html#a46df527ddf86c0ebfe750173a41dd4d3">getLastLine</a>();</div><div class="line"><a name="l00072"></a><span class="lineno">   72</span>&#160;</div><div class="line"><a name="l00073"></a><span class="lineno">   73</span>&#160;<span class="preprocessor">#endif </span><span class="comment">/* UART_H_ */</span><span class="preprocessor"></span></div><div class="ttc" id="uart_8h_html_af1bf0c65f126ec15b3204246afdc614e"><div class="ttname"><a href="uart_8h.html#af1bf0c65f126ec15b3204246afdc614e">LastLine</a></div><div class="ttdeci">char * LastLine</div><div class="ttdef"><b>Definition:</b> <a href="uart_8h_source.html#l00033">uart.h:33</a></div></div>
+<a href="uart_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno">    1</span>&#160;</div><div class="line"><a name="l00014"></a><span class="lineno">   14</span>&#160;<span class="preprocessor">#ifndef UART_H_</span></div><div class="line"><a name="l00015"></a><span class="lineno">   15</span>&#160;<span class="preprocessor">#define UART_H_</span></div><div class="line"><a name="l00016"></a><span class="lineno">   16</span>&#160;</div><div class="line"><a name="l00017"></a><span class="lineno">   17</span>&#160;<span class="preprocessor">#include &lt;stdlib.h&gt;</span></div><div class="line"><a name="l00018"></a><span class="lineno">   18</span>&#160;<span class="preprocessor">#include &lt;stdio.h&gt;</span></div><div class="line"><a name="l00019"></a><span class="lineno">   19</span>&#160;<span class="preprocessor">#include &lt;stdbool.h&gt;</span></div><div class="line"><a name="l00020"></a><span class="lineno">   20</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="timer_8h.html">Utils/timer.h</a>&quot;</span></div><div class="line"><a name="l00021"></a><span class="lineno">   21</span>&#160;</div><div class="line"><a name="l00022"></a><span class="lineno">   22</span>&#160;<span class="preprocessor">#include &lt;inc/tm4c123gh6pm.h&gt;</span></div><div class="line"><a name="l00023"></a><span class="lineno">   23</span>&#160;<span class="preprocessor">#include &quot;driverlib/interrupt.h&quot;</span></div><div class="line"><a name="l00024"></a><span class="lineno">   24</span>&#160;</div><div class="line"><a name="l00028"></a><span class="lineno"><a class="line" href="uart_8h.html#aff2566f4c366b48d73479bef43ee4d2e">   28</a></span>&#160;<span class="keywordtype">char</span> * <a class="code" href="uart_8h.html#aff2566f4c366b48d73479bef43ee4d2e">buffer</a>;</div><div class="line"><a name="l00032"></a><span class="lineno"><a class="line" href="uart_8h.html#af1bf0c65f126ec15b3204246afdc614e">   32</a></span>&#160;<span class="keywordtype">char</span> * <a class="code" href="uart_8h.html#af1bf0c65f126ec15b3204246afdc614e">LastLine</a>;</div><div class="line"><a name="l00033"></a><span class="lineno">   33</span>&#160;</div><div class="line"><a name="l00037"></a><span class="lineno">   37</span>&#160;<span class="keywordtype">void</span> <a class="code" href="uart_8h.html#a0c0ca72359ddf28dcd15900dfba19343">uart_init</a>(<span class="keywordtype">void</span>);</div><div class="line"><a name="l00042"></a><span class="lineno">   42</span>&#160;<span class="keywordtype">void</span> <a class="code" href="uart_8h.html#a1bb761703934038d7820c4e7a92896c8">uart_sendChar</a>(<span class="keywordtype">char</span> <a class="code" href="main_8c.html#a91a70b77df95bd8b0830b49a094c2acb">data</a>);</div><div class="line"><a name="l00043"></a><span class="lineno">   43</span>&#160;</div><div class="line"><a name="l00047"></a><span class="lineno">   47</span>&#160;<span class="keywordtype">char</span> <a class="code" href="uart_8h.html#a2cb93233c32004f54ac6103ac25ef64d">uart_receive</a>(<span class="keywordtype">void</span>);</div><div class="line"><a name="l00052"></a><span class="lineno">   52</span>&#160;<span class="keywordtype">void</span> <a class="code" href="uart_8h.html#af96d1ce52b8a52eabc606489d31351e9">uart_sendStr</a>(<span class="keyword">const</span> <span class="keywordtype">char</span> *<a class="code" href="main_8c.html#a91a70b77df95bd8b0830b49a094c2acb">data</a>);</div><div class="line"><a name="l00058"></a><span class="lineno">   58</span>&#160;<span class="keywordtype">void</span> <a class="code" href="uart_8h.html#a8ed365abbf581c32e90ed632bf60f88e">uart_sendStrLen</a>(<span class="keyword">const</span> <span class="keywordtype">char</span> *<a class="code" href="main_8c.html#a91a70b77df95bd8b0830b49a094c2acb">data</a>, <span class="keywordtype">int</span> length);</div><div class="line"><a name="l00062"></a><span class="lineno">   62</span>&#160;<span class="keywordtype">void</span> <a class="code" href="uart_8h.html#a58d025fdfe1c8f521e1fa2a628cfa21d">uart_read</a>();</div><div class="line"><a name="l00066"></a><span class="lineno">   66</span>&#160;<span class="keywordtype">void</span> <a class="code" href="uart_8h.html#a8be40187644dacbc28cabbc673a36bff">uart_clear</a>();</div><div class="line"><a name="l00070"></a><span class="lineno">   70</span>&#160;<span class="keywordtype">char</span> * <a class="code" href="uart_8h.html#a46df527ddf86c0ebfe750173a41dd4d3">getLastLine</a>();</div><div class="line"><a name="l00071"></a><span class="lineno">   71</span>&#160;</div><div class="line"><a name="l00072"></a><span class="lineno">   72</span>&#160;<span class="preprocessor">#endif </span><span class="comment">/* UART_H_ */</span><span class="preprocessor"></span></div><div class="ttc" id="uart_8h_html_af1bf0c65f126ec15b3204246afdc614e"><div class="ttname"><a href="uart_8h.html#af1bf0c65f126ec15b3204246afdc614e">LastLine</a></div><div class="ttdeci">char * LastLine</div><div class="ttdef"><b>Definition:</b> <a href="uart_8h_source.html#l00032">uart.h:32</a></div></div>
 <div class="ttc" id="uart_8h_html_a8be40187644dacbc28cabbc673a36bff"><div class="ttname"><a href="uart_8h.html#a8be40187644dacbc28cabbc673a36bff">uart_clear</a></div><div class="ttdeci">void uart_clear()</div><div class="ttdef"><b>Definition:</b> <a href="uart_8c_source.html#l00047">uart.c:47</a></div></div>
-<div class="ttc" id="movementcommands_8c_html_a91a70b77df95bd8b0830b49a094c2acb"><div class="ttname"><a href="movementcommands_8c.html#a91a70b77df95bd8b0830b49a094c2acb">data</a></div><div class="ttdeci">char * data</div><div class="ttdef"><b>Definition:</b> <a href="movementcommands_8c_source.html#l00041">movementcommands.c:41</a></div></div>
 <div class="ttc" id="uart_8h_html_a0c0ca72359ddf28dcd15900dfba19343"><div class="ttname"><a href="uart_8h.html#a0c0ca72359ddf28dcd15900dfba19343">uart_init</a></div><div class="ttdeci">void uart_init(void)</div><div class="ttdef"><b>Definition:</b> <a href="uart_8c_source.html#l00052">uart.c:52</a></div></div>
+<div class="ttc" id="timer_8h_html"><div class="ttname"><a href="timer_8h.html">timer.h</a></div><div class="ttdoc">Header file for timer.c Library Functions for pause timer. </div></div>
 <div class="ttc" id="uart_8h_html_a46df527ddf86c0ebfe750173a41dd4d3"><div class="ttname"><a href="uart_8h.html#a46df527ddf86c0ebfe750173a41dd4d3">getLastLine</a></div><div class="ttdeci">char * getLastLine()</div><div class="ttdef"><b>Definition:</b> <a href="uart_8c_source.html#l00160">uart.c:160</a></div></div>
+<div class="ttc" id="main_8c_html_a91a70b77df95bd8b0830b49a094c2acb"><div class="ttname"><a href="main_8c.html#a91a70b77df95bd8b0830b49a094c2acb">data</a></div><div class="ttdeci">char * data</div><div class="ttdef"><b>Definition:</b> <a href="main_8c_source.html#l00028">main.c:28</a></div></div>
 <div class="ttc" id="uart_8h_html_a8ed365abbf581c32e90ed632bf60f88e"><div class="ttname"><a href="uart_8h.html#a8ed365abbf581c32e90ed632bf60f88e">uart_sendStrLen</a></div><div class="ttdeci">void uart_sendStrLen(const char *data, int length)</div><div class="ttdef"><b>Definition:</b> <a href="uart_8c_source.html#l00150">uart.c:150</a></div></div>
 <div class="ttc" id="uart_8h_html_a58d025fdfe1c8f521e1fa2a628cfa21d"><div class="ttname"><a href="uart_8h.html#a58d025fdfe1c8f521e1fa2a628cfa21d">uart_read</a></div><div class="ttdeci">void uart_read()</div><div class="ttdef"><b>Definition:</b> <a href="uart_8c_source.html#l00040">uart.c:40</a></div></div>
 <div class="ttc" id="uart_8h_html_a2cb93233c32004f54ac6103ac25ef64d"><div class="ttname"><a href="uart_8h.html#a2cb93233c32004f54ac6103ac25ef64d">uart_receive</a></div><div class="ttdeci">char uart_receive(void)</div><div class="ttdef"><b>Definition:</b> <a href="uart_8c_source.html#l00124">uart.c:124</a></div></div>
-<div class="ttc" id="uart_8h_html_aff2566f4c366b48d73479bef43ee4d2e"><div class="ttname"><a href="uart_8h.html#aff2566f4c366b48d73479bef43ee4d2e">buffer</a></div><div class="ttdeci">char * buffer</div><div class="ttdef"><b>Definition:</b> <a href="uart_8h_source.html#l00029">uart.h:29</a></div></div>
+<div class="ttc" id="uart_8h_html_aff2566f4c366b48d73479bef43ee4d2e"><div class="ttname"><a href="uart_8h.html#aff2566f4c366b48d73479bef43ee4d2e">buffer</a></div><div class="ttdeci">char * buffer</div><div class="ttdef"><b>Definition:</b> <a href="uart_8h_source.html#l00028">uart.h:28</a></div></div>
 <div class="ttc" id="uart_8h_html_af96d1ce52b8a52eabc606489d31351e9"><div class="ttname"><a href="uart_8h.html#af96d1ce52b8a52eabc606489d31351e9">uart_sendStr</a></div><div class="ttdeci">void uart_sendStr(const char *data)</div><div class="ttdef"><b>Definition:</b> <a href="uart_8c_source.html#l00133">uart.c:133</a></div></div>
 <div class="ttc" id="uart_8h_html_a1bb761703934038d7820c4e7a92896c8"><div class="ttname"><a href="uart_8h.html#a1bb761703934038d7820c4e7a92896c8">uart_sendChar</a></div><div class="ttdeci">void uart_sendChar(char data)</div><div class="ttdef"><b>Definition:</b> <a href="uart_8c_source.html#l00113">uart.c:113</a></div></div>
 </div><!-- fragment --></div><!-- contents -->
diff --git a/Doxygen/rtf/refman.rtf b/Doxygen/rtf/refman.rtf
index ac86857af25488ad7c2b2e895933602b546e31e3..c6a1ad9e34757d34234e73968c93cbe02673c2c9 100644
--- a/Doxygen/rtf/refman.rtf
+++ b/Doxygen/rtf/refman.rtf
@@ -86,7 +86,7 @@
 .2 \par
 }}Robot Navigation}
 {\comment Generated byDoxgyen. }
-{\creatim \yr2018\mo12\dy8\hr11\min49\sec56}
+{\creatim \yr2018\mo12\dy8\hr12\min27\sec37}
 }\pard\plain 
 \sectd\pgnlcrm
 {\footer \s29\widctlpar\tqc\tx4320\tqr\tx8640\qr\adjustright \fs20\cgrid {\chpgn}}
@@ -117,30 +117,30 @@ Main Page\par \pard\plain
 {
 \pard\plain \s17\sa60\sb30\widctlpar\qj \fs22\cgrid {\s17\sa60\sb30\widctlpar\qj \fs22\cgrid 
 Navigation Robot \par
-{\bkmkstart AAAAAAAAIT}
-{\bkmkend AAAAAAAAIT}
+{\bkmkstart AAAAAAAAPN}
+{\bkmkend AAAAAAAAPN}
 {{\pard\plain \s2\sb240\sa60\keepn\widctlpar\adjustright \b\f1\fs28\kerning28\cgrid 
 Robot
 \par}
 {\tc\tcl2 \v Robot}
-{\bkmkstart AAAAAAAAIU}
-{\bkmkend AAAAAAAAIU}
+{\bkmkstart AAAAAAAAPO}
+{\bkmkend AAAAAAAAPO}
 {{\pard\plain \s3\sb240\sa60\keepn\widctlpar\adjustright \b\f1\cgrid 
 Introduction
 \par}
 {\tc\tcl3 \v Introduction}
 The purpose of this robot is to navigate to a destination while avoid obstacles. This robot is controlled through a gui by a remote user. This robot will parse commands given by the user then will run an action based on what command it has received. It will then give a response based on the command it had received. The responses that it sends are its position, sensor data, or obstacle and boundary warnings. If the robot does bump into an object, it will stop. Likewise if the robot encounters a boundary or a cliff, it will stop and wait for user input. \par
  \par}
-{\bkmkstart AAAAAAAAIV}
-{\bkmkend AAAAAAAAIV}
+{\bkmkstart AAAAAAAAPP}
+{\bkmkend AAAAAAAAPP}
 {{\pard\plain \s3\sb240\sa60\keepn\widctlpar\adjustright \b\f1\cgrid 
 Robot_Hardware
 \par}
 {\tc\tcl3 \v Robot_Hardware}
 This robot is controlled using a Tiva TM4C123GH6PM. It is a modified roomba that has a servo with an IR and sonic sensor mounted to it. In addition to the mounted sensors, the roomba sensor contain bump sensors and ground sensors to detect the type of ground the robot is over. This robot is a nonholonomic system which means the robot cannot 'strafe'. \par
  \par}
-{\bkmkstart AAAAAAAAIW}
-{\bkmkend AAAAAAAAIW}
+{\bkmkstart AAAAAAAAPQ}
+{\bkmkend AAAAAAAAPQ}
 {{\pard\plain \s3\sb240\sa60\keepn\widctlpar\adjustright \b\f1\cgrid 
 Commands
 \par}
@@ -168,8 +168,8 @@ To play the Indiana Jones Theme: {
 \pard\plain \s40\li0\widctlpar\adjustright \shading1000\cbpat8 \f2\fs16\cgrid p\par
 }
 \par}
-{\bkmkstart AAAAAAAAIX}
-{\bkmkend AAAAAAAAIX}
+{\bkmkstart AAAAAAAAPR}
+{\bkmkend AAAAAAAAPR}
 {{\pard\plain \s3\sb240\sa60\keepn\widctlpar\adjustright \b\f1\cgrid 
 Robot_Responses
 \par}
@@ -193,22 +193,25 @@ If the response is: {
 \par
 That means the robot bumped into something and it will output which bumper as a 1 or 0 for each bumper.\par
 The output to the sensor data as a scan is being run is given as: s angle IR_distance Sonic_Distance where angle is the degree that the servo is pointing at. IR_Distance is the distance from which the object is sensed. Sonic_Distance is the distance from which the object is sensed.\par}
-{\bkmkstart AAAAAAAAIY}
-{\bkmkend AAAAAAAAIY}
+{\bkmkstart AAAAAAAAPS}
+{\bkmkend AAAAAAAAPS}
 {{\pard\plain \s3\sb240\sa60\keepn\widctlpar\adjustright \b\f1\cgrid 
 Acknowledgements
 \par}
 {\tc\tcl3 \v Acknowledgements}
 Code that we didn't write: {
 \par
-\pard\plain \s40\li0\widctlpar\adjustright \shading1000\cbpat8 \f2\fs16\cgrid open_interface\par
-timer\par
-lcd\par
+\pard\plain \s40\li0\widctlpar\adjustright \shading1000\cbpat8 \f2\fs16\cgrid open_interface.h - Author: Noah Bergman\par
+open_interface.c - Author: Noah Bergman, Eric Middleton, dmlarson\par
+timer.h - Author: Eric Middleton\par
+timer.c - Author: Eric Middleton\par
+lcd.h - Author: Noah Bergman\par
+lcd.c - Author: Noah Bergman, Eric Middleton\par
 }
 \par
-We did however, made some modifications to open_interface in order to output degrees and distance as a float.\par}
-{\bkmkstart AAAAAAAAIZ}
-{\bkmkend AAAAAAAAIZ}
+These have be lifted from the labs. We did however, made some modifications to open_interface in order to output degrees as a float.\par}
+{\bkmkstart AAAAAAAAPT}
+{\bkmkend AAAAAAAAPT}
 {{\pard\plain \s3\sb240\sa60\keepn\widctlpar\adjustright \b\f1\cgrid 
 Bugs
 \par}
@@ -220,21 +223,21 @@ Bugs
 }
 \par}
 \par}
-{\bkmkstart AAAAAAAAJA}
-{\bkmkend AAAAAAAAJA}
+{\bkmkstart AAAAAAAAPU}
+{\bkmkend AAAAAAAAPU}
 {{\pard\plain \s2\sb240\sa60\keepn\widctlpar\adjustright \b\f1\fs28\kerning28\cgrid 
 Navigation_Robot_GUI
 \par}
 {\tc\tcl2 \v Navigation_Robot_GUI}
-{\bkmkstart AAAAAAAAIU}
-{\bkmkend AAAAAAAAIU}
+{\bkmkstart AAAAAAAAPO}
+{\bkmkend AAAAAAAAPO}
 {{\pard\plain \s3\sb240\sa60\keepn\widctlpar\adjustright \b\f1\cgrid 
 Introduction
 \par}
 {\tc\tcl3 \v Introduction}
 In general, the robot can be controlled via putty through the wifi interface. But this is a better way to control this robot as the GUI can keep track of the objects and where the robot has been. In addition, the when the robot takes a sensor scan, the GUI will show a radar like pulse that shows the sensor data as it scans.\par}
-{\bkmkstart AAAAAAAAJB}
-{\bkmkend AAAAAAAAJB}
+{\bkmkstart AAAAAAAAPV}
+{\bkmkend AAAAAAAAPV}
 {{\pard\plain \s3\sb240\sa60\keepn\widctlpar\adjustright \b\f1\cgrid 
 Installation
 \par}
@@ -248,8 +251,8 @@ GLM\par
 }
 \par
 It is highly recommended to use CMake to build the solution files. \par}
-{\bkmkstart AAAAAAAAJC}
-{\bkmkend AAAAAAAAJC}
+{\bkmkstart AAAAAAAAPW}
+{\bkmkend AAAAAAAAPW}
 {{\pard\plain \s3\sb240\sa60\keepn\widctlpar\adjustright \b\f1\cgrid 
 Usage
 \par}
@@ -264,8 +267,8 @@ To tell the robot to do a sensor sweep, press 's'. The sensor sweep will print s
 To tell the robot to play a song, press 'p'. It's the Indiana Jones Theme.\par
 Example of how the robot operation looks like.\par
   \par}
-{\bkmkstart AAAAAAAAJD}
-{\bkmkend AAAAAAAAJD}
+{\bkmkstart AAAAAAAAPX}
+{\bkmkend AAAAAAAAPX}
 {{\pard\plain \s3\sb240\sa60\keepn\widctlpar\adjustright \b\f1\cgrid 
 Robot_Commands
 \par}
@@ -284,15 +287,15 @@ Robot_Commands
     =: Zoom out by 500mm\par
 }
 \par}
-{\bkmkstart AAAAAAAAIY}
-{\bkmkend AAAAAAAAIY}
+{\bkmkstart AAAAAAAAPS}
+{\bkmkend AAAAAAAAPS}
 {{\pard\plain \s3\sb240\sa60\keepn\widctlpar\adjustright \b\f1\cgrid 
 Acknowledgements
 \par}
 {\tc\tcl3 \v Acknowledgements}
 As noted, this is created with boost as well as using some example code from OpenGL as a template. However, the shader loading function is copied from OpenGL tutorials.\par}
-{\bkmkstart AAAAAAAAIZ}
-{\bkmkend AAAAAAAAIZ}
+{\bkmkstart AAAAAAAAPT}
+{\bkmkend AAAAAAAAPT}
 {{\pard\plain \s3\sb240\sa60\keepn\widctlpar\adjustright \b\f1\cgrid 
 Bugs
 \par}
@@ -323,12 +326,12 @@ enable_shared_from_this
 {
 \par
 \pard\plain \s72\li720\sa24\sb24\widctlpar\tqr\tldot\tx8640\adjustright \fs20\cgrid 
-TCPClient\tab {\field\fldedit {\*\fldinst PAGEREF AAAAAAAAIM \\*MERGEFORMAT}{\fldrslt pagenum}}
+TCPClient\tab {\field\fldedit {\*\fldinst PAGEREF AAAAAAAAPG \\*MERGEFORMAT}{\fldrslt pagenum}}
 \par
 }\par
-oi_t\tab {\field\fldedit {\*\fldinst PAGEREF AAAAAAAAFA \\*MERGEFORMAT}{\fldrslt pagenum}}
+oi_t\tab {\field\fldedit {\*\fldinst PAGEREF AAAAAAAALU \\*MERGEFORMAT}{\fldrslt pagenum}}
 \par
-Render\tab {\field\fldedit {\*\fldinst PAGEREF AAAAAAAAHQ \\*MERGEFORMAT}{\fldrslt pagenum}}
+Render\tab {\field\fldedit {\*\fldinst PAGEREF AAAAAAAAOK \\*MERGEFORMAT}{\fldrslt pagenum}}
 \par
 }
 \pard\plain \sect\sbkpage
@@ -343,11 +346,11 @@ Data Structures\par \pard\plain
 \par
 \pard\plain \s71\li360\sa27\sb27\widctlpar\tqr\tldot\tx8640\adjustright \fs20\cgrid 
 {\b {\b oi_t} ({\s17\sa60\sb30\widctlpar\qj \fs22\cgrid 
-IRobot Create Sensor Data })} \tab {\field\fldedit {\*\fldinst PAGEREF AAAAAAAAFA \\*MERGEFORMAT}{\fldrslt pagenum}}
+IRobot Create Sensor Data })} \tab {\field\fldedit {\*\fldinst PAGEREF AAAAAAAALU \\*MERGEFORMAT}{\fldrslt pagenum}}
 \par
-{\b {\b Render} } \tab {\field\fldedit {\*\fldinst PAGEREF AAAAAAAAHQ \\*MERGEFORMAT}{\fldrslt pagenum}}
+{\b {\b Render} } \tab {\field\fldedit {\*\fldinst PAGEREF AAAAAAAAOK \\*MERGEFORMAT}{\fldrslt pagenum}}
 \par
-{\b {\b TCPClient} } \tab {\field\fldedit {\*\fldinst PAGEREF AAAAAAAAIM \\*MERGEFORMAT}{\fldrslt pagenum}}
+{\b {\b TCPClient} } \tab {\field\fldedit {\*\fldinst PAGEREF AAAAAAAAPG \\*MERGEFORMAT}{\fldrslt pagenum}}
 \par
 \par}
 \pard\plain \sect\sbkpage
@@ -376,7 +379,8 @@ Library of functions for processing and communicating with the robot })} \tab {\
 {\b C:/Users/DonsterLaptop/Documents/Robot288/cpre288_generalpurposeautomatedrobot/Gui/{\b tcp.h} ({\s17\sa60\sb30\widctlpar\qj \fs22\cgrid 
 Header for processing and communicating with The robot })} \tab {\field\fldedit {\*\fldinst PAGEREF AAAAAAAAAL \\*MERGEFORMAT}{\fldrslt pagenum}}
 \par
-{\b C:/Users/DonsterLaptop/Documents/Robot288/cpre288_generalpurposeautomatedrobot/Robot/{\b main.c} } \tab {\field\fldedit {\*\fldinst PAGEREF AAAAAAAAJE \\*MERGEFORMAT}{\fldrslt pagenum}}
+{\b C:/Users/DonsterLaptop/Documents/Robot288/cpre288_generalpurposeautomatedrobot/Robot/{\b main.c} ({\s17\sa60\sb30\widctlpar\qj \fs22\cgrid 
+Library of functions for reading the cliff sensors and determining the type of boundary being detected })} \tab {\field\fldedit {\*\fldinst PAGEREF AAAAAAAABK \\*MERGEFORMAT}{\fldrslt pagenum}}
 \par
 {\b C:/Users/DonsterLaptop/Documents/Robot288/cpre288_generalpurposeautomatedrobot/Robot/Communication/{\b uart.c} ({\s17\sa60\sb30\widctlpar\qj \fs22\cgrid 
 Library used to set up the RS232 connector and WIFI module uses UART1 at 115200 })} \tab {\field\fldedit {\*\fldinst PAGEREF AAAAAAAAAM \\*MERGEFORMAT}{\fldrslt pagenum}}
@@ -385,56 +389,64 @@ Library used to set up the RS232 connector and WIFI module uses UART1 at 115200
 Header file for {\b uart.c} Used to set up the RS232 connector and WIFI module uses UART1 at 115200 })} \tab {\field\fldedit {\*\fldinst PAGEREF AAAAAAAAAZ \\*MERGEFORMAT}{\fldrslt pagenum}}
 \par
 {\b C:/Users/DonsterLaptop/Documents/Robot288/cpre288_generalpurposeautomatedrobot/Robot/Navigation/{\b movementcommands.c} ({\s17\sa60\sb30\widctlpar\qj \fs22\cgrid 
-Library of functions for controlling the robot heading and direction. Also includes the UART parser for commands })} \tab {\field\fldedit {\*\fldinst PAGEREF AAAAAAAABK \\*MERGEFORMAT}{\fldrslt pagenum}}
+Library of functions for controlling the robot heading and direction. Also includes the UART parser for commands })} \tab {\field\fldedit {\*\fldinst PAGEREF AAAAAAAABN \\*MERGEFORMAT}{\fldrslt pagenum}}
 \par
 {\b C:/Users/DonsterLaptop/Documents/Robot288/cpre288_generalpurposeautomatedrobot/Robot/Navigation/{\b movementcommands.h} ({\s17\sa60\sb30\widctlpar\qj \fs22\cgrid 
-Header for controlling the robot heading and direction. Also includes the UART parser for commands })} \tab {\field\fldedit {\*\fldinst PAGEREF AAAAAAAABW \\*MERGEFORMAT}{\fldrslt pagenum}}
+Header for controlling the robot heading and direction. Also includes the UART parser for commands })} \tab {\field\fldedit {\*\fldinst PAGEREF AAAAAAAABZ \\*MERGEFORMAT}{\fldrslt pagenum}}
 \par
 {\b C:/Users/DonsterLaptop/Documents/Robot288/cpre288_generalpurposeautomatedrobot/Robot/Sensor/{\b cliff_sensor.c} ({\s17\sa60\sb30\widctlpar\qj \fs22\cgrid 
-Library of functions for reading the cliff sensors and determining the type of boundary being detected })} \tab {\field\fldedit {\*\fldinst PAGEREF AAAAAAAACD \\*MERGEFORMAT}{\fldrslt pagenum}}
+Library of functions for reading the cliff sensors and determining the type of boundary being detected })} \tab {\field\fldedit {\*\fldinst PAGEREF AAAAAAAACG \\*MERGEFORMAT}{\fldrslt pagenum}}
 \par
 {\b C:/Users/DonsterLaptop/Documents/Robot288/cpre288_generalpurposeautomatedrobot/Robot/Sensor/{\b cliff_sensor.h} ({\s17\sa60\sb30\widctlpar\qj \fs22\cgrid 
-Header file for {\b cliff_sensor.c} })} \tab {\field\fldedit {\*\fldinst PAGEREF AAAAAAAACH \\*MERGEFORMAT}{\fldrslt pagenum}}
+Header file for {\b cliff_sensor.c} })} \tab {\field\fldedit {\*\fldinst PAGEREF AAAAAAAACK \\*MERGEFORMAT}{\fldrslt pagenum}}
 \par
 {\b C:/Users/DonsterLaptop/Documents/Robot288/cpre288_generalpurposeautomatedrobot/Robot/Sensor/{\b ir.c} ({\s17\sa60\sb30\widctlpar\qj \fs22\cgrid 
-Library of functions for reading the IR Sensor })} \tab {\field\fldedit {\*\fldinst PAGEREF AAAAAAAACN \\*MERGEFORMAT}{\fldrslt pagenum}}
+Library of functions for reading the IR Sensor })} \tab {\field\fldedit {\*\fldinst PAGEREF AAAAAAAACQ \\*MERGEFORMAT}{\fldrslt pagenum}}
 \par
 {\b C:/Users/DonsterLaptop/Documents/Robot288/cpre288_generalpurposeautomatedrobot/Robot/Sensor/{\b ir.h} ({\s17\sa60\sb30\widctlpar\qj \fs22\cgrid 
-Header file for {\b ir.c} })} \tab {\field\fldedit {\*\fldinst PAGEREF AAAAAAAACW \\*MERGEFORMAT}{\fldrslt pagenum}}
+Header file for {\b ir.c} })} \tab {\field\fldedit {\*\fldinst PAGEREF AAAAAAAACZ \\*MERGEFORMAT}{\fldrslt pagenum}}
 \par
 {\b C:/Users/DonsterLaptop/Documents/Robot288/cpre288_generalpurposeautomatedrobot/Robot/Sensor/{\b sonic.c} ({\s17\sa60\sb30\widctlpar\qj \fs22\cgrid 
-Library of functions for reading the Sonic Sensor })} \tab {\field\fldedit {\*\fldinst PAGEREF AAAAAAAADC \\*MERGEFORMAT}{\fldrslt pagenum}}
+Library of functions for reading the Sonic Sensor })} \tab {\field\fldedit {\*\fldinst PAGEREF AAAAAAAADF \\*MERGEFORMAT}{\fldrslt pagenum}}
 \par
 {\b C:/Users/DonsterLaptop/Documents/Robot288/cpre288_generalpurposeautomatedrobot/Robot/Sensor/{\b sonic.h} ({\s17\sa60\sb30\widctlpar\qj \fs22\cgrid 
-Header file for {\b sonic.c} })} \tab {\field\fldedit {\*\fldinst PAGEREF AAAAAAAADO \\*MERGEFORMAT}{\fldrslt pagenum}}
+Header file for {\b sonic.c} })} \tab {\field\fldedit {\*\fldinst PAGEREF AAAAAAAADR \\*MERGEFORMAT}{\fldrslt pagenum}}
 \par
 {\b C:/Users/DonsterLaptop/Documents/Robot288/cpre288_generalpurposeautomatedrobot/Robot/Sensor/{\b sweep_sensor.c} ({\s17\sa60\sb30\widctlpar\qj \fs22\cgrid 
-Library of functions for controlling and reading data from the sensors in the servo arm assembly })} \tab {\field\fldedit {\*\fldinst PAGEREF AAAAAAAADW \\*MERGEFORMAT}{\fldrslt pagenum}}
+Library of functions for controlling and reading data from the sensors in the servo arm assembly })} \tab {\field\fldedit {\*\fldinst PAGEREF AAAAAAAADZ \\*MERGEFORMAT}{\fldrslt pagenum}}
 \par
 {\b C:/Users/DonsterLaptop/Documents/Robot288/cpre288_generalpurposeautomatedrobot/Robot/Sensor/{\b sweep_sensor.h} ({\s17\sa60\sb30\widctlpar\qj \fs22\cgrid 
-Header file for {\b sweep_sensor.c} })} \tab {\field\fldedit {\*\fldinst PAGEREF AAAAAAAAEN \\*MERGEFORMAT}{\fldrslt pagenum}}
+Header file for {\b sweep_sensor.c} })} \tab {\field\fldedit {\*\fldinst PAGEREF AAAAAAAAEQ \\*MERGEFORMAT}{\fldrslt pagenum}}
 \par
-{\b C:/Users/DonsterLaptop/Documents/Robot288/cpre288_generalpurposeautomatedrobot/Robot/Utils/{\b lcd.c} } \tab {\field\fldedit {\*\fldinst PAGEREF AAAAAAAAJF \\*MERGEFORMAT}{\fldrslt pagenum}}
+{\b C:/Users/DonsterLaptop/Documents/Robot288/cpre288_generalpurposeautomatedrobot/Robot/Utils/{\b lcd.c} ({\s17\sa60\sb30\widctlpar\qj \fs22\cgrid 
+Functions for displaying content on the 4x16 Character LCD Screen })} \tab {\field\fldedit {\*\fldinst PAGEREF AAAAAAAAEZ \\*MERGEFORMAT}{\fldrslt pagenum}}
 \par
-{\b C:/Users/DonsterLaptop/Documents/Robot288/cpre288_generalpurposeautomatedrobot/Robot/Utils/{\b lcd.h} } \tab {\field\fldedit {\*\fldinst PAGEREF AAAAAAAAJG \\*MERGEFORMAT}{\fldrslt pagenum}}
+{\b C:/Users/DonsterLaptop/Documents/Robot288/cpre288_generalpurposeautomatedrobot/Robot/Utils/{\b lcd.h} ({\s17\sa60\sb30\widctlpar\qj \fs22\cgrid 
+Header file for {\b lcd.c} })} \tab {\field\fldedit {\*\fldinst PAGEREF AAAAAAAAGO \\*MERGEFORMAT}{\fldrslt pagenum}}
 \par
-{\b C:/Users/DonsterLaptop/Documents/Robot288/cpre288_generalpurposeautomatedrobot/Robot/Utils/{\b open_interface.c} } \tab {\field\fldedit {\*\fldinst PAGEREF AAAAAAAAJH \\*MERGEFORMAT}{\fldrslt pagenum}}
+{\b C:/Users/DonsterLaptop/Documents/Robot288/cpre288_generalpurposeautomatedrobot/Robot/Utils/{\b open_interface.c} ({\s17\sa60\sb30\widctlpar\qj \fs22\cgrid 
+Contains all functionality to interface with the IRobot Create V2 Communication over UART4 at 115200 })} \tab {\field\fldedit {\*\fldinst PAGEREF AAAAAAAAGX \\*MERGEFORMAT}{\fldrslt pagenum}}
 \par
-{\b C:/Users/DonsterLaptop/Documents/Robot288/cpre288_generalpurposeautomatedrobot/Robot/Utils/{\b open_interface.h} } \tab {\field\fldedit {\*\fldinst PAGEREF AAAAAAAAJI \\*MERGEFORMAT}{\fldrslt pagenum}}
+{\b C:/Users/DonsterLaptop/Documents/Robot288/cpre288_generalpurposeautomatedrobot/Robot/Utils/{\b open_interface.h} ({\s17\sa60\sb30\widctlpar\qj \fs22\cgrid 
+Header file for {\b open_interface.c} Contains all functionality to interface with the IRobot Create V2 Communication over UART4 at 115200 })} \tab {\field\fldedit {\*\fldinst PAGEREF AAAAAAAAJS \\*MERGEFORMAT}{\fldrslt pagenum}}
 \par
 {\b C:/Users/DonsterLaptop/Documents/Robot288/cpre288_generalpurposeautomatedrobot/Robot/Utils/{\b Sound.c} ({\s17\sa60\sb30\widctlpar\qj \fs22\cgrid 
-Library of functions for playing sound })} \tab {\field\fldedit {\*\fldinst PAGEREF AAAAAAAAEW \\*MERGEFORMAT}{\fldrslt pagenum}}
+Library of functions for playing sound })} \tab {\field\fldedit {\*\fldinst PAGEREF AAAAAAAAKI \\*MERGEFORMAT}{\fldrslt pagenum}}
 \par
 {\b C:/Users/DonsterLaptop/Documents/Robot288/cpre288_generalpurposeautomatedrobot/Robot/Utils/{\b Sound.h} ({\s17\sa60\sb30\widctlpar\qj \fs22\cgrid 
-Header file for {\b Sound.c} })} \tab {\field\fldedit {\*\fldinst PAGEREF AAAAAAAAEY \\*MERGEFORMAT}{\fldrslt pagenum}}
+Header file for {\b Sound.c} })} \tab {\field\fldedit {\*\fldinst PAGEREF AAAAAAAAKK \\*MERGEFORMAT}{\fldrslt pagenum}}
 \par
-{\b C:/Users/DonsterLaptop/Documents/Robot288/cpre288_generalpurposeautomatedrobot/Robot/Utils/{\b timer.c} } \tab {\field\fldedit {\*\fldinst PAGEREF AAAAAAAAJJ \\*MERGEFORMAT}{\fldrslt pagenum}}
+{\b C:/Users/DonsterLaptop/Documents/Robot288/cpre288_generalpurposeautomatedrobot/Robot/Utils/{\b timer.c} ({\s17\sa60\sb30\widctlpar\qj \fs22\cgrid 
+Library Functions for pause timer })} \tab {\field\fldedit {\*\fldinst PAGEREF AAAAAAAAKM \\*MERGEFORMAT}{\fldrslt pagenum}}
 \par
-{\b C:/Users/DonsterLaptop/Documents/Robot288/cpre288_generalpurposeautomatedrobot/Robot/Utils/{\b timer.h} } \tab {\field\fldedit {\*\fldinst PAGEREF AAAAAAAAJK \\*MERGEFORMAT}{\fldrslt pagenum}}
+{\b C:/Users/DonsterLaptop/Documents/Robot288/cpre288_generalpurposeautomatedrobot/Robot/Utils/{\b timer.h} ({\s17\sa60\sb30\widctlpar\qj \fs22\cgrid 
+Header file for {\b timer.c} Library Functions for pause timer })} \tab {\field\fldedit {\*\fldinst PAGEREF AAAAAAAAKV \\*MERGEFORMAT}{\fldrslt pagenum}}
 \par
-{\b C:/Users/DonsterLaptop/Documents/Robot288/cpre288_generalpurposeautomatedrobot/Robot/Utils/{\b timer4.c} } \tab {\field\fldedit {\*\fldinst PAGEREF AAAAAAAAJL \\*MERGEFORMAT}{\fldrslt pagenum}}
+{\b C:/Users/DonsterLaptop/Documents/Robot288/cpre288_generalpurposeautomatedrobot/Robot/Utils/{\b timer4.c} ({\s17\sa60\sb30\widctlpar\qj \fs22\cgrid 
+Library file for handling a timer interrupt for IR Sensor })} \tab {\field\fldedit {\*\fldinst PAGEREF AAAAAAAALN \\*MERGEFORMAT}{\fldrslt pagenum}}
 \par
-{\b C:/Users/DonsterLaptop/Documents/Robot288/cpre288_generalpurposeautomatedrobot/Robot/Utils/{\b timer4.h} } \tab {\field\fldedit {\*\fldinst PAGEREF AAAAAAAAJM \\*MERGEFORMAT}{\fldrslt pagenum}}
+{\b C:/Users/DonsterLaptop/Documents/Robot288/cpre288_generalpurposeautomatedrobot/Robot/Utils/{\b timer4.h} ({\s17\sa60\sb30\widctlpar\qj \fs22\cgrid 
+Header file for handling a timer interrupt for IR Sensor })} \tab {\field\fldedit {\*\fldinst PAGEREF AAAAAAAALS \\*MERGEFORMAT}{\fldrslt pagenum}}
 \par
 \par}
 \pard\plain \sect\sbkpage
@@ -445,8 +457,8 @@ Data Structure Documentation{\tc \v Data Structure Documentation}
 oi_t Struct Reference\par \pard\plain 
 {\tc\tcl2 \v oi_t}
 {\xe \v oi_t}
-{\bkmkstart AAAAAAAAFA}
-{\bkmkend AAAAAAAAFA}
+{\bkmkstart AAAAAAAALU}
+{\bkmkend AAAAAAAALU}
 \par
 {
 {\s17\sa60\sb30\widctlpar\qj \fs22\cgrid 
@@ -460,338 +472,338 @@ Data Fields\par
 {
 \pard\plain \s80\fi-360\li360\widctlpar\jclisttab\tx360{\*\pn \pnlvlbody\ilvl0\ls1\pnrnot0\pndec }\ls1\adjustright \fs20\cgrid 
 
-uint32_t {\b wheelDropLeft}:1{\bkmkstart AAAAAAAAFB}
-{\bkmkend AAAAAAAAFB}
+uint32_t {\b wheelDropLeft}:1{\bkmkstart AAAAAAAALV}
+{\bkmkend AAAAAAAALV}
 \par
 \pard\plain \s80\fi-360\li360\widctlpar\jclisttab\tx360{\*\pn \pnlvlbody\ilvl0\ls1\pnrnot0\pndec }\ls1\adjustright \fs20\cgrid 
 
-uint32_t {\b wheelDropRight}:1{\bkmkstart AAAAAAAAFC}
-{\bkmkend AAAAAAAAFC}
+uint32_t {\b wheelDropRight}:1{\bkmkstart AAAAAAAALW}
+{\bkmkend AAAAAAAALW}
 \par
 \pard\plain \s80\fi-360\li360\widctlpar\jclisttab\tx360{\*\pn \pnlvlbody\ilvl0\ls1\pnrnot0\pndec }\ls1\adjustright \fs20\cgrid 
 
-uint32_t {\b bumpLeft}:1{\bkmkstart AAAAAAAAFD}
-{\bkmkend AAAAAAAAFD}
+uint32_t {\b bumpLeft}:1{\bkmkstart AAAAAAAALX}
+{\bkmkend AAAAAAAALX}
 \par
 \pard\plain \s80\fi-360\li360\widctlpar\jclisttab\tx360{\*\pn \pnlvlbody\ilvl0\ls1\pnrnot0\pndec }\ls1\adjustright \fs20\cgrid 
 
-uint32_t {\b bumpRight}:1{\bkmkstart AAAAAAAAFE}
-{\bkmkend AAAAAAAAFE}
+uint32_t {\b bumpRight}:1{\bkmkstart AAAAAAAALY}
+{\bkmkend AAAAAAAALY}
 \par
 \pard\plain \s80\fi-360\li360\widctlpar\jclisttab\tx360{\*\pn \pnlvlbody\ilvl0\ls1\pnrnot0\pndec }\ls1\adjustright \fs20\cgrid 
 
-uint32_t {\b cliffLeft}:1{\bkmkstart AAAAAAAAFF}
-{\bkmkend AAAAAAAAFF}
+uint32_t {\b cliffLeft}:1{\bkmkstart AAAAAAAALZ}
+{\bkmkend AAAAAAAALZ}
 \par
 \pard\plain \s80\fi-360\li360\widctlpar\jclisttab\tx360{\*\pn \pnlvlbody\ilvl0\ls1\pnrnot0\pndec }\ls1\adjustright \fs20\cgrid 
 
-uint32_t {\b cliffFrontLeft}:1{\bkmkstart AAAAAAAAFG}
-{\bkmkend AAAAAAAAFG}
+uint32_t {\b cliffFrontLeft}:1{\bkmkstart AAAAAAAAMA}
+{\bkmkend AAAAAAAAMA}
 \par
 \pard\plain \s80\fi-360\li360\widctlpar\jclisttab\tx360{\*\pn \pnlvlbody\ilvl0\ls1\pnrnot0\pndec }\ls1\adjustright \fs20\cgrid 
 
-uint32_t {\b cliffFrontRight}:1{\bkmkstart AAAAAAAAFH}
-{\bkmkend AAAAAAAAFH}
+uint32_t {\b cliffFrontRight}:1{\bkmkstart AAAAAAAAMB}
+{\bkmkend AAAAAAAAMB}
 \par
 \pard\plain \s80\fi-360\li360\widctlpar\jclisttab\tx360{\*\pn \pnlvlbody\ilvl0\ls1\pnrnot0\pndec }\ls1\adjustright \fs20\cgrid 
 
-uint32_t {\b cliffRight}:1{\bkmkstart AAAAAAAAFI}
-{\bkmkend AAAAAAAAFI}
+uint32_t {\b cliffRight}:1{\bkmkstart AAAAAAAAMC}
+{\bkmkend AAAAAAAAMC}
 \par
 \pard\plain \s80\fi-360\li360\widctlpar\jclisttab\tx360{\*\pn \pnlvlbody\ilvl0\ls1\pnrnot0\pndec }\ls1\adjustright \fs20\cgrid 
 
-uint32_t {\b lightBumperRight}:1{\bkmkstart AAAAAAAAFJ}
-{\bkmkend AAAAAAAAFJ}
+uint32_t {\b lightBumperRight}:1{\bkmkstart AAAAAAAAMD}
+{\bkmkend AAAAAAAAMD}
 \par
 \pard\plain \s80\fi-360\li360\widctlpar\jclisttab\tx360{\*\pn \pnlvlbody\ilvl0\ls1\pnrnot0\pndec }\ls1\adjustright \fs20\cgrid 
 
-uint32_t {\b lightBumperFrontRight}:1{\bkmkstart AAAAAAAAFK}
-{\bkmkend AAAAAAAAFK}
+uint32_t {\b lightBumperFrontRight}:1{\bkmkstart AAAAAAAAME}
+{\bkmkend AAAAAAAAME}
 \par
 \pard\plain \s80\fi-360\li360\widctlpar\jclisttab\tx360{\*\pn \pnlvlbody\ilvl0\ls1\pnrnot0\pndec }\ls1\adjustright \fs20\cgrid 
 
-uint32_t {\b lightBumperCenterRight}:1{\bkmkstart AAAAAAAAFL}
-{\bkmkend AAAAAAAAFL}
+uint32_t {\b lightBumperCenterRight}:1{\bkmkstart AAAAAAAAMF}
+{\bkmkend AAAAAAAAMF}
 \par
 \pard\plain \s80\fi-360\li360\widctlpar\jclisttab\tx360{\*\pn \pnlvlbody\ilvl0\ls1\pnrnot0\pndec }\ls1\adjustright \fs20\cgrid 
 
-uint32_t {\b lightBumperCenterLeft}:1{\bkmkstart AAAAAAAAFM}
-{\bkmkend AAAAAAAAFM}
+uint32_t {\b lightBumperCenterLeft}:1{\bkmkstart AAAAAAAAMG}
+{\bkmkend AAAAAAAAMG}
 \par
 \pard\plain \s80\fi-360\li360\widctlpar\jclisttab\tx360{\*\pn \pnlvlbody\ilvl0\ls1\pnrnot0\pndec }\ls1\adjustright \fs20\cgrid 
 
-uint32_t {\b lightBumperFrontLeft}:1{\bkmkstart AAAAAAAAFN}
-{\bkmkend AAAAAAAAFN}
+uint32_t {\b lightBumperFrontLeft}:1{\bkmkstart AAAAAAAAMH}
+{\bkmkend AAAAAAAAMH}
 \par
 \pard\plain \s80\fi-360\li360\widctlpar\jclisttab\tx360{\*\pn \pnlvlbody\ilvl0\ls1\pnrnot0\pndec }\ls1\adjustright \fs20\cgrid 
 
-uint32_t {\b lightBumperLeft}:1{\bkmkstart AAAAAAAAFO}
-{\bkmkend AAAAAAAAFO}
+uint32_t {\b lightBumperLeft}:1{\bkmkstart AAAAAAAAMI}
+{\bkmkend AAAAAAAAMI}
 \par
 \pard\plain \s80\fi-360\li360\widctlpar\jclisttab\tx360{\*\pn \pnlvlbody\ilvl0\ls1\pnrnot0\pndec }\ls1\adjustright \fs20\cgrid 
 
-uint32_t {\b wallSensor}:1{\bkmkstart AAAAAAAAFP}
-{\bkmkend AAAAAAAAFP}
+uint32_t {\b wallSensor}:1{\bkmkstart AAAAAAAAMJ}
+{\bkmkend AAAAAAAAMJ}
 \par
 \pard\plain \s80\fi-360\li360\widctlpar\jclisttab\tx360{\*\pn \pnlvlbody\ilvl0\ls1\pnrnot0\pndec }\ls1\adjustright \fs20\cgrid 
 
-uint32_t {\b virtualWall}:1{\bkmkstart AAAAAAAAFQ}
-{\bkmkend AAAAAAAAFQ}
+uint32_t {\b virtualWall}:1{\bkmkstart AAAAAAAAMK}
+{\bkmkend AAAAAAAAMK}
 \par
 \pard\plain \s80\fi-360\li360\widctlpar\jclisttab\tx360{\*\pn \pnlvlbody\ilvl0\ls1\pnrnot0\pndec }\ls1\adjustright \fs20\cgrid 
 
-uint32_t {\b overcurrentLeftWheel}:1{\bkmkstart AAAAAAAAFR}
-{\bkmkend AAAAAAAAFR}
+uint32_t {\b overcurrentLeftWheel}:1{\bkmkstart AAAAAAAAML}
+{\bkmkend AAAAAAAAML}
 \par
 \pard\plain \s80\fi-360\li360\widctlpar\jclisttab\tx360{\*\pn \pnlvlbody\ilvl0\ls1\pnrnot0\pndec }\ls1\adjustright \fs20\cgrid 
 
-uint32_t {\b overcurrentRightWheel}:1{\bkmkstart AAAAAAAAFS}
-{\bkmkend AAAAAAAAFS}
+uint32_t {\b overcurrentRightWheel}:1{\bkmkstart AAAAAAAAMM}
+{\bkmkend AAAAAAAAMM}
 \par
 \pard\plain \s80\fi-360\li360\widctlpar\jclisttab\tx360{\*\pn \pnlvlbody\ilvl0\ls1\pnrnot0\pndec }\ls1\adjustright \fs20\cgrid 
 
-uint32_t {\b overcurrentMainBrush}:1{\bkmkstart AAAAAAAAFT}
-{\bkmkend AAAAAAAAFT}
+uint32_t {\b overcurrentMainBrush}:1{\bkmkstart AAAAAAAAMN}
+{\bkmkend AAAAAAAAMN}
 \par
 \pard\plain \s80\fi-360\li360\widctlpar\jclisttab\tx360{\*\pn \pnlvlbody\ilvl0\ls1\pnrnot0\pndec }\ls1\adjustright \fs20\cgrid 
 
-uint32_t {\b overcurrentSideBrush}:1{\bkmkstart AAAAAAAAFU}
-{\bkmkend AAAAAAAAFU}
+uint32_t {\b overcurrentSideBrush}:1{\bkmkstart AAAAAAAAMO}
+{\bkmkend AAAAAAAAMO}
 \par
 \pard\plain \s80\fi-360\li360\widctlpar\jclisttab\tx360{\*\pn \pnlvlbody\ilvl0\ls1\pnrnot0\pndec }\ls1\adjustright \fs20\cgrid 
 
-uint32_t {\b buttonClock}:1{\bkmkstart AAAAAAAAFV}
-{\bkmkend AAAAAAAAFV}
+uint32_t {\b buttonClock}:1{\bkmkstart AAAAAAAAMP}
+{\bkmkend AAAAAAAAMP}
 \par
 \pard\plain \s80\fi-360\li360\widctlpar\jclisttab\tx360{\*\pn \pnlvlbody\ilvl0\ls1\pnrnot0\pndec }\ls1\adjustright \fs20\cgrid 
 
-uint32_t {\b buttonSchedule}:1{\bkmkstart AAAAAAAAFW}
-{\bkmkend AAAAAAAAFW}
+uint32_t {\b buttonSchedule}:1{\bkmkstart AAAAAAAAMQ}
+{\bkmkend AAAAAAAAMQ}
 \par
 \pard\plain \s80\fi-360\li360\widctlpar\jclisttab\tx360{\*\pn \pnlvlbody\ilvl0\ls1\pnrnot0\pndec }\ls1\adjustright \fs20\cgrid 
 
-uint32_t {\b buttonDay}:1{\bkmkstart AAAAAAAAFX}
-{\bkmkend AAAAAAAAFX}
+uint32_t {\b buttonDay}:1{\bkmkstart AAAAAAAAMR}
+{\bkmkend AAAAAAAAMR}
 \par
 \pard\plain \s80\fi-360\li360\widctlpar\jclisttab\tx360{\*\pn \pnlvlbody\ilvl0\ls1\pnrnot0\pndec }\ls1\adjustright \fs20\cgrid 
 
-uint32_t {\b buttonHour}:1{\bkmkstart AAAAAAAAFY}
-{\bkmkend AAAAAAAAFY}
+uint32_t {\b buttonHour}:1{\bkmkstart AAAAAAAAMS}
+{\bkmkend AAAAAAAAMS}
 \par
 \pard\plain \s80\fi-360\li360\widctlpar\jclisttab\tx360{\*\pn \pnlvlbody\ilvl0\ls1\pnrnot0\pndec }\ls1\adjustright \fs20\cgrid 
 
-uint32_t {\b buttonMinute}:1{\bkmkstart AAAAAAAAFZ}
-{\bkmkend AAAAAAAAFZ}
+uint32_t {\b buttonMinute}:1{\bkmkstart AAAAAAAAMT}
+{\bkmkend AAAAAAAAMT}
 \par
 \pard\plain \s80\fi-360\li360\widctlpar\jclisttab\tx360{\*\pn \pnlvlbody\ilvl0\ls1\pnrnot0\pndec }\ls1\adjustright \fs20\cgrid 
 
-uint32_t {\b buttonDock}:1{\bkmkstart AAAAAAAAGA}
-{\bkmkend AAAAAAAAGA}
+uint32_t {\b buttonDock}:1{\bkmkstart AAAAAAAAMU}
+{\bkmkend AAAAAAAAMU}
 \par
 \pard\plain \s80\fi-360\li360\widctlpar\jclisttab\tx360{\*\pn \pnlvlbody\ilvl0\ls1\pnrnot0\pndec }\ls1\adjustright \fs20\cgrid 
 
-uint32_t {\b buttonSpot}:1{\bkmkstart AAAAAAAAGB}
-{\bkmkend AAAAAAAAGB}
+uint32_t {\b buttonSpot}:1{\bkmkstart AAAAAAAAMV}
+{\bkmkend AAAAAAAAMV}
 \par
 \pard\plain \s80\fi-360\li360\widctlpar\jclisttab\tx360{\*\pn \pnlvlbody\ilvl0\ls1\pnrnot0\pndec }\ls1\adjustright \fs20\cgrid 
 
-uint32_t {\b buttonClean}:1{\bkmkstart AAAAAAAAGC}
-{\bkmkend AAAAAAAAGC}
+uint32_t {\b buttonClean}:1{\bkmkstart AAAAAAAAMW}
+{\bkmkend AAAAAAAAMW}
 \par
 \pard\plain \s80\fi-360\li360\widctlpar\jclisttab\tx360{\*\pn \pnlvlbody\ilvl0\ls1\pnrnot0\pndec }\ls1\adjustright \fs20\cgrid 
 
-uint16_t {\b cliffLeftSignal}{\bkmkstart AAAAAAAAGD}
-{\bkmkend AAAAAAAAGD}
+uint16_t {\b cliffLeftSignal}{\bkmkstart AAAAAAAAMX}
+{\bkmkend AAAAAAAAMX}
 \par
 \pard\plain \s80\fi-360\li360\widctlpar\jclisttab\tx360{\*\pn \pnlvlbody\ilvl0\ls1\pnrnot0\pndec }\ls1\adjustright \fs20\cgrid 
 
-uint16_t {\b cliffFrontLeftSignal}{\bkmkstart AAAAAAAAGE}
-{\bkmkend AAAAAAAAGE}
+uint16_t {\b cliffFrontLeftSignal}{\bkmkstart AAAAAAAAMY}
+{\bkmkend AAAAAAAAMY}
 \par
 \pard\plain \s80\fi-360\li360\widctlpar\jclisttab\tx360{\*\pn \pnlvlbody\ilvl0\ls1\pnrnot0\pndec }\ls1\adjustright \fs20\cgrid 
 
-uint16_t {\b cliffFrontRightSignal}{\bkmkstart AAAAAAAAGF}
-{\bkmkend AAAAAAAAGF}
+uint16_t {\b cliffFrontRightSignal}{\bkmkstart AAAAAAAAMZ}
+{\bkmkend AAAAAAAAMZ}
 \par
 \pard\plain \s80\fi-360\li360\widctlpar\jclisttab\tx360{\*\pn \pnlvlbody\ilvl0\ls1\pnrnot0\pndec }\ls1\adjustright \fs20\cgrid 
 
-uint16_t {\b cliffRightSignal}{\bkmkstart AAAAAAAAGG}
-{\bkmkend AAAAAAAAGG}
+uint16_t {\b cliffRightSignal}{\bkmkstart AAAAAAAANA}
+{\bkmkend AAAAAAAANA}
 \par
 \pard\plain \s80\fi-360\li360\widctlpar\jclisttab\tx360{\*\pn \pnlvlbody\ilvl0\ls1\pnrnot0\pndec }\ls1\adjustright \fs20\cgrid 
 
-uint16_t {\b lightBumpLeftSignal}{\bkmkstart AAAAAAAAGH}
-{\bkmkend AAAAAAAAGH}
+uint16_t {\b lightBumpLeftSignal}{\bkmkstart AAAAAAAANB}
+{\bkmkend AAAAAAAANB}
 \par
 \pard\plain \s80\fi-360\li360\widctlpar\jclisttab\tx360{\*\pn \pnlvlbody\ilvl0\ls1\pnrnot0\pndec }\ls1\adjustright \fs20\cgrid 
 
-uint16_t {\b lightBumpFrontLeftSignal}{\bkmkstart AAAAAAAAGI}
-{\bkmkend AAAAAAAAGI}
+uint16_t {\b lightBumpFrontLeftSignal}{\bkmkstart AAAAAAAANC}
+{\bkmkend AAAAAAAANC}
 \par
 \pard\plain \s80\fi-360\li360\widctlpar\jclisttab\tx360{\*\pn \pnlvlbody\ilvl0\ls1\pnrnot0\pndec }\ls1\adjustright \fs20\cgrid 
 
-uint16_t {\b lightBumpCenterLeftSignal}{\bkmkstart AAAAAAAAGJ}
-{\bkmkend AAAAAAAAGJ}
+uint16_t {\b lightBumpCenterLeftSignal}{\bkmkstart AAAAAAAAND}
+{\bkmkend AAAAAAAAND}
 \par
 \pard\plain \s80\fi-360\li360\widctlpar\jclisttab\tx360{\*\pn \pnlvlbody\ilvl0\ls1\pnrnot0\pndec }\ls1\adjustright \fs20\cgrid 
 
-uint16_t {\b lightBumpCenterRightSignal}{\bkmkstart AAAAAAAAGK}
-{\bkmkend AAAAAAAAGK}
+uint16_t {\b lightBumpCenterRightSignal}{\bkmkstart AAAAAAAANE}
+{\bkmkend AAAAAAAANE}
 \par
 \pard\plain \s80\fi-360\li360\widctlpar\jclisttab\tx360{\*\pn \pnlvlbody\ilvl0\ls1\pnrnot0\pndec }\ls1\adjustright \fs20\cgrid 
 
-uint16_t {\b lightBumpFrontRightSignal}{\bkmkstart AAAAAAAAGL}
-{\bkmkend AAAAAAAAGL}
+uint16_t {\b lightBumpFrontRightSignal}{\bkmkstart AAAAAAAANF}
+{\bkmkend AAAAAAAANF}
 \par
 \pard\plain \s80\fi-360\li360\widctlpar\jclisttab\tx360{\*\pn \pnlvlbody\ilvl0\ls1\pnrnot0\pndec }\ls1\adjustright \fs20\cgrid 
 
-uint16_t {\b lightBumpRightSignal}{\bkmkstart AAAAAAAAGM}
-{\bkmkend AAAAAAAAGM}
+uint16_t {\b lightBumpRightSignal}{\bkmkstart AAAAAAAANG}
+{\bkmkend AAAAAAAANG}
 \par
 \pard\plain \s80\fi-360\li360\widctlpar\jclisttab\tx360{\*\pn \pnlvlbody\ilvl0\ls1\pnrnot0\pndec }\ls1\adjustright \fs20\cgrid 
 
-uint16_t {\b wallSignal}{\bkmkstart AAAAAAAAGN}
-{\bkmkend AAAAAAAAGN}
+uint16_t {\b wallSignal}{\bkmkstart AAAAAAAANH}
+{\bkmkend AAAAAAAANH}
 \par
 \pard\plain \s80\fi-360\li360\widctlpar\jclisttab\tx360{\*\pn \pnlvlbody\ilvl0\ls1\pnrnot0\pndec }\ls1\adjustright \fs20\cgrid 
 
-uint8_t {\b dirtDetect}{\bkmkstart AAAAAAAAGO}
-{\bkmkend AAAAAAAAGO}
+uint8_t {\b dirtDetect}{\bkmkstart AAAAAAAANI}
+{\bkmkend AAAAAAAANI}
 \par
 \pard\plain \s80\fi-360\li360\widctlpar\jclisttab\tx360{\*\pn \pnlvlbody\ilvl0\ls1\pnrnot0\pndec }\ls1\adjustright \fs20\cgrid 
 
-int16_t {\b leftMotorCurrent}{\bkmkstart AAAAAAAAGP}
-{\bkmkend AAAAAAAAGP}
+int16_t {\b leftMotorCurrent}{\bkmkstart AAAAAAAANJ}
+{\bkmkend AAAAAAAANJ}
 \par
 \pard\plain \s80\fi-360\li360\widctlpar\jclisttab\tx360{\*\pn \pnlvlbody\ilvl0\ls1\pnrnot0\pndec }\ls1\adjustright \fs20\cgrid 
 
-int16_t {\b rightMotorCurrent}{\bkmkstart AAAAAAAAGQ}
-{\bkmkend AAAAAAAAGQ}
+int16_t {\b rightMotorCurrent}{\bkmkstart AAAAAAAANK}
+{\bkmkend AAAAAAAANK}
 \par
 \pard\plain \s80\fi-360\li360\widctlpar\jclisttab\tx360{\*\pn \pnlvlbody\ilvl0\ls1\pnrnot0\pndec }\ls1\adjustright \fs20\cgrid 
 
-int16_t {\b mainBrushMotorCurrent}{\bkmkstart AAAAAAAAGR}
-{\bkmkend AAAAAAAAGR}
+int16_t {\b mainBrushMotorCurrent}{\bkmkstart AAAAAAAANL}
+{\bkmkend AAAAAAAANL}
 \par
 \pard\plain \s80\fi-360\li360\widctlpar\jclisttab\tx360{\*\pn \pnlvlbody\ilvl0\ls1\pnrnot0\pndec }\ls1\adjustright \fs20\cgrid 
 
-int16_t {\b sideBrushMotorCurrent}{\bkmkstart AAAAAAAAGS}
-{\bkmkend AAAAAAAAGS}
+int16_t {\b sideBrushMotorCurrent}{\bkmkstart AAAAAAAANM}
+{\bkmkend AAAAAAAANM}
 \par
 \pard\plain \s80\fi-360\li360\widctlpar\jclisttab\tx360{\*\pn \pnlvlbody\ilvl0\ls1\pnrnot0\pndec }\ls1\adjustright \fs20\cgrid 
 
-int16_t {\b distance}{\bkmkstart AAAAAAAAGT}
-{\bkmkend AAAAAAAAGT}
+int16_t {\b distance}{\bkmkstart AAAAAAAANN}
+{\bkmkend AAAAAAAANN}
 \par
 \pard\plain \s80\fi-360\li360\widctlpar\jclisttab\tx360{\*\pn \pnlvlbody\ilvl0\ls1\pnrnot0\pndec }\ls1\adjustright \fs20\cgrid 
 
-float {\b angle}{\bkmkstart AAAAAAAAGU}
-{\bkmkend AAAAAAAAGU}
+float {\b angle}{\bkmkstart AAAAAAAANO}
+{\bkmkend AAAAAAAANO}
 \par
 \pard\plain \s80\fi-360\li360\widctlpar\jclisttab\tx360{\*\pn \pnlvlbody\ilvl0\ls1\pnrnot0\pndec }\ls1\adjustright \fs20\cgrid 
 
-int8_t {\b requestedVelocity}{\bkmkstart AAAAAAAAGV}
-{\bkmkend AAAAAAAAGV}
+int8_t {\b requestedVelocity}{\bkmkstart AAAAAAAANP}
+{\bkmkend AAAAAAAANP}
 \par
 \pard\plain \s80\fi-360\li360\widctlpar\jclisttab\tx360{\*\pn \pnlvlbody\ilvl0\ls1\pnrnot0\pndec }\ls1\adjustright \fs20\cgrid 
 
-int8_t {\b requestedRadius}{\bkmkstart AAAAAAAAGW}
-{\bkmkend AAAAAAAAGW}
+int8_t {\b requestedRadius}{\bkmkstart AAAAAAAANQ}
+{\bkmkend AAAAAAAANQ}
 \par
 \pard\plain \s80\fi-360\li360\widctlpar\jclisttab\tx360{\*\pn \pnlvlbody\ilvl0\ls1\pnrnot0\pndec }\ls1\adjustright \fs20\cgrid 
 
-int16_t {\b requestedRightVelocity}{\bkmkstart AAAAAAAAGX}
-{\bkmkend AAAAAAAAGX}
+int16_t {\b requestedRightVelocity}{\bkmkstart AAAAAAAANR}
+{\bkmkend AAAAAAAANR}
 \par
 \pard\plain \s80\fi-360\li360\widctlpar\jclisttab\tx360{\*\pn \pnlvlbody\ilvl0\ls1\pnrnot0\pndec }\ls1\adjustright \fs20\cgrid 
 
-int16_t {\b requestedLeftVelocity}{\bkmkstart AAAAAAAAGY}
-{\bkmkend AAAAAAAAGY}
+int16_t {\b requestedLeftVelocity}{\bkmkstart AAAAAAAANS}
+{\bkmkend AAAAAAAANS}
 \par
 \pard\plain \s80\fi-360\li360\widctlpar\jclisttab\tx360{\*\pn \pnlvlbody\ilvl0\ls1\pnrnot0\pndec }\ls1\adjustright \fs20\cgrid 
 
-uint16_t {\b leftEncoderCount}{\bkmkstart AAAAAAAAGZ}
-{\bkmkend AAAAAAAAGZ}
+uint16_t {\b leftEncoderCount}{\bkmkstart AAAAAAAANT}
+{\bkmkend AAAAAAAANT}
 \par
 \pard\plain \s80\fi-360\li360\widctlpar\jclisttab\tx360{\*\pn \pnlvlbody\ilvl0\ls1\pnrnot0\pndec }\ls1\adjustright \fs20\cgrid 
 
-uint16_t {\b rightEncoderCount}{\bkmkstart AAAAAAAAHA}
-{\bkmkend AAAAAAAAHA}
+uint16_t {\b rightEncoderCount}{\bkmkstart AAAAAAAANU}
+{\bkmkend AAAAAAAANU}
 \par
 \pard\plain \s80\fi-360\li360\widctlpar\jclisttab\tx360{\*\pn \pnlvlbody\ilvl0\ls1\pnrnot0\pndec }\ls1\adjustright \fs20\cgrid 
 
-char {\b infraredCharOmni}{\bkmkstart AAAAAAAAHB}
-{\bkmkend AAAAAAAAHB}
+char {\b infraredCharOmni}{\bkmkstart AAAAAAAANV}
+{\bkmkend AAAAAAAANV}
 \par
 \pard\plain \s80\fi-360\li360\widctlpar\jclisttab\tx360{\*\pn \pnlvlbody\ilvl0\ls1\pnrnot0\pndec }\ls1\adjustright \fs20\cgrid 
 
-char {\b infraredCharLeft}{\bkmkstart AAAAAAAAHC}
-{\bkmkend AAAAAAAAHC}
+char {\b infraredCharLeft}{\bkmkstart AAAAAAAANW}
+{\bkmkend AAAAAAAANW}
 \par
 \pard\plain \s80\fi-360\li360\widctlpar\jclisttab\tx360{\*\pn \pnlvlbody\ilvl0\ls1\pnrnot0\pndec }\ls1\adjustright \fs20\cgrid 
 
-char {\b infraredCharRight}{\bkmkstart AAAAAAAAHD}
-{\bkmkend AAAAAAAAHD}
+char {\b infraredCharRight}{\bkmkstart AAAAAAAANX}
+{\bkmkend AAAAAAAANX}
 \par
 \pard\plain \s80\fi-360\li360\widctlpar\jclisttab\tx360{\*\pn \pnlvlbody\ilvl0\ls1\pnrnot0\pndec }\ls1\adjustright \fs20\cgrid 
 
-uint8_t {\b chargingState}{\bkmkstart AAAAAAAAHE}
-{\bkmkend AAAAAAAAHE}
+uint8_t {\b chargingState}{\bkmkstart AAAAAAAANY}
+{\bkmkend AAAAAAAANY}
 \par
 \pard\plain \s80\fi-360\li360\widctlpar\jclisttab\tx360{\*\pn \pnlvlbody\ilvl0\ls1\pnrnot0\pndec }\ls1\adjustright \fs20\cgrid 
 
-uint8_t {\b chargingSourcesAvailable}{\bkmkstart AAAAAAAAHF}
-{\bkmkend AAAAAAAAHF}
+uint8_t {\b chargingSourcesAvailable}{\bkmkstart AAAAAAAANZ}
+{\bkmkend AAAAAAAANZ}
 \par
 \pard\plain \s80\fi-360\li360\widctlpar\jclisttab\tx360{\*\pn \pnlvlbody\ilvl0\ls1\pnrnot0\pndec }\ls1\adjustright \fs20\cgrid 
 
-uint16_t {\b batteryVoltage}{\bkmkstart AAAAAAAAHG}
-{\bkmkend AAAAAAAAHG}
+uint16_t {\b batteryVoltage}{\bkmkstart AAAAAAAAOA}
+{\bkmkend AAAAAAAAOA}
 \par
 \pard\plain \s80\fi-360\li360\widctlpar\jclisttab\tx360{\*\pn \pnlvlbody\ilvl0\ls1\pnrnot0\pndec }\ls1\adjustright \fs20\cgrid 
 
-int16_t {\b batteryCurrent}{\bkmkstart AAAAAAAAHH}
-{\bkmkend AAAAAAAAHH}
+int16_t {\b batteryCurrent}{\bkmkstart AAAAAAAAOB}
+{\bkmkend AAAAAAAAOB}
 \par
 \pard\plain \s80\fi-360\li360\widctlpar\jclisttab\tx360{\*\pn \pnlvlbody\ilvl0\ls1\pnrnot0\pndec }\ls1\adjustright \fs20\cgrid 
 
-uint8_t {\b batteryTemperature}{\bkmkstart AAAAAAAAHI}
-{\bkmkend AAAAAAAAHI}
+uint8_t {\b batteryTemperature}{\bkmkstart AAAAAAAAOC}
+{\bkmkend AAAAAAAAOC}
 \par
 \pard\plain \s80\fi-360\li360\widctlpar\jclisttab\tx360{\*\pn \pnlvlbody\ilvl0\ls1\pnrnot0\pndec }\ls1\adjustright \fs20\cgrid 
 
-uint16_t {\b batteryCharge}{\bkmkstart AAAAAAAAHJ}
-{\bkmkend AAAAAAAAHJ}
+uint16_t {\b batteryCharge}{\bkmkstart AAAAAAAAOD}
+{\bkmkend AAAAAAAAOD}
 \par
 \pard\plain \s80\fi-360\li360\widctlpar\jclisttab\tx360{\*\pn \pnlvlbody\ilvl0\ls1\pnrnot0\pndec }\ls1\adjustright \fs20\cgrid 
 
-uint16_t {\b batteryCapacity}{\bkmkstart AAAAAAAAHK}
-{\bkmkend AAAAAAAAHK}
+uint16_t {\b batteryCapacity}{\bkmkstart AAAAAAAAOE}
+{\bkmkend AAAAAAAAOE}
 \par
 \pard\plain \s80\fi-360\li360\widctlpar\jclisttab\tx360{\*\pn \pnlvlbody\ilvl0\ls1\pnrnot0\pndec }\ls1\adjustright \fs20\cgrid 
 
-uint8_t {\b songNumber}{\bkmkstart AAAAAAAAHL}
-{\bkmkend AAAAAAAAHL}
+uint8_t {\b songNumber}{\bkmkstart AAAAAAAAOF}
+{\bkmkend AAAAAAAAOF}
 \par
 \pard\plain \s80\fi-360\li360\widctlpar\jclisttab\tx360{\*\pn \pnlvlbody\ilvl0\ls1\pnrnot0\pndec }\ls1\adjustright \fs20\cgrid 
 
-uint8_t {\b songPlaying}{\bkmkstart AAAAAAAAHM}
-{\bkmkend AAAAAAAAHM}
+uint8_t {\b songPlaying}{\bkmkstart AAAAAAAAOG}
+{\bkmkend AAAAAAAAOG}
 \par
 \pard\plain \s80\fi-360\li360\widctlpar\jclisttab\tx360{\*\pn \pnlvlbody\ilvl0\ls1\pnrnot0\pndec }\ls1\adjustright \fs20\cgrid 
 
-uint8_t {\b oiMode}{\bkmkstart AAAAAAAAHN}
-{\bkmkend AAAAAAAAHN}
+uint8_t {\b oiMode}{\bkmkstart AAAAAAAAOH}
+{\bkmkend AAAAAAAAOH}
 \par
 \pard\plain \s80\fi-360\li360\widctlpar\jclisttab\tx360{\*\pn \pnlvlbody\ilvl0\ls1\pnrnot0\pndec }\ls1\adjustright \fs20\cgrid 
 
-uint8_t {\b numberOfStreamPackets}{\bkmkstart AAAAAAAAHO}
-{\bkmkend AAAAAAAAHO}
+uint8_t {\b numberOfStreamPackets}{\bkmkstart AAAAAAAAOI}
+{\bkmkend AAAAAAAAOI}
 \par
 \pard\plain \s80\fi-360\li360\widctlpar\jclisttab\tx360{\*\pn \pnlvlbody\ilvl0\ls1\pnrnot0\pndec }\ls1\adjustright \fs20\cgrid 
 
-uint8_t {\b stasis}{\bkmkstart AAAAAAAAHP}
-{\bkmkend AAAAAAAAHP}
+uint8_t {\b stasis}{\bkmkstart AAAAAAAAOJ}
+{\bkmkend AAAAAAAAOJ}
 \par
 }
 {\pard\widctlpar\brdrb\brdrs\brdrw5\brsp20 \adjustright \par}
@@ -807,7 +819,7 @@ Definition at line 31 of file open_interface.h.}\par
 {\pard\widctlpar\brdrb\brdrs\brdrw5\brsp20 \adjustright \par}
 The documentation for this struct was generated from the following file:{\par
 \pard\plain \s81\fi-360\li720\widctlpar\jclisttab\tx720{\*\pn \pnlvlbody\ilvl0\ls2\pnrnot0\pndec }\ls2\adjustright \fs20\cgrid 
-C:/Users/DonsterLaptop/Documents/Robot288/cpre288_generalpurposeautomatedrobot/Robot/Utils/open_interface.h\par
+C:/Users/DonsterLaptop/Documents/Robot288/cpre288_generalpurposeautomatedrobot/Robot/Utils/{\b open_interface.h}\par
 }\par \pard\plain 
 
 \pard\plain \sect\sbkpage
@@ -816,8 +828,8 @@ C:/Users/DonsterLaptop/Documents/Robot288/cpre288_generalpurposeautomatedrobot/R
 Render Class Reference\par \pard\plain 
 {\tc\tcl2 \v Render}
 {\xe \v Render}
-{\bkmkstart AAAAAAAAHQ}
-{\bkmkend AAAAAAAAHQ}
+{\bkmkstart AAAAAAAAOK}
+{\bkmkend AAAAAAAAOK}
 \par
 {
 {\f2 #include <render.h>}}\par
@@ -858,23 +870,23 @@ void {\b addMapLocation} ()\par
 void {\b renderMap} ()\par
 \pard\plain \s80\fi-360\li360\widctlpar\jclisttab\tx360{\*\pn \pnlvlbody\ilvl0\ls1\pnrnot0\pndec }\ls1\adjustright \fs20\cgrid 
 
-GLFWwindow * {\b getWindow} (){\bkmkstart AAAAAAAAHR}
-{\bkmkend AAAAAAAAHR}
+GLFWwindow * {\b getWindow} (){\bkmkstart AAAAAAAAOL}
+{\bkmkend AAAAAAAAOL}
 \par
 \pard\plain \s80\fi-360\li360\widctlpar\jclisttab\tx360{\*\pn \pnlvlbody\ilvl0\ls1\pnrnot0\pndec }\ls1\adjustright \fs20\cgrid 
 
-GLuint {\b loadShaders} (const char *vertex_file_path, const char *fragment_file_path){\bkmkstart AAAAAAAAHS}
-{\bkmkend AAAAAAAAHS}
+GLuint {\b loadShaders} (const char *vertex_file_path, const char *fragment_file_path){\bkmkstart AAAAAAAAOM}
+{\bkmkend AAAAAAAAOM}
 \par
 \pard\plain \s80\fi-360\li360\widctlpar\jclisttab\tx360{\*\pn \pnlvlbody\ilvl0\ls1\pnrnot0\pndec }\ls1\adjustright \fs20\cgrid 
 
-void {\b setSonarLine} (float angle){\bkmkstart AAAAAAAAHT}
-{\bkmkend AAAAAAAAHT}
+void {\b setSonarLine} (float angle){\bkmkstart AAAAAAAAON}
+{\bkmkend AAAAAAAAON}
 \par
 \pard\plain \s80\fi-360\li360\widctlpar\jclisttab\tx360{\*\pn \pnlvlbody\ilvl0\ls1\pnrnot0\pndec }\ls1\adjustright \fs20\cgrid 
 
-void {\b renderSonarLine} (){\bkmkstart AAAAAAAAHU}
-{\bkmkend AAAAAAAAHU}
+void {\b renderSonarLine} (){\bkmkstart AAAAAAAAOO}
+{\bkmkend AAAAAAAAOO}
 \par
 }
 \pard\plain \s3\sb240\sa60\keepn\widctlpar\adjustright \b\f1\cgrid 
@@ -907,8 +919,8 @@ Constructor & Destructor Documentation\par
 {\b 
 {\b Render} ()}}
 \par
-{\bkmkstart AAAAAAAAHV}
-{\bkmkend AAAAAAAAHV}
+{\bkmkstart AAAAAAAAOP}
+{\bkmkend AAAAAAAAOP}
 {
 \pard\plain \s51\li360\sa60\sb30\qj\widctlpar\qj\adjustright \fs20\cgrid 
 {\s17\sa60\sb30\widctlpar\qj \fs22\cgrid 
@@ -922,8 +934,8 @@ Definition at line 23 of file render.cpp.}\par
 {\b 
 ~{\b Render} ()}}
 \par
-{\bkmkstart AAAAAAAAHW}
-{\bkmkend AAAAAAAAHW}
+{\bkmkstart AAAAAAAAOQ}
+{\bkmkend AAAAAAAAOQ}
 {
 \pard\plain \s51\li360\sa60\sb30\qj\widctlpar\qj\adjustright \fs20\cgrid 
 {\s17\sa60\sb30\widctlpar\qj \fs22\cgrid 
@@ -941,8 +953,8 @@ Member Function Documentation\par
 {\b 
 void addMapLocation ()}}
 \par
-{\bkmkstart AAAAAAAAHX}
-{\bkmkend AAAAAAAAHX}
+{\bkmkstart AAAAAAAAOR}
+{\bkmkend AAAAAAAAOR}
 {
 \pard\plain \s51\li360\sa60\sb30\qj\widctlpar\qj\adjustright \fs20\cgrid 
 {\s17\sa60\sb30\widctlpar\qj \fs22\cgrid 
@@ -956,8 +968,8 @@ Definition at line 169 of file render.cpp.}\par
 {\b 
 void addObstacles (float  {\i x}, float  {\i y}, float  {\i type})}}
 \par
-{\bkmkstart AAAAAAAAHY}
-{\bkmkend AAAAAAAAHY}
+{\bkmkstart AAAAAAAAOS}
+{\bkmkend AAAAAAAAOS}
 {
 \pard\plain \s51\li360\sa60\sb30\qj\widctlpar\qj\adjustright \fs20\cgrid 
 {\s17\sa60\sb30\widctlpar\qj \fs22\cgrid 
@@ -992,8 +1004,8 @@ Definition at line 345 of file render.cpp.}\par
 {\b 
 void addSensors (float  {\i x}, float  {\i y})}}
 \par
-{\bkmkstart AAAAAAAAHZ}
-{\bkmkend AAAAAAAAHZ}
+{\bkmkstart AAAAAAAAOT}
+{\bkmkend AAAAAAAAOT}
 {
 \pard\plain \s51\li360\sa60\sb30\qj\widctlpar\qj\adjustright \fs20\cgrid 
 {\s17\sa60\sb30\widctlpar\qj \fs22\cgrid 
@@ -1022,8 +1034,8 @@ Definition at line 364 of file render.cpp.}\par
 {\b 
 float getRobotHeading ()}}
 \par
-{\bkmkstart AAAAAAAAIA}
-{\bkmkend AAAAAAAAIA}
+{\bkmkstart AAAAAAAAOU}
+{\bkmkend AAAAAAAAOU}
 {
 \pard\plain \s51\li360\sa60\sb30\qj\widctlpar\qj\adjustright \fs20\cgrid 
 {\s17\sa60\sb30\widctlpar\qj \fs22\cgrid 
@@ -1037,8 +1049,8 @@ Definition at line 279 of file render.cpp.}\par
 {\b 
 glm::vec3 getRobotPosition ()}}
 \par
-{\bkmkstart AAAAAAAAIB}
-{\bkmkend AAAAAAAAIB}
+{\bkmkstart AAAAAAAAOV}
+{\bkmkend AAAAAAAAOV}
 {
 \pard\plain \s51\li360\sa60\sb30\qj\widctlpar\qj\adjustright \fs20\cgrid 
 {\s17\sa60\sb30\widctlpar\qj \fs22\cgrid 
@@ -1052,8 +1064,8 @@ Definition at line 275 of file render.cpp.}\par
 {\b 
 int initGLFW ()}}
 \par
-{\bkmkstart AAAAAAAAIC}
-{\bkmkend AAAAAAAAIC}
+{\bkmkstart AAAAAAAAOW}
+{\bkmkend AAAAAAAAOW}
 {
 \pard\plain \s51\li360\sa60\sb30\qj\widctlpar\qj\adjustright \fs20\cgrid 
 {\s17\sa60\sb30\widctlpar\qj \fs22\cgrid 
@@ -1067,8 +1079,8 @@ Definition at line 491 of file render.cpp.}\par
 {\b 
 void renderHeading ()}}
 \par
-{\bkmkstart AAAAAAAAID}
-{\bkmkend AAAAAAAAID}
+{\bkmkstart AAAAAAAAOX}
+{\bkmkend AAAAAAAAOX}
 {
 \pard\plain \s51\li360\sa60\sb30\qj\widctlpar\qj\adjustright \fs20\cgrid 
 {\s17\sa60\sb30\widctlpar\qj \fs22\cgrid 
@@ -1082,8 +1094,8 @@ Definition at line 450 of file render.cpp.}\par
 {\b 
 void renderMap ()}}
 \par
-{\bkmkstart AAAAAAAAIE}
-{\bkmkend AAAAAAAAIE}
+{\bkmkstart AAAAAAAAOY}
+{\bkmkend AAAAAAAAOY}
 {
 \pard\plain \s51\li360\sa60\sb30\qj\widctlpar\qj\adjustright \fs20\cgrid 
 {\s17\sa60\sb30\widctlpar\qj \fs22\cgrid 
@@ -1097,8 +1109,8 @@ Definition at line 224 of file render.cpp.}\par
 {\b 
 void renderObstacles ()}}
 \par
-{\bkmkstart AAAAAAAAIF}
-{\bkmkend AAAAAAAAIF}
+{\bkmkstart AAAAAAAAOZ}
+{\bkmkend AAAAAAAAOZ}
 {
 \pard\plain \s51\li360\sa60\sb30\qj\widctlpar\qj\adjustright \fs20\cgrid 
 {\s17\sa60\sb30\widctlpar\qj \fs22\cgrid 
@@ -1112,8 +1124,8 @@ Definition at line 383 of file render.cpp.}\par
 {\b 
 void renderRobot ()}}
 \par
-{\bkmkstart AAAAAAAAIG}
-{\bkmkend AAAAAAAAIG}
+{\bkmkstart AAAAAAAAPA}
+{\bkmkend AAAAAAAAPA}
 {
 \pard\plain \s51\li360\sa60\sb30\qj\widctlpar\qj\adjustright \fs20\cgrid 
 {\s17\sa60\sb30\widctlpar\qj \fs22\cgrid 
@@ -1127,8 +1139,8 @@ Definition at line 304 of file render.cpp.}\par
 {\b 
 void renderSensors ()}}
 \par
-{\bkmkstart AAAAAAAAIH}
-{\bkmkend AAAAAAAAIH}
+{\bkmkstart AAAAAAAAPB}
+{\bkmkend AAAAAAAAPB}
 {
 \pard\plain \s51\li360\sa60\sb30\qj\widctlpar\qj\adjustright \fs20\cgrid 
 {\s17\sa60\sb30\widctlpar\qj \fs22\cgrid 
@@ -1142,8 +1154,8 @@ Definition at line 416 of file render.cpp.}\par
 {\b 
 void setRobotPosition (float  {\i x}, float  {\i y}, float  {\i h})}}
 \par
-{\bkmkstart AAAAAAAAII}
-{\bkmkend AAAAAAAAII}
+{\bkmkstart AAAAAAAAPC}
+{\bkmkend AAAAAAAAPC}
 {
 \pard\plain \s51\li360\sa60\sb30\qj\widctlpar\qj\adjustright \fs20\cgrid 
 {\s17\sa60\sb30\widctlpar\qj \fs22\cgrid 
@@ -1178,8 +1190,8 @@ Definition at line 282 of file render.cpp.}\par
 {\b 
 void setView (float  {\i z})}}
 \par
-{\bkmkstart AAAAAAAAIJ}
-{\bkmkend AAAAAAAAIJ}
+{\bkmkstart AAAAAAAAPD}
+{\bkmkend AAAAAAAAPD}
 {
 \pard\plain \s51\li360\sa60\sb30\qj\widctlpar\qj\adjustright \fs20\cgrid 
 {\s17\sa60\sb30\widctlpar\qj \fs22\cgrid 
@@ -1206,8 +1218,8 @@ Field Documentation\par
 {\b 
 float height}}
 \par
-{\bkmkstart AAAAAAAAIK}
-{\bkmkend AAAAAAAAIK}
+{\bkmkstart AAAAAAAAPE}
+{\bkmkend AAAAAAAAPE}
 {
 \pard\plain \s51\li360\sa60\sb30\qj\widctlpar\qj\adjustright \fs20\cgrid 
 {\s17\sa60\sb30\widctlpar\qj \fs22\cgrid 
@@ -1221,8 +1233,8 @@ Definition at line 58 of file render.h.}\par
 {\b 
 float width}}
 \par
-{\bkmkstart AAAAAAAAIL}
-{\bkmkend AAAAAAAAIL}
+{\bkmkstart AAAAAAAAPF}
+{\bkmkend AAAAAAAAPF}
 {
 \pard\plain \s51\li360\sa60\sb30\qj\widctlpar\qj\adjustright \fs20\cgrid 
 {\s17\sa60\sb30\widctlpar\qj \fs22\cgrid 
@@ -1244,8 +1256,8 @@ C:/Users/DonsterLaptop/Documents/Robot288/cpre288_generalpurposeautomatedrobot/G
 TCPClient Class Reference\par \pard\plain 
 {\tc\tcl2 \v TCPClient}
 {\xe \v TCPClient}
-{\bkmkstart AAAAAAAAIM}
-{\bkmkend AAAAAAAAIM}
+{\bkmkstart AAAAAAAAPG}
+{\bkmkend AAAAAAAAPG}
 Inheritance diagram for TCPClient:{
 \pard\plain 
 \par\pard \qc {\field\flddirty {\*\fldinst INCLUDEPICTURE "class_t_c_p_client.png" \\d \\*MERGEFORMAT}{\fldrslt IMAGE}}\par
@@ -1286,8 +1298,8 @@ Constructor & Destructor Documentation\par
 {\b 
 {\b TCPClient} (boost::asio::io_context &  {\i c}, const std::string &  {\i host}, const std::string &  {\i port}, {\b Render} *  {\i _render})}}
 \par
-{\bkmkstart AAAAAAAAIN}
-{\bkmkend AAAAAAAAIN}
+{\bkmkstart AAAAAAAAPH}
+{\bkmkend AAAAAAAAPH}
 {
 \pard\plain \s51\li360\sa60\sb30\qj\widctlpar\qj\adjustright \fs20\cgrid 
 {\s17\sa60\sb30\widctlpar\qj \fs22\cgrid 
@@ -1328,8 +1340,8 @@ Definition at line 23 of file tcp.cpp.}\par
 {\b 
 ~{\b TCPClient} ()}}
 \par
-{\bkmkstart AAAAAAAAIO}
-{\bkmkend AAAAAAAAIO}
+{\bkmkstart AAAAAAAAPI}
+{\bkmkend AAAAAAAAPI}
 {
 \pard\plain \s51\li360\sa60\sb30\qj\widctlpar\qj\adjustright \fs20\cgrid 
 {\s17\sa60\sb30\widctlpar\qj \fs22\cgrid 
@@ -1347,8 +1359,8 @@ Member Function Documentation\par
 {\b 
 void parseCommand (const char *  {\i command})}}
 \par
-{\bkmkstart AAAAAAAAIP}
-{\bkmkend AAAAAAAAIP}
+{\bkmkstart AAAAAAAAPJ}
+{\bkmkend AAAAAAAAPJ}
 {
 \pard\plain \s51\li360\sa60\sb30\qj\widctlpar\qj\adjustright \fs20\cgrid 
 {\s17\sa60\sb30\widctlpar\qj \fs22\cgrid 
@@ -1371,8 +1383,8 @@ Definition at line 65 of file tcp.cpp.}\par
 {\b 
 void recieve ()}}
 \par
-{\bkmkstart AAAAAAAAIQ}
-{\bkmkend AAAAAAAAIQ}
+{\bkmkstart AAAAAAAAPK}
+{\bkmkend AAAAAAAAPK}
 {
 \pard\plain \s51\li360\sa60\sb30\qj\widctlpar\qj\adjustright \fs20\cgrid 
 {\s17\sa60\sb30\widctlpar\qj \fs22\cgrid 
@@ -1386,8 +1398,8 @@ Definition at line 263 of file tcp.cpp.}\par
 {\b 
 void send (std::string &  {\i str})}}
 \par
-{\bkmkstart AAAAAAAAIR}
-{\bkmkend AAAAAAAAIR}
+{\bkmkstart AAAAAAAAPL}
+{\bkmkend AAAAAAAAPL}
 {
 \pard\plain \s51\li360\sa60\sb30\qj\widctlpar\qj\adjustright \fs20\cgrid 
 {\s17\sa60\sb30\widctlpar\qj \fs22\cgrid 
@@ -1410,8 +1422,8 @@ Definition at line 59 of file tcp.cpp.}\par
 {\b 
 void start ()}}
 \par
-{\bkmkstart AAAAAAAAIS}
-{\bkmkend AAAAAAAAIS}
+{\bkmkstart AAAAAAAAPM}
+{\bkmkend AAAAAAAAPM}
 {
 \pard\plain \s51\li360\sa60\sb30\qj\widctlpar\qj\adjustright \fs20\cgrid 
 {\s17\sa60\sb30\widctlpar\qj \fs22\cgrid 
@@ -2182,7 +2194,7 @@ char* buffer}}
 {\s17\sa60\sb30\widctlpar\qj \fs22\cgrid 
 Data where the last characters are store \par
 }{
-Definition at line 29 of file uart.h.}\par
+Definition at line 28 of file uart.h.}\par
 }
 {\xe \v LastLine\:uart.h}
 {\xe \v uart.h\:LastLine}
@@ -2197,7 +2209,106 @@ char* LastLine}}
 {\s17\sa60\sb30\widctlpar\qj \fs22\cgrid 
 Data where the last parsed line is stored \par
 }{
-Definition at line 33 of file uart.h.}\par
+Definition at line 32 of file uart.h.}\par
+}
+\par \pard\plain 
+
+\pard\plain \sect\sbkpage
+\s2\sb240\sa60\keepn\widctlpar\adjustright \b\f1\fs28\kerning28\cgrid 
+\pard\plain \s2\sb240\sa60\keepn\widctlpar\adjustright \b\f1\fs28\kerning28\cgrid 
+C:/Users/DonsterLaptop/Documents/Robot288/cpre288_generalpurposeautomatedrobot/Robot/main.c File Reference\par \pard\plain 
+{\tc\tcl2 \v C:/Users/DonsterLaptop/Documents/Robot288/cpre288_generalpurposeautomatedrobot/Robot/main.c}
+{\xe \v C:/Users/DonsterLaptop/Documents/Robot288/cpre288_generalpurposeautomatedrobot/Robot/main.c}
+{\bkmkstart AAAAAAAABK}
+{\bkmkend AAAAAAAABK}
+\par
+{
+{\s17\sa60\sb30\widctlpar\qj \fs22\cgrid 
+Library of functions for reading the cliff sensors and determining the type of boundary being detected. }}\par
+{
+\pard\plain \s18\widctlpar\fs22\cgrid {\f2 #include <Utils/timer.h>}\par
+{\f2 #include <utils/timer4.h>}\par
+{\f2 #include <Utils/lcd.h>}\par
+{\f2 #include <Utils/open_interface.h>}\par
+{\f2 #include <Navigation/movementcommands.h>}\par
+{\f2 #include <Communication/uart.h>}\par
+{\f2 #include <Utils/Sound.h>}\par
+{\f2 #include <Sensor/sweep_sensor.h>}\par
+{\f2 #include <Sensor/cliff_sensor.h>}\par
+}
+\pard\plain \s3\sb240\sa60\keepn\widctlpar\adjustright \b\f1\cgrid 
+Functions\par
+\pard\plain 
+
+{
+\pard\plain \s80\fi-360\li360\widctlpar\jclisttab\tx360{\*\pn \pnlvlbody\ilvl0\ls1\pnrnot0\pndec }\ls1\adjustright \fs20\cgrid 
+int {\b main} (void)\par
+}
+\pard\plain \s3\sb240\sa60\keepn\widctlpar\adjustright \b\f1\cgrid 
+Variables\par
+\pard\plain 
+
+{
+\pard\plain \s80\fi-360\li360\widctlpar\jclisttab\tx360{\*\pn \pnlvlbody\ilvl0\ls1\pnrnot0\pndec }\ls1\adjustright \fs20\cgrid 
+char * {\b data}\par
+}
+{\pard\widctlpar\brdrb\brdrs\brdrw5\brsp20 \adjustright \par}
+\pard\plain \s3\sb240\sa60\keepn\widctlpar\adjustright \b\f1\cgrid 
+Detailed Description\par
+\pard\plain 
+{
+\pard\plain \s17\sa60\sb30\widctlpar\qj \fs22\cgrid {\s17\sa60\sb30\widctlpar\qj \fs22\cgrid 
+Library of functions for reading the cliff sensors and determining the type of boundary being detected. \par
+}{\s17\sa60\sb30\widctlpar\qj \fs22\cgrid 
+\par
+{{\s5\sb90\sa30\keepn\widctlpar\adjustright \b\f1\fs20\cgrid 
+Author:\par}\pard\plain \s61\li360\widctlpar\ql\adjustright \fs20\cgrid Quentin Urbanowicz \par
+Rene Chavez \par
+Peyton Sher \par
+Don Kieu\par
+}{{\s5\sb90\sa30\keepn\widctlpar\adjustright \b\f1\fs20\cgrid 
+Date:\par}\pard\plain \s61\li360\widctlpar\ql\adjustright \fs20\cgrid 2018-11-06, 11-15, 11-27, 12-04, 12-06 \par
+}}}
+{\pard\widctlpar\brdrb\brdrs\brdrw5\brsp20 \adjustright \par}
+\pard\plain \s3\sb240\sa60\keepn\widctlpar\adjustright \b\f1\cgrid 
+Function Documentation\par
+\pard\plain 
+{\xe \v main\:main.c}
+{\xe \v main.c\:main}
+\pard\plain \s4\sb240\sa60\keepn\widctlpar\adjustright \b\f1\fs20\cgrid {
+{\b 
+int main (void )}}
+\par
+{\bkmkstart AAAAAAAABL}
+{\bkmkend AAAAAAAABL}
+{
+\pard\plain \s51\li360\sa60\sb30\qj\widctlpar\qj\adjustright \fs20\cgrid 
+{\s17\sa60\sb30\widctlpar\qj \fs22\cgrid 
+\par
+}{\s17\sa60\sb30\widctlpar\qj \fs22\cgrid 
+all the initialization for every piece we used as well as the different variables needed to make the main run properly.\par
+continually looks for a new command and calls the function depending on what command is found. updates every loop and calls parse command when a new command comes through. \par
+}{
+Definition at line 30 of file main.c.}\par
+}
+{\pard\widctlpar\brdrb\brdrs\brdrw5\brsp20 \adjustright \par}
+\pard\plain \s3\sb240\sa60\keepn\widctlpar\adjustright \b\f1\cgrid 
+Variable Documentation\par
+\pard\plain 
+{\xe \v data\:main.c}
+{\xe \v main.c\:data}
+\pard\plain \s4\sb240\sa60\keepn\widctlpar\adjustright \b\f1\fs20\cgrid {
+{\b 
+char* data}}
+\par
+{\bkmkstart AAAAAAAABM}
+{\bkmkend AAAAAAAABM}
+{
+\pard\plain \s51\li360\sa60\sb30\qj\widctlpar\qj\adjustright \fs20\cgrid 
+{\s17\sa60\sb30\widctlpar\qj \fs22\cgrid 
+Data string used to send data over UART \par
+}{
+Definition at line 28 of file main.c.}\par
 }
 \par \pard\plain 
 
@@ -2207,8 +2318,8 @@ Definition at line 33 of file uart.h.}\par
 C:/Users/DonsterLaptop/Documents/Robot288/cpre288_generalpurposeautomatedrobot/Robot/Navigation/movementcommands.c File Reference\par \pard\plain 
 {\tc\tcl2 \v C:/Users/DonsterLaptop/Documents/Robot288/cpre288_generalpurposeautomatedrobot/Robot/Navigation/movementcommands.c}
 {\xe \v C:/Users/DonsterLaptop/Documents/Robot288/cpre288_generalpurposeautomatedrobot/Robot/Navigation/movementcommands.c}
-{\bkmkstart AAAAAAAABK}
-{\bkmkend AAAAAAAABK}
+{\bkmkstart AAAAAAAABN}
+{\bkmkend AAAAAAAABN}
 \par
 {
 {\s17\sa60\sb30\widctlpar\qj \fs22\cgrid 
@@ -2226,8 +2337,8 @@ Macros\par
 {
 \pard\plain \s80\fi-360\li360\widctlpar\jclisttab\tx360{\*\pn \pnlvlbody\ilvl0\ls1\pnrnot0\pndec }\ls1\adjustright \fs20\cgrid 
 
-#define {\b PI}\~ 3.1415926535897932{\bkmkstart AAAAAAAABL}
-{\bkmkend AAAAAAAABL}
+#define {\b PI}\~ 3.1415926535897932{\bkmkstart AAAAAAAABO}
+{\bkmkend AAAAAAAABO}
 \par
 }
 \pard\plain \s3\sb240\sa60\keepn\widctlpar\adjustright \b\f1\cgrid 
@@ -2289,8 +2400,8 @@ Function Documentation\par
 {\b 
 void getPosition (float *  {\i x}, float *  {\i y}, float *  {\i d})}}
 \par
-{\bkmkstart AAAAAAAABM}
-{\bkmkend AAAAAAAABM}
+{\bkmkstart AAAAAAAABP}
+{\bkmkend AAAAAAAABP}
 {
 \pard\plain \s51\li360\sa60\sb30\qj\widctlpar\qj\adjustright \fs20\cgrid 
 {\s17\sa60\sb30\widctlpar\qj \fs22\cgrid 
@@ -2325,8 +2436,8 @@ Definition at line 300 of file movementcommands.c.}\par
 {\b 
 void moveRobotDistance ({\b oi_t} *  {\i self}, int  {\i input})}}
 \par
-{\bkmkstart AAAAAAAABN}
-{\bkmkend AAAAAAAABN}
+{\bkmkstart AAAAAAAABQ}
+{\bkmkend AAAAAAAABQ}
 {
 \pard\plain \s51\li360\sa60\sb30\qj\widctlpar\qj\adjustright \fs20\cgrid 
 {\s17\sa60\sb30\widctlpar\qj \fs22\cgrid 
@@ -2357,8 +2468,8 @@ Definition at line 44 of file movementcommands.c.}\par
 {\b 
 void moveRobotDistanceIgnore ({\b oi_t} *  {\i self}, int  {\i input})}}
 \par
-{\bkmkstart AAAAAAAABO}
-{\bkmkend AAAAAAAABO}
+{\bkmkstart AAAAAAAABR}
+{\bkmkend AAAAAAAABR}
 {
 \pard\plain \s51\li360\sa60\sb30\qj\widctlpar\qj\adjustright \fs20\cgrid 
 {\s17\sa60\sb30\widctlpar\qj \fs22\cgrid 
@@ -2389,8 +2500,8 @@ Definition at line 124 of file movementcommands.c.}\par
 {\b 
 void parseCommand (char *  {\i cmdStr}, int *  {\i type}, int *  {\i degree}, int *  {\i distance})}}
 \par
-{\bkmkstart AAAAAAAABP}
-{\bkmkend AAAAAAAABP}
+{\bkmkstart AAAAAAAABS}
+{\bkmkend AAAAAAAABS}
 {
 \pard\plain \s51\li360\sa60\sb30\qj\widctlpar\qj\adjustright \fs20\cgrid 
 {\s17\sa60\sb30\widctlpar\qj \fs22\cgrid 
@@ -2433,8 +2544,8 @@ Definition at line 248 of file movementcommands.c.}\par
 {\b 
 float turnRobotDegree ({\b oi_t} *  {\i self}, float  {\i degrees})}}
 \par
-{\bkmkstart AAAAAAAABQ}
-{\bkmkend AAAAAAAABQ}
+{\bkmkstart AAAAAAAABT}
+{\bkmkend AAAAAAAABT}
 {
 \pard\plain \s51\li360\sa60\sb30\qj\widctlpar\qj\adjustright \fs20\cgrid 
 {\s17\sa60\sb30\widctlpar\qj \fs22\cgrid 
@@ -2465,8 +2576,8 @@ Variable Documentation\par
 {\b 
 char* data}}
 \par
-{\bkmkstart AAAAAAAABR}
-{\bkmkend AAAAAAAABR}
+{\bkmkstart AAAAAAAABU}
+{\bkmkend AAAAAAAABU}
 {
 \pard\plain \s51\li360\sa60\sb30\qj\widctlpar\qj\adjustright \fs20\cgrid 
 {\s17\sa60\sb30\widctlpar\qj \fs22\cgrid 
@@ -2480,8 +2591,8 @@ Definition at line 41 of file movementcommands.c.}\par
 {\b 
 float err = 5.0}}
 \par
-{\bkmkstart AAAAAAAABS}
-{\bkmkend AAAAAAAABS}
+{\bkmkstart AAAAAAAABV}
+{\bkmkend AAAAAAAABV}
 {
 \pard\plain \s51\li360\sa60\sb30\qj\widctlpar\qj\adjustright \fs20\cgrid 
 {\s17\sa60\sb30\widctlpar\qj \fs22\cgrid 
@@ -2495,8 +2606,8 @@ Definition at line 37 of file movementcommands.c.}\par
 {\b 
 float heading = 0}}
 \par
-{\bkmkstart AAAAAAAABT}
-{\bkmkend AAAAAAAABT}
+{\bkmkstart AAAAAAAABW}
+{\bkmkend AAAAAAAABW}
 {
 \pard\plain \s51\li360\sa60\sb30\qj\widctlpar\qj\adjustright \fs20\cgrid 
 {\s17\sa60\sb30\widctlpar\qj \fs22\cgrid 
@@ -2510,8 +2621,8 @@ Definition at line 25 of file movementcommands.c.}\par
 {\b 
 float posx = 0}}
 \par
-{\bkmkstart AAAAAAAABU}
-{\bkmkend AAAAAAAABU}
+{\bkmkstart AAAAAAAABX}
+{\bkmkend AAAAAAAABX}
 {
 \pard\plain \s51\li360\sa60\sb30\qj\widctlpar\qj\adjustright \fs20\cgrid 
 {\s17\sa60\sb30\widctlpar\qj \fs22\cgrid 
@@ -2525,8 +2636,8 @@ Definition at line 29 of file movementcommands.c.}\par
 {\b 
 float posy = 0}}
 \par
-{\bkmkstart AAAAAAAABV}
-{\bkmkend AAAAAAAABV}
+{\bkmkstart AAAAAAAABY}
+{\bkmkend AAAAAAAABY}
 {
 \pard\plain \s51\li360\sa60\sb30\qj\widctlpar\qj\adjustright \fs20\cgrid 
 {\s17\sa60\sb30\widctlpar\qj \fs22\cgrid 
@@ -2542,8 +2653,8 @@ Definition at line 33 of file movementcommands.c.}\par
 C:/Users/DonsterLaptop/Documents/Robot288/cpre288_generalpurposeautomatedrobot/Robot/Navigation/movementcommands.h File Reference\par \pard\plain 
 {\tc\tcl2 \v C:/Users/DonsterLaptop/Documents/Robot288/cpre288_generalpurposeautomatedrobot/Robot/Navigation/movementcommands.h}
 {\xe \v C:/Users/DonsterLaptop/Documents/Robot288/cpre288_generalpurposeautomatedrobot/Robot/Navigation/movementcommands.h}
-{\bkmkstart AAAAAAAABW}
-{\bkmkend AAAAAAAABW}
+{\bkmkstart AAAAAAAABZ}
+{\bkmkend AAAAAAAABZ}
 \par
 {
 {\s17\sa60\sb30\widctlpar\qj \fs22\cgrid 
@@ -2564,8 +2675,8 @@ enum {\b TCP_COMMAND_TYPE} \{ {\b ERROR},
 {\b SWEEP_SENSOR}, 
 {\b QUERY_MOVEMENT}, 
 {\b MOVE_IGNORE}
- \}{\bkmkstart AAAAAAAABX}
-{\bkmkend AAAAAAAABX}
+ \}{\bkmkstart AAAAAAAACA}
+{\bkmkend AAAAAAAACA}
 \par
 }
 \pard\plain \s3\sb240\sa60\keepn\widctlpar\adjustright \b\f1\cgrid 
@@ -2611,8 +2722,8 @@ Function Documentation\par
 {\b 
 void getPosition (float *  {\i x}, float *  {\i y}, float *  {\i d})}}
 \par
-{\bkmkstart AAAAAAAABY}
-{\bkmkend AAAAAAAABY}
+{\bkmkstart AAAAAAAACB}
+{\bkmkend AAAAAAAACB}
 {
 \pard\plain \s51\li360\sa60\sb30\qj\widctlpar\qj\adjustright \fs20\cgrid 
 {\s17\sa60\sb30\widctlpar\qj \fs22\cgrid 
@@ -2647,8 +2758,8 @@ Definition at line 300 of file movementcommands.c.}\par
 {\b 
 void moveRobotDistance ({\b oi_t} *  {\i self}, int  {\i input})}}
 \par
-{\bkmkstart AAAAAAAABZ}
-{\bkmkend AAAAAAAABZ}
+{\bkmkstart AAAAAAAACC}
+{\bkmkend AAAAAAAACC}
 {
 \pard\plain \s51\li360\sa60\sb30\qj\widctlpar\qj\adjustright \fs20\cgrid 
 {\s17\sa60\sb30\widctlpar\qj \fs22\cgrid 
@@ -2679,8 +2790,8 @@ Definition at line 44 of file movementcommands.c.}\par
 {\b 
 void moveRobotDistanceIgnore ({\b oi_t} *  {\i self}, int  {\i input})}}
 \par
-{\bkmkstart AAAAAAAACA}
-{\bkmkend AAAAAAAACA}
+{\bkmkstart AAAAAAAACD}
+{\bkmkend AAAAAAAACD}
 {
 \pard\plain \s51\li360\sa60\sb30\qj\widctlpar\qj\adjustright \fs20\cgrid 
 {\s17\sa60\sb30\widctlpar\qj \fs22\cgrid 
@@ -2711,8 +2822,8 @@ Definition at line 124 of file movementcommands.c.}\par
 {\b 
 void parseCommand (char *  {\i cmdStr}, int *  {\i type}, int *  {\i degree}, int *  {\i distance})}}
 \par
-{\bkmkstart AAAAAAAACB}
-{\bkmkend AAAAAAAACB}
+{\bkmkstart AAAAAAAACE}
+{\bkmkend AAAAAAAACE}
 {
 \pard\plain \s51\li360\sa60\sb30\qj\widctlpar\qj\adjustright \fs20\cgrid 
 {\s17\sa60\sb30\widctlpar\qj \fs22\cgrid 
@@ -2755,8 +2866,8 @@ Definition at line 248 of file movementcommands.c.}\par
 {\b 
 float turnRobotDegree ({\b oi_t} *  {\i self}, float  {\i degrees})}}
 \par
-{\bkmkstart AAAAAAAACC}
-{\bkmkend AAAAAAAACC}
+{\bkmkstart AAAAAAAACF}
+{\bkmkend AAAAAAAACF}
 {
 \pard\plain \s51\li360\sa60\sb30\qj\widctlpar\qj\adjustright \fs20\cgrid 
 {\s17\sa60\sb30\widctlpar\qj \fs22\cgrid 
@@ -2785,8 +2896,8 @@ Definition at line 197 of file movementcommands.c.}\par
 C:/Users/DonsterLaptop/Documents/Robot288/cpre288_generalpurposeautomatedrobot/Robot/Sensor/cliff_sensor.c File Reference\par \pard\plain 
 {\tc\tcl2 \v C:/Users/DonsterLaptop/Documents/Robot288/cpre288_generalpurposeautomatedrobot/Robot/Sensor/cliff_sensor.c}
 {\xe \v C:/Users/DonsterLaptop/Documents/Robot288/cpre288_generalpurposeautomatedrobot/Robot/Sensor/cliff_sensor.c}
-{\bkmkstart AAAAAAAACD}
-{\bkmkend AAAAAAAACD}
+{\bkmkstart AAAAAAAACG}
+{\bkmkend AAAAAAAACG}
 \par
 {
 {\s17\sa60\sb30\widctlpar\qj \fs22\cgrid 
@@ -2833,8 +2944,8 @@ Function Documentation\par
 {\b 
 int checkGroundSensors ({\b oi_t} *  {\i self})}}
 \par
-{\bkmkstart AAAAAAAACE}
-{\bkmkend AAAAAAAACE}
+{\bkmkstart AAAAAAAACH}
+{\bkmkend AAAAAAAACH}
 {
 \pard\plain \s51\li360\sa60\sb30\qj\widctlpar\qj\adjustright \fs20\cgrid 
 {\s17\sa60\sb30\widctlpar\qj \fs22\cgrid 
@@ -2863,8 +2974,8 @@ Definition at line 83 of file cliff_sensor.c.}\par
 {\b 
 {\b Terrain} cs_getTerrain ({\b oi_t} *  {\i self}, {\b CliffSensor}  {\i sensor})}}
 \par
-{\bkmkstart AAAAAAAACF}
-{\bkmkend AAAAAAAACF}
+{\bkmkstart AAAAAAAACI}
+{\bkmkend AAAAAAAACI}
 {
 \pard\plain \s51\li360\sa60\sb30\qj\widctlpar\qj\adjustright \fs20\cgrid 
 {\s17\sa60\sb30\widctlpar\qj \fs22\cgrid 
@@ -2893,8 +3004,8 @@ Definition at line 53 of file cliff_sensor.c.}\par
 {\b 
 uint16_t cs_readSensorRaw ({\b oi_t} *  {\i self}, {\b CliffSensor}  {\i sensor})}}
 \par
-{\bkmkstart AAAAAAAACG}
-{\bkmkend AAAAAAAACG}
+{\bkmkstart AAAAAAAACJ}
+{\bkmkend AAAAAAAACJ}
 {
 \pard\plain \s51\li360\sa60\sb30\qj\widctlpar\qj\adjustright \fs20\cgrid 
 {\s17\sa60\sb30\widctlpar\qj \fs22\cgrid 
@@ -2925,8 +3036,8 @@ Definition at line 18 of file cliff_sensor.c.}\par
 C:/Users/DonsterLaptop/Documents/Robot288/cpre288_generalpurposeautomatedrobot/Robot/Sensor/cliff_sensor.h File Reference\par \pard\plain 
 {\tc\tcl2 \v C:/Users/DonsterLaptop/Documents/Robot288/cpre288_generalpurposeautomatedrobot/Robot/Sensor/cliff_sensor.h}
 {\xe \v C:/Users/DonsterLaptop/Documents/Robot288/cpre288_generalpurposeautomatedrobot/Robot/Sensor/cliff_sensor.h}
-{\bkmkstart AAAAAAAACH}
-{\bkmkend AAAAAAAACH}
+{\bkmkstart AAAAAAAACK}
+{\bkmkend AAAAAAAACK}
 \par
 {
 {\s17\sa60\sb30\widctlpar\qj \fs22\cgrid 
@@ -2993,8 +3104,8 @@ Enumeration Type Documentation\par
 {\b 
 enum {\b CliffSensor}}}
 \par
-{\bkmkstart AAAAAAAACI}
-{\bkmkend AAAAAAAACI}
+{\bkmkstart AAAAAAAACL}
+{\bkmkend AAAAAAAACL}
 {
 \pard\plain \s51\li360\sa60\sb30\qj\widctlpar\qj\adjustright \fs20\cgrid 
 {\s17\sa60\sb30\widctlpar\qj \fs22\cgrid 
@@ -3008,8 +3119,8 @@ Definition at line 26 of file cliff_sensor.h.}\par
 {\b 
 enum {\b Terrain}}}
 \par
-{\bkmkstart AAAAAAAACJ}
-{\bkmkend AAAAAAAACJ}
+{\bkmkstart AAAAAAAACM}
+{\bkmkend AAAAAAAACM}
 {
 \pard\plain \s51\li360\sa60\sb30\qj\widctlpar\qj\adjustright \fs20\cgrid 
 {\s17\sa60\sb30\widctlpar\qj \fs22\cgrid 
@@ -3027,8 +3138,8 @@ Function Documentation\par
 {\b 
 int checkGroundSensors ({\b oi_t} *  {\i self})}}
 \par
-{\bkmkstart AAAAAAAACK}
-{\bkmkend AAAAAAAACK}
+{\bkmkstart AAAAAAAACN}
+{\bkmkend AAAAAAAACN}
 {
 \pard\plain \s51\li360\sa60\sb30\qj\widctlpar\qj\adjustright \fs20\cgrid 
 {\s17\sa60\sb30\widctlpar\qj \fs22\cgrid 
@@ -3057,8 +3168,8 @@ Definition at line 83 of file cliff_sensor.c.}\par
 {\b 
 {\b Terrain} cs_getTerrain ({\b oi_t} *  {\i self}, {\b CliffSensor}  {\i sensor})}}
 \par
-{\bkmkstart AAAAAAAACL}
-{\bkmkend AAAAAAAACL}
+{\bkmkstart AAAAAAAACO}
+{\bkmkend AAAAAAAACO}
 {
 \pard\plain \s51\li360\sa60\sb30\qj\widctlpar\qj\adjustright \fs20\cgrid 
 {\s17\sa60\sb30\widctlpar\qj \fs22\cgrid 
@@ -3087,8 +3198,8 @@ Definition at line 53 of file cliff_sensor.c.}\par
 {\b 
 uint16_t cs_readSensorRaw ({\b oi_t} *  {\i self}, {\b CliffSensor}  {\i sensor})}}
 \par
-{\bkmkstart AAAAAAAACM}
-{\bkmkend AAAAAAAACM}
+{\bkmkstart AAAAAAAACP}
+{\bkmkend AAAAAAAACP}
 {
 \pard\plain \s51\li360\sa60\sb30\qj\widctlpar\qj\adjustright \fs20\cgrid 
 {\s17\sa60\sb30\widctlpar\qj \fs22\cgrid 
@@ -3119,8 +3230,8 @@ Definition at line 18 of file cliff_sensor.c.}\par
 C:/Users/DonsterLaptop/Documents/Robot288/cpre288_generalpurposeautomatedrobot/Robot/Sensor/ir.c File Reference\par \pard\plain 
 {\tc\tcl2 \v C:/Users/DonsterLaptop/Documents/Robot288/cpre288_generalpurposeautomatedrobot/Robot/Sensor/ir.c}
 {\xe \v C:/Users/DonsterLaptop/Documents/Robot288/cpre288_generalpurposeautomatedrobot/Robot/Sensor/ir.c}
-{\bkmkstart AAAAAAAACN}
-{\bkmkend AAAAAAAACN}
+{\bkmkstart AAAAAAAACQ}
+{\bkmkend AAAAAAAACQ}
 \par
 {
 {\s17\sa60\sb30\widctlpar\qj \fs22\cgrid 
@@ -3155,8 +3266,8 @@ Variables\par
 double {\b VoltageArray} [12]\par
 \pard\plain \s80\fi-360\li360\widctlpar\jclisttab\tx360{\*\pn \pnlvlbody\ilvl0\ls1\pnrnot0\pndec }\ls1\adjustright \fs20\cgrid 
 
-double {\b DistanceArray} [12] = \{ 60, 55, 50, 45, 40, 35, 30, 25, 20, 15, 10, 5 \}{\bkmkstart AAAAAAAACO}
-{\bkmkend AAAAAAAACO}
+double {\b DistanceArray} [12] = \{ 60, 55, 50, 45, 40, 35, 30, 25, 20, 15, 10, 5 \}{\bkmkstart AAAAAAAACR}
+{\bkmkend AAAAAAAACR}
 \par
 \pard\plain \s80\fi-360\li360\widctlpar\jclisttab\tx360{\*\pn \pnlvlbody\ilvl0\ls1\pnrnot0\pndec }\ls1\adjustright \fs20\cgrid 
 volatile int {\b read} = 0\par
@@ -3188,8 +3299,8 @@ Function Documentation\par
 {\b 
 void adc_handler ()}}
 \par
-{\bkmkstart AAAAAAAACP}
-{\bkmkend AAAAAAAACP}
+{\bkmkstart AAAAAAAACS}
+{\bkmkend AAAAAAAACS}
 {
 \pard\plain \s51\li360\sa60\sb30\qj\widctlpar\qj\adjustright \fs20\cgrid 
 {\s17\sa60\sb30\widctlpar\qj \fs22\cgrid 
@@ -3203,8 +3314,8 @@ Definition at line 37 of file ir.c.}\par
 {\b 
 void adc_init ()}}
 \par
-{\bkmkstart AAAAAAAACQ}
-{\bkmkend AAAAAAAACQ}
+{\bkmkstart AAAAAAAACT}
+{\bkmkend AAAAAAAACT}
 {
 \pard\plain \s51\li360\sa60\sb30\qj\widctlpar\qj\adjustright \fs20\cgrid 
 {\s17\sa60\sb30\widctlpar\qj \fs22\cgrid 
@@ -3218,8 +3329,8 @@ Definition at line 43 of file ir.c.}\par
 {\b 
 int ADC_read ()}}
 \par
-{\bkmkstart AAAAAAAACR}
-{\bkmkend AAAAAAAACR}
+{\bkmkstart AAAAAAAACU}
+{\bkmkend AAAAAAAACU}
 {
 \pard\plain \s51\li360\sa60\sb30\qj\widctlpar\qj\adjustright \fs20\cgrid 
 {\s17\sa60\sb30\widctlpar\qj \fs22\cgrid 
@@ -3233,8 +3344,8 @@ Definition at line 73 of file ir.c.}\par
 {\b 
 int getADCReading ()}}
 \par
-{\bkmkstart AAAAAAAACS}
-{\bkmkend AAAAAAAACS}
+{\bkmkstart AAAAAAAACV}
+{\bkmkend AAAAAAAACV}
 {
 \pard\plain \s51\li360\sa60\sb30\qj\widctlpar\qj\adjustright \fs20\cgrid 
 {\s17\sa60\sb30\widctlpar\qj \fs22\cgrid 
@@ -3250,8 +3361,8 @@ Definition at line 82 of file ir.c.}\par
 {\b 
 float ir_convertToDist (int  {\i rawIRValue})}}
 \par
-{\bkmkstart AAAAAAAACT}
-{\bkmkend AAAAAAAACT}
+{\bkmkstart AAAAAAAACW}
+{\bkmkend AAAAAAAACW}
 {
 \pard\plain \s51\li360\sa60\sb30\qj\widctlpar\qj\adjustright \fs20\cgrid 
 {\s17\sa60\sb30\widctlpar\qj \fs22\cgrid 
@@ -3284,8 +3395,8 @@ Variable Documentation\par
 {\b 
 volatile int read = 0}}
 \par
-{\bkmkstart AAAAAAAACU}
-{\bkmkend AAAAAAAACU}
+{\bkmkstart AAAAAAAACX}
+{\bkmkend AAAAAAAACX}
 {
 \pard\plain \s51\li360\sa60\sb30\qj\widctlpar\qj\adjustright \fs20\cgrid 
 {\s17\sa60\sb30\widctlpar\qj \fs22\cgrid 
@@ -3299,8 +3410,8 @@ Definition at line 32 of file ir.c.}\par
 {\b 
 double VoltageArray[12]}}
 \par
-{\bkmkstart AAAAAAAACV}
-{\bkmkend AAAAAAAACV}
+{\bkmkstart AAAAAAAACY}
+{\bkmkend AAAAAAAACY}
 {
 \pard\plain \s51\li360\sa60\sb30\qj\widctlpar\qj\adjustright \fs20\cgrid 
 {\b Initial value:}{
@@ -3320,8 +3431,8 @@ Definition at line 25 of file ir.c.}\par
 C:/Users/DonsterLaptop/Documents/Robot288/cpre288_generalpurposeautomatedrobot/Robot/Sensor/ir.h File Reference\par \pard\plain 
 {\tc\tcl2 \v C:/Users/DonsterLaptop/Documents/Robot288/cpre288_generalpurposeautomatedrobot/Robot/Sensor/ir.h}
 {\xe \v C:/Users/DonsterLaptop/Documents/Robot288/cpre288_generalpurposeautomatedrobot/Robot/Sensor/ir.h}
-{\bkmkstart AAAAAAAACW}
-{\bkmkend AAAAAAAACW}
+{\bkmkstart AAAAAAAACZ}
+{\bkmkend AAAAAAAACZ}
 \par
 {
 {\s17\sa60\sb30\widctlpar\qj \fs22\cgrid 
@@ -3375,8 +3486,8 @@ Function Documentation\par
 {\b 
 void adc_handler ()}}
 \par
-{\bkmkstart AAAAAAAACX}
-{\bkmkend AAAAAAAACX}
+{\bkmkstart AAAAAAAADA}
+{\bkmkend AAAAAAAADA}
 {
 \pard\plain \s51\li360\sa60\sb30\qj\widctlpar\qj\adjustright \fs20\cgrid 
 {\s17\sa60\sb30\widctlpar\qj \fs22\cgrid 
@@ -3390,8 +3501,8 @@ Definition at line 37 of file ir.c.}\par
 {\b 
 void adc_init ()}}
 \par
-{\bkmkstart AAAAAAAACY}
-{\bkmkend AAAAAAAACY}
+{\bkmkstart AAAAAAAADB}
+{\bkmkend AAAAAAAADB}
 {
 \pard\plain \s51\li360\sa60\sb30\qj\widctlpar\qj\adjustright \fs20\cgrid 
 {\s17\sa60\sb30\widctlpar\qj \fs22\cgrid 
@@ -3405,8 +3516,8 @@ Definition at line 43 of file ir.c.}\par
 {\b 
 int ADC_read ()}}
 \par
-{\bkmkstart AAAAAAAACZ}
-{\bkmkend AAAAAAAACZ}
+{\bkmkstart AAAAAAAADC}
+{\bkmkend AAAAAAAADC}
 {
 \pard\plain \s51\li360\sa60\sb30\qj\widctlpar\qj\adjustright \fs20\cgrid 
 {\s17\sa60\sb30\widctlpar\qj \fs22\cgrid 
@@ -3420,8 +3531,8 @@ Definition at line 73 of file ir.c.}\par
 {\b 
 int getADCReading ()}}
 \par
-{\bkmkstart AAAAAAAADA}
-{\bkmkend AAAAAAAADA}
+{\bkmkstart AAAAAAAADD}
+{\bkmkend AAAAAAAADD}
 {
 \pard\plain \s51\li360\sa60\sb30\qj\widctlpar\qj\adjustright \fs20\cgrid 
 {\s17\sa60\sb30\widctlpar\qj \fs22\cgrid 
@@ -3437,8 +3548,8 @@ Definition at line 82 of file ir.c.}\par
 {\b 
 float ir_convertToDist (int  {\i rawIRValue})}}
 \par
-{\bkmkstart AAAAAAAADB}
-{\bkmkend AAAAAAAADB}
+{\bkmkstart AAAAAAAADE}
+{\bkmkend AAAAAAAADE}
 {
 \pard\plain \s51\li360\sa60\sb30\qj\widctlpar\qj\adjustright \fs20\cgrid 
 {\s17\sa60\sb30\widctlpar\qj \fs22\cgrid 
@@ -3469,8 +3580,8 @@ Definition at line 87 of file ir.c.}\par
 C:/Users/DonsterLaptop/Documents/Robot288/cpre288_generalpurposeautomatedrobot/Robot/Sensor/sonic.c File Reference\par \pard\plain 
 {\tc\tcl2 \v C:/Users/DonsterLaptop/Documents/Robot288/cpre288_generalpurposeautomatedrobot/Robot/Sensor/sonic.c}
 {\xe \v C:/Users/DonsterLaptop/Documents/Robot288/cpre288_generalpurposeautomatedrobot/Robot/Sensor/sonic.c}
-{\bkmkstart AAAAAAAADC}
-{\bkmkend AAAAAAAADC}
+{\bkmkstart AAAAAAAADF}
+{\bkmkend AAAAAAAADF}
 \par
 {
 {\s17\sa60\sb30\widctlpar\qj \fs22\cgrid 
@@ -3485,8 +3596,8 @@ Macros\par
 {
 \pard\plain \s80\fi-360\li360\widctlpar\jclisttab\tx360{\*\pn \pnlvlbody\ilvl0\ls1\pnrnot0\pndec }\ls1\adjustright \fs20\cgrid 
 
-#define {\b V_SOUND_cmps}\~ 34000{\bkmkstart AAAAAAAADD}
-{\bkmkend AAAAAAAADD}
+#define {\b V_SOUND_cmps}\~ 34000{\bkmkstart AAAAAAAADG}
+{\bkmkend AAAAAAAADG}
 \par
 }
 \pard\plain \s3\sb240\sa60\keepn\widctlpar\adjustright \b\f1\cgrid 
@@ -3548,8 +3659,8 @@ Function Documentation\par
 {\b 
 void chirp_init ()}}
 \par
-{\bkmkstart AAAAAAAADE}
-{\bkmkend AAAAAAAADE}
+{\bkmkstart AAAAAAAADH}
+{\bkmkend AAAAAAAADH}
 {
 \pard\plain \s51\li360\sa60\sb30\qj\widctlpar\qj\adjustright \fs20\cgrid 
 {\s17\sa60\sb30\widctlpar\qj \fs22\cgrid 
@@ -3563,8 +3674,8 @@ Definition at line 79 of file sonic.c.}\par
 {\b 
 int get_sonic_reading ()}}
 \par
-{\bkmkstart AAAAAAAADF}
-{\bkmkend AAAAAAAADF}
+{\bkmkstart AAAAAAAADI}
+{\bkmkend AAAAAAAADI}
 {
 \pard\plain \s51\li360\sa60\sb30\qj\widctlpar\qj\adjustright \fs20\cgrid 
 {\s17\sa60\sb30\widctlpar\qj \fs22\cgrid 
@@ -3580,8 +3691,8 @@ Definition at line 137 of file sonic.c.}\par
 {\b 
 void sonic_chirp ()}}
 \par
-{\bkmkstart AAAAAAAADG}
-{\bkmkend AAAAAAAADG}
+{\bkmkstart AAAAAAAADJ}
+{\bkmkend AAAAAAAADJ}
 {
 \pard\plain \s51\li360\sa60\sb30\qj\widctlpar\qj\adjustright \fs20\cgrid 
 {\s17\sa60\sb30\widctlpar\qj \fs22\cgrid 
@@ -3595,8 +3706,8 @@ Definition at line 123 of file sonic.c.}\par
 {\b 
 float sonic_convertToDist (int  {\i rawSonicValue})}}
 \par
-{\bkmkstart AAAAAAAADH}
-{\bkmkend AAAAAAAADH}
+{\bkmkstart AAAAAAAADK}
+{\bkmkend AAAAAAAADK}
 {
 \pard\plain \s51\li360\sa60\sb30\qj\widctlpar\qj\adjustright \fs20\cgrid 
 {\s17\sa60\sb30\widctlpar\qj \fs22\cgrid 
@@ -3625,8 +3736,8 @@ Definition at line 142 of file sonic.c.}\par
 {\b 
 void sonic_handler ()}}
 \par
-{\bkmkstart AAAAAAAADI}
-{\bkmkend AAAAAAAADI}
+{\bkmkstart AAAAAAAADL}
+{\bkmkend AAAAAAAADL}
 {
 \pard\plain \s51\li360\sa60\sb30\qj\widctlpar\qj\adjustright \fs20\cgrid 
 {\s17\sa60\sb30\widctlpar\qj \fs22\cgrid 
@@ -3640,8 +3751,8 @@ Definition at line 41 of file sonic.c.}\par
 {\b 
 void sonic_init ()}}
 \par
-{\bkmkstart AAAAAAAADJ}
-{\bkmkend AAAAAAAADJ}
+{\bkmkstart AAAAAAAADM}
+{\bkmkend AAAAAAAADM}
 {
 \pard\plain \s51\li360\sa60\sb30\qj\widctlpar\qj\adjustright \fs20\cgrid 
 {\s17\sa60\sb30\widctlpar\qj \fs22\cgrid 
@@ -3655,8 +3766,8 @@ Definition at line 97 of file sonic.c.}\par
 {\b 
 void sonic_start ()}}
 \par
-{\bkmkstart AAAAAAAADK}
-{\bkmkend AAAAAAAADK}
+{\bkmkstart AAAAAAAADN}
+{\bkmkend AAAAAAAADN}
 {
 \pard\plain \s51\li360\sa60\sb30\qj\widctlpar\qj\adjustright \fs20\cgrid 
 {\s17\sa60\sb30\widctlpar\qj \fs22\cgrid 
@@ -3674,8 +3785,8 @@ Variable Documentation\par
 {\b 
 volatile unsigned int sonic_read = 0}}
 \par
-{\bkmkstart AAAAAAAADL}
-{\bkmkend AAAAAAAADL}
+{\bkmkstart AAAAAAAADO}
+{\bkmkend AAAAAAAADO}
 {
 \pard\plain \s51\li360\sa60\sb30\qj\widctlpar\qj\adjustright \fs20\cgrid 
 {\s17\sa60\sb30\widctlpar\qj \fs22\cgrid 
@@ -3689,8 +3800,8 @@ Definition at line 31 of file sonic.c.}\par
 {\b 
 volatile bool sonic_ready = 0}}
 \par
-{\bkmkstart AAAAAAAADM}
-{\bkmkend AAAAAAAADM}
+{\bkmkstart AAAAAAAADP}
+{\bkmkend AAAAAAAADP}
 {
 \pard\plain \s51\li360\sa60\sb30\qj\widctlpar\qj\adjustright \fs20\cgrid 
 {\s17\sa60\sb30\widctlpar\qj \fs22\cgrid 
@@ -3704,8 +3815,8 @@ Definition at line 36 of file sonic.c.}\par
 {\b 
 volatile unsigned int sonic_timer = 0}}
 \par
-{\bkmkstart AAAAAAAADN}
-{\bkmkend AAAAAAAADN}
+{\bkmkstart AAAAAAAADQ}
+{\bkmkend AAAAAAAADQ}
 {
 \pard\plain \s51\li360\sa60\sb30\qj\widctlpar\qj\adjustright \fs20\cgrid 
 {\s17\sa60\sb30\widctlpar\qj \fs22\cgrid 
@@ -3721,8 +3832,8 @@ Definition at line 26 of file sonic.c.}\par
 C:/Users/DonsterLaptop/Documents/Robot288/cpre288_generalpurposeautomatedrobot/Robot/Sensor/sonic.h File Reference\par \pard\plain 
 {\tc\tcl2 \v C:/Users/DonsterLaptop/Documents/Robot288/cpre288_generalpurposeautomatedrobot/Robot/Sensor/sonic.h}
 {\xe \v C:/Users/DonsterLaptop/Documents/Robot288/cpre288_generalpurposeautomatedrobot/Robot/Sensor/sonic.h}
-{\bkmkstart AAAAAAAADO}
-{\bkmkend AAAAAAAADO}
+{\bkmkstart AAAAAAAADR}
+{\bkmkend AAAAAAAADR}
 \par
 {
 {\s17\sa60\sb30\widctlpar\qj \fs22\cgrid 
@@ -3780,8 +3891,8 @@ Function Documentation\par
 {\b 
 void chirp_init ()}}
 \par
-{\bkmkstart AAAAAAAADP}
-{\bkmkend AAAAAAAADP}
+{\bkmkstart AAAAAAAADS}
+{\bkmkend AAAAAAAADS}
 {
 \pard\plain \s51\li360\sa60\sb30\qj\widctlpar\qj\adjustright \fs20\cgrid 
 {\s17\sa60\sb30\widctlpar\qj \fs22\cgrid 
@@ -3795,8 +3906,8 @@ Definition at line 79 of file sonic.c.}\par
 {\b 
 int get_sonic_reading ()}}
 \par
-{\bkmkstart AAAAAAAADQ}
-{\bkmkend AAAAAAAADQ}
+{\bkmkstart AAAAAAAADT}
+{\bkmkend AAAAAAAADT}
 {
 \pard\plain \s51\li360\sa60\sb30\qj\widctlpar\qj\adjustright \fs20\cgrid 
 {\s17\sa60\sb30\widctlpar\qj \fs22\cgrid 
@@ -3812,8 +3923,8 @@ Definition at line 137 of file sonic.c.}\par
 {\b 
 void sonic_chirp ()}}
 \par
-{\bkmkstart AAAAAAAADR}
-{\bkmkend AAAAAAAADR}
+{\bkmkstart AAAAAAAADU}
+{\bkmkend AAAAAAAADU}
 {
 \pard\plain \s51\li360\sa60\sb30\qj\widctlpar\qj\adjustright \fs20\cgrid 
 {\s17\sa60\sb30\widctlpar\qj \fs22\cgrid 
@@ -3827,8 +3938,8 @@ Definition at line 123 of file sonic.c.}\par
 {\b 
 float sonic_convertToDist (int  {\i rawSonicValue})}}
 \par
-{\bkmkstart AAAAAAAADS}
-{\bkmkend AAAAAAAADS}
+{\bkmkstart AAAAAAAADV}
+{\bkmkend AAAAAAAADV}
 {
 \pard\plain \s51\li360\sa60\sb30\qj\widctlpar\qj\adjustright \fs20\cgrid 
 {\s17\sa60\sb30\widctlpar\qj \fs22\cgrid 
@@ -3857,8 +3968,8 @@ Definition at line 142 of file sonic.c.}\par
 {\b 
 void sonic_handler ()}}
 \par
-{\bkmkstart AAAAAAAADT}
-{\bkmkend AAAAAAAADT}
+{\bkmkstart AAAAAAAADW}
+{\bkmkend AAAAAAAADW}
 {
 \pard\plain \s51\li360\sa60\sb30\qj\widctlpar\qj\adjustright \fs20\cgrid 
 {\s17\sa60\sb30\widctlpar\qj \fs22\cgrid 
@@ -3872,8 +3983,8 @@ Definition at line 41 of file sonic.c.}\par
 {\b 
 void sonic_init ()}}
 \par
-{\bkmkstart AAAAAAAADU}
-{\bkmkend AAAAAAAADU}
+{\bkmkstart AAAAAAAADX}
+{\bkmkend AAAAAAAADX}
 {
 \pard\plain \s51\li360\sa60\sb30\qj\widctlpar\qj\adjustright \fs20\cgrid 
 {\s17\sa60\sb30\widctlpar\qj \fs22\cgrid 
@@ -3887,8 +3998,8 @@ Definition at line 97 of file sonic.c.}\par
 {\b 
 void sonic_start ()}}
 \par
-{\bkmkstart AAAAAAAADV}
-{\bkmkend AAAAAAAADV}
+{\bkmkstart AAAAAAAADY}
+{\bkmkend AAAAAAAADY}
 {
 \pard\plain \s51\li360\sa60\sb30\qj\widctlpar\qj\adjustright \fs20\cgrid 
 {\s17\sa60\sb30\widctlpar\qj \fs22\cgrid 
@@ -3904,8 +4015,8 @@ Definition at line 87 of file sonic.c.}\par
 C:/Users/DonsterLaptop/Documents/Robot288/cpre288_generalpurposeautomatedrobot/Robot/Sensor/sweep_sensor.c File Reference\par \pard\plain 
 {\tc\tcl2 \v C:/Users/DonsterLaptop/Documents/Robot288/cpre288_generalpurposeautomatedrobot/Robot/Sensor/sweep_sensor.c}
 {\xe \v C:/Users/DonsterLaptop/Documents/Robot288/cpre288_generalpurposeautomatedrobot/Robot/Sensor/sweep_sensor.c}
-{\bkmkstart AAAAAAAADW}
-{\bkmkend AAAAAAAADW}
+{\bkmkstart AAAAAAAADZ}
+{\bkmkend AAAAAAAADZ}
 \par
 {
 {\s17\sa60\sb30\widctlpar\qj \fs22\cgrid 
@@ -3988,8 +4099,8 @@ Macro Definition Documentation\par
 {\b 
 #define PWM_PERIOD_MICROS\~ 20000}}
 \par
-{\bkmkstart AAAAAAAADX}
-{\bkmkend AAAAAAAADX}
+{\bkmkstart AAAAAAAAEA}
+{\bkmkend AAAAAAAAEA}
 {
 \pard\plain \s51\li360\sa60\sb30\qj\widctlpar\qj\adjustright \fs20\cgrid 
 {\s17\sa60\sb30\widctlpar\qj \fs22\cgrid 
@@ -4003,8 +4114,8 @@ Definition at line 28 of file sweep_sensor.c.}\par
 {\b 
 #define PWM_PERIOD_TICKS\~ ({\b PWM_PERIOD_MICROS} * {\b TIMER_TICKS_PER_MICROS})}}
 \par
-{\bkmkstart AAAAAAAADY}
-{\bkmkend AAAAAAAADY}
+{\bkmkstart AAAAAAAAEB}
+{\bkmkend AAAAAAAAEB}
 {
 \pard\plain \s51\li360\sa60\sb30\qj\widctlpar\qj\adjustright \fs20\cgrid 
 {\s17\sa60\sb30\widctlpar\qj \fs22\cgrid 
@@ -4018,8 +4129,8 @@ Definition at line 38 of file sweep_sensor.c.}\par
 {\b 
 #define TIMER_TICKS_PER_MICROS\~ ({\b TIMER_TICKS_PER_SECOND} * (1.0e-6))}}
 \par
-{\bkmkstart AAAAAAAADZ}
-{\bkmkend AAAAAAAADZ}
+{\bkmkstart AAAAAAAAEC}
+{\bkmkend AAAAAAAAEC}
 {
 \pard\plain \s51\li360\sa60\sb30\qj\widctlpar\qj\adjustright \fs20\cgrid 
 {\s17\sa60\sb30\widctlpar\qj \fs22\cgrid 
@@ -4033,8 +4144,8 @@ Definition at line 33 of file sweep_sensor.c.}\par
 {\b 
 #define TIMER_TICKS_PER_SECOND\~ 16e6}}
 \par
-{\bkmkstart AAAAAAAAEA}
-{\bkmkend AAAAAAAAEA}
+{\bkmkstart AAAAAAAAED}
+{\bkmkend AAAAAAAAED}
 {
 \pard\plain \s51\li360\sa60\sb30\qj\widctlpar\qj\adjustright \fs20\cgrid 
 {\s17\sa60\sb30\widctlpar\qj \fs22\cgrid 
@@ -4053,8 +4164,8 @@ Function Documentation\par
 {\b 
 void sweep_doFullSweep (float  {\i sweepIncrement_deg}, uint32_t  {\i incDelay_ms})}}
 \par
-{\bkmkstart AAAAAAAAEB}
-{\bkmkend AAAAAAAAEB}
+{\bkmkstart AAAAAAAAEE}
+{\bkmkend AAAAAAAAEE}
 {
 \pard\plain \s51\li360\sa60\sb30\qj\widctlpar\qj\adjustright \fs20\cgrid 
 {\s17\sa60\sb30\widctlpar\qj \fs22\cgrid 
@@ -4093,8 +4204,8 @@ Definition at line 397 of file sweep_sensor.c.}\par
 {\b 
 void sweep_doSweep (float  {\i startAngle_deg}, float  {\i endAngle_deg}, float  {\i sweepIncrement_deg}, uint32_t  {\i incDelay_ms})}}
 \par
-{\bkmkstart AAAAAAAAEC}
-{\bkmkend AAAAAAAAEC}
+{\bkmkstart AAAAAAAAEF}
+{\bkmkend AAAAAAAAEF}
 {
 \pard\plain \s51\li360\sa60\sb30\qj\widctlpar\qj\adjustright \fs20\cgrid 
 {\s17\sa60\sb30\widctlpar\qj \fs22\cgrid 
@@ -4154,8 +4265,8 @@ Definition at line 288 of file sweep_sensor.c.}\par
 {\b 
 float sweep_getPos ()}}
 \par
-{\bkmkstart AAAAAAAAED}
-{\bkmkend AAAAAAAAED}
+{\bkmkstart AAAAAAAAEG}
+{\bkmkend AAAAAAAAEG}
 {
 \pard\plain \s51\li360\sa60\sb30\qj\widctlpar\qj\adjustright \fs20\cgrid 
 {\s17\sa60\sb30\widctlpar\qj \fs22\cgrid 
@@ -4171,8 +4282,8 @@ Definition at line 233 of file sweep_sensor.c.}\par
 {\b 
 void sweep_init ()}}
 \par
-{\bkmkstart AAAAAAAAEE}
-{\bkmkend AAAAAAAAEE}
+{\bkmkstart AAAAAAAAEH}
+{\bkmkend AAAAAAAAEH}
 {
 \pard\plain \s51\li360\sa60\sb30\qj\widctlpar\qj\adjustright \fs20\cgrid 
 {\s17\sa60\sb30\widctlpar\qj \fs22\cgrid 
@@ -4186,8 +4297,8 @@ Definition at line 133 of file sweep_sensor.c.}\par
 {\b 
 uint32_t sweep_moveAbsolute (float  {\i angularPos_deg})}}
 \par
-{\bkmkstart AAAAAAAAEF}
-{\bkmkend AAAAAAAAEF}
+{\bkmkstart AAAAAAAAEI}
+{\bkmkend AAAAAAAAEI}
 {
 \pard\plain \s51\li360\sa60\sb30\qj\widctlpar\qj\adjustright \fs20\cgrid 
 {\s17\sa60\sb30\widctlpar\qj \fs22\cgrid 
@@ -4216,8 +4327,8 @@ Definition at line 240 of file sweep_sensor.c.}\par
 {\b 
 uint32_t sweep_moveRelative (float  {\i angularOffset_deg})}}
 \par
-{\bkmkstart AAAAAAAAEG}
-{\bkmkend AAAAAAAAEG}
+{\bkmkstart AAAAAAAAEJ}
+{\bkmkend AAAAAAAAEJ}
 {
 \pard\plain \s51\li360\sa60\sb30\qj\widctlpar\qj\adjustright \fs20\cgrid 
 {\s17\sa60\sb30\widctlpar\qj \fs22\cgrid 
@@ -4246,8 +4357,8 @@ Definition at line 273 of file sweep_sensor.c.}\par
 {\b 
 int32_t sweep_readIRSensor ()}}
 \par
-{\bkmkstart AAAAAAAAEH}
-{\bkmkend AAAAAAAAEH}
+{\bkmkstart AAAAAAAAEK}
+{\bkmkend AAAAAAAAEK}
 {
 \pard\plain \s51\li360\sa60\sb30\qj\widctlpar\qj\adjustright \fs20\cgrid 
 {\s17\sa60\sb30\widctlpar\qj \fs22\cgrid 
@@ -4263,8 +4374,8 @@ Definition at line 278 of file sweep_sensor.c.}\par
 {\b 
 int32_t sweep_readSonicSensor ()}}
 \par
-{\bkmkstart AAAAAAAAEI}
-{\bkmkend AAAAAAAAEI}
+{\bkmkstart AAAAAAAAEL}
+{\bkmkend AAAAAAAAEL}
 {
 \pard\plain \s51\li360\sa60\sb30\qj\widctlpar\qj\adjustright \fs20\cgrid 
 {\s17\sa60\sb30\widctlpar\qj \fs22\cgrid 
@@ -4284,8 +4395,8 @@ Variable Documentation\par
 {\b 
 float degrees_per_micros}}
 \par
-{\bkmkstart AAAAAAAAEJ}
-{\bkmkend AAAAAAAAEJ}
+{\bkmkstart AAAAAAAAEM}
+{\bkmkend AAAAAAAAEM}
 {
 \pard\plain \s51\li360\sa60\sb30\qj\widctlpar\qj\adjustright \fs20\cgrid 
 {\s17\sa60\sb30\widctlpar\qj \fs22\cgrid 
@@ -4300,8 +4411,8 @@ Definition at line 58 of file sweep_sensor.c.}\par
 {\b 
 signed int micros_offset}}
 \par
-{\bkmkstart AAAAAAAAEK}
-{\bkmkend AAAAAAAAEK}
+{\bkmkstart AAAAAAAAEN}
+{\bkmkend AAAAAAAAEN}
 {
 \pard\plain \s51\li360\sa60\sb30\qj\widctlpar\qj\adjustright \fs20\cgrid 
 {\s17\sa60\sb30\widctlpar\qj \fs22\cgrid 
@@ -4316,8 +4427,8 @@ Definition at line 68 of file sweep_sensor.c.}\par
 {\b 
 unsigned int pos_counter_value}}
 \par
-{\bkmkstart AAAAAAAAEL}
-{\bkmkend AAAAAAAAEL}
+{\bkmkstart AAAAAAAAEO}
+{\bkmkend AAAAAAAAEO}
 {
 \pard\plain \s51\li360\sa60\sb30\qj\widctlpar\qj\adjustright \fs20\cgrid 
 {\s17\sa60\sb30\widctlpar\qj \fs22\cgrid 
@@ -4331,8 +4442,8 @@ Definition at line 48 of file sweep_sensor.c.}\par
 {\b 
 volatile float servoPos_deg}}
 \par
-{\bkmkstart AAAAAAAAEM}
-{\bkmkend AAAAAAAAEM}
+{\bkmkstart AAAAAAAAEP}
+{\bkmkend AAAAAAAAEP}
 {
 \pard\plain \s51\li360\sa60\sb30\qj\widctlpar\qj\adjustright \fs20\cgrid 
 {\s17\sa60\sb30\widctlpar\qj \fs22\cgrid 
@@ -4349,8 +4460,8 @@ Definition at line 76 of file sweep_sensor.c.}\par
 C:/Users/DonsterLaptop/Documents/Robot288/cpre288_generalpurposeautomatedrobot/Robot/Sensor/sweep_sensor.h File Reference\par \pard\plain 
 {\tc\tcl2 \v C:/Users/DonsterLaptop/Documents/Robot288/cpre288_generalpurposeautomatedrobot/Robot/Sensor/sweep_sensor.h}
 {\xe \v C:/Users/DonsterLaptop/Documents/Robot288/cpre288_generalpurposeautomatedrobot/Robot/Sensor/sweep_sensor.h}
-{\bkmkstart AAAAAAAAEN}
-{\bkmkend AAAAAAAAEN}
+{\bkmkstart AAAAAAAAEQ}
+{\bkmkend AAAAAAAAEQ}
 \par
 {
 {\s17\sa60\sb30\widctlpar\qj \fs22\cgrid 
@@ -4411,8 +4522,8 @@ Function Documentation\par
 {\b 
 void sweep_doFullSweep (float  {\i sweepIncrement_deg}, uint32_t  {\i incDelay_ms})}}
 \par
-{\bkmkstart AAAAAAAAEO}
-{\bkmkend AAAAAAAAEO}
+{\bkmkstart AAAAAAAAER}
+{\bkmkend AAAAAAAAER}
 {
 \pard\plain \s51\li360\sa60\sb30\qj\widctlpar\qj\adjustright \fs20\cgrid 
 {\s17\sa60\sb30\widctlpar\qj \fs22\cgrid 
@@ -4451,8 +4562,8 @@ Definition at line 397 of file sweep_sensor.c.}\par
 {\b 
 void sweep_doSweep (float  {\i startAngle_deg}, float  {\i endAngle_deg}, float  {\i sweepIncrement_deg}, uint32_t  {\i incDelay_ms})}}
 \par
-{\bkmkstart AAAAAAAAEP}
-{\bkmkend AAAAAAAAEP}
+{\bkmkstart AAAAAAAAES}
+{\bkmkend AAAAAAAAES}
 {
 \pard\plain \s51\li360\sa60\sb30\qj\widctlpar\qj\adjustright \fs20\cgrid 
 {\s17\sa60\sb30\widctlpar\qj \fs22\cgrid 
@@ -4512,8 +4623,8 @@ Definition at line 288 of file sweep_sensor.c.}\par
 {\b 
 float sweep_getPos ()}}
 \par
-{\bkmkstart AAAAAAAAEQ}
-{\bkmkend AAAAAAAAEQ}
+{\bkmkstart AAAAAAAAET}
+{\bkmkend AAAAAAAAET}
 {
 \pard\plain \s51\li360\sa60\sb30\qj\widctlpar\qj\adjustright \fs20\cgrid 
 {\s17\sa60\sb30\widctlpar\qj \fs22\cgrid 
@@ -4529,8 +4640,8 @@ Definition at line 233 of file sweep_sensor.c.}\par
 {\b 
 void sweep_init ()}}
 \par
-{\bkmkstart AAAAAAAAER}
-{\bkmkend AAAAAAAAER}
+{\bkmkstart AAAAAAAAEU}
+{\bkmkend AAAAAAAAEU}
 {
 \pard\plain \s51\li360\sa60\sb30\qj\widctlpar\qj\adjustright \fs20\cgrid 
 {\s17\sa60\sb30\widctlpar\qj \fs22\cgrid 
@@ -4544,8 +4655,8 @@ Definition at line 133 of file sweep_sensor.c.}\par
 {\b 
 uint32_t sweep_moveAbsolute (float  {\i angularPos_deg})}}
 \par
-{\bkmkstart AAAAAAAAES}
-{\bkmkend AAAAAAAAES}
+{\bkmkstart AAAAAAAAEV}
+{\bkmkend AAAAAAAAEV}
 {
 \pard\plain \s51\li360\sa60\sb30\qj\widctlpar\qj\adjustright \fs20\cgrid 
 {\s17\sa60\sb30\widctlpar\qj \fs22\cgrid 
@@ -4574,8 +4685,8 @@ Definition at line 240 of file sweep_sensor.c.}\par
 {\b 
 uint32_t sweep_moveRelative (float  {\i angularOffset_deg})}}
 \par
-{\bkmkstart AAAAAAAAET}
-{\bkmkend AAAAAAAAET}
+{\bkmkstart AAAAAAAAEW}
+{\bkmkend AAAAAAAAEW}
 {
 \pard\plain \s51\li360\sa60\sb30\qj\widctlpar\qj\adjustright \fs20\cgrid 
 {\s17\sa60\sb30\widctlpar\qj \fs22\cgrid 
@@ -4604,8 +4715,8 @@ Definition at line 273 of file sweep_sensor.c.}\par
 {\b 
 int32_t sweep_readIRSensor ()}}
 \par
-{\bkmkstart AAAAAAAAEU}
-{\bkmkend AAAAAAAAEU}
+{\bkmkstart AAAAAAAAEX}
+{\bkmkend AAAAAAAAEX}
 {
 \pard\plain \s51\li360\sa60\sb30\qj\widctlpar\qj\adjustright \fs20\cgrid 
 {\s17\sa60\sb30\widctlpar\qj \fs22\cgrid 
@@ -4621,8 +4732,8 @@ Definition at line 278 of file sweep_sensor.c.}\par
 {\b 
 int32_t sweep_readSonicSensor ()}}
 \par
-{\bkmkstart AAAAAAAAEV}
-{\bkmkend AAAAAAAAEV}
+{\bkmkstart AAAAAAAAEY}
+{\bkmkend AAAAAAAAEY}
 {
 \pard\plain \s51\li360\sa60\sb30\qj\widctlpar\qj\adjustright \fs20\cgrid 
 {\s17\sa60\sb30\widctlpar\qj \fs22\cgrid 
@@ -4637,17 +4748,173 @@ Definition at line 283 of file sweep_sensor.c.}\par
 \pard\plain \sect\sbkpage
 \s2\sb240\sa60\keepn\widctlpar\adjustright \b\f1\fs28\kerning28\cgrid 
 \pard\plain \s2\sb240\sa60\keepn\widctlpar\adjustright \b\f1\fs28\kerning28\cgrid 
-C:/Users/DonsterLaptop/Documents/Robot288/cpre288_generalpurposeautomatedrobot/Robot/Utils/Sound.c File Reference\par \pard\plain 
-{\tc\tcl2 \v C:/Users/DonsterLaptop/Documents/Robot288/cpre288_generalpurposeautomatedrobot/Robot/Utils/Sound.c}
-{\xe \v C:/Users/DonsterLaptop/Documents/Robot288/cpre288_generalpurposeautomatedrobot/Robot/Utils/Sound.c}
-{\bkmkstart AAAAAAAAEW}
-{\bkmkend AAAAAAAAEW}
+C:/Users/DonsterLaptop/Documents/Robot288/cpre288_generalpurposeautomatedrobot/Robot/Utils/lcd.c File Reference\par \pard\plain 
+{\tc\tcl2 \v C:/Users/DonsterLaptop/Documents/Robot288/cpre288_generalpurposeautomatedrobot/Robot/Utils/lcd.c}
+{\xe \v C:/Users/DonsterLaptop/Documents/Robot288/cpre288_generalpurposeautomatedrobot/Robot/Utils/lcd.c}
+{\bkmkstart AAAAAAAAEZ}
+{\bkmkend AAAAAAAAEZ}
 \par
 {
 {\s17\sa60\sb30\widctlpar\qj \fs22\cgrid 
-Library of functions for playing sound. }}\par
+Functions for displaying content on the 4x16 Character LCD Screen. }}\par
 {
-\pard\plain \s18\widctlpar\fs22\cgrid {\f2 #include <Utils/open_interface.h>}\par
+\pard\plain \s18\widctlpar\fs22\cgrid {\f2 #include "lcd.h"}\par
+}
+\pard\plain \s3\sb240\sa60\keepn\widctlpar\adjustright \b\f1\cgrid 
+Macros\par
+\pard\plain 
+
+{
+\pard\plain \s80\fi-360\li360\widctlpar\jclisttab\tx360{\*\pn \pnlvlbody\ilvl0\ls1\pnrnot0\pndec }\ls1\adjustright \fs20\cgrid 
+
+#define {\b BIT0}\~ 0x01{\bkmkstart AAAAAAAAFA}
+{\bkmkend AAAAAAAAFA}
+\par
+\pard\plain \s80\fi-360\li360\widctlpar\jclisttab\tx360{\*\pn \pnlvlbody\ilvl0\ls1\pnrnot0\pndec }\ls1\adjustright \fs20\cgrid 
+
+#define {\b BIT1}\~ 0x02{\bkmkstart AAAAAAAAFB}
+{\bkmkend AAAAAAAAFB}
+\par
+\pard\plain \s80\fi-360\li360\widctlpar\jclisttab\tx360{\*\pn \pnlvlbody\ilvl0\ls1\pnrnot0\pndec }\ls1\adjustright \fs20\cgrid 
+
+#define {\b BIT2}\~ 0x04{\bkmkstart AAAAAAAAFC}
+{\bkmkend AAAAAAAAFC}
+\par
+\pard\plain \s80\fi-360\li360\widctlpar\jclisttab\tx360{\*\pn \pnlvlbody\ilvl0\ls1\pnrnot0\pndec }\ls1\adjustright \fs20\cgrid 
+
+#define {\b BIT3}\~ 0x08{\bkmkstart AAAAAAAAFD}
+{\bkmkend AAAAAAAAFD}
+\par
+\pard\plain \s80\fi-360\li360\widctlpar\jclisttab\tx360{\*\pn \pnlvlbody\ilvl0\ls1\pnrnot0\pndec }\ls1\adjustright \fs20\cgrid 
+
+#define {\b BIT4}\~ 0x10{\bkmkstart AAAAAAAAFE}
+{\bkmkend AAAAAAAAFE}
+\par
+\pard\plain \s80\fi-360\li360\widctlpar\jclisttab\tx360{\*\pn \pnlvlbody\ilvl0\ls1\pnrnot0\pndec }\ls1\adjustright \fs20\cgrid 
+
+#define {\b BIT5}\~ 0x20{\bkmkstart AAAAAAAAFF}
+{\bkmkend AAAAAAAAFF}
+\par
+\pard\plain \s80\fi-360\li360\widctlpar\jclisttab\tx360{\*\pn \pnlvlbody\ilvl0\ls1\pnrnot0\pndec }\ls1\adjustright \fs20\cgrid 
+
+#define {\b BIT6}\~ 0x40{\bkmkstart AAAAAAAAFG}
+{\bkmkend AAAAAAAAFG}
+\par
+\pard\plain \s80\fi-360\li360\widctlpar\jclisttab\tx360{\*\pn \pnlvlbody\ilvl0\ls1\pnrnot0\pndec }\ls1\adjustright \fs20\cgrid 
+
+#define {\b BIT7}\~ 0x80{\bkmkstart AAAAAAAAFH}
+{\bkmkend AAAAAAAAFH}
+\par
+\pard\plain \s80\fi-360\li360\widctlpar\jclisttab\tx360{\*\pn \pnlvlbody\ilvl0\ls1\pnrnot0\pndec }\ls1\adjustright \fs20\cgrid 
+
+#define {\b HD_LCD_CLEAR}\~ 0x01{\bkmkstart AAAAAAAAFI}
+{\bkmkend AAAAAAAAFI}
+\par
+\pard\plain \s80\fi-360\li360\widctlpar\jclisttab\tx360{\*\pn \pnlvlbody\ilvl0\ls1\pnrnot0\pndec }\ls1\adjustright \fs20\cgrid 
+
+#define {\b HD_RETURN_HOME}\~ 0X02{\bkmkstart AAAAAAAAFJ}
+{\bkmkend AAAAAAAAFJ}
+\par
+\pard\plain \s80\fi-360\li360\widctlpar\jclisttab\tx360{\*\pn \pnlvlbody\ilvl0\ls1\pnrnot0\pndec }\ls1\adjustright \fs20\cgrid 
+
+#define {\b HD_CURSOR_SHIFT_DEC}\~ 0X05{\bkmkstart AAAAAAAAFK}
+{\bkmkend AAAAAAAAFK}
+\par
+\pard\plain \s80\fi-360\li360\widctlpar\jclisttab\tx360{\*\pn \pnlvlbody\ilvl0\ls1\pnrnot0\pndec }\ls1\adjustright \fs20\cgrid 
+
+#define {\b HD_CURSOR_SHIFT_INC}\~ 0X07{\bkmkstart AAAAAAAAFL}
+{\bkmkend AAAAAAAAFL}
+\par
+\pard\plain \s80\fi-360\li360\widctlpar\jclisttab\tx360{\*\pn \pnlvlbody\ilvl0\ls1\pnrnot0\pndec }\ls1\adjustright \fs20\cgrid 
+
+#define {\b HD_DISPLAY_CONTROL}\~ 3{\bkmkstart AAAAAAAAFM}
+{\bkmkend AAAAAAAAFM}
+\par
+\pard\plain \s80\fi-360\li360\widctlpar\jclisttab\tx360{\*\pn \pnlvlbody\ilvl0\ls1\pnrnot0\pndec }\ls1\adjustright \fs20\cgrid 
+
+#define {\b HD_DISPLAY_ON}\~ 0x04{\bkmkstart AAAAAAAAFN}
+{\bkmkend AAAAAAAAFN}
+\par
+\pard\plain \s80\fi-360\li360\widctlpar\jclisttab\tx360{\*\pn \pnlvlbody\ilvl0\ls1\pnrnot0\pndec }\ls1\adjustright \fs20\cgrid 
+
+#define {\b HD_CURSOR_ON}\~ 0x02{\bkmkstart AAAAAAAAFO}
+{\bkmkend AAAAAAAAFO}
+\par
+\pard\plain \s80\fi-360\li360\widctlpar\jclisttab\tx360{\*\pn \pnlvlbody\ilvl0\ls1\pnrnot0\pndec }\ls1\adjustright \fs20\cgrid 
+
+#define {\b HD_BLINK_ON}\~ 0x01{\bkmkstart AAAAAAAAFP}
+{\bkmkend AAAAAAAAFP}
+\par
+\pard\plain \s80\fi-360\li360\widctlpar\jclisttab\tx360{\*\pn \pnlvlbody\ilvl0\ls1\pnrnot0\pndec }\ls1\adjustright \fs20\cgrid 
+
+#define {\b HD_CURSOR_MOVE_LEFT}\~ 0x10{\bkmkstart AAAAAAAAFQ}
+{\bkmkend AAAAAAAAFQ}
+\par
+\pard\plain \s80\fi-360\li360\widctlpar\jclisttab\tx360{\*\pn \pnlvlbody\ilvl0\ls1\pnrnot0\pndec }\ls1\adjustright \fs20\cgrid 
+
+#define {\b HD_CURSOR_MOVE_RIGHT}\~ 0x14{\bkmkstart AAAAAAAAFR}
+{\bkmkend AAAAAAAAFR}
+\par
+\pard\plain \s80\fi-360\li360\widctlpar\jclisttab\tx360{\*\pn \pnlvlbody\ilvl0\ls1\pnrnot0\pndec }\ls1\adjustright \fs20\cgrid 
+
+#define {\b HD_DISPLAY_SHIFT_LEFT}\~ 0x18{\bkmkstart AAAAAAAAFS}
+{\bkmkend AAAAAAAAFS}
+\par
+\pard\plain \s80\fi-360\li360\widctlpar\jclisttab\tx360{\*\pn \pnlvlbody\ilvl0\ls1\pnrnot0\pndec }\ls1\adjustright \fs20\cgrid 
+
+#define {\b HD_DISPLAY_SHIFT_RIGHT}\~ 0x1C{\bkmkstart AAAAAAAAFT}
+{\bkmkend AAAAAAAAFT}
+\par
+\pard\plain \s80\fi-360\li360\widctlpar\jclisttab\tx360{\*\pn \pnlvlbody\ilvl0\ls1\pnrnot0\pndec }\ls1\adjustright \fs20\cgrid 
+
+#define {\b LCD_WIDTH}\~ 20{\bkmkstart AAAAAAAAFU}
+{\bkmkend AAAAAAAAFU}
+\par
+\pard\plain \s80\fi-360\li360\widctlpar\jclisttab\tx360{\*\pn \pnlvlbody\ilvl0\ls1\pnrnot0\pndec }\ls1\adjustright \fs20\cgrid 
+
+#define {\b LCD_HEIGHT}\~ 4{\bkmkstart AAAAAAAAFV}
+{\bkmkend AAAAAAAAFV}
+\par
+\pard\plain \s80\fi-360\li360\widctlpar\jclisttab\tx360{\*\pn \pnlvlbody\ilvl0\ls1\pnrnot0\pndec }\ls1\adjustright \fs20\cgrid 
+
+#define {\b LCD_TOTAL_CHARS}\~ (LCD_WIDTH * LCD_HEIGHT){\bkmkstart AAAAAAAAFW}
+{\bkmkend AAAAAAAAFW}
+\par
+\pard\plain \s80\fi-360\li360\widctlpar\jclisttab\tx360{\*\pn \pnlvlbody\ilvl0\ls1\pnrnot0\pndec }\ls1\adjustright \fs20\cgrid 
+
+#define {\b LCD_DDRAM_WRITE}\~ 0x80{\bkmkstart AAAAAAAAFX}
+{\bkmkend AAAAAAAAFX}
+\par
+\pard\plain \s80\fi-360\li360\widctlpar\jclisttab\tx360{\*\pn \pnlvlbody\ilvl0\ls1\pnrnot0\pndec }\ls1\adjustright \fs20\cgrid 
+
+#define {\b LCD_CGRAM_WRITE}\~ 0x40{\bkmkstart AAAAAAAAFY}
+{\bkmkend AAAAAAAAFY}
+\par
+\pard\plain \s80\fi-360\li360\widctlpar\jclisttab\tx360{\*\pn \pnlvlbody\ilvl0\ls1\pnrnot0\pndec }\ls1\adjustright \fs20\cgrid 
+
+#define {\b EN_PIN}\~ BIT2{\bkmkstart AAAAAAAAFZ}
+{\bkmkend AAAAAAAAFZ}
+\par
+\pard\plain \s80\fi-360\li360\widctlpar\jclisttab\tx360{\*\pn \pnlvlbody\ilvl0\ls1\pnrnot0\pndec }\ls1\adjustright \fs20\cgrid 
+
+#define {\b RS_PIN}\~ BIT3{\bkmkstart AAAAAAAAGA}
+{\bkmkend AAAAAAAAGA}
+\par
+\pard\plain \s80\fi-360\li360\widctlpar\jclisttab\tx360{\*\pn \pnlvlbody\ilvl0\ls1\pnrnot0\pndec }\ls1\adjustright \fs20\cgrid 
+
+#define {\b RW_PIN}\~ BIT6{\bkmkstart AAAAAAAAGB}
+{\bkmkend AAAAAAAAGB}
+\par
+\pard\plain \s80\fi-360\li360\widctlpar\jclisttab\tx360{\*\pn \pnlvlbody\ilvl0\ls1\pnrnot0\pndec }\ls1\adjustright \fs20\cgrid 
+
+#define {\b LCD_PORT_DATA}\~ GPIO_PORTF_DATA_R{\bkmkstart AAAAAAAAGC}
+{\bkmkend AAAAAAAAGC}
+\par
+\pard\plain \s80\fi-360\li360\widctlpar\jclisttab\tx360{\*\pn \pnlvlbody\ilvl0\ls1\pnrnot0\pndec }\ls1\adjustright \fs20\cgrid 
+
+#define {\b LCD_PORT_CNTRL}\~ GPIO_PORTD_DATA_R{\bkmkstart AAAAAAAAGD}
+{\bkmkend AAAAAAAAGD}
+\par
 }
 \pard\plain \s3\sb240\sa60\keepn\widctlpar\adjustright \b\f1\cgrid 
 Functions\par
@@ -4655,7 +4922,96 @@ Functions\par
 
 {
 \pard\plain \s80\fi-360\li360\widctlpar\jclisttab\tx360{\*\pn \pnlvlbody\ilvl0\ls1\pnrnot0\pndec }\ls1\adjustright \fs20\cgrid 
-void {\b playSong} ()\par
+void {\b lcd_sendCommand} (uint8_t {\b data})\par
+{
+\pard\plain \s51\li360\sa60\sb30\qj\widctlpar\qj\adjustright \fs20\cgrid {\i {\s17\sa60\sb30\widctlpar\qj \fs22\cgrid 
+Send command to LCD - Position, Clear, Etc. }{
+}\par
+}}
+\pard\plain \s80\fi-360\li360\widctlpar\jclisttab\tx360{\*\pn \pnlvlbody\ilvl0\ls1\pnrnot0\pndec }\ls1\adjustright \fs20\cgrid 
+
+void {\b lcd_sendNibble} (uint8_t theNibble){\bkmkstart AAAAAAAAGE}
+{\bkmkend AAAAAAAAGE}
+\par
+{
+\pard\plain \s51\li360\sa60\sb30\qj\widctlpar\qj\adjustright \fs20\cgrid {\i {\s17\sa60\sb30\widctlpar\qj \fs22\cgrid 
+Send 4bit nibble to lcd, then clear port. }{
+}\par
+}}
+\pard\plain \s80\fi-360\li360\widctlpar\jclisttab\tx360{\*\pn \pnlvlbody\ilvl0\ls1\pnrnot0\pndec }\ls1\adjustright \fs20\cgrid 
+
+void {\b lcd_init} (void){\bkmkstart AAAAAAAAGF}
+{\bkmkend AAAAAAAAGF}
+\par
+{
+\pard\plain \s51\li360\sa60\sb30\qj\widctlpar\qj\adjustright \fs20\cgrid {\i {\s17\sa60\sb30\widctlpar\qj \fs22\cgrid 
+Initialize PORTB0:6 to Communicate with LCD. }{
+}\par
+}}
+\pard\plain \s80\fi-360\li360\widctlpar\jclisttab\tx360{\*\pn \pnlvlbody\ilvl0\ls1\pnrnot0\pndec }\ls1\adjustright \fs20\cgrid 
+
+void {\b lcd_putc} (char {\b data}){\bkmkstart AAAAAAAAGG}
+{\bkmkend AAAAAAAAGG}
+\par
+{
+\pard\plain \s51\li360\sa60\sb30\qj\widctlpar\qj\adjustright \fs20\cgrid {\i {\s17\sa60\sb30\widctlpar\qj \fs22\cgrid 
+Send Char to LCD. }{
+}\par
+}}
+\pard\plain \s80\fi-360\li360\widctlpar\jclisttab\tx360{\*\pn \pnlvlbody\ilvl0\ls1\pnrnot0\pndec }\ls1\adjustright \fs20\cgrid 
+
+void {\b lcd_puts} (char {\b data}[]){\bkmkstart AAAAAAAAGH}
+{\bkmkend AAAAAAAAGH}
+\par
+{
+\pard\plain \s51\li360\sa60\sb30\qj\widctlpar\qj\adjustright \fs20\cgrid {\i {\s17\sa60\sb30\widctlpar\qj \fs22\cgrid 
+Send Character array to LCD. }{
+}\par
+}}
+\pard\plain \s80\fi-360\li360\widctlpar\jclisttab\tx360{\*\pn \pnlvlbody\ilvl0\ls1\pnrnot0\pndec }\ls1\adjustright \fs20\cgrid 
+
+void {\b lcd_clear} (void){\bkmkstart AAAAAAAAGI}
+{\bkmkend AAAAAAAAGI}
+\par
+{
+\pard\plain \s51\li360\sa60\sb30\qj\widctlpar\qj\adjustright \fs20\cgrid {\i {\s17\sa60\sb30\widctlpar\qj \fs22\cgrid 
+Clear LCD Screen. }{
+}\par
+}}
+\pard\plain \s80\fi-360\li360\widctlpar\jclisttab\tx360{\*\pn \pnlvlbody\ilvl0\ls1\pnrnot0\pndec }\ls1\adjustright \fs20\cgrid 
+
+void {\b lcd_home} (void){\bkmkstart AAAAAAAAGJ}
+{\bkmkend AAAAAAAAGJ}
+\par
+{
+\pard\plain \s51\li360\sa60\sb30\qj\widctlpar\qj\adjustright \fs20\cgrid {\i {\s17\sa60\sb30\widctlpar\qj \fs22\cgrid 
+Return Cursor to 0,0. }{
+}\par
+}}
+\pard\plain \s80\fi-360\li360\widctlpar\jclisttab\tx360{\*\pn \pnlvlbody\ilvl0\ls1\pnrnot0\pndec }\ls1\adjustright \fs20\cgrid 
+void {\b lcd_gotoLine} (uint8_t lineNum)\par
+{
+\pard\plain \s51\li360\sa60\sb30\qj\widctlpar\qj\adjustright \fs20\cgrid {\i {\s17\sa60\sb30\widctlpar\qj \fs22\cgrid 
+Goto 0 indexed line number. }{
+}\par
+}}
+\pard\plain \s80\fi-360\li360\widctlpar\jclisttab\tx360{\*\pn \pnlvlbody\ilvl0\ls1\pnrnot0\pndec }\ls1\adjustright \fs20\cgrid 
+
+void {\b lcd_setCursorPos} (uint8_t x, uint8_t y){\bkmkstart AAAAAAAAGK}
+{\bkmkend AAAAAAAAGK}
+\par
+{
+\pard\plain \s51\li360\sa60\sb30\qj\widctlpar\qj\adjustright \fs20\cgrid {\i {\s17\sa60\sb30\widctlpar\qj \fs22\cgrid 
+Set cursor position - top left is 0,0. }{
+}\par
+}}
+\pard\plain \s80\fi-360\li360\widctlpar\jclisttab\tx360{\*\pn \pnlvlbody\ilvl0\ls1\pnrnot0\pndec }\ls1\adjustright \fs20\cgrid 
+void {\b lcd_printf} (const char *format,...)\par
+{
+\pard\plain \s51\li360\sa60\sb30\qj\widctlpar\qj\adjustright \fs20\cgrid {\i {\s17\sa60\sb30\widctlpar\qj \fs22\cgrid 
+Print a formatted string to the LCD screen. }{
+}\par
+}}
 }
 {\pard\widctlpar\brdrb\brdrs\brdrw5\brsp20 \adjustright \par}
 \pard\plain \s3\sb240\sa60\keepn\widctlpar\adjustright \b\f1\cgrid 
@@ -4663,60 +5019,1599 @@ Detailed Description\par
 \pard\plain 
 {
 \pard\plain \s17\sa60\sb30\widctlpar\qj \fs22\cgrid {\s17\sa60\sb30\widctlpar\qj \fs22\cgrid 
-Library of functions for playing sound. \par
+Functions for displaying content on the 4x16 Character LCD Screen. \par
 }{\s17\sa60\sb30\widctlpar\qj \fs22\cgrid 
 \par
 {{\s5\sb90\sa30\keepn\widctlpar\adjustright \b\f1\fs20\cgrid 
-Author:\par}\pard\plain \s61\li360\widctlpar\ql\adjustright \fs20\cgrid Quentin Urbanowicz \par
-Rene Chavez \par
-Peyton Sher \par
-Don Kieu\par
+Author:\par}\pard\plain \s61\li360\widctlpar\ql\adjustright \fs20\cgrid Noah Bergman \par
+Eric Middleton\par
 }{{\s5\sb90\sa30\keepn\widctlpar\adjustright \b\f1\fs20\cgrid 
-Date:\par}\pard\plain \s61\li360\widctlpar\ql\adjustright \fs20\cgrid 2018-11-27 \par
+Date:\par}\pard\plain \s61\li360\widctlpar\ql\adjustright \fs20\cgrid 2016-02-29 \par
 }}}
 {\pard\widctlpar\brdrb\brdrs\brdrw5\brsp20 \adjustright \par}
 \pard\plain \s3\sb240\sa60\keepn\widctlpar\adjustright \b\f1\cgrid 
 Function Documentation\par
 \pard\plain 
-{\xe \v playSong\:Sound.c}
-{\xe \v Sound.c\:playSong}
+{\xe \v lcd_gotoLine\:lcd.c}
+{\xe \v lcd.c\:lcd_gotoLine}
 \pard\plain \s4\sb240\sa60\keepn\widctlpar\adjustright \b\f1\fs20\cgrid {
 {\b 
-void playSong ()}}
+void lcd_gotoLine (uint8_t  {\i lineNum})}}
 \par
-{\bkmkstart AAAAAAAAEX}
-{\bkmkend AAAAAAAAEX}
+{\bkmkstart AAAAAAAAGL}
+{\bkmkend AAAAAAAAGL}
 {
 \pard\plain \s51\li360\sa60\sb30\qj\widctlpar\qj\adjustright \fs20\cgrid 
+\par
+{
 {\s17\sa60\sb30\widctlpar\qj \fs22\cgrid 
-Play the Indiana Jones theme song \par
+Goto 0 indexed line number. }}\par
+{\s17\sa60\sb30\widctlpar\qj \fs22\cgrid 
+Goto Line on LCD - 0 Indexed. \par
 }{
-Definition at line 16 of file Sound.c.}\par
+Definition at line 195 of file lcd.c.}\par
 }
-\par \pard\plain 
-
-\pard\plain \sect\sbkpage
-\s2\sb240\sa60\keepn\widctlpar\adjustright \b\f1\fs28\kerning28\cgrid 
-\pard\plain \s2\sb240\sa60\keepn\widctlpar\adjustright \b\f1\fs28\kerning28\cgrid 
-C:/Users/DonsterLaptop/Documents/Robot288/cpre288_generalpurposeautomatedrobot/Robot/Utils/Sound.h File Reference\par \pard\plain 
-{\tc\tcl2 \v C:/Users/DonsterLaptop/Documents/Robot288/cpre288_generalpurposeautomatedrobot/Robot/Utils/Sound.h}
-{\xe \v C:/Users/DonsterLaptop/Documents/Robot288/cpre288_generalpurposeautomatedrobot/Robot/Utils/Sound.h}
-{\bkmkstart AAAAAAAAEY}
-{\bkmkend AAAAAAAAEY}
+{\xe \v lcd_printf\:lcd.c}
+{\xe \v lcd.c\:lcd_printf}
+\pard\plain \s4\sb240\sa60\keepn\widctlpar\adjustright \b\f1\fs20\cgrid {
+{\b 
+void lcd_printf (const char *  {\i format},   {\i ...})}}
 \par
+{\bkmkstart AAAAAAAAGM}
+{\bkmkend AAAAAAAAGM}
 {
-{\s17\sa60\sb30\widctlpar\qj \fs22\cgrid 
-Header file for {\b Sound.c}. }}\par
+\pard\plain \s51\li360\sa60\sb30\qj\widctlpar\qj\adjustright \fs20\cgrid 
+\par
 {
-\pard\plain \s18\widctlpar\fs22\cgrid {\f2 #include <Utils/open_interface.h>}\par
-}
-\pard\plain \s3\sb240\sa60\keepn\widctlpar\adjustright \b\f1\cgrid 
-Functions\par
+{\s17\sa60\sb30\widctlpar\qj \fs22\cgrid 
+Print a formatted string to the LCD screen. }}\par
+{\s17\sa60\sb30\widctlpar\qj \fs22\cgrid 
+Mimics the C library function printf for writing to the LCD screen. The function is buffered; i.e. if you call lprintf twice with the same string, it will only update the LCD the first time.\par
+Google "printf" for documentation on the formatter string.\par
+Code from this site was also used: {\f2 http://www.ozzu.com/cpp-tutorials/tutorial-writing-custom-printf-wrapper-function-t89166.html} \par
+{{\s5\sb90\sa30\keepn\widctlpar\adjustright \b\f1\fs20\cgrid 
+Author:\par}\pard\plain \s62\li720\widctlpar\ql\adjustright \fs20\cgrid Kerrick Staley & Chad Nelson \par
+}{{\s5\sb90\sa30\keepn\widctlpar\adjustright \b\f1\fs20\cgrid 
+Date:\par}\pard\plain \s62\li720\widctlpar\ql\adjustright \fs20\cgrid 05/16/2012 \par
+}}{
+Definition at line 236 of file lcd.c.}\par
+}
+{\xe \v lcd_sendCommand\:lcd.c}
+{\xe \v lcd.c\:lcd_sendCommand}
+\pard\plain \s4\sb240\sa60\keepn\widctlpar\adjustright \b\f1\fs20\cgrid {
+{\b 
+void lcd_sendCommand (uint8_t  {\i data})}}
+\par
+{\bkmkstart AAAAAAAAGN}
+{\bkmkend AAAAAAAAGN}
+{
+\pard\plain \s51\li360\sa60\sb30\qj\widctlpar\qj\adjustright \fs20\cgrid 
+\par
+{
+{\s17\sa60\sb30\widctlpar\qj \fs22\cgrid 
+Send command to LCD - Position, Clear, Etc. }}\par
+{\s17\sa60\sb30\widctlpar\qj \fs22\cgrid 
+Send Command to LCD - Position, Clear, Etc. \par
+}{
+Definition at line 145 of file lcd.c.}\par
+}
+\par \pard\plain 
+
+\pard\plain \sect\sbkpage
+\s2\sb240\sa60\keepn\widctlpar\adjustright \b\f1\fs28\kerning28\cgrid 
+\pard\plain \s2\sb240\sa60\keepn\widctlpar\adjustright \b\f1\fs28\kerning28\cgrid 
+C:/Users/DonsterLaptop/Documents/Robot288/cpre288_generalpurposeautomatedrobot/Robot/Utils/lcd.h File Reference\par \pard\plain 
+{\tc\tcl2 \v C:/Users/DonsterLaptop/Documents/Robot288/cpre288_generalpurposeautomatedrobot/Robot/Utils/lcd.h}
+{\xe \v C:/Users/DonsterLaptop/Documents/Robot288/cpre288_generalpurposeautomatedrobot/Robot/Utils/lcd.h}
+{\bkmkstart AAAAAAAAGO}
+{\bkmkend AAAAAAAAGO}
+\par
+{
+{\s17\sa60\sb30\widctlpar\qj \fs22\cgrid 
+Header file for {\b lcd.c}. }}\par
+{
+\pard\plain \s18\widctlpar\fs22\cgrid {\f2 #include <stdio.h>}\par
+{\f2 #include <stdint.h>}\par
+{\f2 #include <string.h>}\par
+{\f2 #include <inc/tm4c123gh6pm.h>}\par
+{\f2 #include "timer.h"}\par
+}
+\pard\plain \s3\sb240\sa60\keepn\widctlpar\adjustright \b\f1\cgrid 
+Functions\par
+\pard\plain 
+
+{
+\pard\plain \s80\fi-360\li360\widctlpar\jclisttab\tx360{\*\pn \pnlvlbody\ilvl0\ls1\pnrnot0\pndec }\ls1\adjustright \fs20\cgrid 
+
+void {\b lcd_init} (void){\bkmkstart AAAAAAAAGP}
+{\bkmkend AAAAAAAAGP}
+\par
+{
+\pard\plain \s51\li360\sa60\sb30\qj\widctlpar\qj\adjustright \fs20\cgrid {\i {\s17\sa60\sb30\widctlpar\qj \fs22\cgrid 
+Initialize PORTB0:6 to Communicate with LCD. }{
+}\par
+}}
+\pard\plain \s80\fi-360\li360\widctlpar\jclisttab\tx360{\*\pn \pnlvlbody\ilvl0\ls1\pnrnot0\pndec }\ls1\adjustright \fs20\cgrid 
+
+void {\b lcd_putc} (char {\b data}){\bkmkstart AAAAAAAAGQ}
+{\bkmkend AAAAAAAAGQ}
+\par
+{
+\pard\plain \s51\li360\sa60\sb30\qj\widctlpar\qj\adjustright \fs20\cgrid {\i {\s17\sa60\sb30\widctlpar\qj \fs22\cgrid 
+Send Char to LCD. }{
+}\par
+}}
+\pard\plain \s80\fi-360\li360\widctlpar\jclisttab\tx360{\*\pn \pnlvlbody\ilvl0\ls1\pnrnot0\pndec }\ls1\adjustright \fs20\cgrid 
+
+void {\b lcd_puts} (char {\b data}[]){\bkmkstart AAAAAAAAGR}
+{\bkmkend AAAAAAAAGR}
+\par
+{
+\pard\plain \s51\li360\sa60\sb30\qj\widctlpar\qj\adjustright \fs20\cgrid {\i {\s17\sa60\sb30\widctlpar\qj \fs22\cgrid 
+Send Character array to LCD. }{
+}\par
+}}
+\pard\plain \s80\fi-360\li360\widctlpar\jclisttab\tx360{\*\pn \pnlvlbody\ilvl0\ls1\pnrnot0\pndec }\ls1\adjustright \fs20\cgrid 
+
+void {\b lcd_clear} (void){\bkmkstart AAAAAAAAGS}
+{\bkmkend AAAAAAAAGS}
+\par
+{
+\pard\plain \s51\li360\sa60\sb30\qj\widctlpar\qj\adjustright \fs20\cgrid {\i {\s17\sa60\sb30\widctlpar\qj \fs22\cgrid 
+Clear LCD Screen. }{
+}\par
+}}
+\pard\plain \s80\fi-360\li360\widctlpar\jclisttab\tx360{\*\pn \pnlvlbody\ilvl0\ls1\pnrnot0\pndec }\ls1\adjustright \fs20\cgrid 
+
+void {\b lcd_home} (void){\bkmkstart AAAAAAAAGT}
+{\bkmkend AAAAAAAAGT}
+\par
+{
+\pard\plain \s51\li360\sa60\sb30\qj\widctlpar\qj\adjustright \fs20\cgrid {\i {\s17\sa60\sb30\widctlpar\qj \fs22\cgrid 
+Return Cursor to 0,0. }{
+}\par
+}}
+\pard\plain \s80\fi-360\li360\widctlpar\jclisttab\tx360{\*\pn \pnlvlbody\ilvl0\ls1\pnrnot0\pndec }\ls1\adjustright \fs20\cgrid 
+void {\b lcd_gotoLine} (uint8_t lineNum)\par
+{
+\pard\plain \s51\li360\sa60\sb30\qj\widctlpar\qj\adjustright \fs20\cgrid {\i {\s17\sa60\sb30\widctlpar\qj \fs22\cgrid 
+Goto Line on LCD - 0 Indexed. }{
+}\par
+}}
+\pard\plain \s80\fi-360\li360\widctlpar\jclisttab\tx360{\*\pn \pnlvlbody\ilvl0\ls1\pnrnot0\pndec }\ls1\adjustright \fs20\cgrid 
+
+void {\b lcd_setCursorPos} (uint8_t x, uint8_t y){\bkmkstart AAAAAAAAGU}
+{\bkmkend AAAAAAAAGU}
+\par
+{
+\pard\plain \s51\li360\sa60\sb30\qj\widctlpar\qj\adjustright \fs20\cgrid {\i {\s17\sa60\sb30\widctlpar\qj \fs22\cgrid 
+Set cursor position - top left is 0,0. }{
+}\par
+}}
+\pard\plain \s80\fi-360\li360\widctlpar\jclisttab\tx360{\*\pn \pnlvlbody\ilvl0\ls1\pnrnot0\pndec }\ls1\adjustright \fs20\cgrid 
+void {\b lcd_printf} (const char *format,...)\par
+{
+\pard\plain \s51\li360\sa60\sb30\qj\widctlpar\qj\adjustright \fs20\cgrid {\i {\s17\sa60\sb30\widctlpar\qj \fs22\cgrid 
+Print a formatted string to the LCD screen. }{
+}\par
+}}
+}
+{\pard\widctlpar\brdrb\brdrs\brdrw5\brsp20 \adjustright \par}
+\pard\plain \s3\sb240\sa60\keepn\widctlpar\adjustright \b\f1\cgrid 
+Detailed Description\par
+\pard\plain 
+{
+\pard\plain \s17\sa60\sb30\widctlpar\qj \fs22\cgrid {\s17\sa60\sb30\widctlpar\qj \fs22\cgrid 
+Header file for {\b lcd.c}. \par
+}{\s17\sa60\sb30\widctlpar\qj \fs22\cgrid 
+\par
+{{\s5\sb90\sa30\keepn\widctlpar\adjustright \b\f1\fs20\cgrid 
+Author:\par}\pard\plain \s61\li360\widctlpar\ql\adjustright \fs20\cgrid Noah Bergman (nbergman)\par
+}{{\s5\sb90\sa30\keepn\widctlpar\adjustright \b\f1\fs20\cgrid 
+Date:\par}\pard\plain \s61\li360\widctlpar\ql\adjustright \fs20\cgrid 2016-03-01 \par
+}}}
+{\pard\widctlpar\brdrb\brdrs\brdrw5\brsp20 \adjustright \par}
+\pard\plain \s3\sb240\sa60\keepn\widctlpar\adjustright \b\f1\cgrid 
+Function Documentation\par
+\pard\plain 
+{\xe \v lcd_gotoLine\:lcd.h}
+{\xe \v lcd.h\:lcd_gotoLine}
+\pard\plain \s4\sb240\sa60\keepn\widctlpar\adjustright \b\f1\fs20\cgrid {
+{\b 
+void lcd_gotoLine (uint8_t  {\i lineNum})}}
+\par
+{\bkmkstart AAAAAAAAGV}
+{\bkmkend AAAAAAAAGV}
+{
+\pard\plain \s51\li360\sa60\sb30\qj\widctlpar\qj\adjustright \fs20\cgrid 
+\par
+{
+{\s17\sa60\sb30\widctlpar\qj \fs22\cgrid 
+Goto Line on LCD - 0 Indexed. }}\par
+{\s17\sa60\sb30\widctlpar\qj \fs22\cgrid 
+Goto Line on LCD - 0 Indexed. \par
+}{
+Definition at line 195 of file lcd.c.}\par
+}
+{\xe \v lcd_printf\:lcd.h}
+{\xe \v lcd.h\:lcd_printf}
+\pard\plain \s4\sb240\sa60\keepn\widctlpar\adjustright \b\f1\fs20\cgrid {
+{\b 
+void lcd_printf (const char *  {\i format},   {\i ...})}}
+\par
+{\bkmkstart AAAAAAAAGW}
+{\bkmkend AAAAAAAAGW}
+{
+\pard\plain \s51\li360\sa60\sb30\qj\widctlpar\qj\adjustright \fs20\cgrid 
+\par
+{
+{\s17\sa60\sb30\widctlpar\qj \fs22\cgrid 
+Print a formatted string to the LCD screen. }}\par
+{\s17\sa60\sb30\widctlpar\qj \fs22\cgrid 
+Mimics the C library function printf for writing to the LCD screen. The function is buffered; i.e. if you call lprintf twice with the same string, it will only update the LCD the first time.\par
+Google "printf" for documentation on the formatter string.\par
+Code from this site was also used: {\f2 http://www.ozzu.com/cpp-tutorials/tutorial-writing-custom-printf-wrapper-function-t89166.html} \par
+{{\s5\sb90\sa30\keepn\widctlpar\adjustright \b\f1\fs20\cgrid 
+Author:\par}\pard\plain \s62\li720\widctlpar\ql\adjustright \fs20\cgrid Kerrick Staley & Chad Nelson \par
+}{{\s5\sb90\sa30\keepn\widctlpar\adjustright \b\f1\fs20\cgrid 
+Date:\par}\pard\plain \s62\li720\widctlpar\ql\adjustright \fs20\cgrid 05/16/2012 \par
+}}{
+Definition at line 236 of file lcd.c.}\par
+}
+\par \pard\plain 
+
+\pard\plain \sect\sbkpage
+\s2\sb240\sa60\keepn\widctlpar\adjustright \b\f1\fs28\kerning28\cgrid 
+\pard\plain \s2\sb240\sa60\keepn\widctlpar\adjustright \b\f1\fs28\kerning28\cgrid 
+C:/Users/DonsterLaptop/Documents/Robot288/cpre288_generalpurposeautomatedrobot/Robot/Utils/open_interface.c File Reference\par \pard\plain 
+{\tc\tcl2 \v C:/Users/DonsterLaptop/Documents/Robot288/cpre288_generalpurposeautomatedrobot/Robot/Utils/open_interface.c}
+{\xe \v C:/Users/DonsterLaptop/Documents/Robot288/cpre288_generalpurposeautomatedrobot/Robot/Utils/open_interface.c}
+{\bkmkstart AAAAAAAAGX}
+{\bkmkend AAAAAAAAGX}
+\par
+{
+{\s17\sa60\sb30\widctlpar\qj \fs22\cgrid 
+Contains all functionality to interface with the IRobot Create V2 Communication over UART4 at 115200. }}\par
+{
+\pard\plain \s18\widctlpar\fs22\cgrid {\f2 #include "open_interface.h"}\par
+}
+\pard\plain \s3\sb240\sa60\keepn\widctlpar\adjustright \b\f1\cgrid 
+Macros\par
+\pard\plain 
+
+{
+\pard\plain \s80\fi-360\li360\widctlpar\jclisttab\tx360{\*\pn \pnlvlbody\ilvl0\ls1\pnrnot0\pndec }\ls1\adjustright \fs20\cgrid 
+
+#define {\b OI_OPCODE_START}\~ 128{\bkmkstart AAAAAAAAGY}
+{\bkmkend AAAAAAAAGY}
+\par
+\pard\plain \s80\fi-360\li360\widctlpar\jclisttab\tx360{\*\pn \pnlvlbody\ilvl0\ls1\pnrnot0\pndec }\ls1\adjustright \fs20\cgrid 
+
+#define {\b OI_OPCODE_BAUD}\~ 129{\bkmkstart AAAAAAAAGZ}
+{\bkmkend AAAAAAAAGZ}
+\par
+\pard\plain \s80\fi-360\li360\widctlpar\jclisttab\tx360{\*\pn \pnlvlbody\ilvl0\ls1\pnrnot0\pndec }\ls1\adjustright \fs20\cgrid 
+
+#define {\b OI_OPCODE_CONTROL}\~ 130{\bkmkstart AAAAAAAAHA}
+{\bkmkend AAAAAAAAHA}
+\par
+\pard\plain \s80\fi-360\li360\widctlpar\jclisttab\tx360{\*\pn \pnlvlbody\ilvl0\ls1\pnrnot0\pndec }\ls1\adjustright \fs20\cgrid 
+
+#define {\b OI_OPCODE_SAFE}\~ 131{\bkmkstart AAAAAAAAHB}
+{\bkmkend AAAAAAAAHB}
+\par
+\pard\plain \s80\fi-360\li360\widctlpar\jclisttab\tx360{\*\pn \pnlvlbody\ilvl0\ls1\pnrnot0\pndec }\ls1\adjustright \fs20\cgrid 
+
+#define {\b OI_OPCODE_FULL}\~ 132{\bkmkstart AAAAAAAAHC}
+{\bkmkend AAAAAAAAHC}
+\par
+\pard\plain \s80\fi-360\li360\widctlpar\jclisttab\tx360{\*\pn \pnlvlbody\ilvl0\ls1\pnrnot0\pndec }\ls1\adjustright \fs20\cgrid 
+
+#define {\b OI_OPCODE_POWER}\~ 133{\bkmkstart AAAAAAAAHD}
+{\bkmkend AAAAAAAAHD}
+\par
+\pard\plain \s80\fi-360\li360\widctlpar\jclisttab\tx360{\*\pn \pnlvlbody\ilvl0\ls1\pnrnot0\pndec }\ls1\adjustright \fs20\cgrid 
+
+#define {\b OI_OPCODE_SPOT}\~ 134{\bkmkstart AAAAAAAAHE}
+{\bkmkend AAAAAAAAHE}
+\par
+\pard\plain \s80\fi-360\li360\widctlpar\jclisttab\tx360{\*\pn \pnlvlbody\ilvl0\ls1\pnrnot0\pndec }\ls1\adjustright \fs20\cgrid 
+
+#define {\b OI_OPCODE_CLEAN}\~ 135{\bkmkstart AAAAAAAAHF}
+{\bkmkend AAAAAAAAHF}
+\par
+\pard\plain \s80\fi-360\li360\widctlpar\jclisttab\tx360{\*\pn \pnlvlbody\ilvl0\ls1\pnrnot0\pndec }\ls1\adjustright \fs20\cgrid 
+
+#define {\b OI_OPCODE_MAX}\~ 136{\bkmkstart AAAAAAAAHG}
+{\bkmkend AAAAAAAAHG}
+\par
+\pard\plain \s80\fi-360\li360\widctlpar\jclisttab\tx360{\*\pn \pnlvlbody\ilvl0\ls1\pnrnot0\pndec }\ls1\adjustright \fs20\cgrid 
+
+#define {\b OI_OPCODE_DRIVE}\~ 137{\bkmkstart AAAAAAAAHH}
+{\bkmkend AAAAAAAAHH}
+\par
+\pard\plain \s80\fi-360\li360\widctlpar\jclisttab\tx360{\*\pn \pnlvlbody\ilvl0\ls1\pnrnot0\pndec }\ls1\adjustright \fs20\cgrid 
+
+#define {\b OI_OPCODE_MOTORS}\~ 138{\bkmkstart AAAAAAAAHI}
+{\bkmkend AAAAAAAAHI}
+\par
+\pard\plain \s80\fi-360\li360\widctlpar\jclisttab\tx360{\*\pn \pnlvlbody\ilvl0\ls1\pnrnot0\pndec }\ls1\adjustright \fs20\cgrid 
+
+#define {\b OI_OPCODE_LEDS}\~ 139{\bkmkstart AAAAAAAAHJ}
+{\bkmkend AAAAAAAAHJ}
+\par
+\pard\plain \s80\fi-360\li360\widctlpar\jclisttab\tx360{\*\pn \pnlvlbody\ilvl0\ls1\pnrnot0\pndec }\ls1\adjustright \fs20\cgrid 
+
+#define {\b OI_OPCODE_SONG}\~ 140{\bkmkstart AAAAAAAAHK}
+{\bkmkend AAAAAAAAHK}
+\par
+\pard\plain \s80\fi-360\li360\widctlpar\jclisttab\tx360{\*\pn \pnlvlbody\ilvl0\ls1\pnrnot0\pndec }\ls1\adjustright \fs20\cgrid 
+
+#define {\b OI_OPCODE_PLAY}\~ 141{\bkmkstart AAAAAAAAHL}
+{\bkmkend AAAAAAAAHL}
+\par
+\pard\plain \s80\fi-360\li360\widctlpar\jclisttab\tx360{\*\pn \pnlvlbody\ilvl0\ls1\pnrnot0\pndec }\ls1\adjustright \fs20\cgrid 
+
+#define {\b OI_OPCODE_SENSORS}\~ 142{\bkmkstart AAAAAAAAHM}
+{\bkmkend AAAAAAAAHM}
+\par
+\pard\plain \s80\fi-360\li360\widctlpar\jclisttab\tx360{\*\pn \pnlvlbody\ilvl0\ls1\pnrnot0\pndec }\ls1\adjustright \fs20\cgrid 
+
+#define {\b OI_OPCODE_FORCEDOCK}\~ 143{\bkmkstart AAAAAAAAHN}
+{\bkmkend AAAAAAAAHN}
+\par
+\pard\plain \s80\fi-360\li360\widctlpar\jclisttab\tx360{\*\pn \pnlvlbody\ilvl0\ls1\pnrnot0\pndec }\ls1\adjustright \fs20\cgrid 
+
+#define {\b OI_OPCODE_PWM_MOTORS}\~ 144{\bkmkstart AAAAAAAAHO}
+{\bkmkend AAAAAAAAHO}
+\par
+\pard\plain \s80\fi-360\li360\widctlpar\jclisttab\tx360{\*\pn \pnlvlbody\ilvl0\ls1\pnrnot0\pndec }\ls1\adjustright \fs20\cgrid 
+
+#define {\b OI_OPCODE_DRIVE_WHEELS}\~ 145{\bkmkstart AAAAAAAAHP}
+{\bkmkend AAAAAAAAHP}
+\par
+\pard\plain \s80\fi-360\li360\widctlpar\jclisttab\tx360{\*\pn \pnlvlbody\ilvl0\ls1\pnrnot0\pndec }\ls1\adjustright \fs20\cgrid 
+
+#define {\b OI_OPCODE_DRIVE_PWM}\~ 146{\bkmkstart AAAAAAAAHQ}
+{\bkmkend AAAAAAAAHQ}
+\par
+\pard\plain \s80\fi-360\li360\widctlpar\jclisttab\tx360{\*\pn \pnlvlbody\ilvl0\ls1\pnrnot0\pndec }\ls1\adjustright \fs20\cgrid 
+
+#define {\b OI_OPCODE_OUTPUTS}\~ 147{\bkmkstart AAAAAAAAHR}
+{\bkmkend AAAAAAAAHR}
+\par
+\pard\plain \s80\fi-360\li360\widctlpar\jclisttab\tx360{\*\pn \pnlvlbody\ilvl0\ls1\pnrnot0\pndec }\ls1\adjustright \fs20\cgrid 
+
+#define {\b OI_OPCODE_STREAM}\~ 148{\bkmkstart AAAAAAAAHS}
+{\bkmkend AAAAAAAAHS}
+\par
+\pard\plain \s80\fi-360\li360\widctlpar\jclisttab\tx360{\*\pn \pnlvlbody\ilvl0\ls1\pnrnot0\pndec }\ls1\adjustright \fs20\cgrid 
+
+#define {\b OI_OPCODE_QUERY_LIST}\~ 149{\bkmkstart AAAAAAAAHT}
+{\bkmkend AAAAAAAAHT}
+\par
+\pard\plain \s80\fi-360\li360\widctlpar\jclisttab\tx360{\*\pn \pnlvlbody\ilvl0\ls1\pnrnot0\pndec }\ls1\adjustright \fs20\cgrid 
+
+#define {\b OI_OPCODE_DO_STREAM}\~ 150{\bkmkstart AAAAAAAAHU}
+{\bkmkend AAAAAAAAHU}
+\par
+\pard\plain \s80\fi-360\li360\widctlpar\jclisttab\tx360{\*\pn \pnlvlbody\ilvl0\ls1\pnrnot0\pndec }\ls1\adjustright \fs20\cgrid 
+
+#define {\b OI_OPCODE_SEND_IR_CHAR}\~ 151{\bkmkstart AAAAAAAAHV}
+{\bkmkend AAAAAAAAHV}
+\par
+\pard\plain \s80\fi-360\li360\widctlpar\jclisttab\tx360{\*\pn \pnlvlbody\ilvl0\ls1\pnrnot0\pndec }\ls1\adjustright \fs20\cgrid 
+
+#define {\b OI_OPCODE_SCRIPT}\~ 152{\bkmkstart AAAAAAAAHW}
+{\bkmkend AAAAAAAAHW}
+\par
+\pard\plain \s80\fi-360\li360\widctlpar\jclisttab\tx360{\*\pn \pnlvlbody\ilvl0\ls1\pnrnot0\pndec }\ls1\adjustright \fs20\cgrid 
+
+#define {\b OI_OPCODE_PLAY_SCRIPT}\~ 153{\bkmkstart AAAAAAAAHX}
+{\bkmkend AAAAAAAAHX}
+\par
+\pard\plain \s80\fi-360\li360\widctlpar\jclisttab\tx360{\*\pn \pnlvlbody\ilvl0\ls1\pnrnot0\pndec }\ls1\adjustright \fs20\cgrid 
+
+#define {\b OI_OPCODE_SHOW_SCRIPT}\~ 154{\bkmkstart AAAAAAAAHY}
+{\bkmkend AAAAAAAAHY}
+\par
+\pard\plain \s80\fi-360\li360\widctlpar\jclisttab\tx360{\*\pn \pnlvlbody\ilvl0\ls1\pnrnot0\pndec }\ls1\adjustright \fs20\cgrid 
+
+#define {\b OI_OPCODE_WAIT_TIME}\~ 155{\bkmkstart AAAAAAAAHZ}
+{\bkmkend AAAAAAAAHZ}
+\par
+\pard\plain \s80\fi-360\li360\widctlpar\jclisttab\tx360{\*\pn \pnlvlbody\ilvl0\ls1\pnrnot0\pndec }\ls1\adjustright \fs20\cgrid 
+
+#define {\b OI_OPCODE_WAIT_DISTANCE}\~ 156{\bkmkstart AAAAAAAAIA}
+{\bkmkend AAAAAAAAIA}
+\par
+\pard\plain \s80\fi-360\li360\widctlpar\jclisttab\tx360{\*\pn \pnlvlbody\ilvl0\ls1\pnrnot0\pndec }\ls1\adjustright \fs20\cgrid 
+
+#define {\b OI_OPCODE_WAIT_ANGLE}\~ 157{\bkmkstart AAAAAAAAIB}
+{\bkmkend AAAAAAAAIB}
+\par
+\pard\plain \s80\fi-360\li360\widctlpar\jclisttab\tx360{\*\pn \pnlvlbody\ilvl0\ls1\pnrnot0\pndec }\ls1\adjustright \fs20\cgrid 
+
+#define {\b OI_OPCODE_WAIT_EVENT}\~ 158{\bkmkstart AAAAAAAAIC}
+{\bkmkend AAAAAAAAIC}
+\par
+\pard\plain \s80\fi-360\li360\widctlpar\jclisttab\tx360{\*\pn \pnlvlbody\ilvl0\ls1\pnrnot0\pndec }\ls1\adjustright \fs20\cgrid 
+
+#define {\b OI_OPCODE_RESET}\~ 7{\bkmkstart AAAAAAAAID}
+{\bkmkend AAAAAAAAID}
+\par
+\pard\plain \s80\fi-360\li360\widctlpar\jclisttab\tx360{\*\pn \pnlvlbody\ilvl0\ls1\pnrnot0\pndec }\ls1\adjustright \fs20\cgrid 
+
+#define {\b OI_OPCODE_STOP}\~ 173{\bkmkstart AAAAAAAAIE}
+{\bkmkend AAAAAAAAIE}
+\par
+\pard\plain \s80\fi-360\li360\widctlpar\jclisttab\tx360{\*\pn \pnlvlbody\ilvl0\ls1\pnrnot0\pndec }\ls1\adjustright \fs20\cgrid 
+
+#define {\b OI_OPCODE_SCHEDULE}\~ 167{\bkmkstart AAAAAAAAIF}
+{\bkmkend AAAAAAAAIF}
+\par
+\pard\plain \s80\fi-360\li360\widctlpar\jclisttab\tx360{\*\pn \pnlvlbody\ilvl0\ls1\pnrnot0\pndec }\ls1\adjustright \fs20\cgrid 
+
+#define {\b OI_OPCODE_SCHED_LED}\~ 162{\bkmkstart AAAAAAAAIG}
+{\bkmkend AAAAAAAAIG}
+\par
+\pard\plain \s80\fi-360\li360\widctlpar\jclisttab\tx360{\*\pn \pnlvlbody\ilvl0\ls1\pnrnot0\pndec }\ls1\adjustright \fs20\cgrid 
+
+#define {\b OI_OPCODE_7SEG}\~ 163{\bkmkstart AAAAAAAAIH}
+{\bkmkend AAAAAAAAIH}
+\par
+\pard\plain \s80\fi-360\li360\widctlpar\jclisttab\tx360{\*\pn \pnlvlbody\ilvl0\ls1\pnrnot0\pndec }\ls1\adjustright \fs20\cgrid 
+
+#define {\b OI_SENSOR_PACKET_GROUP0}\~ 0{\bkmkstart AAAAAAAAII}
+{\bkmkend AAAAAAAAII}
+\par
+\pard\plain \s80\fi-360\li360\widctlpar\jclisttab\tx360{\*\pn \pnlvlbody\ilvl0\ls1\pnrnot0\pndec }\ls1\adjustright \fs20\cgrid 
+
+#define {\b OI_SENSOR_PACKET_GROUP1}\~ 1{\bkmkstart AAAAAAAAIJ}
+{\bkmkend AAAAAAAAIJ}
+\par
+\pard\plain \s80\fi-360\li360\widctlpar\jclisttab\tx360{\*\pn \pnlvlbody\ilvl0\ls1\pnrnot0\pndec }\ls1\adjustright \fs20\cgrid 
+
+#define {\b OI_SENSOR_PACKET_GROUP2}\~ 2{\bkmkstart AAAAAAAAIK}
+{\bkmkend AAAAAAAAIK}
+\par
+\pard\plain \s80\fi-360\li360\widctlpar\jclisttab\tx360{\*\pn \pnlvlbody\ilvl0\ls1\pnrnot0\pndec }\ls1\adjustright \fs20\cgrid 
+
+#define {\b OI_SENSOR_PACKET_GROUP3}\~ 3{\bkmkstart AAAAAAAAIL}
+{\bkmkend AAAAAAAAIL}
+\par
+\pard\plain \s80\fi-360\li360\widctlpar\jclisttab\tx360{\*\pn \pnlvlbody\ilvl0\ls1\pnrnot0\pndec }\ls1\adjustright \fs20\cgrid 
+
+#define {\b OI_SENSOR_PACKET_GROUP4}\~ 4{\bkmkstart AAAAAAAAIM}
+{\bkmkend AAAAAAAAIM}
+\par
+\pard\plain \s80\fi-360\li360\widctlpar\jclisttab\tx360{\*\pn \pnlvlbody\ilvl0\ls1\pnrnot0\pndec }\ls1\adjustright \fs20\cgrid 
+
+#define {\b OI_SENSOR_PACKET_GROUP5}\~ 5{\bkmkstart AAAAAAAAIN}
+{\bkmkend AAAAAAAAIN}
+\par
+\pard\plain \s80\fi-360\li360\widctlpar\jclisttab\tx360{\*\pn \pnlvlbody\ilvl0\ls1\pnrnot0\pndec }\ls1\adjustright \fs20\cgrid 
+
+#define {\b OI_SENSOR_PACKET_GROUP6}\~ 6{\bkmkstart AAAAAAAAIO}
+{\bkmkend AAAAAAAAIO}
+\par
+\pard\plain \s80\fi-360\li360\widctlpar\jclisttab\tx360{\*\pn \pnlvlbody\ilvl0\ls1\pnrnot0\pndec }\ls1\adjustright \fs20\cgrid 
+
+#define {\b OI_SENSOR_PACKET_GROUP100}\~ 100{\bkmkstart AAAAAAAAIP}
+{\bkmkend AAAAAAAAIP}
+\par
+\pard\plain \s80\fi-360\li360\widctlpar\jclisttab\tx360{\*\pn \pnlvlbody\ilvl0\ls1\pnrnot0\pndec }\ls1\adjustright \fs20\cgrid 
+
+#define {\b OI_SENSOR_PACKET_GROUP101}\~ 101{\bkmkstart AAAAAAAAIQ}
+{\bkmkend AAAAAAAAIQ}
+\par
+\pard\plain \s80\fi-360\li360\widctlpar\jclisttab\tx360{\*\pn \pnlvlbody\ilvl0\ls1\pnrnot0\pndec }\ls1\adjustright \fs20\cgrid 
+
+#define {\b OI_SENSOR_PACKET_GROUP106}\~ 106{\bkmkstart AAAAAAAAIR}
+{\bkmkend AAAAAAAAIR}
+\par
+\pard\plain \s80\fi-360\li360\widctlpar\jclisttab\tx360{\*\pn \pnlvlbody\ilvl0\ls1\pnrnot0\pndec }\ls1\adjustright \fs20\cgrid 
+
+#define {\b OI_SENSOR_PACKET_GROUP107}\~ 107{\bkmkstart AAAAAAAAIS}
+{\bkmkend AAAAAAAAIS}
+\par
+\pard\plain \s80\fi-360\li360\widctlpar\jclisttab\tx360{\*\pn \pnlvlbody\ilvl0\ls1\pnrnot0\pndec }\ls1\adjustright \fs20\cgrid 
+
+#define {\b SENSOR_PACKET_SIZE}\~ 80{\bkmkstart AAAAAAAAIT}
+{\bkmkend AAAAAAAAIT}
+\par
+}
+\pard\plain \s3\sb240\sa60\keepn\widctlpar\adjustright \b\f1\cgrid 
+Functions\par
+\pard\plain 
+
+{
+\pard\plain \s80\fi-360\li360\widctlpar\jclisttab\tx360{\*\pn \pnlvlbody\ilvl0\ls1\pnrnot0\pndec }\ls1\adjustright \fs20\cgrid 
+void {\b oi_init_noupdate} (void)\par
+\pard\plain \s80\fi-360\li360\widctlpar\jclisttab\tx360{\*\pn \pnlvlbody\ilvl0\ls1\pnrnot0\pndec }\ls1\adjustright \fs20\cgrid 
+
+void {\b oi_uartInit} (void){\bkmkstart AAAAAAAAIU}
+{\bkmkend AAAAAAAAIU}
+\par
+{
+\pard\plain \s51\li360\sa60\sb30\qj\widctlpar\qj\adjustright \fs20\cgrid {\i {\s17\sa60\sb30\widctlpar\qj \fs22\cgrid 
+Initialize UART3 for OI Communication and Debugging internal function. }{
+}\par
+}}
+\pard\plain \s80\fi-360\li360\widctlpar\jclisttab\tx360{\*\pn \pnlvlbody\ilvl0\ls1\pnrnot0\pndec }\ls1\adjustright \fs20\cgrid 
+
+void {\b oi_uartFastMode} (void){\bkmkstart AAAAAAAAIV}
+{\bkmkend AAAAAAAAIV}
+\par
+{
+\pard\plain \s51\li360\sa60\sb30\qj\widctlpar\qj\adjustright \fs20\cgrid {\i {\s17\sa60\sb30\widctlpar\qj \fs22\cgrid 
+Set baud to 115200. }{
+}\par
+}}
+\pard\plain \s80\fi-360\li360\widctlpar\jclisttab\tx360{\*\pn \pnlvlbody\ilvl0\ls1\pnrnot0\pndec }\ls1\adjustright \fs20\cgrid 
+void {\b oi_uartSendChar} (char {\b data})\par
+\pard\plain \s80\fi-360\li360\widctlpar\jclisttab\tx360{\*\pn \pnlvlbody\ilvl0\ls1\pnrnot0\pndec }\ls1\adjustright \fs20\cgrid 
+void {\b uart_sendStr} (const char *theData)\par
+\pard\plain \s80\fi-360\li360\widctlpar\jclisttab\tx360{\*\pn \pnlvlbody\ilvl0\ls1\pnrnot0\pndec }\ls1\adjustright \fs20\cgrid 
+char {\b oi_uartReceive} (void)\par
+\pard\plain \s80\fi-360\li360\widctlpar\jclisttab\tx360{\*\pn \pnlvlbody\ilvl0\ls1\pnrnot0\pndec }\ls1\adjustright \fs20\cgrid 
+
+void {\b oi_parsePacket} ({\b oi_t} *self, uint8_t packet[]){\bkmkstart AAAAAAAAIW}
+{\bkmkend AAAAAAAAIW}
+\par
+{
+\pard\plain \s51\li360\sa60\sb30\qj\widctlpar\qj\adjustright \fs20\cgrid {\i {\s17\sa60\sb30\widctlpar\qj \fs22\cgrid 
+Parse data from iRobot into {\b oi_t} struct. }{
+}\par
+}}
+\pard\plain \s80\fi-360\li360\widctlpar\jclisttab\tx360{\*\pn \pnlvlbody\ilvl0\ls1\pnrnot0\pndec }\ls1\adjustright \fs20\cgrid 
+void {\b oi_uartSendBuff} (const uint8_t theData[], uint8_t theSize)\par
+\pard\plain \s80\fi-360\li360\widctlpar\jclisttab\tx360{\*\pn \pnlvlbody\ilvl0\ls1\pnrnot0\pndec }\ls1\adjustright \fs20\cgrid 
+int16_t {\b oi_parseInt} (uint8_t *theInt)\par
+\pard\plain \s80\fi-360\li360\widctlpar\jclisttab\tx360{\*\pn \pnlvlbody\ilvl0\ls1\pnrnot0\pndec }\ls1\adjustright \fs20\cgrid 
+
+{\b oi_t} * {\b oi_alloc} (){\bkmkstart AAAAAAAAIX}
+{\bkmkend AAAAAAAAIX}
+\par
+{
+\pard\plain \s51\li360\sa60\sb30\qj\widctlpar\qj\adjustright \fs20\cgrid {\i {\s17\sa60\sb30\widctlpar\qj \fs22\cgrid 
+Allocate and clear all memory for OI Struct. }{
+}\par
+}}
+\pard\plain \s80\fi-360\li360\widctlpar\jclisttab\tx360{\*\pn \pnlvlbody\ilvl0\ls1\pnrnot0\pndec }\ls1\adjustright \fs20\cgrid 
+
+void {\b oi_free} ({\b oi_t} *self){\bkmkstart AAAAAAAAIY}
+{\bkmkend AAAAAAAAIY}
+\par
+{
+\pard\plain \s51\li360\sa60\sb30\qj\widctlpar\qj\adjustright \fs20\cgrid {\i {\s17\sa60\sb30\widctlpar\qj \fs22\cgrid 
+Free memory from pointer to Open Interface Struct. }{
+}\par
+}}
+\pard\plain \s80\fi-360\li360\widctlpar\jclisttab\tx360{\*\pn \pnlvlbody\ilvl0\ls1\pnrnot0\pndec }\ls1\adjustright \fs20\cgrid 
+void {\b oi_init} ({\b oi_t} *self)\par
+{
+\pard\plain \s51\li360\sa60\sb30\qj\widctlpar\qj\adjustright \fs20\cgrid {\i {\s17\sa60\sb30\widctlpar\qj \fs22\cgrid 
+Initialize open interface. }{
+}\par
+}}
+\pard\plain \s80\fi-360\li360\widctlpar\jclisttab\tx360{\*\pn \pnlvlbody\ilvl0\ls1\pnrnot0\pndec }\ls1\adjustright \fs20\cgrid 
+
+void {\b oi_close} (){\bkmkstart AAAAAAAAIZ}
+{\bkmkend AAAAAAAAIZ}
+\par
+\pard\plain \s80\fi-360\li360\widctlpar\jclisttab\tx360{\*\pn \pnlvlbody\ilvl0\ls1\pnrnot0\pndec }\ls1\adjustright \fs20\cgrid 
+void {\b oi_update} ({\b oi_t} *self)\par
+{
+\pard\plain \s51\li360\sa60\sb30\qj\widctlpar\qj\adjustright \fs20\cgrid {\i {\s17\sa60\sb30\widctlpar\qj \fs22\cgrid 
+Update all sensor and store in {\b oi_t} struct. }{
+}\par
+}}
+\pard\plain \s80\fi-360\li360\widctlpar\jclisttab\tx360{\*\pn \pnlvlbody\ilvl0\ls1\pnrnot0\pndec }\ls1\adjustright \fs20\cgrid 
+void {\b oi_setLeds} (uint8_t play_led, uint8_t advance_led, uint8_t power_color, uint8_t power_intensity)\par
+{
+\pard\plain \s51\li360\sa60\sb30\qj\widctlpar\qj\adjustright \fs20\cgrid {\i {\s17\sa60\sb30\widctlpar\qj \fs22\cgrid 
+Set the LEDS on the Create. }{
+}\par
+}}
+\pard\plain \s80\fi-360\li360\widctlpar\jclisttab\tx360{\*\pn \pnlvlbody\ilvl0\ls1\pnrnot0\pndec }\ls1\adjustright \fs20\cgrid 
+void {\b oi_setWheels} (int16_t right_wheel, int16_t left_wheel)\par
+{
+\pard\plain \s51\li360\sa60\sb30\qj\widctlpar\qj\adjustright \fs20\cgrid {\i {\s17\sa60\sb30\widctlpar\qj \fs22\cgrid 
+Set direction and speed of the robot's wheels. }{
+}\par
+}}
+\pard\plain \s80\fi-360\li360\widctlpar\jclisttab\tx360{\*\pn \pnlvlbody\ilvl0\ls1\pnrnot0\pndec }\ls1\adjustright \fs20\cgrid 
+void {\b oi_loadSong} (int song_index, int num_notes, unsigned char *notes, unsigned char *duration)\par
+{
+\pard\plain \s51\li360\sa60\sb30\qj\widctlpar\qj\adjustright \fs20\cgrid {\i {\s17\sa60\sb30\widctlpar\qj \fs22\cgrid 
+Load song sequence. }{
+}\par
+}}
+\pard\plain \s80\fi-360\li360\widctlpar\jclisttab\tx360{\*\pn \pnlvlbody\ilvl0\ls1\pnrnot0\pndec }\ls1\adjustright \fs20\cgrid 
+void {\b oi_play_song} (int index)\par
+{
+\pard\plain \s51\li360\sa60\sb30\qj\widctlpar\qj\adjustright \fs20\cgrid {\i {\s17\sa60\sb30\widctlpar\qj \fs22\cgrid 
+Plays a given song; use oi_load_song(...) first. }{
+}\par
+}}
+\pard\plain \s80\fi-360\li360\widctlpar\jclisttab\tx360{\*\pn \pnlvlbody\ilvl0\ls1\pnrnot0\pndec }\ls1\adjustright \fs20\cgrid 
+void {\b go_charge} (void)\par
+{
+\pard\plain \s51\li360\sa60\sb30\qj\widctlpar\qj\adjustright \fs20\cgrid {\i {\s17\sa60\sb30\widctlpar\qj \fs22\cgrid 
+Runs default go charge program; robot will search for dock. }{
+}\par
+}}
+\pard\plain \s80\fi-360\li360\widctlpar\jclisttab\tx360{\*\pn \pnlvlbody\ilvl0\ls1\pnrnot0\pndec }\ls1\adjustright \fs20\cgrid 
+
+void {\b oi_uartSendStr} (const char *theData){\bkmkstart AAAAAAAAJA}
+{\bkmkend AAAAAAAAJA}
+\par
+{
+\pard\plain \s51\li360\sa60\sb30\qj\widctlpar\qj\adjustright \fs20\cgrid {\i {\s17\sa60\sb30\widctlpar\qj \fs22\cgrid 
+transmit character array }{
+}\par
+}}
+\pard\plain \s80\fi-360\li360\widctlpar\jclisttab\tx360{\*\pn \pnlvlbody\ilvl0\ls1\pnrnot0\pndec }\ls1\adjustright \fs20\cgrid 
+
+char * {\b oi_checkFirmware} (){\bkmkstart AAAAAAAAJB}
+{\bkmkend AAAAAAAAJB}
+\par
+\pard\plain \s80\fi-360\li360\widctlpar\jclisttab\tx360{\*\pn \pnlvlbody\ilvl0\ls1\pnrnot0\pndec }\ls1\adjustright \fs20\cgrid 
+
+void {\b oi_shutoff_init} (void){\bkmkstart AAAAAAAAJC}
+{\bkmkend AAAAAAAAJC}
+\par
+{
+\pard\plain \s51\li360\sa60\sb30\qj\widctlpar\qj\adjustright \fs20\cgrid {\i {\s17\sa60\sb30\widctlpar\qj \fs22\cgrid 
+initializes the user button to shut off OI }{
+}\par
+}}
+\pard\plain \s80\fi-360\li360\widctlpar\jclisttab\tx360{\*\pn \pnlvlbody\ilvl0\ls1\pnrnot0\pndec }\ls1\adjustright \fs20\cgrid 
+
+void {\b GPIOF_Handler} (void){\bkmkstart AAAAAAAAJD}
+{\bkmkend AAAAAAAAJD}
+\par
+\pard\plain \s80\fi-360\li360\widctlpar\jclisttab\tx360{\*\pn \pnlvlbody\ilvl0\ls1\pnrnot0\pndec }\ls1\adjustright \fs20\cgrid 
+float {\b getDegrees} ({\b oi_t} *self)\par
+}
+{\pard\widctlpar\brdrb\brdrs\brdrw5\brsp20 \adjustright \par}
+\pard\plain \s3\sb240\sa60\keepn\widctlpar\adjustright \b\f1\cgrid 
+Detailed Description\par
+\pard\plain 
+{
+\pard\plain \s17\sa60\sb30\widctlpar\qj \fs22\cgrid {\s17\sa60\sb30\widctlpar\qj \fs22\cgrid 
+Contains all functionality to interface with the IRobot Create V2 Communication over UART4 at 115200. \par
+}{\s17\sa60\sb30\widctlpar\qj \fs22\cgrid 
+\par
+{{\s5\sb90\sa30\keepn\widctlpar\adjustright \b\f1\fs20\cgrid 
+Author:\par}\pard\plain \s61\li360\widctlpar\ql\adjustright \fs20\cgrid Noah Bergman \par
+}{{\s5\sb90\sa30\keepn\widctlpar\adjustright \b\f1\fs20\cgrid 
+Date:\par}\pard\plain \s61\li360\widctlpar\ql\adjustright \fs20\cgrid 03/11/2016 \par
+}}}
+{\pard\widctlpar\brdrb\brdrs\brdrw5\brsp20 \adjustright \par}
+\pard\plain \s3\sb240\sa60\keepn\widctlpar\adjustright \b\f1\cgrid 
+Function Documentation\par
+\pard\plain 
+{\xe \v getDegrees\:open_interface.c}
+{\xe \v open_interface.c\:getDegrees}
+\pard\plain \s4\sb240\sa60\keepn\widctlpar\adjustright \b\f1\fs20\cgrid {
+{\b 
+float getDegrees ({\b oi_t} *  {\i self})}}
+\par
+{\bkmkstart AAAAAAAAJE}
+{\bkmkend AAAAAAAAJE}
+{
+\pard\plain \s51\li360\sa60\sb30\qj\widctlpar\qj\adjustright \fs20\cgrid 
+{\s17\sa60\sb30\widctlpar\qj \fs22\cgrid 
+Get the moved degrees from the previous call of oi_update {\par
+{\s5\sb90\sa30\keepn\widctlpar\adjustright \b\f1\fs20\cgrid 
+Parameters:\par}
+\pard\plain \s61\li360\widctlpar\ql\adjustright \fs20\cgrid \trowd \trgaph108\trleft426\tblind426\trbrdrt\brdrs\brdrw10\brdrcf15 \trbrdrl\brdrs\brdrw10\brdrcf15 \trbrdrb\brdrs\brdrw10\brdrcf15 \trbrdrr\brdrs\brdrw10\brdrcf15 \trbrdrh\brdrs\brdrw10\brdrcf15 \trbrdrv\brdrs\brdrw10\brdrcf15 
+\clvertalt\clbrdrt\brdrs\brdrw10\brdrcf15 \clbrdrl\brdrs\brdrw10\brdrcf15 \clbrdrb\brdrs\brdrw10\brdrcf15 \clbrdrr \brdrs\brdrw10\brdrcf15 \cltxlrtb \cellx2187
+\clvertalt\clbrdrt\brdrs\brdrw10\brdrcf15 \clbrdrl\brdrs\brdrw10\brdrcf15 \clbrdrb\brdrs\brdrw10\brdrcf15 \clbrdrr \brdrs\brdrw10\brdrcf15 \cltxlrtb \cellx8748
+\pard \widctlpar\intbl\adjustright
+{{\i self} \cell }{: the sensor data \cell }
+{\row }
+}
+}{
+Definition at line 522 of file open_interface.c.}\par
+}
+{\xe \v go_charge\:open_interface.c}
+{\xe \v open_interface.c\:go_charge}
+\pard\plain \s4\sb240\sa60\keepn\widctlpar\adjustright \b\f1\fs20\cgrid {
+{\b 
+void go_charge (void )}}
+\par
+{\bkmkstart AAAAAAAAJF}
+{\bkmkend AAAAAAAAJF}
+{
+\pard\plain \s51\li360\sa60\sb30\qj\widctlpar\qj\adjustright \fs20\cgrid 
+\par
+{
+{\s17\sa60\sb30\widctlpar\qj \fs22\cgrid 
+Runs default go charge program; robot will search for dock. }}\par
+{\s17\sa60\sb30\widctlpar\qj \fs22\cgrid 
+Calls in built in demo to send the iRobot to an open home base This will cause the iRobot to enter the Passive state \par
+}{
+Definition at line 352 of file open_interface.c.}\par
+}
+{\xe \v oi_init\:open_interface.c}
+{\xe \v open_interface.c\:oi_init}
+\pard\plain \s4\sb240\sa60\keepn\widctlpar\adjustright \b\f1\fs20\cgrid {
+{\b 
+void oi_init ({\b oi_t} *  {\i self})}}
+\par
+{\bkmkstart AAAAAAAAJG}
+{\bkmkend AAAAAAAAJG}
+{
+\pard\plain \s51\li360\sa60\sb30\qj\widctlpar\qj\adjustright \fs20\cgrid 
+\par
+{
+{\s17\sa60\sb30\widctlpar\qj \fs22\cgrid 
+Initialize open interface. }}\par
+{\s17\sa60\sb30\widctlpar\qj \fs22\cgrid 
+Initialize open interface communication with IRobot.\par
+This function needs to be called to setup UART and other OI peripherals \par
+}{
+Definition at line 153 of file open_interface.c.}\par
+}
+{\xe \v oi_init_noupdate\:open_interface.c}
+{\xe \v open_interface.c\:oi_init_noupdate}
+\pard\plain \s4\sb240\sa60\keepn\widctlpar\adjustright \b\f1\fs20\cgrid {
+{\b 
+void oi_init_noupdate (void )}}
+\par
+{\bkmkstart AAAAAAAAJH}
+{\bkmkend AAAAAAAAJH}
+{
+\pard\plain \s51\li360\sa60\sb30\qj\widctlpar\qj\adjustright \fs20\cgrid 
+{\s17\sa60\sb30\widctlpar\qj \fs22\cgrid 
+Initialize the iRobot open interface without updating a struct internal function \par
+}{
+Definition at line 133 of file open_interface.c.}\par
+}
+{\xe \v oi_loadSong\:open_interface.c}
+{\xe \v open_interface.c\:oi_loadSong}
+\pard\plain \s4\sb240\sa60\keepn\widctlpar\adjustright \b\f1\fs20\cgrid {
+{\b 
+void oi_loadSong (int  {\i song_index}, int  {\i num_notes}, unsigned char *  {\i notes}, unsigned char *  {\i duration})}}
+\par
+{\bkmkstart AAAAAAAAJI}
+{\bkmkend AAAAAAAAJI}
+{
+\pard\plain \s51\li360\sa60\sb30\qj\widctlpar\qj\adjustright \fs20\cgrid 
+\par
+{
+{\s17\sa60\sb30\widctlpar\qj \fs22\cgrid 
+Load song sequence. }}\par
+{\s17\sa60\sb30\widctlpar\qj \fs22\cgrid 
+{\par
+{\s5\sb90\sa30\keepn\widctlpar\adjustright \b\f1\fs20\cgrid 
+Parameters:\par}
+\pard\plain \s61\li360\widctlpar\ql\adjustright \fs20\cgrid \trowd \trgaph108\trleft426\tblind426\trbrdrt\brdrs\brdrw10\brdrcf15 \trbrdrl\brdrs\brdrw10\brdrcf15 \trbrdrb\brdrs\brdrw10\brdrcf15 \trbrdrr\brdrs\brdrw10\brdrcf15 \trbrdrh\brdrs\brdrw10\brdrcf15 \trbrdrv\brdrs\brdrw10\brdrcf15 
+\clvertalt\clbrdrt\brdrs\brdrw10\brdrcf15 \clbrdrl\brdrs\brdrw10\brdrcf15 \clbrdrb\brdrs\brdrw10\brdrcf15 \clbrdrr \brdrs\brdrw10\brdrcf15 \cltxlrtb \cellx2187
+\clvertalt\clbrdrt\brdrs\brdrw10\brdrcf15 \clbrdrl\brdrs\brdrw10\brdrcf15 \clbrdrb\brdrs\brdrw10\brdrcf15 \clbrdrr \brdrs\brdrw10\brdrcf15 \cltxlrtb \cellx8748
+\pard \widctlpar\intbl\adjustright
+{{\i An} \cell }{integer value from 0 - 15 that acts as a label for note sequence \cell }
+{\row }
+\trowd \trgaph108\trleft426\tblind426\trbrdrt\brdrs\brdrw10\brdrcf15 \trbrdrl\brdrs\brdrw10\brdrcf15 \trbrdrb\brdrs\brdrw10\brdrcf15 \trbrdrr\brdrs\brdrw10\brdrcf15 \trbrdrh\brdrs\brdrw10\brdrcf15 \trbrdrv\brdrs\brdrw10\brdrcf15 
+\clvertalt\clbrdrt\brdrs\brdrw10\brdrcf15 \clbrdrl\brdrs\brdrw10\brdrcf15 \clbrdrb\brdrs\brdrw10\brdrcf15 \clbrdrr \brdrs\brdrw10\brdrcf15 \cltxlrtb \cellx2187
+\clvertalt\clbrdrt\brdrs\brdrw10\brdrcf15 \clbrdrl\brdrs\brdrw10\brdrcf15 \clbrdrb\brdrs\brdrw10\brdrcf15 \clbrdrr \brdrs\brdrw10\brdrcf15 \cltxlrtb \cellx8748
+\pard \widctlpar\intbl\adjustright
+{{\i An} \cell }{integer value from 1 - 16 indicating the number of notes in the sequence \cell }
+{\row }
+\trowd \trgaph108\trleft426\tblind426\trbrdrt\brdrs\brdrw10\brdrcf15 \trbrdrl\brdrs\brdrw10\brdrcf15 \trbrdrb\brdrs\brdrw10\brdrcf15 \trbrdrr\brdrs\brdrw10\brdrcf15 \trbrdrh\brdrs\brdrw10\brdrcf15 \trbrdrv\brdrs\brdrw10\brdrcf15 
+\clvertalt\clbrdrt\brdrs\brdrw10\brdrcf15 \clbrdrl\brdrs\brdrw10\brdrcf15 \clbrdrb\brdrs\brdrw10\brdrcf15 \clbrdrr \brdrs\brdrw10\brdrcf15 \cltxlrtb \cellx2187
+\clvertalt\clbrdrt\brdrs\brdrw10\brdrcf15 \clbrdrl\brdrs\brdrw10\brdrcf15 \clbrdrb\brdrs\brdrw10\brdrcf15 \clbrdrr \brdrs\brdrw10\brdrcf15 \cltxlrtb \cellx8748
+\pard \widctlpar\intbl\adjustright
+{{\i A} \cell }{pointer to a sequence of notes stored as integer values \cell }
+{\row }
+\trowd \trgaph108\trleft426\tblind426\trbrdrt\brdrs\brdrw10\brdrcf15 \trbrdrl\brdrs\brdrw10\brdrcf15 \trbrdrb\brdrs\brdrw10\brdrcf15 \trbrdrr\brdrs\brdrw10\brdrcf15 \trbrdrh\brdrs\brdrw10\brdrcf15 \trbrdrv\brdrs\brdrw10\brdrcf15 
+\clvertalt\clbrdrt\brdrs\brdrw10\brdrcf15 \clbrdrl\brdrs\brdrw10\brdrcf15 \clbrdrb\brdrs\brdrw10\brdrcf15 \clbrdrr \brdrs\brdrw10\brdrcf15 \cltxlrtb \cellx2187
+\clvertalt\clbrdrt\brdrs\brdrw10\brdrcf15 \clbrdrl\brdrs\brdrw10\brdrcf15 \clbrdrb\brdrs\brdrw10\brdrcf15 \clbrdrr \brdrs\brdrw10\brdrcf15 \cltxlrtb \cellx8748
+\pard \widctlpar\intbl\adjustright
+{{\i A} \cell }{pointer to a sequence of durations that correspond to the notes \cell }
+{\row }
+}
+}{
+Definition at line 330 of file open_interface.c.}\par
+}
+{\xe \v oi_parseInt\:open_interface.c}
+{\xe \v open_interface.c\:oi_parseInt}
+\pard\plain \s4\sb240\sa60\keepn\widctlpar\adjustright \b\f1\fs20\cgrid {
+{\b 
+int16_t oi_parseInt (uint8_t *  {\i theInt}){\f2 [inline]}}}
+\par
+{\bkmkstart AAAAAAAAJJ}
+{\bkmkend AAAAAAAAJJ}
+{
+\pard\plain \s51\li360\sa60\sb30\qj\widctlpar\qj\adjustright \fs20\cgrid 
+{\s17\sa60\sb30\widctlpar\qj \fs22\cgrid 
+Helper function to convert big-endian integer from pointer into little endian integer internal function \par
+}{
+Definition at line 287 of file open_interface.c.}\par
+}
+{\xe \v oi_play_song\:open_interface.c}
+{\xe \v open_interface.c\:oi_play_song}
+\pard\plain \s4\sb240\sa60\keepn\widctlpar\adjustright \b\f1\fs20\cgrid {
+{\b 
+void oi_play_song (int  {\i index})}}
+\par
+{\bkmkstart AAAAAAAAJK}
+{\bkmkend AAAAAAAAJK}
+{
+\pard\plain \s51\li360\sa60\sb30\qj\widctlpar\qj\adjustright \fs20\cgrid 
+\par
+{
+{\s17\sa60\sb30\widctlpar\qj \fs22\cgrid 
+Plays a given song; use oi_load_song(...) first. }}\par
+{\s17\sa60\sb30\widctlpar\qj \fs22\cgrid 
+Play song. \par
+}{
+Definition at line 345 of file open_interface.c.}\par
+}
+{\xe \v oi_setLeds\:open_interface.c}
+{\xe \v open_interface.c\:oi_setLeds}
+\pard\plain \s4\sb240\sa60\keepn\widctlpar\adjustright \b\f1\fs20\cgrid {
+{\b 
+void oi_setLeds (uint8_t  {\i play_led}, uint8_t  {\i advance_led}, uint8_t  {\i power_color}, uint8_t  {\i power_intensity})}}
+\par
+{\bkmkstart AAAAAAAAJL}
+{\bkmkend AAAAAAAAJL}
+{
+\pard\plain \s51\li360\sa60\sb30\qj\widctlpar\qj\adjustright \fs20\cgrid 
+\par
+{
+{\s17\sa60\sb30\widctlpar\qj \fs22\cgrid 
+Set the LEDS on the Create. }}\par
+{\s17\sa60\sb30\widctlpar\qj \fs22\cgrid 
+{\par
+{\s5\sb90\sa30\keepn\widctlpar\adjustright \b\f1\fs20\cgrid 
+Parameters:\par}
+\pard\plain \s61\li360\widctlpar\ql\adjustright \fs20\cgrid \trowd \trgaph108\trleft426\tblind426\trbrdrt\brdrs\brdrw10\brdrcf15 \trbrdrl\brdrs\brdrw10\brdrcf15 \trbrdrb\brdrs\brdrw10\brdrcf15 \trbrdrr\brdrs\brdrw10\brdrcf15 \trbrdrh\brdrs\brdrw10\brdrcf15 \trbrdrv\brdrs\brdrw10\brdrcf15 
+\clvertalt\clbrdrt\brdrs\brdrw10\brdrcf15 \clbrdrl\brdrs\brdrw10\brdrcf15 \clbrdrb\brdrs\brdrw10\brdrcf15 \clbrdrr \brdrs\brdrw10\brdrcf15 \cltxlrtb \cellx2187
+\clvertalt\clbrdrt\brdrs\brdrw10\brdrcf15 \clbrdrl\brdrs\brdrw10\brdrcf15 \clbrdrb\brdrs\brdrw10\brdrcf15 \clbrdrr \brdrs\brdrw10\brdrcf15 \cltxlrtb \cellx8748
+\pard \widctlpar\intbl\adjustright
+{{\i play_led} \cell }{0=off, 1=on \cell }
+{\row }
+\trowd \trgaph108\trleft426\tblind426\trbrdrt\brdrs\brdrw10\brdrcf15 \trbrdrl\brdrs\brdrw10\brdrcf15 \trbrdrb\brdrs\brdrw10\brdrcf15 \trbrdrr\brdrs\brdrw10\brdrcf15 \trbrdrh\brdrs\brdrw10\brdrcf15 \trbrdrv\brdrs\brdrw10\brdrcf15 
+\clvertalt\clbrdrt\brdrs\brdrw10\brdrcf15 \clbrdrl\brdrs\brdrw10\brdrcf15 \clbrdrb\brdrs\brdrw10\brdrcf15 \clbrdrr \brdrs\brdrw10\brdrcf15 \cltxlrtb \cellx2187
+\clvertalt\clbrdrt\brdrs\brdrw10\brdrcf15 \clbrdrl\brdrs\brdrw10\brdrcf15 \clbrdrb\brdrs\brdrw10\brdrcf15 \clbrdrr \brdrs\brdrw10\brdrcf15 \cltxlrtb \cellx8748
+\pard \widctlpar\intbl\adjustright
+{{\i advance_led} \cell }{0=off, 1=on \cell }
+{\row }
+\trowd \trgaph108\trleft426\tblind426\trbrdrt\brdrs\brdrw10\brdrcf15 \trbrdrl\brdrs\brdrw10\brdrcf15 \trbrdrb\brdrs\brdrw10\brdrcf15 \trbrdrr\brdrs\brdrw10\brdrcf15 \trbrdrh\brdrs\brdrw10\brdrcf15 \trbrdrv\brdrs\brdrw10\brdrcf15 
+\clvertalt\clbrdrt\brdrs\brdrw10\brdrcf15 \clbrdrl\brdrs\brdrw10\brdrcf15 \clbrdrb\brdrs\brdrw10\brdrcf15 \clbrdrr \brdrs\brdrw10\brdrcf15 \cltxlrtb \cellx2187
+\clvertalt\clbrdrt\brdrs\brdrw10\brdrcf15 \clbrdrl\brdrs\brdrw10\brdrcf15 \clbrdrb\brdrs\brdrw10\brdrcf15 \clbrdrr \brdrs\brdrw10\brdrcf15 \cltxlrtb \cellx8748
+\pard \widctlpar\intbl\adjustright
+{{\i power_color} \cell }{(0-255), 0=green, 255=red \cell }
+{\row }
+\trowd \trgaph108\trleft426\tblind426\trbrdrt\brdrs\brdrw10\brdrcf15 \trbrdrl\brdrs\brdrw10\brdrcf15 \trbrdrb\brdrs\brdrw10\brdrcf15 \trbrdrr\brdrs\brdrw10\brdrcf15 \trbrdrh\brdrs\brdrw10\brdrcf15 \trbrdrv\brdrs\brdrw10\brdrcf15 
+\clvertalt\clbrdrt\brdrs\brdrw10\brdrcf15 \clbrdrl\brdrs\brdrw10\brdrcf15 \clbrdrb\brdrs\brdrw10\brdrcf15 \clbrdrr \brdrs\brdrw10\brdrcf15 \cltxlrtb \cellx2187
+\clvertalt\clbrdrt\brdrs\brdrw10\brdrcf15 \clbrdrl\brdrs\brdrw10\brdrcf15 \clbrdrb\brdrs\brdrw10\brdrcf15 \clbrdrr \brdrs\brdrw10\brdrcf15 \cltxlrtb \cellx8748
+\pard \widctlpar\intbl\adjustright
+{{\i power_intensity} \cell }{(0-255) 0=off, 255=full intensity \cell }
+{\row }
+}
+}{
+Definition at line 297 of file open_interface.c.}\par
+}
+{\xe \v oi_setWheels\:open_interface.c}
+{\xe \v open_interface.c\:oi_setWheels}
+\pard\plain \s4\sb240\sa60\keepn\widctlpar\adjustright \b\f1\fs20\cgrid {
+{\b 
+void oi_setWheels (int16_t  {\i right_wheel}, int16_t  {\i left_wheel})}}
+\par
+{\bkmkstart AAAAAAAAJM}
+{\bkmkend AAAAAAAAJM}
+{
+\pard\plain \s51\li360\sa60\sb30\qj\widctlpar\qj\adjustright \fs20\cgrid 
+\par
+{
+{\s17\sa60\sb30\widctlpar\qj \fs22\cgrid 
+Set direction and speed of the robot's wheels. }}\par
+{\s17\sa60\sb30\widctlpar\qj \fs22\cgrid 
+{\par
+{\s5\sb90\sa30\keepn\widctlpar\adjustright \b\f1\fs20\cgrid 
+Parameters:\par}
+\pard\plain \s61\li360\widctlpar\ql\adjustright \fs20\cgrid \trowd \trgaph108\trleft426\tblind426\trbrdrt\brdrs\brdrw10\brdrcf15 \trbrdrl\brdrs\brdrw10\brdrcf15 \trbrdrb\brdrs\brdrw10\brdrcf15 \trbrdrr\brdrs\brdrw10\brdrcf15 \trbrdrh\brdrs\brdrw10\brdrcf15 \trbrdrv\brdrs\brdrw10\brdrcf15 
+\clvertalt\clbrdrt\brdrs\brdrw10\brdrcf15 \clbrdrl\brdrs\brdrw10\brdrcf15 \clbrdrb\brdrs\brdrw10\brdrcf15 \clbrdrr \brdrs\brdrw10\brdrcf15 \cltxlrtb \cellx2187
+\clvertalt\clbrdrt\brdrs\brdrw10\brdrcf15 \clbrdrl\brdrs\brdrw10\brdrcf15 \clbrdrb\brdrs\brdrw10\brdrcf15 \clbrdrr \brdrs\brdrw10\brdrcf15 \cltxlrtb \cellx8748
+\pard \widctlpar\intbl\adjustright
+{{\i linear} \cell }{velocity in mm/s values range from -500 -> 500 of right wheel \cell }
+{\row }
+\trowd \trgaph108\trleft426\tblind426\trbrdrt\brdrs\brdrw10\brdrcf15 \trbrdrl\brdrs\brdrw10\brdrcf15 \trbrdrb\brdrs\brdrw10\brdrcf15 \trbrdrr\brdrs\brdrw10\brdrcf15 \trbrdrh\brdrs\brdrw10\brdrcf15 \trbrdrv\brdrs\brdrw10\brdrcf15 
+\clvertalt\clbrdrt\brdrs\brdrw10\brdrcf15 \clbrdrl\brdrs\brdrw10\brdrcf15 \clbrdrb\brdrs\brdrw10\brdrcf15 \clbrdrr \brdrs\brdrw10\brdrcf15 \cltxlrtb \cellx2187
+\clvertalt\clbrdrt\brdrs\brdrw10\brdrcf15 \clbrdrl\brdrs\brdrw10\brdrcf15 \clbrdrb\brdrs\brdrw10\brdrcf15 \clbrdrr \brdrs\brdrw10\brdrcf15 \cltxlrtb \cellx8748
+\pard \widctlpar\intbl\adjustright
+{{\i linear} \cell }{velocity in mm/s values range from -500 -> 500 of left wheel \cell }
+{\row }
+}
+}{
+Definition at line 316 of file open_interface.c.}\par
+}
+{\xe \v oi_uartReceive\:open_interface.c}
+{\xe \v open_interface.c\:oi_uartReceive}
+\pard\plain \s4\sb240\sa60\keepn\widctlpar\adjustright \b\f1\fs20\cgrid {
+{\b 
+char oi_uartReceive (void )}}
+\par
+{\bkmkstart AAAAAAAAJN}
+{\bkmkend AAAAAAAAJN}
+{
+\pard\plain \s51\li360\sa60\sb30\qj\widctlpar\qj\adjustright \fs20\cgrid 
+{\s17\sa60\sb30\widctlpar\qj \fs22\cgrid 
+Receive from UART internal function \par
+}{
+Definition at line 411 of file open_interface.c.}\par
+}
+{\xe \v oi_uartSendBuff\:open_interface.c}
+{\xe \v open_interface.c\:oi_uartSendBuff}
+\pard\plain \s4\sb240\sa60\keepn\widctlpar\adjustright \b\f1\fs20\cgrid {
+{\b 
+void oi_uartSendBuff (const uint8_t  {\i theData}[], uint8_t  {\i theSize})}}
+\par
+{\bkmkstart AAAAAAAAJO}
+{\bkmkend AAAAAAAAJO}
+{
+\pard\plain \s51\li360\sa60\sb30\qj\widctlpar\qj\adjustright \fs20\cgrid 
+{\s17\sa60\sb30\widctlpar\qj \fs22\cgrid 
+Send large data set from array internal function \par
+}{
+Definition at line 439 of file open_interface.c.}\par
+}
+{\xe \v oi_uartSendChar\:open_interface.c}
+{\xe \v open_interface.c\:oi_uartSendChar}
+\pard\plain \s4\sb240\sa60\keepn\widctlpar\adjustright \b\f1\fs20\cgrid {
+{\b 
+void oi_uartSendChar (char  {\i data})}}
+\par
+{\bkmkstart AAAAAAAAJP}
+{\bkmkend AAAAAAAAJP}
+{
+\pard\plain \s51\li360\sa60\sb30\qj\widctlpar\qj\adjustright \fs20\cgrid 
+{\s17\sa60\sb30\widctlpar\qj \fs22\cgrid 
+transmit character internal function \par
+}{
+Definition at line 400 of file open_interface.c.}\par
+}
+{\xe \v oi_update\:open_interface.c}
+{\xe \v open_interface.c\:oi_update}
+\pard\plain \s4\sb240\sa60\keepn\widctlpar\adjustright \b\f1\fs20\cgrid {
+{\b 
+void oi_update ({\b oi_t} *  {\i self})}}
+\par
+{\bkmkstart AAAAAAAAJQ}
+{\bkmkend AAAAAAAAJQ}
+{
+\pard\plain \s51\li360\sa60\sb30\qj\widctlpar\qj\adjustright \fs20\cgrid 
+\par
+{
+{\s17\sa60\sb30\widctlpar\qj \fs22\cgrid 
+Update all sensor and store in {\b oi_t} struct. }}\par
+{\s17\sa60\sb30\widctlpar\qj \fs22\cgrid 
+Update sensor data. \par
+}{
+Definition at line 169 of file open_interface.c.}\par
+}
+{\xe \v uart_sendStr\:open_interface.c}
+{\xe \v open_interface.c\:uart_sendStr}
+\pard\plain \s4\sb240\sa60\keepn\widctlpar\adjustright \b\f1\fs20\cgrid {
+{\b 
+void uart_sendStr (const char *  {\i theData})}}
+\par
+{\bkmkstart AAAAAAAAJR}
+{\bkmkend AAAAAAAAJR}
+{
+\pard\plain \s51\li360\sa60\sb30\qj\widctlpar\qj\adjustright \fs20\cgrid 
+{\s17\sa60\sb30\widctlpar\qj \fs22\cgrid 
+transmit character array internal function\par
+Send an entire string {\par
+{\s5\sb90\sa30\keepn\widctlpar\adjustright \b\f1\fs20\cgrid 
+Parameters:\par}
+\pard\plain \s61\li360\widctlpar\ql\adjustright \fs20\cgrid \trowd \trgaph108\trleft426\tblind426\trbrdrt\brdrs\brdrw10\brdrcf15 \trbrdrl\brdrs\brdrw10\brdrcf15 \trbrdrb\brdrs\brdrw10\brdrcf15 \trbrdrr\brdrs\brdrw10\brdrcf15 \trbrdrh\brdrs\brdrw10\brdrcf15 \trbrdrv\brdrs\brdrw10\brdrcf15 
+\clvertalt\clbrdrt\brdrs\brdrw10\brdrcf15 \clbrdrl\brdrs\brdrw10\brdrcf15 \clbrdrb\brdrs\brdrw10\brdrcf15 \clbrdrr \brdrs\brdrw10\brdrcf15 \cltxlrtb \cellx2187
+\clvertalt\clbrdrt\brdrs\brdrw10\brdrcf15 \clbrdrl\brdrs\brdrw10\brdrcf15 \clbrdrb\brdrs\brdrw10\brdrcf15 \clbrdrr \brdrs\brdrw10\brdrcf15 \cltxlrtb \cellx8748
+\pard \widctlpar\intbl\adjustright
+{{\i data-String} \cell }{to send \cell }
+{\row }
+}
+}{
+Definition at line 133 of file uart.c.}\par
+}
+\par \pard\plain 
+
+\pard\plain \sect\sbkpage
+\s2\sb240\sa60\keepn\widctlpar\adjustright \b\f1\fs28\kerning28\cgrid 
+\pard\plain \s2\sb240\sa60\keepn\widctlpar\adjustright \b\f1\fs28\kerning28\cgrid 
+C:/Users/DonsterLaptop/Documents/Robot288/cpre288_generalpurposeautomatedrobot/Robot/Utils/open_interface.h File Reference\par \pard\plain 
+{\tc\tcl2 \v C:/Users/DonsterLaptop/Documents/Robot288/cpre288_generalpurposeautomatedrobot/Robot/Utils/open_interface.h}
+{\xe \v C:/Users/DonsterLaptop/Documents/Robot288/cpre288_generalpurposeautomatedrobot/Robot/Utils/open_interface.h}
+{\bkmkstart AAAAAAAAJS}
+{\bkmkend AAAAAAAAJS}
+\par
+{
+{\s17\sa60\sb30\widctlpar\qj \fs22\cgrid 
+Header file for {\b open_interface.c} Contains all functionality to interface with the IRobot Create V2 Communication over UART4 at 115200. }}\par
+{
+\pard\plain \s18\widctlpar\fs22\cgrid {\f2 #include <stdio.h>}\par
+{\f2 #include <stdint.h>}\par
+{\f2 #include <string.h>}\par
+{\f2 #include <stdlib.h>}\par
+{\f2 #include <math.h>}\par
+{\f2 #include "Utils/Timer.h"}\par
+{\f2 #include "Utils/lcd.h"}\par
+{\f2 #include <inc/tm4c123gh6pm.h>}\par
+{\f2 #include <stdbool.h>}\par
+{\f2 #include "driverlib/interrupt.h"}\par
+}
+\pard\plain \s3\sb240\sa60\keepn\widctlpar\adjustright \b\f1\cgrid 
+Data Structures\par
+\pard\plain 
+
+{
+\pard\plain \s80\fi-360\li360\widctlpar\jclisttab\tx360{\*\pn \pnlvlbody\ilvl0\ls1\pnrnot0\pndec }\ls1\adjustright \fs20\cgrid 
+struct {\b oi_t}\par
+{
+\pard\plain \s51\li360\sa60\sb30\qj\widctlpar\qj\adjustright \fs20\cgrid {\i {{\s17\sa60\sb30\widctlpar\qj \fs22\cgrid 
+iRobot Create Sensor Data }\par}}}
+}
+\pard\plain \s3\sb240\sa60\keepn\widctlpar\adjustright \b\f1\cgrid 
+Macros\par
+\pard\plain 
+
+{
+\pard\plain \s80\fi-360\li360\widctlpar\jclisttab\tx360{\*\pn \pnlvlbody\ilvl0\ls1\pnrnot0\pndec }\ls1\adjustright \fs20\cgrid 
+
+#define {\b M_PI}\~ 3.14159265358979323846{\bkmkstart AAAAAAAAJT}
+{\bkmkend AAAAAAAAJT}
+\par
+}
+\pard\plain \s3\sb240\sa60\keepn\widctlpar\adjustright \b\f1\cgrid 
+Functions\par
+\pard\plain 
+
+{
+\pard\plain \s80\fi-360\li360\widctlpar\jclisttab\tx360{\*\pn \pnlvlbody\ilvl0\ls1\pnrnot0\pndec }\ls1\adjustright \fs20\cgrid 
+
+{\b oi_t} * {\b oi_alloc} (){\bkmkstart AAAAAAAAJU}
+{\bkmkend AAAAAAAAJU}
+\par
+{
+\pard\plain \s51\li360\sa60\sb30\qj\widctlpar\qj\adjustright \fs20\cgrid {\i {\s17\sa60\sb30\widctlpar\qj \fs22\cgrid 
+Allocate and clear all memory for OI Struct. }{
+}\par
+}}
+\pard\plain \s80\fi-360\li360\widctlpar\jclisttab\tx360{\*\pn \pnlvlbody\ilvl0\ls1\pnrnot0\pndec }\ls1\adjustright \fs20\cgrid 
+
+void {\b oi_free} ({\b oi_t} *self){\bkmkstart AAAAAAAAJV}
+{\bkmkend AAAAAAAAJV}
+\par
+{
+\pard\plain \s51\li360\sa60\sb30\qj\widctlpar\qj\adjustright \fs20\cgrid {\i {\s17\sa60\sb30\widctlpar\qj \fs22\cgrid 
+Free memory from pointer to Open Interface Struct. }{
+}\par
+}}
+\pard\plain \s80\fi-360\li360\widctlpar\jclisttab\tx360{\*\pn \pnlvlbody\ilvl0\ls1\pnrnot0\pndec }\ls1\adjustright \fs20\cgrid 
+void {\b oi_init} ({\b oi_t} *self)\par
+{
+\pard\plain \s51\li360\sa60\sb30\qj\widctlpar\qj\adjustright \fs20\cgrid {\i {\s17\sa60\sb30\widctlpar\qj \fs22\cgrid 
+Initialize open interface. }{
+}\par
+}}
+\pard\plain \s80\fi-360\li360\widctlpar\jclisttab\tx360{\*\pn \pnlvlbody\ilvl0\ls1\pnrnot0\pndec }\ls1\adjustright \fs20\cgrid 
+
+void {\b oi_close} (){\bkmkstart AAAAAAAAJW}
+{\bkmkend AAAAAAAAJW}
+\par
+\pard\plain \s80\fi-360\li360\widctlpar\jclisttab\tx360{\*\pn \pnlvlbody\ilvl0\ls1\pnrnot0\pndec }\ls1\adjustright \fs20\cgrid 
+void {\b oi_update} ({\b oi_t} *self)\par
+{
+\pard\plain \s51\li360\sa60\sb30\qj\widctlpar\qj\adjustright \fs20\cgrid {\i {\s17\sa60\sb30\widctlpar\qj \fs22\cgrid 
+Update sensor data. }{
+}\par
+}}
+\pard\plain \s80\fi-360\li360\widctlpar\jclisttab\tx360{\*\pn \pnlvlbody\ilvl0\ls1\pnrnot0\pndec }\ls1\adjustright \fs20\cgrid 
+void {\b oi_setLeds} (uint8_t play_led, uint8_t advance_led, uint8_t power_color, uint8_t power_intensity)\par
+{
+\pard\plain \s51\li360\sa60\sb30\qj\widctlpar\qj\adjustright \fs20\cgrid {\i {\s17\sa60\sb30\widctlpar\qj \fs22\cgrid 
+Set the LEDS on the Create. }{
+}\par
+}}
+\pard\plain \s80\fi-360\li360\widctlpar\jclisttab\tx360{\*\pn \pnlvlbody\ilvl0\ls1\pnrnot0\pndec }\ls1\adjustright \fs20\cgrid 
+void {\b oi_setWheels} (int16_t right_wheel, int16_t left_wheel)\par
+{
+\pard\plain \s51\li360\sa60\sb30\qj\widctlpar\qj\adjustright \fs20\cgrid {\i {\s17\sa60\sb30\widctlpar\qj \fs22\cgrid 
+Set direction and speed of the robot's wheels. }{
+}\par
+}}
+\pard\plain \s80\fi-360\li360\widctlpar\jclisttab\tx360{\*\pn \pnlvlbody\ilvl0\ls1\pnrnot0\pndec }\ls1\adjustright \fs20\cgrid 
+void {\b oi_loadSong} (int song_index, int num_notes, unsigned char *notes, unsigned char *duration)\par
+{
+\pard\plain \s51\li360\sa60\sb30\qj\widctlpar\qj\adjustright \fs20\cgrid {\i {\s17\sa60\sb30\widctlpar\qj \fs22\cgrid 
+Load song sequence. }{
+}\par
+}}
+\pard\plain \s80\fi-360\li360\widctlpar\jclisttab\tx360{\*\pn \pnlvlbody\ilvl0\ls1\pnrnot0\pndec }\ls1\adjustright \fs20\cgrid 
+void {\b oi_play_song} (int index)\par
+{
+\pard\plain \s51\li360\sa60\sb30\qj\widctlpar\qj\adjustright \fs20\cgrid {\i {\s17\sa60\sb30\widctlpar\qj \fs22\cgrid 
+Play song. }{
+}\par
+}}
+\pard\plain \s80\fi-360\li360\widctlpar\jclisttab\tx360{\*\pn \pnlvlbody\ilvl0\ls1\pnrnot0\pndec }\ls1\adjustright \fs20\cgrid 
+void {\b go_charge} (void)\par
+{
+\pard\plain \s51\li360\sa60\sb30\qj\widctlpar\qj\adjustright \fs20\cgrid {\i {\s17\sa60\sb30\widctlpar\qj \fs22\cgrid 
+Runs default go charge program; robot will search for dock. }{
+}\par
+}}
+\pard\plain \s80\fi-360\li360\widctlpar\jclisttab\tx360{\*\pn \pnlvlbody\ilvl0\ls1\pnrnot0\pndec }\ls1\adjustright \fs20\cgrid 
+
+char * {\b oi_checkFirmware} (){\bkmkstart AAAAAAAAJX}
+{\bkmkend AAAAAAAAJX}
+\par
+\pard\plain \s80\fi-360\li360\widctlpar\jclisttab\tx360{\*\pn \pnlvlbody\ilvl0\ls1\pnrnot0\pndec }\ls1\adjustright \fs20\cgrid 
+
+void {\b oi_shutoff_init} (void){\bkmkstart AAAAAAAAJY}
+{\bkmkend AAAAAAAAJY}
+\par
+{
+\pard\plain \s51\li360\sa60\sb30\qj\widctlpar\qj\adjustright \fs20\cgrid {\i {\s17\sa60\sb30\widctlpar\qj \fs22\cgrid 
+initializes the user button to shut off OI }{
+}\par
+}}
+\pard\plain \s80\fi-360\li360\widctlpar\jclisttab\tx360{\*\pn \pnlvlbody\ilvl0\ls1\pnrnot0\pndec }\ls1\adjustright \fs20\cgrid 
+
+void {\b GPIOF_Handler} (void){\bkmkstart AAAAAAAAJZ}
+{\bkmkend AAAAAAAAJZ}
+\par
+\pard\plain \s80\fi-360\li360\widctlpar\jclisttab\tx360{\*\pn \pnlvlbody\ilvl0\ls1\pnrnot0\pndec }\ls1\adjustright \fs20\cgrid 
+float {\b getDegrees} ({\b oi_t} *self)\par
+}
+{\pard\widctlpar\brdrb\brdrs\brdrw5\brsp20 \adjustright \par}
+\pard\plain \s3\sb240\sa60\keepn\widctlpar\adjustright \b\f1\cgrid 
+Detailed Description\par
+\pard\plain 
+{
+\pard\plain \s17\sa60\sb30\widctlpar\qj \fs22\cgrid {\s17\sa60\sb30\widctlpar\qj \fs22\cgrid 
+Header file for {\b open_interface.c} Contains all functionality to interface with the IRobot Create V2 Communication over UART4 at 115200. \par
+}{\s17\sa60\sb30\widctlpar\qj \fs22\cgrid 
+\par
+{{\s5\sb90\sa30\keepn\widctlpar\adjustright \b\f1\fs20\cgrid 
+Author:\par}\pard\plain \s61\li360\widctlpar\ql\adjustright \fs20\cgrid Noah Bergman \par
+}{{\s5\sb90\sa30\keepn\widctlpar\adjustright \b\f1\fs20\cgrid 
+Date:\par}\pard\plain \s61\li360\widctlpar\ql\adjustright \fs20\cgrid 03/11/2016 \par
+}}}
+{\pard\widctlpar\brdrb\brdrs\brdrw5\brsp20 \adjustright \par}
+\pard\plain \s3\sb240\sa60\keepn\widctlpar\adjustright \b\f1\cgrid 
+Function Documentation\par
+\pard\plain 
+{\xe \v getDegrees\:open_interface.h}
+{\xe \v open_interface.h\:getDegrees}
+\pard\plain \s4\sb240\sa60\keepn\widctlpar\adjustright \b\f1\fs20\cgrid {
+{\b 
+float getDegrees ({\b oi_t} *  {\i self})}}
+\par
+{\bkmkstart AAAAAAAAKA}
+{\bkmkend AAAAAAAAKA}
+{
+\pard\plain \s51\li360\sa60\sb30\qj\widctlpar\qj\adjustright \fs20\cgrid 
+{\s17\sa60\sb30\widctlpar\qj \fs22\cgrid 
+Get the moved degrees from the previous call of oi_update {\par
+{\s5\sb90\sa30\keepn\widctlpar\adjustright \b\f1\fs20\cgrid 
+Parameters:\par}
+\pard\plain \s61\li360\widctlpar\ql\adjustright \fs20\cgrid \trowd \trgaph108\trleft426\tblind426\trbrdrt\brdrs\brdrw10\brdrcf15 \trbrdrl\brdrs\brdrw10\brdrcf15 \trbrdrb\brdrs\brdrw10\brdrcf15 \trbrdrr\brdrs\brdrw10\brdrcf15 \trbrdrh\brdrs\brdrw10\brdrcf15 \trbrdrv\brdrs\brdrw10\brdrcf15 
+\clvertalt\clbrdrt\brdrs\brdrw10\brdrcf15 \clbrdrl\brdrs\brdrw10\brdrcf15 \clbrdrb\brdrs\brdrw10\brdrcf15 \clbrdrr \brdrs\brdrw10\brdrcf15 \cltxlrtb \cellx2187
+\clvertalt\clbrdrt\brdrs\brdrw10\brdrcf15 \clbrdrl\brdrs\brdrw10\brdrcf15 \clbrdrb\brdrs\brdrw10\brdrcf15 \clbrdrr \brdrs\brdrw10\brdrcf15 \cltxlrtb \cellx8748
+\pard \widctlpar\intbl\adjustright
+{{\i self} \cell }{: the sensor data \cell }
+{\row }
+}
+}{
+Definition at line 522 of file open_interface.c.}\par
+}
+{\xe \v go_charge\:open_interface.h}
+{\xe \v open_interface.h\:go_charge}
+\pard\plain \s4\sb240\sa60\keepn\widctlpar\adjustright \b\f1\fs20\cgrid {
+{\b 
+void go_charge (void )}}
+\par
+{\bkmkstart AAAAAAAAKB}
+{\bkmkend AAAAAAAAKB}
+{
+\pard\plain \s51\li360\sa60\sb30\qj\widctlpar\qj\adjustright \fs20\cgrid 
+\par
+{
+{\s17\sa60\sb30\widctlpar\qj \fs22\cgrid 
+Runs default go charge program; robot will search for dock. }}\par
+{\s17\sa60\sb30\widctlpar\qj \fs22\cgrid 
+Calls in built in demo to send the iRobot to an open home base This will cause the iRobot to enter the Passive state \par
+}{
+Definition at line 352 of file open_interface.c.}\par
+}
+{\xe \v oi_init\:open_interface.h}
+{\xe \v open_interface.h\:oi_init}
+\pard\plain \s4\sb240\sa60\keepn\widctlpar\adjustright \b\f1\fs20\cgrid {
+{\b 
+void oi_init ({\b oi_t} *  {\i self})}}
+\par
+{\bkmkstart AAAAAAAAKC}
+{\bkmkend AAAAAAAAKC}
+{
+\pard\plain \s51\li360\sa60\sb30\qj\widctlpar\qj\adjustright \fs20\cgrid 
+\par
+{
+{\s17\sa60\sb30\widctlpar\qj \fs22\cgrid 
+Initialize open interface. }}\par
+{\s17\sa60\sb30\widctlpar\qj \fs22\cgrid 
+Initialize open interface communication with IRobot.\par
+This function needs to be called to setup UART and other OI peripherals \par
+}{
+Definition at line 153 of file open_interface.c.}\par
+}
+{\xe \v oi_loadSong\:open_interface.h}
+{\xe \v open_interface.h\:oi_loadSong}
+\pard\plain \s4\sb240\sa60\keepn\widctlpar\adjustright \b\f1\fs20\cgrid {
+{\b 
+void oi_loadSong (int  {\i song_index}, int  {\i num_notes}, unsigned char *  {\i notes}, unsigned char *  {\i duration})}}
+\par
+{\bkmkstart AAAAAAAAKD}
+{\bkmkend AAAAAAAAKD}
+{
+\pard\plain \s51\li360\sa60\sb30\qj\widctlpar\qj\adjustright \fs20\cgrid 
+\par
+{
+{\s17\sa60\sb30\widctlpar\qj \fs22\cgrid 
+Load song sequence. }}\par
+{\s17\sa60\sb30\widctlpar\qj \fs22\cgrid 
+{\par
+{\s5\sb90\sa30\keepn\widctlpar\adjustright \b\f1\fs20\cgrid 
+Parameters:\par}
+\pard\plain \s61\li360\widctlpar\ql\adjustright \fs20\cgrid \trowd \trgaph108\trleft426\tblind426\trbrdrt\brdrs\brdrw10\brdrcf15 \trbrdrl\brdrs\brdrw10\brdrcf15 \trbrdrb\brdrs\brdrw10\brdrcf15 \trbrdrr\brdrs\brdrw10\brdrcf15 \trbrdrh\brdrs\brdrw10\brdrcf15 \trbrdrv\brdrs\brdrw10\brdrcf15 
+\clvertalt\clbrdrt\brdrs\brdrw10\brdrcf15 \clbrdrl\brdrs\brdrw10\brdrcf15 \clbrdrb\brdrs\brdrw10\brdrcf15 \clbrdrr \brdrs\brdrw10\brdrcf15 \cltxlrtb \cellx2187
+\clvertalt\clbrdrt\brdrs\brdrw10\brdrcf15 \clbrdrl\brdrs\brdrw10\brdrcf15 \clbrdrb\brdrs\brdrw10\brdrcf15 \clbrdrr \brdrs\brdrw10\brdrcf15 \cltxlrtb \cellx8748
+\pard \widctlpar\intbl\adjustright
+{{\i An} \cell }{integer value from 0 - 15 that acts as a label for note sequence \cell }
+{\row }
+\trowd \trgaph108\trleft426\tblind426\trbrdrt\brdrs\brdrw10\brdrcf15 \trbrdrl\brdrs\brdrw10\brdrcf15 \trbrdrb\brdrs\brdrw10\brdrcf15 \trbrdrr\brdrs\brdrw10\brdrcf15 \trbrdrh\brdrs\brdrw10\brdrcf15 \trbrdrv\brdrs\brdrw10\brdrcf15 
+\clvertalt\clbrdrt\brdrs\brdrw10\brdrcf15 \clbrdrl\brdrs\brdrw10\brdrcf15 \clbrdrb\brdrs\brdrw10\brdrcf15 \clbrdrr \brdrs\brdrw10\brdrcf15 \cltxlrtb \cellx2187
+\clvertalt\clbrdrt\brdrs\brdrw10\brdrcf15 \clbrdrl\brdrs\brdrw10\brdrcf15 \clbrdrb\brdrs\brdrw10\brdrcf15 \clbrdrr \brdrs\brdrw10\brdrcf15 \cltxlrtb \cellx8748
+\pard \widctlpar\intbl\adjustright
+{{\i An} \cell }{integer value from 1 - 16 indicating the number of notes in the sequence \cell }
+{\row }
+\trowd \trgaph108\trleft426\tblind426\trbrdrt\brdrs\brdrw10\brdrcf15 \trbrdrl\brdrs\brdrw10\brdrcf15 \trbrdrb\brdrs\brdrw10\brdrcf15 \trbrdrr\brdrs\brdrw10\brdrcf15 \trbrdrh\brdrs\brdrw10\brdrcf15 \trbrdrv\brdrs\brdrw10\brdrcf15 
+\clvertalt\clbrdrt\brdrs\brdrw10\brdrcf15 \clbrdrl\brdrs\brdrw10\brdrcf15 \clbrdrb\brdrs\brdrw10\brdrcf15 \clbrdrr \brdrs\brdrw10\brdrcf15 \cltxlrtb \cellx2187
+\clvertalt\clbrdrt\brdrs\brdrw10\brdrcf15 \clbrdrl\brdrs\brdrw10\brdrcf15 \clbrdrb\brdrs\brdrw10\brdrcf15 \clbrdrr \brdrs\brdrw10\brdrcf15 \cltxlrtb \cellx8748
+\pard \widctlpar\intbl\adjustright
+{{\i A} \cell }{pointer to a sequence of notes stored as integer values \cell }
+{\row }
+\trowd \trgaph108\trleft426\tblind426\trbrdrt\brdrs\brdrw10\brdrcf15 \trbrdrl\brdrs\brdrw10\brdrcf15 \trbrdrb\brdrs\brdrw10\brdrcf15 \trbrdrr\brdrs\brdrw10\brdrcf15 \trbrdrh\brdrs\brdrw10\brdrcf15 \trbrdrv\brdrs\brdrw10\brdrcf15 
+\clvertalt\clbrdrt\brdrs\brdrw10\brdrcf15 \clbrdrl\brdrs\brdrw10\brdrcf15 \clbrdrb\brdrs\brdrw10\brdrcf15 \clbrdrr \brdrs\brdrw10\brdrcf15 \cltxlrtb \cellx2187
+\clvertalt\clbrdrt\brdrs\brdrw10\brdrcf15 \clbrdrl\brdrs\brdrw10\brdrcf15 \clbrdrb\brdrs\brdrw10\brdrcf15 \clbrdrr \brdrs\brdrw10\brdrcf15 \cltxlrtb \cellx8748
+\pard \widctlpar\intbl\adjustright
+{{\i A} \cell }{pointer to a sequence of durations that correspond to the notes \cell }
+{\row }
+}
+}{
+Definition at line 330 of file open_interface.c.}\par
+}
+{\xe \v oi_play_song\:open_interface.h}
+{\xe \v open_interface.h\:oi_play_song}
+\pard\plain \s4\sb240\sa60\keepn\widctlpar\adjustright \b\f1\fs20\cgrid {
+{\b 
+void oi_play_song (int  {\i index})}}
+\par
+{\bkmkstart AAAAAAAAKE}
+{\bkmkend AAAAAAAAKE}
+{
+\pard\plain \s51\li360\sa60\sb30\qj\widctlpar\qj\adjustright \fs20\cgrid 
+\par
+{
+{\s17\sa60\sb30\widctlpar\qj \fs22\cgrid 
+Play song. }}\par
+{\s17\sa60\sb30\widctlpar\qj \fs22\cgrid 
+{\par
+{\s5\sb90\sa30\keepn\widctlpar\adjustright \b\f1\fs20\cgrid 
+Parameters:\par}
+\pard\plain \s61\li360\widctlpar\ql\adjustright \fs20\cgrid \trowd \trgaph108\trleft426\tblind426\trbrdrt\brdrs\brdrw10\brdrcf15 \trbrdrl\brdrs\brdrw10\brdrcf15 \trbrdrb\brdrs\brdrw10\brdrcf15 \trbrdrr\brdrs\brdrw10\brdrcf15 \trbrdrh\brdrs\brdrw10\brdrcf15 \trbrdrv\brdrs\brdrw10\brdrcf15 
+\clvertalt\clbrdrt\brdrs\brdrw10\brdrcf15 \clbrdrl\brdrs\brdrw10\brdrcf15 \clbrdrb\brdrs\brdrw10\brdrcf15 \clbrdrr \brdrs\brdrw10\brdrcf15 \cltxlrtb \cellx2187
+\clvertalt\clbrdrt\brdrs\brdrw10\brdrcf15 \clbrdrl\brdrs\brdrw10\brdrcf15 \clbrdrb\brdrs\brdrw10\brdrcf15 \clbrdrr \brdrs\brdrw10\brdrcf15 \cltxlrtb \cellx8748
+\pard \widctlpar\intbl\adjustright
+{{\i An} \cell }{integer value from 0 - 15 that is a previously establish song index\cell }
+{\row }
+}
+Play song. \par
+}{
+Definition at line 345 of file open_interface.c.}\par
+}
+{\xe \v oi_setLeds\:open_interface.h}
+{\xe \v open_interface.h\:oi_setLeds}
+\pard\plain \s4\sb240\sa60\keepn\widctlpar\adjustright \b\f1\fs20\cgrid {
+{\b 
+void oi_setLeds (uint8_t  {\i play_led}, uint8_t  {\i advance_led}, uint8_t  {\i power_color}, uint8_t  {\i power_intensity})}}
+\par
+{\bkmkstart AAAAAAAAKF}
+{\bkmkend AAAAAAAAKF}
+{
+\pard\plain \s51\li360\sa60\sb30\qj\widctlpar\qj\adjustright \fs20\cgrid 
+\par
+{
+{\s17\sa60\sb30\widctlpar\qj \fs22\cgrid 
+Set the LEDS on the Create. }}\par
+{\s17\sa60\sb30\widctlpar\qj \fs22\cgrid 
+{\par
+{\s5\sb90\sa30\keepn\widctlpar\adjustright \b\f1\fs20\cgrid 
+Parameters:\par}
+\pard\plain \s61\li360\widctlpar\ql\adjustright \fs20\cgrid \trowd \trgaph108\trleft426\tblind426\trbrdrt\brdrs\brdrw10\brdrcf15 \trbrdrl\brdrs\brdrw10\brdrcf15 \trbrdrb\brdrs\brdrw10\brdrcf15 \trbrdrr\brdrs\brdrw10\brdrcf15 \trbrdrh\brdrs\brdrw10\brdrcf15 \trbrdrv\brdrs\brdrw10\brdrcf15 
+\clvertalt\clbrdrt\brdrs\brdrw10\brdrcf15 \clbrdrl\brdrs\brdrw10\brdrcf15 \clbrdrb\brdrs\brdrw10\brdrcf15 \clbrdrr \brdrs\brdrw10\brdrcf15 \cltxlrtb \cellx2187
+\clvertalt\clbrdrt\brdrs\brdrw10\brdrcf15 \clbrdrl\brdrs\brdrw10\brdrcf15 \clbrdrb\brdrs\brdrw10\brdrcf15 \clbrdrr \brdrs\brdrw10\brdrcf15 \cltxlrtb \cellx8748
+\pard \widctlpar\intbl\adjustright
+{{\i play_led} \cell }{0=off, 1=on \cell }
+{\row }
+\trowd \trgaph108\trleft426\tblind426\trbrdrt\brdrs\brdrw10\brdrcf15 \trbrdrl\brdrs\brdrw10\brdrcf15 \trbrdrb\brdrs\brdrw10\brdrcf15 \trbrdrr\brdrs\brdrw10\brdrcf15 \trbrdrh\brdrs\brdrw10\brdrcf15 \trbrdrv\brdrs\brdrw10\brdrcf15 
+\clvertalt\clbrdrt\brdrs\brdrw10\brdrcf15 \clbrdrl\brdrs\brdrw10\brdrcf15 \clbrdrb\brdrs\brdrw10\brdrcf15 \clbrdrr \brdrs\brdrw10\brdrcf15 \cltxlrtb \cellx2187
+\clvertalt\clbrdrt\brdrs\brdrw10\brdrcf15 \clbrdrl\brdrs\brdrw10\brdrcf15 \clbrdrb\brdrs\brdrw10\brdrcf15 \clbrdrr \brdrs\brdrw10\brdrcf15 \cltxlrtb \cellx8748
+\pard \widctlpar\intbl\adjustright
+{{\i advance_led} \cell }{0=off, 1=on \cell }
+{\row }
+\trowd \trgaph108\trleft426\tblind426\trbrdrt\brdrs\brdrw10\brdrcf15 \trbrdrl\brdrs\brdrw10\brdrcf15 \trbrdrb\brdrs\brdrw10\brdrcf15 \trbrdrr\brdrs\brdrw10\brdrcf15 \trbrdrh\brdrs\brdrw10\brdrcf15 \trbrdrv\brdrs\brdrw10\brdrcf15 
+\clvertalt\clbrdrt\brdrs\brdrw10\brdrcf15 \clbrdrl\brdrs\brdrw10\brdrcf15 \clbrdrb\brdrs\brdrw10\brdrcf15 \clbrdrr \brdrs\brdrw10\brdrcf15 \cltxlrtb \cellx2187
+\clvertalt\clbrdrt\brdrs\brdrw10\brdrcf15 \clbrdrl\brdrs\brdrw10\brdrcf15 \clbrdrb\brdrs\brdrw10\brdrcf15 \clbrdrr \brdrs\brdrw10\brdrcf15 \cltxlrtb \cellx8748
+\pard \widctlpar\intbl\adjustright
+{{\i power_color} \cell }{(0-255), 0=green, 255=red \cell }
+{\row }
+\trowd \trgaph108\trleft426\tblind426\trbrdrt\brdrs\brdrw10\brdrcf15 \trbrdrl\brdrs\brdrw10\brdrcf15 \trbrdrb\brdrs\brdrw10\brdrcf15 \trbrdrr\brdrs\brdrw10\brdrcf15 \trbrdrh\brdrs\brdrw10\brdrcf15 \trbrdrv\brdrs\brdrw10\brdrcf15 
+\clvertalt\clbrdrt\brdrs\brdrw10\brdrcf15 \clbrdrl\brdrs\brdrw10\brdrcf15 \clbrdrb\brdrs\brdrw10\brdrcf15 \clbrdrr \brdrs\brdrw10\brdrcf15 \cltxlrtb \cellx2187
+\clvertalt\clbrdrt\brdrs\brdrw10\brdrcf15 \clbrdrl\brdrs\brdrw10\brdrcf15 \clbrdrb\brdrs\brdrw10\brdrcf15 \clbrdrr \brdrs\brdrw10\brdrcf15 \cltxlrtb \cellx8748
+\pard \widctlpar\intbl\adjustright
+{{\i power_intensity} \cell }{(0-255) 0=off, 255=full intensity \cell }
+{\row }
+}
+}{
+Definition at line 297 of file open_interface.c.}\par
+}
+{\xe \v oi_setWheels\:open_interface.h}
+{\xe \v open_interface.h\:oi_setWheels}
+\pard\plain \s4\sb240\sa60\keepn\widctlpar\adjustright \b\f1\fs20\cgrid {
+{\b 
+void oi_setWheels (int16_t  {\i right_wheel}, int16_t  {\i left_wheel})}}
+\par
+{\bkmkstart AAAAAAAAKG}
+{\bkmkend AAAAAAAAKG}
+{
+\pard\plain \s51\li360\sa60\sb30\qj\widctlpar\qj\adjustright \fs20\cgrid 
+\par
+{
+{\s17\sa60\sb30\widctlpar\qj \fs22\cgrid 
+Set direction and speed of the robot's wheels. }}\par
+{\s17\sa60\sb30\widctlpar\qj \fs22\cgrid 
+{\par
+{\s5\sb90\sa30\keepn\widctlpar\adjustright \b\f1\fs20\cgrid 
+Parameters:\par}
+\pard\plain \s61\li360\widctlpar\ql\adjustright \fs20\cgrid \trowd \trgaph108\trleft426\tblind426\trbrdrt\brdrs\brdrw10\brdrcf15 \trbrdrl\brdrs\brdrw10\brdrcf15 \trbrdrb\brdrs\brdrw10\brdrcf15 \trbrdrr\brdrs\brdrw10\brdrcf15 \trbrdrh\brdrs\brdrw10\brdrcf15 \trbrdrv\brdrs\brdrw10\brdrcf15 
+\clvertalt\clbrdrt\brdrs\brdrw10\brdrcf15 \clbrdrl\brdrs\brdrw10\brdrcf15 \clbrdrb\brdrs\brdrw10\brdrcf15 \clbrdrr \brdrs\brdrw10\brdrcf15 \cltxlrtb \cellx2187
+\clvertalt\clbrdrt\brdrs\brdrw10\brdrcf15 \clbrdrl\brdrs\brdrw10\brdrcf15 \clbrdrb\brdrs\brdrw10\brdrcf15 \clbrdrr \brdrs\brdrw10\brdrcf15 \cltxlrtb \cellx8748
+\pard \widctlpar\intbl\adjustright
+{{\i linear} \cell }{velocity in mm/s values range from -500 -> 500 of right wheel \cell }
+{\row }
+\trowd \trgaph108\trleft426\tblind426\trbrdrt\brdrs\brdrw10\brdrcf15 \trbrdrl\brdrs\brdrw10\brdrcf15 \trbrdrb\brdrs\brdrw10\brdrcf15 \trbrdrr\brdrs\brdrw10\brdrcf15 \trbrdrh\brdrs\brdrw10\brdrcf15 \trbrdrv\brdrs\brdrw10\brdrcf15 
+\clvertalt\clbrdrt\brdrs\brdrw10\brdrcf15 \clbrdrl\brdrs\brdrw10\brdrcf15 \clbrdrb\brdrs\brdrw10\brdrcf15 \clbrdrr \brdrs\brdrw10\brdrcf15 \cltxlrtb \cellx2187
+\clvertalt\clbrdrt\brdrs\brdrw10\brdrcf15 \clbrdrl\brdrs\brdrw10\brdrcf15 \clbrdrb\brdrs\brdrw10\brdrcf15 \clbrdrr \brdrs\brdrw10\brdrcf15 \cltxlrtb \cellx8748
+\pard \widctlpar\intbl\adjustright
+{{\i linear} \cell }{velocity in mm/s values range from -500 -> 500 of left wheel \cell }
+{\row }
+}
+}{
+Definition at line 316 of file open_interface.c.}\par
+}
+{\xe \v oi_update\:open_interface.h}
+{\xe \v open_interface.h\:oi_update}
+\pard\plain \s4\sb240\sa60\keepn\widctlpar\adjustright \b\f1\fs20\cgrid {
+{\b 
+void oi_update ({\b oi_t} *  {\i self})}}
+\par
+{\bkmkstart AAAAAAAAKH}
+{\bkmkend AAAAAAAAKH}
+{
+\pard\plain \s51\li360\sa60\sb30\qj\widctlpar\qj\adjustright \fs20\cgrid 
+\par
+{
+{\s17\sa60\sb30\widctlpar\qj \fs22\cgrid 
+Update sensor data. }}\par
+{\s17\sa60\sb30\widctlpar\qj \fs22\cgrid 
+Update sensor data. \par
+}{
+Definition at line 169 of file open_interface.c.}\par
+}
+\par \pard\plain 
+
+\pard\plain \sect\sbkpage
+\s2\sb240\sa60\keepn\widctlpar\adjustright \b\f1\fs28\kerning28\cgrid 
+\pard\plain \s2\sb240\sa60\keepn\widctlpar\adjustright \b\f1\fs28\kerning28\cgrid 
+C:/Users/DonsterLaptop/Documents/Robot288/cpre288_generalpurposeautomatedrobot/Robot/Utils/Sound.c File Reference\par \pard\plain 
+{\tc\tcl2 \v C:/Users/DonsterLaptop/Documents/Robot288/cpre288_generalpurposeautomatedrobot/Robot/Utils/Sound.c}
+{\xe \v C:/Users/DonsterLaptop/Documents/Robot288/cpre288_generalpurposeautomatedrobot/Robot/Utils/Sound.c}
+{\bkmkstart AAAAAAAAKI}
+{\bkmkend AAAAAAAAKI}
+\par
+{
+{\s17\sa60\sb30\widctlpar\qj \fs22\cgrid 
+Library of functions for playing sound. }}\par
+{
+\pard\plain \s18\widctlpar\fs22\cgrid {\f2 #include <Utils/open_interface.h>}\par
+}
+\pard\plain \s3\sb240\sa60\keepn\widctlpar\adjustright \b\f1\cgrid 
+Functions\par
+\pard\plain 
+
+{
+\pard\plain \s80\fi-360\li360\widctlpar\jclisttab\tx360{\*\pn \pnlvlbody\ilvl0\ls1\pnrnot0\pndec }\ls1\adjustright \fs20\cgrid 
+void {\b playSong} ()\par
+}
+{\pard\widctlpar\brdrb\brdrs\brdrw5\brsp20 \adjustright \par}
+\pard\plain \s3\sb240\sa60\keepn\widctlpar\adjustright \b\f1\cgrid 
+Detailed Description\par
+\pard\plain 
+{
+\pard\plain \s17\sa60\sb30\widctlpar\qj \fs22\cgrid {\s17\sa60\sb30\widctlpar\qj \fs22\cgrid 
+Library of functions for playing sound. \par
+}{\s17\sa60\sb30\widctlpar\qj \fs22\cgrid 
+\par
+{{\s5\sb90\sa30\keepn\widctlpar\adjustright \b\f1\fs20\cgrid 
+Author:\par}\pard\plain \s61\li360\widctlpar\ql\adjustright \fs20\cgrid Quentin Urbanowicz \par
+Rene Chavez \par
+Peyton Sher \par
+Don Kieu\par
+}{{\s5\sb90\sa30\keepn\widctlpar\adjustright \b\f1\fs20\cgrid 
+Date:\par}\pard\plain \s61\li360\widctlpar\ql\adjustright \fs20\cgrid 2018-11-27 \par
+}}}
+{\pard\widctlpar\brdrb\brdrs\brdrw5\brsp20 \adjustright \par}
+\pard\plain \s3\sb240\sa60\keepn\widctlpar\adjustright \b\f1\cgrid 
+Function Documentation\par
+\pard\plain 
+{\xe \v playSong\:Sound.c}
+{\xe \v Sound.c\:playSong}
+\pard\plain \s4\sb240\sa60\keepn\widctlpar\adjustright \b\f1\fs20\cgrid {
+{\b 
+void playSong ()}}
+\par
+{\bkmkstart AAAAAAAAKJ}
+{\bkmkend AAAAAAAAKJ}
+{
+\pard\plain \s51\li360\sa60\sb30\qj\widctlpar\qj\adjustright \fs20\cgrid 
+{\s17\sa60\sb30\widctlpar\qj \fs22\cgrid 
+Play the Indiana Jones theme song \par
+}{
+Definition at line 16 of file Sound.c.}\par
+}
+\par \pard\plain 
+
+\pard\plain \sect\sbkpage
+\s2\sb240\sa60\keepn\widctlpar\adjustright \b\f1\fs28\kerning28\cgrid 
+\pard\plain \s2\sb240\sa60\keepn\widctlpar\adjustright \b\f1\fs28\kerning28\cgrid 
+C:/Users/DonsterLaptop/Documents/Robot288/cpre288_generalpurposeautomatedrobot/Robot/Utils/Sound.h File Reference\par \pard\plain 
+{\tc\tcl2 \v C:/Users/DonsterLaptop/Documents/Robot288/cpre288_generalpurposeautomatedrobot/Robot/Utils/Sound.h}
+{\xe \v C:/Users/DonsterLaptop/Documents/Robot288/cpre288_generalpurposeautomatedrobot/Robot/Utils/Sound.h}
+{\bkmkstart AAAAAAAAKK}
+{\bkmkend AAAAAAAAKK}
+\par
+{
+{\s17\sa60\sb30\widctlpar\qj \fs22\cgrid 
+Header file for {\b Sound.c}. }}\par
+{
+\pard\plain \s18\widctlpar\fs22\cgrid {\f2 #include <Utils/open_interface.h>}\par
+}
+\pard\plain \s3\sb240\sa60\keepn\widctlpar\adjustright \b\f1\cgrid 
+Functions\par
+\pard\plain 
+
+{
+\pard\plain \s80\fi-360\li360\widctlpar\jclisttab\tx360{\*\pn \pnlvlbody\ilvl0\ls1\pnrnot0\pndec }\ls1\adjustright \fs20\cgrid 
+void {\b playSong} ()\par
+}
+{\pard\widctlpar\brdrb\brdrs\brdrw5\brsp20 \adjustright \par}
+\pard\plain \s3\sb240\sa60\keepn\widctlpar\adjustright \b\f1\cgrid 
+Detailed Description\par
+\pard\plain 
+{
+\pard\plain \s17\sa60\sb30\widctlpar\qj \fs22\cgrid {\s17\sa60\sb30\widctlpar\qj \fs22\cgrid 
+Header file for {\b Sound.c}. \par
+}{\s17\sa60\sb30\widctlpar\qj \fs22\cgrid 
+Library of functions for playing sound.\par
+{{\s5\sb90\sa30\keepn\widctlpar\adjustright \b\f1\fs20\cgrid 
+Author:\par}\pard\plain \s61\li360\widctlpar\ql\adjustright \fs20\cgrid Quentin Urbanowicz \par
+Rene Chavez \par
+Peyton Sher \par
+Don Kieu\par
+}{{\s5\sb90\sa30\keepn\widctlpar\adjustright \b\f1\fs20\cgrid 
+Date:\par}\pard\plain \s61\li360\widctlpar\ql\adjustright \fs20\cgrid 2018-11-27 \par
+}}}
+{\pard\widctlpar\brdrb\brdrs\brdrw5\brsp20 \adjustright \par}
+\pard\plain \s3\sb240\sa60\keepn\widctlpar\adjustright \b\f1\cgrid 
+Function Documentation\par
+\pard\plain 
+{\xe \v playSong\:Sound.h}
+{\xe \v Sound.h\:playSong}
+\pard\plain \s4\sb240\sa60\keepn\widctlpar\adjustright \b\f1\fs20\cgrid {
+{\b 
+void playSong ()}}
+\par
+{\bkmkstart AAAAAAAAKL}
+{\bkmkend AAAAAAAAKL}
+{
+\pard\plain \s51\li360\sa60\sb30\qj\widctlpar\qj\adjustright \fs20\cgrid 
+{\s17\sa60\sb30\widctlpar\qj \fs22\cgrid 
+Play the Indiana Jones theme song \par
+}{
+Definition at line 16 of file Sound.c.}\par
+}
+\par \pard\plain 
+
+\pard\plain \sect\sbkpage
+\s2\sb240\sa60\keepn\widctlpar\adjustright \b\f1\fs28\kerning28\cgrid 
+\pard\plain \s2\sb240\sa60\keepn\widctlpar\adjustright \b\f1\fs28\kerning28\cgrid 
+C:/Users/DonsterLaptop/Documents/Robot288/cpre288_generalpurposeautomatedrobot/Robot/Utils/timer.c File Reference\par \pard\plain 
+{\tc\tcl2 \v C:/Users/DonsterLaptop/Documents/Robot288/cpre288_generalpurposeautomatedrobot/Robot/Utils/timer.c}
+{\xe \v C:/Users/DonsterLaptop/Documents/Robot288/cpre288_generalpurposeautomatedrobot/Robot/Utils/timer.c}
+{\bkmkstart AAAAAAAAKM}
+{\bkmkend AAAAAAAAKM}
+\par
+{
+{\s17\sa60\sb30\widctlpar\qj \fs22\cgrid 
+Library Functions for pause timer. }}\par
+{
+\pard\plain \s18\widctlpar\fs22\cgrid {\f2 #include "Timer.h"}\par
+}
+\pard\plain \s3\sb240\sa60\keepn\widctlpar\adjustright \b\f1\cgrid 
+Functions\par
 \pard\plain 
 
 {
 \pard\plain \s80\fi-360\li360\widctlpar\jclisttab\tx360{\*\pn \pnlvlbody\ilvl0\ls1\pnrnot0\pndec }\ls1\adjustright \fs20\cgrid 
-void {\b playSong} ()\par
+void {\b timer_waitMillis} (uint32_t millis)\par
+\pard\plain \s80\fi-360\li360\widctlpar\jclisttab\tx360{\*\pn \pnlvlbody\ilvl0\ls1\pnrnot0\pndec }\ls1\adjustright \fs20\cgrid 
+
+void {\b timer_waitMicros} (uint16_t micros){\bkmkstart AAAAAAAAKN}
+{\bkmkend AAAAAAAAKN}
+\par
+\pard\plain \s80\fi-360\li360\widctlpar\jclisttab\tx360{\*\pn \pnlvlbody\ilvl0\ls1\pnrnot0\pndec }\ls1\adjustright \fs20\cgrid 
+
+void {\b timer_startTimer} (uint16_t startValue){\bkmkstart AAAAAAAAKO}
+{\bkmkend AAAAAAAAKO}
+\par
+\pard\plain \s80\fi-360\li360\widctlpar\jclisttab\tx360{\*\pn \pnlvlbody\ilvl0\ls1\pnrnot0\pndec }\ls1\adjustright \fs20\cgrid 
+
+void {\b timer_stopTimer} (void){\bkmkstart AAAAAAAAKP}
+{\bkmkend AAAAAAAAKP}
+\par
+\pard\plain \s80\fi-360\li360\widctlpar\jclisttab\tx360{\*\pn \pnlvlbody\ilvl0\ls1\pnrnot0\pndec }\ls1\adjustright \fs20\cgrid 
+
+clock_t {\b timer_startClock} (void){\bkmkstart AAAAAAAAKQ}
+{\bkmkend AAAAAAAAKQ}
+\par
+\pard\plain \s80\fi-360\li360\widctlpar\jclisttab\tx360{\*\pn \pnlvlbody\ilvl0\ls1\pnrnot0\pndec }\ls1\adjustright \fs20\cgrid 
+
+clock_t {\b timer_getClock} (void){\bkmkstart AAAAAAAAKR}
+{\bkmkend AAAAAAAAKR}
+\par
+\pard\plain \s80\fi-360\li360\widctlpar\jclisttab\tx360{\*\pn \pnlvlbody\ilvl0\ls1\pnrnot0\pndec }\ls1\adjustright \fs20\cgrid 
+
+void {\b timer_stopClock} (void){\bkmkstart AAAAAAAAKS}
+{\bkmkend AAAAAAAAKS}
+\par
+}
+\pard\plain \s3\sb240\sa60\keepn\widctlpar\adjustright \b\f1\cgrid 
+Variables\par
+\pard\plain 
+
+{
+\pard\plain \s80\fi-360\li360\widctlpar\jclisttab\tx360{\*\pn \pnlvlbody\ilvl0\ls1\pnrnot0\pndec }\ls1\adjustright \fs20\cgrid 
+
+volatile uint32_t {\b _timer_ticks}{\bkmkstart AAAAAAAAKT}
+{\bkmkend AAAAAAAAKT}
+\par
 }
 {\pard\widctlpar\brdrb\brdrs\brdrw5\brsp20 \adjustright \par}
 \pard\plain \s3\sb240\sa60\keepn\widctlpar\adjustright \b\f1\cgrid 
@@ -4724,35 +6619,347 @@ Detailed Description\par
 \pard\plain 
 {
 \pard\plain \s17\sa60\sb30\widctlpar\qj \fs22\cgrid {\s17\sa60\sb30\widctlpar\qj \fs22\cgrid 
-Header file for {\b Sound.c}. \par
+Library Functions for pause timer. \par
 }{\s17\sa60\sb30\widctlpar\qj \fs22\cgrid 
-Library of functions for playing sound.\par
+\par
+{{\s5\sb90\sa30\keepn\widctlpar\adjustright \b\f1\fs20\cgrid 
+Author:\par}\pard\plain \s61\li360\widctlpar\ql\adjustright \fs20\cgrid Eric Middleton\par
+}{{\s5\sb90\sa30\keepn\widctlpar\adjustright \b\f1\fs20\cgrid 
+Date:\par}\pard\plain \s61\li360\widctlpar\ql\adjustright \fs20\cgrid 2016-03-03 \par
+}}}
+{\pard\widctlpar\brdrb\brdrs\brdrw5\brsp20 \adjustright \par}
+\pard\plain \s3\sb240\sa60\keepn\widctlpar\adjustright \b\f1\cgrid 
+Function Documentation\par
+\pard\plain 
+{\xe \v timer_waitMillis\:timer.c}
+{\xe \v timer.c\:timer_waitMillis}
+\pard\plain \s4\sb240\sa60\keepn\widctlpar\adjustright \b\f1\fs20\cgrid {
+{\b 
+void timer_waitMillis (uint32_t  {\i millis})}}
+\par
+{\bkmkstart AAAAAAAAKU}
+{\bkmkend AAAAAAAAKU}
+{
+\pard\plain \s51\li360\sa60\sb30\qj\widctlpar\qj\adjustright \fs20\cgrid 
+{\s17\sa60\sb30\widctlpar\qj \fs22\cgrid 
+\par
+}{\s17\sa60\sb30\widctlpar\qj \fs22\cgrid 
+Start timer with period of 1ms\par
+loop until enough milliseconds have passed\par
+wait until the millisecond timer has timed out\par
+Reset the timeout flag\par
+Stop the timer \par
+}{
+Definition at line 15 of file timer.c.}\par
+}
+\par \pard\plain 
+
+\pard\plain \sect\sbkpage
+\s2\sb240\sa60\keepn\widctlpar\adjustright \b\f1\fs28\kerning28\cgrid 
+\pard\plain \s2\sb240\sa60\keepn\widctlpar\adjustright \b\f1\fs28\kerning28\cgrid 
+C:/Users/DonsterLaptop/Documents/Robot288/cpre288_generalpurposeautomatedrobot/Robot/Utils/timer.h File Reference\par \pard\plain 
+{\tc\tcl2 \v C:/Users/DonsterLaptop/Documents/Robot288/cpre288_generalpurposeautomatedrobot/Robot/Utils/timer.h}
+{\xe \v C:/Users/DonsterLaptop/Documents/Robot288/cpre288_generalpurposeautomatedrobot/Robot/Utils/timer.h}
+{\bkmkstart AAAAAAAAKV}
+{\bkmkend AAAAAAAAKV}
+\par
+{
+{\s17\sa60\sb30\widctlpar\qj \fs22\cgrid 
+Header file for {\b timer.c} Library Functions for pause timer. }}\par
+{
+\pard\plain \s18\widctlpar\fs22\cgrid {\f2 #include <stdint.h>}\par
+{\f2 #include <inc/tm4c123gh6pm.h>}\par
+}
+\pard\plain \s3\sb240\sa60\keepn\widctlpar\adjustright \b\f1\cgrid 
+Macros\par
+\pard\plain 
+
+{
+\pard\plain \s80\fi-360\li360\widctlpar\jclisttab\tx360{\*\pn \pnlvlbody\ilvl0\ls1\pnrnot0\pndec }\ls1\adjustright \fs20\cgrid 
+
+#define {\b BIT0}\~ 0x01{\bkmkstart AAAAAAAAKW}
+{\bkmkend AAAAAAAAKW}
+\par
+\pard\plain \s80\fi-360\li360\widctlpar\jclisttab\tx360{\*\pn \pnlvlbody\ilvl0\ls1\pnrnot0\pndec }\ls1\adjustright \fs20\cgrid 
+
+#define {\b BIT1}\~ 0x02{\bkmkstart AAAAAAAAKX}
+{\bkmkend AAAAAAAAKX}
+\par
+\pard\plain \s80\fi-360\li360\widctlpar\jclisttab\tx360{\*\pn \pnlvlbody\ilvl0\ls1\pnrnot0\pndec }\ls1\adjustright \fs20\cgrid 
+
+#define {\b BIT2}\~ 0x04{\bkmkstart AAAAAAAAKY}
+{\bkmkend AAAAAAAAKY}
+\par
+\pard\plain \s80\fi-360\li360\widctlpar\jclisttab\tx360{\*\pn \pnlvlbody\ilvl0\ls1\pnrnot0\pndec }\ls1\adjustright \fs20\cgrid 
+
+#define {\b BIT3}\~ 0x08{\bkmkstart AAAAAAAAKZ}
+{\bkmkend AAAAAAAAKZ}
+\par
+\pard\plain \s80\fi-360\li360\widctlpar\jclisttab\tx360{\*\pn \pnlvlbody\ilvl0\ls1\pnrnot0\pndec }\ls1\adjustright \fs20\cgrid 
+
+#define {\b BIT4}\~ 0x10{\bkmkstart AAAAAAAALA}
+{\bkmkend AAAAAAAALA}
+\par
+\pard\plain \s80\fi-360\li360\widctlpar\jclisttab\tx360{\*\pn \pnlvlbody\ilvl0\ls1\pnrnot0\pndec }\ls1\adjustright \fs20\cgrid 
+
+#define {\b BIT5}\~ 0x20{\bkmkstart AAAAAAAALB}
+{\bkmkend AAAAAAAALB}
+\par
+\pard\plain \s80\fi-360\li360\widctlpar\jclisttab\tx360{\*\pn \pnlvlbody\ilvl0\ls1\pnrnot0\pndec }\ls1\adjustright \fs20\cgrid 
+
+#define {\b BIT6}\~ 0x40{\bkmkstart AAAAAAAALC}
+{\bkmkend AAAAAAAALC}
+\par
+\pard\plain \s80\fi-360\li360\widctlpar\jclisttab\tx360{\*\pn \pnlvlbody\ilvl0\ls1\pnrnot0\pndec }\ls1\adjustright \fs20\cgrid 
+
+#define {\b BIT7}\~ 0x80{\bkmkstart AAAAAAAALD}
+{\bkmkend AAAAAAAALD}
+\par
+}
+\pard\plain \s3\sb240\sa60\keepn\widctlpar\adjustright \b\f1\cgrid 
+Typedefs\par
+\pard\plain 
+
+{
+\pard\plain \s80\fi-360\li360\widctlpar\jclisttab\tx360{\*\pn \pnlvlbody\ilvl0\ls1\pnrnot0\pndec }\ls1\adjustright \fs20\cgrid 
+
+typedef uint32_t {\b clock_t}{\bkmkstart AAAAAAAALE}
+{\bkmkend AAAAAAAALE}
+\par
+}
+\pard\plain \s3\sb240\sa60\keepn\widctlpar\adjustright \b\f1\cgrid 
+Functions\par
+\pard\plain 
+
+{
+\pard\plain \s80\fi-360\li360\widctlpar\jclisttab\tx360{\*\pn \pnlvlbody\ilvl0\ls1\pnrnot0\pndec }\ls1\adjustright \fs20\cgrid 
+void {\b timer_waitMillis} (uint32_t millis)\par
+\pard\plain \s80\fi-360\li360\widctlpar\jclisttab\tx360{\*\pn \pnlvlbody\ilvl0\ls1\pnrnot0\pndec }\ls1\adjustright \fs20\cgrid 
+
+void {\b timer_waitMicros} (uint16_t micros){\bkmkstart AAAAAAAALF}
+{\bkmkend AAAAAAAALF}
+\par
+\pard\plain \s80\fi-360\li360\widctlpar\jclisttab\tx360{\*\pn \pnlvlbody\ilvl0\ls1\pnrnot0\pndec }\ls1\adjustright \fs20\cgrid 
+
+void {\b timer_startTimer} (uint16_t startValue){\bkmkstart AAAAAAAALG}
+{\bkmkend AAAAAAAALG}
+\par
+\pard\plain \s80\fi-360\li360\widctlpar\jclisttab\tx360{\*\pn \pnlvlbody\ilvl0\ls1\pnrnot0\pndec }\ls1\adjustright \fs20\cgrid 
+
+void {\b timer_stopTimer} (void){\bkmkstart AAAAAAAALH}
+{\bkmkend AAAAAAAALH}
+\par
+\pard\plain \s80\fi-360\li360\widctlpar\jclisttab\tx360{\*\pn \pnlvlbody\ilvl0\ls1\pnrnot0\pndec }\ls1\adjustright \fs20\cgrid 
+
+clock_t {\b timer_startClock} (void){\bkmkstart AAAAAAAALI}
+{\bkmkend AAAAAAAALI}
+\par
+\pard\plain \s80\fi-360\li360\widctlpar\jclisttab\tx360{\*\pn \pnlvlbody\ilvl0\ls1\pnrnot0\pndec }\ls1\adjustright \fs20\cgrid 
+
+clock_t {\b timer_getClock} (void){\bkmkstart AAAAAAAALJ}
+{\bkmkend AAAAAAAALJ}
+\par
+\pard\plain \s80\fi-360\li360\widctlpar\jclisttab\tx360{\*\pn \pnlvlbody\ilvl0\ls1\pnrnot0\pndec }\ls1\adjustright \fs20\cgrid 
+
+void {\b timer_stopClock} (void){\bkmkstart AAAAAAAALK}
+{\bkmkend AAAAAAAALK}
+\par
+}
+\pard\plain \s3\sb240\sa60\keepn\widctlpar\adjustright \b\f1\cgrid 
+Variables\par
+\pard\plain 
+
+{
+\pard\plain \s80\fi-360\li360\widctlpar\jclisttab\tx360{\*\pn \pnlvlbody\ilvl0\ls1\pnrnot0\pndec }\ls1\adjustright \fs20\cgrid 
+
+volatile uint32_t {\b _timer_ticks}{\bkmkstart AAAAAAAALL}
+{\bkmkend AAAAAAAALL}
+\par
+}
+{\pard\widctlpar\brdrb\brdrs\brdrw5\brsp20 \adjustright \par}
+\pard\plain \s3\sb240\sa60\keepn\widctlpar\adjustright \b\f1\cgrid 
+Detailed Description\par
+\pard\plain 
+{
+\pard\plain \s17\sa60\sb30\widctlpar\qj \fs22\cgrid {\s17\sa60\sb30\widctlpar\qj \fs22\cgrid 
+Header file for {\b timer.c} Library Functions for pause timer. \par
+}{\s17\sa60\sb30\widctlpar\qj \fs22\cgrid 
+\par
+{{\s5\sb90\sa30\keepn\widctlpar\adjustright \b\f1\fs20\cgrid 
+Author:\par}\pard\plain \s61\li360\widctlpar\ql\adjustright \fs20\cgrid Eric Middleton (ericm)\par
+}{{\s5\sb90\sa30\keepn\widctlpar\adjustright \b\f1\fs20\cgrid 
+Date:\par}\pard\plain \s61\li360\widctlpar\ql\adjustright \fs20\cgrid 2016-03-03 \par
+}}}
+{\pard\widctlpar\brdrb\brdrs\brdrw5\brsp20 \adjustright \par}
+\pard\plain \s3\sb240\sa60\keepn\widctlpar\adjustright \b\f1\cgrid 
+Function Documentation\par
+\pard\plain 
+{\xe \v timer_waitMillis\:timer.h}
+{\xe \v timer.h\:timer_waitMillis}
+\pard\plain \s4\sb240\sa60\keepn\widctlpar\adjustright \b\f1\fs20\cgrid {
+{\b 
+void timer_waitMillis (uint32_t  {\i millis})}}
+\par
+{\bkmkstart AAAAAAAALM}
+{\bkmkend AAAAAAAALM}
+{
+\pard\plain \s51\li360\sa60\sb30\qj\widctlpar\qj\adjustright \fs20\cgrid 
+{\s17\sa60\sb30\widctlpar\qj \fs22\cgrid 
+\par
+}{\s17\sa60\sb30\widctlpar\qj \fs22\cgrid 
+Start timer with period of 1ms\par
+loop until enough milliseconds have passed\par
+wait until the millisecond timer has timed out\par
+Reset the timeout flag\par
+Stop the timer \par
+}{
+Definition at line 15 of file timer.c.}\par
+}
+\par \pard\plain 
+
+\pard\plain \sect\sbkpage
+\s2\sb240\sa60\keepn\widctlpar\adjustright \b\f1\fs28\kerning28\cgrid 
+\pard\plain \s2\sb240\sa60\keepn\widctlpar\adjustright \b\f1\fs28\kerning28\cgrid 
+C:/Users/DonsterLaptop/Documents/Robot288/cpre288_generalpurposeautomatedrobot/Robot/Utils/timer4.c File Reference\par \pard\plain 
+{\tc\tcl2 \v C:/Users/DonsterLaptop/Documents/Robot288/cpre288_generalpurposeautomatedrobot/Robot/Utils/timer4.c}
+{\xe \v C:/Users/DonsterLaptop/Documents/Robot288/cpre288_generalpurposeautomatedrobot/Robot/Utils/timer4.c}
+{\bkmkstart AAAAAAAALN}
+{\bkmkend AAAAAAAALN}
+\par
+{
+{\s17\sa60\sb30\widctlpar\qj \fs22\cgrid 
+Library file for handling a timer interrupt for IR Sensor. }}\par
+{
+\pard\plain \s18\widctlpar\fs22\cgrid {\f2 #include "timer4.h"}\par
+}
+\pard\plain \s3\sb240\sa60\keepn\widctlpar\adjustright \b\f1\cgrid 
+Macros\par
+\pard\plain 
+
+{
+\pard\plain \s80\fi-360\li360\widctlpar\jclisttab\tx360{\*\pn \pnlvlbody\ilvl0\ls1\pnrnot0\pndec }\ls1\adjustright \fs20\cgrid 
+
+#define {\b TIMER4_PRESCALER}\~ 250{\bkmkstart AAAAAAAALO}
+{\bkmkend AAAAAAAALO}
+\par
+\pard\plain \s80\fi-360\li360\widctlpar\jclisttab\tx360{\*\pn \pnlvlbody\ilvl0\ls1\pnrnot0\pndec }\ls1\adjustright \fs20\cgrid 
+
+#define {\b TIMER4A_COUNTS}\~ 9600{\bkmkstart AAAAAAAALP}
+{\bkmkend AAAAAAAALP}
+\par
+\pard\plain \s80\fi-360\li360\widctlpar\jclisttab\tx360{\*\pn \pnlvlbody\ilvl0\ls1\pnrnot0\pndec }\ls1\adjustright \fs20\cgrid 
+
+#define {\b TIMER4B_COUNTS}\~ 19200{\bkmkstart AAAAAAAALQ}
+{\bkmkend AAAAAAAALQ}
+\par
+}
+\pard\plain \s3\sb240\sa60\keepn\widctlpar\adjustright \b\f1\cgrid 
+Functions\par
+\pard\plain 
+
+{
+\pard\plain \s80\fi-360\li360\widctlpar\jclisttab\tx360{\*\pn \pnlvlbody\ilvl0\ls1\pnrnot0\pndec }\ls1\adjustright \fs20\cgrid 
+void {\b clock_timer_init} (void)\par
+}
+{\pard\widctlpar\brdrb\brdrs\brdrw5\brsp20 \adjustright \par}
+\pard\plain \s3\sb240\sa60\keepn\widctlpar\adjustright \b\f1\cgrid 
+Detailed Description\par
+\pard\plain 
+{
+\pard\plain \s17\sa60\sb30\widctlpar\qj \fs22\cgrid {\s17\sa60\sb30\widctlpar\qj \fs22\cgrid 
+Library file for handling a timer interrupt for IR Sensor. \par
+}{\s17\sa60\sb30\widctlpar\qj \fs22\cgrid 
+\par
 {{\s5\sb90\sa30\keepn\widctlpar\adjustright \b\f1\fs20\cgrid 
 Author:\par}\pard\plain \s61\li360\widctlpar\ql\adjustright \fs20\cgrid Quentin Urbanowicz \par
 Rene Chavez \par
 Peyton Sher \par
-Don Kieu\par
+Don Kieu \par
 }{{\s5\sb90\sa30\keepn\widctlpar\adjustright \b\f1\fs20\cgrid 
-Date:\par}\pard\plain \s61\li360\widctlpar\ql\adjustright \fs20\cgrid 2018-11-27 \par
+Date:\par}\pard\plain \s61\li360\widctlpar\ql\adjustright \fs20\cgrid 2018-11-13, 2018-11-27 \par
 }}}
 {\pard\widctlpar\brdrb\brdrs\brdrw5\brsp20 \adjustright \par}
 \pard\plain \s3\sb240\sa60\keepn\widctlpar\adjustright \b\f1\cgrid 
 Function Documentation\par
 \pard\plain 
-{\xe \v playSong\:Sound.h}
-{\xe \v Sound.h\:playSong}
+{\xe \v clock_timer_init\:timer4.c}
+{\xe \v timer4.c\:clock_timer_init}
 \pard\plain \s4\sb240\sa60\keepn\widctlpar\adjustright \b\f1\fs20\cgrid {
 {\b 
-void playSong ()}}
+void clock_timer_init (void )}}
 \par
-{\bkmkstart AAAAAAAAEZ}
-{\bkmkend AAAAAAAAEZ}
+{\bkmkstart AAAAAAAALR}
+{\bkmkend AAAAAAAALR}
 {
 \pard\plain \s51\li360\sa60\sb30\qj\widctlpar\qj\adjustright \fs20\cgrid 
 {\s17\sa60\sb30\widctlpar\qj \fs22\cgrid 
-Play the Indiana Jones theme song \par
+initializes the timer to be used in the ir sensor \par
 }{
-Definition at line 16 of file Sound.c.}\par
+Definition at line 24 of file timer4.c.}\par
+}
+\par \pard\plain 
+
+\pard\plain \sect\sbkpage
+\s2\sb240\sa60\keepn\widctlpar\adjustright \b\f1\fs28\kerning28\cgrid 
+\pard\plain \s2\sb240\sa60\keepn\widctlpar\adjustright \b\f1\fs28\kerning28\cgrid 
+C:/Users/DonsterLaptop/Documents/Robot288/cpre288_generalpurposeautomatedrobot/Robot/Utils/timer4.h File Reference\par \pard\plain 
+{\tc\tcl2 \v C:/Users/DonsterLaptop/Documents/Robot288/cpre288_generalpurposeautomatedrobot/Robot/Utils/timer4.h}
+{\xe \v C:/Users/DonsterLaptop/Documents/Robot288/cpre288_generalpurposeautomatedrobot/Robot/Utils/timer4.h}
+{\bkmkstart AAAAAAAALS}
+{\bkmkend AAAAAAAALS}
+\par
+{
+{\s17\sa60\sb30\widctlpar\qj \fs22\cgrid 
+Header file for handling a timer interrupt for IR Sensor. }}\par
+{
+\pard\plain \s18\widctlpar\fs22\cgrid {\f2 #include <stdint.h>}\par
+{\f2 #include <stdbool.h>}\par
+{\f2 #include <inc/tm4c123gh6pm.h>}\par
+{\f2 #include "driverlib/interrupt.h"}\par
+}
+\pard\plain \s3\sb240\sa60\keepn\widctlpar\adjustright \b\f1\cgrid 
+Functions\par
+\pard\plain 
+
+{
+\pard\plain \s80\fi-360\li360\widctlpar\jclisttab\tx360{\*\pn \pnlvlbody\ilvl0\ls1\pnrnot0\pndec }\ls1\adjustright \fs20\cgrid 
+void {\b clock_timer_init} (void)\par
+}
+{\pard\widctlpar\brdrb\brdrs\brdrw5\brsp20 \adjustright \par}
+\pard\plain \s3\sb240\sa60\keepn\widctlpar\adjustright \b\f1\cgrid 
+Detailed Description\par
+\pard\plain 
+{
+\pard\plain \s17\sa60\sb30\widctlpar\qj \fs22\cgrid {\s17\sa60\sb30\widctlpar\qj \fs22\cgrid 
+Header file for handling a timer interrupt for IR Sensor. \par
+}{\s17\sa60\sb30\widctlpar\qj \fs22\cgrid 
+\par
+{{\s5\sb90\sa30\keepn\widctlpar\adjustright \b\f1\fs20\cgrid 
+Author:\par}\pard\plain \s61\li360\widctlpar\ql\adjustright \fs20\cgrid Quentin Urbanowicz \par
+Rene Chavez \par
+Peyton Sher \par
+Don Kieu \par
+}{{\s5\sb90\sa30\keepn\widctlpar\adjustright \b\f1\fs20\cgrid 
+Date:\par}\pard\plain \s61\li360\widctlpar\ql\adjustright \fs20\cgrid 2018-11-13, 2018-11-27 \par
+}}}
+{\pard\widctlpar\brdrb\brdrs\brdrw5\brsp20 \adjustright \par}
+\pard\plain \s3\sb240\sa60\keepn\widctlpar\adjustright \b\f1\cgrid 
+Function Documentation\par
+\pard\plain 
+{\xe \v clock_timer_init\:timer4.h}
+{\xe \v timer4.h\:clock_timer_init}
+\pard\plain \s4\sb240\sa60\keepn\widctlpar\adjustright \b\f1\fs20\cgrid {
+{\b 
+void clock_timer_init (void )}}
+\par
+{\bkmkstart AAAAAAAALT}
+{\bkmkend AAAAAAAALT}
+{
+\pard\plain \s51\li360\sa60\sb30\qj\widctlpar\qj\adjustright \fs20\cgrid 
+{\s17\sa60\sb30\widctlpar\qj \fs22\cgrid 
+initializes the timer to be used in the ir sensor \par
+}{
+Definition at line 24 of file timer4.c.}\par
 }
 
 \pard\plain \sect\sbkpage
diff --git a/Doxygen/xml/_r_e_a_d_m_e_8md.xml b/Doxygen/xml/_r_e_a_d_m_e_8md.xml
index 7f30b5a3faf95d758ef074fd1476945f05cfaa5d..2945aaf1c3e14e757f5e1bdf0729657007d821e0 100644
--- a/Doxygen/xml/_r_e_a_d_m_e_8md.xml
+++ b/Doxygen/xml/_r_e_a_d_m_e_8md.xml
@@ -89,12 +89,16 @@
 <codeline><highlight class="normal">@subsection<sp/>Acknowledgements</highlight></codeline>
 <codeline><highlight class="normal"><sp/><sp/><sp/><sp/>Code<sp/>that<sp/>we<sp/>didn&apos;t<sp/>write:</highlight></codeline>
 <codeline><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight></codeline>
-<codeline><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>open_interface</highlight></codeline>
-<codeline><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>timer</highlight></codeline>
-<codeline><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>lcd</highlight></codeline>
-<codeline><highlight class="normal"><sp/><sp/><sp/><sp/></highlight></codeline>
+<codeline><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>open_interface.h<sp/>-<sp/>Author:<sp/>Noah<sp/>Bergman</highlight></codeline>
+<codeline><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>open_interface.c<sp/>-<sp/>Author:<sp/>Noah<sp/>Bergman,<sp/>Eric<sp/>Middleton,<sp/>dmlarson</highlight></codeline>
+<codeline><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>timer.h<sp/>-<sp/>Author:<sp/>Eric<sp/>Middleton</highlight></codeline>
+<codeline><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>timer.c<sp/>-<sp/>Author:<sp/>Eric<sp/>Middleton</highlight></codeline>
+<codeline><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>lcd.h<sp/>-<sp/>Author:<sp/>Noah<sp/>Bergman</highlight></codeline>
+<codeline><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>lcd.c<sp/>-<sp/>Author:<sp/>Noah<sp/>Bergman,<sp/>Eric<sp/>Middleton</highlight></codeline>
+<codeline><highlight class="normal"><sp/><sp/><sp/><sp/></highlight></codeline>
+<codeline><highlight class="normal"><sp/><sp/><sp/><sp/>These<sp/>have<sp/>be<sp/>lifted<sp/>from<sp/>the<sp/>labs.</highlight></codeline>
 <codeline><highlight class="normal"><sp/><sp/><sp/><sp/>We<sp/>did<sp/>however,<sp/>made<sp/>some<sp/>modifications<sp/>to<sp/>open_interface<sp/>in<sp/>order</highlight></codeline>
-<codeline><highlight class="normal"><sp/><sp/><sp/><sp/>to<sp/>output<sp/>degrees<sp/>and<sp/>distance<sp/>as<sp/>a<sp/>float.<sp/></highlight></codeline>
+<codeline><highlight class="normal"><sp/><sp/><sp/><sp/>to<sp/>output<sp/>degrees<sp/>as<sp/>a<sp/>float.<sp/></highlight></codeline>
 <codeline></codeline>
 <codeline><highlight class="normal">@subsection<sp/>Bugs</highlight></codeline>
 <codeline><highlight class="normal"><sp/><sp/><sp/><sp/></highlight></codeline>
diff --git a/Doxygen/xml/_sound_8c.xml b/Doxygen/xml/_sound_8c.xml
index f80bd5c0d04a0735a81094661ca6f523ea43d23e..871ef5521d51d3e6d1192efca5ac0ff8ff7d15a8 100644
--- a/Doxygen/xml/_sound_8c.xml
+++ b/Doxygen/xml/_sound_8c.xml
@@ -21,7 +21,7 @@
       </node>
       <node id="337">
         <label>Utils/lcd.h</label>
-        <link refid="lcd_8h_source"/>
+        <link refid="lcd_8h"/>
         <childnode refid="330" relation="include">
         </childnode>
         <childnode refid="331" relation="include">
@@ -38,7 +38,7 @@
       </node>
       <node id="335">
         <label>Utils/Timer.h</label>
-        <link refid="timer_8h_source"/>
+        <link refid="timer_8h"/>
         <childnode refid="331" relation="include">
         </childnode>
         <childnode refid="336" relation="include">
@@ -52,7 +52,7 @@
       </node>
       <node id="329">
         <label>Utils/open_interface.h</label>
-        <link refid="open__interface_8h_source"/>
+        <link refid="open__interface_8h"/>
         <childnode refid="330" relation="include">
         </childnode>
         <childnode refid="331" relation="include">
@@ -107,7 +107,7 @@
 </para>    </detaileddescription>
     <programlisting>
 <codeline lineno="1"></codeline>
-<codeline lineno="14"><highlight class="preprocessor">#include<sp/>&lt;Utils/open_interface.h&gt;</highlight><highlight class="normal"></highlight></codeline>
+<codeline lineno="14"><highlight class="preprocessor">#include<sp/>&lt;<ref refid="open__interface_8h" kindref="compound">Utils/open_interface.h</ref>&gt;</highlight><highlight class="normal"></highlight></codeline>
 <codeline lineno="15"><highlight class="normal"></highlight></codeline>
 <codeline lineno="16" refid="_sound_8h_1a89a739cfb6c248f26551c5ac303b0841" refkind="member"><highlight class="normal"></highlight><highlight class="keywordtype">void</highlight><highlight class="normal"><sp/><ref refid="_sound_8c_1a89a739cfb6c248f26551c5ac303b0841" kindref="member">playSong</ref>()</highlight></codeline>
 <codeline lineno="17"><highlight class="normal">{</highlight></codeline>
@@ -120,9 +120,9 @@
 <codeline lineno="24"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>32<sp/>};</highlight></codeline>
 <codeline lineno="25"><highlight class="normal"></highlight></codeline>
 <codeline lineno="26"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="comment">//<sp/>Load<sp/>the<sp/>song</highlight><highlight class="normal"></highlight></codeline>
-<codeline lineno="27"><highlight class="normal"><sp/><sp/><sp/><sp/>oi_loadSong(1,<sp/>16,<sp/>Notes,<sp/>Dur);</highlight></codeline>
+<codeline lineno="27"><highlight class="normal"><sp/><sp/><sp/><sp/><ref refid="open__interface_8c_1ad945411d8b234cf7c50488a8d9388ff5" kindref="member">oi_loadSong</ref>(1,<sp/>16,<sp/>Notes,<sp/>Dur);</highlight></codeline>
 <codeline lineno="28"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="comment">//<sp/>Play<sp/>the<sp/>song</highlight><highlight class="normal"></highlight></codeline>
-<codeline lineno="29"><highlight class="normal"><sp/><sp/><sp/><sp/>oi_play_song(1);</highlight></codeline>
+<codeline lineno="29"><highlight class="normal"><sp/><sp/><sp/><sp/><ref refid="open__interface_8c_1a353765c4297939ef0390a47ca869af56" kindref="member">oi_play_song</ref>(1);</highlight></codeline>
 <codeline lineno="30"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight></codeline>
 <codeline lineno="31"><highlight class="normal">}</highlight></codeline>
     </programlisting>
diff --git a/Doxygen/xml/_sound_8h.xml b/Doxygen/xml/_sound_8h.xml
index c9c395dd95d342708950e4a130566e7fa9dfc1fe..cf46014d74a3b92b3d21c1d84771f5512e794c82 100644
--- a/Doxygen/xml/_sound_8h.xml
+++ b/Doxygen/xml/_sound_8h.xml
@@ -22,7 +22,7 @@
       </node>
       <node id="350">
         <label>Utils/lcd.h</label>
-        <link refid="lcd_8h_source"/>
+        <link refid="lcd_8h"/>
         <childnode refid="343" relation="include">
         </childnode>
         <childnode refid="344" relation="include">
@@ -39,7 +39,7 @@
       </node>
       <node id="348">
         <label>Utils/Timer.h</label>
-        <link refid="timer_8h_source"/>
+        <link refid="timer_8h"/>
         <childnode refid="344" relation="include">
         </childnode>
         <childnode refid="349" relation="include">
@@ -53,7 +53,7 @@
       </node>
       <node id="342">
         <label>Utils/open_interface.h</label>
-        <link refid="open__interface_8h_source"/>
+        <link refid="open__interface_8h"/>
         <childnode refid="343" relation="include">
         </childnode>
         <childnode refid="344" relation="include">
@@ -85,7 +85,7 @@
     <invincdepgraph>
       <node id="354">
         <label>C:/Users/DonsterLaptop/Documents/Robot288/cpre288_generalpurposeautomatedrobot/Robot/main.c</label>
-        <link refid="main_8c_source"/>
+        <link refid="main_8c"/>
       </node>
       <node id="353">
         <label>C:/Users/DonsterLaptop/Documents/Robot288/cpre288_generalpurposeautomatedrobot/Robot/Utils/Sound.h</label>
@@ -123,7 +123,7 @@
 <codeline lineno="16"><highlight class="preprocessor">#ifndef<sp/>UTILS_SOUND_H_</highlight><highlight class="normal"></highlight></codeline>
 <codeline lineno="17"><highlight class="normal"></highlight><highlight class="preprocessor">#define<sp/>UTILS_SOUND_H_</highlight><highlight class="normal"></highlight></codeline>
 <codeline lineno="18"><highlight class="normal"></highlight></codeline>
-<codeline lineno="19"><highlight class="normal"></highlight><highlight class="preprocessor">#include<sp/>&lt;Utils/open_interface.h&gt;</highlight></codeline>
+<codeline lineno="19"><highlight class="normal"></highlight><highlight class="preprocessor">#include<sp/>&lt;<ref refid="open__interface_8h" kindref="compound">Utils/open_interface.h</ref>&gt;</highlight></codeline>
 <codeline lineno="23"><highlight class="keywordtype">void</highlight><highlight class="normal"><sp/><ref refid="_sound_8h_1a89a739cfb6c248f26551c5ac303b0841" kindref="member">playSong</ref>();</highlight></codeline>
 <codeline lineno="24"><highlight class="normal"></highlight></codeline>
 <codeline lineno="25"><highlight class="normal"></highlight><highlight class="preprocessor">#endif<sp/></highlight><highlight class="comment">/*<sp/>UTILS_SOUND_H_<sp/>*/</highlight><highlight class="preprocessor"></highlight></codeline>
diff --git a/Doxygen/xml/cliff__sensor_8c.xml b/Doxygen/xml/cliff__sensor_8c.xml
index efc512e8a547d5205cc69cf7f3298fa4fb8db601..5dc137f4a4f5d1378529529a1b46d0af0d1c9a9a 100644
--- a/Doxygen/xml/cliff__sensor_8c.xml
+++ b/Doxygen/xml/cliff__sensor_8c.xml
@@ -37,7 +37,7 @@
       </node>
       <node id="183">
         <label>Utils/lcd.h</label>
-        <link refid="lcd_8h_source"/>
+        <link refid="lcd_8h"/>
         <childnode refid="176" relation="include">
         </childnode>
         <childnode refid="177" relation="include">
@@ -54,7 +54,7 @@
       </node>
       <node id="181">
         <label>Utils/Timer.h</label>
-        <link refid="timer_8h_source"/>
+        <link refid="timer_8h"/>
         <childnode refid="177" relation="include">
         </childnode>
         <childnode refid="182" relation="include">
@@ -62,7 +62,7 @@
       </node>
       <node id="175">
         <label>Utils/open_interface.h</label>
-        <link refid="open__interface_8h_source"/>
+        <link refid="open__interface_8h"/>
         <childnode refid="176" relation="include">
         </childnode>
         <childnode refid="177" relation="include">
diff --git a/Doxygen/xml/cliff__sensor_8h.xml b/Doxygen/xml/cliff__sensor_8h.xml
index 0a324ce79d6422f4f1e95ffdc566abe370075292..ab86c13f553ab989629a9d3b76f7fbed12996fdf 100644
--- a/Doxygen/xml/cliff__sensor_8h.xml
+++ b/Doxygen/xml/cliff__sensor_8h.xml
@@ -36,7 +36,7 @@
       </node>
       <node id="196">
         <label>Utils/lcd.h</label>
-        <link refid="lcd_8h_source"/>
+        <link refid="lcd_8h"/>
         <childnode refid="189" relation="include">
         </childnode>
         <childnode refid="190" relation="include">
@@ -53,7 +53,7 @@
       </node>
       <node id="194">
         <label>Utils/Timer.h</label>
-        <link refid="timer_8h_source"/>
+        <link refid="timer_8h"/>
         <childnode refid="190" relation="include">
         </childnode>
         <childnode refid="195" relation="include">
@@ -61,7 +61,7 @@
       </node>
       <node id="188">
         <label>Utils/open_interface.h</label>
-        <link refid="open__interface_8h_source"/>
+        <link refid="open__interface_8h"/>
         <childnode refid="189" relation="include">
         </childnode>
         <childnode refid="190" relation="include">
@@ -111,7 +111,7 @@
       </node>
       <node id="200">
         <label>C:/Users/DonsterLaptop/Documents/Robot288/cpre288_generalpurposeautomatedrobot/Robot/main.c</label>
-        <link refid="main_8c_source"/>
+        <link refid="main_8c"/>
       </node>
     </invincdepgraph>
       <sectiondef kind="enum">
@@ -302,7 +302,7 @@
 <codeline lineno="16"><highlight class="preprocessor">#ifndef<sp/>CLIFF_SENSOR_H_</highlight><highlight class="normal"></highlight></codeline>
 <codeline lineno="17"><highlight class="normal"></highlight><highlight class="preprocessor">#define<sp/>CLIFF_SENSOR_H_</highlight><highlight class="normal"></highlight></codeline>
 <codeline lineno="18"><highlight class="normal"></highlight></codeline>
-<codeline lineno="19"><highlight class="normal"></highlight><highlight class="preprocessor">#include<sp/>&quot;Utils/open_interface.h&quot;</highlight><highlight class="normal"></highlight></codeline>
+<codeline lineno="19"><highlight class="normal"></highlight><highlight class="preprocessor">#include<sp/>&quot;<ref refid="open__interface_8h" kindref="compound">Utils/open_interface.h</ref>&quot;</highlight><highlight class="normal"></highlight></codeline>
 <codeline lineno="20"><highlight class="normal"></highlight><highlight class="preprocessor">#include<sp/>&lt;stdint.h&gt;</highlight><highlight class="normal"></highlight></codeline>
 <codeline lineno="21"><highlight class="normal"></highlight><highlight class="preprocessor">#include<sp/>&lt;inc/tm4c123gh6pm.h&gt;</highlight><highlight class="normal"></highlight></codeline>
 <codeline lineno="22"><highlight class="normal"></highlight></codeline>
diff --git a/Doxygen/xml/indexpage.xml b/Doxygen/xml/indexpage.xml
index d7e86cfee1720dfcfae73abfc46b323478b448ff..f2338155d3235cac6240a686e9a648af05cb75de 100644
--- a/Doxygen/xml/indexpage.xml
+++ b/Doxygen/xml/indexpage.xml
@@ -31,10 +31,13 @@
 </verbatim></para><para>That means the robot bumped into something and it will output which bumper as a 1 or 0 for each bumper.</para><para>The output to the sensor data as a scan is being run is given as: s angle IR_distance Sonic_Distance where angle is the degree that the servo is pointing at. IR_Distance is the distance from which the object is sensed. Sonic_Distance is the distance from which the object is sensed.</para></sect2>
 <sect2 id="index_1Acknowledgements">
 <title>Acknowledgements</title>
-<para>Code that we didn&apos;t write: <verbatim>open_interface
-timer
-lcd
-</verbatim></para><para>We did however, made some modifications to open_interface in order to output degrees and distance as a float.</para></sect2>
+<para>Code that we didn&apos;t write: <verbatim>open_interface.h - Author: Noah Bergman
+open_interface.c - Author: Noah Bergman, Eric Middleton, dmlarson
+timer.h - Author: Eric Middleton
+timer.c - Author: Eric Middleton
+lcd.h - Author: Noah Bergman
+lcd.c - Author: Noah Bergman, Eric Middleton
+</verbatim></para><para>These have be lifted from the labs. We did however, made some modifications to open_interface in order to output degrees as a float.</para></sect2>
 <sect2 id="index_1Bugs">
 <title>Bugs</title>
 <para><verbatim>    -The robot currently registers a boundary prior to registering a zone. So
diff --git a/Doxygen/xml/ir_8c.xml b/Doxygen/xml/ir_8c.xml
index 24bd69cb4e85a98c483763318f273eafe6647bca..e4e180a42eb8dcc9fd2972aba67dcb576f7b6fd5 100644
--- a/Doxygen/xml/ir_8c.xml
+++ b/Doxygen/xml/ir_8c.xml
@@ -39,7 +39,7 @@
       </node>
       <node id="205">
         <label>Utils/timer.h</label>
-        <link refid="timer_8h_source"/>
+        <link refid="timer_8h"/>
         <childnode refid="206" relation="include">
         </childnode>
         <childnode refid="207" relation="include">
@@ -215,7 +215,7 @@
 <codeline lineno="44"><highlight class="normal">{</highlight></codeline>
 <codeline lineno="45"><highlight class="normal"><sp/><sp/><sp/><sp/>SYSCTL_RCGCADC_R<sp/>=<sp/>0x01;<sp/></highlight><highlight class="comment">//<sp/>Enable<sp/>ADC<sp/>clock</highlight><highlight class="normal"></highlight></codeline>
 <codeline lineno="46"><highlight class="normal"><sp/><sp/><sp/><sp/>SYSCTL_RCGCGPIO_R<sp/>|=<sp/>0x02;<sp/></highlight><highlight class="comment">//<sp/>Enable<sp/>ADC<sp/>GPIO<sp/>pin</highlight><highlight class="normal"></highlight></codeline>
-<codeline lineno="47"><highlight class="normal"><sp/><sp/><sp/><sp/>timer_waitMillis(1);</highlight></codeline>
+<codeline lineno="47"><highlight class="normal"><sp/><sp/><sp/><sp/><ref refid="timer_8c_1a7e2a3b4520e885e5e7d40fa87e242a75" kindref="member">timer_waitMillis</ref>(1);</highlight></codeline>
 <codeline lineno="48"><highlight class="normal"><sp/><sp/><sp/><sp/>GPIO_PORTB_AFSEL_R<sp/>&amp;=<sp/>0xFFFFFFFEF;<sp/></highlight><highlight class="comment">//<sp/>Clear<sp/>ADC<sp/>pin<sp/>AFSEL</highlight><highlight class="normal"></highlight></codeline>
 <codeline lineno="49"><highlight class="normal"><sp/><sp/><sp/><sp/>GPIO_PORTB_DIR_R<sp/>&amp;=<sp/>0xFFFFFFFEF;<sp/></highlight><highlight class="comment">//<sp/>Clear<sp/>ADC<sp/>Direction<sp/>pin</highlight><highlight class="normal"></highlight></codeline>
 <codeline lineno="50"><highlight class="normal"><sp/><sp/><sp/><sp/>GPIO_PORTB_DEN_R<sp/>|=<sp/>0x10;<sp/></highlight><highlight class="comment">//<sp/>Enable<sp/>ADC<sp/>pin<sp/>in<sp/>GPIO</highlight><highlight class="normal"></highlight></codeline>
diff --git a/Doxygen/xml/ir_8h.xml b/Doxygen/xml/ir_8h.xml
index 6234c62c8d816421b81b909efa75db057e512189..6272447211e932b83a11eaaf7df274cfe13cceee 100644
--- a/Doxygen/xml/ir_8h.xml
+++ b/Doxygen/xml/ir_8h.xml
@@ -32,7 +32,7 @@
       </node>
       <node id="212">
         <label>Utils/timer.h</label>
-        <link refid="timer_8h_source"/>
+        <link refid="timer_8h"/>
         <childnode refid="213" relation="include">
         </childnode>
         <childnode refid="214" relation="include">
@@ -66,7 +66,7 @@
       </node>
       <node id="219">
         <label>C:/Users/DonsterLaptop/Documents/Robot288/cpre288_generalpurposeautomatedrobot/Robot/main.c</label>
-        <link refid="main_8c_source"/>
+        <link refid="main_8c"/>
       </node>
     </invincdepgraph>
       <sectiondef kind="func">
@@ -163,7 +163,7 @@
 </para>    </detaileddescription>
     <programlisting>
 <codeline lineno="1"></codeline>
-<codeline lineno="16"><highlight class="preprocessor">#include<sp/>&lt;Utils/timer.h&gt;</highlight><highlight class="normal"></highlight></codeline>
+<codeline lineno="16"><highlight class="preprocessor">#include<sp/>&lt;<ref refid="timer_8h" kindref="compound">Utils/timer.h</ref>&gt;</highlight><highlight class="normal"></highlight></codeline>
 <codeline lineno="17"><highlight class="normal"></highlight><highlight class="preprocessor">#include<sp/>&lt;stdint.h&gt;</highlight><highlight class="normal"></highlight></codeline>
 <codeline lineno="18"><highlight class="normal"></highlight><highlight class="preprocessor">#include<sp/>&lt;stdbool.h&gt;</highlight><highlight class="normal"></highlight></codeline>
 <codeline lineno="19"><highlight class="normal"></highlight><highlight class="preprocessor">#include<sp/>&lt;inc/tm4c123gh6pm.h&gt;</highlight><highlight class="normal"></highlight></codeline>
diff --git a/Doxygen/xml/lcd_8c.xml b/Doxygen/xml/lcd_8c.xml
index a6732936f62dfdd5390fea2fd1ba652dea1b987e..89262725a93f566133b6a13af30537631877dcb8 100644
--- a/Doxygen/xml/lcd_8c.xml
+++ b/Doxygen/xml/lcd_8c.xml
@@ -18,7 +18,7 @@
       </node>
       <node id="270">
         <label>lcd.h</label>
-        <link refid="lcd_8h_source"/>
+        <link refid="lcd_8h"/>
         <childnode refid="271" relation="include">
         </childnode>
         <childnode refid="272" relation="include">
@@ -35,7 +35,7 @@
       </node>
       <node id="275">
         <label>timer.h</label>
-        <link refid="timer_8h_source"/>
+        <link refid="timer_8h"/>
         <childnode refid="272" relation="include">
         </childnode>
         <childnode refid="274" relation="include">
@@ -52,12 +52,10 @@
         <briefdescription>
         </briefdescription>
         <detaileddescription>
-<para><ref refid="lcd_8c_source" kindref="compound">lcd.c</ref>: Functions for displaying content on the 4x16 Character LCD Screen</para><para><simplesect kind="author"><para>Noah Bergman, Eric Middleton </para></simplesect>
-<simplesect kind="date"><para>02/29/2016 </para></simplesect>
-</para>        </detaileddescription>
+        </detaileddescription>
         <inbodydescription>
         </inbodydescription>
-        <location file="C:/Users/DonsterLaptop/Documents/Robot288/cpre288_generalpurposeautomatedrobot/Robot/Utils/lcd.c" line="12" column="9" bodyfile="C:/Users/DonsterLaptop/Documents/Robot288/cpre288_generalpurposeautomatedrobot/Robot/Utils/lcd.c" bodystart="12" bodyend="-1"/>
+        <location file="C:/Users/DonsterLaptop/Documents/Robot288/cpre288_generalpurposeautomatedrobot/Robot/Utils/lcd.c" line="14" column="9" bodyfile="C:/Users/DonsterLaptop/Documents/Robot288/cpre288_generalpurposeautomatedrobot/Robot/Utils/lcd.c" bodystart="14" bodyend="-1"/>
       </memberdef>
       <memberdef kind="define" id="lcd_8c_1a601923eba46784638244c1ebf2622a2a" prot="public" static="no">
         <name>BIT1</name>
@@ -68,7 +66,7 @@
         </detaileddescription>
         <inbodydescription>
         </inbodydescription>
-        <location file="C:/Users/DonsterLaptop/Documents/Robot288/cpre288_generalpurposeautomatedrobot/Robot/Utils/lcd.c" line="13" column="9" bodyfile="C:/Users/DonsterLaptop/Documents/Robot288/cpre288_generalpurposeautomatedrobot/Robot/Utils/lcd.c" bodystart="13" bodyend="-1"/>
+        <location file="C:/Users/DonsterLaptop/Documents/Robot288/cpre288_generalpurposeautomatedrobot/Robot/Utils/lcd.c" line="15" column="9" bodyfile="C:/Users/DonsterLaptop/Documents/Robot288/cpre288_generalpurposeautomatedrobot/Robot/Utils/lcd.c" bodystart="15" bodyend="-1"/>
       </memberdef>
       <memberdef kind="define" id="lcd_8c_1a9c9560bccccb00174801c728f1ed1399" prot="public" static="no">
         <name>BIT2</name>
@@ -79,7 +77,7 @@
         </detaileddescription>
         <inbodydescription>
         </inbodydescription>
-        <location file="C:/Users/DonsterLaptop/Documents/Robot288/cpre288_generalpurposeautomatedrobot/Robot/Utils/lcd.c" line="14" column="9" bodyfile="C:/Users/DonsterLaptop/Documents/Robot288/cpre288_generalpurposeautomatedrobot/Robot/Utils/lcd.c" bodystart="14" bodyend="-1"/>
+        <location file="C:/Users/DonsterLaptop/Documents/Robot288/cpre288_generalpurposeautomatedrobot/Robot/Utils/lcd.c" line="16" column="9" bodyfile="C:/Users/DonsterLaptop/Documents/Robot288/cpre288_generalpurposeautomatedrobot/Robot/Utils/lcd.c" bodystart="16" bodyend="-1"/>
       </memberdef>
       <memberdef kind="define" id="lcd_8c_1a8e44574a8a8becc885b05f3bc367ef6a" prot="public" static="no">
         <name>BIT3</name>
@@ -90,7 +88,7 @@
         </detaileddescription>
         <inbodydescription>
         </inbodydescription>
-        <location file="C:/Users/DonsterLaptop/Documents/Robot288/cpre288_generalpurposeautomatedrobot/Robot/Utils/lcd.c" line="15" column="9" bodyfile="C:/Users/DonsterLaptop/Documents/Robot288/cpre288_generalpurposeautomatedrobot/Robot/Utils/lcd.c" bodystart="15" bodyend="-1"/>
+        <location file="C:/Users/DonsterLaptop/Documents/Robot288/cpre288_generalpurposeautomatedrobot/Robot/Utils/lcd.c" line="17" column="9" bodyfile="C:/Users/DonsterLaptop/Documents/Robot288/cpre288_generalpurposeautomatedrobot/Robot/Utils/lcd.c" bodystart="17" bodyend="-1"/>
       </memberdef>
       <memberdef kind="define" id="lcd_8c_1aa731e0b6cf75f4e637ee88959315f5e4" prot="public" static="no">
         <name>BIT4</name>
@@ -101,7 +99,7 @@
         </detaileddescription>
         <inbodydescription>
         </inbodydescription>
-        <location file="C:/Users/DonsterLaptop/Documents/Robot288/cpre288_generalpurposeautomatedrobot/Robot/Utils/lcd.c" line="16" column="9" bodyfile="C:/Users/DonsterLaptop/Documents/Robot288/cpre288_generalpurposeautomatedrobot/Robot/Utils/lcd.c" bodystart="16" bodyend="-1"/>
+        <location file="C:/Users/DonsterLaptop/Documents/Robot288/cpre288_generalpurposeautomatedrobot/Robot/Utils/lcd.c" line="18" column="9" bodyfile="C:/Users/DonsterLaptop/Documents/Robot288/cpre288_generalpurposeautomatedrobot/Robot/Utils/lcd.c" bodystart="18" bodyend="-1"/>
       </memberdef>
       <memberdef kind="define" id="lcd_8c_1ae692bc3df48028ceb1ddc2534a993bb8" prot="public" static="no">
         <name>BIT5</name>
@@ -112,7 +110,7 @@
         </detaileddescription>
         <inbodydescription>
         </inbodydescription>
-        <location file="C:/Users/DonsterLaptop/Documents/Robot288/cpre288_generalpurposeautomatedrobot/Robot/Utils/lcd.c" line="17" column="9" bodyfile="C:/Users/DonsterLaptop/Documents/Robot288/cpre288_generalpurposeautomatedrobot/Robot/Utils/lcd.c" bodystart="17" bodyend="-1"/>
+        <location file="C:/Users/DonsterLaptop/Documents/Robot288/cpre288_generalpurposeautomatedrobot/Robot/Utils/lcd.c" line="19" column="9" bodyfile="C:/Users/DonsterLaptop/Documents/Robot288/cpre288_generalpurposeautomatedrobot/Robot/Utils/lcd.c" bodystart="19" bodyend="-1"/>
       </memberdef>
       <memberdef kind="define" id="lcd_8c_1acc2d074401e2b6322ee8f03476c24677" prot="public" static="no">
         <name>BIT6</name>
@@ -123,7 +121,7 @@
         </detaileddescription>
         <inbodydescription>
         </inbodydescription>
-        <location file="C:/Users/DonsterLaptop/Documents/Robot288/cpre288_generalpurposeautomatedrobot/Robot/Utils/lcd.c" line="18" column="9" bodyfile="C:/Users/DonsterLaptop/Documents/Robot288/cpre288_generalpurposeautomatedrobot/Robot/Utils/lcd.c" bodystart="18" bodyend="-1"/>
+        <location file="C:/Users/DonsterLaptop/Documents/Robot288/cpre288_generalpurposeautomatedrobot/Robot/Utils/lcd.c" line="20" column="9" bodyfile="C:/Users/DonsterLaptop/Documents/Robot288/cpre288_generalpurposeautomatedrobot/Robot/Utils/lcd.c" bodystart="20" bodyend="-1"/>
       </memberdef>
       <memberdef kind="define" id="lcd_8c_1aa6b8f3261ae9e2e1043380c192f7b5f0" prot="public" static="no">
         <name>BIT7</name>
@@ -134,7 +132,7 @@
         </detaileddescription>
         <inbodydescription>
         </inbodydescription>
-        <location file="C:/Users/DonsterLaptop/Documents/Robot288/cpre288_generalpurposeautomatedrobot/Robot/Utils/lcd.c" line="19" column="9" bodyfile="C:/Users/DonsterLaptop/Documents/Robot288/cpre288_generalpurposeautomatedrobot/Robot/Utils/lcd.c" bodystart="19" bodyend="-1"/>
+        <location file="C:/Users/DonsterLaptop/Documents/Robot288/cpre288_generalpurposeautomatedrobot/Robot/Utils/lcd.c" line="21" column="9" bodyfile="C:/Users/DonsterLaptop/Documents/Robot288/cpre288_generalpurposeautomatedrobot/Robot/Utils/lcd.c" bodystart="21" bodyend="-1"/>
       </memberdef>
       <memberdef kind="define" id="lcd_8c_1aaabda7c2722dfdad3fb406e186be4d2d" prot="public" static="no">
         <name>HD_LCD_CLEAR</name>
@@ -145,7 +143,7 @@
         </detaileddescription>
         <inbodydescription>
         </inbodydescription>
-        <location file="C:/Users/DonsterLaptop/Documents/Robot288/cpre288_generalpurposeautomatedrobot/Robot/Utils/lcd.c" line="22" column="9" bodyfile="C:/Users/DonsterLaptop/Documents/Robot288/cpre288_generalpurposeautomatedrobot/Robot/Utils/lcd.c" bodystart="22" bodyend="-1"/>
+        <location file="C:/Users/DonsterLaptop/Documents/Robot288/cpre288_generalpurposeautomatedrobot/Robot/Utils/lcd.c" line="24" column="9" bodyfile="C:/Users/DonsterLaptop/Documents/Robot288/cpre288_generalpurposeautomatedrobot/Robot/Utils/lcd.c" bodystart="24" bodyend="-1"/>
       </memberdef>
       <memberdef kind="define" id="lcd_8c_1a4ef1551f87724c3ac1e449b22bf7d138" prot="public" static="no">
         <name>HD_RETURN_HOME</name>
@@ -156,7 +154,7 @@
         </detaileddescription>
         <inbodydescription>
         </inbodydescription>
-        <location file="C:/Users/DonsterLaptop/Documents/Robot288/cpre288_generalpurposeautomatedrobot/Robot/Utils/lcd.c" line="23" column="9" bodyfile="C:/Users/DonsterLaptop/Documents/Robot288/cpre288_generalpurposeautomatedrobot/Robot/Utils/lcd.c" bodystart="23" bodyend="-1"/>
+        <location file="C:/Users/DonsterLaptop/Documents/Robot288/cpre288_generalpurposeautomatedrobot/Robot/Utils/lcd.c" line="25" column="9" bodyfile="C:/Users/DonsterLaptop/Documents/Robot288/cpre288_generalpurposeautomatedrobot/Robot/Utils/lcd.c" bodystart="25" bodyend="-1"/>
       </memberdef>
       <memberdef kind="define" id="lcd_8c_1a51df3b1bb8cd82859b25c897dfdf2fbb" prot="public" static="no">
         <name>HD_CURSOR_SHIFT_DEC</name>
@@ -167,7 +165,7 @@
         </detaileddescription>
         <inbodydescription>
         </inbodydescription>
-        <location file="C:/Users/DonsterLaptop/Documents/Robot288/cpre288_generalpurposeautomatedrobot/Robot/Utils/lcd.c" line="25" column="9" bodyfile="C:/Users/DonsterLaptop/Documents/Robot288/cpre288_generalpurposeautomatedrobot/Robot/Utils/lcd.c" bodystart="25" bodyend="-1"/>
+        <location file="C:/Users/DonsterLaptop/Documents/Robot288/cpre288_generalpurposeautomatedrobot/Robot/Utils/lcd.c" line="27" column="9" bodyfile="C:/Users/DonsterLaptop/Documents/Robot288/cpre288_generalpurposeautomatedrobot/Robot/Utils/lcd.c" bodystart="27" bodyend="-1"/>
       </memberdef>
       <memberdef kind="define" id="lcd_8c_1a72595f0ec85ae5b90e3bdd46f0c17eb2" prot="public" static="no">
         <name>HD_CURSOR_SHIFT_INC</name>
@@ -178,7 +176,7 @@
         </detaileddescription>
         <inbodydescription>
         </inbodydescription>
-        <location file="C:/Users/DonsterLaptop/Documents/Robot288/cpre288_generalpurposeautomatedrobot/Robot/Utils/lcd.c" line="26" column="9" bodyfile="C:/Users/DonsterLaptop/Documents/Robot288/cpre288_generalpurposeautomatedrobot/Robot/Utils/lcd.c" bodystart="26" bodyend="-1"/>
+        <location file="C:/Users/DonsterLaptop/Documents/Robot288/cpre288_generalpurposeautomatedrobot/Robot/Utils/lcd.c" line="28" column="9" bodyfile="C:/Users/DonsterLaptop/Documents/Robot288/cpre288_generalpurposeautomatedrobot/Robot/Utils/lcd.c" bodystart="28" bodyend="-1"/>
       </memberdef>
       <memberdef kind="define" id="lcd_8c_1a58b0868e2e6ef863c909620296cb0b90" prot="public" static="no">
         <name>HD_DISPLAY_CONTROL</name>
@@ -189,7 +187,7 @@
         </detaileddescription>
         <inbodydescription>
         </inbodydescription>
-        <location file="C:/Users/DonsterLaptop/Documents/Robot288/cpre288_generalpurposeautomatedrobot/Robot/Utils/lcd.c" line="27" column="9" bodyfile="C:/Users/DonsterLaptop/Documents/Robot288/cpre288_generalpurposeautomatedrobot/Robot/Utils/lcd.c" bodystart="27" bodyend="-1"/>
+        <location file="C:/Users/DonsterLaptop/Documents/Robot288/cpre288_generalpurposeautomatedrobot/Robot/Utils/lcd.c" line="29" column="9" bodyfile="C:/Users/DonsterLaptop/Documents/Robot288/cpre288_generalpurposeautomatedrobot/Robot/Utils/lcd.c" bodystart="29" bodyend="-1"/>
       </memberdef>
       <memberdef kind="define" id="lcd_8c_1a311d37e515d8595f0bc9cd66ea9826c3" prot="public" static="no">
         <name>HD_DISPLAY_ON</name>
@@ -200,7 +198,7 @@
         </detaileddescription>
         <inbodydescription>
         </inbodydescription>
-        <location file="C:/Users/DonsterLaptop/Documents/Robot288/cpre288_generalpurposeautomatedrobot/Robot/Utils/lcd.c" line="28" column="9" bodyfile="C:/Users/DonsterLaptop/Documents/Robot288/cpre288_generalpurposeautomatedrobot/Robot/Utils/lcd.c" bodystart="28" bodyend="-1"/>
+        <location file="C:/Users/DonsterLaptop/Documents/Robot288/cpre288_generalpurposeautomatedrobot/Robot/Utils/lcd.c" line="30" column="9" bodyfile="C:/Users/DonsterLaptop/Documents/Robot288/cpre288_generalpurposeautomatedrobot/Robot/Utils/lcd.c" bodystart="30" bodyend="-1"/>
       </memberdef>
       <memberdef kind="define" id="lcd_8c_1aea4c4faf14e470e4305b4d0d52970ce6" prot="public" static="no">
         <name>HD_CURSOR_ON</name>
@@ -211,7 +209,7 @@
         </detaileddescription>
         <inbodydescription>
         </inbodydescription>
-        <location file="C:/Users/DonsterLaptop/Documents/Robot288/cpre288_generalpurposeautomatedrobot/Robot/Utils/lcd.c" line="29" column="9" bodyfile="C:/Users/DonsterLaptop/Documents/Robot288/cpre288_generalpurposeautomatedrobot/Robot/Utils/lcd.c" bodystart="29" bodyend="-1"/>
+        <location file="C:/Users/DonsterLaptop/Documents/Robot288/cpre288_generalpurposeautomatedrobot/Robot/Utils/lcd.c" line="31" column="9" bodyfile="C:/Users/DonsterLaptop/Documents/Robot288/cpre288_generalpurposeautomatedrobot/Robot/Utils/lcd.c" bodystart="31" bodyend="-1"/>
       </memberdef>
       <memberdef kind="define" id="lcd_8c_1a6772c96a092ba214fd9f7ccae9720b38" prot="public" static="no">
         <name>HD_BLINK_ON</name>
@@ -222,7 +220,7 @@
         </detaileddescription>
         <inbodydescription>
         </inbodydescription>
-        <location file="C:/Users/DonsterLaptop/Documents/Robot288/cpre288_generalpurposeautomatedrobot/Robot/Utils/lcd.c" line="30" column="9" bodyfile="C:/Users/DonsterLaptop/Documents/Robot288/cpre288_generalpurposeautomatedrobot/Robot/Utils/lcd.c" bodystart="30" bodyend="-1"/>
+        <location file="C:/Users/DonsterLaptop/Documents/Robot288/cpre288_generalpurposeautomatedrobot/Robot/Utils/lcd.c" line="32" column="9" bodyfile="C:/Users/DonsterLaptop/Documents/Robot288/cpre288_generalpurposeautomatedrobot/Robot/Utils/lcd.c" bodystart="32" bodyend="-1"/>
       </memberdef>
       <memberdef kind="define" id="lcd_8c_1a34ea6729c3f96d0fc4daadfdf8b2d9d7" prot="public" static="no">
         <name>HD_CURSOR_MOVE_LEFT</name>
@@ -233,7 +231,7 @@
         </detaileddescription>
         <inbodydescription>
         </inbodydescription>
-        <location file="C:/Users/DonsterLaptop/Documents/Robot288/cpre288_generalpurposeautomatedrobot/Robot/Utils/lcd.c" line="31" column="9" bodyfile="C:/Users/DonsterLaptop/Documents/Robot288/cpre288_generalpurposeautomatedrobot/Robot/Utils/lcd.c" bodystart="31" bodyend="-1"/>
+        <location file="C:/Users/DonsterLaptop/Documents/Robot288/cpre288_generalpurposeautomatedrobot/Robot/Utils/lcd.c" line="33" column="9" bodyfile="C:/Users/DonsterLaptop/Documents/Robot288/cpre288_generalpurposeautomatedrobot/Robot/Utils/lcd.c" bodystart="33" bodyend="-1"/>
       </memberdef>
       <memberdef kind="define" id="lcd_8c_1a153b3bd178fbca97e5313ff29a640aad" prot="public" static="no">
         <name>HD_CURSOR_MOVE_RIGHT</name>
@@ -244,7 +242,7 @@
         </detaileddescription>
         <inbodydescription>
         </inbodydescription>
-        <location file="C:/Users/DonsterLaptop/Documents/Robot288/cpre288_generalpurposeautomatedrobot/Robot/Utils/lcd.c" line="32" column="9" bodyfile="C:/Users/DonsterLaptop/Documents/Robot288/cpre288_generalpurposeautomatedrobot/Robot/Utils/lcd.c" bodystart="32" bodyend="-1"/>
+        <location file="C:/Users/DonsterLaptop/Documents/Robot288/cpre288_generalpurposeautomatedrobot/Robot/Utils/lcd.c" line="34" column="9" bodyfile="C:/Users/DonsterLaptop/Documents/Robot288/cpre288_generalpurposeautomatedrobot/Robot/Utils/lcd.c" bodystart="34" bodyend="-1"/>
       </memberdef>
       <memberdef kind="define" id="lcd_8c_1a9f297b248deaba17c2476cf6a639f807" prot="public" static="no">
         <name>HD_DISPLAY_SHIFT_LEFT</name>
@@ -255,7 +253,7 @@
         </detaileddescription>
         <inbodydescription>
         </inbodydescription>
-        <location file="C:/Users/DonsterLaptop/Documents/Robot288/cpre288_generalpurposeautomatedrobot/Robot/Utils/lcd.c" line="33" column="9" bodyfile="C:/Users/DonsterLaptop/Documents/Robot288/cpre288_generalpurposeautomatedrobot/Robot/Utils/lcd.c" bodystart="33" bodyend="-1"/>
+        <location file="C:/Users/DonsterLaptop/Documents/Robot288/cpre288_generalpurposeautomatedrobot/Robot/Utils/lcd.c" line="35" column="9" bodyfile="C:/Users/DonsterLaptop/Documents/Robot288/cpre288_generalpurposeautomatedrobot/Robot/Utils/lcd.c" bodystart="35" bodyend="-1"/>
       </memberdef>
       <memberdef kind="define" id="lcd_8c_1a79ed1fe715d9c516a784b53419a16990" prot="public" static="no">
         <name>HD_DISPLAY_SHIFT_RIGHT</name>
@@ -266,7 +264,7 @@
         </detaileddescription>
         <inbodydescription>
         </inbodydescription>
-        <location file="C:/Users/DonsterLaptop/Documents/Robot288/cpre288_generalpurposeautomatedrobot/Robot/Utils/lcd.c" line="34" column="9" bodyfile="C:/Users/DonsterLaptop/Documents/Robot288/cpre288_generalpurposeautomatedrobot/Robot/Utils/lcd.c" bodystart="34" bodyend="-1"/>
+        <location file="C:/Users/DonsterLaptop/Documents/Robot288/cpre288_generalpurposeautomatedrobot/Robot/Utils/lcd.c" line="36" column="9" bodyfile="C:/Users/DonsterLaptop/Documents/Robot288/cpre288_generalpurposeautomatedrobot/Robot/Utils/lcd.c" bodystart="36" bodyend="-1"/>
       </memberdef>
       <memberdef kind="define" id="lcd_8c_1a19693eac3018d3e7800fde141921b812" prot="public" static="no">
         <name>LCD_WIDTH</name>
@@ -277,7 +275,7 @@
         </detaileddescription>
         <inbodydescription>
         </inbodydescription>
-        <location file="C:/Users/DonsterLaptop/Documents/Robot288/cpre288_generalpurposeautomatedrobot/Robot/Utils/lcd.c" line="36" column="9" bodyfile="C:/Users/DonsterLaptop/Documents/Robot288/cpre288_generalpurposeautomatedrobot/Robot/Utils/lcd.c" bodystart="36" bodyend="-1"/>
+        <location file="C:/Users/DonsterLaptop/Documents/Robot288/cpre288_generalpurposeautomatedrobot/Robot/Utils/lcd.c" line="38" column="9" bodyfile="C:/Users/DonsterLaptop/Documents/Robot288/cpre288_generalpurposeautomatedrobot/Robot/Utils/lcd.c" bodystart="38" bodyend="-1"/>
       </memberdef>
       <memberdef kind="define" id="lcd_8c_1a53a8b2a971de4b88047192655a48b651" prot="public" static="no">
         <name>LCD_HEIGHT</name>
@@ -288,7 +286,7 @@
         </detaileddescription>
         <inbodydescription>
         </inbodydescription>
-        <location file="C:/Users/DonsterLaptop/Documents/Robot288/cpre288_generalpurposeautomatedrobot/Robot/Utils/lcd.c" line="37" column="9" bodyfile="C:/Users/DonsterLaptop/Documents/Robot288/cpre288_generalpurposeautomatedrobot/Robot/Utils/lcd.c" bodystart="37" bodyend="-1"/>
+        <location file="C:/Users/DonsterLaptop/Documents/Robot288/cpre288_generalpurposeautomatedrobot/Robot/Utils/lcd.c" line="39" column="9" bodyfile="C:/Users/DonsterLaptop/Documents/Robot288/cpre288_generalpurposeautomatedrobot/Robot/Utils/lcd.c" bodystart="39" bodyend="-1"/>
       </memberdef>
       <memberdef kind="define" id="lcd_8c_1aa9d8a09151949151e9b1d9a3ddff9e4f" prot="public" static="no">
         <name>LCD_TOTAL_CHARS</name>
@@ -299,7 +297,7 @@
         </detaileddescription>
         <inbodydescription>
         </inbodydescription>
-        <location file="C:/Users/DonsterLaptop/Documents/Robot288/cpre288_generalpurposeautomatedrobot/Robot/Utils/lcd.c" line="38" column="9" bodyfile="C:/Users/DonsterLaptop/Documents/Robot288/cpre288_generalpurposeautomatedrobot/Robot/Utils/lcd.c" bodystart="38" bodyend="-1"/>
+        <location file="C:/Users/DonsterLaptop/Documents/Robot288/cpre288_generalpurposeautomatedrobot/Robot/Utils/lcd.c" line="40" column="9" bodyfile="C:/Users/DonsterLaptop/Documents/Robot288/cpre288_generalpurposeautomatedrobot/Robot/Utils/lcd.c" bodystart="40" bodyend="-1"/>
       </memberdef>
       <memberdef kind="define" id="lcd_8c_1a45ed9a99012e698aee49fa9460735928" prot="public" static="no">
         <name>LCD_DDRAM_WRITE</name>
@@ -310,7 +308,7 @@
         </detaileddescription>
         <inbodydescription>
         </inbodydescription>
-        <location file="C:/Users/DonsterLaptop/Documents/Robot288/cpre288_generalpurposeautomatedrobot/Robot/Utils/lcd.c" line="39" column="9" bodyfile="C:/Users/DonsterLaptop/Documents/Robot288/cpre288_generalpurposeautomatedrobot/Robot/Utils/lcd.c" bodystart="39" bodyend="-1"/>
+        <location file="C:/Users/DonsterLaptop/Documents/Robot288/cpre288_generalpurposeautomatedrobot/Robot/Utils/lcd.c" line="41" column="9" bodyfile="C:/Users/DonsterLaptop/Documents/Robot288/cpre288_generalpurposeautomatedrobot/Robot/Utils/lcd.c" bodystart="41" bodyend="-1"/>
       </memberdef>
       <memberdef kind="define" id="lcd_8c_1a6c93cb72e1c48bc08179d4124c4cb2fe" prot="public" static="no">
         <name>LCD_CGRAM_WRITE</name>
@@ -321,7 +319,7 @@
         </detaileddescription>
         <inbodydescription>
         </inbodydescription>
-        <location file="C:/Users/DonsterLaptop/Documents/Robot288/cpre288_generalpurposeautomatedrobot/Robot/Utils/lcd.c" line="40" column="9" bodyfile="C:/Users/DonsterLaptop/Documents/Robot288/cpre288_generalpurposeautomatedrobot/Robot/Utils/lcd.c" bodystart="40" bodyend="-1"/>
+        <location file="C:/Users/DonsterLaptop/Documents/Robot288/cpre288_generalpurposeautomatedrobot/Robot/Utils/lcd.c" line="42" column="9" bodyfile="C:/Users/DonsterLaptop/Documents/Robot288/cpre288_generalpurposeautomatedrobot/Robot/Utils/lcd.c" bodystart="42" bodyend="-1"/>
       </memberdef>
       <memberdef kind="define" id="lcd_8c_1a673b148932ff504cb6b8770a65263037" prot="public" static="no">
         <name>EN_PIN</name>
@@ -332,7 +330,7 @@
         </detaileddescription>
         <inbodydescription>
         </inbodydescription>
-        <location file="C:/Users/DonsterLaptop/Documents/Robot288/cpre288_generalpurposeautomatedrobot/Robot/Utils/lcd.c" line="42" column="9" bodyfile="C:/Users/DonsterLaptop/Documents/Robot288/cpre288_generalpurposeautomatedrobot/Robot/Utils/lcd.c" bodystart="42" bodyend="-1"/>
+        <location file="C:/Users/DonsterLaptop/Documents/Robot288/cpre288_generalpurposeautomatedrobot/Robot/Utils/lcd.c" line="44" column="9" bodyfile="C:/Users/DonsterLaptop/Documents/Robot288/cpre288_generalpurposeautomatedrobot/Robot/Utils/lcd.c" bodystart="44" bodyend="-1"/>
       </memberdef>
       <memberdef kind="define" id="lcd_8c_1ab36f7bcb538b332ae44f0b2b2375b2de" prot="public" static="no">
         <name>RS_PIN</name>
@@ -343,7 +341,7 @@
         </detaileddescription>
         <inbodydescription>
         </inbodydescription>
-        <location file="C:/Users/DonsterLaptop/Documents/Robot288/cpre288_generalpurposeautomatedrobot/Robot/Utils/lcd.c" line="43" column="9" bodyfile="C:/Users/DonsterLaptop/Documents/Robot288/cpre288_generalpurposeautomatedrobot/Robot/Utils/lcd.c" bodystart="43" bodyend="-1"/>
+        <location file="C:/Users/DonsterLaptop/Documents/Robot288/cpre288_generalpurposeautomatedrobot/Robot/Utils/lcd.c" line="45" column="9" bodyfile="C:/Users/DonsterLaptop/Documents/Robot288/cpre288_generalpurposeautomatedrobot/Robot/Utils/lcd.c" bodystart="45" bodyend="-1"/>
       </memberdef>
       <memberdef kind="define" id="lcd_8c_1af1976219619b43405b2ebb8a53feb4a0" prot="public" static="no">
         <name>RW_PIN</name>
@@ -354,7 +352,7 @@
         </detaileddescription>
         <inbodydescription>
         </inbodydescription>
-        <location file="C:/Users/DonsterLaptop/Documents/Robot288/cpre288_generalpurposeautomatedrobot/Robot/Utils/lcd.c" line="44" column="9" bodyfile="C:/Users/DonsterLaptop/Documents/Robot288/cpre288_generalpurposeautomatedrobot/Robot/Utils/lcd.c" bodystart="44" bodyend="-1"/>
+        <location file="C:/Users/DonsterLaptop/Documents/Robot288/cpre288_generalpurposeautomatedrobot/Robot/Utils/lcd.c" line="46" column="9" bodyfile="C:/Users/DonsterLaptop/Documents/Robot288/cpre288_generalpurposeautomatedrobot/Robot/Utils/lcd.c" bodystart="46" bodyend="-1"/>
       </memberdef>
       <memberdef kind="define" id="lcd_8c_1a633642a9a86d32062329c1de46d68faf" prot="public" static="no">
         <name>LCD_PORT_DATA</name>
@@ -365,7 +363,7 @@
         </detaileddescription>
         <inbodydescription>
         </inbodydescription>
-        <location file="C:/Users/DonsterLaptop/Documents/Robot288/cpre288_generalpurposeautomatedrobot/Robot/Utils/lcd.c" line="45" column="9" bodyfile="C:/Users/DonsterLaptop/Documents/Robot288/cpre288_generalpurposeautomatedrobot/Robot/Utils/lcd.c" bodystart="45" bodyend="-1"/>
+        <location file="C:/Users/DonsterLaptop/Documents/Robot288/cpre288_generalpurposeautomatedrobot/Robot/Utils/lcd.c" line="47" column="9" bodyfile="C:/Users/DonsterLaptop/Documents/Robot288/cpre288_generalpurposeautomatedrobot/Robot/Utils/lcd.c" bodystart="47" bodyend="-1"/>
       </memberdef>
       <memberdef kind="define" id="lcd_8c_1a7985d37f6167fb3acde581f3b6cd2005" prot="public" static="no">
         <name>LCD_PORT_CNTRL</name>
@@ -376,7 +374,7 @@
         </detaileddescription>
         <inbodydescription>
         </inbodydescription>
-        <location file="C:/Users/DonsterLaptop/Documents/Robot288/cpre288_generalpurposeautomatedrobot/Robot/Utils/lcd.c" line="46" column="9" bodyfile="C:/Users/DonsterLaptop/Documents/Robot288/cpre288_generalpurposeautomatedrobot/Robot/Utils/lcd.c" bodystart="46" bodyend="-1"/>
+        <location file="C:/Users/DonsterLaptop/Documents/Robot288/cpre288_generalpurposeautomatedrobot/Robot/Utils/lcd.c" line="48" column="9" bodyfile="C:/Users/DonsterLaptop/Documents/Robot288/cpre288_generalpurposeautomatedrobot/Robot/Utils/lcd.c" bodystart="48" bodyend="-1"/>
       </memberdef>
       </sectiondef>
       <sectiondef kind="func">
@@ -395,7 +393,7 @@
 <para>Send Command to LCD - Position, Clear, Etc. </para>        </detaileddescription>
         <inbodydescription>
         </inbodydescription>
-        <location file="C:/Users/DonsterLaptop/Documents/Robot288/cpre288_generalpurposeautomatedrobot/Robot/Utils/lcd.c" line="53" column="1" bodyfile="C:/Users/DonsterLaptop/Documents/Robot288/cpre288_generalpurposeautomatedrobot/Robot/Utils/lcd.c" bodystart="143" bodyend="158"/>
+        <location file="C:/Users/DonsterLaptop/Documents/Robot288/cpre288_generalpurposeautomatedrobot/Robot/Utils/lcd.c" line="55" column="1" bodyfile="C:/Users/DonsterLaptop/Documents/Robot288/cpre288_generalpurposeautomatedrobot/Robot/Utils/lcd.c" bodystart="145" bodyend="160"/>
       </memberdef>
       <memberdef kind="function" id="lcd_8c_1a76885eaba7dbd9863c2ea8bf7113c57f" prot="public" static="no" const="no" explicit="no" inline="no" virt="non-virtual">
         <type>void</type>
@@ -412,7 +410,7 @@
         </detaileddescription>
         <inbodydescription>
         </inbodydescription>
-        <location file="C:/Users/DonsterLaptop/Documents/Robot288/cpre288_generalpurposeautomatedrobot/Robot/Utils/lcd.c" line="56" column="1" bodyfile="C:/Users/DonsterLaptop/Documents/Robot288/cpre288_generalpurposeautomatedrobot/Robot/Utils/lcd.c" bodystart="161" bodyend="174"/>
+        <location file="C:/Users/DonsterLaptop/Documents/Robot288/cpre288_generalpurposeautomatedrobot/Robot/Utils/lcd.c" line="58" column="1" bodyfile="C:/Users/DonsterLaptop/Documents/Robot288/cpre288_generalpurposeautomatedrobot/Robot/Utils/lcd.c" bodystart="163" bodyend="176"/>
       </memberdef>
       <memberdef kind="function" id="lcd_8c_1a6842775ba83d166f02b8fef8bb63b1e6" prot="public" static="no" const="no" explicit="no" inline="no" virt="non-virtual">
         <type>void</type>
@@ -428,7 +426,7 @@
         </detaileddescription>
         <inbodydescription>
         </inbodydescription>
-        <location file="C:/Users/DonsterLaptop/Documents/Robot288/cpre288_generalpurposeautomatedrobot/Robot/Utils/lcd.c" line="58" column="1" bodyfile="C:/Users/DonsterLaptop/Documents/Robot288/cpre288_generalpurposeautomatedrobot/Robot/Utils/lcd.c" bodystart="58" bodyend="111"/>
+        <location file="C:/Users/DonsterLaptop/Documents/Robot288/cpre288_generalpurposeautomatedrobot/Robot/Utils/lcd.c" line="60" column="1" bodyfile="C:/Users/DonsterLaptop/Documents/Robot288/cpre288_generalpurposeautomatedrobot/Robot/Utils/lcd.c" bodystart="60" bodyend="113"/>
       </memberdef>
       <memberdef kind="function" id="lcd_8c_1a1b59543ebb020ae74d6bcdf06e2b6d3b" prot="public" static="no" const="no" explicit="no" inline="no" virt="non-virtual">
         <type>void</type>
@@ -445,7 +443,7 @@
         </detaileddescription>
         <inbodydescription>
         </inbodydescription>
-        <location file="C:/Users/DonsterLaptop/Documents/Robot288/cpre288_generalpurposeautomatedrobot/Robot/Utils/lcd.c" line="114" column="1" bodyfile="C:/Users/DonsterLaptop/Documents/Robot288/cpre288_generalpurposeautomatedrobot/Robot/Utils/lcd.c" bodystart="114" bodyend="129"/>
+        <location file="C:/Users/DonsterLaptop/Documents/Robot288/cpre288_generalpurposeautomatedrobot/Robot/Utils/lcd.c" line="116" column="1" bodyfile="C:/Users/DonsterLaptop/Documents/Robot288/cpre288_generalpurposeautomatedrobot/Robot/Utils/lcd.c" bodystart="116" bodyend="131"/>
       </memberdef>
       <memberdef kind="function" id="lcd_8c_1ac68eefc9e6fce7854f6319aba267ff58" prot="public" static="no" const="no" explicit="no" inline="no" virt="non-virtual">
         <type>void</type>
@@ -463,7 +461,7 @@
         </detaileddescription>
         <inbodydescription>
         </inbodydescription>
-        <location file="C:/Users/DonsterLaptop/Documents/Robot288/cpre288_generalpurposeautomatedrobot/Robot/Utils/lcd.c" line="132" column="1" bodyfile="C:/Users/DonsterLaptop/Documents/Robot288/cpre288_generalpurposeautomatedrobot/Robot/Utils/lcd.c" bodystart="132" bodyend="140"/>
+        <location file="C:/Users/DonsterLaptop/Documents/Robot288/cpre288_generalpurposeautomatedrobot/Robot/Utils/lcd.c" line="134" column="1" bodyfile="C:/Users/DonsterLaptop/Documents/Robot288/cpre288_generalpurposeautomatedrobot/Robot/Utils/lcd.c" bodystart="134" bodyend="142"/>
       </memberdef>
       <memberdef kind="function" id="lcd_8c_1ad235a86241458b1e7b8771688bfdaf9a" prot="public" static="no" const="no" explicit="no" inline="yes" virt="non-virtual">
         <type>void</type>
@@ -479,7 +477,7 @@
         </detaileddescription>
         <inbodydescription>
         </inbodydescription>
-        <location file="C:/Users/DonsterLaptop/Documents/Robot288/cpre288_generalpurposeautomatedrobot/Robot/Utils/lcd.c" line="177" column="1" bodyfile="C:/Users/DonsterLaptop/Documents/Robot288/cpre288_generalpurposeautomatedrobot/Robot/Utils/lcd.c" bodystart="177" bodyend="184"/>
+        <location file="C:/Users/DonsterLaptop/Documents/Robot288/cpre288_generalpurposeautomatedrobot/Robot/Utils/lcd.c" line="179" column="1" bodyfile="C:/Users/DonsterLaptop/Documents/Robot288/cpre288_generalpurposeautomatedrobot/Robot/Utils/lcd.c" bodystart="179" bodyend="186"/>
       </memberdef>
       <memberdef kind="function" id="lcd_8c_1a3aabf730aa4e0393bb5c959583c00a8e" prot="public" static="no" const="no" explicit="no" inline="yes" virt="non-virtual">
         <type>void</type>
@@ -495,7 +493,7 @@
         </detaileddescription>
         <inbodydescription>
         </inbodydescription>
-        <location file="C:/Users/DonsterLaptop/Documents/Robot288/cpre288_generalpurposeautomatedrobot/Robot/Utils/lcd.c" line="187" column="1" bodyfile="C:/Users/DonsterLaptop/Documents/Robot288/cpre288_generalpurposeautomatedrobot/Robot/Utils/lcd.c" bodystart="187" bodyend="190"/>
+        <location file="C:/Users/DonsterLaptop/Documents/Robot288/cpre288_generalpurposeautomatedrobot/Robot/Utils/lcd.c" line="189" column="1" bodyfile="C:/Users/DonsterLaptop/Documents/Robot288/cpre288_generalpurposeautomatedrobot/Robot/Utils/lcd.c" bodystart="189" bodyend="192"/>
       </memberdef>
       <memberdef kind="function" id="lcd_8c_1a22493bdaca08073e3014decb34db38a6" prot="public" static="no" const="no" explicit="no" inline="no" virt="non-virtual">
         <type>void</type>
@@ -512,7 +510,7 @@
 <para>Goto Line on LCD - 0 Indexed. </para>        </detaileddescription>
         <inbodydescription>
         </inbodydescription>
-        <location file="C:/Users/DonsterLaptop/Documents/Robot288/cpre288_generalpurposeautomatedrobot/Robot/Utils/lcd.c" line="193" column="1" bodyfile="C:/Users/DonsterLaptop/Documents/Robot288/cpre288_generalpurposeautomatedrobot/Robot/Utils/lcd.c" bodystart="193" bodyend="202"/>
+        <location file="C:/Users/DonsterLaptop/Documents/Robot288/cpre288_generalpurposeautomatedrobot/Robot/Utils/lcd.c" line="195" column="1" bodyfile="C:/Users/DonsterLaptop/Documents/Robot288/cpre288_generalpurposeautomatedrobot/Robot/Utils/lcd.c" bodystart="195" bodyend="204"/>
       </memberdef>
       <memberdef kind="function" id="lcd_8c_1a785788c99ba018918ffb2db717773fa4" prot="public" static="no" const="no" explicit="no" inline="no" virt="non-virtual">
         <type>void</type>
@@ -533,7 +531,7 @@
         </detaileddescription>
         <inbodydescription>
         </inbodydescription>
-        <location file="C:/Users/DonsterLaptop/Documents/Robot288/cpre288_generalpurposeautomatedrobot/Robot/Utils/lcd.c" line="205" column="1" bodyfile="C:/Users/DonsterLaptop/Documents/Robot288/cpre288_generalpurposeautomatedrobot/Robot/Utils/lcd.c" bodystart="205" bodyend="220"/>
+        <location file="C:/Users/DonsterLaptop/Documents/Robot288/cpre288_generalpurposeautomatedrobot/Robot/Utils/lcd.c" line="207" column="1" bodyfile="C:/Users/DonsterLaptop/Documents/Robot288/cpre288_generalpurposeautomatedrobot/Robot/Utils/lcd.c" bodystart="207" bodyend="222"/>
       </memberdef>
       <memberdef kind="function" id="lcd_8c_1a3c12e31b86febabfc7e62b51e0b9dc30" prot="public" static="no" const="no" explicit="no" inline="no" virt="non-virtual">
         <type>void</type>
@@ -555,278 +553,281 @@
 </para>        </detaileddescription>
         <inbodydescription>
         </inbodydescription>
-        <location file="C:/Users/DonsterLaptop/Documents/Robot288/cpre288_generalpurposeautomatedrobot/Robot/Utils/lcd.c" line="234" column="1" bodyfile="C:/Users/DonsterLaptop/Documents/Robot288/cpre288_generalpurposeautomatedrobot/Robot/Utils/lcd.c" bodystart="234" bodyend="292"/>
+        <location file="C:/Users/DonsterLaptop/Documents/Robot288/cpre288_generalpurposeautomatedrobot/Robot/Utils/lcd.c" line="236" column="1" bodyfile="C:/Users/DonsterLaptop/Documents/Robot288/cpre288_generalpurposeautomatedrobot/Robot/Utils/lcd.c" bodystart="236" bodyend="294"/>
       </memberdef>
       </sectiondef>
     <briefdescription>
-    </briefdescription>
+<para>Functions for displaying content on the 4x16 Character LCD Screen. </para>    </briefdescription>
     <detaileddescription>
-    </detaileddescription>
+<para><simplesect kind="author"><para>Noah Bergman </para></simplesect>
+<simplesect kind="author"><para>Eric Middleton</para></simplesect>
+<simplesect kind="date"><para>2016-02-29 </para></simplesect>
+</para>    </detaileddescription>
     <programlisting>
 <codeline lineno="1"></codeline>
-<codeline lineno="10"><highlight class="preprocessor">#include<sp/>&quot;lcd.h&quot;</highlight><highlight class="normal"></highlight></codeline>
-<codeline lineno="11"><highlight class="normal"></highlight></codeline>
-<codeline lineno="12"><highlight class="normal"></highlight><highlight class="preprocessor">#define<sp/>BIT0<sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>0x01</highlight><highlight class="normal"></highlight></codeline>
-<codeline lineno="13"><highlight class="normal"></highlight><highlight class="preprocessor">#define<sp/>BIT1<sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>0x02</highlight><highlight class="normal"></highlight></codeline>
-<codeline lineno="14"><highlight class="normal"></highlight><highlight class="preprocessor">#define<sp/>BIT2<sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>0x04</highlight><highlight class="normal"></highlight></codeline>
-<codeline lineno="15"><highlight class="normal"></highlight><highlight class="preprocessor">#define<sp/>BIT3<sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>0x08</highlight><highlight class="normal"></highlight></codeline>
-<codeline lineno="16"><highlight class="normal"></highlight><highlight class="preprocessor">#define<sp/>BIT4<sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>0x10</highlight><highlight class="normal"></highlight></codeline>
-<codeline lineno="17"><highlight class="normal"></highlight><highlight class="preprocessor">#define<sp/>BIT5<sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>0x20</highlight><highlight class="normal"></highlight></codeline>
-<codeline lineno="18"><highlight class="normal"></highlight><highlight class="preprocessor">#define<sp/>BIT6<sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>0x40</highlight><highlight class="normal"></highlight></codeline>
-<codeline lineno="19"><highlight class="normal"></highlight><highlight class="preprocessor">#define<sp/>BIT7<sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>0x80</highlight><highlight class="normal"></highlight></codeline>
-<codeline lineno="20"><highlight class="normal"></highlight></codeline>
-<codeline lineno="21"><highlight class="normal"></highlight><highlight class="comment">//Defines<sp/>for<sp/>LCD<sp/>Control<sp/>Commands</highlight><highlight class="normal"></highlight></codeline>
-<codeline lineno="22"><highlight class="normal"></highlight><highlight class="preprocessor">#define<sp/>HD_LCD_CLEAR<sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>0x01</highlight><highlight class="normal"></highlight></codeline>
-<codeline lineno="23"><highlight class="normal"></highlight><highlight class="preprocessor">#define<sp/>HD_RETURN_HOME<sp/><sp/><sp/><sp/><sp/><sp/>0X02</highlight><highlight class="normal"></highlight></codeline>
-<codeline lineno="24"><highlight class="normal"></highlight></codeline>
-<codeline lineno="25"><highlight class="normal"></highlight><highlight class="preprocessor">#define<sp/>HD_CURSOR_SHIFT_DEC<sp/>0X05</highlight><highlight class="normal"></highlight></codeline>
-<codeline lineno="26"><highlight class="normal"></highlight><highlight class="preprocessor">#define<sp/>HD_CURSOR_SHIFT_INC<sp/>0X07</highlight><highlight class="normal"></highlight></codeline>
-<codeline lineno="27"><highlight class="normal"></highlight><highlight class="preprocessor">#define<sp/>HD_DISPLAY_CONTROL<sp/><sp/>3</highlight><highlight class="normal"></highlight></codeline>
-<codeline lineno="28"><highlight class="normal"></highlight><highlight class="preprocessor">#define<sp/>HD_DISPLAY_ON<sp/><sp/><sp/><sp/><sp/><sp/><sp/>0x04</highlight><highlight class="normal"></highlight></codeline>
-<codeline lineno="29"><highlight class="normal"></highlight><highlight class="preprocessor">#define<sp/>HD_CURSOR_ON<sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>0x02</highlight><highlight class="normal"></highlight></codeline>
-<codeline lineno="30"><highlight class="normal"></highlight><highlight class="preprocessor">#define<sp/>HD_BLINK_ON<sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>0x01</highlight><highlight class="normal"></highlight></codeline>
-<codeline lineno="31"><highlight class="normal"></highlight><highlight class="preprocessor">#define<sp/>HD_CURSOR_MOVE_LEFT<sp/>0x10</highlight><highlight class="normal"></highlight></codeline>
-<codeline lineno="32"><highlight class="normal"></highlight><highlight class="preprocessor">#define<sp/>HD_CURSOR_MOVE_RIGHT<sp/>0x14</highlight><highlight class="normal"></highlight></codeline>
-<codeline lineno="33"><highlight class="normal"></highlight><highlight class="preprocessor">#define<sp/>HD_DISPLAY_SHIFT_LEFT<sp/>0x18</highlight><highlight class="normal"></highlight></codeline>
-<codeline lineno="34"><highlight class="normal"></highlight><highlight class="preprocessor">#define<sp/>HD_DISPLAY_SHIFT_RIGHT<sp/>0x1C</highlight><highlight class="normal"></highlight></codeline>
-<codeline lineno="35"><highlight class="normal"></highlight></codeline>
-<codeline lineno="36"><highlight class="normal"></highlight><highlight class="preprocessor">#define<sp/>LCD_WIDTH<sp/>20</highlight><highlight class="normal"></highlight></codeline>
-<codeline lineno="37"><highlight class="normal"></highlight><highlight class="preprocessor">#define<sp/>LCD_HEIGHT<sp/>4</highlight><highlight class="normal"></highlight></codeline>
-<codeline lineno="38"><highlight class="normal"></highlight><highlight class="preprocessor">#define<sp/>LCD_TOTAL_CHARS<sp/>(LCD_WIDTH<sp/>*<sp/>LCD_HEIGHT)</highlight><highlight class="normal"></highlight></codeline>
-<codeline lineno="39"><highlight class="normal"></highlight><highlight class="preprocessor">#define<sp/>LCD_DDRAM_WRITE<sp/>0x80</highlight><highlight class="normal"></highlight></codeline>
-<codeline lineno="40"><highlight class="normal"></highlight><highlight class="preprocessor">#define<sp/>LCD_CGRAM_WRITE<sp/>0x40</highlight><highlight class="normal"></highlight></codeline>
-<codeline lineno="41"><highlight class="normal"></highlight></codeline>
-<codeline lineno="42"><highlight class="normal"></highlight><highlight class="preprocessor">#define<sp/>EN_PIN<sp/><sp/><sp/><sp/><sp/><sp/>BIT2</highlight><highlight class="normal"></highlight></codeline>
-<codeline lineno="43"><highlight class="normal"></highlight><highlight class="preprocessor">#define<sp/>RS_PIN<sp/><sp/><sp/><sp/><sp/><sp/>BIT3</highlight><highlight class="normal"></highlight></codeline>
-<codeline lineno="44"><highlight class="normal"></highlight><highlight class="preprocessor">#define<sp/>RW_PIN<sp/><sp/><sp/><sp/><sp/><sp/>BIT6</highlight><highlight class="normal"></highlight></codeline>
-<codeline lineno="45"><highlight class="normal"></highlight><highlight class="preprocessor">#define<sp/>LCD_PORT_DATA<sp/><sp/><sp/>GPIO_PORTF_DATA_R</highlight><highlight class="normal"></highlight></codeline>
-<codeline lineno="46"><highlight class="normal"></highlight><highlight class="preprocessor">#define<sp/>LCD_PORT_CNTRL<sp/><sp/>GPIO_PORTD_DATA_R</highlight><highlight class="normal"></highlight></codeline>
-<codeline lineno="47"><highlight class="normal"></highlight></codeline>
-<codeline lineno="48"><highlight class="normal"></highlight><highlight class="comment">//TODO:<sp/>Poll<sp/>Busy<sp/>Flag</highlight><highlight class="normal"></highlight></codeline>
+<codeline lineno="12"><highlight class="preprocessor">#include<sp/>&quot;<ref refid="lcd_8h" kindref="compound">lcd.h</ref>&quot;</highlight><highlight class="normal"></highlight></codeline>
+<codeline lineno="13"><highlight class="normal"></highlight></codeline>
+<codeline lineno="14"><highlight class="normal"></highlight><highlight class="preprocessor">#define<sp/>BIT0<sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>0x01</highlight><highlight class="normal"></highlight></codeline>
+<codeline lineno="15"><highlight class="normal"></highlight><highlight class="preprocessor">#define<sp/>BIT1<sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>0x02</highlight><highlight class="normal"></highlight></codeline>
+<codeline lineno="16"><highlight class="normal"></highlight><highlight class="preprocessor">#define<sp/>BIT2<sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>0x04</highlight><highlight class="normal"></highlight></codeline>
+<codeline lineno="17"><highlight class="normal"></highlight><highlight class="preprocessor">#define<sp/>BIT3<sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>0x08</highlight><highlight class="normal"></highlight></codeline>
+<codeline lineno="18"><highlight class="normal"></highlight><highlight class="preprocessor">#define<sp/>BIT4<sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>0x10</highlight><highlight class="normal"></highlight></codeline>
+<codeline lineno="19"><highlight class="normal"></highlight><highlight class="preprocessor">#define<sp/>BIT5<sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>0x20</highlight><highlight class="normal"></highlight></codeline>
+<codeline lineno="20"><highlight class="normal"></highlight><highlight class="preprocessor">#define<sp/>BIT6<sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>0x40</highlight><highlight class="normal"></highlight></codeline>
+<codeline lineno="21"><highlight class="normal"></highlight><highlight class="preprocessor">#define<sp/>BIT7<sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>0x80</highlight><highlight class="normal"></highlight></codeline>
+<codeline lineno="22"><highlight class="normal"></highlight></codeline>
+<codeline lineno="23"><highlight class="normal"></highlight><highlight class="comment">//Defines<sp/>for<sp/>LCD<sp/>Control<sp/>Commands</highlight><highlight class="normal"></highlight></codeline>
+<codeline lineno="24"><highlight class="normal"></highlight><highlight class="preprocessor">#define<sp/>HD_LCD_CLEAR<sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>0x01</highlight><highlight class="normal"></highlight></codeline>
+<codeline lineno="25"><highlight class="normal"></highlight><highlight class="preprocessor">#define<sp/>HD_RETURN_HOME<sp/><sp/><sp/><sp/><sp/><sp/>0X02</highlight><highlight class="normal"></highlight></codeline>
+<codeline lineno="26"><highlight class="normal"></highlight></codeline>
+<codeline lineno="27"><highlight class="normal"></highlight><highlight class="preprocessor">#define<sp/>HD_CURSOR_SHIFT_DEC<sp/>0X05</highlight><highlight class="normal"></highlight></codeline>
+<codeline lineno="28"><highlight class="normal"></highlight><highlight class="preprocessor">#define<sp/>HD_CURSOR_SHIFT_INC<sp/>0X07</highlight><highlight class="normal"></highlight></codeline>
+<codeline lineno="29"><highlight class="normal"></highlight><highlight class="preprocessor">#define<sp/>HD_DISPLAY_CONTROL<sp/><sp/>3</highlight><highlight class="normal"></highlight></codeline>
+<codeline lineno="30"><highlight class="normal"></highlight><highlight class="preprocessor">#define<sp/>HD_DISPLAY_ON<sp/><sp/><sp/><sp/><sp/><sp/><sp/>0x04</highlight><highlight class="normal"></highlight></codeline>
+<codeline lineno="31"><highlight class="normal"></highlight><highlight class="preprocessor">#define<sp/>HD_CURSOR_ON<sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>0x02</highlight><highlight class="normal"></highlight></codeline>
+<codeline lineno="32"><highlight class="normal"></highlight><highlight class="preprocessor">#define<sp/>HD_BLINK_ON<sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>0x01</highlight><highlight class="normal"></highlight></codeline>
+<codeline lineno="33"><highlight class="normal"></highlight><highlight class="preprocessor">#define<sp/>HD_CURSOR_MOVE_LEFT<sp/>0x10</highlight><highlight class="normal"></highlight></codeline>
+<codeline lineno="34"><highlight class="normal"></highlight><highlight class="preprocessor">#define<sp/>HD_CURSOR_MOVE_RIGHT<sp/>0x14</highlight><highlight class="normal"></highlight></codeline>
+<codeline lineno="35"><highlight class="normal"></highlight><highlight class="preprocessor">#define<sp/>HD_DISPLAY_SHIFT_LEFT<sp/>0x18</highlight><highlight class="normal"></highlight></codeline>
+<codeline lineno="36"><highlight class="normal"></highlight><highlight class="preprocessor">#define<sp/>HD_DISPLAY_SHIFT_RIGHT<sp/>0x1C</highlight><highlight class="normal"></highlight></codeline>
+<codeline lineno="37"><highlight class="normal"></highlight></codeline>
+<codeline lineno="38"><highlight class="normal"></highlight><highlight class="preprocessor">#define<sp/>LCD_WIDTH<sp/>20</highlight><highlight class="normal"></highlight></codeline>
+<codeline lineno="39"><highlight class="normal"></highlight><highlight class="preprocessor">#define<sp/>LCD_HEIGHT<sp/>4</highlight><highlight class="normal"></highlight></codeline>
+<codeline lineno="40"><highlight class="normal"></highlight><highlight class="preprocessor">#define<sp/>LCD_TOTAL_CHARS<sp/>(LCD_WIDTH<sp/>*<sp/>LCD_HEIGHT)</highlight><highlight class="normal"></highlight></codeline>
+<codeline lineno="41"><highlight class="normal"></highlight><highlight class="preprocessor">#define<sp/>LCD_DDRAM_WRITE<sp/>0x80</highlight><highlight class="normal"></highlight></codeline>
+<codeline lineno="42"><highlight class="normal"></highlight><highlight class="preprocessor">#define<sp/>LCD_CGRAM_WRITE<sp/>0x40</highlight><highlight class="normal"></highlight></codeline>
+<codeline lineno="43"><highlight class="normal"></highlight></codeline>
+<codeline lineno="44"><highlight class="normal"></highlight><highlight class="preprocessor">#define<sp/>EN_PIN<sp/><sp/><sp/><sp/><sp/><sp/>BIT2</highlight><highlight class="normal"></highlight></codeline>
+<codeline lineno="45"><highlight class="normal"></highlight><highlight class="preprocessor">#define<sp/>RS_PIN<sp/><sp/><sp/><sp/><sp/><sp/>BIT3</highlight><highlight class="normal"></highlight></codeline>
+<codeline lineno="46"><highlight class="normal"></highlight><highlight class="preprocessor">#define<sp/>RW_PIN<sp/><sp/><sp/><sp/><sp/><sp/>BIT6</highlight><highlight class="normal"></highlight></codeline>
+<codeline lineno="47"><highlight class="normal"></highlight><highlight class="preprocessor">#define<sp/>LCD_PORT_DATA<sp/><sp/><sp/>GPIO_PORTF_DATA_R</highlight><highlight class="normal"></highlight></codeline>
+<codeline lineno="48"><highlight class="normal"></highlight><highlight class="preprocessor">#define<sp/>LCD_PORT_CNTRL<sp/><sp/>GPIO_PORTD_DATA_R</highlight><highlight class="normal"></highlight></codeline>
 <codeline lineno="49"><highlight class="normal"></highlight></codeline>
-<codeline lineno="50"><highlight class="normal"></highlight><highlight class="comment">//private<sp/>function<sp/>prototypes</highlight><highlight class="normal"></highlight></codeline>
+<codeline lineno="50"><highlight class="normal"></highlight><highlight class="comment">//TODO:<sp/>Poll<sp/>Busy<sp/>Flag</highlight><highlight class="normal"></highlight></codeline>
 <codeline lineno="51"><highlight class="normal"></highlight></codeline>
-<codeline lineno="53"><highlight class="keywordtype">void</highlight><highlight class="normal"><sp/>lcd_sendCommand(uint8_t<sp/><ref refid="movementcommands_8c_1a91a70b77df95bd8b0830b49a094c2acb" kindref="member">data</ref>);</highlight></codeline>
-<codeline lineno="54"><highlight class="normal"></highlight></codeline>
-<codeline lineno="56"><highlight class="keywordtype">void</highlight><highlight class="normal"><sp/>lcd_sendNibble(uint8_t<sp/>theNibble);</highlight></codeline>
-<codeline lineno="57"><highlight class="normal"></highlight></codeline>
-<codeline lineno="58"><highlight class="normal"></highlight><highlight class="keywordtype">void</highlight><highlight class="normal"><sp/>lcd_init(</highlight><highlight class="keywordtype">void</highlight><highlight class="normal">)</highlight></codeline>
-<codeline lineno="59"><highlight class="normal">{</highlight></codeline>
-<codeline lineno="60"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="comment">//TODO:<sp/>Remove<sp/>waitMillis<sp/>after<sp/>commands<sp/>--<sp/>poll<sp/>busy<sp/>flag<sp/>in<sp/>sendCommand</highlight><highlight class="normal"></highlight></codeline>
-<codeline lineno="61"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="keyword">volatile</highlight><highlight class="normal"><sp/>uint32_t<sp/>i<sp/>=<sp/>0;</highlight></codeline>
-<codeline lineno="62"><highlight class="normal"><sp/><sp/><sp/><sp/>SYSCTL_RCGCGPIO_R<sp/>|=<sp/>BIT3<sp/>|<sp/>BIT5;<sp/></highlight><highlight class="comment">//Turn<sp/>on<sp/>PORTD,<sp/>PORTF<sp/>sys<sp/>clock</highlight><highlight class="normal"></highlight></codeline>
-<codeline lineno="63"><highlight class="normal"></highlight></codeline>
-<codeline lineno="64"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="comment">//Set<sp/>port<sp/>to<sp/>output</highlight><highlight class="normal"></highlight></codeline>
-<codeline lineno="65"><highlight class="normal"><sp/><sp/><sp/><sp/>GPIO_PORTF_DIR_R<sp/>|=<sp/>0x1E;<sp/></highlight><highlight class="comment">//Pins<sp/>1:4</highlight><highlight class="normal"></highlight></codeline>
-<codeline lineno="66"><highlight class="normal"><sp/><sp/><sp/><sp/>GPIO_PORTF_DEN_R<sp/>|=<sp/>0x1E;</highlight></codeline>
-<codeline lineno="67"><highlight class="normal"></highlight></codeline>
-<codeline lineno="68"><highlight class="normal"><sp/><sp/><sp/><sp/>GPIO_PORTD_DIR_R<sp/>|=<sp/>(EN_PIN<sp/>|<sp/>RS_PIN<sp/>|<sp/>RW_PIN);</highlight></codeline>
-<codeline lineno="69"><highlight class="normal"><sp/><sp/><sp/><sp/>GPIO_PORTD_DEN_R<sp/>|=<sp/>(EN_PIN<sp/>|<sp/>RS_PIN<sp/>|<sp/>RW_PIN);</highlight></codeline>
-<codeline lineno="70"><highlight class="normal"></highlight></codeline>
-<codeline lineno="71"><highlight class="normal"><sp/><sp/><sp/><sp/>LCD_PORT_CNTRL<sp/>&amp;=<sp/>~(EN_PIN<sp/>|<sp/>RW_PIN<sp/>|<sp/>RS_PIN);</highlight></codeline>
+<codeline lineno="52"><highlight class="normal"></highlight><highlight class="comment">//private<sp/>function<sp/>prototypes</highlight><highlight class="normal"></highlight></codeline>
+<codeline lineno="53"><highlight class="normal"></highlight></codeline>
+<codeline lineno="55"><highlight class="keywordtype">void</highlight><highlight class="normal"><sp/><ref refid="lcd_8c_1aa212e4f928275b196e6db53fad2c1a5f" kindref="member">lcd_sendCommand</ref>(uint8_t<sp/><ref refid="main_8c_1a91a70b77df95bd8b0830b49a094c2acb" kindref="member">data</ref>);</highlight></codeline>
+<codeline lineno="56"><highlight class="normal"></highlight></codeline>
+<codeline lineno="58"><highlight class="keywordtype">void</highlight><highlight class="normal"><sp/><ref refid="lcd_8c_1a76885eaba7dbd9863c2ea8bf7113c57f" kindref="member">lcd_sendNibble</ref>(uint8_t<sp/>theNibble);</highlight></codeline>
+<codeline lineno="59"><highlight class="normal"></highlight></codeline>
+<codeline lineno="60" refid="lcd_8h_1a6842775ba83d166f02b8fef8bb63b1e6" refkind="member"><highlight class="normal"></highlight><highlight class="keywordtype">void</highlight><highlight class="normal"><sp/><ref refid="lcd_8c_1a6842775ba83d166f02b8fef8bb63b1e6" kindref="member">lcd_init</ref>(</highlight><highlight class="keywordtype">void</highlight><highlight class="normal">)</highlight></codeline>
+<codeline lineno="61"><highlight class="normal">{</highlight></codeline>
+<codeline lineno="62"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="comment">//TODO:<sp/>Remove<sp/>waitMillis<sp/>after<sp/>commands<sp/>--<sp/>poll<sp/>busy<sp/>flag<sp/>in<sp/>sendCommand</highlight><highlight class="normal"></highlight></codeline>
+<codeline lineno="63"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="keyword">volatile</highlight><highlight class="normal"><sp/>uint32_t<sp/>i<sp/>=<sp/>0;</highlight></codeline>
+<codeline lineno="64"><highlight class="normal"><sp/><sp/><sp/><sp/>SYSCTL_RCGCGPIO_R<sp/>|=<sp/>BIT3<sp/>|<sp/>BIT5;<sp/></highlight><highlight class="comment">//Turn<sp/>on<sp/>PORTD,<sp/>PORTF<sp/>sys<sp/>clock</highlight><highlight class="normal"></highlight></codeline>
+<codeline lineno="65"><highlight class="normal"></highlight></codeline>
+<codeline lineno="66"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="comment">//Set<sp/>port<sp/>to<sp/>output</highlight><highlight class="normal"></highlight></codeline>
+<codeline lineno="67"><highlight class="normal"><sp/><sp/><sp/><sp/>GPIO_PORTF_DIR_R<sp/>|=<sp/>0x1E;<sp/></highlight><highlight class="comment">//Pins<sp/>1:4</highlight><highlight class="normal"></highlight></codeline>
+<codeline lineno="68"><highlight class="normal"><sp/><sp/><sp/><sp/>GPIO_PORTF_DEN_R<sp/>|=<sp/>0x1E;</highlight></codeline>
+<codeline lineno="69"><highlight class="normal"></highlight></codeline>
+<codeline lineno="70"><highlight class="normal"><sp/><sp/><sp/><sp/>GPIO_PORTD_DIR_R<sp/>|=<sp/>(EN_PIN<sp/>|<sp/>RS_PIN<sp/>|<sp/>RW_PIN);</highlight></codeline>
+<codeline lineno="71"><highlight class="normal"><sp/><sp/><sp/><sp/>GPIO_PORTD_DEN_R<sp/>|=<sp/>(EN_PIN<sp/>|<sp/>RS_PIN<sp/>|<sp/>RW_PIN);</highlight></codeline>
 <codeline lineno="72"><highlight class="normal"></highlight></codeline>
-<codeline lineno="73"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="comment">//Delay<sp/>40msec<sp/>after<sp/>power<sp/>applied</highlight><highlight class="normal"></highlight></codeline>
-<codeline lineno="74"><highlight class="normal"><sp/><sp/><sp/><sp/>timer_waitMillis(40);</highlight></codeline>
-<codeline lineno="75"><highlight class="normal"></highlight></codeline>
-<codeline lineno="76"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="comment">//Wake<sp/>up</highlight><highlight class="normal"></highlight></codeline>
-<codeline lineno="77"><highlight class="normal"><sp/><sp/><sp/><sp/>lcd_sendNibble(0x03);</highlight></codeline>
-<codeline lineno="78"><highlight class="normal"><sp/><sp/><sp/><sp/>timer_waitMillis(5);</highlight></codeline>
-<codeline lineno="79"><highlight class="normal"></highlight></codeline>
-<codeline lineno="80"><highlight class="normal"><sp/><sp/><sp/><sp/>lcd_sendNibble(0x03);</highlight></codeline>
-<codeline lineno="81"><highlight class="normal"><sp/><sp/><sp/><sp/>timer_waitMicros(160);</highlight></codeline>
-<codeline lineno="82"><highlight class="normal"></highlight></codeline>
-<codeline lineno="83"><highlight class="normal"><sp/><sp/><sp/><sp/>lcd_sendNibble(0x03);</highlight></codeline>
-<codeline lineno="84"><highlight class="normal"><sp/><sp/><sp/><sp/>timer_waitMicros(160);</highlight></codeline>
-<codeline lineno="85"><highlight class="normal"></highlight></codeline>
-<codeline lineno="86"><highlight class="normal"><sp/><sp/><sp/><sp/>lcd_sendNibble(0x02);<sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="comment">//Function<sp/>set<sp/>4<sp/>bit</highlight><highlight class="normal"></highlight></codeline>
-<codeline lineno="87"><highlight class="normal"><sp/><sp/><sp/><sp/>timer_waitMillis(1);</highlight></codeline>
-<codeline lineno="88"><highlight class="normal"></highlight></codeline>
-<codeline lineno="89"><highlight class="normal"><sp/><sp/><sp/><sp/>lcd_sendCommand(0x28);<sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="comment">//Function<sp/>4<sp/>bit<sp/>/<sp/>2<sp/>lines</highlight><highlight class="normal"></highlight></codeline>
-<codeline lineno="90"><highlight class="normal"><sp/><sp/><sp/><sp/>timer_waitMillis(1);</highlight></codeline>
-<codeline lineno="91"><highlight class="normal"></highlight></codeline>
-<codeline lineno="92"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="comment">//lcd_sendCommand(0x10);<sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>//Set<sp/>cursor</highlight><highlight class="normal"></highlight></codeline>
-<codeline lineno="93"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="comment">//timer_waitMillis(1);</highlight><highlight class="normal"></highlight></codeline>
-<codeline lineno="94"><highlight class="normal"></highlight></codeline>
-<codeline lineno="95"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="comment">//lcd_sendCommand(HD_BLINK_ON<sp/>|<sp/>HD_CURSOR_ON<sp/>|<sp/>HD_DISPLAY_ON);</highlight><highlight class="normal"></highlight></codeline>
-<codeline lineno="96"><highlight class="normal"><sp/><sp/><sp/><sp/>lcd_sendCommand(0x0F);</highlight></codeline>
-<codeline lineno="97"><highlight class="normal"><sp/><sp/><sp/><sp/>timer_waitMillis(1);</highlight></codeline>
-<codeline lineno="98"><highlight class="normal"></highlight></codeline>
-<codeline lineno="99"><highlight class="normal"><sp/><sp/><sp/><sp/>lcd_sendCommand(0x28);<sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="comment">//Function<sp/>4<sp/>bit<sp/>/<sp/>2<sp/>lines</highlight><highlight class="normal"></highlight></codeline>
-<codeline lineno="100"><highlight class="normal"><sp/><sp/><sp/><sp/>timer_waitMillis(1);</highlight></codeline>
-<codeline lineno="101"><highlight class="normal"></highlight></codeline>
-<codeline lineno="102"><highlight class="normal"><sp/><sp/><sp/><sp/>lcd_sendCommand(0x06);<sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="comment">//Increment<sp/>Cursor<sp/>/<sp/>No<sp/>Display<sp/>Shift</highlight><highlight class="normal"></highlight></codeline>
-<codeline lineno="103"><highlight class="normal"><sp/><sp/><sp/><sp/>timer_waitMillis(1);</highlight></codeline>
-<codeline lineno="104"><highlight class="normal"></highlight></codeline>
-<codeline lineno="105"><highlight class="normal"><sp/><sp/><sp/><sp/>lcd_sendCommand(0x01);<sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="comment">//Return<sp/>Home</highlight><highlight class="normal"></highlight></codeline>
-<codeline lineno="106"><highlight class="normal"><sp/><sp/><sp/><sp/>timer_waitMillis(1);</highlight></codeline>
-<codeline lineno="107"><highlight class="normal"></highlight></codeline>
-<codeline lineno="108"><highlight class="normal"><sp/><sp/><sp/><sp/>lcd_clear();</highlight></codeline>
-<codeline lineno="109"><highlight class="normal"><sp/><sp/><sp/><sp/>timer_waitMillis(1);</highlight></codeline>
-<codeline lineno="110"><highlight class="normal"></highlight></codeline>
-<codeline lineno="111"><highlight class="normal">}</highlight></codeline>
+<codeline lineno="73"><highlight class="normal"><sp/><sp/><sp/><sp/>LCD_PORT_CNTRL<sp/>&amp;=<sp/>~(EN_PIN<sp/>|<sp/>RW_PIN<sp/>|<sp/>RS_PIN);</highlight></codeline>
+<codeline lineno="74"><highlight class="normal"></highlight></codeline>
+<codeline lineno="75"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="comment">//Delay<sp/>40msec<sp/>after<sp/>power<sp/>applied</highlight><highlight class="normal"></highlight></codeline>
+<codeline lineno="76"><highlight class="normal"><sp/><sp/><sp/><sp/><ref refid="timer_8c_1a7e2a3b4520e885e5e7d40fa87e242a75" kindref="member">timer_waitMillis</ref>(40);</highlight></codeline>
+<codeline lineno="77"><highlight class="normal"></highlight></codeline>
+<codeline lineno="78"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="comment">//Wake<sp/>up</highlight><highlight class="normal"></highlight></codeline>
+<codeline lineno="79"><highlight class="normal"><sp/><sp/><sp/><sp/><ref refid="lcd_8c_1a76885eaba7dbd9863c2ea8bf7113c57f" kindref="member">lcd_sendNibble</ref>(0x03);</highlight></codeline>
+<codeline lineno="80"><highlight class="normal"><sp/><sp/><sp/><sp/><ref refid="timer_8c_1a7e2a3b4520e885e5e7d40fa87e242a75" kindref="member">timer_waitMillis</ref>(5);</highlight></codeline>
+<codeline lineno="81"><highlight class="normal"></highlight></codeline>
+<codeline lineno="82"><highlight class="normal"><sp/><sp/><sp/><sp/><ref refid="lcd_8c_1a76885eaba7dbd9863c2ea8bf7113c57f" kindref="member">lcd_sendNibble</ref>(0x03);</highlight></codeline>
+<codeline lineno="83"><highlight class="normal"><sp/><sp/><sp/><sp/>timer_waitMicros(160);</highlight></codeline>
+<codeline lineno="84"><highlight class="normal"></highlight></codeline>
+<codeline lineno="85"><highlight class="normal"><sp/><sp/><sp/><sp/><ref refid="lcd_8c_1a76885eaba7dbd9863c2ea8bf7113c57f" kindref="member">lcd_sendNibble</ref>(0x03);</highlight></codeline>
+<codeline lineno="86"><highlight class="normal"><sp/><sp/><sp/><sp/>timer_waitMicros(160);</highlight></codeline>
+<codeline lineno="87"><highlight class="normal"></highlight></codeline>
+<codeline lineno="88"><highlight class="normal"><sp/><sp/><sp/><sp/><ref refid="lcd_8c_1a76885eaba7dbd9863c2ea8bf7113c57f" kindref="member">lcd_sendNibble</ref>(0x02);<sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="comment">//Function<sp/>set<sp/>4<sp/>bit</highlight><highlight class="normal"></highlight></codeline>
+<codeline lineno="89"><highlight class="normal"><sp/><sp/><sp/><sp/><ref refid="timer_8c_1a7e2a3b4520e885e5e7d40fa87e242a75" kindref="member">timer_waitMillis</ref>(1);</highlight></codeline>
+<codeline lineno="90"><highlight class="normal"></highlight></codeline>
+<codeline lineno="91"><highlight class="normal"><sp/><sp/><sp/><sp/><ref refid="lcd_8c_1aa212e4f928275b196e6db53fad2c1a5f" kindref="member">lcd_sendCommand</ref>(0x28);<sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="comment">//Function<sp/>4<sp/>bit<sp/>/<sp/>2<sp/>lines</highlight><highlight class="normal"></highlight></codeline>
+<codeline lineno="92"><highlight class="normal"><sp/><sp/><sp/><sp/><ref refid="timer_8c_1a7e2a3b4520e885e5e7d40fa87e242a75" kindref="member">timer_waitMillis</ref>(1);</highlight></codeline>
+<codeline lineno="93"><highlight class="normal"></highlight></codeline>
+<codeline lineno="94"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="comment">//lcd_sendCommand(0x10);<sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>//Set<sp/>cursor</highlight><highlight class="normal"></highlight></codeline>
+<codeline lineno="95"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="comment">//timer_waitMillis(1);</highlight><highlight class="normal"></highlight></codeline>
+<codeline lineno="96"><highlight class="normal"></highlight></codeline>
+<codeline lineno="97"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="comment">//lcd_sendCommand(HD_BLINK_ON<sp/>|<sp/>HD_CURSOR_ON<sp/>|<sp/>HD_DISPLAY_ON);</highlight><highlight class="normal"></highlight></codeline>
+<codeline lineno="98"><highlight class="normal"><sp/><sp/><sp/><sp/><ref refid="lcd_8c_1aa212e4f928275b196e6db53fad2c1a5f" kindref="member">lcd_sendCommand</ref>(0x0F);</highlight></codeline>
+<codeline lineno="99"><highlight class="normal"><sp/><sp/><sp/><sp/><ref refid="timer_8c_1a7e2a3b4520e885e5e7d40fa87e242a75" kindref="member">timer_waitMillis</ref>(1);</highlight></codeline>
+<codeline lineno="100"><highlight class="normal"></highlight></codeline>
+<codeline lineno="101"><highlight class="normal"><sp/><sp/><sp/><sp/><ref refid="lcd_8c_1aa212e4f928275b196e6db53fad2c1a5f" kindref="member">lcd_sendCommand</ref>(0x28);<sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="comment">//Function<sp/>4<sp/>bit<sp/>/<sp/>2<sp/>lines</highlight><highlight class="normal"></highlight></codeline>
+<codeline lineno="102"><highlight class="normal"><sp/><sp/><sp/><sp/><ref refid="timer_8c_1a7e2a3b4520e885e5e7d40fa87e242a75" kindref="member">timer_waitMillis</ref>(1);</highlight></codeline>
+<codeline lineno="103"><highlight class="normal"></highlight></codeline>
+<codeline lineno="104"><highlight class="normal"><sp/><sp/><sp/><sp/><ref refid="lcd_8c_1aa212e4f928275b196e6db53fad2c1a5f" kindref="member">lcd_sendCommand</ref>(0x06);<sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="comment">//Increment<sp/>Cursor<sp/>/<sp/>No<sp/>Display<sp/>Shift</highlight><highlight class="normal"></highlight></codeline>
+<codeline lineno="105"><highlight class="normal"><sp/><sp/><sp/><sp/><ref refid="timer_8c_1a7e2a3b4520e885e5e7d40fa87e242a75" kindref="member">timer_waitMillis</ref>(1);</highlight></codeline>
+<codeline lineno="106"><highlight class="normal"></highlight></codeline>
+<codeline lineno="107"><highlight class="normal"><sp/><sp/><sp/><sp/><ref refid="lcd_8c_1aa212e4f928275b196e6db53fad2c1a5f" kindref="member">lcd_sendCommand</ref>(0x01);<sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="comment">//Return<sp/>Home</highlight><highlight class="normal"></highlight></codeline>
+<codeline lineno="108"><highlight class="normal"><sp/><sp/><sp/><sp/><ref refid="timer_8c_1a7e2a3b4520e885e5e7d40fa87e242a75" kindref="member">timer_waitMillis</ref>(1);</highlight></codeline>
+<codeline lineno="109"><highlight class="normal"></highlight></codeline>
+<codeline lineno="110"><highlight class="normal"><sp/><sp/><sp/><sp/><ref refid="lcd_8c_1ad235a86241458b1e7b8771688bfdaf9a" kindref="member">lcd_clear</ref>();</highlight></codeline>
+<codeline lineno="111"><highlight class="normal"><sp/><sp/><sp/><sp/><ref refid="timer_8c_1a7e2a3b4520e885e5e7d40fa87e242a75" kindref="member">timer_waitMillis</ref>(1);</highlight></codeline>
 <codeline lineno="112"><highlight class="normal"></highlight></codeline>
-<codeline lineno="114"><highlight class="keywordtype">void</highlight><highlight class="normal"><sp/>lcd_putc(</highlight><highlight class="keywordtype">char</highlight><highlight class="normal"><sp/><ref refid="movementcommands_8c_1a91a70b77df95bd8b0830b49a094c2acb" kindref="member">data</ref>)</highlight></codeline>
-<codeline lineno="115"><highlight class="normal">{</highlight></codeline>
-<codeline lineno="116"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="comment">//Select<sp/>-<sp/>Send<sp/>Data</highlight><highlight class="normal"></highlight></codeline>
-<codeline lineno="117"><highlight class="normal"><sp/><sp/><sp/><sp/>LCD_PORT_CNTRL<sp/>|=<sp/>RS_PIN;</highlight></codeline>
-<codeline lineno="118"><highlight class="normal"><sp/><sp/><sp/><sp/>LCD_PORT_CNTRL<sp/>&amp;=<sp/>~(RW_PIN);</highlight></codeline>
-<codeline lineno="119"><highlight class="normal"></highlight></codeline>
-<codeline lineno="120"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="comment">//Send<sp/>High<sp/>nibble</highlight><highlight class="normal"></highlight></codeline>
-<codeline lineno="121"><highlight class="normal"><sp/><sp/><sp/><sp/>lcd_sendNibble(<ref refid="movementcommands_8c_1a91a70b77df95bd8b0830b49a094c2acb" kindref="member">data</ref><sp/>&gt;&gt;<sp/>4);</highlight></codeline>
-<codeline lineno="122"><highlight class="normal"></highlight></codeline>
-<codeline lineno="123"><highlight class="normal"><sp/><sp/><sp/><sp/>timer_waitMicros(40);</highlight></codeline>
+<codeline lineno="113"><highlight class="normal">}</highlight></codeline>
+<codeline lineno="114"><highlight class="normal"></highlight></codeline>
+<codeline lineno="116" refid="lcd_8h_1a1b59543ebb020ae74d6bcdf06e2b6d3b" refkind="member"><highlight class="keywordtype">void</highlight><highlight class="normal"><sp/><ref refid="lcd_8c_1a1b59543ebb020ae74d6bcdf06e2b6d3b" kindref="member">lcd_putc</ref>(</highlight><highlight class="keywordtype">char</highlight><highlight class="normal"><sp/><ref refid="main_8c_1a91a70b77df95bd8b0830b49a094c2acb" kindref="member">data</ref>)</highlight></codeline>
+<codeline lineno="117"><highlight class="normal">{</highlight></codeline>
+<codeline lineno="118"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="comment">//Select<sp/>-<sp/>Send<sp/>Data</highlight><highlight class="normal"></highlight></codeline>
+<codeline lineno="119"><highlight class="normal"><sp/><sp/><sp/><sp/>LCD_PORT_CNTRL<sp/>|=<sp/>RS_PIN;</highlight></codeline>
+<codeline lineno="120"><highlight class="normal"><sp/><sp/><sp/><sp/>LCD_PORT_CNTRL<sp/>&amp;=<sp/>~(RW_PIN);</highlight></codeline>
+<codeline lineno="121"><highlight class="normal"></highlight></codeline>
+<codeline lineno="122"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="comment">//Send<sp/>High<sp/>nibble</highlight><highlight class="normal"></highlight></codeline>
+<codeline lineno="123"><highlight class="normal"><sp/><sp/><sp/><sp/><ref refid="lcd_8c_1a76885eaba7dbd9863c2ea8bf7113c57f" kindref="member">lcd_sendNibble</ref>(<ref refid="main_8c_1a91a70b77df95bd8b0830b49a094c2acb" kindref="member">data</ref><sp/>&gt;&gt;<sp/>4);</highlight></codeline>
 <codeline lineno="124"><highlight class="normal"></highlight></codeline>
-<codeline lineno="125"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="comment">//Send<sp/>Lower<sp/>Nibble</highlight><highlight class="normal"></highlight></codeline>
-<codeline lineno="126"><highlight class="normal"><sp/><sp/><sp/><sp/>lcd_sendNibble(<ref refid="movementcommands_8c_1a91a70b77df95bd8b0830b49a094c2acb" kindref="member">data</ref><sp/>&amp;<sp/>0x0F);</highlight></codeline>
-<codeline lineno="127"><highlight class="normal"></highlight></codeline>
-<codeline lineno="128"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="comment">//TODO:<sp/>Poll<sp/>Busy<sp/>flag</highlight><highlight class="normal"></highlight></codeline>
-<codeline lineno="129"><highlight class="normal">}</highlight></codeline>
-<codeline lineno="130"><highlight class="normal"></highlight></codeline>
-<codeline lineno="132"><highlight class="keywordtype">void</highlight><highlight class="normal"><sp/>lcd_puts(</highlight><highlight class="keywordtype">char</highlight><highlight class="normal"><sp/><ref refid="movementcommands_8c_1a91a70b77df95bd8b0830b49a094c2acb" kindref="member">data</ref>[])</highlight></codeline>
-<codeline lineno="133"><highlight class="normal">{</highlight></codeline>
-<codeline lineno="134"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="comment">//While<sp/>not<sp/>equal<sp/>to<sp/>null</highlight><highlight class="normal"></highlight></codeline>
-<codeline lineno="135"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">while</highlight><highlight class="normal"><sp/>(*<ref refid="movementcommands_8c_1a91a70b77df95bd8b0830b49a094c2acb" kindref="member">data</ref><sp/>!=<sp/></highlight><highlight class="charliteral">&apos;\0&apos;</highlight><highlight class="normal">)</highlight></codeline>
-<codeline lineno="136"><highlight class="normal"><sp/><sp/><sp/><sp/>{</highlight></codeline>
-<codeline lineno="137"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>lcd_putc(*<ref refid="movementcommands_8c_1a91a70b77df95bd8b0830b49a094c2acb" kindref="member">data</ref>);</highlight></codeline>
-<codeline lineno="138"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><ref refid="movementcommands_8c_1a91a70b77df95bd8b0830b49a094c2acb" kindref="member">data</ref>++;</highlight></codeline>
-<codeline lineno="139"><highlight class="normal"><sp/><sp/><sp/><sp/>}</highlight></codeline>
-<codeline lineno="140"><highlight class="normal">}</highlight></codeline>
-<codeline lineno="141"><highlight class="normal"></highlight></codeline>
-<codeline lineno="143"><highlight class="keywordtype">void</highlight><highlight class="normal"><sp/>lcd_sendCommand(uint8_t<sp/><ref refid="movementcommands_8c_1a91a70b77df95bd8b0830b49a094c2acb" kindref="member">data</ref>)</highlight></codeline>
-<codeline lineno="144"><highlight class="normal">{</highlight></codeline>
-<codeline lineno="145"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="comment">//Enable<sp/>High</highlight><highlight class="normal"></highlight></codeline>
-<codeline lineno="146"><highlight class="normal"><sp/><sp/><sp/><sp/>LCD_PORT_CNTRL<sp/>|=<sp/>EN_PIN;</highlight></codeline>
-<codeline lineno="147"><highlight class="normal"><sp/><sp/><sp/><sp/>LCD_PORT_CNTRL<sp/>&amp;=<sp/>~(RW_PIN<sp/>|<sp/>RS_PIN);<sp/></highlight><highlight class="comment">//<sp/>Write<sp/>Command</highlight><highlight class="normal"></highlight></codeline>
-<codeline lineno="148"><highlight class="normal"></highlight></codeline>
-<codeline lineno="149"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="comment">//Send<sp/>High<sp/>nibble</highlight><highlight class="normal"></highlight></codeline>
-<codeline lineno="150"><highlight class="normal"><sp/><sp/><sp/><sp/>lcd_sendNibble(<ref refid="movementcommands_8c_1a91a70b77df95bd8b0830b49a094c2acb" kindref="member">data</ref><sp/>&gt;&gt;<sp/>4);</highlight></codeline>
-<codeline lineno="151"><highlight class="normal"></highlight></codeline>
-<codeline lineno="152"><highlight class="normal"><sp/><sp/><sp/><sp/>timer_waitMicros(1);</highlight></codeline>
-<codeline lineno="153"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="comment">//Send<sp/>Lower<sp/>Nibble</highlight><highlight class="normal"></highlight></codeline>
-<codeline lineno="154"><highlight class="normal"><sp/><sp/><sp/><sp/>lcd_sendNibble(<ref refid="movementcommands_8c_1a91a70b77df95bd8b0830b49a094c2acb" kindref="member">data</ref><sp/>&amp;<sp/>0x0F);</highlight></codeline>
-<codeline lineno="155"><highlight class="normal"></highlight></codeline>
-<codeline lineno="156"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="comment">//TODO:<sp/>Poll<sp/>Busy<sp/>Flag</highlight><highlight class="normal"></highlight></codeline>
-<codeline lineno="157"><highlight class="normal"><sp/><sp/><sp/><sp/>timer_waitMillis(1);</highlight></codeline>
-<codeline lineno="158"><highlight class="normal">}</highlight></codeline>
-<codeline lineno="159"><highlight class="normal"></highlight></codeline>
-<codeline lineno="161"><highlight class="keywordtype">void</highlight><highlight class="normal"><sp/>lcd_sendNibble(uint8_t<sp/>theNibble)</highlight></codeline>
-<codeline lineno="162"><highlight class="normal">{</highlight></codeline>
-<codeline lineno="163"><highlight class="normal"><sp/><sp/><sp/><sp/>LCD_PORT_CNTRL<sp/>|=<sp/>EN_PIN;</highlight></codeline>
-<codeline lineno="164"><highlight class="normal"><sp/><sp/><sp/><sp/>LCD_PORT_DATA<sp/>|=<sp/>(theNibble<sp/>&amp;<sp/>0x0F)<sp/>&lt;&lt;<sp/>1;<sp/></highlight><highlight class="comment">//PORTD1:4</highlight><highlight class="normal"></highlight></codeline>
-<codeline lineno="165"><highlight class="normal"></highlight></codeline>
-<codeline lineno="166"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="comment">//Data<sp/>Hold<sp/>time<sp/>before<sp/>Clock<sp/>=<sp/>40ns<sp/>--<sp/>Change<sp/>if<sp/>faster<sp/>clock</highlight><highlight class="normal"></highlight></codeline>
-<codeline lineno="167"><highlight class="normal"><sp/><sp/><sp/><sp/>timer_waitMicros(10);</highlight></codeline>
-<codeline lineno="168"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="comment">//Clock<sp/>in<sp/>Data</highlight><highlight class="normal"></highlight></codeline>
-<codeline lineno="169"><highlight class="normal"><sp/><sp/><sp/><sp/>LCD_PORT_CNTRL<sp/>&amp;=<sp/>~(EN_PIN);</highlight></codeline>
-<codeline lineno="170"><highlight class="normal"></highlight></codeline>
-<codeline lineno="171"><highlight class="normal"><sp/><sp/><sp/><sp/>timer_waitMicros(10);</highlight></codeline>
-<codeline lineno="172"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="comment">//Clear<sp/>Port</highlight><highlight class="normal"></highlight></codeline>
-<codeline lineno="173"><highlight class="normal"><sp/><sp/><sp/><sp/>LCD_PORT_DATA<sp/>&amp;=<sp/>~((0x0F)<sp/>&lt;&lt;<sp/>1);</highlight></codeline>
-<codeline lineno="174"><highlight class="normal">}</highlight></codeline>
-<codeline lineno="175"><highlight class="normal"></highlight></codeline>
-<codeline lineno="177"><highlight class="keywordtype">void</highlight><highlight class="normal"><sp/></highlight><highlight class="keyword">inline</highlight><highlight class="normal"><sp/>lcd_clear(</highlight><highlight class="keywordtype">void</highlight><highlight class="normal">)</highlight></codeline>
-<codeline lineno="178"><highlight class="normal">{</highlight></codeline>
-<codeline lineno="179"><highlight class="normal"><sp/><sp/><sp/><sp/>lcd_sendCommand(HD_LCD_CLEAR);</highlight></codeline>
-<codeline lineno="180"><highlight class="normal"></highlight></codeline>
-<codeline lineno="181"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="comment">//This<sp/>command<sp/>takes<sp/>over<sp/>1ms<sp/>to<sp/>complete</highlight><highlight class="normal"></highlight></codeline>
-<codeline lineno="182"><highlight class="normal"><sp/><sp/><sp/><sp/>timer_waitMillis(1);</highlight></codeline>
-<codeline lineno="183"><highlight class="normal"></highlight></codeline>
-<codeline lineno="184"><highlight class="normal">}</highlight></codeline>
+<codeline lineno="125"><highlight class="normal"><sp/><sp/><sp/><sp/>timer_waitMicros(40);</highlight></codeline>
+<codeline lineno="126"><highlight class="normal"></highlight></codeline>
+<codeline lineno="127"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="comment">//Send<sp/>Lower<sp/>Nibble</highlight><highlight class="normal"></highlight></codeline>
+<codeline lineno="128"><highlight class="normal"><sp/><sp/><sp/><sp/><ref refid="lcd_8c_1a76885eaba7dbd9863c2ea8bf7113c57f" kindref="member">lcd_sendNibble</ref>(<ref refid="main_8c_1a91a70b77df95bd8b0830b49a094c2acb" kindref="member">data</ref><sp/>&amp;<sp/>0x0F);</highlight></codeline>
+<codeline lineno="129"><highlight class="normal"></highlight></codeline>
+<codeline lineno="130"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="comment">//TODO:<sp/>Poll<sp/>Busy<sp/>flag</highlight><highlight class="normal"></highlight></codeline>
+<codeline lineno="131"><highlight class="normal">}</highlight></codeline>
+<codeline lineno="132"><highlight class="normal"></highlight></codeline>
+<codeline lineno="134" refid="lcd_8h_1ac68eefc9e6fce7854f6319aba267ff58" refkind="member"><highlight class="keywordtype">void</highlight><highlight class="normal"><sp/><ref refid="lcd_8c_1ac68eefc9e6fce7854f6319aba267ff58" kindref="member">lcd_puts</ref>(</highlight><highlight class="keywordtype">char</highlight><highlight class="normal"><sp/><ref refid="main_8c_1a91a70b77df95bd8b0830b49a094c2acb" kindref="member">data</ref>[])</highlight></codeline>
+<codeline lineno="135"><highlight class="normal">{</highlight></codeline>
+<codeline lineno="136"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="comment">//While<sp/>not<sp/>equal<sp/>to<sp/>null</highlight><highlight class="normal"></highlight></codeline>
+<codeline lineno="137"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">while</highlight><highlight class="normal"><sp/>(*<ref refid="main_8c_1a91a70b77df95bd8b0830b49a094c2acb" kindref="member">data</ref><sp/>!=<sp/></highlight><highlight class="charliteral">&apos;\0&apos;</highlight><highlight class="normal">)</highlight></codeline>
+<codeline lineno="138"><highlight class="normal"><sp/><sp/><sp/><sp/>{</highlight></codeline>
+<codeline lineno="139"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><ref refid="lcd_8c_1a1b59543ebb020ae74d6bcdf06e2b6d3b" kindref="member">lcd_putc</ref>(*<ref refid="main_8c_1a91a70b77df95bd8b0830b49a094c2acb" kindref="member">data</ref>);</highlight></codeline>
+<codeline lineno="140"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><ref refid="main_8c_1a91a70b77df95bd8b0830b49a094c2acb" kindref="member">data</ref>++;</highlight></codeline>
+<codeline lineno="141"><highlight class="normal"><sp/><sp/><sp/><sp/>}</highlight></codeline>
+<codeline lineno="142"><highlight class="normal">}</highlight></codeline>
+<codeline lineno="143"><highlight class="normal"></highlight></codeline>
+<codeline lineno="145" refid="lcd_8c_1aa212e4f928275b196e6db53fad2c1a5f" refkind="member"><highlight class="keywordtype">void</highlight><highlight class="normal"><sp/><ref refid="lcd_8c_1aa212e4f928275b196e6db53fad2c1a5f" kindref="member">lcd_sendCommand</ref>(uint8_t<sp/><ref refid="main_8c_1a91a70b77df95bd8b0830b49a094c2acb" kindref="member">data</ref>)</highlight></codeline>
+<codeline lineno="146"><highlight class="normal">{</highlight></codeline>
+<codeline lineno="147"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="comment">//Enable<sp/>High</highlight><highlight class="normal"></highlight></codeline>
+<codeline lineno="148"><highlight class="normal"><sp/><sp/><sp/><sp/>LCD_PORT_CNTRL<sp/>|=<sp/>EN_PIN;</highlight></codeline>
+<codeline lineno="149"><highlight class="normal"><sp/><sp/><sp/><sp/>LCD_PORT_CNTRL<sp/>&amp;=<sp/>~(RW_PIN<sp/>|<sp/>RS_PIN);<sp/></highlight><highlight class="comment">//<sp/>Write<sp/>Command</highlight><highlight class="normal"></highlight></codeline>
+<codeline lineno="150"><highlight class="normal"></highlight></codeline>
+<codeline lineno="151"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="comment">//Send<sp/>High<sp/>nibble</highlight><highlight class="normal"></highlight></codeline>
+<codeline lineno="152"><highlight class="normal"><sp/><sp/><sp/><sp/><ref refid="lcd_8c_1a76885eaba7dbd9863c2ea8bf7113c57f" kindref="member">lcd_sendNibble</ref>(<ref refid="main_8c_1a91a70b77df95bd8b0830b49a094c2acb" kindref="member">data</ref><sp/>&gt;&gt;<sp/>4);</highlight></codeline>
+<codeline lineno="153"><highlight class="normal"></highlight></codeline>
+<codeline lineno="154"><highlight class="normal"><sp/><sp/><sp/><sp/>timer_waitMicros(1);</highlight></codeline>
+<codeline lineno="155"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="comment">//Send<sp/>Lower<sp/>Nibble</highlight><highlight class="normal"></highlight></codeline>
+<codeline lineno="156"><highlight class="normal"><sp/><sp/><sp/><sp/><ref refid="lcd_8c_1a76885eaba7dbd9863c2ea8bf7113c57f" kindref="member">lcd_sendNibble</ref>(<ref refid="main_8c_1a91a70b77df95bd8b0830b49a094c2acb" kindref="member">data</ref><sp/>&amp;<sp/>0x0F);</highlight></codeline>
+<codeline lineno="157"><highlight class="normal"></highlight></codeline>
+<codeline lineno="158"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="comment">//TODO:<sp/>Poll<sp/>Busy<sp/>Flag</highlight><highlight class="normal"></highlight></codeline>
+<codeline lineno="159"><highlight class="normal"><sp/><sp/><sp/><sp/><ref refid="timer_8c_1a7e2a3b4520e885e5e7d40fa87e242a75" kindref="member">timer_waitMillis</ref>(1);</highlight></codeline>
+<codeline lineno="160"><highlight class="normal">}</highlight></codeline>
+<codeline lineno="161"><highlight class="normal"></highlight></codeline>
+<codeline lineno="163" refid="lcd_8c_1a76885eaba7dbd9863c2ea8bf7113c57f" refkind="member"><highlight class="keywordtype">void</highlight><highlight class="normal"><sp/><ref refid="lcd_8c_1a76885eaba7dbd9863c2ea8bf7113c57f" kindref="member">lcd_sendNibble</ref>(uint8_t<sp/>theNibble)</highlight></codeline>
+<codeline lineno="164"><highlight class="normal">{</highlight></codeline>
+<codeline lineno="165"><highlight class="normal"><sp/><sp/><sp/><sp/>LCD_PORT_CNTRL<sp/>|=<sp/>EN_PIN;</highlight></codeline>
+<codeline lineno="166"><highlight class="normal"><sp/><sp/><sp/><sp/>LCD_PORT_DATA<sp/>|=<sp/>(theNibble<sp/>&amp;<sp/>0x0F)<sp/>&lt;&lt;<sp/>1;<sp/></highlight><highlight class="comment">//PORTD1:4</highlight><highlight class="normal"></highlight></codeline>
+<codeline lineno="167"><highlight class="normal"></highlight></codeline>
+<codeline lineno="168"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="comment">//Data<sp/>Hold<sp/>time<sp/>before<sp/>Clock<sp/>=<sp/>40ns<sp/>--<sp/>Change<sp/>if<sp/>faster<sp/>clock</highlight><highlight class="normal"></highlight></codeline>
+<codeline lineno="169"><highlight class="normal"><sp/><sp/><sp/><sp/>timer_waitMicros(10);</highlight></codeline>
+<codeline lineno="170"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="comment">//Clock<sp/>in<sp/>Data</highlight><highlight class="normal"></highlight></codeline>
+<codeline lineno="171"><highlight class="normal"><sp/><sp/><sp/><sp/>LCD_PORT_CNTRL<sp/>&amp;=<sp/>~(EN_PIN);</highlight></codeline>
+<codeline lineno="172"><highlight class="normal"></highlight></codeline>
+<codeline lineno="173"><highlight class="normal"><sp/><sp/><sp/><sp/>timer_waitMicros(10);</highlight></codeline>
+<codeline lineno="174"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="comment">//Clear<sp/>Port</highlight><highlight class="normal"></highlight></codeline>
+<codeline lineno="175"><highlight class="normal"><sp/><sp/><sp/><sp/>LCD_PORT_DATA<sp/>&amp;=<sp/>~((0x0F)<sp/>&lt;&lt;<sp/>1);</highlight></codeline>
+<codeline lineno="176"><highlight class="normal">}</highlight></codeline>
+<codeline lineno="177"><highlight class="normal"></highlight></codeline>
+<codeline lineno="179" refid="lcd_8h_1ad235a86241458b1e7b8771688bfdaf9a" refkind="member"><highlight class="keywordtype">void</highlight><highlight class="normal"><sp/></highlight><highlight class="keyword">inline</highlight><highlight class="normal"><sp/><ref refid="lcd_8c_1ad235a86241458b1e7b8771688bfdaf9a" kindref="member">lcd_clear</ref>(</highlight><highlight class="keywordtype">void</highlight><highlight class="normal">)</highlight></codeline>
+<codeline lineno="180"><highlight class="normal">{</highlight></codeline>
+<codeline lineno="181"><highlight class="normal"><sp/><sp/><sp/><sp/><ref refid="lcd_8c_1aa212e4f928275b196e6db53fad2c1a5f" kindref="member">lcd_sendCommand</ref>(HD_LCD_CLEAR);</highlight></codeline>
+<codeline lineno="182"><highlight class="normal"></highlight></codeline>
+<codeline lineno="183"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="comment">//This<sp/>command<sp/>takes<sp/>over<sp/>1ms<sp/>to<sp/>complete</highlight><highlight class="normal"></highlight></codeline>
+<codeline lineno="184"><highlight class="normal"><sp/><sp/><sp/><sp/><ref refid="timer_8c_1a7e2a3b4520e885e5e7d40fa87e242a75" kindref="member">timer_waitMillis</ref>(1);</highlight></codeline>
 <codeline lineno="185"><highlight class="normal"></highlight></codeline>
-<codeline lineno="187"><highlight class="keywordtype">void</highlight><highlight class="normal"><sp/></highlight><highlight class="keyword">inline</highlight><highlight class="normal"><sp/>lcd_home(</highlight><highlight class="keywordtype">void</highlight><highlight class="normal">)</highlight></codeline>
-<codeline lineno="188"><highlight class="normal">{</highlight></codeline>
-<codeline lineno="189"><highlight class="normal"><sp/><sp/><sp/><sp/>lcd_sendCommand(HD_RETURN_HOME);</highlight></codeline>
-<codeline lineno="190"><highlight class="normal">}</highlight></codeline>
-<codeline lineno="191"><highlight class="normal"></highlight></codeline>
-<codeline lineno="193"><highlight class="keywordtype">void</highlight><highlight class="normal"><sp/>lcd_gotoLine(uint8_t<sp/>lineNum)</highlight></codeline>
-<codeline lineno="194"><highlight class="normal">{</highlight></codeline>
-<codeline lineno="195"><highlight class="normal"></highlight></codeline>
-<codeline lineno="196"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="comment">//Address<sp/>of<sp/>the<sp/>four<sp/>line<sp/>elements</highlight><highlight class="normal"></highlight></codeline>
-<codeline lineno="197"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="keyword">static</highlight><highlight class="normal"><sp/></highlight><highlight class="keyword">const</highlight><highlight class="normal"><sp/>uint8_t<sp/>lineAddress[]<sp/>=<sp/>{<sp/>0x00,<sp/>0x40,<sp/>0x14,<sp/>0x54<sp/>};</highlight></codeline>
-<codeline lineno="198"><highlight class="normal"></highlight></codeline>
-<codeline lineno="199"><highlight class="normal"><sp/><sp/><sp/><sp/>lineNum<sp/>=<sp/>(0x03<sp/>&amp;<sp/>(lineNum<sp/>-<sp/>1));<sp/></highlight><highlight class="comment">//<sp/>Mask<sp/>input<sp/>for<sp/>0<sp/>-<sp/>3</highlight><highlight class="normal"></highlight></codeline>
-<codeline lineno="200"><highlight class="normal"><sp/><sp/><sp/><sp/>lcd_sendCommand(LCD_DDRAM_WRITE<sp/>|<sp/>lineAddress[lineNum]);</highlight></codeline>
-<codeline lineno="201"><highlight class="normal"></highlight></codeline>
-<codeline lineno="202"><highlight class="normal">}</highlight></codeline>
+<codeline lineno="186"><highlight class="normal">}</highlight></codeline>
+<codeline lineno="187"><highlight class="normal"></highlight></codeline>
+<codeline lineno="189" refid="lcd_8h_1a3aabf730aa4e0393bb5c959583c00a8e" refkind="member"><highlight class="keywordtype">void</highlight><highlight class="normal"><sp/></highlight><highlight class="keyword">inline</highlight><highlight class="normal"><sp/><ref refid="lcd_8c_1a3aabf730aa4e0393bb5c959583c00a8e" kindref="member">lcd_home</ref>(</highlight><highlight class="keywordtype">void</highlight><highlight class="normal">)</highlight></codeline>
+<codeline lineno="190"><highlight class="normal">{</highlight></codeline>
+<codeline lineno="191"><highlight class="normal"><sp/><sp/><sp/><sp/><ref refid="lcd_8c_1aa212e4f928275b196e6db53fad2c1a5f" kindref="member">lcd_sendCommand</ref>(HD_RETURN_HOME);</highlight></codeline>
+<codeline lineno="192"><highlight class="normal">}</highlight></codeline>
+<codeline lineno="193"><highlight class="normal"></highlight></codeline>
+<codeline lineno="195" refid="lcd_8h_1a22493bdaca08073e3014decb34db38a6" refkind="member"><highlight class="keywordtype">void</highlight><highlight class="normal"><sp/><ref refid="lcd_8c_1a22493bdaca08073e3014decb34db38a6" kindref="member">lcd_gotoLine</ref>(uint8_t<sp/>lineNum)</highlight></codeline>
+<codeline lineno="196"><highlight class="normal">{</highlight></codeline>
+<codeline lineno="197"><highlight class="normal"></highlight></codeline>
+<codeline lineno="198"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="comment">//Address<sp/>of<sp/>the<sp/>four<sp/>line<sp/>elements</highlight><highlight class="normal"></highlight></codeline>
+<codeline lineno="199"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="keyword">static</highlight><highlight class="normal"><sp/></highlight><highlight class="keyword">const</highlight><highlight class="normal"><sp/>uint8_t<sp/>lineAddress[]<sp/>=<sp/>{<sp/>0x00,<sp/>0x40,<sp/>0x14,<sp/>0x54<sp/>};</highlight></codeline>
+<codeline lineno="200"><highlight class="normal"></highlight></codeline>
+<codeline lineno="201"><highlight class="normal"><sp/><sp/><sp/><sp/>lineNum<sp/>=<sp/>(0x03<sp/>&amp;<sp/>(lineNum<sp/>-<sp/>1));<sp/></highlight><highlight class="comment">//<sp/>Mask<sp/>input<sp/>for<sp/>0<sp/>-<sp/>3</highlight><highlight class="normal"></highlight></codeline>
+<codeline lineno="202"><highlight class="normal"><sp/><sp/><sp/><sp/><ref refid="lcd_8c_1aa212e4f928275b196e6db53fad2c1a5f" kindref="member">lcd_sendCommand</ref>(LCD_DDRAM_WRITE<sp/>|<sp/>lineAddress[lineNum]);</highlight></codeline>
 <codeline lineno="203"><highlight class="normal"></highlight></codeline>
-<codeline lineno="205"><highlight class="keywordtype">void</highlight><highlight class="normal"><sp/>lcd_setCursorPos(uint8_t<sp/>x,<sp/>uint8_t<sp/>y)</highlight></codeline>
-<codeline lineno="206"><highlight class="normal">{</highlight></codeline>
-<codeline lineno="207"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="keyword">static</highlight><highlight class="normal"><sp/></highlight><highlight class="keyword">const</highlight><highlight class="normal"><sp/>uint8_t<sp/>lineAddresses[]<sp/>=<sp/>{<sp/>0x00,<sp/>0x40,<sp/>0x14,<sp/>0x54<sp/>};</highlight></codeline>
-<codeline lineno="208"><highlight class="normal"></highlight></codeline>
-<codeline lineno="209"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">if</highlight><highlight class="normal"><sp/>(x<sp/>&gt;=<sp/>20<sp/>||<sp/>y<sp/>&gt;=<sp/>4)</highlight></codeline>
-<codeline lineno="210"><highlight class="normal"><sp/><sp/><sp/><sp/>{</highlight></codeline>
-<codeline lineno="211"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="comment">//Invalid<sp/>coordinates</highlight><highlight class="normal"></highlight></codeline>
-<codeline lineno="212"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">return</highlight><highlight class="normal">;</highlight></codeline>
-<codeline lineno="213"><highlight class="normal"><sp/><sp/><sp/><sp/>}</highlight></codeline>
-<codeline lineno="214"><highlight class="normal"></highlight></codeline>
-<codeline lineno="215"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="comment">//Compute<sp/>the<sp/>location<sp/>index</highlight><highlight class="normal"></highlight></codeline>
-<codeline lineno="216"><highlight class="normal"><sp/><sp/><sp/><sp/>uint8_t<sp/>index<sp/>=<sp/>lineAddresses[y]<sp/>+<sp/>x;</highlight></codeline>
-<codeline lineno="217"><highlight class="normal"></highlight></codeline>
-<codeline lineno="218"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="comment">//Set<sp/>the<sp/>cursor<sp/>index</highlight><highlight class="normal"></highlight></codeline>
-<codeline lineno="219"><highlight class="normal"><sp/><sp/><sp/><sp/>lcd_sendCommand(0x80<sp/>|<sp/>index);</highlight></codeline>
-<codeline lineno="220"><highlight class="normal">}</highlight></codeline>
-<codeline lineno="221"><highlight class="normal"></highlight></codeline>
-<codeline lineno="223"></codeline>
-<codeline lineno="234"><highlight class="keywordtype">void</highlight><highlight class="normal"><sp/>lcd_printf(</highlight><highlight class="keyword">const</highlight><highlight class="normal"><sp/></highlight><highlight class="keywordtype">char</highlight><highlight class="normal"><sp/>*format,<sp/>...)</highlight></codeline>
-<codeline lineno="235"><highlight class="normal">{</highlight></codeline>
-<codeline lineno="236"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="keyword">static</highlight><highlight class="normal"><sp/></highlight><highlight class="keywordtype">char</highlight><highlight class="normal"><sp/>lastbuffer[LCD_TOTAL_CHARS<sp/>+<sp/>1];</highlight></codeline>
-<codeline lineno="237"><highlight class="normal"></highlight></codeline>
-<codeline lineno="238"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="keywordtype">char</highlight><highlight class="normal"><sp/><ref refid="uart_8h_1aff2566f4c366b48d73479bef43ee4d2e" kindref="member">buffer</ref>[LCD_TOTAL_CHARS<sp/>+<sp/>1];</highlight></codeline>
-<codeline lineno="239"><highlight class="normal"><sp/><sp/><sp/><sp/>va_list<sp/>arglist;</highlight></codeline>
-<codeline lineno="240"><highlight class="normal"><sp/><sp/><sp/><sp/>va_start(arglist,<sp/>format);</highlight></codeline>
-<codeline lineno="241"><highlight class="normal"><sp/><sp/><sp/><sp/>vsnprintf(<ref refid="uart_8h_1aff2566f4c366b48d73479bef43ee4d2e" kindref="member">buffer</ref>,<sp/>LCD_TOTAL_CHARS<sp/>+<sp/>1,<sp/>format,<sp/>arglist);</highlight></codeline>
-<codeline lineno="242"><highlight class="normal"></highlight></codeline>
-<codeline lineno="243"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">if</highlight><highlight class="normal"><sp/>(!strcmp(lastbuffer,<sp/><ref refid="uart_8h_1aff2566f4c366b48d73479bef43ee4d2e" kindref="member">buffer</ref>))</highlight></codeline>
-<codeline lineno="244"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">return</highlight><highlight class="normal">;</highlight></codeline>
-<codeline lineno="245"><highlight class="normal"></highlight></codeline>
-<codeline lineno="246"><highlight class="normal"><sp/><sp/><sp/><sp/>strcpy(lastbuffer,<sp/><ref refid="uart_8h_1aff2566f4c366b48d73479bef43ee4d2e" kindref="member">buffer</ref>);</highlight></codeline>
-<codeline lineno="247"><highlight class="normal"><sp/><sp/><sp/><sp/>lcd_clear();</highlight></codeline>
-<codeline lineno="248"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="keywordtype">char</highlight><highlight class="normal"><sp/>*str<sp/>=<sp/><ref refid="uart_8h_1aff2566f4c366b48d73479bef43ee4d2e" kindref="member">buffer</ref>;</highlight></codeline>
-<codeline lineno="249"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="keywordtype">int</highlight><highlight class="normal"><sp/>charnum<sp/>=<sp/>0;</highlight></codeline>
-<codeline lineno="250"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">while</highlight><highlight class="normal"><sp/>(*str<sp/>&amp;&amp;<sp/>charnum<sp/>&lt;<sp/>LCD_TOTAL_CHARS)</highlight></codeline>
-<codeline lineno="251"><highlight class="normal"><sp/><sp/><sp/><sp/>{</highlight></codeline>
-<codeline lineno="252"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">if</highlight><highlight class="normal"><sp/>(*str<sp/>==<sp/></highlight><highlight class="charliteral">&apos;\n&apos;</highlight><highlight class="normal">)</highlight></codeline>
-<codeline lineno="253"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>{</highlight></codeline>
-<codeline lineno="254"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="comment">/*<sp/>fill<sp/>remainder<sp/>of<sp/>line<sp/>with<sp/>spaces<sp/>*/</highlight><highlight class="normal"></highlight></codeline>
-<codeline lineno="255"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>charnum<sp/>+=<sp/>LCD_WIDTH<sp/>-<sp/>charnum<sp/>%<sp/>LCD_WIDTH;</highlight></codeline>
-<codeline lineno="256"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>}</highlight></codeline>
-<codeline lineno="257"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">else</highlight><highlight class="normal"></highlight></codeline>
-<codeline lineno="258"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>{</highlight></codeline>
-<codeline lineno="259"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>lcd_putc(*str);</highlight></codeline>
-<codeline lineno="260"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>charnum++;</highlight></codeline>
-<codeline lineno="261"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>}</highlight></codeline>
-<codeline lineno="262"><highlight class="normal"></highlight></codeline>
-<codeline lineno="263"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>str++;</highlight></codeline>
+<codeline lineno="204"><highlight class="normal">}</highlight></codeline>
+<codeline lineno="205"><highlight class="normal"></highlight></codeline>
+<codeline lineno="207" refid="lcd_8h_1a785788c99ba018918ffb2db717773fa4" refkind="member"><highlight class="keywordtype">void</highlight><highlight class="normal"><sp/><ref refid="lcd_8c_1a785788c99ba018918ffb2db717773fa4" kindref="member">lcd_setCursorPos</ref>(uint8_t<sp/>x,<sp/>uint8_t<sp/>y)</highlight></codeline>
+<codeline lineno="208"><highlight class="normal">{</highlight></codeline>
+<codeline lineno="209"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="keyword">static</highlight><highlight class="normal"><sp/></highlight><highlight class="keyword">const</highlight><highlight class="normal"><sp/>uint8_t<sp/>lineAddresses[]<sp/>=<sp/>{<sp/>0x00,<sp/>0x40,<sp/>0x14,<sp/>0x54<sp/>};</highlight></codeline>
+<codeline lineno="210"><highlight class="normal"></highlight></codeline>
+<codeline lineno="211"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">if</highlight><highlight class="normal"><sp/>(x<sp/>&gt;=<sp/>20<sp/>||<sp/>y<sp/>&gt;=<sp/>4)</highlight></codeline>
+<codeline lineno="212"><highlight class="normal"><sp/><sp/><sp/><sp/>{</highlight></codeline>
+<codeline lineno="213"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="comment">//Invalid<sp/>coordinates</highlight><highlight class="normal"></highlight></codeline>
+<codeline lineno="214"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">return</highlight><highlight class="normal">;</highlight></codeline>
+<codeline lineno="215"><highlight class="normal"><sp/><sp/><sp/><sp/>}</highlight></codeline>
+<codeline lineno="216"><highlight class="normal"></highlight></codeline>
+<codeline lineno="217"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="comment">//Compute<sp/>the<sp/>location<sp/>index</highlight><highlight class="normal"></highlight></codeline>
+<codeline lineno="218"><highlight class="normal"><sp/><sp/><sp/><sp/>uint8_t<sp/>index<sp/>=<sp/>lineAddresses[y]<sp/>+<sp/>x;</highlight></codeline>
+<codeline lineno="219"><highlight class="normal"></highlight></codeline>
+<codeline lineno="220"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="comment">//Set<sp/>the<sp/>cursor<sp/>index</highlight><highlight class="normal"></highlight></codeline>
+<codeline lineno="221"><highlight class="normal"><sp/><sp/><sp/><sp/><ref refid="lcd_8c_1aa212e4f928275b196e6db53fad2c1a5f" kindref="member">lcd_sendCommand</ref>(0x80<sp/>|<sp/>index);</highlight></codeline>
+<codeline lineno="222"><highlight class="normal">}</highlight></codeline>
+<codeline lineno="223"><highlight class="normal"></highlight></codeline>
+<codeline lineno="225"></codeline>
+<codeline lineno="236" refid="lcd_8h_1a3c12e31b86febabfc7e62b51e0b9dc30" refkind="member"><highlight class="keywordtype">void</highlight><highlight class="normal"><sp/><ref refid="lcd_8c_1a3c12e31b86febabfc7e62b51e0b9dc30" kindref="member">lcd_printf</ref>(</highlight><highlight class="keyword">const</highlight><highlight class="normal"><sp/></highlight><highlight class="keywordtype">char</highlight><highlight class="normal"><sp/>*format,<sp/>...)</highlight></codeline>
+<codeline lineno="237"><highlight class="normal">{</highlight></codeline>
+<codeline lineno="238"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="keyword">static</highlight><highlight class="normal"><sp/></highlight><highlight class="keywordtype">char</highlight><highlight class="normal"><sp/>lastbuffer[LCD_TOTAL_CHARS<sp/>+<sp/>1];</highlight></codeline>
+<codeline lineno="239"><highlight class="normal"></highlight></codeline>
+<codeline lineno="240"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="keywordtype">char</highlight><highlight class="normal"><sp/><ref refid="uart_8h_1aff2566f4c366b48d73479bef43ee4d2e" kindref="member">buffer</ref>[LCD_TOTAL_CHARS<sp/>+<sp/>1];</highlight></codeline>
+<codeline lineno="241"><highlight class="normal"><sp/><sp/><sp/><sp/>va_list<sp/>arglist;</highlight></codeline>
+<codeline lineno="242"><highlight class="normal"><sp/><sp/><sp/><sp/>va_start(arglist,<sp/>format);</highlight></codeline>
+<codeline lineno="243"><highlight class="normal"><sp/><sp/><sp/><sp/>vsnprintf(<ref refid="uart_8h_1aff2566f4c366b48d73479bef43ee4d2e" kindref="member">buffer</ref>,<sp/>LCD_TOTAL_CHARS<sp/>+<sp/>1,<sp/>format,<sp/>arglist);</highlight></codeline>
+<codeline lineno="244"><highlight class="normal"></highlight></codeline>
+<codeline lineno="245"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">if</highlight><highlight class="normal"><sp/>(!strcmp(lastbuffer,<sp/><ref refid="uart_8h_1aff2566f4c366b48d73479bef43ee4d2e" kindref="member">buffer</ref>))</highlight></codeline>
+<codeline lineno="246"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">return</highlight><highlight class="normal">;</highlight></codeline>
+<codeline lineno="247"><highlight class="normal"></highlight></codeline>
+<codeline lineno="248"><highlight class="normal"><sp/><sp/><sp/><sp/>strcpy(lastbuffer,<sp/><ref refid="uart_8h_1aff2566f4c366b48d73479bef43ee4d2e" kindref="member">buffer</ref>);</highlight></codeline>
+<codeline lineno="249"><highlight class="normal"><sp/><sp/><sp/><sp/><ref refid="lcd_8c_1ad235a86241458b1e7b8771688bfdaf9a" kindref="member">lcd_clear</ref>();</highlight></codeline>
+<codeline lineno="250"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="keywordtype">char</highlight><highlight class="normal"><sp/>*str<sp/>=<sp/><ref refid="uart_8h_1aff2566f4c366b48d73479bef43ee4d2e" kindref="member">buffer</ref>;</highlight></codeline>
+<codeline lineno="251"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="keywordtype">int</highlight><highlight class="normal"><sp/>charnum<sp/>=<sp/>0;</highlight></codeline>
+<codeline lineno="252"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">while</highlight><highlight class="normal"><sp/>(*str<sp/>&amp;&amp;<sp/>charnum<sp/>&lt;<sp/>LCD_TOTAL_CHARS)</highlight></codeline>
+<codeline lineno="253"><highlight class="normal"><sp/><sp/><sp/><sp/>{</highlight></codeline>
+<codeline lineno="254"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">if</highlight><highlight class="normal"><sp/>(*str<sp/>==<sp/></highlight><highlight class="charliteral">&apos;\n&apos;</highlight><highlight class="normal">)</highlight></codeline>
+<codeline lineno="255"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>{</highlight></codeline>
+<codeline lineno="256"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="comment">/*<sp/>fill<sp/>remainder<sp/>of<sp/>line<sp/>with<sp/>spaces<sp/>*/</highlight><highlight class="normal"></highlight></codeline>
+<codeline lineno="257"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>charnum<sp/>+=<sp/>LCD_WIDTH<sp/>-<sp/>charnum<sp/>%<sp/>LCD_WIDTH;</highlight></codeline>
+<codeline lineno="258"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>}</highlight></codeline>
+<codeline lineno="259"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">else</highlight><highlight class="normal"></highlight></codeline>
+<codeline lineno="260"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>{</highlight></codeline>
+<codeline lineno="261"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><ref refid="lcd_8c_1a1b59543ebb020ae74d6bcdf06e2b6d3b" kindref="member">lcd_putc</ref>(*str);</highlight></codeline>
+<codeline lineno="262"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>charnum++;</highlight></codeline>
+<codeline lineno="263"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>}</highlight></codeline>
 <codeline lineno="264"><highlight class="normal"></highlight></codeline>
-<codeline lineno="265"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="comment">/*</highlight></codeline>
-<codeline lineno="266"><highlight class="comment"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>*<sp/>The<sp/>LCD&apos;s<sp/>lines<sp/>are<sp/>not<sp/>sequential;<sp/>for<sp/>future<sp/>reference,<sp/>the<sp/>address<sp/>are<sp/>like</highlight></codeline>
-<codeline lineno="267"><highlight class="comment"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>*<sp/>0x00...0x13<sp/>:<sp/>line<sp/>1</highlight></codeline>
-<codeline lineno="268"><highlight class="comment"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>*<sp/>0x14...0x27<sp/>:<sp/>line<sp/>3</highlight></codeline>
-<codeline lineno="269"><highlight class="comment"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>*<sp/>0x28...0x3F<sp/>:<sp/>random<sp/>junk</highlight></codeline>
-<codeline lineno="270"><highlight class="comment"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>*<sp/>0x40...0x53<sp/>:<sp/>line<sp/>2</highlight></codeline>
-<codeline lineno="271"><highlight class="comment"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>*<sp/>0x54...0x68<sp/>:<sp/>line<sp/>4</highlight></codeline>
-<codeline lineno="272"><highlight class="comment"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>*</highlight></codeline>
-<codeline lineno="273"><highlight class="comment"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>*<sp/>The<sp/>cursor<sp/>position<sp/>must<sp/>be<sp/>reset<sp/>at<sp/>the<sp/>end<sp/>of<sp/>every<sp/>line,<sp/>otherwise,<sp/>after<sp/>writing<sp/>line<sp/>1,<sp/>it<sp/>writes<sp/>line<sp/>3<sp/>and<sp/>then<sp/>nothingness</highlight></codeline>
-<codeline lineno="274"><highlight class="comment"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>*/</highlight><highlight class="normal"></highlight></codeline>
-<codeline lineno="275"><highlight class="normal"></highlight></codeline>
-<codeline lineno="276"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">if</highlight><highlight class="normal"><sp/>(charnum<sp/>%<sp/>LCD_WIDTH<sp/>==<sp/>0)</highlight></codeline>
-<codeline lineno="277"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>{</highlight></codeline>
-<codeline lineno="278"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">switch</highlight><highlight class="normal"><sp/>(charnum<sp/>/<sp/>LCD_WIDTH)</highlight></codeline>
-<codeline lineno="279"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>{</highlight></codeline>
-<codeline lineno="280"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">case</highlight><highlight class="normal"><sp/>1:</highlight></codeline>
-<codeline lineno="281"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>lcd_gotoLine(2);</highlight></codeline>
-<codeline lineno="282"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">break</highlight><highlight class="normal">;</highlight></codeline>
-<codeline lineno="283"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">case</highlight><highlight class="normal"><sp/>2:</highlight></codeline>
-<codeline lineno="284"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>lcd_gotoLine(3);</highlight></codeline>
-<codeline lineno="285"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">break</highlight><highlight class="normal">;</highlight></codeline>
-<codeline lineno="286"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">case</highlight><highlight class="normal"><sp/>3:</highlight></codeline>
-<codeline lineno="287"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>lcd_gotoLine(4);</highlight></codeline>
-<codeline lineno="288"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>}</highlight></codeline>
-<codeline lineno="289"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>}</highlight></codeline>
-<codeline lineno="290"><highlight class="normal"><sp/><sp/><sp/><sp/>}</highlight></codeline>
-<codeline lineno="291"><highlight class="normal"><sp/><sp/><sp/><sp/>va_end(arglist);</highlight></codeline>
-<codeline lineno="292"><highlight class="normal">}</highlight></codeline>
-<codeline lineno="293"><highlight class="normal"></highlight></codeline>
+<codeline lineno="265"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>str++;</highlight></codeline>
+<codeline lineno="266"><highlight class="normal"></highlight></codeline>
+<codeline lineno="267"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="comment">/*</highlight></codeline>
+<codeline lineno="268"><highlight class="comment"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>*<sp/>The<sp/>LCD&apos;s<sp/>lines<sp/>are<sp/>not<sp/>sequential;<sp/>for<sp/>future<sp/>reference,<sp/>the<sp/>address<sp/>are<sp/>like</highlight></codeline>
+<codeline lineno="269"><highlight class="comment"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>*<sp/>0x00...0x13<sp/>:<sp/>line<sp/>1</highlight></codeline>
+<codeline lineno="270"><highlight class="comment"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>*<sp/>0x14...0x27<sp/>:<sp/>line<sp/>3</highlight></codeline>
+<codeline lineno="271"><highlight class="comment"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>*<sp/>0x28...0x3F<sp/>:<sp/>random<sp/>junk</highlight></codeline>
+<codeline lineno="272"><highlight class="comment"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>*<sp/>0x40...0x53<sp/>:<sp/>line<sp/>2</highlight></codeline>
+<codeline lineno="273"><highlight class="comment"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>*<sp/>0x54...0x68<sp/>:<sp/>line<sp/>4</highlight></codeline>
+<codeline lineno="274"><highlight class="comment"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>*</highlight></codeline>
+<codeline lineno="275"><highlight class="comment"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>*<sp/>The<sp/>cursor<sp/>position<sp/>must<sp/>be<sp/>reset<sp/>at<sp/>the<sp/>end<sp/>of<sp/>every<sp/>line,<sp/>otherwise,<sp/>after<sp/>writing<sp/>line<sp/>1,<sp/>it<sp/>writes<sp/>line<sp/>3<sp/>and<sp/>then<sp/>nothingness</highlight></codeline>
+<codeline lineno="276"><highlight class="comment"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>*/</highlight><highlight class="normal"></highlight></codeline>
+<codeline lineno="277"><highlight class="normal"></highlight></codeline>
+<codeline lineno="278"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">if</highlight><highlight class="normal"><sp/>(charnum<sp/>%<sp/>LCD_WIDTH<sp/>==<sp/>0)</highlight></codeline>
+<codeline lineno="279"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>{</highlight></codeline>
+<codeline lineno="280"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">switch</highlight><highlight class="normal"><sp/>(charnum<sp/>/<sp/>LCD_WIDTH)</highlight></codeline>
+<codeline lineno="281"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>{</highlight></codeline>
+<codeline lineno="282"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">case</highlight><highlight class="normal"><sp/>1:</highlight></codeline>
+<codeline lineno="283"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><ref refid="lcd_8c_1a22493bdaca08073e3014decb34db38a6" kindref="member">lcd_gotoLine</ref>(2);</highlight></codeline>
+<codeline lineno="284"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">break</highlight><highlight class="normal">;</highlight></codeline>
+<codeline lineno="285"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">case</highlight><highlight class="normal"><sp/>2:</highlight></codeline>
+<codeline lineno="286"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><ref refid="lcd_8c_1a22493bdaca08073e3014decb34db38a6" kindref="member">lcd_gotoLine</ref>(3);</highlight></codeline>
+<codeline lineno="287"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">break</highlight><highlight class="normal">;</highlight></codeline>
+<codeline lineno="288"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">case</highlight><highlight class="normal"><sp/>3:</highlight></codeline>
+<codeline lineno="289"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><ref refid="lcd_8c_1a22493bdaca08073e3014decb34db38a6" kindref="member">lcd_gotoLine</ref>(4);</highlight></codeline>
+<codeline lineno="290"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>}</highlight></codeline>
+<codeline lineno="291"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>}</highlight></codeline>
+<codeline lineno="292"><highlight class="normal"><sp/><sp/><sp/><sp/>}</highlight></codeline>
+<codeline lineno="293"><highlight class="normal"><sp/><sp/><sp/><sp/>va_end(arglist);</highlight></codeline>
+<codeline lineno="294"><highlight class="normal">}</highlight></codeline>
+<codeline lineno="295"><highlight class="normal"></highlight></codeline>
     </programlisting>
     <location file="C:/Users/DonsterLaptop/Documents/Robot288/cpre288_generalpurposeautomatedrobot/Robot/Utils/lcd.c"/>
   </compounddef>
diff --git a/Doxygen/xml/lcd_8h.xml b/Doxygen/xml/lcd_8h.xml
index b2b445a602ea97058915a9bf2cf8990c6da1bbdd..371a3d3ffaa49f673781be17cec5d77c640b82d7 100644
--- a/Doxygen/xml/lcd_8h.xml
+++ b/Doxygen/xml/lcd_8h.xml
@@ -38,7 +38,7 @@
       </node>
       <node id="282">
         <label>timer.h</label>
-        <link refid="timer_8h_source"/>
+        <link refid="timer_8h"/>
         <childnode refid="279" relation="include">
         </childnode>
         <childnode refid="281" relation="include">
@@ -77,7 +77,7 @@
       </node>
       <node id="287">
         <label>C:/Users/DonsterLaptop/Documents/Robot288/cpre288_generalpurposeautomatedrobot/Robot/Utils/lcd.c</label>
-        <link refid="lcd_8c_source"/>
+        <link refid="lcd_8c"/>
       </node>
       <node id="283">
         <label>C:/Users/DonsterLaptop/Documents/Robot288/cpre288_generalpurposeautomatedrobot/Robot/Utils/lcd.h</label>
@@ -103,11 +103,11 @@
       </node>
       <node id="285">
         <label>C:/Users/DonsterLaptop/Documents/Robot288/cpre288_generalpurposeautomatedrobot/Robot/main.c</label>
-        <link refid="main_8c_source"/>
+        <link refid="main_8c"/>
       </node>
       <node id="292">
         <label>C:/Users/DonsterLaptop/Documents/Robot288/cpre288_generalpurposeautomatedrobot/Robot/Utils/open_interface.c</label>
-        <link refid="open__interface_8c_source"/>
+        <link refid="open__interface_8c"/>
       </node>
       <node id="294">
         <label>C:/Users/DonsterLaptop/Documents/Robot288/cpre288_generalpurposeautomatedrobot/Robot/Utils/Sound.h</label>
@@ -117,7 +117,7 @@
       </node>
       <node id="288">
         <label>C:/Users/DonsterLaptop/Documents/Robot288/cpre288_generalpurposeautomatedrobot/Robot/Utils/open_interface.h</label>
-        <link refid="open__interface_8h_source"/>
+        <link refid="open__interface_8h"/>
         <childnode refid="285" relation="include">
         </childnode>
         <childnode refid="289" relation="include">
@@ -147,7 +147,7 @@
         </detaileddescription>
         <inbodydescription>
         </inbodydescription>
-        <location file="C:/Users/DonsterLaptop/Documents/Robot288/cpre288_generalpurposeautomatedrobot/Robot/Utils/lcd.h" line="20" column="1" bodyfile="C:/Users/DonsterLaptop/Documents/Robot288/cpre288_generalpurposeautomatedrobot/Robot/Utils/lcd.c" bodystart="58" bodyend="111"/>
+        <location file="C:/Users/DonsterLaptop/Documents/Robot288/cpre288_generalpurposeautomatedrobot/Robot/Utils/lcd.h" line="21" column="1" bodyfile="C:/Users/DonsterLaptop/Documents/Robot288/cpre288_generalpurposeautomatedrobot/Robot/Utils/lcd.c" bodystart="60" bodyend="113"/>
       </memberdef>
       <memberdef kind="function" id="lcd_8h_1a1b59543ebb020ae74d6bcdf06e2b6d3b" prot="public" static="no" const="no" explicit="no" inline="no" virt="non-virtual">
         <type>void</type>
@@ -164,7 +164,7 @@
         </detaileddescription>
         <inbodydescription>
         </inbodydescription>
-        <location file="C:/Users/DonsterLaptop/Documents/Robot288/cpre288_generalpurposeautomatedrobot/Robot/Utils/lcd.h" line="23" column="1" bodyfile="C:/Users/DonsterLaptop/Documents/Robot288/cpre288_generalpurposeautomatedrobot/Robot/Utils/lcd.c" bodystart="114" bodyend="129"/>
+        <location file="C:/Users/DonsterLaptop/Documents/Robot288/cpre288_generalpurposeautomatedrobot/Robot/Utils/lcd.h" line="24" column="1" bodyfile="C:/Users/DonsterLaptop/Documents/Robot288/cpre288_generalpurposeautomatedrobot/Robot/Utils/lcd.c" bodystart="116" bodyend="131"/>
       </memberdef>
       <memberdef kind="function" id="lcd_8h_1ac68eefc9e6fce7854f6319aba267ff58" prot="public" static="no" const="no" explicit="no" inline="no" virt="non-virtual">
         <type>void</type>
@@ -182,7 +182,7 @@
         </detaileddescription>
         <inbodydescription>
         </inbodydescription>
-        <location file="C:/Users/DonsterLaptop/Documents/Robot288/cpre288_generalpurposeautomatedrobot/Robot/Utils/lcd.h" line="26" column="1" bodyfile="C:/Users/DonsterLaptop/Documents/Robot288/cpre288_generalpurposeautomatedrobot/Robot/Utils/lcd.c" bodystart="132" bodyend="140"/>
+        <location file="C:/Users/DonsterLaptop/Documents/Robot288/cpre288_generalpurposeautomatedrobot/Robot/Utils/lcd.h" line="27" column="1" bodyfile="C:/Users/DonsterLaptop/Documents/Robot288/cpre288_generalpurposeautomatedrobot/Robot/Utils/lcd.c" bodystart="134" bodyend="142"/>
       </memberdef>
       <memberdef kind="function" id="lcd_8h_1ad235a86241458b1e7b8771688bfdaf9a" prot="public" static="no" const="no" explicit="no" inline="yes" virt="non-virtual">
         <type>void</type>
@@ -198,7 +198,7 @@
         </detaileddescription>
         <inbodydescription>
         </inbodydescription>
-        <location file="C:/Users/DonsterLaptop/Documents/Robot288/cpre288_generalpurposeautomatedrobot/Robot/Utils/lcd.h" line="29" column="1" bodyfile="C:/Users/DonsterLaptop/Documents/Robot288/cpre288_generalpurposeautomatedrobot/Robot/Utils/lcd.c" bodystart="177" bodyend="184"/>
+        <location file="C:/Users/DonsterLaptop/Documents/Robot288/cpre288_generalpurposeautomatedrobot/Robot/Utils/lcd.h" line="30" column="1" bodyfile="C:/Users/DonsterLaptop/Documents/Robot288/cpre288_generalpurposeautomatedrobot/Robot/Utils/lcd.c" bodystart="179" bodyend="186"/>
       </memberdef>
       <memberdef kind="function" id="lcd_8h_1a3aabf730aa4e0393bb5c959583c00a8e" prot="public" static="no" const="no" explicit="no" inline="yes" virt="non-virtual">
         <type>void</type>
@@ -214,7 +214,7 @@
         </detaileddescription>
         <inbodydescription>
         </inbodydescription>
-        <location file="C:/Users/DonsterLaptop/Documents/Robot288/cpre288_generalpurposeautomatedrobot/Robot/Utils/lcd.h" line="32" column="1" bodyfile="C:/Users/DonsterLaptop/Documents/Robot288/cpre288_generalpurposeautomatedrobot/Robot/Utils/lcd.c" bodystart="187" bodyend="190"/>
+        <location file="C:/Users/DonsterLaptop/Documents/Robot288/cpre288_generalpurposeautomatedrobot/Robot/Utils/lcd.h" line="33" column="1" bodyfile="C:/Users/DonsterLaptop/Documents/Robot288/cpre288_generalpurposeautomatedrobot/Robot/Utils/lcd.c" bodystart="189" bodyend="192"/>
       </memberdef>
       <memberdef kind="function" id="lcd_8h_1a22493bdaca08073e3014decb34db38a6" prot="public" static="no" const="no" explicit="no" inline="no" virt="non-virtual">
         <type>void</type>
@@ -231,7 +231,7 @@
 <para>Goto Line on LCD - 0 Indexed. </para>        </detaileddescription>
         <inbodydescription>
         </inbodydescription>
-        <location file="C:/Users/DonsterLaptop/Documents/Robot288/cpre288_generalpurposeautomatedrobot/Robot/Utils/lcd.h" line="35" column="1" bodyfile="C:/Users/DonsterLaptop/Documents/Robot288/cpre288_generalpurposeautomatedrobot/Robot/Utils/lcd.c" bodystart="193" bodyend="202"/>
+        <location file="C:/Users/DonsterLaptop/Documents/Robot288/cpre288_generalpurposeautomatedrobot/Robot/Utils/lcd.h" line="36" column="1" bodyfile="C:/Users/DonsterLaptop/Documents/Robot288/cpre288_generalpurposeautomatedrobot/Robot/Utils/lcd.c" bodystart="195" bodyend="204"/>
       </memberdef>
       <memberdef kind="function" id="lcd_8h_1a785788c99ba018918ffb2db717773fa4" prot="public" static="no" const="no" explicit="no" inline="no" virt="non-virtual">
         <type>void</type>
@@ -252,7 +252,7 @@
         </detaileddescription>
         <inbodydescription>
         </inbodydescription>
-        <location file="C:/Users/DonsterLaptop/Documents/Robot288/cpre288_generalpurposeautomatedrobot/Robot/Utils/lcd.h" line="38" column="1" bodyfile="C:/Users/DonsterLaptop/Documents/Robot288/cpre288_generalpurposeautomatedrobot/Robot/Utils/lcd.c" bodystart="205" bodyend="220"/>
+        <location file="C:/Users/DonsterLaptop/Documents/Robot288/cpre288_generalpurposeautomatedrobot/Robot/Utils/lcd.h" line="39" column="1" bodyfile="C:/Users/DonsterLaptop/Documents/Robot288/cpre288_generalpurposeautomatedrobot/Robot/Utils/lcd.c" bodystart="207" bodyend="222"/>
       </memberdef>
       <memberdef kind="function" id="lcd_8h_1a3c12e31b86febabfc7e62b51e0b9dc30" prot="public" static="no" const="no" explicit="no" inline="no" virt="non-virtual">
         <type>void</type>
@@ -274,49 +274,43 @@
 </para>        </detaileddescription>
         <inbodydescription>
         </inbodydescription>
-        <location file="C:/Users/DonsterLaptop/Documents/Robot288/cpre288_generalpurposeautomatedrobot/Robot/Utils/lcd.h" line="40" column="1" bodyfile="C:/Users/DonsterLaptop/Documents/Robot288/cpre288_generalpurposeautomatedrobot/Robot/Utils/lcd.c" bodystart="234" bodyend="292"/>
+        <location file="C:/Users/DonsterLaptop/Documents/Robot288/cpre288_generalpurposeautomatedrobot/Robot/Utils/lcd.h" line="41" column="1" bodyfile="C:/Users/DonsterLaptop/Documents/Robot288/cpre288_generalpurposeautomatedrobot/Robot/Utils/lcd.c" bodystart="236" bodyend="294"/>
       </memberdef>
       </sectiondef>
     <briefdescription>
-    </briefdescription>
+<para>Header file for <ref refid="lcd_8c" kindref="compound">lcd.c</ref>. </para>    </briefdescription>
     <detaileddescription>
-    </detaileddescription>
+<para><simplesect kind="author"><para>Noah Bergman (nbergman)</para></simplesect>
+<simplesect kind="date"><para>2016-03-01 </para></simplesect>
+</para>    </detaileddescription>
     <programlisting>
-<codeline lineno="1"><highlight class="comment">/*</highlight></codeline>
-<codeline lineno="2"><highlight class="comment"><sp/>*<sp/><sp/><sp/><sp/><sp/><sp/>@file<sp/><sp/><sp/>lcd.h</highlight></codeline>
-<codeline lineno="3"><highlight class="comment"><sp/>*</highlight></codeline>
-<codeline lineno="4"><highlight class="comment"><sp/>*<sp/><sp/><sp/><sp/><sp/><sp/>@brief<sp/><sp/>Header<sp/>file<sp/>for<sp/>lcd.c</highlight></codeline>
-<codeline lineno="5"><highlight class="comment"><sp/>*</highlight></codeline>
-<codeline lineno="6"><highlight class="comment"><sp/>*<sp/><sp/>Created<sp/>on:<sp/>Mar<sp/>1,<sp/>2016</highlight></codeline>
-<codeline lineno="7"><highlight class="comment"><sp/>*<sp/><sp/><sp/><sp/><sp/><sp/>Author:<sp/>nbergman</highlight></codeline>
-<codeline lineno="8"><highlight class="comment"><sp/>*/</highlight><highlight class="normal"></highlight></codeline>
-<codeline lineno="9"><highlight class="normal"></highlight></codeline>
-<codeline lineno="10"><highlight class="normal"></highlight><highlight class="preprocessor">#ifndef<sp/>LCD_H_</highlight><highlight class="normal"></highlight></codeline>
-<codeline lineno="11"><highlight class="normal"></highlight><highlight class="preprocessor">#define<sp/>LCD_H_</highlight><highlight class="normal"></highlight></codeline>
-<codeline lineno="12"><highlight class="normal"></highlight></codeline>
-<codeline lineno="13"><highlight class="normal"></highlight><highlight class="preprocessor">#include<sp/>&lt;stdio.h&gt;</highlight><highlight class="normal"></highlight></codeline>
-<codeline lineno="14"><highlight class="normal"></highlight><highlight class="preprocessor">#include<sp/>&lt;stdint.h&gt;</highlight><highlight class="normal"></highlight></codeline>
-<codeline lineno="15"><highlight class="normal"></highlight><highlight class="preprocessor">#include<sp/>&lt;string.h&gt;</highlight><highlight class="normal"></highlight></codeline>
-<codeline lineno="16"><highlight class="normal"></highlight><highlight class="preprocessor">#include<sp/>&lt;inc/tm4c123gh6pm.h&gt;</highlight><highlight class="normal"></highlight></codeline>
-<codeline lineno="17"><highlight class="normal"></highlight><highlight class="preprocessor">#include<sp/>&quot;timer.h&quot;</highlight><highlight class="normal"></highlight></codeline>
-<codeline lineno="18"><highlight class="normal"></highlight></codeline>
-<codeline lineno="20"><highlight class="keywordtype">void</highlight><highlight class="normal"><sp/>lcd_init(</highlight><highlight class="keywordtype">void</highlight><highlight class="normal">);</highlight></codeline>
-<codeline lineno="21"><highlight class="normal"></highlight></codeline>
-<codeline lineno="23"><highlight class="keywordtype">void</highlight><highlight class="normal"><sp/>lcd_putc(</highlight><highlight class="keywordtype">char</highlight><highlight class="normal"><sp/><ref refid="movementcommands_8c_1a91a70b77df95bd8b0830b49a094c2acb" kindref="member">data</ref>);</highlight></codeline>
-<codeline lineno="24"><highlight class="normal"></highlight></codeline>
-<codeline lineno="26"><highlight class="keywordtype">void</highlight><highlight class="normal"><sp/>lcd_puts(</highlight><highlight class="keywordtype">char</highlight><highlight class="normal"><sp/><ref refid="movementcommands_8c_1a91a70b77df95bd8b0830b49a094c2acb" kindref="member">data</ref>[]);</highlight></codeline>
-<codeline lineno="27"><highlight class="normal"></highlight></codeline>
-<codeline lineno="29"><highlight class="keywordtype">void</highlight><highlight class="normal"><sp/></highlight><highlight class="keyword">inline</highlight><highlight class="normal"><sp/>lcd_clear(</highlight><highlight class="keywordtype">void</highlight><highlight class="normal">);</highlight></codeline>
-<codeline lineno="30"><highlight class="normal"></highlight></codeline>
-<codeline lineno="32"><highlight class="keywordtype">void</highlight><highlight class="normal"><sp/></highlight><highlight class="keyword">inline</highlight><highlight class="normal"><sp/>lcd_home(</highlight><highlight class="keywordtype">void</highlight><highlight class="normal">);</highlight></codeline>
-<codeline lineno="33"><highlight class="normal"></highlight></codeline>
-<codeline lineno="35"><highlight class="keywordtype">void</highlight><highlight class="normal"><sp/>lcd_gotoLine(uint8_t<sp/>lineNum);</highlight></codeline>
-<codeline lineno="36"><highlight class="normal"></highlight></codeline>
-<codeline lineno="38"><highlight class="keywordtype">void</highlight><highlight class="normal"><sp/>lcd_setCursorPos(uint8_t<sp/>x,<sp/>uint8_t<sp/>y);</highlight></codeline>
-<codeline lineno="39"><highlight class="normal"></highlight></codeline>
-<codeline lineno="40"><highlight class="normal"></highlight><highlight class="keywordtype">void</highlight><highlight class="normal"><sp/>lcd_printf(</highlight><highlight class="keyword">const</highlight><highlight class="normal"><sp/></highlight><highlight class="keywordtype">char</highlight><highlight class="normal"><sp/>*format,<sp/>...);</highlight></codeline>
-<codeline lineno="41"><highlight class="normal"></highlight></codeline>
-<codeline lineno="42"><highlight class="normal"></highlight><highlight class="preprocessor">#endif<sp/></highlight><highlight class="comment">/*<sp/>LCD_H_<sp/>*/</highlight><highlight class="preprocessor"></highlight></codeline>
+<codeline lineno="1"></codeline>
+<codeline lineno="11"><highlight class="preprocessor">#ifndef<sp/>LCD_H_</highlight><highlight class="normal"></highlight></codeline>
+<codeline lineno="12"><highlight class="normal"></highlight><highlight class="preprocessor">#define<sp/>LCD_H_</highlight><highlight class="normal"></highlight></codeline>
+<codeline lineno="13"><highlight class="normal"></highlight></codeline>
+<codeline lineno="14"><highlight class="normal"></highlight><highlight class="preprocessor">#include<sp/>&lt;stdio.h&gt;</highlight><highlight class="normal"></highlight></codeline>
+<codeline lineno="15"><highlight class="normal"></highlight><highlight class="preprocessor">#include<sp/>&lt;stdint.h&gt;</highlight><highlight class="normal"></highlight></codeline>
+<codeline lineno="16"><highlight class="normal"></highlight><highlight class="preprocessor">#include<sp/>&lt;string.h&gt;</highlight><highlight class="normal"></highlight></codeline>
+<codeline lineno="17"><highlight class="normal"></highlight><highlight class="preprocessor">#include<sp/>&lt;inc/tm4c123gh6pm.h&gt;</highlight><highlight class="normal"></highlight></codeline>
+<codeline lineno="18"><highlight class="normal"></highlight><highlight class="preprocessor">#include<sp/>&quot;<ref refid="timer_8h" kindref="compound">timer.h</ref>&quot;</highlight><highlight class="normal"></highlight></codeline>
+<codeline lineno="19"><highlight class="normal"></highlight></codeline>
+<codeline lineno="21"><highlight class="keywordtype">void</highlight><highlight class="normal"><sp/><ref refid="lcd_8h_1a6842775ba83d166f02b8fef8bb63b1e6" kindref="member">lcd_init</ref>(</highlight><highlight class="keywordtype">void</highlight><highlight class="normal">);</highlight></codeline>
+<codeline lineno="22"><highlight class="normal"></highlight></codeline>
+<codeline lineno="24"><highlight class="keywordtype">void</highlight><highlight class="normal"><sp/><ref refid="lcd_8h_1a1b59543ebb020ae74d6bcdf06e2b6d3b" kindref="member">lcd_putc</ref>(</highlight><highlight class="keywordtype">char</highlight><highlight class="normal"><sp/><ref refid="main_8c_1a91a70b77df95bd8b0830b49a094c2acb" kindref="member">data</ref>);</highlight></codeline>
+<codeline lineno="25"><highlight class="normal"></highlight></codeline>
+<codeline lineno="27"><highlight class="keywordtype">void</highlight><highlight class="normal"><sp/><ref refid="lcd_8h_1ac68eefc9e6fce7854f6319aba267ff58" kindref="member">lcd_puts</ref>(</highlight><highlight class="keywordtype">char</highlight><highlight class="normal"><sp/><ref refid="main_8c_1a91a70b77df95bd8b0830b49a094c2acb" kindref="member">data</ref>[]);</highlight></codeline>
+<codeline lineno="28"><highlight class="normal"></highlight></codeline>
+<codeline lineno="30"><highlight class="keywordtype">void</highlight><highlight class="normal"><sp/></highlight><highlight class="keyword">inline</highlight><highlight class="normal"><sp/><ref refid="lcd_8h_1ad235a86241458b1e7b8771688bfdaf9a" kindref="member">lcd_clear</ref>(</highlight><highlight class="keywordtype">void</highlight><highlight class="normal">);</highlight></codeline>
+<codeline lineno="31"><highlight class="normal"></highlight></codeline>
+<codeline lineno="33"><highlight class="keywordtype">void</highlight><highlight class="normal"><sp/></highlight><highlight class="keyword">inline</highlight><highlight class="normal"><sp/><ref refid="lcd_8h_1a3aabf730aa4e0393bb5c959583c00a8e" kindref="member">lcd_home</ref>(</highlight><highlight class="keywordtype">void</highlight><highlight class="normal">);</highlight></codeline>
+<codeline lineno="34"><highlight class="normal"></highlight></codeline>
+<codeline lineno="36"><highlight class="keywordtype">void</highlight><highlight class="normal"><sp/><ref refid="lcd_8h_1a22493bdaca08073e3014decb34db38a6" kindref="member">lcd_gotoLine</ref>(uint8_t<sp/>lineNum);</highlight></codeline>
+<codeline lineno="37"><highlight class="normal"></highlight></codeline>
+<codeline lineno="39"><highlight class="keywordtype">void</highlight><highlight class="normal"><sp/><ref refid="lcd_8h_1a785788c99ba018918ffb2db717773fa4" kindref="member">lcd_setCursorPos</ref>(uint8_t<sp/>x,<sp/>uint8_t<sp/>y);</highlight></codeline>
+<codeline lineno="40"><highlight class="normal"></highlight></codeline>
+<codeline lineno="41"><highlight class="normal"></highlight><highlight class="keywordtype">void</highlight><highlight class="normal"><sp/><ref refid="lcd_8h_1a3c12e31b86febabfc7e62b51e0b9dc30" kindref="member">lcd_printf</ref>(</highlight><highlight class="keyword">const</highlight><highlight class="normal"><sp/></highlight><highlight class="keywordtype">char</highlight><highlight class="normal"><sp/>*format,<sp/>...);</highlight></codeline>
+<codeline lineno="42"><highlight class="normal"></highlight></codeline>
+<codeline lineno="43"><highlight class="normal"></highlight><highlight class="preprocessor">#endif<sp/></highlight><highlight class="comment">/*<sp/>LCD_H_<sp/>*/</highlight><highlight class="preprocessor"></highlight></codeline>
     </programlisting>
     <location file="C:/Users/DonsterLaptop/Documents/Robot288/cpre288_generalpurposeautomatedrobot/Robot/Utils/lcd.h"/>
   </compounddef>
diff --git a/Doxygen/xml/main_8c.xml b/Doxygen/xml/main_8c.xml
index 2052e56a0e381edac25bbfe421001eecf3c79940..3a3a124320d7b6ca3f9f6224f03a86f4e3fd36d4 100644
--- a/Doxygen/xml/main_8c.xml
+++ b/Doxygen/xml/main_8c.xml
@@ -53,7 +53,7 @@
       </node>
       <node id="124">
         <label>utils/timer4.h</label>
-        <link refid="timer4_8h_source"/>
+        <link refid="timer4_8h"/>
         <childnode refid="122" relation="include">
         </childnode>
         <childnode refid="125" relation="include">
@@ -89,7 +89,7 @@
       </node>
       <node id="127">
         <label>Utils/lcd.h</label>
-        <link refid="lcd_8h_source"/>
+        <link refid="lcd_8h"/>
         <childnode refid="128" relation="include">
         </childnode>
         <childnode refid="122" relation="include">
@@ -118,7 +118,7 @@
       </node>
       <node id="121">
         <label>Utils/timer.h</label>
-        <link refid="timer_8h_source"/>
+        <link refid="timer_8h"/>
         <childnode refid="122" relation="include">
         </childnode>
         <childnode refid="123" relation="include">
@@ -170,7 +170,7 @@
       </node>
       <node id="130">
         <label>Utils/open_interface.h</label>
-        <link refid="open__interface_8h_source"/>
+        <link refid="open__interface_8h"/>
         <childnode refid="128" relation="include">
         </childnode>
         <childnode refid="122" relation="include">
@@ -208,10 +208,10 @@
         <briefdescription>
         </briefdescription>
         <detaileddescription>
-<para>Data string used to send data to uart </para>        </detaileddescription>
+<para>Data string used to send data over UART </para>        </detaileddescription>
         <inbodydescription>
         </inbodydescription>
-        <location file="C:/Users/DonsterLaptop/Documents/Robot288/cpre288_generalpurposeautomatedrobot/Robot/main.c" line="13" column="1" bodyfile="C:/Users/DonsterLaptop/Documents/Robot288/cpre288_generalpurposeautomatedrobot/Robot/main.c" bodystart="13" bodyend="-1"/>
+        <location file="C:/Users/DonsterLaptop/Documents/Robot288/cpre288_generalpurposeautomatedrobot/Robot/main.c" line="28" column="1" bodyfile="C:/Users/DonsterLaptop/Documents/Robot288/cpre288_generalpurposeautomatedrobot/Robot/main.c" bodystart="28" bodyend="-1"/>
       </memberdef>
       </sectiondef>
       <sectiondef kind="func">
@@ -229,103 +229,110 @@
         </detaileddescription>
         <inbodydescription>
 <para>all the initialization for every piece we used as well as the different variables needed to make the main run properly.</para><para>continually looks for a new command and calls the function depending on what command is found. updates every loop and calls parse command when a new command comes through. </para>        </inbodydescription>
-        <location file="C:/Users/DonsterLaptop/Documents/Robot288/cpre288_generalpurposeautomatedrobot/Robot/main.c" line="15" column="1" bodyfile="C:/Users/DonsterLaptop/Documents/Robot288/cpre288_generalpurposeautomatedrobot/Robot/main.c" bodystart="15" bodyend="94"/>
+        <location file="C:/Users/DonsterLaptop/Documents/Robot288/cpre288_generalpurposeautomatedrobot/Robot/main.c" line="30" column="1" bodyfile="C:/Users/DonsterLaptop/Documents/Robot288/cpre288_generalpurposeautomatedrobot/Robot/main.c" bodystart="30" bodyend="109"/>
       </memberdef>
       </sectiondef>
     <briefdescription>
-    </briefdescription>
+<para>Library of functions for reading the cliff sensors and determining the type of boundary being detected. </para>    </briefdescription>
     <detaileddescription>
-    </detaileddescription>
+<para><simplesect kind="author"><para>Quentin Urbanowicz </para></simplesect>
+<simplesect kind="author"><para>Rene Chavez </para></simplesect>
+<simplesect kind="author"><para>Peyton Sher </para></simplesect>
+<simplesect kind="author"><para>Don Kieu</para></simplesect>
+<simplesect kind="date"><para>2018-11-06, 11-15, 11-27, 12-04, 12-06 </para></simplesect>
+</para>    </detaileddescription>
     <programlisting>
-<codeline lineno="1"><highlight class="preprocessor">#include<sp/>&lt;Utils/timer.h&gt;</highlight><highlight class="normal"></highlight></codeline>
-<codeline lineno="2"><highlight class="normal"></highlight><highlight class="preprocessor">#include<sp/>&lt;utils/timer4.h&gt;</highlight><highlight class="normal"></highlight></codeline>
-<codeline lineno="3"><highlight class="normal"></highlight><highlight class="preprocessor">#include<sp/>&lt;Utils/lcd.h&gt;</highlight><highlight class="normal"></highlight></codeline>
-<codeline lineno="4"><highlight class="normal"></highlight><highlight class="preprocessor">#include<sp/>&lt;Utils/open_interface.h&gt;</highlight><highlight class="normal"></highlight></codeline>
-<codeline lineno="5"><highlight class="normal"></highlight><highlight class="preprocessor">#include<sp/>&lt;<ref refid="movementcommands_8h" kindref="compound">Navigation/movementcommands.h</ref>&gt;</highlight><highlight class="normal"></highlight></codeline>
-<codeline lineno="6"><highlight class="normal"></highlight><highlight class="preprocessor">#include<sp/>&lt;<ref refid="uart_8h" kindref="compound">Communication/uart.h</ref>&gt;</highlight><highlight class="normal"></highlight></codeline>
-<codeline lineno="7"><highlight class="normal"></highlight><highlight class="preprocessor">#include<sp/>&lt;<ref refid="_sound_8h" kindref="compound">Utils/Sound.h</ref>&gt;</highlight><highlight class="normal"></highlight></codeline>
-<codeline lineno="8"><highlight class="normal"></highlight><highlight class="preprocessor">#include<sp/>&lt;<ref refid="sweep__sensor_8h" kindref="compound">Sensor/sweep_sensor.h</ref>&gt;</highlight><highlight class="normal"></highlight></codeline>
-<codeline lineno="9"><highlight class="normal"></highlight><highlight class="preprocessor">#include<sp/>&lt;<ref refid="cliff__sensor_8h" kindref="compound">Sensor/cliff_sensor.h</ref>&gt;</highlight></codeline>
-<codeline lineno="13"><highlight class="keywordtype">char</highlight><highlight class="normal"><sp/>*<sp/><ref refid="movementcommands_8c_1a91a70b77df95bd8b0830b49a094c2acb" kindref="member">data</ref>;</highlight></codeline>
-<codeline lineno="14"><highlight class="normal"></highlight></codeline>
-<codeline lineno="15"><highlight class="normal"></highlight><highlight class="keywordtype">int</highlight><highlight class="normal"><sp/>main(</highlight><highlight class="keywordtype">void</highlight><highlight class="normal">)</highlight></codeline>
-<codeline lineno="16"><highlight class="normal">{</highlight></codeline>
-<codeline lineno="18"><highlight class="normal"><sp/><sp/><sp/><sp/>clock_timer_init();</highlight></codeline>
-<codeline lineno="19"><highlight class="normal"><sp/><sp/><sp/><sp/><ref refid="movementcommands_8c_1a91a70b77df95bd8b0830b49a094c2acb" kindref="member">data</ref><sp/>=<sp/>malloc(100);</highlight></codeline>
-<codeline lineno="20"><highlight class="normal"><sp/><sp/><sp/><sp/><ref refid="structoi__t" kindref="compound">oi_t</ref><sp/>*</highlight><highlight class="keyword">self</highlight><highlight class="normal"><sp/>=<sp/>oi_alloc();</highlight></codeline>
-<codeline lineno="21"><highlight class="normal"><sp/><sp/><sp/><sp/>lcd_init();</highlight></codeline>
-<codeline lineno="22"><highlight class="normal"><sp/><sp/><sp/><sp/><ref refid="sweep__sensor_8c_1aa858319b04e153550a93648468db3171" kindref="member">sweep_init</ref>();</highlight></codeline>
-<codeline lineno="23"><highlight class="normal"><sp/><sp/><sp/><sp/>oi_init(</highlight><highlight class="keyword">self</highlight><highlight class="normal">);</highlight></codeline>
-<codeline lineno="24"><highlight class="normal"><sp/><sp/><sp/><sp/>oi_update(</highlight><highlight class="keyword">self</highlight><highlight class="normal">);</highlight></codeline>
-<codeline lineno="25"><highlight class="normal"><sp/><sp/><sp/><sp/>oi_update(</highlight><highlight class="keyword">self</highlight><highlight class="normal">);</highlight></codeline>
-<codeline lineno="26"><highlight class="normal"></highlight></codeline>
-<codeline lineno="27"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="keywordtype">int</highlight><highlight class="normal"><sp/>command<sp/>=<sp/>0;</highlight></codeline>
-<codeline lineno="28"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="keywordtype">int</highlight><highlight class="normal"><sp/>degree<sp/>=<sp/>0;</highlight></codeline>
-<codeline lineno="29"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="keywordtype">int</highlight><highlight class="normal"><sp/>distance<sp/>=<sp/>0;</highlight></codeline>
-<codeline lineno="30"><highlight class="normal"></highlight></codeline>
-<codeline lineno="31"><highlight class="normal"></highlight></codeline>
-<codeline lineno="33"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">while</highlight><highlight class="normal"><sp/>(1)</highlight></codeline>
-<codeline lineno="34"><highlight class="normal"><sp/><sp/><sp/><sp/>{</highlight></codeline>
-<codeline lineno="35"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>oi_update(</highlight><highlight class="keyword">self</highlight><highlight class="normal">);</highlight></codeline>
-<codeline lineno="36"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="comment">//Parse<sp/>the<sp/>last<sp/>command<sp/>line<sp/>read<sp/>from<sp/>the<sp/>UART</highlight><highlight class="normal"></highlight></codeline>
-<codeline lineno="37"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><ref refid="movementcommands_8c_1af24f4aea581508f13025bf49cdb40b44" kindref="member">parseCommand</ref>(<ref refid="uart_8c_1a46df527ddf86c0ebfe750173a41dd4d3" kindref="member">getLastLine</ref>(),<sp/>&amp;command,<sp/>&amp;degree,<sp/>&amp;distance);</highlight></codeline>
-<codeline lineno="38"><highlight class="normal"></highlight></codeline>
-<codeline lineno="39"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="comment">//Check<sp/>the<sp/>Ground<sp/>for<sp/>ending<sp/>Zone,<sp/>and<sp/>it<sp/>send<sp/>it<sp/>out<sp/>to<sp/>the<sp/>GUI<sp/>if<sp/>it<sp/>does</highlight><highlight class="normal"></highlight></codeline>
-<codeline lineno="40"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">if</highlight><highlight class="normal"><sp/>(<ref refid="cliff__sensor_8c_1aea9fa7041962d3fde3549a56f8855162" kindref="member">checkGroundSensors</ref>(</highlight><highlight class="keyword">self</highlight><highlight class="normal">)<sp/>==<sp/>3)</highlight></codeline>
-<codeline lineno="41"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>{</highlight></codeline>
-<codeline lineno="42"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>snprintf(<ref refid="movementcommands_8c_1a91a70b77df95bd8b0830b49a094c2acb" kindref="member">data</ref>,<sp/>100,<sp/></highlight><highlight class="stringliteral">&quot;z<sp/>%d<sp/>%d<sp/>%d<sp/>%d\0&quot;</highlight><highlight class="normal">,<sp/><ref refid="cliff__sensor_8c_1a1fa03a7f9a05ace91224ea610463e871" kindref="member">cs_getTerrain</ref>(</highlight><highlight class="keyword">self</highlight><highlight class="normal">,<sp/>LEFT),</highlight></codeline>
-<codeline lineno="43"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><ref refid="cliff__sensor_8c_1a1fa03a7f9a05ace91224ea610463e871" kindref="member">cs_getTerrain</ref>(</highlight><highlight class="keyword">self</highlight><highlight class="normal">,<sp/>FRONT_LEFT),</highlight></codeline>
-<codeline lineno="44"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><ref refid="cliff__sensor_8c_1a1fa03a7f9a05ace91224ea610463e871" kindref="member">cs_getTerrain</ref>(</highlight><highlight class="keyword">self</highlight><highlight class="normal">,<sp/>FRONT_RIGHT),</highlight></codeline>
-<codeline lineno="45"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><ref refid="cliff__sensor_8c_1a1fa03a7f9a05ace91224ea610463e871" kindref="member">cs_getTerrain</ref>(</highlight><highlight class="keyword">self</highlight><highlight class="normal">,<sp/>RIGHT));</highlight></codeline>
-<codeline lineno="46"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><ref refid="uart_8c_1af96d1ce52b8a52eabc606489d31351e9" kindref="member">uart_sendStr</ref>(<ref refid="movementcommands_8c_1a91a70b77df95bd8b0830b49a094c2acb" kindref="member">data</ref>);</highlight></codeline>
-<codeline lineno="47"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>}</highlight></codeline>
-<codeline lineno="48"><highlight class="normal"></highlight></codeline>
-<codeline lineno="49"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">if</highlight><highlight class="normal"><sp/>(command<sp/>==<sp/>MOVE)</highlight></codeline>
-<codeline lineno="50"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>{</highlight></codeline>
-<codeline lineno="51"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="comment">//robot<sp/>is<sp/>turned<sp/>then<sp/>moved<sp/>forward<sp/>until<sp/>it<sp/>hits<sp/>a<sp/>boundary,<sp/>cliff,<sp/>or<sp/>bumps<sp/>something,<sp/>then<sp/>sends<sp/>robot<sp/>position<sp/>to<sp/>gui</highlight><highlight class="normal"></highlight></codeline>
-<codeline lineno="52"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><ref refid="movementcommands_8c_1a363d2d2063890c9731f0d9222060cd48" kindref="member">turnRobotDegree</ref>(</highlight><highlight class="keyword">self</highlight><highlight class="normal">,<sp/>degree);</highlight></codeline>
-<codeline lineno="53"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><ref refid="movementcommands_8c_1ac19e613d92cdd54f047e591fc0c99b07" kindref="member">moveRobotDistance</ref>(</highlight><highlight class="keyword">self</highlight><highlight class="normal">,<sp/>distance);</highlight></codeline>
-<codeline lineno="54"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><ref refid="uart_8c_1a8be40187644dacbc28cabbc673a36bff" kindref="member">uart_clear</ref>();<sp/></highlight><highlight class="comment">//We<sp/>read<sp/>the<sp/>command,<sp/>clear<sp/>it<sp/>off<sp/>the<sp/>UART</highlight><highlight class="normal"></highlight></codeline>
-<codeline lineno="55"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordtype">float</highlight><highlight class="normal"><sp/>x,<sp/>y,<sp/>h;</highlight></codeline>
-<codeline lineno="56"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><ref refid="movementcommands_8c_1a35f84947bb1dd6f437da3949f213c373" kindref="member">getPosition</ref>(&amp;x,<sp/>&amp;y,<sp/>&amp;h);<sp/></highlight><highlight class="comment">//Read<sp/>the<sp/>current<sp/>robot<sp/>position</highlight><highlight class="normal"></highlight></codeline>
-<codeline lineno="57"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>memset(<ref refid="movementcommands_8c_1a91a70b77df95bd8b0830b49a094c2acb" kindref="member">data</ref>,<sp/>0,<sp/>100);</highlight></codeline>
-<codeline lineno="58"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>snprintf(<ref refid="movementcommands_8c_1a91a70b77df95bd8b0830b49a094c2acb" kindref="member">data</ref>,<sp/>100,<sp/></highlight><highlight class="stringliteral">&quot;x<sp/>%.2f<sp/>y<sp/>%.2f<sp/>h<sp/>%.2f\n\0&quot;</highlight><highlight class="normal">,<sp/>x,<sp/>y,<sp/>h);<sp/></highlight><highlight class="comment">//Send<sp/>the<sp/>robot<sp/>position<sp/>to<sp/>GUI</highlight><highlight class="normal"></highlight></codeline>
-<codeline lineno="59"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><ref refid="uart_8c_1af96d1ce52b8a52eabc606489d31351e9" kindref="member">uart_sendStr</ref>(<ref refid="movementcommands_8c_1a91a70b77df95bd8b0830b49a094c2acb" kindref="member">data</ref>);</highlight></codeline>
-<codeline lineno="60"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>}</highlight></codeline>
-<codeline lineno="61"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">else</highlight><highlight class="normal"><sp/></highlight><highlight class="keywordflow">if</highlight><highlight class="normal"><sp/>(command<sp/>==<sp/>MOVE_IGNORE)</highlight></codeline>
-<codeline lineno="62"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>{</highlight></codeline>
-<codeline lineno="63"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="comment">//Same<sp/>as<sp/>the<sp/>MOVE<sp/>command<sp/>but<sp/>with<sp/>the<sp/>robot<sp/>ignoring<sp/>the<sp/>boundary</highlight><highlight class="normal"></highlight></codeline>
-<codeline lineno="64"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><ref refid="movementcommands_8c_1a363d2d2063890c9731f0d9222060cd48" kindref="member">turnRobotDegree</ref>(</highlight><highlight class="keyword">self</highlight><highlight class="normal">,<sp/>degree);</highlight></codeline>
-<codeline lineno="65"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><ref refid="movementcommands_8c_1aec736dae690e0a896c49d05b27c9b970" kindref="member">moveRobotDistanceIgnore</ref>(</highlight><highlight class="keyword">self</highlight><highlight class="normal">,<sp/>distance);</highlight></codeline>
-<codeline lineno="66"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><ref refid="uart_8c_1a8be40187644dacbc28cabbc673a36bff" kindref="member">uart_clear</ref>();<sp/></highlight><highlight class="comment">//We<sp/>read<sp/>the<sp/>command,<sp/>clear<sp/>it<sp/>off<sp/>the<sp/>UART</highlight><highlight class="normal"></highlight></codeline>
-<codeline lineno="67"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordtype">float</highlight><highlight class="normal"><sp/>x,<sp/>y,<sp/>h;</highlight></codeline>
-<codeline lineno="68"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><ref refid="movementcommands_8c_1a35f84947bb1dd6f437da3949f213c373" kindref="member">getPosition</ref>(&amp;x,<sp/>&amp;y,<sp/>&amp;h);<sp/></highlight><highlight class="comment">//Read<sp/>the<sp/>current<sp/>robot<sp/>position</highlight><highlight class="normal"></highlight></codeline>
-<codeline lineno="69"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>memset(<ref refid="movementcommands_8c_1a91a70b77df95bd8b0830b49a094c2acb" kindref="member">data</ref>,<sp/>0,<sp/>100);</highlight></codeline>
-<codeline lineno="70"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>snprintf(<ref refid="movementcommands_8c_1a91a70b77df95bd8b0830b49a094c2acb" kindref="member">data</ref>,<sp/>100,<sp/></highlight><highlight class="stringliteral">&quot;x<sp/>%.2f<sp/>y<sp/>%.2f<sp/>h<sp/>%.2f\n\0&quot;</highlight><highlight class="normal">,<sp/>x,<sp/>y,<sp/>h);<sp/></highlight><highlight class="comment">//Send<sp/>the<sp/>robot<sp/>position<sp/>to<sp/>GUI</highlight><highlight class="normal"></highlight></codeline>
-<codeline lineno="71"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><ref refid="uart_8c_1af96d1ce52b8a52eabc606489d31351e9" kindref="member">uart_sendStr</ref>(<ref refid="movementcommands_8c_1a91a70b77df95bd8b0830b49a094c2acb" kindref="member">data</ref>);</highlight></codeline>
-<codeline lineno="72"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>}</highlight></codeline>
-<codeline lineno="73"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">else</highlight><highlight class="normal"><sp/></highlight><highlight class="keywordflow">if</highlight><highlight class="normal"><sp/>(command<sp/>==<sp/>PLAY_SOUND)</highlight></codeline>
-<codeline lineno="74"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>{</highlight></codeline>
-<codeline lineno="75"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><ref refid="_sound_8c_1a89a739cfb6c248f26551c5ac303b0841" kindref="member">playSong</ref>();</highlight></codeline>
-<codeline lineno="76"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><ref refid="uart_8c_1a8be40187644dacbc28cabbc673a36bff" kindref="member">uart_clear</ref>();</highlight><highlight class="comment">//We<sp/>read<sp/>the<sp/>command,<sp/>clear<sp/>it<sp/>off<sp/>the<sp/>UART</highlight><highlight class="normal"></highlight></codeline>
-<codeline lineno="77"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>}</highlight></codeline>
-<codeline lineno="78"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">else</highlight><highlight class="normal"><sp/></highlight><highlight class="keywordflow">if</highlight><highlight class="normal"><sp/>(command<sp/>==<sp/>SWEEP_SENSOR)</highlight></codeline>
-<codeline lineno="79"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>{</highlight></codeline>
-<codeline lineno="80"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><ref refid="sweep__sensor_8c_1a967045ec4778e4ef6fc5b6d9aba3a80d" kindref="member">sweep_doFullSweep</ref>(1.0,<sp/>20);</highlight></codeline>
-<codeline lineno="81"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><ref refid="uart_8c_1a8be40187644dacbc28cabbc673a36bff" kindref="member">uart_clear</ref>();</highlight><highlight class="comment">//We<sp/>read<sp/>the<sp/>command,<sp/>clear<sp/>it<sp/>off<sp/>the<sp/>UART</highlight><highlight class="normal"></highlight></codeline>
-<codeline lineno="82"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>}</highlight></codeline>
-<codeline lineno="83"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">else</highlight><highlight class="normal"><sp/></highlight><highlight class="keywordflow">if</highlight><highlight class="normal"><sp/>(command<sp/>==<sp/>QUERY_MOVEMENT)</highlight></codeline>
-<codeline lineno="84"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>{</highlight></codeline>
-<codeline lineno="85"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordtype">float</highlight><highlight class="normal"><sp/>x,<sp/>y,<sp/>h;</highlight></codeline>
-<codeline lineno="86"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><ref refid="movementcommands_8c_1a35f84947bb1dd6f437da3949f213c373" kindref="member">getPosition</ref>(&amp;x,<sp/>&amp;y,<sp/>&amp;h);</highlight></codeline>
-<codeline lineno="87"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>snprintf(<ref refid="movementcommands_8c_1a91a70b77df95bd8b0830b49a094c2acb" kindref="member">data</ref>,<sp/>100,<sp/></highlight><highlight class="stringliteral">&quot;x<sp/>%.2f<sp/>y<sp/>%.2f<sp/>h<sp/>%.2f\n\0&quot;</highlight><highlight class="normal">,<sp/>x,<sp/>y,<sp/>h);</highlight></codeline>
-<codeline lineno="88"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><ref refid="uart_8c_1af96d1ce52b8a52eabc606489d31351e9" kindref="member">uart_sendStr</ref>(<ref refid="movementcommands_8c_1a91a70b77df95bd8b0830b49a094c2acb" kindref="member">data</ref>);</highlight></codeline>
-<codeline lineno="89"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><ref refid="uart_8c_1a8be40187644dacbc28cabbc673a36bff" kindref="member">uart_clear</ref>();</highlight><highlight class="comment">//We<sp/>read<sp/>the<sp/>command,<sp/>clear<sp/>it<sp/>off<sp/>the<sp/>UART</highlight><highlight class="normal"></highlight></codeline>
-<codeline lineno="90"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>}</highlight></codeline>
-<codeline lineno="91"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>timer_waitMillis(10);</highlight></codeline>
-<codeline lineno="92"><highlight class="normal"><sp/><sp/><sp/><sp/>}</highlight></codeline>
-<codeline lineno="93"><highlight class="normal"></highlight></codeline>
-<codeline lineno="94"><highlight class="normal">}</highlight></codeline>
+<codeline lineno="1"></codeline>
+<codeline lineno="15"><highlight class="preprocessor">#include<sp/>&lt;<ref refid="timer_8h" kindref="compound">Utils/timer.h</ref>&gt;</highlight><highlight class="normal"></highlight></codeline>
+<codeline lineno="16"><highlight class="normal"></highlight><highlight class="preprocessor">#include<sp/>&lt;<ref refid="timer4_8h" kindref="compound">utils/timer4.h</ref>&gt;</highlight><highlight class="normal"></highlight></codeline>
+<codeline lineno="17"><highlight class="normal"></highlight><highlight class="preprocessor">#include<sp/>&lt;<ref refid="lcd_8h" kindref="compound">Utils/lcd.h</ref>&gt;</highlight><highlight class="normal"></highlight></codeline>
+<codeline lineno="18"><highlight class="normal"></highlight><highlight class="preprocessor">#include<sp/>&lt;<ref refid="open__interface_8h" kindref="compound">Utils/open_interface.h</ref>&gt;</highlight><highlight class="normal"></highlight></codeline>
+<codeline lineno="19"><highlight class="normal"></highlight><highlight class="preprocessor">#include<sp/>&lt;<ref refid="movementcommands_8h" kindref="compound">Navigation/movementcommands.h</ref>&gt;</highlight><highlight class="normal"></highlight></codeline>
+<codeline lineno="20"><highlight class="normal"></highlight><highlight class="preprocessor">#include<sp/>&lt;<ref refid="uart_8h" kindref="compound">Communication/uart.h</ref>&gt;</highlight><highlight class="normal"></highlight></codeline>
+<codeline lineno="21"><highlight class="normal"></highlight><highlight class="preprocessor">#include<sp/>&lt;<ref refid="_sound_8h" kindref="compound">Utils/Sound.h</ref>&gt;</highlight><highlight class="normal"></highlight></codeline>
+<codeline lineno="22"><highlight class="normal"></highlight><highlight class="preprocessor">#include<sp/>&lt;<ref refid="sweep__sensor_8h" kindref="compound">Sensor/sweep_sensor.h</ref>&gt;</highlight><highlight class="normal"></highlight></codeline>
+<codeline lineno="23"><highlight class="normal"></highlight><highlight class="preprocessor">#include<sp/>&lt;<ref refid="cliff__sensor_8h" kindref="compound">Sensor/cliff_sensor.h</ref>&gt;</highlight><highlight class="normal"></highlight></codeline>
+<codeline lineno="24"><highlight class="normal"></highlight></codeline>
+<codeline lineno="28" refid="main_8c_1a91a70b77df95bd8b0830b49a094c2acb" refkind="member"><highlight class="keywordtype">char</highlight><highlight class="normal"><sp/>*<sp/><ref refid="main_8c_1a91a70b77df95bd8b0830b49a094c2acb" kindref="member">data</ref>;</highlight></codeline>
+<codeline lineno="29"><highlight class="normal"></highlight></codeline>
+<codeline lineno="30" refid="main_8c_1a840291bc02cba5474a4cb46a9b9566fe" refkind="member"><highlight class="normal"></highlight><highlight class="keywordtype">int</highlight><highlight class="normal"><sp/><ref refid="main_8c_1a840291bc02cba5474a4cb46a9b9566fe" kindref="member">main</ref>(</highlight><highlight class="keywordtype">void</highlight><highlight class="normal">)</highlight></codeline>
+<codeline lineno="31"><highlight class="normal">{</highlight></codeline>
+<codeline lineno="33"><highlight class="normal"><sp/><sp/><sp/><sp/><ref refid="timer4_8c_1afe6c9dd8b2439c58273cbd63b95088fe" kindref="member">clock_timer_init</ref>();</highlight></codeline>
+<codeline lineno="34"><highlight class="normal"><sp/><sp/><sp/><sp/><ref refid="main_8c_1a91a70b77df95bd8b0830b49a094c2acb" kindref="member">data</ref><sp/>=<sp/>malloc(100);</highlight></codeline>
+<codeline lineno="35"><highlight class="normal"><sp/><sp/><sp/><sp/><ref refid="structoi__t" kindref="compound">oi_t</ref><sp/>*</highlight><highlight class="keyword">self</highlight><highlight class="normal"><sp/>=<sp/><ref refid="open__interface_8c_1aad249dffdf79454de76e09092a0445f5" kindref="member">oi_alloc</ref>();</highlight></codeline>
+<codeline lineno="36"><highlight class="normal"><sp/><sp/><sp/><sp/><ref refid="lcd_8c_1a6842775ba83d166f02b8fef8bb63b1e6" kindref="member">lcd_init</ref>();</highlight></codeline>
+<codeline lineno="37"><highlight class="normal"><sp/><sp/><sp/><sp/><ref refid="sweep__sensor_8c_1aa858319b04e153550a93648468db3171" kindref="member">sweep_init</ref>();</highlight></codeline>
+<codeline lineno="38"><highlight class="normal"><sp/><sp/><sp/><sp/><ref refid="open__interface_8c_1a9108ba8c791d0e97444c03b2f40b278a" kindref="member">oi_init</ref>(</highlight><highlight class="keyword">self</highlight><highlight class="normal">);</highlight></codeline>
+<codeline lineno="39"><highlight class="normal"><sp/><sp/><sp/><sp/><ref refid="open__interface_8c_1a9129559bba5ff9dc7e4df64330864674" kindref="member">oi_update</ref>(</highlight><highlight class="keyword">self</highlight><highlight class="normal">);</highlight></codeline>
+<codeline lineno="40"><highlight class="normal"><sp/><sp/><sp/><sp/><ref refid="open__interface_8c_1a9129559bba5ff9dc7e4df64330864674" kindref="member">oi_update</ref>(</highlight><highlight class="keyword">self</highlight><highlight class="normal">);</highlight></codeline>
+<codeline lineno="41"><highlight class="normal"></highlight></codeline>
+<codeline lineno="42"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="keywordtype">int</highlight><highlight class="normal"><sp/>command<sp/>=<sp/>0;</highlight></codeline>
+<codeline lineno="43"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="keywordtype">int</highlight><highlight class="normal"><sp/>degree<sp/>=<sp/>0;</highlight></codeline>
+<codeline lineno="44"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="keywordtype">int</highlight><highlight class="normal"><sp/>distance<sp/>=<sp/>0;</highlight></codeline>
+<codeline lineno="45"><highlight class="normal"></highlight></codeline>
+<codeline lineno="46"><highlight class="normal"></highlight></codeline>
+<codeline lineno="48"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">while</highlight><highlight class="normal"><sp/>(1)</highlight></codeline>
+<codeline lineno="49"><highlight class="normal"><sp/><sp/><sp/><sp/>{</highlight></codeline>
+<codeline lineno="50"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><ref refid="open__interface_8c_1a9129559bba5ff9dc7e4df64330864674" kindref="member">oi_update</ref>(</highlight><highlight class="keyword">self</highlight><highlight class="normal">);</highlight></codeline>
+<codeline lineno="51"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="comment">//Parse<sp/>the<sp/>last<sp/>command<sp/>line<sp/>read<sp/>from<sp/>the<sp/>UART</highlight><highlight class="normal"></highlight></codeline>
+<codeline lineno="52"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><ref refid="movementcommands_8c_1af24f4aea581508f13025bf49cdb40b44" kindref="member">parseCommand</ref>(<ref refid="uart_8c_1a46df527ddf86c0ebfe750173a41dd4d3" kindref="member">getLastLine</ref>(),<sp/>&amp;command,<sp/>&amp;degree,<sp/>&amp;distance);</highlight></codeline>
+<codeline lineno="53"><highlight class="normal"></highlight></codeline>
+<codeline lineno="54"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="comment">//Check<sp/>the<sp/>Ground<sp/>for<sp/>ending<sp/>Zone,<sp/>and<sp/>it<sp/>send<sp/>it<sp/>out<sp/>to<sp/>the<sp/>GUI<sp/>if<sp/>it<sp/>does</highlight><highlight class="normal"></highlight></codeline>
+<codeline lineno="55"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">if</highlight><highlight class="normal"><sp/>(<ref refid="cliff__sensor_8c_1aea9fa7041962d3fde3549a56f8855162" kindref="member">checkGroundSensors</ref>(</highlight><highlight class="keyword">self</highlight><highlight class="normal">)<sp/>==<sp/>3)</highlight></codeline>
+<codeline lineno="56"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>{</highlight></codeline>
+<codeline lineno="57"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>snprintf(<ref refid="main_8c_1a91a70b77df95bd8b0830b49a094c2acb" kindref="member">data</ref>,<sp/>100,<sp/></highlight><highlight class="stringliteral">&quot;z<sp/>%d<sp/>%d<sp/>%d<sp/>%d\0&quot;</highlight><highlight class="normal">,<sp/><ref refid="cliff__sensor_8c_1a1fa03a7f9a05ace91224ea610463e871" kindref="member">cs_getTerrain</ref>(</highlight><highlight class="keyword">self</highlight><highlight class="normal">,<sp/>LEFT),</highlight></codeline>
+<codeline lineno="58"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><ref refid="cliff__sensor_8c_1a1fa03a7f9a05ace91224ea610463e871" kindref="member">cs_getTerrain</ref>(</highlight><highlight class="keyword">self</highlight><highlight class="normal">,<sp/>FRONT_LEFT),</highlight></codeline>
+<codeline lineno="59"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><ref refid="cliff__sensor_8c_1a1fa03a7f9a05ace91224ea610463e871" kindref="member">cs_getTerrain</ref>(</highlight><highlight class="keyword">self</highlight><highlight class="normal">,<sp/>FRONT_RIGHT),</highlight></codeline>
+<codeline lineno="60"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><ref refid="cliff__sensor_8c_1a1fa03a7f9a05ace91224ea610463e871" kindref="member">cs_getTerrain</ref>(</highlight><highlight class="keyword">self</highlight><highlight class="normal">,<sp/>RIGHT));</highlight></codeline>
+<codeline lineno="61"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><ref refid="uart_8c_1af96d1ce52b8a52eabc606489d31351e9" kindref="member">uart_sendStr</ref>(<ref refid="main_8c_1a91a70b77df95bd8b0830b49a094c2acb" kindref="member">data</ref>);</highlight></codeline>
+<codeline lineno="62"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>}</highlight></codeline>
+<codeline lineno="63"><highlight class="normal"></highlight></codeline>
+<codeline lineno="64"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">if</highlight><highlight class="normal"><sp/>(command<sp/>==<sp/>MOVE)</highlight></codeline>
+<codeline lineno="65"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>{</highlight></codeline>
+<codeline lineno="66"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="comment">//robot<sp/>is<sp/>turned<sp/>then<sp/>moved<sp/>forward<sp/>until<sp/>it<sp/>hits<sp/>a<sp/>boundary,<sp/>cliff,<sp/>or<sp/>bumps<sp/>something,<sp/>then<sp/>sends<sp/>robot<sp/>position<sp/>to<sp/>gui</highlight><highlight class="normal"></highlight></codeline>
+<codeline lineno="67"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><ref refid="movementcommands_8c_1a363d2d2063890c9731f0d9222060cd48" kindref="member">turnRobotDegree</ref>(</highlight><highlight class="keyword">self</highlight><highlight class="normal">,<sp/>degree);</highlight></codeline>
+<codeline lineno="68"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><ref refid="movementcommands_8c_1ac19e613d92cdd54f047e591fc0c99b07" kindref="member">moveRobotDistance</ref>(</highlight><highlight class="keyword">self</highlight><highlight class="normal">,<sp/>distance);</highlight></codeline>
+<codeline lineno="69"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><ref refid="uart_8c_1a8be40187644dacbc28cabbc673a36bff" kindref="member">uart_clear</ref>();<sp/></highlight><highlight class="comment">//We<sp/>read<sp/>the<sp/>command,<sp/>clear<sp/>it<sp/>off<sp/>the<sp/>UART</highlight><highlight class="normal"></highlight></codeline>
+<codeline lineno="70"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordtype">float</highlight><highlight class="normal"><sp/>x,<sp/>y,<sp/>h;</highlight></codeline>
+<codeline lineno="71"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><ref refid="movementcommands_8c_1a35f84947bb1dd6f437da3949f213c373" kindref="member">getPosition</ref>(&amp;x,<sp/>&amp;y,<sp/>&amp;h);<sp/></highlight><highlight class="comment">//Read<sp/>the<sp/>current<sp/>robot<sp/>position</highlight><highlight class="normal"></highlight></codeline>
+<codeline lineno="72"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>memset(<ref refid="main_8c_1a91a70b77df95bd8b0830b49a094c2acb" kindref="member">data</ref>,<sp/>0,<sp/>100);</highlight></codeline>
+<codeline lineno="73"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>snprintf(<ref refid="main_8c_1a91a70b77df95bd8b0830b49a094c2acb" kindref="member">data</ref>,<sp/>100,<sp/></highlight><highlight class="stringliteral">&quot;x<sp/>%.2f<sp/>y<sp/>%.2f<sp/>h<sp/>%.2f\n\0&quot;</highlight><highlight class="normal">,<sp/>x,<sp/>y,<sp/>h);<sp/></highlight><highlight class="comment">//Send<sp/>the<sp/>robot<sp/>position<sp/>to<sp/>GUI</highlight><highlight class="normal"></highlight></codeline>
+<codeline lineno="74"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><ref refid="uart_8c_1af96d1ce52b8a52eabc606489d31351e9" kindref="member">uart_sendStr</ref>(<ref refid="main_8c_1a91a70b77df95bd8b0830b49a094c2acb" kindref="member">data</ref>);</highlight></codeline>
+<codeline lineno="75"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>}</highlight></codeline>
+<codeline lineno="76"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">else</highlight><highlight class="normal"><sp/></highlight><highlight class="keywordflow">if</highlight><highlight class="normal"><sp/>(command<sp/>==<sp/>MOVE_IGNORE)</highlight></codeline>
+<codeline lineno="77"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>{</highlight></codeline>
+<codeline lineno="78"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="comment">//Same<sp/>as<sp/>the<sp/>MOVE<sp/>command<sp/>but<sp/>with<sp/>the<sp/>robot<sp/>ignoring<sp/>the<sp/>boundary</highlight><highlight class="normal"></highlight></codeline>
+<codeline lineno="79"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><ref refid="movementcommands_8c_1a363d2d2063890c9731f0d9222060cd48" kindref="member">turnRobotDegree</ref>(</highlight><highlight class="keyword">self</highlight><highlight class="normal">,<sp/>degree);</highlight></codeline>
+<codeline lineno="80"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><ref refid="movementcommands_8c_1aec736dae690e0a896c49d05b27c9b970" kindref="member">moveRobotDistanceIgnore</ref>(</highlight><highlight class="keyword">self</highlight><highlight class="normal">,<sp/>distance);</highlight></codeline>
+<codeline lineno="81"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><ref refid="uart_8c_1a8be40187644dacbc28cabbc673a36bff" kindref="member">uart_clear</ref>();<sp/></highlight><highlight class="comment">//We<sp/>read<sp/>the<sp/>command,<sp/>clear<sp/>it<sp/>off<sp/>the<sp/>UART</highlight><highlight class="normal"></highlight></codeline>
+<codeline lineno="82"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordtype">float</highlight><highlight class="normal"><sp/>x,<sp/>y,<sp/>h;</highlight></codeline>
+<codeline lineno="83"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><ref refid="movementcommands_8c_1a35f84947bb1dd6f437da3949f213c373" kindref="member">getPosition</ref>(&amp;x,<sp/>&amp;y,<sp/>&amp;h);<sp/></highlight><highlight class="comment">//Read<sp/>the<sp/>current<sp/>robot<sp/>position</highlight><highlight class="normal"></highlight></codeline>
+<codeline lineno="84"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>memset(<ref refid="main_8c_1a91a70b77df95bd8b0830b49a094c2acb" kindref="member">data</ref>,<sp/>0,<sp/>100);</highlight></codeline>
+<codeline lineno="85"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>snprintf(<ref refid="main_8c_1a91a70b77df95bd8b0830b49a094c2acb" kindref="member">data</ref>,<sp/>100,<sp/></highlight><highlight class="stringliteral">&quot;x<sp/>%.2f<sp/>y<sp/>%.2f<sp/>h<sp/>%.2f\n\0&quot;</highlight><highlight class="normal">,<sp/>x,<sp/>y,<sp/>h);<sp/></highlight><highlight class="comment">//Send<sp/>the<sp/>robot<sp/>position<sp/>to<sp/>GUI</highlight><highlight class="normal"></highlight></codeline>
+<codeline lineno="86"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><ref refid="uart_8c_1af96d1ce52b8a52eabc606489d31351e9" kindref="member">uart_sendStr</ref>(<ref refid="main_8c_1a91a70b77df95bd8b0830b49a094c2acb" kindref="member">data</ref>);</highlight></codeline>
+<codeline lineno="87"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>}</highlight></codeline>
+<codeline lineno="88"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">else</highlight><highlight class="normal"><sp/></highlight><highlight class="keywordflow">if</highlight><highlight class="normal"><sp/>(command<sp/>==<sp/>PLAY_SOUND)</highlight></codeline>
+<codeline lineno="89"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>{</highlight></codeline>
+<codeline lineno="90"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><ref refid="_sound_8c_1a89a739cfb6c248f26551c5ac303b0841" kindref="member">playSong</ref>();</highlight></codeline>
+<codeline lineno="91"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><ref refid="uart_8c_1a8be40187644dacbc28cabbc673a36bff" kindref="member">uart_clear</ref>();</highlight><highlight class="comment">//We<sp/>read<sp/>the<sp/>command,<sp/>clear<sp/>it<sp/>off<sp/>the<sp/>UART</highlight><highlight class="normal"></highlight></codeline>
+<codeline lineno="92"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>}</highlight></codeline>
+<codeline lineno="93"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">else</highlight><highlight class="normal"><sp/></highlight><highlight class="keywordflow">if</highlight><highlight class="normal"><sp/>(command<sp/>==<sp/>SWEEP_SENSOR)</highlight></codeline>
+<codeline lineno="94"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>{</highlight></codeline>
+<codeline lineno="95"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><ref refid="sweep__sensor_8c_1a967045ec4778e4ef6fc5b6d9aba3a80d" kindref="member">sweep_doFullSweep</ref>(1.0,<sp/>20);</highlight></codeline>
+<codeline lineno="96"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><ref refid="uart_8c_1a8be40187644dacbc28cabbc673a36bff" kindref="member">uart_clear</ref>();</highlight><highlight class="comment">//We<sp/>read<sp/>the<sp/>command,<sp/>clear<sp/>it<sp/>off<sp/>the<sp/>UART</highlight><highlight class="normal"></highlight></codeline>
+<codeline lineno="97"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>}</highlight></codeline>
+<codeline lineno="98"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">else</highlight><highlight class="normal"><sp/></highlight><highlight class="keywordflow">if</highlight><highlight class="normal"><sp/>(command<sp/>==<sp/>QUERY_MOVEMENT)</highlight></codeline>
+<codeline lineno="99"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>{</highlight></codeline>
+<codeline lineno="100"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordtype">float</highlight><highlight class="normal"><sp/>x,<sp/>y,<sp/>h;</highlight></codeline>
+<codeline lineno="101"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><ref refid="movementcommands_8c_1a35f84947bb1dd6f437da3949f213c373" kindref="member">getPosition</ref>(&amp;x,<sp/>&amp;y,<sp/>&amp;h);</highlight></codeline>
+<codeline lineno="102"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>snprintf(<ref refid="main_8c_1a91a70b77df95bd8b0830b49a094c2acb" kindref="member">data</ref>,<sp/>100,<sp/></highlight><highlight class="stringliteral">&quot;x<sp/>%.2f<sp/>y<sp/>%.2f<sp/>h<sp/>%.2f\n\0&quot;</highlight><highlight class="normal">,<sp/>x,<sp/>y,<sp/>h);</highlight></codeline>
+<codeline lineno="103"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><ref refid="uart_8c_1af96d1ce52b8a52eabc606489d31351e9" kindref="member">uart_sendStr</ref>(<ref refid="main_8c_1a91a70b77df95bd8b0830b49a094c2acb" kindref="member">data</ref>);</highlight></codeline>
+<codeline lineno="104"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><ref refid="uart_8c_1a8be40187644dacbc28cabbc673a36bff" kindref="member">uart_clear</ref>();</highlight><highlight class="comment">//We<sp/>read<sp/>the<sp/>command,<sp/>clear<sp/>it<sp/>off<sp/>the<sp/>UART</highlight><highlight class="normal"></highlight></codeline>
+<codeline lineno="105"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>}</highlight></codeline>
+<codeline lineno="106"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><ref refid="timer_8c_1a7e2a3b4520e885e5e7d40fa87e242a75" kindref="member">timer_waitMillis</ref>(10);</highlight></codeline>
+<codeline lineno="107"><highlight class="normal"><sp/><sp/><sp/><sp/>}</highlight></codeline>
+<codeline lineno="108"><highlight class="normal"></highlight></codeline>
+<codeline lineno="109"><highlight class="normal">}</highlight></codeline>
     </programlisting>
     <location file="C:/Users/DonsterLaptop/Documents/Robot288/cpre288_generalpurposeautomatedrobot/Robot/main.c"/>
   </compounddef>
diff --git a/Doxygen/xml/main_8cpp.xml b/Doxygen/xml/main_8cpp.xml
index c653340abfe085ec0972eefa109e7b5cae4ad230..6b462e01322d3498c2a8aaaaf8ea7d26979532e4 100644
--- a/Doxygen/xml/main_8cpp.xml
+++ b/Doxygen/xml/main_8cpp.xml
@@ -216,7 +216,7 @@
 <codeline lineno="36"><highlight class="normal"></highlight><highlight class="preprocessor">#include<sp/>&quot;<ref refid="tcp_8h" kindref="compound">tcp.h</ref>&quot;</highlight><highlight class="normal"></highlight></codeline>
 <codeline lineno="37"><highlight class="normal"></highlight></codeline>
 <codeline lineno="38"><highlight class="normal"></highlight></codeline>
-<codeline lineno="39"><highlight class="normal"></highlight><highlight class="keywordtype">int</highlight><highlight class="normal"><sp/>main(</highlight><highlight class="keywordtype">int</highlight><highlight class="normal"><sp/>argc,<sp/></highlight><highlight class="keywordtype">char</highlight><highlight class="normal"><sp/>*<sp/>argv[]){</highlight></codeline>
+<codeline lineno="39"><highlight class="normal"></highlight><highlight class="keywordtype">int</highlight><highlight class="normal"><sp/><ref refid="main_8c_1a840291bc02cba5474a4cb46a9b9566fe" kindref="member">main</ref>(</highlight><highlight class="keywordtype">int</highlight><highlight class="normal"><sp/>argc,<sp/></highlight><highlight class="keywordtype">char</highlight><highlight class="normal"><sp/>*<sp/>argv[]){</highlight></codeline>
 <codeline lineno="40"><highlight class="normal"></highlight></codeline>
 <codeline lineno="41"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="comment">//Start<sp/>the<sp/>renderer</highlight><highlight class="normal"></highlight></codeline>
 <codeline lineno="42"><highlight class="normal"><sp/><sp/><sp/><sp/><ref refid="class_render" kindref="compound">Render</ref>*<sp/>render<sp/>=<sp/></highlight><highlight class="keyword">new</highlight><highlight class="normal"><sp/><ref refid="class_render" kindref="compound">Render</ref>();</highlight></codeline>
diff --git a/Doxygen/xml/movementcommands_8c.xml b/Doxygen/xml/movementcommands_8c.xml
index 8225fae24c115d428702f2c810ef1693e6dfad16..12ad1e27666e360a23cf6778e9616a7526da4119 100644
--- a/Doxygen/xml/movementcommands_8c.xml
+++ b/Doxygen/xml/movementcommands_8c.xml
@@ -54,7 +54,7 @@
       </node>
       <node id="151">
         <label>Utils/lcd.h</label>
-        <link refid="lcd_8h_source"/>
+        <link refid="lcd_8h"/>
         <childnode refid="144" relation="include">
         </childnode>
         <childnode refid="145" relation="include">
@@ -71,7 +71,7 @@
       </node>
       <node id="149">
         <label>Utils/Timer.h</label>
-        <link refid="timer_8h_source"/>
+        <link refid="timer_8h"/>
         <childnode refid="145" relation="include">
         </childnode>
         <childnode refid="150" relation="include">
@@ -95,7 +95,7 @@
       </node>
       <node id="143">
         <label>Utils/open_interface.h</label>
-        <link refid="open__interface_8h_source"/>
+        <link refid="open__interface_8h"/>
         <childnode refid="144" relation="include">
         </childnode>
         <childnode refid="145" relation="include">
@@ -420,7 +420,7 @@
 <codeline lineno="1"></codeline>
 <codeline lineno="12"><highlight class="preprocessor">#include<sp/>&quot;<ref refid="movementcommands_8h" kindref="compound">movementcommands.h</ref>&quot;</highlight><highlight class="normal"></highlight></codeline>
 <codeline lineno="13"><highlight class="normal"></highlight><highlight class="preprocessor">#include<sp/>&lt;math.h&gt;</highlight><highlight class="normal"></highlight></codeline>
-<codeline lineno="14"><highlight class="normal"></highlight><highlight class="preprocessor">#include<sp/>&lt;Utils/lcd.h&gt;</highlight><highlight class="normal"></highlight></codeline>
+<codeline lineno="14"><highlight class="normal"></highlight><highlight class="preprocessor">#include<sp/>&lt;<ref refid="lcd_8h" kindref="compound">Utils/lcd.h</ref>&gt;</highlight><highlight class="normal"></highlight></codeline>
 <codeline lineno="15"><highlight class="normal"></highlight><highlight class="preprocessor">#include<sp/>&lt;<ref refid="cliff__sensor_8h" kindref="compound">Sensor/cliff_sensor.h</ref>&gt;</highlight><highlight class="normal"></highlight></codeline>
 <codeline lineno="16"><highlight class="normal"></highlight></codeline>
 <codeline lineno="17"><highlight class="normal"></highlight><highlight class="preprocessor">#define<sp/>PI<sp/>3.1415926535897932</highlight><highlight class="normal"></highlight></codeline>
@@ -437,8 +437,8 @@
 <codeline lineno="43"><highlight class="normal"></highlight></codeline>
 <codeline lineno="44" refid="movementcommands_8h_1ac19e613d92cdd54f047e591fc0c99b07" refkind="member"><highlight class="normal"></highlight><highlight class="keywordtype">void</highlight><highlight class="normal"><sp/><ref refid="movementcommands_8c_1ac19e613d92cdd54f047e591fc0c99b07" kindref="member">moveRobotDistance</ref>(<ref refid="structoi__t" kindref="compound">oi_t</ref>*<sp/></highlight><highlight class="keyword">self</highlight><highlight class="normal">,<sp/></highlight><highlight class="keywordtype">int</highlight><highlight class="normal"><sp/>input)</highlight></codeline>
 <codeline lineno="45"><highlight class="normal">{</highlight></codeline>
-<codeline lineno="46"><highlight class="normal"><sp/><sp/><sp/><sp/>oi_update(</highlight><highlight class="keyword">self</highlight><highlight class="normal">);</highlight></codeline>
-<codeline lineno="47"><highlight class="normal"><sp/><sp/><sp/><sp/>oi_update(</highlight><highlight class="keyword">self</highlight><highlight class="normal">);</highlight></codeline>
+<codeline lineno="46"><highlight class="normal"><sp/><sp/><sp/><sp/><ref refid="open__interface_8c_1a9129559bba5ff9dc7e4df64330864674" kindref="member">oi_update</ref>(</highlight><highlight class="keyword">self</highlight><highlight class="normal">);</highlight></codeline>
+<codeline lineno="47"><highlight class="normal"><sp/><sp/><sp/><sp/><ref refid="open__interface_8c_1a9129559bba5ff9dc7e4df64330864674" kindref="member">oi_update</ref>(</highlight><highlight class="keyword">self</highlight><highlight class="normal">);</highlight></codeline>
 <codeline lineno="48"><highlight class="normal"></highlight></codeline>
 <codeline lineno="49"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="keywordtype">float</highlight><highlight class="normal"><sp/>current_distance<sp/>=<sp/></highlight><highlight class="keyword">self</highlight><highlight class="normal">-&gt;distance;<sp/></highlight><highlight class="comment">//<sp/>Set<sp/>Current<sp/>distance<sp/>to<sp/>the<sp/>delta<sp/>distance<sp/>from<sp/>last<sp/>update</highlight><highlight class="normal"></highlight></codeline>
 <codeline lineno="50"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="keywordtype">float</highlight><highlight class="normal"><sp/>kp<sp/>=<sp/>5;<sp/></highlight><highlight class="comment">//KP<sp/>Gain<sp/>to<sp/>5</highlight><highlight class="normal"></highlight></codeline>
@@ -448,7 +448,7 @@
 <codeline lineno="54"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="comment">//Move<sp/>until<sp/>we<sp/>hit<sp/>steady<sp/>state<sp/>error</highlight><highlight class="normal"></highlight></codeline>
 <codeline lineno="55"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">while</highlight><highlight class="normal"><sp/>((error<sp/>/<sp/>kp)<sp/>&gt;<sp/><ref refid="movementcommands_8c_1a5bc58d43105d723b774621219125aeb1" kindref="member">err</ref><sp/>||<sp/>(error<sp/>/<sp/>kp)<sp/>&lt;<sp/>-<ref refid="movementcommands_8c_1a5bc58d43105d723b774621219125aeb1" kindref="member">err</ref>)</highlight></codeline>
 <codeline lineno="56"><highlight class="normal"><sp/><sp/><sp/><sp/>{</highlight></codeline>
-<codeline lineno="57"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>oi_update(</highlight><highlight class="keyword">self</highlight><highlight class="normal">);</highlight></codeline>
+<codeline lineno="57"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><ref refid="open__interface_8c_1a9129559bba5ff9dc7e4df64330864674" kindref="member">oi_update</ref>(</highlight><highlight class="keyword">self</highlight><highlight class="normal">);</highlight></codeline>
 <codeline lineno="58"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="comment">//Add<sp/>distance<sp/>traveled<sp/>from<sp/>last<sp/>update</highlight><highlight class="normal"></highlight></codeline>
 <codeline lineno="59"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>current_distance<sp/>+=<sp/></highlight><highlight class="keyword">self</highlight><highlight class="normal">-&gt;distance;</highlight></codeline>
 <codeline lineno="60"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="comment">//Set<sp/>Feedback<sp/>Error</highlight><highlight class="normal"></highlight></codeline>
@@ -466,7 +466,7 @@
 <codeline lineno="73"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>}</highlight></codeline>
 <codeline lineno="74"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">else</highlight><highlight class="normal"><sp/></highlight><highlight class="keywordflow">if</highlight><highlight class="normal"><sp/>(groundVar<sp/>==<sp/>2)</highlight></codeline>
 <codeline lineno="75"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>{</highlight></codeline>
-<codeline lineno="76"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>oi_setWheels(0,<sp/>0);</highlight></codeline>
+<codeline lineno="76"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><ref refid="open__interface_8c_1a49949f029cc5f84ad903aa7022f4e5e0" kindref="member">oi_setWheels</ref>(0,<sp/>0);</highlight></codeline>
 <codeline lineno="77"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>snprintf(<ref refid="movementcommands_8c_1a91a70b77df95bd8b0830b49a094c2acb" kindref="member">data</ref>,<sp/>100,<sp/></highlight><highlight class="stringliteral">&quot;b<sp/>%d<sp/>%d<sp/>%d<sp/>%d\0&quot;</highlight><highlight class="normal">,<sp/><ref refid="cliff__sensor_8c_1a1fa03a7f9a05ace91224ea610463e871" kindref="member">cs_getTerrain</ref>(</highlight><highlight class="keyword">self</highlight><highlight class="normal">,<sp/>LEFT),</highlight></codeline>
 <codeline lineno="78"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><ref refid="cliff__sensor_8c_1a1fa03a7f9a05ace91224ea610463e871" kindref="member">cs_getTerrain</ref>(</highlight><highlight class="keyword">self</highlight><highlight class="normal">,<sp/>FRONT_LEFT),</highlight></codeline>
 <codeline lineno="79"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><ref refid="cliff__sensor_8c_1a1fa03a7f9a05ace91224ea610463e871" kindref="member">cs_getTerrain</ref>(</highlight><highlight class="keyword">self</highlight><highlight class="normal">,<sp/>FRONT_RIGHT),</highlight></codeline>
@@ -478,7 +478,7 @@
 <codeline lineno="85"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">else</highlight><highlight class="normal"><sp/></highlight><highlight class="keywordflow">if</highlight><highlight class="normal"><sp/>(groundVar<sp/>==<sp/>1<sp/>&amp;&amp;<sp/>lastGround<sp/>==<sp/>0)</highlight></codeline>
 <codeline lineno="86"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>{</highlight></codeline>
 <codeline lineno="87"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>lastGround<sp/>=<sp/>1;</highlight></codeline>
-<codeline lineno="88"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>oi_setWheels(0,<sp/>0);</highlight></codeline>
+<codeline lineno="88"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><ref refid="open__interface_8c_1a49949f029cc5f84ad903aa7022f4e5e0" kindref="member">oi_setWheels</ref>(0,<sp/>0);</highlight></codeline>
 <codeline lineno="89"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>snprintf(<ref refid="movementcommands_8c_1a91a70b77df95bd8b0830b49a094c2acb" kindref="member">data</ref>,<sp/>100,<sp/></highlight><highlight class="stringliteral">&quot;c<sp/>%d<sp/>%d<sp/>%d<sp/>%d\0&quot;</highlight><highlight class="normal">,<sp/><ref refid="cliff__sensor_8c_1a1fa03a7f9a05ace91224ea610463e871" kindref="member">cs_getTerrain</ref>(</highlight><highlight class="keyword">self</highlight><highlight class="normal">,<sp/>LEFT),</highlight></codeline>
 <codeline lineno="90"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><ref refid="cliff__sensor_8c_1a1fa03a7f9a05ace91224ea610463e871" kindref="member">cs_getTerrain</ref>(</highlight><highlight class="keyword">self</highlight><highlight class="normal">,<sp/>FRONT_LEFT),</highlight></codeline>
 <codeline lineno="91"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><ref refid="cliff__sensor_8c_1a1fa03a7f9a05ace91224ea610463e871" kindref="member">cs_getTerrain</ref>(</highlight><highlight class="keyword">self</highlight><highlight class="normal">,<sp/>FRONT_RIGHT),</highlight></codeline>
@@ -489,7 +489,7 @@
 <codeline lineno="96"><highlight class="normal"></highlight></codeline>
 <codeline lineno="98"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">if</highlight><highlight class="normal"><sp/>((self-&gt;bumpLeft<sp/>==<sp/>1<sp/>||<sp/>self-&gt;bumpRight<sp/>==<sp/>1)<sp/>&amp;&amp;<sp/>lastGround<sp/>==<sp/>0)</highlight></codeline>
 <codeline lineno="99"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>{</highlight></codeline>
-<codeline lineno="100"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>oi_setWheels(0,<sp/>0);</highlight></codeline>
+<codeline lineno="100"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><ref refid="open__interface_8c_1a49949f029cc5f84ad903aa7022f4e5e0" kindref="member">oi_setWheels</ref>(0,<sp/>0);</highlight></codeline>
 <codeline lineno="101"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>lastGround<sp/>=<sp/>1;</highlight></codeline>
 <codeline lineno="102"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>snprintf(<ref refid="movementcommands_8c_1a91a70b77df95bd8b0830b49a094c2acb" kindref="member">data</ref>,<sp/>100,<sp/></highlight><highlight class="stringliteral">&quot;q<sp/>%d<sp/>%d\0&quot;</highlight><highlight class="normal">,<sp/>self-&gt;bumpLeft,<sp/>self-&gt;bumpRight);</highlight></codeline>
 <codeline lineno="103"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><ref refid="uart_8c_1af96d1ce52b8a52eabc606489d31351e9" kindref="member">uart_sendStr</ref>(<ref refid="movementcommands_8c_1a91a70b77df95bd8b0830b49a094c2acb" kindref="member">data</ref>);</highlight></codeline>
@@ -498,7 +498,7 @@
 <codeline lineno="106"><highlight class="normal"></highlight></codeline>
 <codeline lineno="108"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>error<sp/>=<sp/>error<sp/>&gt;<sp/>150.0<sp/>?<sp/>150.0<sp/>:<sp/>error;</highlight></codeline>
 <codeline lineno="109"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>error<sp/>=<sp/>error<sp/>&lt;<sp/>-150.0<sp/>?<sp/>-150.0<sp/>:<sp/>error;</highlight></codeline>
-<codeline lineno="110"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>oi_setWheels((</highlight><highlight class="keywordtype">int</highlight><highlight class="normal">)<sp/>error,<sp/>(</highlight><highlight class="keywordtype">int</highlight><highlight class="normal">)<sp/>error);</highlight></codeline>
+<codeline lineno="110"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><ref refid="open__interface_8c_1a49949f029cc5f84ad903aa7022f4e5e0" kindref="member">oi_setWheels</ref>((</highlight><highlight class="keywordtype">int</highlight><highlight class="normal">)<sp/>error,<sp/>(</highlight><highlight class="keywordtype">int</highlight><highlight class="normal">)<sp/>error);</highlight></codeline>
 <codeline lineno="111"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>snprintf(<ref refid="movementcommands_8c_1a91a70b77df95bd8b0830b49a094c2acb" kindref="member">data</ref>,<sp/>100,<sp/></highlight><highlight class="stringliteral">&quot;x<sp/>%.2f<sp/>y<sp/>%.2f<sp/>h<sp/>%.2f\0&quot;</highlight><highlight class="normal">,</highlight></codeline>
 <codeline lineno="112"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><ref refid="movementcommands_8c_1ad03773048a53823ad40f581d998dc34b" kindref="member">posx</ref><sp/>-<sp/>current_distance<sp/>*<sp/>sin(<ref refid="movementcommands_8c_1ac5682e48513a771560df50e3b213e61a" kindref="member">heading</ref><sp/>*<sp/>PI<sp/>/<sp/>180.0),</highlight></codeline>
 <codeline lineno="113"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><ref refid="movementcommands_8c_1a43b49252713d5c09faf4af4ce59fdc12" kindref="member">posy</ref><sp/>+<sp/>current_distance<sp/>*<sp/>cos(<ref refid="movementcommands_8c_1ac5682e48513a771560df50e3b213e61a" kindref="member">heading</ref><sp/>*<sp/>PI<sp/>/<sp/>180.0),<sp/><ref refid="movementcommands_8c_1ac5682e48513a771560df50e3b213e61a" kindref="member">heading</ref>);</highlight></codeline>
@@ -508,14 +508,14 @@
 <codeline lineno="117"><highlight class="normal"></highlight></codeline>
 <codeline lineno="118"><highlight class="normal"><sp/><sp/><sp/><sp/><ref refid="movementcommands_8c_1ad03773048a53823ad40f581d998dc34b" kindref="member">posx</ref><sp/>+=<sp/>-current_distance<sp/>*<sp/>sin(<ref refid="movementcommands_8c_1ac5682e48513a771560df50e3b213e61a" kindref="member">heading</ref><sp/>*<sp/>PI<sp/>/<sp/>180.0);</highlight></codeline>
 <codeline lineno="119"><highlight class="normal"><sp/><sp/><sp/><sp/><ref refid="movementcommands_8c_1a43b49252713d5c09faf4af4ce59fdc12" kindref="member">posy</ref><sp/>+=<sp/>current_distance<sp/>*<sp/>cos(<ref refid="movementcommands_8c_1ac5682e48513a771560df50e3b213e61a" kindref="member">heading</ref><sp/>*<sp/>PI<sp/>/<sp/>180.0);</highlight></codeline>
-<codeline lineno="120"><highlight class="normal"><sp/><sp/><sp/><sp/>oi_setWheels(0,<sp/>0);</highlight></codeline>
+<codeline lineno="120"><highlight class="normal"><sp/><sp/><sp/><sp/><ref refid="open__interface_8c_1a49949f029cc5f84ad903aa7022f4e5e0" kindref="member">oi_setWheels</ref>(0,<sp/>0);</highlight></codeline>
 <codeline lineno="121"><highlight class="normal"></highlight></codeline>
 <codeline lineno="122"><highlight class="normal">}</highlight></codeline>
 <codeline lineno="123"><highlight class="normal"></highlight></codeline>
 <codeline lineno="124" refid="movementcommands_8h_1aec736dae690e0a896c49d05b27c9b970" refkind="member"><highlight class="normal"></highlight><highlight class="keywordtype">void</highlight><highlight class="normal"><sp/><ref refid="movementcommands_8c_1aec736dae690e0a896c49d05b27c9b970" kindref="member">moveRobotDistanceIgnore</ref>(<ref refid="structoi__t" kindref="compound">oi_t</ref>*<sp/></highlight><highlight class="keyword">self</highlight><highlight class="normal">,<sp/></highlight><highlight class="keywordtype">int</highlight><highlight class="normal"><sp/>input)</highlight></codeline>
 <codeline lineno="125"><highlight class="normal">{</highlight></codeline>
-<codeline lineno="126"><highlight class="normal"><sp/><sp/><sp/><sp/>oi_update(</highlight><highlight class="keyword">self</highlight><highlight class="normal">);</highlight></codeline>
-<codeline lineno="127"><highlight class="normal"><sp/><sp/><sp/><sp/>oi_update(</highlight><highlight class="keyword">self</highlight><highlight class="normal">);</highlight></codeline>
+<codeline lineno="126"><highlight class="normal"><sp/><sp/><sp/><sp/><ref refid="open__interface_8c_1a9129559bba5ff9dc7e4df64330864674" kindref="member">oi_update</ref>(</highlight><highlight class="keyword">self</highlight><highlight class="normal">);</highlight></codeline>
+<codeline lineno="127"><highlight class="normal"><sp/><sp/><sp/><sp/><ref refid="open__interface_8c_1a9129559bba5ff9dc7e4df64330864674" kindref="member">oi_update</ref>(</highlight><highlight class="keyword">self</highlight><highlight class="normal">);</highlight></codeline>
 <codeline lineno="128"><highlight class="normal"></highlight></codeline>
 <codeline lineno="129"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="keywordtype">float</highlight><highlight class="normal"><sp/>current_distance<sp/>=<sp/></highlight><highlight class="keyword">self</highlight><highlight class="normal">-&gt;distance;<sp/></highlight><highlight class="comment">//<sp/>Set<sp/>Current<sp/>distance<sp/>to<sp/>the<sp/>delta<sp/>distance<sp/>from<sp/>last<sp/>update</highlight><highlight class="normal"></highlight></codeline>
 <codeline lineno="130"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="keywordtype">float</highlight><highlight class="normal"><sp/>kp<sp/>=<sp/>5;<sp/></highlight><highlight class="comment">//KP<sp/>Gain<sp/>to<sp/>5</highlight><highlight class="normal"></highlight></codeline>
@@ -525,7 +525,7 @@
 <codeline lineno="134"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="comment">//Move<sp/>until<sp/>we<sp/>hit<sp/>steady<sp/>state<sp/>error</highlight><highlight class="normal"></highlight></codeline>
 <codeline lineno="135"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">while</highlight><highlight class="normal"><sp/>((error<sp/>/<sp/>kp)<sp/>&gt;<sp/><ref refid="movementcommands_8c_1a5bc58d43105d723b774621219125aeb1" kindref="member">err</ref><sp/>||<sp/>(error<sp/>/<sp/>kp)<sp/>&lt;<sp/>-<ref refid="movementcommands_8c_1a5bc58d43105d723b774621219125aeb1" kindref="member">err</ref>)</highlight></codeline>
 <codeline lineno="136"><highlight class="normal"><sp/><sp/><sp/><sp/>{</highlight></codeline>
-<codeline lineno="137"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>oi_update(</highlight><highlight class="keyword">self</highlight><highlight class="normal">);</highlight></codeline>
+<codeline lineno="137"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><ref refid="open__interface_8c_1a9129559bba5ff9dc7e4df64330864674" kindref="member">oi_update</ref>(</highlight><highlight class="keyword">self</highlight><highlight class="normal">);</highlight></codeline>
 <codeline lineno="138"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>current_distance<sp/>+=<sp/></highlight><highlight class="keyword">self</highlight><highlight class="normal">-&gt;distance;</highlight></codeline>
 <codeline lineno="139"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>error<sp/>=<sp/>kp<sp/>*<sp/>(input<sp/>-<sp/>current_distance);</highlight></codeline>
 <codeline lineno="140"><highlight class="normal"></highlight></codeline>
@@ -549,7 +549,7 @@
 <codeline lineno="159"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">else</highlight><highlight class="normal"><sp/></highlight><highlight class="keywordflow">if</highlight><highlight class="normal"><sp/>(groundVar<sp/>==<sp/>1<sp/>&amp;&amp;<sp/>lastGround<sp/>==<sp/>0)</highlight></codeline>
 <codeline lineno="160"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>{</highlight></codeline>
 <codeline lineno="161"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>lastGround<sp/>=<sp/>1;</highlight></codeline>
-<codeline lineno="162"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>oi_setWheels(0,<sp/>0);</highlight></codeline>
+<codeline lineno="162"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><ref refid="open__interface_8c_1a49949f029cc5f84ad903aa7022f4e5e0" kindref="member">oi_setWheels</ref>(0,<sp/>0);</highlight></codeline>
 <codeline lineno="163"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>snprintf(<ref refid="movementcommands_8c_1a91a70b77df95bd8b0830b49a094c2acb" kindref="member">data</ref>,<sp/>100,<sp/></highlight><highlight class="stringliteral">&quot;c<sp/>%d<sp/>%d<sp/>%d<sp/>%d\0&quot;</highlight><highlight class="normal">,<sp/><ref refid="cliff__sensor_8c_1a1fa03a7f9a05ace91224ea610463e871" kindref="member">cs_getTerrain</ref>(</highlight><highlight class="keyword">self</highlight><highlight class="normal">,<sp/>LEFT),</highlight></codeline>
 <codeline lineno="164"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><ref refid="cliff__sensor_8c_1a1fa03a7f9a05ace91224ea610463e871" kindref="member">cs_getTerrain</ref>(</highlight><highlight class="keyword">self</highlight><highlight class="normal">,<sp/>FRONT_LEFT),</highlight></codeline>
 <codeline lineno="165"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><ref refid="cliff__sensor_8c_1a1fa03a7f9a05ace91224ea610463e871" kindref="member">cs_getTerrain</ref>(</highlight><highlight class="keyword">self</highlight><highlight class="normal">,<sp/>FRONT_RIGHT),</highlight></codeline>
@@ -559,7 +559,7 @@
 <codeline lineno="169"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>}</highlight></codeline>
 <codeline lineno="171"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">if</highlight><highlight class="normal"><sp/>((self-&gt;bumpLeft<sp/>==<sp/>1<sp/>||<sp/>self-&gt;bumpRight<sp/>==<sp/>1)<sp/>&amp;&amp;<sp/>lastGround<sp/>==<sp/>0)</highlight></codeline>
 <codeline lineno="172"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>{</highlight></codeline>
-<codeline lineno="173"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>oi_setWheels(0,<sp/>0);</highlight></codeline>
+<codeline lineno="173"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><ref refid="open__interface_8c_1a49949f029cc5f84ad903aa7022f4e5e0" kindref="member">oi_setWheels</ref>(0,<sp/>0);</highlight></codeline>
 <codeline lineno="174"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>lastGround<sp/>=<sp/>1;</highlight></codeline>
 <codeline lineno="175"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>snprintf(<ref refid="movementcommands_8c_1a91a70b77df95bd8b0830b49a094c2acb" kindref="member">data</ref>,<sp/>100,<sp/></highlight><highlight class="stringliteral">&quot;q<sp/>%d<sp/>%d\0&quot;</highlight><highlight class="normal">,<sp/>self-&gt;bumpLeft,<sp/>self-&gt;bumpRight);</highlight></codeline>
 <codeline lineno="176"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><ref refid="uart_8c_1af96d1ce52b8a52eabc606489d31351e9" kindref="member">uart_sendStr</ref>(<ref refid="movementcommands_8c_1a91a70b77df95bd8b0830b49a094c2acb" kindref="member">data</ref>);</highlight></codeline>
@@ -568,7 +568,7 @@
 <codeline lineno="179"><highlight class="normal"></highlight></codeline>
 <codeline lineno="181"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>error<sp/>=<sp/>error<sp/>&gt;<sp/>150.0<sp/>?<sp/>150.0<sp/>:<sp/>error;</highlight></codeline>
 <codeline lineno="182"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>error<sp/>=<sp/>error<sp/>&lt;<sp/>-150.0<sp/>?<sp/>-150.0<sp/>:<sp/>error;</highlight></codeline>
-<codeline lineno="183"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>oi_setWheels((</highlight><highlight class="keywordtype">int</highlight><highlight class="normal">)<sp/>error,<sp/>(</highlight><highlight class="keywordtype">int</highlight><highlight class="normal">)<sp/>error);</highlight></codeline>
+<codeline lineno="183"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><ref refid="open__interface_8c_1a49949f029cc5f84ad903aa7022f4e5e0" kindref="member">oi_setWheels</ref>((</highlight><highlight class="keywordtype">int</highlight><highlight class="normal">)<sp/>error,<sp/>(</highlight><highlight class="keywordtype">int</highlight><highlight class="normal">)<sp/>error);</highlight></codeline>
 <codeline lineno="184"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>snprintf(<ref refid="movementcommands_8c_1a91a70b77df95bd8b0830b49a094c2acb" kindref="member">data</ref>,<sp/>100,<sp/></highlight><highlight class="stringliteral">&quot;x<sp/>%.2f<sp/>y<sp/>%.2f<sp/>h<sp/>%.2f\0&quot;</highlight><highlight class="normal">,</highlight></codeline>
 <codeline lineno="185"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><ref refid="movementcommands_8c_1ad03773048a53823ad40f581d998dc34b" kindref="member">posx</ref><sp/>-<sp/>current_distance<sp/>*<sp/>sin(<ref refid="movementcommands_8c_1ac5682e48513a771560df50e3b213e61a" kindref="member">heading</ref><sp/>*<sp/>PI<sp/>/<sp/>180.0),</highlight></codeline>
 <codeline lineno="186"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><ref refid="movementcommands_8c_1a43b49252713d5c09faf4af4ce59fdc12" kindref="member">posy</ref><sp/>+<sp/>current_distance<sp/>*<sp/>cos(<ref refid="movementcommands_8c_1ac5682e48513a771560df50e3b213e61a" kindref="member">heading</ref><sp/>*<sp/>PI<sp/>/<sp/>180.0),<sp/><ref refid="movementcommands_8c_1ac5682e48513a771560df50e3b213e61a" kindref="member">heading</ref>);</highlight></codeline>
@@ -578,14 +578,14 @@
 <codeline lineno="190"><highlight class="normal"></highlight></codeline>
 <codeline lineno="191"><highlight class="normal"><sp/><sp/><sp/><sp/><ref refid="movementcommands_8c_1ad03773048a53823ad40f581d998dc34b" kindref="member">posx</ref><sp/>+=<sp/>-current_distance<sp/>*<sp/>sin(<ref refid="movementcommands_8c_1ac5682e48513a771560df50e3b213e61a" kindref="member">heading</ref><sp/>*<sp/>PI<sp/>/<sp/>180.0);</highlight></codeline>
 <codeline lineno="192"><highlight class="normal"><sp/><sp/><sp/><sp/><ref refid="movementcommands_8c_1a43b49252713d5c09faf4af4ce59fdc12" kindref="member">posy</ref><sp/>+=<sp/>current_distance<sp/>*<sp/>cos(<ref refid="movementcommands_8c_1ac5682e48513a771560df50e3b213e61a" kindref="member">heading</ref><sp/>*<sp/>PI<sp/>/<sp/>180.0);</highlight></codeline>
-<codeline lineno="193"><highlight class="normal"><sp/><sp/><sp/><sp/>oi_setWheels(0,<sp/>0);</highlight></codeline>
+<codeline lineno="193"><highlight class="normal"><sp/><sp/><sp/><sp/><ref refid="open__interface_8c_1a49949f029cc5f84ad903aa7022f4e5e0" kindref="member">oi_setWheels</ref>(0,<sp/>0);</highlight></codeline>
 <codeline lineno="194"><highlight class="normal"></highlight></codeline>
 <codeline lineno="195"><highlight class="normal">}</highlight></codeline>
 <codeline lineno="196"><highlight class="normal"></highlight></codeline>
 <codeline lineno="197" refid="movementcommands_8h_1a363d2d2063890c9731f0d9222060cd48" refkind="member"><highlight class="normal"></highlight><highlight class="keywordtype">float</highlight><highlight class="normal"><sp/><ref refid="movementcommands_8c_1a363d2d2063890c9731f0d9222060cd48" kindref="member">turnRobotDegree</ref>(<ref refid="structoi__t" kindref="compound">oi_t</ref>*<sp/></highlight><highlight class="keyword">self</highlight><highlight class="normal">,<sp/></highlight><highlight class="keywordtype">float</highlight><highlight class="normal"><sp/>degrees)</highlight></codeline>
 <codeline lineno="198"><highlight class="normal">{</highlight></codeline>
-<codeline lineno="199"><highlight class="normal"><sp/><sp/><sp/><sp/>oi_update(</highlight><highlight class="keyword">self</highlight><highlight class="normal">);</highlight></codeline>
-<codeline lineno="200"><highlight class="normal"><sp/><sp/><sp/><sp/>oi_update(</highlight><highlight class="keyword">self</highlight><highlight class="normal">);</highlight></codeline>
+<codeline lineno="199"><highlight class="normal"><sp/><sp/><sp/><sp/><ref refid="open__interface_8c_1a9129559bba5ff9dc7e4df64330864674" kindref="member">oi_update</ref>(</highlight><highlight class="keyword">self</highlight><highlight class="normal">);</highlight></codeline>
+<codeline lineno="200"><highlight class="normal"><sp/><sp/><sp/><sp/><ref refid="open__interface_8c_1a9129559bba5ff9dc7e4df64330864674" kindref="member">oi_update</ref>(</highlight><highlight class="keyword">self</highlight><highlight class="normal">);</highlight></codeline>
 <codeline lineno="201"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="keywordtype">float</highlight><highlight class="normal"><sp/>current_degree<sp/>=<sp/>0;</highlight></codeline>
 <codeline lineno="202"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="keywordtype">float</highlight><highlight class="normal"><sp/>kp<sp/>=<sp/>10;</highlight></codeline>
 <codeline lineno="203"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="keywordtype">float</highlight><highlight class="normal"><sp/>error<sp/>=<sp/>kp<sp/>*<sp/>(degrees<sp/>-<sp/>current_degree);</highlight></codeline>
@@ -601,8 +601,8 @@
 <codeline lineno="213"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>error<sp/>=<sp/>error<sp/>&gt;<sp/>200<sp/>?<sp/>200<sp/>:<sp/>error;</highlight></codeline>
 <codeline lineno="214"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>error<sp/>=<sp/>error<sp/>&lt;<sp/>-200<sp/>?<sp/>-200<sp/>:<sp/>error;</highlight></codeline>
 <codeline lineno="215"><highlight class="normal"></highlight></codeline>
-<codeline lineno="216"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>oi_setWheels(error,<sp/>-error);</highlight></codeline>
-<codeline lineno="217"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>oi_update(</highlight><highlight class="keyword">self</highlight><highlight class="normal">);</highlight></codeline>
+<codeline lineno="216"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><ref refid="open__interface_8c_1a49949f029cc5f84ad903aa7022f4e5e0" kindref="member">oi_setWheels</ref>(error,<sp/>-error);</highlight></codeline>
+<codeline lineno="217"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><ref refid="open__interface_8c_1a9129559bba5ff9dc7e4df64330864674" kindref="member">oi_update</ref>(</highlight><highlight class="keyword">self</highlight><highlight class="normal">);</highlight></codeline>
 <codeline lineno="218"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>snprintf(<ref refid="movementcommands_8c_1a91a70b77df95bd8b0830b49a094c2acb" kindref="member">data</ref>,<sp/>100,<sp/></highlight><highlight class="stringliteral">&quot;x<sp/>%.2f<sp/>y<sp/>%.2f<sp/>h<sp/>%.2f\0&quot;</highlight><highlight class="normal">,<sp/>(</highlight><highlight class="keywordtype">float</highlight><highlight class="normal">)<sp/><ref refid="movementcommands_8c_1ad03773048a53823ad40f581d998dc34b" kindref="member">posx</ref>,</highlight></codeline>
 <codeline lineno="219"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>(</highlight><highlight class="keywordtype">float</highlight><highlight class="normal">)<sp/><ref refid="movementcommands_8c_1a43b49252713d5c09faf4af4ce59fdc12" kindref="member">posy</ref>,<sp/>(</highlight><highlight class="keywordtype">float</highlight><highlight class="normal">)<sp/>newHeading);</highlight></codeline>
 <codeline lineno="220"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><ref refid="uart_8c_1af96d1ce52b8a52eabc606489d31351e9" kindref="member">uart_sendStr</ref>(<ref refid="movementcommands_8c_1a91a70b77df95bd8b0830b49a094c2acb" kindref="member">data</ref>);</highlight></codeline>
@@ -627,8 +627,8 @@
 <codeline lineno="240"><highlight class="normal"></highlight></codeline>
 <codeline lineno="241"><highlight class="normal"><sp/><sp/><sp/><sp/><ref refid="movementcommands_8c_1ac5682e48513a771560df50e3b213e61a" kindref="member">heading</ref><sp/>=<sp/>newHeading;</highlight></codeline>
 <codeline lineno="242"><highlight class="normal"></highlight></codeline>
-<codeline lineno="243"><highlight class="normal"><sp/><sp/><sp/><sp/>oi_setWheels(0,<sp/>0);</highlight></codeline>
-<codeline lineno="244"><highlight class="normal"><sp/><sp/><sp/><sp/>oi_update(</highlight><highlight class="keyword">self</highlight><highlight class="normal">);</highlight></codeline>
+<codeline lineno="243"><highlight class="normal"><sp/><sp/><sp/><sp/><ref refid="open__interface_8c_1a49949f029cc5f84ad903aa7022f4e5e0" kindref="member">oi_setWheels</ref>(0,<sp/>0);</highlight></codeline>
+<codeline lineno="244"><highlight class="normal"><sp/><sp/><sp/><sp/><ref refid="open__interface_8c_1a9129559bba5ff9dc7e4df64330864674" kindref="member">oi_update</ref>(</highlight><highlight class="keyword">self</highlight><highlight class="normal">);</highlight></codeline>
 <codeline lineno="245"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">return</highlight><highlight class="normal"><sp/>current_degree;</highlight></codeline>
 <codeline lineno="246"><highlight class="normal">}</highlight></codeline>
 <codeline lineno="247"><highlight class="normal"></highlight></codeline>
diff --git a/Doxygen/xml/movementcommands_8h.xml b/Doxygen/xml/movementcommands_8h.xml
index e904ca496ff7b58fe456273676a1cc47ff80fd71..15d43770d0c0b90f4b36e1c16469da1094255059 100644
--- a/Doxygen/xml/movementcommands_8h.xml
+++ b/Doxygen/xml/movementcommands_8h.xml
@@ -32,7 +32,7 @@
       </node>
       <node id="166">
         <label>Utils/lcd.h</label>
-        <link refid="lcd_8h_source"/>
+        <link refid="lcd_8h"/>
         <childnode refid="159" relation="include">
         </childnode>
         <childnode refid="160" relation="include">
@@ -49,7 +49,7 @@
       </node>
       <node id="164">
         <label>Utils/Timer.h</label>
-        <link refid="timer_8h_source"/>
+        <link refid="timer_8h"/>
         <childnode refid="160" relation="include">
         </childnode>
         <childnode refid="165" relation="include">
@@ -73,7 +73,7 @@
       </node>
       <node id="158">
         <label>Utils/open_interface.h</label>
-        <link refid="open__interface_8h_source"/>
+        <link refid="open__interface_8h"/>
         <childnode refid="159" relation="include">
         </childnode>
         <childnode refid="160" relation="include">
@@ -117,7 +117,7 @@
       </node>
       <node id="171">
         <label>C:/Users/DonsterLaptop/Documents/Robot288/cpre288_generalpurposeautomatedrobot/Robot/main.c</label>
-        <link refid="main_8c_source"/>
+        <link refid="main_8c"/>
       </node>
     </invincdepgraph>
       <sectiondef kind="enum">
@@ -385,7 +385,7 @@
 </para>    </detaileddescription>
     <programlisting>
 <codeline lineno="1"></codeline>
-<codeline lineno="16"><highlight class="preprocessor">#include<sp/>&lt;Utils/open_interface.h&gt;</highlight><highlight class="normal"></highlight></codeline>
+<codeline lineno="16"><highlight class="preprocessor">#include<sp/>&lt;<ref refid="open__interface_8h" kindref="compound">Utils/open_interface.h</ref>&gt;</highlight><highlight class="normal"></highlight></codeline>
 <codeline lineno="17"><highlight class="normal"></highlight><highlight class="preprocessor">#include<sp/>&lt;<ref refid="uart_8h" kindref="compound">Communication/uart.h</ref>&gt;</highlight><highlight class="normal"></highlight></codeline>
 <codeline lineno="18"><highlight class="normal"></highlight></codeline>
 <codeline lineno="19"><highlight class="normal"></highlight><highlight class="preprocessor">#ifndef<sp/>NAVIGATION_MOVEMENTCOMMANDS_H_</highlight><highlight class="normal"></highlight></codeline>
diff --git a/Doxygen/xml/open__interface_8c.xml b/Doxygen/xml/open__interface_8c.xml
index 2f79a76c99a6a0bb57cee04a570f9ca31f57a916..26205f5b73834422c5be138016b049d1b3f6df21 100644
--- a/Doxygen/xml/open__interface_8c.xml
+++ b/Doxygen/xml/open__interface_8c.xml
@@ -21,7 +21,7 @@
       </node>
       <node id="304">
         <label>Utils/lcd.h</label>
-        <link refid="lcd_8h_source"/>
+        <link refid="lcd_8h"/>
         <childnode refid="297" relation="include">
         </childnode>
         <childnode refid="298" relation="include">
@@ -38,7 +38,7 @@
       </node>
       <node id="302">
         <label>Utils/Timer.h</label>
-        <link refid="timer_8h_source"/>
+        <link refid="timer_8h"/>
         <childnode refid="298" relation="include">
         </childnode>
         <childnode refid="303" relation="include">
@@ -52,7 +52,7 @@
       </node>
       <node id="296">
         <label>open_interface.h</label>
-        <link refid="open__interface_8h_source"/>
+        <link refid="open__interface_8h"/>
         <childnode refid="297" relation="include">
         </childnode>
         <childnode refid="298" relation="include">
@@ -91,7 +91,7 @@
         </detaileddescription>
         <inbodydescription>
         </inbodydescription>
-        <location file="C:/Users/DonsterLaptop/Documents/Robot288/cpre288_generalpurposeautomatedrobot/Robot/Utils/open_interface.c" line="17" column="9" bodyfile="C:/Users/DonsterLaptop/Documents/Robot288/cpre288_generalpurposeautomatedrobot/Robot/Utils/open_interface.c" bodystart="17" bodyend="-1"/>
+        <location file="C:/Users/DonsterLaptop/Documents/Robot288/cpre288_generalpurposeautomatedrobot/Robot/Utils/open_interface.c" line="20" column="9" bodyfile="C:/Users/DonsterLaptop/Documents/Robot288/cpre288_generalpurposeautomatedrobot/Robot/Utils/open_interface.c" bodystart="20" bodyend="-1"/>
       </memberdef>
       <memberdef kind="define" id="open__interface_8c_1a5a4c74c16eef89b9eb24be4ca8a105a3" prot="public" static="no">
         <name>OI_OPCODE_BAUD</name>
@@ -102,7 +102,7 @@
         </detaileddescription>
         <inbodydescription>
         </inbodydescription>
-        <location file="C:/Users/DonsterLaptop/Documents/Robot288/cpre288_generalpurposeautomatedrobot/Robot/Utils/open_interface.c" line="18" column="9" bodyfile="C:/Users/DonsterLaptop/Documents/Robot288/cpre288_generalpurposeautomatedrobot/Robot/Utils/open_interface.c" bodystart="18" bodyend="-1"/>
+        <location file="C:/Users/DonsterLaptop/Documents/Robot288/cpre288_generalpurposeautomatedrobot/Robot/Utils/open_interface.c" line="21" column="9" bodyfile="C:/Users/DonsterLaptop/Documents/Robot288/cpre288_generalpurposeautomatedrobot/Robot/Utils/open_interface.c" bodystart="21" bodyend="-1"/>
       </memberdef>
       <memberdef kind="define" id="open__interface_8c_1a987fc759071d896dfdfe5d9f9e4271ed" prot="public" static="no">
         <name>OI_OPCODE_CONTROL</name>
@@ -113,7 +113,7 @@
         </detaileddescription>
         <inbodydescription>
         </inbodydescription>
-        <location file="C:/Users/DonsterLaptop/Documents/Robot288/cpre288_generalpurposeautomatedrobot/Robot/Utils/open_interface.c" line="19" column="9" bodyfile="C:/Users/DonsterLaptop/Documents/Robot288/cpre288_generalpurposeautomatedrobot/Robot/Utils/open_interface.c" bodystart="19" bodyend="-1"/>
+        <location file="C:/Users/DonsterLaptop/Documents/Robot288/cpre288_generalpurposeautomatedrobot/Robot/Utils/open_interface.c" line="22" column="9" bodyfile="C:/Users/DonsterLaptop/Documents/Robot288/cpre288_generalpurposeautomatedrobot/Robot/Utils/open_interface.c" bodystart="22" bodyend="-1"/>
       </memberdef>
       <memberdef kind="define" id="open__interface_8c_1a00eee15766387eb1ba21a62afea605d0" prot="public" static="no">
         <name>OI_OPCODE_SAFE</name>
@@ -124,7 +124,7 @@
         </detaileddescription>
         <inbodydescription>
         </inbodydescription>
-        <location file="C:/Users/DonsterLaptop/Documents/Robot288/cpre288_generalpurposeautomatedrobot/Robot/Utils/open_interface.c" line="20" column="9" bodyfile="C:/Users/DonsterLaptop/Documents/Robot288/cpre288_generalpurposeautomatedrobot/Robot/Utils/open_interface.c" bodystart="20" bodyend="-1"/>
+        <location file="C:/Users/DonsterLaptop/Documents/Robot288/cpre288_generalpurposeautomatedrobot/Robot/Utils/open_interface.c" line="23" column="9" bodyfile="C:/Users/DonsterLaptop/Documents/Robot288/cpre288_generalpurposeautomatedrobot/Robot/Utils/open_interface.c" bodystart="23" bodyend="-1"/>
       </memberdef>
       <memberdef kind="define" id="open__interface_8c_1ab23ecc4b2ef0843c49cc4b0cc9c630fa" prot="public" static="no">
         <name>OI_OPCODE_FULL</name>
@@ -135,7 +135,7 @@
         </detaileddescription>
         <inbodydescription>
         </inbodydescription>
-        <location file="C:/Users/DonsterLaptop/Documents/Robot288/cpre288_generalpurposeautomatedrobot/Robot/Utils/open_interface.c" line="21" column="9" bodyfile="C:/Users/DonsterLaptop/Documents/Robot288/cpre288_generalpurposeautomatedrobot/Robot/Utils/open_interface.c" bodystart="21" bodyend="-1"/>
+        <location file="C:/Users/DonsterLaptop/Documents/Robot288/cpre288_generalpurposeautomatedrobot/Robot/Utils/open_interface.c" line="24" column="9" bodyfile="C:/Users/DonsterLaptop/Documents/Robot288/cpre288_generalpurposeautomatedrobot/Robot/Utils/open_interface.c" bodystart="24" bodyend="-1"/>
       </memberdef>
       <memberdef kind="define" id="open__interface_8c_1a3cbff3d875802968563cba2435dbf553" prot="public" static="no">
         <name>OI_OPCODE_POWER</name>
@@ -146,7 +146,7 @@
         </detaileddescription>
         <inbodydescription>
         </inbodydescription>
-        <location file="C:/Users/DonsterLaptop/Documents/Robot288/cpre288_generalpurposeautomatedrobot/Robot/Utils/open_interface.c" line="22" column="9" bodyfile="C:/Users/DonsterLaptop/Documents/Robot288/cpre288_generalpurposeautomatedrobot/Robot/Utils/open_interface.c" bodystart="22" bodyend="-1"/>
+        <location file="C:/Users/DonsterLaptop/Documents/Robot288/cpre288_generalpurposeautomatedrobot/Robot/Utils/open_interface.c" line="25" column="9" bodyfile="C:/Users/DonsterLaptop/Documents/Robot288/cpre288_generalpurposeautomatedrobot/Robot/Utils/open_interface.c" bodystart="25" bodyend="-1"/>
       </memberdef>
       <memberdef kind="define" id="open__interface_8c_1a6a905744bdc52af351c33c9de745fa33" prot="public" static="no">
         <name>OI_OPCODE_SPOT</name>
@@ -157,7 +157,7 @@
         </detaileddescription>
         <inbodydescription>
         </inbodydescription>
-        <location file="C:/Users/DonsterLaptop/Documents/Robot288/cpre288_generalpurposeautomatedrobot/Robot/Utils/open_interface.c" line="23" column="9" bodyfile="C:/Users/DonsterLaptop/Documents/Robot288/cpre288_generalpurposeautomatedrobot/Robot/Utils/open_interface.c" bodystart="23" bodyend="-1"/>
+        <location file="C:/Users/DonsterLaptop/Documents/Robot288/cpre288_generalpurposeautomatedrobot/Robot/Utils/open_interface.c" line="26" column="9" bodyfile="C:/Users/DonsterLaptop/Documents/Robot288/cpre288_generalpurposeautomatedrobot/Robot/Utils/open_interface.c" bodystart="26" bodyend="-1"/>
       </memberdef>
       <memberdef kind="define" id="open__interface_8c_1a6d6815f54a892636ffccfce7d626bcb6" prot="public" static="no">
         <name>OI_OPCODE_CLEAN</name>
@@ -168,7 +168,7 @@
         </detaileddescription>
         <inbodydescription>
         </inbodydescription>
-        <location file="C:/Users/DonsterLaptop/Documents/Robot288/cpre288_generalpurposeautomatedrobot/Robot/Utils/open_interface.c" line="24" column="9" bodyfile="C:/Users/DonsterLaptop/Documents/Robot288/cpre288_generalpurposeautomatedrobot/Robot/Utils/open_interface.c" bodystart="24" bodyend="-1"/>
+        <location file="C:/Users/DonsterLaptop/Documents/Robot288/cpre288_generalpurposeautomatedrobot/Robot/Utils/open_interface.c" line="27" column="9" bodyfile="C:/Users/DonsterLaptop/Documents/Robot288/cpre288_generalpurposeautomatedrobot/Robot/Utils/open_interface.c" bodystart="27" bodyend="-1"/>
       </memberdef>
       <memberdef kind="define" id="open__interface_8c_1aa2ac676f76e089e7fd0110a2d4337c6c" prot="public" static="no">
         <name>OI_OPCODE_MAX</name>
@@ -179,7 +179,7 @@
         </detaileddescription>
         <inbodydescription>
         </inbodydescription>
-        <location file="C:/Users/DonsterLaptop/Documents/Robot288/cpre288_generalpurposeautomatedrobot/Robot/Utils/open_interface.c" line="25" column="9" bodyfile="C:/Users/DonsterLaptop/Documents/Robot288/cpre288_generalpurposeautomatedrobot/Robot/Utils/open_interface.c" bodystart="25" bodyend="-1"/>
+        <location file="C:/Users/DonsterLaptop/Documents/Robot288/cpre288_generalpurposeautomatedrobot/Robot/Utils/open_interface.c" line="28" column="9" bodyfile="C:/Users/DonsterLaptop/Documents/Robot288/cpre288_generalpurposeautomatedrobot/Robot/Utils/open_interface.c" bodystart="28" bodyend="-1"/>
       </memberdef>
       <memberdef kind="define" id="open__interface_8c_1aadfb64298500f1666cdb1764a5e63172" prot="public" static="no">
         <name>OI_OPCODE_DRIVE</name>
@@ -190,7 +190,7 @@
         </detaileddescription>
         <inbodydescription>
         </inbodydescription>
-        <location file="C:/Users/DonsterLaptop/Documents/Robot288/cpre288_generalpurposeautomatedrobot/Robot/Utils/open_interface.c" line="26" column="9" bodyfile="C:/Users/DonsterLaptop/Documents/Robot288/cpre288_generalpurposeautomatedrobot/Robot/Utils/open_interface.c" bodystart="26" bodyend="-1"/>
+        <location file="C:/Users/DonsterLaptop/Documents/Robot288/cpre288_generalpurposeautomatedrobot/Robot/Utils/open_interface.c" line="29" column="9" bodyfile="C:/Users/DonsterLaptop/Documents/Robot288/cpre288_generalpurposeautomatedrobot/Robot/Utils/open_interface.c" bodystart="29" bodyend="-1"/>
       </memberdef>
       <memberdef kind="define" id="open__interface_8c_1a223df92a4b48a164a8f28f9f15001d77" prot="public" static="no">
         <name>OI_OPCODE_MOTORS</name>
@@ -201,7 +201,7 @@
         </detaileddescription>
         <inbodydescription>
         </inbodydescription>
-        <location file="C:/Users/DonsterLaptop/Documents/Robot288/cpre288_generalpurposeautomatedrobot/Robot/Utils/open_interface.c" line="27" column="9" bodyfile="C:/Users/DonsterLaptop/Documents/Robot288/cpre288_generalpurposeautomatedrobot/Robot/Utils/open_interface.c" bodystart="27" bodyend="-1"/>
+        <location file="C:/Users/DonsterLaptop/Documents/Robot288/cpre288_generalpurposeautomatedrobot/Robot/Utils/open_interface.c" line="30" column="9" bodyfile="C:/Users/DonsterLaptop/Documents/Robot288/cpre288_generalpurposeautomatedrobot/Robot/Utils/open_interface.c" bodystart="30" bodyend="-1"/>
       </memberdef>
       <memberdef kind="define" id="open__interface_8c_1aae887b2e06add18cf0f1ec127faef2b2" prot="public" static="no">
         <name>OI_OPCODE_LEDS</name>
@@ -212,7 +212,7 @@
         </detaileddescription>
         <inbodydescription>
         </inbodydescription>
-        <location file="C:/Users/DonsterLaptop/Documents/Robot288/cpre288_generalpurposeautomatedrobot/Robot/Utils/open_interface.c" line="28" column="9" bodyfile="C:/Users/DonsterLaptop/Documents/Robot288/cpre288_generalpurposeautomatedrobot/Robot/Utils/open_interface.c" bodystart="28" bodyend="-1"/>
+        <location file="C:/Users/DonsterLaptop/Documents/Robot288/cpre288_generalpurposeautomatedrobot/Robot/Utils/open_interface.c" line="31" column="9" bodyfile="C:/Users/DonsterLaptop/Documents/Robot288/cpre288_generalpurposeautomatedrobot/Robot/Utils/open_interface.c" bodystart="31" bodyend="-1"/>
       </memberdef>
       <memberdef kind="define" id="open__interface_8c_1a49971234693d82c35d5ab3d65f2d886c" prot="public" static="no">
         <name>OI_OPCODE_SONG</name>
@@ -223,7 +223,7 @@
         </detaileddescription>
         <inbodydescription>
         </inbodydescription>
-        <location file="C:/Users/DonsterLaptop/Documents/Robot288/cpre288_generalpurposeautomatedrobot/Robot/Utils/open_interface.c" line="29" column="9" bodyfile="C:/Users/DonsterLaptop/Documents/Robot288/cpre288_generalpurposeautomatedrobot/Robot/Utils/open_interface.c" bodystart="29" bodyend="-1"/>
+        <location file="C:/Users/DonsterLaptop/Documents/Robot288/cpre288_generalpurposeautomatedrobot/Robot/Utils/open_interface.c" line="32" column="9" bodyfile="C:/Users/DonsterLaptop/Documents/Robot288/cpre288_generalpurposeautomatedrobot/Robot/Utils/open_interface.c" bodystart="32" bodyend="-1"/>
       </memberdef>
       <memberdef kind="define" id="open__interface_8c_1af58e491d01ede5310eafd82eab6bee7c" prot="public" static="no">
         <name>OI_OPCODE_PLAY</name>
@@ -234,7 +234,7 @@
         </detaileddescription>
         <inbodydescription>
         </inbodydescription>
-        <location file="C:/Users/DonsterLaptop/Documents/Robot288/cpre288_generalpurposeautomatedrobot/Robot/Utils/open_interface.c" line="30" column="9" bodyfile="C:/Users/DonsterLaptop/Documents/Robot288/cpre288_generalpurposeautomatedrobot/Robot/Utils/open_interface.c" bodystart="30" bodyend="-1"/>
+        <location file="C:/Users/DonsterLaptop/Documents/Robot288/cpre288_generalpurposeautomatedrobot/Robot/Utils/open_interface.c" line="33" column="9" bodyfile="C:/Users/DonsterLaptop/Documents/Robot288/cpre288_generalpurposeautomatedrobot/Robot/Utils/open_interface.c" bodystart="33" bodyend="-1"/>
       </memberdef>
       <memberdef kind="define" id="open__interface_8c_1ae13134ca8f687fecd22e5a2f217dc8bd" prot="public" static="no">
         <name>OI_OPCODE_SENSORS</name>
@@ -245,7 +245,7 @@
         </detaileddescription>
         <inbodydescription>
         </inbodydescription>
-        <location file="C:/Users/DonsterLaptop/Documents/Robot288/cpre288_generalpurposeautomatedrobot/Robot/Utils/open_interface.c" line="31" column="9" bodyfile="C:/Users/DonsterLaptop/Documents/Robot288/cpre288_generalpurposeautomatedrobot/Robot/Utils/open_interface.c" bodystart="31" bodyend="-1"/>
+        <location file="C:/Users/DonsterLaptop/Documents/Robot288/cpre288_generalpurposeautomatedrobot/Robot/Utils/open_interface.c" line="34" column="9" bodyfile="C:/Users/DonsterLaptop/Documents/Robot288/cpre288_generalpurposeautomatedrobot/Robot/Utils/open_interface.c" bodystart="34" bodyend="-1"/>
       </memberdef>
       <memberdef kind="define" id="open__interface_8c_1ac8cd804304f45de6f12b9fc6688716ed" prot="public" static="no">
         <name>OI_OPCODE_FORCEDOCK</name>
@@ -256,7 +256,7 @@
         </detaileddescription>
         <inbodydescription>
         </inbodydescription>
-        <location file="C:/Users/DonsterLaptop/Documents/Robot288/cpre288_generalpurposeautomatedrobot/Robot/Utils/open_interface.c" line="32" column="9" bodyfile="C:/Users/DonsterLaptop/Documents/Robot288/cpre288_generalpurposeautomatedrobot/Robot/Utils/open_interface.c" bodystart="32" bodyend="-1"/>
+        <location file="C:/Users/DonsterLaptop/Documents/Robot288/cpre288_generalpurposeautomatedrobot/Robot/Utils/open_interface.c" line="35" column="9" bodyfile="C:/Users/DonsterLaptop/Documents/Robot288/cpre288_generalpurposeautomatedrobot/Robot/Utils/open_interface.c" bodystart="35" bodyend="-1"/>
       </memberdef>
       <memberdef kind="define" id="open__interface_8c_1a5e9d8fe2c07b6311a28dbe202de543d9" prot="public" static="no">
         <name>OI_OPCODE_PWM_MOTORS</name>
@@ -267,7 +267,7 @@
         </detaileddescription>
         <inbodydescription>
         </inbodydescription>
-        <location file="C:/Users/DonsterLaptop/Documents/Robot288/cpre288_generalpurposeautomatedrobot/Robot/Utils/open_interface.c" line="34" column="9" bodyfile="C:/Users/DonsterLaptop/Documents/Robot288/cpre288_generalpurposeautomatedrobot/Robot/Utils/open_interface.c" bodystart="34" bodyend="-1"/>
+        <location file="C:/Users/DonsterLaptop/Documents/Robot288/cpre288_generalpurposeautomatedrobot/Robot/Utils/open_interface.c" line="37" column="9" bodyfile="C:/Users/DonsterLaptop/Documents/Robot288/cpre288_generalpurposeautomatedrobot/Robot/Utils/open_interface.c" bodystart="37" bodyend="-1"/>
       </memberdef>
       <memberdef kind="define" id="open__interface_8c_1aac2a43ac65e1d3e15b65f8dd540ec134" prot="public" static="no">
         <name>OI_OPCODE_DRIVE_WHEELS</name>
@@ -278,7 +278,7 @@
         </detaileddescription>
         <inbodydescription>
         </inbodydescription>
-        <location file="C:/Users/DonsterLaptop/Documents/Robot288/cpre288_generalpurposeautomatedrobot/Robot/Utils/open_interface.c" line="35" column="9" bodyfile="C:/Users/DonsterLaptop/Documents/Robot288/cpre288_generalpurposeautomatedrobot/Robot/Utils/open_interface.c" bodystart="35" bodyend="-1"/>
+        <location file="C:/Users/DonsterLaptop/Documents/Robot288/cpre288_generalpurposeautomatedrobot/Robot/Utils/open_interface.c" line="38" column="9" bodyfile="C:/Users/DonsterLaptop/Documents/Robot288/cpre288_generalpurposeautomatedrobot/Robot/Utils/open_interface.c" bodystart="38" bodyend="-1"/>
       </memberdef>
       <memberdef kind="define" id="open__interface_8c_1a0bd41079cf831c46d529c15c9d5fde30" prot="public" static="no">
         <name>OI_OPCODE_DRIVE_PWM</name>
@@ -289,7 +289,7 @@
         </detaileddescription>
         <inbodydescription>
         </inbodydescription>
-        <location file="C:/Users/DonsterLaptop/Documents/Robot288/cpre288_generalpurposeautomatedrobot/Robot/Utils/open_interface.c" line="36" column="9" bodyfile="C:/Users/DonsterLaptop/Documents/Robot288/cpre288_generalpurposeautomatedrobot/Robot/Utils/open_interface.c" bodystart="36" bodyend="-1"/>
+        <location file="C:/Users/DonsterLaptop/Documents/Robot288/cpre288_generalpurposeautomatedrobot/Robot/Utils/open_interface.c" line="39" column="9" bodyfile="C:/Users/DonsterLaptop/Documents/Robot288/cpre288_generalpurposeautomatedrobot/Robot/Utils/open_interface.c" bodystart="39" bodyend="-1"/>
       </memberdef>
       <memberdef kind="define" id="open__interface_8c_1af6601b85b0212473c15dbf2cc6e24a10" prot="public" static="no">
         <name>OI_OPCODE_OUTPUTS</name>
@@ -300,7 +300,7 @@
         </detaileddescription>
         <inbodydescription>
         </inbodydescription>
-        <location file="C:/Users/DonsterLaptop/Documents/Robot288/cpre288_generalpurposeautomatedrobot/Robot/Utils/open_interface.c" line="37" column="9" bodyfile="C:/Users/DonsterLaptop/Documents/Robot288/cpre288_generalpurposeautomatedrobot/Robot/Utils/open_interface.c" bodystart="37" bodyend="-1"/>
+        <location file="C:/Users/DonsterLaptop/Documents/Robot288/cpre288_generalpurposeautomatedrobot/Robot/Utils/open_interface.c" line="40" column="9" bodyfile="C:/Users/DonsterLaptop/Documents/Robot288/cpre288_generalpurposeautomatedrobot/Robot/Utils/open_interface.c" bodystart="40" bodyend="-1"/>
       </memberdef>
       <memberdef kind="define" id="open__interface_8c_1abf2e9049aff2b4de42371af9f44085c8" prot="public" static="no">
         <name>OI_OPCODE_STREAM</name>
@@ -311,7 +311,7 @@
         </detaileddescription>
         <inbodydescription>
         </inbodydescription>
-        <location file="C:/Users/DonsterLaptop/Documents/Robot288/cpre288_generalpurposeautomatedrobot/Robot/Utils/open_interface.c" line="38" column="9" bodyfile="C:/Users/DonsterLaptop/Documents/Robot288/cpre288_generalpurposeautomatedrobot/Robot/Utils/open_interface.c" bodystart="38" bodyend="-1"/>
+        <location file="C:/Users/DonsterLaptop/Documents/Robot288/cpre288_generalpurposeautomatedrobot/Robot/Utils/open_interface.c" line="41" column="9" bodyfile="C:/Users/DonsterLaptop/Documents/Robot288/cpre288_generalpurposeautomatedrobot/Robot/Utils/open_interface.c" bodystart="41" bodyend="-1"/>
       </memberdef>
       <memberdef kind="define" id="open__interface_8c_1a8d8d74e55111f4257c59b3dcdcba7cc9" prot="public" static="no">
         <name>OI_OPCODE_QUERY_LIST</name>
@@ -322,7 +322,7 @@
         </detaileddescription>
         <inbodydescription>
         </inbodydescription>
-        <location file="C:/Users/DonsterLaptop/Documents/Robot288/cpre288_generalpurposeautomatedrobot/Robot/Utils/open_interface.c" line="39" column="9" bodyfile="C:/Users/DonsterLaptop/Documents/Robot288/cpre288_generalpurposeautomatedrobot/Robot/Utils/open_interface.c" bodystart="39" bodyend="-1"/>
+        <location file="C:/Users/DonsterLaptop/Documents/Robot288/cpre288_generalpurposeautomatedrobot/Robot/Utils/open_interface.c" line="42" column="9" bodyfile="C:/Users/DonsterLaptop/Documents/Robot288/cpre288_generalpurposeautomatedrobot/Robot/Utils/open_interface.c" bodystart="42" bodyend="-1"/>
       </memberdef>
       <memberdef kind="define" id="open__interface_8c_1a22aaec790964654073dbafd0e5d1e9d4" prot="public" static="no">
         <name>OI_OPCODE_DO_STREAM</name>
@@ -333,7 +333,7 @@
         </detaileddescription>
         <inbodydescription>
         </inbodydescription>
-        <location file="C:/Users/DonsterLaptop/Documents/Robot288/cpre288_generalpurposeautomatedrobot/Robot/Utils/open_interface.c" line="40" column="9" bodyfile="C:/Users/DonsterLaptop/Documents/Robot288/cpre288_generalpurposeautomatedrobot/Robot/Utils/open_interface.c" bodystart="40" bodyend="-1"/>
+        <location file="C:/Users/DonsterLaptop/Documents/Robot288/cpre288_generalpurposeautomatedrobot/Robot/Utils/open_interface.c" line="43" column="9" bodyfile="C:/Users/DonsterLaptop/Documents/Robot288/cpre288_generalpurposeautomatedrobot/Robot/Utils/open_interface.c" bodystart="43" bodyend="-1"/>
       </memberdef>
       <memberdef kind="define" id="open__interface_8c_1af830831174badfe13524b0b2c0867d03" prot="public" static="no">
         <name>OI_OPCODE_SEND_IR_CHAR</name>
@@ -344,7 +344,7 @@
         </detaileddescription>
         <inbodydescription>
         </inbodydescription>
-        <location file="C:/Users/DonsterLaptop/Documents/Robot288/cpre288_generalpurposeautomatedrobot/Robot/Utils/open_interface.c" line="41" column="9" bodyfile="C:/Users/DonsterLaptop/Documents/Robot288/cpre288_generalpurposeautomatedrobot/Robot/Utils/open_interface.c" bodystart="41" bodyend="-1"/>
+        <location file="C:/Users/DonsterLaptop/Documents/Robot288/cpre288_generalpurposeautomatedrobot/Robot/Utils/open_interface.c" line="44" column="9" bodyfile="C:/Users/DonsterLaptop/Documents/Robot288/cpre288_generalpurposeautomatedrobot/Robot/Utils/open_interface.c" bodystart="44" bodyend="-1"/>
       </memberdef>
       <memberdef kind="define" id="open__interface_8c_1ab9f9ce4d36375338817f04b500240080" prot="public" static="no">
         <name>OI_OPCODE_SCRIPT</name>
@@ -355,7 +355,7 @@
         </detaileddescription>
         <inbodydescription>
         </inbodydescription>
-        <location file="C:/Users/DonsterLaptop/Documents/Robot288/cpre288_generalpurposeautomatedrobot/Robot/Utils/open_interface.c" line="42" column="9" bodyfile="C:/Users/DonsterLaptop/Documents/Robot288/cpre288_generalpurposeautomatedrobot/Robot/Utils/open_interface.c" bodystart="42" bodyend="-1"/>
+        <location file="C:/Users/DonsterLaptop/Documents/Robot288/cpre288_generalpurposeautomatedrobot/Robot/Utils/open_interface.c" line="45" column="9" bodyfile="C:/Users/DonsterLaptop/Documents/Robot288/cpre288_generalpurposeautomatedrobot/Robot/Utils/open_interface.c" bodystart="45" bodyend="-1"/>
       </memberdef>
       <memberdef kind="define" id="open__interface_8c_1a45c53f7ba0c37cbc4f705655c3145671" prot="public" static="no">
         <name>OI_OPCODE_PLAY_SCRIPT</name>
@@ -366,7 +366,7 @@
         </detaileddescription>
         <inbodydescription>
         </inbodydescription>
-        <location file="C:/Users/DonsterLaptop/Documents/Robot288/cpre288_generalpurposeautomatedrobot/Robot/Utils/open_interface.c" line="43" column="9" bodyfile="C:/Users/DonsterLaptop/Documents/Robot288/cpre288_generalpurposeautomatedrobot/Robot/Utils/open_interface.c" bodystart="43" bodyend="-1"/>
+        <location file="C:/Users/DonsterLaptop/Documents/Robot288/cpre288_generalpurposeautomatedrobot/Robot/Utils/open_interface.c" line="46" column="9" bodyfile="C:/Users/DonsterLaptop/Documents/Robot288/cpre288_generalpurposeautomatedrobot/Robot/Utils/open_interface.c" bodystart="46" bodyend="-1"/>
       </memberdef>
       <memberdef kind="define" id="open__interface_8c_1a0d01c08dd87a55206ad4bd20a0179f17" prot="public" static="no">
         <name>OI_OPCODE_SHOW_SCRIPT</name>
@@ -377,7 +377,7 @@
         </detaileddescription>
         <inbodydescription>
         </inbodydescription>
-        <location file="C:/Users/DonsterLaptop/Documents/Robot288/cpre288_generalpurposeautomatedrobot/Robot/Utils/open_interface.c" line="44" column="9" bodyfile="C:/Users/DonsterLaptop/Documents/Robot288/cpre288_generalpurposeautomatedrobot/Robot/Utils/open_interface.c" bodystart="44" bodyend="-1"/>
+        <location file="C:/Users/DonsterLaptop/Documents/Robot288/cpre288_generalpurposeautomatedrobot/Robot/Utils/open_interface.c" line="47" column="9" bodyfile="C:/Users/DonsterLaptop/Documents/Robot288/cpre288_generalpurposeautomatedrobot/Robot/Utils/open_interface.c" bodystart="47" bodyend="-1"/>
       </memberdef>
       <memberdef kind="define" id="open__interface_8c_1a275188aacd7fd1d1a157bb3da4f4f5ea" prot="public" static="no">
         <name>OI_OPCODE_WAIT_TIME</name>
@@ -388,7 +388,7 @@
         </detaileddescription>
         <inbodydescription>
         </inbodydescription>
-        <location file="C:/Users/DonsterLaptop/Documents/Robot288/cpre288_generalpurposeautomatedrobot/Robot/Utils/open_interface.c" line="45" column="9" bodyfile="C:/Users/DonsterLaptop/Documents/Robot288/cpre288_generalpurposeautomatedrobot/Robot/Utils/open_interface.c" bodystart="45" bodyend="-1"/>
+        <location file="C:/Users/DonsterLaptop/Documents/Robot288/cpre288_generalpurposeautomatedrobot/Robot/Utils/open_interface.c" line="48" column="9" bodyfile="C:/Users/DonsterLaptop/Documents/Robot288/cpre288_generalpurposeautomatedrobot/Robot/Utils/open_interface.c" bodystart="48" bodyend="-1"/>
       </memberdef>
       <memberdef kind="define" id="open__interface_8c_1a9eb127996527aa4528f694af6ee1d733" prot="public" static="no">
         <name>OI_OPCODE_WAIT_DISTANCE</name>
@@ -399,7 +399,7 @@
         </detaileddescription>
         <inbodydescription>
         </inbodydescription>
-        <location file="C:/Users/DonsterLaptop/Documents/Robot288/cpre288_generalpurposeautomatedrobot/Robot/Utils/open_interface.c" line="46" column="9" bodyfile="C:/Users/DonsterLaptop/Documents/Robot288/cpre288_generalpurposeautomatedrobot/Robot/Utils/open_interface.c" bodystart="46" bodyend="-1"/>
+        <location file="C:/Users/DonsterLaptop/Documents/Robot288/cpre288_generalpurposeautomatedrobot/Robot/Utils/open_interface.c" line="49" column="9" bodyfile="C:/Users/DonsterLaptop/Documents/Robot288/cpre288_generalpurposeautomatedrobot/Robot/Utils/open_interface.c" bodystart="49" bodyend="-1"/>
       </memberdef>
       <memberdef kind="define" id="open__interface_8c_1a0b77489f1c0fb2f8cb50d73ebf748fe1" prot="public" static="no">
         <name>OI_OPCODE_WAIT_ANGLE</name>
@@ -410,7 +410,7 @@
         </detaileddescription>
         <inbodydescription>
         </inbodydescription>
-        <location file="C:/Users/DonsterLaptop/Documents/Robot288/cpre288_generalpurposeautomatedrobot/Robot/Utils/open_interface.c" line="47" column="9" bodyfile="C:/Users/DonsterLaptop/Documents/Robot288/cpre288_generalpurposeautomatedrobot/Robot/Utils/open_interface.c" bodystart="47" bodyend="-1"/>
+        <location file="C:/Users/DonsterLaptop/Documents/Robot288/cpre288_generalpurposeautomatedrobot/Robot/Utils/open_interface.c" line="50" column="9" bodyfile="C:/Users/DonsterLaptop/Documents/Robot288/cpre288_generalpurposeautomatedrobot/Robot/Utils/open_interface.c" bodystart="50" bodyend="-1"/>
       </memberdef>
       <memberdef kind="define" id="open__interface_8c_1a8e7a7c2bcd0018d05a3483c1d15e2244" prot="public" static="no">
         <name>OI_OPCODE_WAIT_EVENT</name>
@@ -421,7 +421,7 @@
         </detaileddescription>
         <inbodydescription>
         </inbodydescription>
-        <location file="C:/Users/DonsterLaptop/Documents/Robot288/cpre288_generalpurposeautomatedrobot/Robot/Utils/open_interface.c" line="48" column="9" bodyfile="C:/Users/DonsterLaptop/Documents/Robot288/cpre288_generalpurposeautomatedrobot/Robot/Utils/open_interface.c" bodystart="48" bodyend="-1"/>
+        <location file="C:/Users/DonsterLaptop/Documents/Robot288/cpre288_generalpurposeautomatedrobot/Robot/Utils/open_interface.c" line="51" column="9" bodyfile="C:/Users/DonsterLaptop/Documents/Robot288/cpre288_generalpurposeautomatedrobot/Robot/Utils/open_interface.c" bodystart="51" bodyend="-1"/>
       </memberdef>
       <memberdef kind="define" id="open__interface_8c_1a2402ce23640b9fd98efc80b4115b83b5" prot="public" static="no">
         <name>OI_OPCODE_RESET</name>
@@ -432,7 +432,7 @@
         </detaileddescription>
         <inbodydescription>
         </inbodydescription>
-        <location file="C:/Users/DonsterLaptop/Documents/Robot288/cpre288_generalpurposeautomatedrobot/Robot/Utils/open_interface.c" line="50" column="9" bodyfile="C:/Users/DonsterLaptop/Documents/Robot288/cpre288_generalpurposeautomatedrobot/Robot/Utils/open_interface.c" bodystart="50" bodyend="-1"/>
+        <location file="C:/Users/DonsterLaptop/Documents/Robot288/cpre288_generalpurposeautomatedrobot/Robot/Utils/open_interface.c" line="53" column="9" bodyfile="C:/Users/DonsterLaptop/Documents/Robot288/cpre288_generalpurposeautomatedrobot/Robot/Utils/open_interface.c" bodystart="53" bodyend="-1"/>
       </memberdef>
       <memberdef kind="define" id="open__interface_8c_1ae104a6c9cf2f028f30682051fd1d0354" prot="public" static="no">
         <name>OI_OPCODE_STOP</name>
@@ -443,7 +443,7 @@
         </detaileddescription>
         <inbodydescription>
         </inbodydescription>
-        <location file="C:/Users/DonsterLaptop/Documents/Robot288/cpre288_generalpurposeautomatedrobot/Robot/Utils/open_interface.c" line="51" column="9" bodyfile="C:/Users/DonsterLaptop/Documents/Robot288/cpre288_generalpurposeautomatedrobot/Robot/Utils/open_interface.c" bodystart="51" bodyend="-1"/>
+        <location file="C:/Users/DonsterLaptop/Documents/Robot288/cpre288_generalpurposeautomatedrobot/Robot/Utils/open_interface.c" line="54" column="9" bodyfile="C:/Users/DonsterLaptop/Documents/Robot288/cpre288_generalpurposeautomatedrobot/Robot/Utils/open_interface.c" bodystart="54" bodyend="-1"/>
       </memberdef>
       <memberdef kind="define" id="open__interface_8c_1a7ff5a93670e8dd5217aad477125f22b6" prot="public" static="no">
         <name>OI_OPCODE_SCHEDULE</name>
@@ -454,7 +454,7 @@
         </detaileddescription>
         <inbodydescription>
         </inbodydescription>
-        <location file="C:/Users/DonsterLaptop/Documents/Robot288/cpre288_generalpurposeautomatedrobot/Robot/Utils/open_interface.c" line="52" column="9" bodyfile="C:/Users/DonsterLaptop/Documents/Robot288/cpre288_generalpurposeautomatedrobot/Robot/Utils/open_interface.c" bodystart="52" bodyend="-1"/>
+        <location file="C:/Users/DonsterLaptop/Documents/Robot288/cpre288_generalpurposeautomatedrobot/Robot/Utils/open_interface.c" line="55" column="9" bodyfile="C:/Users/DonsterLaptop/Documents/Robot288/cpre288_generalpurposeautomatedrobot/Robot/Utils/open_interface.c" bodystart="55" bodyend="-1"/>
       </memberdef>
       <memberdef kind="define" id="open__interface_8c_1a73704af99ea9a811ee4c65b54c8c7971" prot="public" static="no">
         <name>OI_OPCODE_SCHED_LED</name>
@@ -465,7 +465,7 @@
         </detaileddescription>
         <inbodydescription>
         </inbodydescription>
-        <location file="C:/Users/DonsterLaptop/Documents/Robot288/cpre288_generalpurposeautomatedrobot/Robot/Utils/open_interface.c" line="53" column="9" bodyfile="C:/Users/DonsterLaptop/Documents/Robot288/cpre288_generalpurposeautomatedrobot/Robot/Utils/open_interface.c" bodystart="53" bodyend="-1"/>
+        <location file="C:/Users/DonsterLaptop/Documents/Robot288/cpre288_generalpurposeautomatedrobot/Robot/Utils/open_interface.c" line="56" column="9" bodyfile="C:/Users/DonsterLaptop/Documents/Robot288/cpre288_generalpurposeautomatedrobot/Robot/Utils/open_interface.c" bodystart="56" bodyend="-1"/>
       </memberdef>
       <memberdef kind="define" id="open__interface_8c_1a913ac876afa51aa8e18483efe4cd7ed1" prot="public" static="no">
         <name>OI_OPCODE_7SEG</name>
@@ -476,7 +476,7 @@
         </detaileddescription>
         <inbodydescription>
         </inbodydescription>
-        <location file="C:/Users/DonsterLaptop/Documents/Robot288/cpre288_generalpurposeautomatedrobot/Robot/Utils/open_interface.c" line="54" column="9" bodyfile="C:/Users/DonsterLaptop/Documents/Robot288/cpre288_generalpurposeautomatedrobot/Robot/Utils/open_interface.c" bodystart="54" bodyend="-1"/>
+        <location file="C:/Users/DonsterLaptop/Documents/Robot288/cpre288_generalpurposeautomatedrobot/Robot/Utils/open_interface.c" line="57" column="9" bodyfile="C:/Users/DonsterLaptop/Documents/Robot288/cpre288_generalpurposeautomatedrobot/Robot/Utils/open_interface.c" bodystart="57" bodyend="-1"/>
       </memberdef>
       <memberdef kind="define" id="open__interface_8c_1a458eaece85dd1f93a4cf656efd10d49b" prot="public" static="no">
         <name>OI_SENSOR_PACKET_GROUP0</name>
@@ -487,7 +487,7 @@
         </detaileddescription>
         <inbodydescription>
         </inbodydescription>
-        <location file="C:/Users/DonsterLaptop/Documents/Robot288/cpre288_generalpurposeautomatedrobot/Robot/Utils/open_interface.c" line="57" column="9" bodyfile="C:/Users/DonsterLaptop/Documents/Robot288/cpre288_generalpurposeautomatedrobot/Robot/Utils/open_interface.c" bodystart="57" bodyend="-1"/>
+        <location file="C:/Users/DonsterLaptop/Documents/Robot288/cpre288_generalpurposeautomatedrobot/Robot/Utils/open_interface.c" line="60" column="9" bodyfile="C:/Users/DonsterLaptop/Documents/Robot288/cpre288_generalpurposeautomatedrobot/Robot/Utils/open_interface.c" bodystart="60" bodyend="-1"/>
       </memberdef>
       <memberdef kind="define" id="open__interface_8c_1af25e176da2c20524fc60c0f23966ec0b" prot="public" static="no">
         <name>OI_SENSOR_PACKET_GROUP1</name>
@@ -498,7 +498,7 @@
         </detaileddescription>
         <inbodydescription>
         </inbodydescription>
-        <location file="C:/Users/DonsterLaptop/Documents/Robot288/cpre288_generalpurposeautomatedrobot/Robot/Utils/open_interface.c" line="59" column="9" bodyfile="C:/Users/DonsterLaptop/Documents/Robot288/cpre288_generalpurposeautomatedrobot/Robot/Utils/open_interface.c" bodystart="59" bodyend="-1"/>
+        <location file="C:/Users/DonsterLaptop/Documents/Robot288/cpre288_generalpurposeautomatedrobot/Robot/Utils/open_interface.c" line="62" column="9" bodyfile="C:/Users/DonsterLaptop/Documents/Robot288/cpre288_generalpurposeautomatedrobot/Robot/Utils/open_interface.c" bodystart="62" bodyend="-1"/>
       </memberdef>
       <memberdef kind="define" id="open__interface_8c_1ada12c24c8cabc74a26c02a0473016d61" prot="public" static="no">
         <name>OI_SENSOR_PACKET_GROUP2</name>
@@ -509,7 +509,7 @@
         </detaileddescription>
         <inbodydescription>
         </inbodydescription>
-        <location file="C:/Users/DonsterLaptop/Documents/Robot288/cpre288_generalpurposeautomatedrobot/Robot/Utils/open_interface.c" line="61" column="9" bodyfile="C:/Users/DonsterLaptop/Documents/Robot288/cpre288_generalpurposeautomatedrobot/Robot/Utils/open_interface.c" bodystart="61" bodyend="-1"/>
+        <location file="C:/Users/DonsterLaptop/Documents/Robot288/cpre288_generalpurposeautomatedrobot/Robot/Utils/open_interface.c" line="64" column="9" bodyfile="C:/Users/DonsterLaptop/Documents/Robot288/cpre288_generalpurposeautomatedrobot/Robot/Utils/open_interface.c" bodystart="64" bodyend="-1"/>
       </memberdef>
       <memberdef kind="define" id="open__interface_8c_1a0a52eb8bdd74e2538f832d4d23e66add" prot="public" static="no">
         <name>OI_SENSOR_PACKET_GROUP3</name>
@@ -520,7 +520,7 @@
         </detaileddescription>
         <inbodydescription>
         </inbodydescription>
-        <location file="C:/Users/DonsterLaptop/Documents/Robot288/cpre288_generalpurposeautomatedrobot/Robot/Utils/open_interface.c" line="63" column="9" bodyfile="C:/Users/DonsterLaptop/Documents/Robot288/cpre288_generalpurposeautomatedrobot/Robot/Utils/open_interface.c" bodystart="63" bodyend="-1"/>
+        <location file="C:/Users/DonsterLaptop/Documents/Robot288/cpre288_generalpurposeautomatedrobot/Robot/Utils/open_interface.c" line="66" column="9" bodyfile="C:/Users/DonsterLaptop/Documents/Robot288/cpre288_generalpurposeautomatedrobot/Robot/Utils/open_interface.c" bodystart="66" bodyend="-1"/>
       </memberdef>
       <memberdef kind="define" id="open__interface_8c_1aa6f9cf219ee63e780934486148dc9f82" prot="public" static="no">
         <name>OI_SENSOR_PACKET_GROUP4</name>
@@ -531,7 +531,7 @@
         </detaileddescription>
         <inbodydescription>
         </inbodydescription>
-        <location file="C:/Users/DonsterLaptop/Documents/Robot288/cpre288_generalpurposeautomatedrobot/Robot/Utils/open_interface.c" line="65" column="9" bodyfile="C:/Users/DonsterLaptop/Documents/Robot288/cpre288_generalpurposeautomatedrobot/Robot/Utils/open_interface.c" bodystart="65" bodyend="-1"/>
+        <location file="C:/Users/DonsterLaptop/Documents/Robot288/cpre288_generalpurposeautomatedrobot/Robot/Utils/open_interface.c" line="68" column="9" bodyfile="C:/Users/DonsterLaptop/Documents/Robot288/cpre288_generalpurposeautomatedrobot/Robot/Utils/open_interface.c" bodystart="68" bodyend="-1"/>
       </memberdef>
       <memberdef kind="define" id="open__interface_8c_1a0308e9d4d0e347192c79d26a9a55730f" prot="public" static="no">
         <name>OI_SENSOR_PACKET_GROUP5</name>
@@ -542,7 +542,7 @@
         </detaileddescription>
         <inbodydescription>
         </inbodydescription>
-        <location file="C:/Users/DonsterLaptop/Documents/Robot288/cpre288_generalpurposeautomatedrobot/Robot/Utils/open_interface.c" line="67" column="9" bodyfile="C:/Users/DonsterLaptop/Documents/Robot288/cpre288_generalpurposeautomatedrobot/Robot/Utils/open_interface.c" bodystart="67" bodyend="-1"/>
+        <location file="C:/Users/DonsterLaptop/Documents/Robot288/cpre288_generalpurposeautomatedrobot/Robot/Utils/open_interface.c" line="70" column="9" bodyfile="C:/Users/DonsterLaptop/Documents/Robot288/cpre288_generalpurposeautomatedrobot/Robot/Utils/open_interface.c" bodystart="70" bodyend="-1"/>
       </memberdef>
       <memberdef kind="define" id="open__interface_8c_1acb235619902fdbf515b7cb7b70696ee0" prot="public" static="no">
         <name>OI_SENSOR_PACKET_GROUP6</name>
@@ -553,7 +553,7 @@
         </detaileddescription>
         <inbodydescription>
         </inbodydescription>
-        <location file="C:/Users/DonsterLaptop/Documents/Robot288/cpre288_generalpurposeautomatedrobot/Robot/Utils/open_interface.c" line="69" column="9" bodyfile="C:/Users/DonsterLaptop/Documents/Robot288/cpre288_generalpurposeautomatedrobot/Robot/Utils/open_interface.c" bodystart="69" bodyend="-1"/>
+        <location file="C:/Users/DonsterLaptop/Documents/Robot288/cpre288_generalpurposeautomatedrobot/Robot/Utils/open_interface.c" line="72" column="9" bodyfile="C:/Users/DonsterLaptop/Documents/Robot288/cpre288_generalpurposeautomatedrobot/Robot/Utils/open_interface.c" bodystart="72" bodyend="-1"/>
       </memberdef>
       <memberdef kind="define" id="open__interface_8c_1a4c267de6adfb91fbf8000f6b96d577e7" prot="public" static="no">
         <name>OI_SENSOR_PACKET_GROUP100</name>
@@ -564,7 +564,7 @@
         </detaileddescription>
         <inbodydescription>
         </inbodydescription>
-        <location file="C:/Users/DonsterLaptop/Documents/Robot288/cpre288_generalpurposeautomatedrobot/Robot/Utils/open_interface.c" line="71" column="9" bodyfile="C:/Users/DonsterLaptop/Documents/Robot288/cpre288_generalpurposeautomatedrobot/Robot/Utils/open_interface.c" bodystart="71" bodyend="-1"/>
+        <location file="C:/Users/DonsterLaptop/Documents/Robot288/cpre288_generalpurposeautomatedrobot/Robot/Utils/open_interface.c" line="74" column="9" bodyfile="C:/Users/DonsterLaptop/Documents/Robot288/cpre288_generalpurposeautomatedrobot/Robot/Utils/open_interface.c" bodystart="74" bodyend="-1"/>
       </memberdef>
       <memberdef kind="define" id="open__interface_8c_1a5a7f0b374de9418a8be24c4c0f779459" prot="public" static="no">
         <name>OI_SENSOR_PACKET_GROUP101</name>
@@ -575,7 +575,7 @@
         </detaileddescription>
         <inbodydescription>
         </inbodydescription>
-        <location file="C:/Users/DonsterLaptop/Documents/Robot288/cpre288_generalpurposeautomatedrobot/Robot/Utils/open_interface.c" line="73" column="9" bodyfile="C:/Users/DonsterLaptop/Documents/Robot288/cpre288_generalpurposeautomatedrobot/Robot/Utils/open_interface.c" bodystart="73" bodyend="-1"/>
+        <location file="C:/Users/DonsterLaptop/Documents/Robot288/cpre288_generalpurposeautomatedrobot/Robot/Utils/open_interface.c" line="76" column="9" bodyfile="C:/Users/DonsterLaptop/Documents/Robot288/cpre288_generalpurposeautomatedrobot/Robot/Utils/open_interface.c" bodystart="76" bodyend="-1"/>
       </memberdef>
       <memberdef kind="define" id="open__interface_8c_1aa8ba9e54d5bf417d1d7e0c8d1d48295e" prot="public" static="no">
         <name>OI_SENSOR_PACKET_GROUP106</name>
@@ -586,7 +586,7 @@
         </detaileddescription>
         <inbodydescription>
         </inbodydescription>
-        <location file="C:/Users/DonsterLaptop/Documents/Robot288/cpre288_generalpurposeautomatedrobot/Robot/Utils/open_interface.c" line="75" column="9" bodyfile="C:/Users/DonsterLaptop/Documents/Robot288/cpre288_generalpurposeautomatedrobot/Robot/Utils/open_interface.c" bodystart="75" bodyend="-1"/>
+        <location file="C:/Users/DonsterLaptop/Documents/Robot288/cpre288_generalpurposeautomatedrobot/Robot/Utils/open_interface.c" line="78" column="9" bodyfile="C:/Users/DonsterLaptop/Documents/Robot288/cpre288_generalpurposeautomatedrobot/Robot/Utils/open_interface.c" bodystart="78" bodyend="-1"/>
       </memberdef>
       <memberdef kind="define" id="open__interface_8c_1a8e3d150003195087b9a23f5b3e1eecdc" prot="public" static="no">
         <name>OI_SENSOR_PACKET_GROUP107</name>
@@ -597,7 +597,7 @@
         </detaileddescription>
         <inbodydescription>
         </inbodydescription>
-        <location file="C:/Users/DonsterLaptop/Documents/Robot288/cpre288_generalpurposeautomatedrobot/Robot/Utils/open_interface.c" line="77" column="9" bodyfile="C:/Users/DonsterLaptop/Documents/Robot288/cpre288_generalpurposeautomatedrobot/Robot/Utils/open_interface.c" bodystart="77" bodyend="-1"/>
+        <location file="C:/Users/DonsterLaptop/Documents/Robot288/cpre288_generalpurposeautomatedrobot/Robot/Utils/open_interface.c" line="80" column="9" bodyfile="C:/Users/DonsterLaptop/Documents/Robot288/cpre288_generalpurposeautomatedrobot/Robot/Utils/open_interface.c" bodystart="80" bodyend="-1"/>
       </memberdef>
       <memberdef kind="define" id="open__interface_8c_1a0b7617e96cc05d5d1bc29011f3ed9498" prot="public" static="no">
         <name>SENSOR_PACKET_SIZE</name>
@@ -608,7 +608,7 @@
         </detaileddescription>
         <inbodydescription>
         </inbodydescription>
-        <location file="C:/Users/DonsterLaptop/Documents/Robot288/cpre288_generalpurposeautomatedrobot/Robot/Utils/open_interface.c" line="79" column="9" bodyfile="C:/Users/DonsterLaptop/Documents/Robot288/cpre288_generalpurposeautomatedrobot/Robot/Utils/open_interface.c" bodystart="79" bodyend="-1"/>
+        <location file="C:/Users/DonsterLaptop/Documents/Robot288/cpre288_generalpurposeautomatedrobot/Robot/Utils/open_interface.c" line="82" column="9" bodyfile="C:/Users/DonsterLaptop/Documents/Robot288/cpre288_generalpurposeautomatedrobot/Robot/Utils/open_interface.c" bodystart="82" bodyend="-1"/>
       </memberdef>
       </sectiondef>
       <sectiondef kind="func">
@@ -626,7 +626,7 @@
 <para>Initialize the iRobot open interface without updating a struct internal function </para>        </detaileddescription>
         <inbodydescription>
         </inbodydescription>
-        <location file="C:/Users/DonsterLaptop/Documents/Robot288/cpre288_generalpurposeautomatedrobot/Robot/Utils/open_interface.c" line="83" column="1" bodyfile="C:/Users/DonsterLaptop/Documents/Robot288/cpre288_generalpurposeautomatedrobot/Robot/Utils/open_interface.c" bodystart="130" bodyend="140"/>
+        <location file="C:/Users/DonsterLaptop/Documents/Robot288/cpre288_generalpurposeautomatedrobot/Robot/Utils/open_interface.c" line="86" column="1" bodyfile="C:/Users/DonsterLaptop/Documents/Robot288/cpre288_generalpurposeautomatedrobot/Robot/Utils/open_interface.c" bodystart="133" bodyend="143"/>
       </memberdef>
       <memberdef kind="function" id="open__interface_8c_1ad9923d0a228d340572e71997ddf32df9" prot="public" static="no" const="no" explicit="no" inline="no" virt="non-virtual">
         <type>void</type>
@@ -642,7 +642,7 @@
         </detaileddescription>
         <inbodydescription>
         </inbodydescription>
-        <location file="C:/Users/DonsterLaptop/Documents/Robot288/cpre288_generalpurposeautomatedrobot/Robot/Utils/open_interface.c" line="87" column="1" bodyfile="C:/Users/DonsterLaptop/Documents/Robot288/cpre288_generalpurposeautomatedrobot/Robot/Utils/open_interface.c" bodystart="369" bodyend="393"/>
+        <location file="C:/Users/DonsterLaptop/Documents/Robot288/cpre288_generalpurposeautomatedrobot/Robot/Utils/open_interface.c" line="90" column="1" bodyfile="C:/Users/DonsterLaptop/Documents/Robot288/cpre288_generalpurposeautomatedrobot/Robot/Utils/open_interface.c" bodystart="372" bodyend="396"/>
       </memberdef>
       <memberdef kind="function" id="open__interface_8c_1af7fe40c5fd5331db4a79ee4d77b12398" prot="public" static="no" const="no" explicit="no" inline="no" virt="non-virtual">
         <type>void</type>
@@ -658,7 +658,7 @@
         </detaileddescription>
         <inbodydescription>
         </inbodydescription>
-        <location file="C:/Users/DonsterLaptop/Documents/Robot288/cpre288_generalpurposeautomatedrobot/Robot/Utils/open_interface.c" line="90" column="1"/>
+        <location file="C:/Users/DonsterLaptop/Documents/Robot288/cpre288_generalpurposeautomatedrobot/Robot/Utils/open_interface.c" line="93" column="1"/>
       </memberdef>
       <memberdef kind="function" id="open__interface_8c_1aced7535453b0c0e29af698308d0498d4" prot="public" static="no" const="no" explicit="no" inline="no" virt="non-virtual">
         <type>void</type>
@@ -675,7 +675,7 @@
 <para>transmit character internal function </para>        </detaileddescription>
         <inbodydescription>
         </inbodydescription>
-        <location file="C:/Users/DonsterLaptop/Documents/Robot288/cpre288_generalpurposeautomatedrobot/Robot/Utils/open_interface.c" line="94" column="1" bodyfile="C:/Users/DonsterLaptop/Documents/Robot288/cpre288_generalpurposeautomatedrobot/Robot/Utils/open_interface.c" bodystart="397" bodyend="406"/>
+        <location file="C:/Users/DonsterLaptop/Documents/Robot288/cpre288_generalpurposeautomatedrobot/Robot/Utils/open_interface.c" line="97" column="1" bodyfile="C:/Users/DonsterLaptop/Documents/Robot288/cpre288_generalpurposeautomatedrobot/Robot/Utils/open_interface.c" bodystart="400" bodyend="409"/>
       </memberdef>
       <memberdef kind="function" id="open__interface_8c_1a33bd73bbfbc570a633f3622069087066" prot="public" static="no" const="no" explicit="no" inline="no" virt="non-virtual">
         <type>void</type>
@@ -701,7 +701,7 @@
 </para>        </detaileddescription>
         <inbodydescription>
         </inbodydescription>
-        <location file="C:/Users/DonsterLaptop/Documents/Robot288/cpre288_generalpurposeautomatedrobot/Robot/Utils/open_interface.c" line="98" column="1" bodyfile="C:/Users/DonsterLaptop/Documents/Robot288/cpre288_generalpurposeautomatedrobot/Robot/Communication/uart.c" bodystart="133" bodyend="148"/>
+        <location file="C:/Users/DonsterLaptop/Documents/Robot288/cpre288_generalpurposeautomatedrobot/Robot/Utils/open_interface.c" line="101" column="1" bodyfile="C:/Users/DonsterLaptop/Documents/Robot288/cpre288_generalpurposeautomatedrobot/Robot/Communication/uart.c" bodystart="133" bodyend="148"/>
       </memberdef>
       <memberdef kind="function" id="open__interface_8c_1a5e7e1773c5782c2be5f333f733aab29f" prot="public" static="no" const="no" explicit="no" inline="no" virt="non-virtual">
         <type>char</type>
@@ -717,7 +717,7 @@
 <para>Receive from UART internal function </para>        </detaileddescription>
         <inbodydescription>
         </inbodydescription>
-        <location file="C:/Users/DonsterLaptop/Documents/Robot288/cpre288_generalpurposeautomatedrobot/Robot/Utils/open_interface.c" line="102" column="1" bodyfile="C:/Users/DonsterLaptop/Documents/Robot288/cpre288_generalpurposeautomatedrobot/Robot/Utils/open_interface.c" bodystart="408" bodyend="423"/>
+        <location file="C:/Users/DonsterLaptop/Documents/Robot288/cpre288_generalpurposeautomatedrobot/Robot/Utils/open_interface.c" line="105" column="1" bodyfile="C:/Users/DonsterLaptop/Documents/Robot288/cpre288_generalpurposeautomatedrobot/Robot/Utils/open_interface.c" bodystart="411" bodyend="426"/>
       </memberdef>
       <memberdef kind="function" id="open__interface_8c_1aa238e081cfecd7a9bf3d274f53504362" prot="public" static="no" const="no" explicit="no" inline="no" virt="non-virtual">
         <type>void</type>
@@ -739,7 +739,7 @@
         </detaileddescription>
         <inbodydescription>
         </inbodydescription>
-        <location file="C:/Users/DonsterLaptop/Documents/Robot288/cpre288_generalpurposeautomatedrobot/Robot/Utils/open_interface.c" line="105" column="1" bodyfile="C:/Users/DonsterLaptop/Documents/Robot288/cpre288_generalpurposeautomatedrobot/Robot/Utils/open_interface.c" bodystart="188" bodyend="282"/>
+        <location file="C:/Users/DonsterLaptop/Documents/Robot288/cpre288_generalpurposeautomatedrobot/Robot/Utils/open_interface.c" line="108" column="1" bodyfile="C:/Users/DonsterLaptop/Documents/Robot288/cpre288_generalpurposeautomatedrobot/Robot/Utils/open_interface.c" bodystart="191" bodyend="285"/>
       </memberdef>
       <memberdef kind="function" id="open__interface_8c_1afcbad4c0a94458d1ba7ff11dac9ff42b" prot="public" static="no" const="no" explicit="no" inline="no" virt="non-virtual">
         <type>void</type>
@@ -761,7 +761,7 @@
 <para>Send large data set from array internal function </para>        </detaileddescription>
         <inbodydescription>
         </inbodydescription>
-        <location file="C:/Users/DonsterLaptop/Documents/Robot288/cpre288_generalpurposeautomatedrobot/Robot/Utils/open_interface.c" line="109" column="1" bodyfile="C:/Users/DonsterLaptop/Documents/Robot288/cpre288_generalpurposeautomatedrobot/Robot/Utils/open_interface.c" bodystart="436" bodyend="444"/>
+        <location file="C:/Users/DonsterLaptop/Documents/Robot288/cpre288_generalpurposeautomatedrobot/Robot/Utils/open_interface.c" line="112" column="1" bodyfile="C:/Users/DonsterLaptop/Documents/Robot288/cpre288_generalpurposeautomatedrobot/Robot/Utils/open_interface.c" bodystart="439" bodyend="447"/>
       </memberdef>
       <memberdef kind="function" id="open__interface_8c_1a8c54153bd272749c1fc36a3f98ffc8b1" prot="public" static="no" const="no" explicit="no" inline="yes" virt="non-virtual">
         <type>int16_t</type>
@@ -778,7 +778,7 @@
 <para>Helper function to convert big-endian integer from pointer into little endian integer internal function </para>        </detaileddescription>
         <inbodydescription>
         </inbodydescription>
-        <location file="C:/Users/DonsterLaptop/Documents/Robot288/cpre288_generalpurposeautomatedrobot/Robot/Utils/open_interface.c" line="113" column="1" bodyfile="C:/Users/DonsterLaptop/Documents/Robot288/cpre288_generalpurposeautomatedrobot/Robot/Utils/open_interface.c" bodystart="284" bodyend="287"/>
+        <location file="C:/Users/DonsterLaptop/Documents/Robot288/cpre288_generalpurposeautomatedrobot/Robot/Utils/open_interface.c" line="116" column="1" bodyfile="C:/Users/DonsterLaptop/Documents/Robot288/cpre288_generalpurposeautomatedrobot/Robot/Utils/open_interface.c" bodystart="287" bodyend="290"/>
       </memberdef>
       <memberdef kind="function" id="open__interface_8c_1aad249dffdf79454de76e09092a0445f5" prot="public" static="no" const="no" explicit="no" inline="no" virt="non-virtual">
         <type><ref refid="structoi__t" kindref="compound">oi_t</ref> *</type>
@@ -791,7 +791,7 @@
         </detaileddescription>
         <inbodydescription>
         </inbodydescription>
-        <location file="C:/Users/DonsterLaptop/Documents/Robot288/cpre288_generalpurposeautomatedrobot/Robot/Utils/open_interface.c" line="116" column="1" bodyfile="C:/Users/DonsterLaptop/Documents/Robot288/cpre288_generalpurposeautomatedrobot/Robot/Utils/open_interface.c" bodystart="116" bodyend="119"/>
+        <location file="C:/Users/DonsterLaptop/Documents/Robot288/cpre288_generalpurposeautomatedrobot/Robot/Utils/open_interface.c" line="119" column="1" bodyfile="C:/Users/DonsterLaptop/Documents/Robot288/cpre288_generalpurposeautomatedrobot/Robot/Utils/open_interface.c" bodystart="119" bodyend="122"/>
       </memberdef>
       <memberdef kind="function" id="open__interface_8c_1abe8995b948a2f47938a574b59c2dda7e" prot="public" static="no" const="no" explicit="no" inline="no" virt="non-virtual">
         <type>void</type>
@@ -808,7 +808,7 @@
         </detaileddescription>
         <inbodydescription>
         </inbodydescription>
-        <location file="C:/Users/DonsterLaptop/Documents/Robot288/cpre288_generalpurposeautomatedrobot/Robot/Utils/open_interface.c" line="122" column="1" bodyfile="C:/Users/DonsterLaptop/Documents/Robot288/cpre288_generalpurposeautomatedrobot/Robot/Utils/open_interface.c" bodystart="122" bodyend="128"/>
+        <location file="C:/Users/DonsterLaptop/Documents/Robot288/cpre288_generalpurposeautomatedrobot/Robot/Utils/open_interface.c" line="125" column="1" bodyfile="C:/Users/DonsterLaptop/Documents/Robot288/cpre288_generalpurposeautomatedrobot/Robot/Utils/open_interface.c" bodystart="125" bodyend="131"/>
       </memberdef>
       <memberdef kind="function" id="open__interface_8c_1a9108ba8c791d0e97444c03b2f40b278a" prot="public" static="no" const="no" explicit="no" inline="no" virt="non-virtual">
         <type>void</type>
@@ -825,7 +825,7 @@
 <para>Initialize open interface communication with IRobot.</para><para>This function needs to be called to setup UART and other OI peripherals </para>        </detaileddescription>
         <inbodydescription>
         </inbodydescription>
-        <location file="C:/Users/DonsterLaptop/Documents/Robot288/cpre288_generalpurposeautomatedrobot/Robot/Utils/open_interface.c" line="150" column="1" bodyfile="C:/Users/DonsterLaptop/Documents/Robot288/cpre288_generalpurposeautomatedrobot/Robot/Utils/open_interface.c" bodystart="150" bodyend="157"/>
+        <location file="C:/Users/DonsterLaptop/Documents/Robot288/cpre288_generalpurposeautomatedrobot/Robot/Utils/open_interface.c" line="153" column="1" bodyfile="C:/Users/DonsterLaptop/Documents/Robot288/cpre288_generalpurposeautomatedrobot/Robot/Utils/open_interface.c" bodystart="153" bodyend="160"/>
       </memberdef>
       <memberdef kind="function" id="open__interface_8c_1a459768368a73c0a552d07edcea9c981e" prot="public" static="no" const="no" explicit="no" inline="no" virt="non-virtual">
         <type>void</type>
@@ -838,7 +838,7 @@
         </detaileddescription>
         <inbodydescription>
         </inbodydescription>
-        <location file="C:/Users/DonsterLaptop/Documents/Robot288/cpre288_generalpurposeautomatedrobot/Robot/Utils/open_interface.c" line="159" column="1" bodyfile="C:/Users/DonsterLaptop/Documents/Robot288/cpre288_generalpurposeautomatedrobot/Robot/Utils/open_interface.c" bodystart="159" bodyend="163"/>
+        <location file="C:/Users/DonsterLaptop/Documents/Robot288/cpre288_generalpurposeautomatedrobot/Robot/Utils/open_interface.c" line="162" column="1" bodyfile="C:/Users/DonsterLaptop/Documents/Robot288/cpre288_generalpurposeautomatedrobot/Robot/Utils/open_interface.c" bodystart="162" bodyend="166"/>
       </memberdef>
       <memberdef kind="function" id="open__interface_8c_1a9129559bba5ff9dc7e4df64330864674" prot="public" static="no" const="no" explicit="no" inline="no" virt="non-virtual">
         <type>void</type>
@@ -855,7 +855,7 @@
 <para>Update sensor data. </para>        </detaileddescription>
         <inbodydescription>
         </inbodydescription>
-        <location file="C:/Users/DonsterLaptop/Documents/Robot288/cpre288_generalpurposeautomatedrobot/Robot/Utils/open_interface.c" line="166" column="1" bodyfile="C:/Users/DonsterLaptop/Documents/Robot288/cpre288_generalpurposeautomatedrobot/Robot/Utils/open_interface.c" bodystart="166" bodyend="186"/>
+        <location file="C:/Users/DonsterLaptop/Documents/Robot288/cpre288_generalpurposeautomatedrobot/Robot/Utils/open_interface.c" line="169" column="1" bodyfile="C:/Users/DonsterLaptop/Documents/Robot288/cpre288_generalpurposeautomatedrobot/Robot/Utils/open_interface.c" bodystart="169" bodyend="189"/>
       </memberdef>
       <memberdef kind="function" id="open__interface_8c_1a9ce8d6194cf8cb1d39104b641cb5254d" prot="public" static="no" const="no" explicit="no" inline="no" virt="non-virtual">
         <type>void</type>
@@ -913,7 +913,7 @@
 </para>        </detaileddescription>
         <inbodydescription>
         </inbodydescription>
-        <location file="C:/Users/DonsterLaptop/Documents/Robot288/cpre288_generalpurposeautomatedrobot/Robot/Utils/open_interface.c" line="294" column="1" bodyfile="C:/Users/DonsterLaptop/Documents/Robot288/cpre288_generalpurposeautomatedrobot/Robot/Utils/open_interface.c" bodystart="294" bodyend="308"/>
+        <location file="C:/Users/DonsterLaptop/Documents/Robot288/cpre288_generalpurposeautomatedrobot/Robot/Utils/open_interface.c" line="297" column="1" bodyfile="C:/Users/DonsterLaptop/Documents/Robot288/cpre288_generalpurposeautomatedrobot/Robot/Utils/open_interface.c" bodystart="297" bodyend="311"/>
       </memberdef>
       <memberdef kind="function" id="open__interface_8c_1a49949f029cc5f84ad903aa7022f4e5e0" prot="public" static="no" const="no" explicit="no" inline="no" virt="non-virtual">
         <type>void</type>
@@ -949,7 +949,7 @@
 </para>        </detaileddescription>
         <inbodydescription>
         </inbodydescription>
-        <location file="C:/Users/DonsterLaptop/Documents/Robot288/cpre288_generalpurposeautomatedrobot/Robot/Utils/open_interface.c" line="313" column="1" bodyfile="C:/Users/DonsterLaptop/Documents/Robot288/cpre288_generalpurposeautomatedrobot/Robot/Utils/open_interface.c" bodystart="313" bodyend="320"/>
+        <location file="C:/Users/DonsterLaptop/Documents/Robot288/cpre288_generalpurposeautomatedrobot/Robot/Utils/open_interface.c" line="316" column="1" bodyfile="C:/Users/DonsterLaptop/Documents/Robot288/cpre288_generalpurposeautomatedrobot/Robot/Utils/open_interface.c" bodystart="316" bodyend="323"/>
       </memberdef>
       <memberdef kind="function" id="open__interface_8c_1ad945411d8b234cf7c50488a8d9388ff5" prot="public" static="no" const="no" explicit="no" inline="no" virt="non-virtual">
         <type>void</type>
@@ -1007,7 +1007,7 @@
 </para>        </detaileddescription>
         <inbodydescription>
         </inbodydescription>
-        <location file="C:/Users/DonsterLaptop/Documents/Robot288/cpre288_generalpurposeautomatedrobot/Robot/Utils/open_interface.c" line="327" column="1" bodyfile="C:/Users/DonsterLaptop/Documents/Robot288/cpre288_generalpurposeautomatedrobot/Robot/Utils/open_interface.c" bodystart="327" bodyend="339"/>
+        <location file="C:/Users/DonsterLaptop/Documents/Robot288/cpre288_generalpurposeautomatedrobot/Robot/Utils/open_interface.c" line="330" column="1" bodyfile="C:/Users/DonsterLaptop/Documents/Robot288/cpre288_generalpurposeautomatedrobot/Robot/Utils/open_interface.c" bodystart="330" bodyend="342"/>
       </memberdef>
       <memberdef kind="function" id="open__interface_8c_1a353765c4297939ef0390a47ca869af56" prot="public" static="no" const="no" explicit="no" inline="no" virt="non-virtual">
         <type>void</type>
@@ -1024,7 +1024,7 @@
 <para>Play song. </para>        </detaileddescription>
         <inbodydescription>
         </inbodydescription>
-        <location file="C:/Users/DonsterLaptop/Documents/Robot288/cpre288_generalpurposeautomatedrobot/Robot/Utils/open_interface.c" line="342" column="1" bodyfile="C:/Users/DonsterLaptop/Documents/Robot288/cpre288_generalpurposeautomatedrobot/Robot/Utils/open_interface.c" bodystart="342" bodyend="346"/>
+        <location file="C:/Users/DonsterLaptop/Documents/Robot288/cpre288_generalpurposeautomatedrobot/Robot/Utils/open_interface.c" line="345" column="1" bodyfile="C:/Users/DonsterLaptop/Documents/Robot288/cpre288_generalpurposeautomatedrobot/Robot/Utils/open_interface.c" bodystart="345" bodyend="349"/>
       </memberdef>
       <memberdef kind="function" id="open__interface_8c_1a6c701c5d6642b0f7128b03542a09ed76" prot="public" static="no" const="no" explicit="no" inline="no" virt="non-virtual">
         <type>void</type>
@@ -1040,7 +1040,7 @@
 <para>Calls in built in demo to send the iRobot to an open home base This will cause the iRobot to enter the Passive state </para>        </detaileddescription>
         <inbodydescription>
         </inbodydescription>
-        <location file="C:/Users/DonsterLaptop/Documents/Robot288/cpre288_generalpurposeautomatedrobot/Robot/Utils/open_interface.c" line="349" column="1" bodyfile="C:/Users/DonsterLaptop/Documents/Robot288/cpre288_generalpurposeautomatedrobot/Robot/Utils/open_interface.c" bodystart="349" bodyend="365"/>
+        <location file="C:/Users/DonsterLaptop/Documents/Robot288/cpre288_generalpurposeautomatedrobot/Robot/Utils/open_interface.c" line="352" column="1" bodyfile="C:/Users/DonsterLaptop/Documents/Robot288/cpre288_generalpurposeautomatedrobot/Robot/Utils/open_interface.c" bodystart="352" bodyend="368"/>
       </memberdef>
       <memberdef kind="function" id="open__interface_8c_1a5eb8e6923f80c6f02cccbb79535cfa7f" prot="public" static="no" const="no" explicit="no" inline="no" virt="non-virtual">
         <type>void</type>
@@ -1057,7 +1057,7 @@
         </detaileddescription>
         <inbodydescription>
         </inbodydescription>
-        <location file="C:/Users/DonsterLaptop/Documents/Robot288/cpre288_generalpurposeautomatedrobot/Robot/Utils/open_interface.c" line="426" column="1" bodyfile="C:/Users/DonsterLaptop/Documents/Robot288/cpre288_generalpurposeautomatedrobot/Robot/Utils/open_interface.c" bodystart="426" bodyend="434"/>
+        <location file="C:/Users/DonsterLaptop/Documents/Robot288/cpre288_generalpurposeautomatedrobot/Robot/Utils/open_interface.c" line="429" column="1" bodyfile="C:/Users/DonsterLaptop/Documents/Robot288/cpre288_generalpurposeautomatedrobot/Robot/Utils/open_interface.c" bodystart="429" bodyend="437"/>
       </memberdef>
       <memberdef kind="function" id="open__interface_8c_1ad267467da06136cae30bdf71425575c8" prot="public" static="no" const="no" explicit="no" inline="no" virt="non-virtual">
         <type>char *</type>
@@ -1070,7 +1070,7 @@
         </detaileddescription>
         <inbodydescription>
         </inbodydescription>
-        <location file="C:/Users/DonsterLaptop/Documents/Robot288/cpre288_generalpurposeautomatedrobot/Robot/Utils/open_interface.c" line="446" column="1" bodyfile="C:/Users/DonsterLaptop/Documents/Robot288/cpre288_generalpurposeautomatedrobot/Robot/Utils/open_interface.c" bodystart="446" bodyend="483"/>
+        <location file="C:/Users/DonsterLaptop/Documents/Robot288/cpre288_generalpurposeautomatedrobot/Robot/Utils/open_interface.c" line="449" column="1" bodyfile="C:/Users/DonsterLaptop/Documents/Robot288/cpre288_generalpurposeautomatedrobot/Robot/Utils/open_interface.c" bodystart="449" bodyend="486"/>
       </memberdef>
       <memberdef kind="function" id="open__interface_8c_1a1bca24fa8dd6fb148a6ec99ffbe2f29d" prot="public" static="no" const="no" explicit="no" inline="no" virt="non-virtual">
         <type>void</type>
@@ -1086,7 +1086,7 @@
         </detaileddescription>
         <inbodydescription>
         </inbodydescription>
-        <location file="C:/Users/DonsterLaptop/Documents/Robot288/cpre288_generalpurposeautomatedrobot/Robot/Utils/open_interface.c" line="486" column="1" bodyfile="C:/Users/DonsterLaptop/Documents/Robot288/cpre288_generalpurposeautomatedrobot/Robot/Utils/open_interface.c" bodystart="486" bodyend="502"/>
+        <location file="C:/Users/DonsterLaptop/Documents/Robot288/cpre288_generalpurposeautomatedrobot/Robot/Utils/open_interface.c" line="489" column="1" bodyfile="C:/Users/DonsterLaptop/Documents/Robot288/cpre288_generalpurposeautomatedrobot/Robot/Utils/open_interface.c" bodystart="489" bodyend="505"/>
       </memberdef>
       <memberdef kind="function" id="open__interface_8c_1a02aad0ed1a15a7938e39823becf866e6" prot="public" static="no" const="no" explicit="no" inline="no" virt="non-virtual">
         <type>void</type>
@@ -1102,7 +1102,7 @@
         </detaileddescription>
         <inbodydescription>
         </inbodydescription>
-        <location file="C:/Users/DonsterLaptop/Documents/Robot288/cpre288_generalpurposeautomatedrobot/Robot/Utils/open_interface.c" line="504" column="1" bodyfile="C:/Users/DonsterLaptop/Documents/Robot288/cpre288_generalpurposeautomatedrobot/Robot/Utils/open_interface.c" bodystart="504" bodyend="513"/>
+        <location file="C:/Users/DonsterLaptop/Documents/Robot288/cpre288_generalpurposeautomatedrobot/Robot/Utils/open_interface.c" line="507" column="1" bodyfile="C:/Users/DonsterLaptop/Documents/Robot288/cpre288_generalpurposeautomatedrobot/Robot/Utils/open_interface.c" bodystart="507" bodyend="516"/>
       </memberdef>
       <memberdef kind="function" id="open__interface_8c_1a22afee5afdd7d60bc1bd9d58a428e4b7" prot="public" static="no" const="no" explicit="no" inline="no" virt="non-virtual">
         <type>float</type>
@@ -1127,522 +1127,518 @@
 </para>        </detaileddescription>
         <inbodydescription>
         </inbodydescription>
-        <location file="C:/Users/DonsterLaptop/Documents/Robot288/cpre288_generalpurposeautomatedrobot/Robot/Utils/open_interface.c" line="519" column="1" bodyfile="C:/Users/DonsterLaptop/Documents/Robot288/cpre288_generalpurposeautomatedrobot/Robot/Utils/open_interface.c" bodystart="519" bodyend="559"/>
+        <location file="C:/Users/DonsterLaptop/Documents/Robot288/cpre288_generalpurposeautomatedrobot/Robot/Utils/open_interface.c" line="522" column="1" bodyfile="C:/Users/DonsterLaptop/Documents/Robot288/cpre288_generalpurposeautomatedrobot/Robot/Utils/open_interface.c" bodystart="522" bodyend="562"/>
       </memberdef>
       </sectiondef>
     <briefdescription>
-    </briefdescription>
+<para>Contains all functionality to interface with the IRobot Create V2 Communication over UART4 at 115200. </para>    </briefdescription>
     <detaileddescription>
-    </detaileddescription>
+<para><simplesect kind="author"><para>Noah Bergman </para></simplesect>
+<simplesect kind="date"><para>03/11/2016 </para></simplesect>
+</para>    </detaileddescription>
     <programlisting>
-<codeline lineno="1"><highlight class="comment">/*</highlight></codeline>
-<codeline lineno="2"><highlight class="comment"><sp/>*<sp/>open_interface.c</highlight></codeline>
-<codeline lineno="3"><highlight class="comment"><sp/>*</highlight></codeline>
-<codeline lineno="4"><highlight class="comment"><sp/>*<sp/><sp/>Created<sp/>on:<sp/>Mar<sp/>11,<sp/>2016</highlight></codeline>
-<codeline lineno="5"><highlight class="comment"><sp/>*<sp/><sp/><sp/><sp/><sp/><sp/>Author:<sp/>nbergman</highlight></codeline>
-<codeline lineno="6"><highlight class="comment"><sp/>*/</highlight><highlight class="normal"></highlight></codeline>
-<codeline lineno="7"><highlight class="normal"></highlight></codeline>
-<codeline lineno="8"><highlight class="normal"></highlight><highlight class="comment">/*</highlight></codeline>
-<codeline lineno="9"><highlight class="comment"><sp/>*<sp/>Open<sp/>Interface</highlight></codeline>
-<codeline lineno="10"><highlight class="comment"><sp/>*</highlight></codeline>
-<codeline lineno="11"><highlight class="comment"><sp/>*<sp/><sp/>Created<sp/>on:<sp/>Mar<sp/>3,<sp/>2016</highlight></codeline>
-<codeline lineno="12"><highlight class="comment"><sp/>*<sp/><sp/><sp/><sp/><sp/><sp/>Author:<sp/>Noah<sp/>Bergman,<sp/>Eric<sp/>Middleton,<sp/>dmlarson</highlight></codeline>
-<codeline lineno="13"><highlight class="comment"><sp/>*/</highlight><highlight class="normal"></highlight></codeline>
-<codeline lineno="14"><highlight class="normal"></highlight></codeline>
-<codeline lineno="15"><highlight class="normal"></highlight><highlight class="preprocessor">#include<sp/>&quot;open_interface.h&quot;</highlight><highlight class="normal"></highlight></codeline>
-<codeline lineno="16"><highlight class="normal"></highlight></codeline>
-<codeline lineno="17"><highlight class="normal"></highlight><highlight class="preprocessor">#define<sp/>OI_OPCODE_START<sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>128</highlight><highlight class="normal"></highlight></codeline>
-<codeline lineno="18"><highlight class="normal"></highlight><highlight class="preprocessor">#define<sp/>OI_OPCODE_BAUD<sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>129</highlight><highlight class="normal"></highlight></codeline>
-<codeline lineno="19"><highlight class="normal"></highlight><highlight class="preprocessor">#define<sp/>OI_OPCODE_CONTROL<sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>130</highlight><highlight class="normal"></highlight></codeline>
-<codeline lineno="20"><highlight class="normal"></highlight><highlight class="preprocessor">#define<sp/>OI_OPCODE_SAFE<sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>131</highlight><highlight class="normal"></highlight></codeline>
-<codeline lineno="21"><highlight class="normal"></highlight><highlight class="preprocessor">#define<sp/>OI_OPCODE_FULL<sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>132</highlight><highlight class="normal"></highlight></codeline>
-<codeline lineno="22"><highlight class="normal"></highlight><highlight class="preprocessor">#define<sp/>OI_OPCODE_POWER<sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>133<sp/><sp/><sp/><sp/><sp/><sp/>//POWER<sp/>DOWN<sp/>ROOMBA</highlight><highlight class="normal"></highlight></codeline>
-<codeline lineno="23"><highlight class="normal"></highlight><highlight class="preprocessor">#define<sp/>OI_OPCODE_SPOT<sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>134</highlight><highlight class="normal"></highlight></codeline>
-<codeline lineno="24"><highlight class="normal"></highlight><highlight class="preprocessor">#define<sp/>OI_OPCODE_CLEAN<sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>135</highlight><highlight class="normal"></highlight></codeline>
-<codeline lineno="25"><highlight class="normal"></highlight><highlight class="preprocessor">#define<sp/>OI_OPCODE_MAX<sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>136</highlight><highlight class="normal"></highlight></codeline>
-<codeline lineno="26"><highlight class="normal"></highlight><highlight class="preprocessor">#define<sp/>OI_OPCODE_DRIVE<sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>137</highlight><highlight class="normal"></highlight></codeline>
-<codeline lineno="27"><highlight class="normal"></highlight><highlight class="preprocessor">#define<sp/>OI_OPCODE_MOTORS<sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>138</highlight><highlight class="normal"></highlight></codeline>
-<codeline lineno="28"><highlight class="normal"></highlight><highlight class="preprocessor">#define<sp/>OI_OPCODE_LEDS<sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>139</highlight><highlight class="normal"></highlight></codeline>
-<codeline lineno="29"><highlight class="normal"></highlight><highlight class="preprocessor">#define<sp/>OI_OPCODE_SONG<sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>140</highlight><highlight class="normal"></highlight></codeline>
-<codeline lineno="30"><highlight class="normal"></highlight><highlight class="preprocessor">#define<sp/>OI_OPCODE_PLAY<sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>141</highlight><highlight class="normal"></highlight></codeline>
-<codeline lineno="31"><highlight class="normal"></highlight><highlight class="preprocessor">#define<sp/>OI_OPCODE_SENSORS<sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>142</highlight><highlight class="normal"></highlight></codeline>
-<codeline lineno="32"><highlight class="normal"></highlight><highlight class="preprocessor">#define<sp/>OI_OPCODE_FORCEDOCK<sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>143</highlight><highlight class="normal"></highlight></codeline>
-<codeline lineno="33"><highlight class="normal"></highlight></codeline>
-<codeline lineno="34"><highlight class="normal"></highlight><highlight class="preprocessor">#define<sp/>OI_OPCODE_PWM_MOTORS<sp/><sp/><sp/><sp/><sp/><sp/><sp/>144</highlight><highlight class="normal"></highlight></codeline>
-<codeline lineno="35"><highlight class="normal"></highlight><highlight class="preprocessor">#define<sp/>OI_OPCODE_DRIVE_WHEELS<sp/><sp/><sp/><sp/><sp/>145</highlight><highlight class="normal"></highlight></codeline>
-<codeline lineno="36"><highlight class="normal"></highlight><highlight class="preprocessor">#define<sp/>OI_OPCODE_DRIVE_PWM<sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>146</highlight><highlight class="normal"></highlight></codeline>
-<codeline lineno="37"><highlight class="normal"></highlight><highlight class="preprocessor">#define<sp/>OI_OPCODE_OUTPUTS<sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>147</highlight><highlight class="normal"></highlight></codeline>
-<codeline lineno="38"><highlight class="normal"></highlight><highlight class="preprocessor">#define<sp/>OI_OPCODE_STREAM<sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>148</highlight><highlight class="normal"></highlight></codeline>
-<codeline lineno="39"><highlight class="normal"></highlight><highlight class="preprocessor">#define<sp/>OI_OPCODE_QUERY_LIST<sp/><sp/><sp/><sp/><sp/><sp/><sp/>149</highlight><highlight class="normal"></highlight></codeline>
-<codeline lineno="40"><highlight class="normal"></highlight><highlight class="preprocessor">#define<sp/>OI_OPCODE_DO_STREAM<sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>150</highlight><highlight class="normal"></highlight></codeline>
-<codeline lineno="41"><highlight class="normal"></highlight><highlight class="preprocessor">#define<sp/>OI_OPCODE_SEND_IR_CHAR<sp/><sp/><sp/><sp/><sp/>151</highlight><highlight class="normal"></highlight></codeline>
-<codeline lineno="42"><highlight class="normal"></highlight><highlight class="preprocessor">#define<sp/>OI_OPCODE_SCRIPT<sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>152</highlight><highlight class="normal"></highlight></codeline>
-<codeline lineno="43"><highlight class="normal"></highlight><highlight class="preprocessor">#define<sp/>OI_OPCODE_PLAY_SCRIPT<sp/><sp/><sp/><sp/><sp/><sp/>153</highlight><highlight class="normal"></highlight></codeline>
-<codeline lineno="44"><highlight class="normal"></highlight><highlight class="preprocessor">#define<sp/>OI_OPCODE_SHOW_SCRIPT<sp/><sp/><sp/><sp/><sp/><sp/>154</highlight><highlight class="normal"></highlight></codeline>
-<codeline lineno="45"><highlight class="normal"></highlight><highlight class="preprocessor">#define<sp/>OI_OPCODE_WAIT_TIME<sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>155</highlight><highlight class="normal"></highlight></codeline>
-<codeline lineno="46"><highlight class="normal"></highlight><highlight class="preprocessor">#define<sp/>OI_OPCODE_WAIT_DISTANCE<sp/><sp/><sp/><sp/>156</highlight><highlight class="normal"></highlight></codeline>
-<codeline lineno="47"><highlight class="normal"></highlight><highlight class="preprocessor">#define<sp/>OI_OPCODE_WAIT_ANGLE<sp/><sp/><sp/><sp/><sp/><sp/><sp/>157</highlight><highlight class="normal"></highlight></codeline>
-<codeline lineno="48"><highlight class="normal"></highlight><highlight class="preprocessor">#define<sp/>OI_OPCODE_WAIT_EVENT<sp/><sp/><sp/><sp/><sp/><sp/><sp/>158</highlight><highlight class="normal"></highlight></codeline>
-<codeline lineno="49"><highlight class="normal"></highlight></codeline>
-<codeline lineno="50"><highlight class="normal"></highlight><highlight class="preprocessor">#define<sp/>OI_OPCODE_RESET<sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>7<sp/><sp/><sp/>//RESET<sp/>ROOMBA<sp/>-<sp/>GO<sp/>TO</highlight><highlight class="normal"></highlight></codeline>
-<codeline lineno="51"><highlight class="normal"></highlight><highlight class="preprocessor">#define<sp/>OI_OPCODE_STOP<sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>173</highlight><highlight class="normal"></highlight></codeline>
-<codeline lineno="52"><highlight class="normal"></highlight><highlight class="preprocessor">#define<sp/>OI_OPCODE_SCHEDULE<sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>167</highlight><highlight class="normal"></highlight></codeline>
-<codeline lineno="53"><highlight class="normal"></highlight><highlight class="preprocessor">#define<sp/>OI_OPCODE_SCHED_LED<sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>162<sp/>//MONDAY<sp/>THROUGH<sp/>SUNDAY<sp/>LEDS</highlight><highlight class="normal"></highlight></codeline>
-<codeline lineno="54"><highlight class="normal"></highlight><highlight class="preprocessor">#define<sp/>OI_OPCODE_7SEG<sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>163</highlight><highlight class="normal"></highlight></codeline>
-<codeline lineno="55"><highlight class="normal"></highlight></codeline>
-<codeline lineno="56"><highlight class="normal"></highlight><highlight class="comment">//<sp/>Contains<sp/>Packets<sp/>7-26</highlight><highlight class="normal"></highlight></codeline>
-<codeline lineno="57"><highlight class="normal"></highlight><highlight class="preprocessor">#define<sp/>OI_SENSOR_PACKET_GROUP0<sp/>0</highlight><highlight class="normal"></highlight></codeline>
-<codeline lineno="58"><highlight class="normal"></highlight><highlight class="comment">//<sp/>Contains<sp/>Packets<sp/>7-16</highlight><highlight class="normal"></highlight></codeline>
-<codeline lineno="59"><highlight class="normal"></highlight><highlight class="preprocessor">#define<sp/>OI_SENSOR_PACKET_GROUP1<sp/>1</highlight><highlight class="normal"></highlight></codeline>
-<codeline lineno="60"><highlight class="normal"></highlight><highlight class="comment">//<sp/>Contains<sp/>Packets<sp/>17-20</highlight><highlight class="normal"></highlight></codeline>
-<codeline lineno="61"><highlight class="normal"></highlight><highlight class="preprocessor">#define<sp/>OI_SENSOR_PACKET_GROUP2<sp/>2</highlight><highlight class="normal"></highlight></codeline>
-<codeline lineno="62"><highlight class="normal"></highlight><highlight class="comment">//<sp/>Contains<sp/>Packets<sp/>21-26</highlight><highlight class="normal"></highlight></codeline>
-<codeline lineno="63"><highlight class="normal"></highlight><highlight class="preprocessor">#define<sp/>OI_SENSOR_PACKET_GROUP3<sp/>3</highlight><highlight class="normal"></highlight></codeline>
-<codeline lineno="64"><highlight class="normal"></highlight><highlight class="comment">//<sp/>Contains<sp/>Packets<sp/>27-34</highlight><highlight class="normal"></highlight></codeline>
-<codeline lineno="65"><highlight class="normal"></highlight><highlight class="preprocessor">#define<sp/>OI_SENSOR_PACKET_GROUP4<sp/>4</highlight><highlight class="normal"></highlight></codeline>
-<codeline lineno="66"><highlight class="normal"></highlight><highlight class="comment">//<sp/>Contains<sp/>Packets<sp/>35-42</highlight><highlight class="normal"></highlight></codeline>
-<codeline lineno="67"><highlight class="normal"></highlight><highlight class="preprocessor">#define<sp/>OI_SENSOR_PACKET_GROUP5<sp/>5</highlight><highlight class="normal"></highlight></codeline>
-<codeline lineno="68"><highlight class="normal"></highlight><highlight class="comment">//<sp/>Contains<sp/>Packets<sp/>7-42</highlight><highlight class="normal"></highlight></codeline>
-<codeline lineno="69"><highlight class="normal"></highlight><highlight class="preprocessor">#define<sp/>OI_SENSOR_PACKET_GROUP6<sp/>6</highlight><highlight class="normal"></highlight></codeline>
-<codeline lineno="70"><highlight class="normal"></highlight><highlight class="comment">//<sp/>Contains<sp/>Packets<sp/>7-58<sp/>For<sp/>Use<sp/>With<sp/>Create<sp/>2<sp/>Only</highlight><highlight class="normal"></highlight></codeline>
-<codeline lineno="71"><highlight class="normal"></highlight><highlight class="preprocessor">#define<sp/>OI_SENSOR_PACKET_GROUP100<sp/>100</highlight><highlight class="normal"></highlight></codeline>
-<codeline lineno="72"><highlight class="normal"></highlight><highlight class="comment">//<sp/>Contains<sp/>Packets<sp/>43-58<sp/>For<sp/>Use<sp/>With<sp/>Create<sp/>2<sp/>Only</highlight><highlight class="normal"></highlight></codeline>
-<codeline lineno="73"><highlight class="normal"></highlight><highlight class="preprocessor">#define<sp/>OI_SENSOR_PACKET_GROUP101<sp/>101</highlight><highlight class="normal"></highlight></codeline>
-<codeline lineno="74"><highlight class="normal"></highlight><highlight class="comment">//<sp/>Contains<sp/>Packets<sp/>46-51<sp/>For<sp/>Use<sp/>With<sp/>Create<sp/>2<sp/>Only</highlight><highlight class="normal"></highlight></codeline>
-<codeline lineno="75"><highlight class="normal"></highlight><highlight class="preprocessor">#define<sp/>OI_SENSOR_PACKET_GROUP106<sp/>106</highlight><highlight class="normal"></highlight></codeline>
-<codeline lineno="76"><highlight class="normal"></highlight><highlight class="comment">//<sp/>Contains<sp/>Packets<sp/>54-58<sp/>For<sp/>Use<sp/>With<sp/>Create<sp/>2<sp/>Only</highlight><highlight class="normal"></highlight></codeline>
-<codeline lineno="77"><highlight class="normal"></highlight><highlight class="preprocessor">#define<sp/>OI_SENSOR_PACKET_GROUP107<sp/>107</highlight><highlight class="normal"></highlight></codeline>
-<codeline lineno="78"><highlight class="normal"></highlight></codeline>
-<codeline lineno="79"><highlight class="normal"></highlight><highlight class="preprocessor">#define<sp/>SENSOR_PACKET_SIZE<sp/><sp/>80</highlight><highlight class="normal"></highlight></codeline>
-<codeline lineno="80"><highlight class="normal"></highlight></codeline>
-<codeline lineno="83"><highlight class="keywordtype">void</highlight><highlight class="normal"><sp/>oi_init_noupdate(</highlight><highlight class="keywordtype">void</highlight><highlight class="normal">);</highlight></codeline>
-<codeline lineno="84"><highlight class="normal"></highlight></codeline>
-<codeline lineno="87"><highlight class="keywordtype">void</highlight><highlight class="normal"><sp/>oi_uartInit(</highlight><highlight class="keywordtype">void</highlight><highlight class="normal">);</highlight></codeline>
-<codeline lineno="88"><highlight class="normal"></highlight></codeline>
-<codeline lineno="90"><highlight class="keywordtype">void</highlight><highlight class="normal"><sp/>oi_uartFastMode(</highlight><highlight class="keywordtype">void</highlight><highlight class="normal">);</highlight></codeline>
+<codeline lineno="1"></codeline>
+<codeline lineno="11"><highlight class="comment">/*</highlight></codeline>
+<codeline lineno="12"><highlight class="comment"><sp/>*<sp/>Open<sp/>Interface</highlight></codeline>
+<codeline lineno="13"><highlight class="comment"><sp/>*</highlight></codeline>
+<codeline lineno="14"><highlight class="comment"><sp/>*<sp/><sp/>Created<sp/>on:<sp/>Mar<sp/>3,<sp/>2016</highlight></codeline>
+<codeline lineno="15"><highlight class="comment"><sp/>*<sp/><sp/><sp/><sp/><sp/><sp/>Author:<sp/>Noah<sp/>Bergman,<sp/>Eric<sp/>Middleton,<sp/>dmlarson</highlight></codeline>
+<codeline lineno="16"><highlight class="comment"><sp/>*/</highlight><highlight class="normal"></highlight></codeline>
+<codeline lineno="17"><highlight class="normal"></highlight></codeline>
+<codeline lineno="18"><highlight class="normal"></highlight><highlight class="preprocessor">#include<sp/>&quot;<ref refid="open__interface_8h" kindref="compound">open_interface.h</ref>&quot;</highlight><highlight class="normal"></highlight></codeline>
+<codeline lineno="19"><highlight class="normal"></highlight></codeline>
+<codeline lineno="20"><highlight class="normal"></highlight><highlight class="preprocessor">#define<sp/>OI_OPCODE_START<sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>128</highlight><highlight class="normal"></highlight></codeline>
+<codeline lineno="21"><highlight class="normal"></highlight><highlight class="preprocessor">#define<sp/>OI_OPCODE_BAUD<sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>129</highlight><highlight class="normal"></highlight></codeline>
+<codeline lineno="22"><highlight class="normal"></highlight><highlight class="preprocessor">#define<sp/>OI_OPCODE_CONTROL<sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>130</highlight><highlight class="normal"></highlight></codeline>
+<codeline lineno="23"><highlight class="normal"></highlight><highlight class="preprocessor">#define<sp/>OI_OPCODE_SAFE<sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>131</highlight><highlight class="normal"></highlight></codeline>
+<codeline lineno="24"><highlight class="normal"></highlight><highlight class="preprocessor">#define<sp/>OI_OPCODE_FULL<sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>132</highlight><highlight class="normal"></highlight></codeline>
+<codeline lineno="25"><highlight class="normal"></highlight><highlight class="preprocessor">#define<sp/>OI_OPCODE_POWER<sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>133<sp/><sp/><sp/><sp/><sp/><sp/>//POWER<sp/>DOWN<sp/>ROOMBA</highlight><highlight class="normal"></highlight></codeline>
+<codeline lineno="26"><highlight class="normal"></highlight><highlight class="preprocessor">#define<sp/>OI_OPCODE_SPOT<sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>134</highlight><highlight class="normal"></highlight></codeline>
+<codeline lineno="27"><highlight class="normal"></highlight><highlight class="preprocessor">#define<sp/>OI_OPCODE_CLEAN<sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>135</highlight><highlight class="normal"></highlight></codeline>
+<codeline lineno="28"><highlight class="normal"></highlight><highlight class="preprocessor">#define<sp/>OI_OPCODE_MAX<sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>136</highlight><highlight class="normal"></highlight></codeline>
+<codeline lineno="29"><highlight class="normal"></highlight><highlight class="preprocessor">#define<sp/>OI_OPCODE_DRIVE<sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>137</highlight><highlight class="normal"></highlight></codeline>
+<codeline lineno="30"><highlight class="normal"></highlight><highlight class="preprocessor">#define<sp/>OI_OPCODE_MOTORS<sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>138</highlight><highlight class="normal"></highlight></codeline>
+<codeline lineno="31"><highlight class="normal"></highlight><highlight class="preprocessor">#define<sp/>OI_OPCODE_LEDS<sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>139</highlight><highlight class="normal"></highlight></codeline>
+<codeline lineno="32"><highlight class="normal"></highlight><highlight class="preprocessor">#define<sp/>OI_OPCODE_SONG<sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>140</highlight><highlight class="normal"></highlight></codeline>
+<codeline lineno="33"><highlight class="normal"></highlight><highlight class="preprocessor">#define<sp/>OI_OPCODE_PLAY<sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>141</highlight><highlight class="normal"></highlight></codeline>
+<codeline lineno="34"><highlight class="normal"></highlight><highlight class="preprocessor">#define<sp/>OI_OPCODE_SENSORS<sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>142</highlight><highlight class="normal"></highlight></codeline>
+<codeline lineno="35"><highlight class="normal"></highlight><highlight class="preprocessor">#define<sp/>OI_OPCODE_FORCEDOCK<sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>143</highlight><highlight class="normal"></highlight></codeline>
+<codeline lineno="36"><highlight class="normal"></highlight></codeline>
+<codeline lineno="37"><highlight class="normal"></highlight><highlight class="preprocessor">#define<sp/>OI_OPCODE_PWM_MOTORS<sp/><sp/><sp/><sp/><sp/><sp/><sp/>144</highlight><highlight class="normal"></highlight></codeline>
+<codeline lineno="38"><highlight class="normal"></highlight><highlight class="preprocessor">#define<sp/>OI_OPCODE_DRIVE_WHEELS<sp/><sp/><sp/><sp/><sp/>145</highlight><highlight class="normal"></highlight></codeline>
+<codeline lineno="39"><highlight class="normal"></highlight><highlight class="preprocessor">#define<sp/>OI_OPCODE_DRIVE_PWM<sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>146</highlight><highlight class="normal"></highlight></codeline>
+<codeline lineno="40"><highlight class="normal"></highlight><highlight class="preprocessor">#define<sp/>OI_OPCODE_OUTPUTS<sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>147</highlight><highlight class="normal"></highlight></codeline>
+<codeline lineno="41"><highlight class="normal"></highlight><highlight class="preprocessor">#define<sp/>OI_OPCODE_STREAM<sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>148</highlight><highlight class="normal"></highlight></codeline>
+<codeline lineno="42"><highlight class="normal"></highlight><highlight class="preprocessor">#define<sp/>OI_OPCODE_QUERY_LIST<sp/><sp/><sp/><sp/><sp/><sp/><sp/>149</highlight><highlight class="normal"></highlight></codeline>
+<codeline lineno="43"><highlight class="normal"></highlight><highlight class="preprocessor">#define<sp/>OI_OPCODE_DO_STREAM<sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>150</highlight><highlight class="normal"></highlight></codeline>
+<codeline lineno="44"><highlight class="normal"></highlight><highlight class="preprocessor">#define<sp/>OI_OPCODE_SEND_IR_CHAR<sp/><sp/><sp/><sp/><sp/>151</highlight><highlight class="normal"></highlight></codeline>
+<codeline lineno="45"><highlight class="normal"></highlight><highlight class="preprocessor">#define<sp/>OI_OPCODE_SCRIPT<sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>152</highlight><highlight class="normal"></highlight></codeline>
+<codeline lineno="46"><highlight class="normal"></highlight><highlight class="preprocessor">#define<sp/>OI_OPCODE_PLAY_SCRIPT<sp/><sp/><sp/><sp/><sp/><sp/>153</highlight><highlight class="normal"></highlight></codeline>
+<codeline lineno="47"><highlight class="normal"></highlight><highlight class="preprocessor">#define<sp/>OI_OPCODE_SHOW_SCRIPT<sp/><sp/><sp/><sp/><sp/><sp/>154</highlight><highlight class="normal"></highlight></codeline>
+<codeline lineno="48"><highlight class="normal"></highlight><highlight class="preprocessor">#define<sp/>OI_OPCODE_WAIT_TIME<sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>155</highlight><highlight class="normal"></highlight></codeline>
+<codeline lineno="49"><highlight class="normal"></highlight><highlight class="preprocessor">#define<sp/>OI_OPCODE_WAIT_DISTANCE<sp/><sp/><sp/><sp/>156</highlight><highlight class="normal"></highlight></codeline>
+<codeline lineno="50"><highlight class="normal"></highlight><highlight class="preprocessor">#define<sp/>OI_OPCODE_WAIT_ANGLE<sp/><sp/><sp/><sp/><sp/><sp/><sp/>157</highlight><highlight class="normal"></highlight></codeline>
+<codeline lineno="51"><highlight class="normal"></highlight><highlight class="preprocessor">#define<sp/>OI_OPCODE_WAIT_EVENT<sp/><sp/><sp/><sp/><sp/><sp/><sp/>158</highlight><highlight class="normal"></highlight></codeline>
+<codeline lineno="52"><highlight class="normal"></highlight></codeline>
+<codeline lineno="53"><highlight class="normal"></highlight><highlight class="preprocessor">#define<sp/>OI_OPCODE_RESET<sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>7<sp/><sp/><sp/>//RESET<sp/>ROOMBA<sp/>-<sp/>GO<sp/>TO</highlight><highlight class="normal"></highlight></codeline>
+<codeline lineno="54"><highlight class="normal"></highlight><highlight class="preprocessor">#define<sp/>OI_OPCODE_STOP<sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>173</highlight><highlight class="normal"></highlight></codeline>
+<codeline lineno="55"><highlight class="normal"></highlight><highlight class="preprocessor">#define<sp/>OI_OPCODE_SCHEDULE<sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>167</highlight><highlight class="normal"></highlight></codeline>
+<codeline lineno="56"><highlight class="normal"></highlight><highlight class="preprocessor">#define<sp/>OI_OPCODE_SCHED_LED<sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>162<sp/>//MONDAY<sp/>THROUGH<sp/>SUNDAY<sp/>LEDS</highlight><highlight class="normal"></highlight></codeline>
+<codeline lineno="57"><highlight class="normal"></highlight><highlight class="preprocessor">#define<sp/>OI_OPCODE_7SEG<sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>163</highlight><highlight class="normal"></highlight></codeline>
+<codeline lineno="58"><highlight class="normal"></highlight></codeline>
+<codeline lineno="59"><highlight class="normal"></highlight><highlight class="comment">//<sp/>Contains<sp/>Packets<sp/>7-26</highlight><highlight class="normal"></highlight></codeline>
+<codeline lineno="60"><highlight class="normal"></highlight><highlight class="preprocessor">#define<sp/>OI_SENSOR_PACKET_GROUP0<sp/>0</highlight><highlight class="normal"></highlight></codeline>
+<codeline lineno="61"><highlight class="normal"></highlight><highlight class="comment">//<sp/>Contains<sp/>Packets<sp/>7-16</highlight><highlight class="normal"></highlight></codeline>
+<codeline lineno="62"><highlight class="normal"></highlight><highlight class="preprocessor">#define<sp/>OI_SENSOR_PACKET_GROUP1<sp/>1</highlight><highlight class="normal"></highlight></codeline>
+<codeline lineno="63"><highlight class="normal"></highlight><highlight class="comment">//<sp/>Contains<sp/>Packets<sp/>17-20</highlight><highlight class="normal"></highlight></codeline>
+<codeline lineno="64"><highlight class="normal"></highlight><highlight class="preprocessor">#define<sp/>OI_SENSOR_PACKET_GROUP2<sp/>2</highlight><highlight class="normal"></highlight></codeline>
+<codeline lineno="65"><highlight class="normal"></highlight><highlight class="comment">//<sp/>Contains<sp/>Packets<sp/>21-26</highlight><highlight class="normal"></highlight></codeline>
+<codeline lineno="66"><highlight class="normal"></highlight><highlight class="preprocessor">#define<sp/>OI_SENSOR_PACKET_GROUP3<sp/>3</highlight><highlight class="normal"></highlight></codeline>
+<codeline lineno="67"><highlight class="normal"></highlight><highlight class="comment">//<sp/>Contains<sp/>Packets<sp/>27-34</highlight><highlight class="normal"></highlight></codeline>
+<codeline lineno="68"><highlight class="normal"></highlight><highlight class="preprocessor">#define<sp/>OI_SENSOR_PACKET_GROUP4<sp/>4</highlight><highlight class="normal"></highlight></codeline>
+<codeline lineno="69"><highlight class="normal"></highlight><highlight class="comment">//<sp/>Contains<sp/>Packets<sp/>35-42</highlight><highlight class="normal"></highlight></codeline>
+<codeline lineno="70"><highlight class="normal"></highlight><highlight class="preprocessor">#define<sp/>OI_SENSOR_PACKET_GROUP5<sp/>5</highlight><highlight class="normal"></highlight></codeline>
+<codeline lineno="71"><highlight class="normal"></highlight><highlight class="comment">//<sp/>Contains<sp/>Packets<sp/>7-42</highlight><highlight class="normal"></highlight></codeline>
+<codeline lineno="72"><highlight class="normal"></highlight><highlight class="preprocessor">#define<sp/>OI_SENSOR_PACKET_GROUP6<sp/>6</highlight><highlight class="normal"></highlight></codeline>
+<codeline lineno="73"><highlight class="normal"></highlight><highlight class="comment">//<sp/>Contains<sp/>Packets<sp/>7-58<sp/>For<sp/>Use<sp/>With<sp/>Create<sp/>2<sp/>Only</highlight><highlight class="normal"></highlight></codeline>
+<codeline lineno="74"><highlight class="normal"></highlight><highlight class="preprocessor">#define<sp/>OI_SENSOR_PACKET_GROUP100<sp/>100</highlight><highlight class="normal"></highlight></codeline>
+<codeline lineno="75"><highlight class="normal"></highlight><highlight class="comment">//<sp/>Contains<sp/>Packets<sp/>43-58<sp/>For<sp/>Use<sp/>With<sp/>Create<sp/>2<sp/>Only</highlight><highlight class="normal"></highlight></codeline>
+<codeline lineno="76"><highlight class="normal"></highlight><highlight class="preprocessor">#define<sp/>OI_SENSOR_PACKET_GROUP101<sp/>101</highlight><highlight class="normal"></highlight></codeline>
+<codeline lineno="77"><highlight class="normal"></highlight><highlight class="comment">//<sp/>Contains<sp/>Packets<sp/>46-51<sp/>For<sp/>Use<sp/>With<sp/>Create<sp/>2<sp/>Only</highlight><highlight class="normal"></highlight></codeline>
+<codeline lineno="78"><highlight class="normal"></highlight><highlight class="preprocessor">#define<sp/>OI_SENSOR_PACKET_GROUP106<sp/>106</highlight><highlight class="normal"></highlight></codeline>
+<codeline lineno="79"><highlight class="normal"></highlight><highlight class="comment">//<sp/>Contains<sp/>Packets<sp/>54-58<sp/>For<sp/>Use<sp/>With<sp/>Create<sp/>2<sp/>Only</highlight><highlight class="normal"></highlight></codeline>
+<codeline lineno="80"><highlight class="normal"></highlight><highlight class="preprocessor">#define<sp/>OI_SENSOR_PACKET_GROUP107<sp/>107</highlight><highlight class="normal"></highlight></codeline>
+<codeline lineno="81"><highlight class="normal"></highlight></codeline>
+<codeline lineno="82"><highlight class="normal"></highlight><highlight class="preprocessor">#define<sp/>SENSOR_PACKET_SIZE<sp/><sp/>80</highlight><highlight class="normal"></highlight></codeline>
+<codeline lineno="83"><highlight class="normal"></highlight></codeline>
+<codeline lineno="86"><highlight class="keywordtype">void</highlight><highlight class="normal"><sp/><ref refid="open__interface_8c_1ae2a441c2fb23be5db165a8cd7eca0fe7" kindref="member">oi_init_noupdate</ref>(</highlight><highlight class="keywordtype">void</highlight><highlight class="normal">);</highlight></codeline>
+<codeline lineno="87"><highlight class="normal"></highlight></codeline>
+<codeline lineno="90"><highlight class="keywordtype">void</highlight><highlight class="normal"><sp/><ref refid="open__interface_8c_1ad9923d0a228d340572e71997ddf32df9" kindref="member">oi_uartInit</ref>(</highlight><highlight class="keywordtype">void</highlight><highlight class="normal">);</highlight></codeline>
 <codeline lineno="91"><highlight class="normal"></highlight></codeline>
-<codeline lineno="94"><highlight class="keywordtype">void</highlight><highlight class="normal"><sp/>oi_uartSendChar(</highlight><highlight class="keywordtype">char</highlight><highlight class="normal"><sp/><ref refid="movementcommands_8c_1a91a70b77df95bd8b0830b49a094c2acb" kindref="member">data</ref>);</highlight></codeline>
-<codeline lineno="95"><highlight class="normal"></highlight></codeline>
-<codeline lineno="98"><highlight class="keywordtype">void</highlight><highlight class="normal"><sp/><ref refid="uart_8c_1af96d1ce52b8a52eabc606489d31351e9" kindref="member">uart_sendStr</ref>(</highlight><highlight class="keyword">const</highlight><highlight class="normal"><sp/></highlight><highlight class="keywordtype">char</highlight><highlight class="normal"><sp/>*theData);</highlight></codeline>
-<codeline lineno="99"><highlight class="normal"></highlight></codeline>
-<codeline lineno="102"><highlight class="keywordtype">char</highlight><highlight class="normal"><sp/>oi_uartReceive(</highlight><highlight class="keywordtype">void</highlight><highlight class="normal">);</highlight></codeline>
-<codeline lineno="103"><highlight class="normal"></highlight></codeline>
-<codeline lineno="105"><highlight class="keywordtype">void</highlight><highlight class="normal"><sp/>oi_parsePacket(<ref refid="structoi__t" kindref="compound">oi_t</ref>*<sp/></highlight><highlight class="keyword">self</highlight><highlight class="normal">,<sp/>uint8_t<sp/>packet[]);</highlight></codeline>
+<codeline lineno="93"><highlight class="keywordtype">void</highlight><highlight class="normal"><sp/><ref refid="open__interface_8c_1af7fe40c5fd5331db4a79ee4d77b12398" kindref="member">oi_uartFastMode</ref>(</highlight><highlight class="keywordtype">void</highlight><highlight class="normal">);</highlight></codeline>
+<codeline lineno="94"><highlight class="normal"></highlight></codeline>
+<codeline lineno="97"><highlight class="keywordtype">void</highlight><highlight class="normal"><sp/><ref refid="open__interface_8c_1aced7535453b0c0e29af698308d0498d4" kindref="member">oi_uartSendChar</ref>(</highlight><highlight class="keywordtype">char</highlight><highlight class="normal"><sp/><ref refid="main_8c_1a91a70b77df95bd8b0830b49a094c2acb" kindref="member">data</ref>);</highlight></codeline>
+<codeline lineno="98"><highlight class="normal"></highlight></codeline>
+<codeline lineno="101"><highlight class="keywordtype">void</highlight><highlight class="normal"><sp/><ref refid="open__interface_8c_1a33bd73bbfbc570a633f3622069087066" kindref="member">uart_sendStr</ref>(</highlight><highlight class="keyword">const</highlight><highlight class="normal"><sp/></highlight><highlight class="keywordtype">char</highlight><highlight class="normal"><sp/>*theData);</highlight></codeline>
+<codeline lineno="102"><highlight class="normal"></highlight></codeline>
+<codeline lineno="105"><highlight class="keywordtype">char</highlight><highlight class="normal"><sp/><ref refid="open__interface_8c_1a5e7e1773c5782c2be5f333f733aab29f" kindref="member">oi_uartReceive</ref>(</highlight><highlight class="keywordtype">void</highlight><highlight class="normal">);</highlight></codeline>
 <codeline lineno="106"><highlight class="normal"></highlight></codeline>
-<codeline lineno="109"><highlight class="keywordtype">void</highlight><highlight class="normal"><sp/>oi_uartSendBuff(</highlight><highlight class="keyword">const</highlight><highlight class="normal"><sp/>uint8_t<sp/>theData[],<sp/>uint8_t<sp/>theSize);</highlight></codeline>
-<codeline lineno="110"><highlight class="normal"></highlight></codeline>
-<codeline lineno="113"><highlight class="normal">int16_t<sp/>oi_parseInt(uint8_t*<sp/>theInt);</highlight></codeline>
-<codeline lineno="114"><highlight class="normal"></highlight></codeline>
-<codeline lineno="116"><highlight class="normal"><ref refid="structoi__t" kindref="compound">oi_t</ref>*<sp/>oi_alloc()</highlight></codeline>
-<codeline lineno="117"><highlight class="normal">{</highlight></codeline>
-<codeline lineno="118"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">return</highlight><highlight class="normal"><sp/>calloc(1,<sp/></highlight><highlight class="keyword">sizeof</highlight><highlight class="normal">(<ref refid="structoi__t" kindref="compound">oi_t</ref>));</highlight></codeline>
-<codeline lineno="119"><highlight class="normal">}</highlight></codeline>
-<codeline lineno="120"><highlight class="normal"></highlight></codeline>
-<codeline lineno="122"><highlight class="keywordtype">void</highlight><highlight class="normal"><sp/>oi_free(<ref refid="structoi__t" kindref="compound">oi_t</ref><sp/>*</highlight><highlight class="keyword">self</highlight><highlight class="normal">)</highlight></codeline>
-<codeline lineno="123"><highlight class="normal">{</highlight></codeline>
-<codeline lineno="124"><highlight class="normal"><sp/><sp/><sp/><sp/>free(</highlight><highlight class="keyword">self</highlight><highlight class="normal">);</highlight></codeline>
-<codeline lineno="125"><highlight class="normal"></highlight></codeline>
-<codeline lineno="126"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="comment">//Send<sp/>the<sp/>stop<sp/>command<sp/>to<sp/>the<sp/>iRobot</highlight><highlight class="normal"></highlight></codeline>
-<codeline lineno="127"><highlight class="normal"><sp/><sp/><sp/><sp/>oi_close();</highlight></codeline>
-<codeline lineno="128"><highlight class="normal">}</highlight></codeline>
-<codeline lineno="129"><highlight class="normal"></highlight></codeline>
-<codeline lineno="130"><highlight class="normal"></highlight><highlight class="keywordtype">void</highlight><highlight class="normal"><sp/>oi_init_noupdate()</highlight></codeline>
-<codeline lineno="131"><highlight class="normal">{</highlight></codeline>
-<codeline lineno="132"><highlight class="normal"><sp/><sp/><sp/><sp/>oi_uartInit();</highlight></codeline>
-<codeline lineno="133"><highlight class="normal"><sp/><sp/><sp/><sp/>oi_uartSendChar(OI_OPCODE_START);</highlight></codeline>
-<codeline lineno="134"><highlight class="normal"></highlight></codeline>
-<codeline lineno="135"><highlight class="normal"><sp/><sp/><sp/><sp/>oi_uartSendChar(OI_OPCODE_FULL);<sp/><sp/><sp/><sp/></highlight><highlight class="comment">//Use<sp/>full<sp/>mode,<sp/>unrestricted<sp/>control</highlight><highlight class="normal"></highlight></codeline>
-<codeline lineno="136"><highlight class="normal"><sp/><sp/><sp/><sp/>oi_setLeds(1,<sp/>1,<sp/>7,<sp/>255);</highlight></codeline>
+<codeline lineno="108"><highlight class="keywordtype">void</highlight><highlight class="normal"><sp/><ref refid="open__interface_8c_1aa238e081cfecd7a9bf3d274f53504362" kindref="member">oi_parsePacket</ref>(<ref refid="structoi__t" kindref="compound">oi_t</ref>*<sp/></highlight><highlight class="keyword">self</highlight><highlight class="normal">,<sp/>uint8_t<sp/>packet[]);</highlight></codeline>
+<codeline lineno="109"><highlight class="normal"></highlight></codeline>
+<codeline lineno="112"><highlight class="keywordtype">void</highlight><highlight class="normal"><sp/><ref refid="open__interface_8c_1afcbad4c0a94458d1ba7ff11dac9ff42b" kindref="member">oi_uartSendBuff</ref>(</highlight><highlight class="keyword">const</highlight><highlight class="normal"><sp/>uint8_t<sp/>theData[],<sp/>uint8_t<sp/>theSize);</highlight></codeline>
+<codeline lineno="113"><highlight class="normal"></highlight></codeline>
+<codeline lineno="116"><highlight class="normal">int16_t<sp/><ref refid="open__interface_8c_1a8c54153bd272749c1fc36a3f98ffc8b1" kindref="member">oi_parseInt</ref>(uint8_t*<sp/>theInt);</highlight></codeline>
+<codeline lineno="117"><highlight class="normal"></highlight></codeline>
+<codeline lineno="119" refid="open__interface_8h_1aad249dffdf79454de76e09092a0445f5" refkind="member"><highlight class="normal"><ref refid="structoi__t" kindref="compound">oi_t</ref>*<sp/><ref refid="open__interface_8c_1aad249dffdf79454de76e09092a0445f5" kindref="member">oi_alloc</ref>()</highlight></codeline>
+<codeline lineno="120"><highlight class="normal">{</highlight></codeline>
+<codeline lineno="121"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">return</highlight><highlight class="normal"><sp/>calloc(1,<sp/></highlight><highlight class="keyword">sizeof</highlight><highlight class="normal">(<ref refid="structoi__t" kindref="compound">oi_t</ref>));</highlight></codeline>
+<codeline lineno="122"><highlight class="normal">}</highlight></codeline>
+<codeline lineno="123"><highlight class="normal"></highlight></codeline>
+<codeline lineno="125" refid="open__interface_8h_1abe8995b948a2f47938a574b59c2dda7e" refkind="member"><highlight class="keywordtype">void</highlight><highlight class="normal"><sp/><ref refid="open__interface_8c_1abe8995b948a2f47938a574b59c2dda7e" kindref="member">oi_free</ref>(<ref refid="structoi__t" kindref="compound">oi_t</ref><sp/>*</highlight><highlight class="keyword">self</highlight><highlight class="normal">)</highlight></codeline>
+<codeline lineno="126"><highlight class="normal">{</highlight></codeline>
+<codeline lineno="127"><highlight class="normal"><sp/><sp/><sp/><sp/>free(</highlight><highlight class="keyword">self</highlight><highlight class="normal">);</highlight></codeline>
+<codeline lineno="128"><highlight class="normal"></highlight></codeline>
+<codeline lineno="129"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="comment">//Send<sp/>the<sp/>stop<sp/>command<sp/>to<sp/>the<sp/>iRobot</highlight><highlight class="normal"></highlight></codeline>
+<codeline lineno="130"><highlight class="normal"><sp/><sp/><sp/><sp/>oi_close();</highlight></codeline>
+<codeline lineno="131"><highlight class="normal">}</highlight></codeline>
+<codeline lineno="132"><highlight class="normal"></highlight></codeline>
+<codeline lineno="133" refid="open__interface_8c_1ae2a441c2fb23be5db165a8cd7eca0fe7" refkind="member"><highlight class="normal"></highlight><highlight class="keywordtype">void</highlight><highlight class="normal"><sp/><ref refid="open__interface_8c_1ae2a441c2fb23be5db165a8cd7eca0fe7" kindref="member">oi_init_noupdate</ref>()</highlight></codeline>
+<codeline lineno="134"><highlight class="normal">{</highlight></codeline>
+<codeline lineno="135"><highlight class="normal"><sp/><sp/><sp/><sp/><ref refid="open__interface_8c_1ad9923d0a228d340572e71997ddf32df9" kindref="member">oi_uartInit</ref>();</highlight></codeline>
+<codeline lineno="136"><highlight class="normal"><sp/><sp/><sp/><sp/><ref refid="open__interface_8c_1aced7535453b0c0e29af698308d0498d4" kindref="member">oi_uartSendChar</ref>(OI_OPCODE_START);</highlight></codeline>
 <codeline lineno="137"><highlight class="normal"></highlight></codeline>
-<codeline lineno="138"><highlight class="normal"><sp/><sp/><sp/><sp/>oi_shutoff_init();<sp/></highlight><highlight class="comment">//allows<sp/>for<sp/>pushbutton<sp/>SW2<sp/>on<sp/>PF0<sp/>to<sp/>kill<sp/>oi</highlight><highlight class="normal"></highlight></codeline>
-<codeline lineno="139"><highlight class="normal"></highlight></codeline>
-<codeline lineno="140"><highlight class="normal">}</highlight></codeline>
-<codeline lineno="141"><highlight class="normal"></highlight></codeline>
-<codeline lineno="150"><highlight class="keywordtype">void</highlight><highlight class="normal"><sp/>oi_init(<ref refid="structoi__t" kindref="compound">oi_t</ref><sp/>*</highlight><highlight class="keyword">self</highlight><highlight class="normal">)</highlight></codeline>
-<codeline lineno="151"><highlight class="normal">{</highlight></codeline>
-<codeline lineno="152"><highlight class="normal"><sp/><sp/><sp/><sp/>oi_init_noupdate();</highlight></codeline>
-<codeline lineno="153"><highlight class="normal"></highlight></codeline>
-<codeline lineno="154"><highlight class="normal"><sp/><sp/><sp/><sp/>oi_update(</highlight><highlight class="keyword">self</highlight><highlight class="normal">);</highlight></codeline>
-<codeline lineno="155"><highlight class="normal"><sp/><sp/><sp/><sp/>oi_update(</highlight><highlight class="keyword">self</highlight><highlight class="normal">);<sp/></highlight><highlight class="comment">//Call<sp/>twice<sp/>to<sp/>clear<sp/>distance/angle</highlight><highlight class="normal"></highlight></codeline>
+<codeline lineno="138"><highlight class="normal"><sp/><sp/><sp/><sp/><ref refid="open__interface_8c_1aced7535453b0c0e29af698308d0498d4" kindref="member">oi_uartSendChar</ref>(OI_OPCODE_FULL);<sp/><sp/><sp/><sp/></highlight><highlight class="comment">//Use<sp/>full<sp/>mode,<sp/>unrestricted<sp/>control</highlight><highlight class="normal"></highlight></codeline>
+<codeline lineno="139"><highlight class="normal"><sp/><sp/><sp/><sp/><ref refid="open__interface_8c_1a9ce8d6194cf8cb1d39104b641cb5254d" kindref="member">oi_setLeds</ref>(1,<sp/>1,<sp/>7,<sp/>255);</highlight></codeline>
+<codeline lineno="140"><highlight class="normal"></highlight></codeline>
+<codeline lineno="141"><highlight class="normal"><sp/><sp/><sp/><sp/><ref refid="open__interface_8c_1a1bca24fa8dd6fb148a6ec99ffbe2f29d" kindref="member">oi_shutoff_init</ref>();<sp/></highlight><highlight class="comment">//allows<sp/>for<sp/>pushbutton<sp/>SW2<sp/>on<sp/>PF0<sp/>to<sp/>kill<sp/>oi</highlight><highlight class="normal"></highlight></codeline>
+<codeline lineno="142"><highlight class="normal"></highlight></codeline>
+<codeline lineno="143"><highlight class="normal">}</highlight></codeline>
+<codeline lineno="144"><highlight class="normal"></highlight></codeline>
+<codeline lineno="153" refid="open__interface_8h_1a9108ba8c791d0e97444c03b2f40b278a" refkind="member"><highlight class="keywordtype">void</highlight><highlight class="normal"><sp/><ref refid="open__interface_8c_1a9108ba8c791d0e97444c03b2f40b278a" kindref="member">oi_init</ref>(<ref refid="structoi__t" kindref="compound">oi_t</ref><sp/>*</highlight><highlight class="keyword">self</highlight><highlight class="normal">)</highlight></codeline>
+<codeline lineno="154"><highlight class="normal">{</highlight></codeline>
+<codeline lineno="155"><highlight class="normal"><sp/><sp/><sp/><sp/><ref refid="open__interface_8c_1ae2a441c2fb23be5db165a8cd7eca0fe7" kindref="member">oi_init_noupdate</ref>();</highlight></codeline>
 <codeline lineno="156"><highlight class="normal"></highlight></codeline>
-<codeline lineno="157"><highlight class="normal">}</highlight></codeline>
-<codeline lineno="158"><highlight class="normal"></highlight></codeline>
-<codeline lineno="159"><highlight class="normal"></highlight><highlight class="keywordtype">void</highlight><highlight class="normal"><sp/>oi_close()</highlight></codeline>
-<codeline lineno="160"><highlight class="normal">{</highlight></codeline>
-<codeline lineno="161"><highlight class="normal"><sp/><sp/><sp/><sp/>oi_setWheels(0,<sp/>0);</highlight></codeline>
-<codeline lineno="162"><highlight class="normal"><sp/><sp/><sp/><sp/>oi_uartSendChar(OI_OPCODE_STOP);</highlight></codeline>
-<codeline lineno="163"><highlight class="normal">}</highlight></codeline>
-<codeline lineno="164"><highlight class="normal"></highlight></codeline>
-<codeline lineno="166"><highlight class="keywordtype">void</highlight><highlight class="normal"><sp/>oi_update(<ref refid="structoi__t" kindref="compound">oi_t</ref><sp/>*</highlight><highlight class="keyword">self</highlight><highlight class="normal">)</highlight></codeline>
-<codeline lineno="167"><highlight class="normal">{</highlight></codeline>
-<codeline lineno="168"><highlight class="normal"><sp/><sp/><sp/><sp/>uint8_t<sp/>sensorBuffer[SENSOR_PACKET_SIZE];</highlight></codeline>
-<codeline lineno="169"><highlight class="normal"></highlight></codeline>
-<codeline lineno="170"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="comment">//Query<sp/>list<sp/>of<sp/>sensors</highlight><highlight class="normal"></highlight></codeline>
-<codeline lineno="171"><highlight class="normal"><sp/><sp/><sp/><sp/>oi_uartSendChar(OI_OPCODE_SENSORS);</highlight></codeline>
-<codeline lineno="172"><highlight class="normal"><sp/><sp/><sp/><sp/>oi_uartSendChar(OI_SENSOR_PACKET_GROUP100);</highlight></codeline>
-<codeline lineno="173"><highlight class="normal"></highlight></codeline>
-<codeline lineno="174"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="comment">//<sp/>Read<sp/>all<sp/>the<sp/>sensor<sp/>data</highlight><highlight class="normal"></highlight></codeline>
-<codeline lineno="175"><highlight class="normal"><sp/><sp/><sp/><sp/>uint8_t<sp/>i;</highlight></codeline>
-<codeline lineno="176"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">for</highlight><highlight class="normal"><sp/>(i<sp/>=<sp/>0;<sp/>i<sp/>&lt;<sp/>SENSOR_PACKET_SIZE;<sp/>i++)</highlight></codeline>
-<codeline lineno="177"><highlight class="normal"><sp/><sp/><sp/><sp/>{</highlight></codeline>
-<codeline lineno="178"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="comment">//<sp/>read<sp/>each<sp/>sensor<sp/>byte</highlight><highlight class="normal"></highlight></codeline>
-<codeline lineno="179"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>sensorBuffer[i]<sp/>=<sp/>oi_uartReceive();</highlight></codeline>
-<codeline lineno="180"><highlight class="normal"><sp/><sp/><sp/><sp/>}</highlight></codeline>
-<codeline lineno="181"><highlight class="normal"></highlight></codeline>
-<codeline lineno="182"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="comment">//Parse<sp/>the<sp/>sensor<sp/>data<sp/>into<sp/>the<sp/>struct</highlight><highlight class="normal"></highlight></codeline>
-<codeline lineno="183"><highlight class="normal"><sp/><sp/><sp/><sp/>oi_parsePacket(</highlight><highlight class="keyword">self</highlight><highlight class="normal">,<sp/>sensorBuffer);</highlight></codeline>
+<codeline lineno="157"><highlight class="normal"><sp/><sp/><sp/><sp/><ref refid="open__interface_8c_1a9129559bba5ff9dc7e4df64330864674" kindref="member">oi_update</ref>(</highlight><highlight class="keyword">self</highlight><highlight class="normal">);</highlight></codeline>
+<codeline lineno="158"><highlight class="normal"><sp/><sp/><sp/><sp/><ref refid="open__interface_8c_1a9129559bba5ff9dc7e4df64330864674" kindref="member">oi_update</ref>(</highlight><highlight class="keyword">self</highlight><highlight class="normal">);<sp/></highlight><highlight class="comment">//Call<sp/>twice<sp/>to<sp/>clear<sp/>distance/angle</highlight><highlight class="normal"></highlight></codeline>
+<codeline lineno="159"><highlight class="normal"></highlight></codeline>
+<codeline lineno="160"><highlight class="normal">}</highlight></codeline>
+<codeline lineno="161"><highlight class="normal"></highlight></codeline>
+<codeline lineno="162"><highlight class="normal"></highlight><highlight class="keywordtype">void</highlight><highlight class="normal"><sp/>oi_close()</highlight></codeline>
+<codeline lineno="163"><highlight class="normal">{</highlight></codeline>
+<codeline lineno="164"><highlight class="normal"><sp/><sp/><sp/><sp/><ref refid="open__interface_8c_1a49949f029cc5f84ad903aa7022f4e5e0" kindref="member">oi_setWheels</ref>(0,<sp/>0);</highlight></codeline>
+<codeline lineno="165"><highlight class="normal"><sp/><sp/><sp/><sp/><ref refid="open__interface_8c_1aced7535453b0c0e29af698308d0498d4" kindref="member">oi_uartSendChar</ref>(OI_OPCODE_STOP);</highlight></codeline>
+<codeline lineno="166"><highlight class="normal">}</highlight></codeline>
+<codeline lineno="167"><highlight class="normal"></highlight></codeline>
+<codeline lineno="169" refid="open__interface_8h_1a9129559bba5ff9dc7e4df64330864674" refkind="member"><highlight class="keywordtype">void</highlight><highlight class="normal"><sp/><ref refid="open__interface_8c_1a9129559bba5ff9dc7e4df64330864674" kindref="member">oi_update</ref>(<ref refid="structoi__t" kindref="compound">oi_t</ref><sp/>*</highlight><highlight class="keyword">self</highlight><highlight class="normal">)</highlight></codeline>
+<codeline lineno="170"><highlight class="normal">{</highlight></codeline>
+<codeline lineno="171"><highlight class="normal"><sp/><sp/><sp/><sp/>uint8_t<sp/>sensorBuffer[SENSOR_PACKET_SIZE];</highlight></codeline>
+<codeline lineno="172"><highlight class="normal"></highlight></codeline>
+<codeline lineno="173"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="comment">//Query<sp/>list<sp/>of<sp/>sensors</highlight><highlight class="normal"></highlight></codeline>
+<codeline lineno="174"><highlight class="normal"><sp/><sp/><sp/><sp/><ref refid="open__interface_8c_1aced7535453b0c0e29af698308d0498d4" kindref="member">oi_uartSendChar</ref>(OI_OPCODE_SENSORS);</highlight></codeline>
+<codeline lineno="175"><highlight class="normal"><sp/><sp/><sp/><sp/><ref refid="open__interface_8c_1aced7535453b0c0e29af698308d0498d4" kindref="member">oi_uartSendChar</ref>(OI_SENSOR_PACKET_GROUP100);</highlight></codeline>
+<codeline lineno="176"><highlight class="normal"></highlight></codeline>
+<codeline lineno="177"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="comment">//<sp/>Read<sp/>all<sp/>the<sp/>sensor<sp/>data</highlight><highlight class="normal"></highlight></codeline>
+<codeline lineno="178"><highlight class="normal"><sp/><sp/><sp/><sp/>uint8_t<sp/>i;</highlight></codeline>
+<codeline lineno="179"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">for</highlight><highlight class="normal"><sp/>(i<sp/>=<sp/>0;<sp/>i<sp/>&lt;<sp/>SENSOR_PACKET_SIZE;<sp/>i++)</highlight></codeline>
+<codeline lineno="180"><highlight class="normal"><sp/><sp/><sp/><sp/>{</highlight></codeline>
+<codeline lineno="181"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="comment">//<sp/>read<sp/>each<sp/>sensor<sp/>byte</highlight><highlight class="normal"></highlight></codeline>
+<codeline lineno="182"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>sensorBuffer[i]<sp/>=<sp/><ref refid="open__interface_8c_1a5e7e1773c5782c2be5f333f733aab29f" kindref="member">oi_uartReceive</ref>();</highlight></codeline>
+<codeline lineno="183"><highlight class="normal"><sp/><sp/><sp/><sp/>}</highlight></codeline>
 <codeline lineno="184"><highlight class="normal"></highlight></codeline>
-<codeline lineno="185"><highlight class="normal"><sp/><sp/><sp/><sp/>timer_waitMillis(25);<sp/></highlight><highlight class="comment">//<sp/>reduces<sp/>USART<sp/>errors<sp/>that<sp/>occur<sp/>when<sp/>continuously<sp/>transmitting/receiving<sp/>min<sp/>wait<sp/>time=15ms</highlight><highlight class="normal"></highlight></codeline>
-<codeline lineno="186"><highlight class="normal">}</highlight></codeline>
+<codeline lineno="185"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="comment">//Parse<sp/>the<sp/>sensor<sp/>data<sp/>into<sp/>the<sp/>struct</highlight><highlight class="normal"></highlight></codeline>
+<codeline lineno="186"><highlight class="normal"><sp/><sp/><sp/><sp/><ref refid="open__interface_8c_1aa238e081cfecd7a9bf3d274f53504362" kindref="member">oi_parsePacket</ref>(</highlight><highlight class="keyword">self</highlight><highlight class="normal">,<sp/>sensorBuffer);</highlight></codeline>
 <codeline lineno="187"><highlight class="normal"></highlight></codeline>
-<codeline lineno="188"><highlight class="normal"></highlight><highlight class="keywordtype">void</highlight><highlight class="normal"><sp/>oi_parsePacket(<ref refid="structoi__t" kindref="compound">oi_t</ref>*<sp/></highlight><highlight class="keyword">self</highlight><highlight class="normal">,<sp/>uint8_t<sp/>packet[])</highlight></codeline>
-<codeline lineno="189"><highlight class="normal">{</highlight></codeline>
-<codeline lineno="190"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="keyword">self</highlight><highlight class="normal">-&gt;wheelDropLeft<sp/>=<sp/>!!(packet[0]<sp/>&amp;<sp/>0x08);</highlight></codeline>
-<codeline lineno="191"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="keyword">self</highlight><highlight class="normal">-&gt;wheelDropRight<sp/>=<sp/>!!(packet[0]<sp/>&amp;<sp/>0x04);</highlight></codeline>
-<codeline lineno="192"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="keyword">self</highlight><highlight class="normal">-&gt;bumpLeft<sp/>=<sp/>!!(packet[0]<sp/>&amp;<sp/>0x02);</highlight></codeline>
-<codeline lineno="193"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="keyword">self</highlight><highlight class="normal">-&gt;bumpRight<sp/>=<sp/>packet[0]<sp/>&amp;<sp/>0x01;</highlight></codeline>
-<codeline lineno="194"><highlight class="normal"></highlight></codeline>
-<codeline lineno="195"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="keyword">self</highlight><highlight class="normal">-&gt;wallSensor<sp/>=<sp/>packet[1];</highlight></codeline>
-<codeline lineno="196"><highlight class="normal"></highlight></codeline>
-<codeline lineno="197"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="keyword">self</highlight><highlight class="normal">-&gt;cliffLeft<sp/>=<sp/>packet[2];</highlight></codeline>
-<codeline lineno="198"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="keyword">self</highlight><highlight class="normal">-&gt;cliffFrontLeft<sp/>=<sp/>packet[3];</highlight></codeline>
-<codeline lineno="199"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="keyword">self</highlight><highlight class="normal">-&gt;cliffFrontRight<sp/>=<sp/>packet[4];</highlight></codeline>
-<codeline lineno="200"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="keyword">self</highlight><highlight class="normal">-&gt;cliffRight<sp/>=<sp/>packet[5];</highlight></codeline>
-<codeline lineno="201"><highlight class="normal"></highlight></codeline>
-<codeline lineno="202"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="keyword">self</highlight><highlight class="normal">-&gt;virtualWall<sp/>=<sp/>packet[6];</highlight></codeline>
-<codeline lineno="203"><highlight class="normal"></highlight></codeline>
-<codeline lineno="204"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="keyword">self</highlight><highlight class="normal">-&gt;overcurrentLeftWheel<sp/>=<sp/>!!(packet[7]<sp/>&amp;<sp/>0x10);</highlight></codeline>
-<codeline lineno="205"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="keyword">self</highlight><highlight class="normal">-&gt;overcurrentRightWheel<sp/>=<sp/>!!(packet[7]<sp/>&amp;<sp/>0x08);</highlight></codeline>
-<codeline lineno="206"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="keyword">self</highlight><highlight class="normal">-&gt;overcurrentMainBrush<sp/>=<sp/>!!(packet[7]<sp/>&amp;<sp/>0x04);</highlight></codeline>
-<codeline lineno="207"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="keyword">self</highlight><highlight class="normal">-&gt;overcurrentSideBrush<sp/>=<sp/>packet[7]<sp/>&amp;<sp/>0x01;</highlight></codeline>
-<codeline lineno="208"><highlight class="normal"></highlight></codeline>
-<codeline lineno="209"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="keyword">self</highlight><highlight class="normal">-&gt;dirtDetect<sp/>=<sp/>packet[8];</highlight></codeline>
-<codeline lineno="210"><highlight class="normal"></highlight></codeline>
-<codeline lineno="211"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="comment">//Byte<sp/>9<sp/>unused</highlight><highlight class="normal"></highlight></codeline>
-<codeline lineno="212"><highlight class="normal"></highlight></codeline>
-<codeline lineno="213"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="keyword">self</highlight><highlight class="normal">-&gt;infraredCharOmni<sp/>=<sp/>packet[10];</highlight></codeline>
-<codeline lineno="214"><highlight class="normal"></highlight></codeline>
-<codeline lineno="215"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="keyword">self</highlight><highlight class="normal">-&gt;buttonClock<sp/>=<sp/>!!(packet[11]<sp/>&amp;<sp/>0x80);</highlight></codeline>
-<codeline lineno="216"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="keyword">self</highlight><highlight class="normal">-&gt;buttonSchedule<sp/>=<sp/>!!(packet[11]<sp/>&amp;<sp/>0x40);</highlight></codeline>
-<codeline lineno="217"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="keyword">self</highlight><highlight class="normal">-&gt;buttonDay<sp/>=<sp/>!!(packet[11]<sp/>&amp;<sp/>0x20);</highlight></codeline>
-<codeline lineno="218"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="keyword">self</highlight><highlight class="normal">-&gt;buttonHour<sp/>=<sp/>!!(packet[11]<sp/>&amp;<sp/>0x10);</highlight></codeline>
-<codeline lineno="219"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="keyword">self</highlight><highlight class="normal">-&gt;buttonMinute<sp/>=<sp/>!!(packet[11]<sp/>&amp;<sp/>0x08);</highlight></codeline>
-<codeline lineno="220"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="keyword">self</highlight><highlight class="normal">-&gt;buttonDock<sp/>=<sp/>!!(packet[11]<sp/>&amp;<sp/>0x04);</highlight></codeline>
-<codeline lineno="221"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="keyword">self</highlight><highlight class="normal">-&gt;buttonSpot<sp/>=<sp/>!!(packet[11]<sp/>&amp;<sp/>0x02);</highlight></codeline>
-<codeline lineno="222"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="keyword">self</highlight><highlight class="normal">-&gt;buttonClean<sp/>=<sp/>packet[11]<sp/>&amp;<sp/>0x01;</highlight></codeline>
-<codeline lineno="223"><highlight class="normal"></highlight></codeline>
-<codeline lineno="224"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="keyword">self</highlight><highlight class="normal">-&gt;distance<sp/>=<sp/>oi_parseInt(packet<sp/>+<sp/>12);</highlight></codeline>
-<codeline lineno="225"><highlight class="normal"></highlight></codeline>
-<codeline lineno="226"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="keyword">self</highlight><highlight class="normal">-&gt;chargingState<sp/>=<sp/>packet[16];</highlight></codeline>
-<codeline lineno="227"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="keyword">self</highlight><highlight class="normal">-&gt;batteryVoltage<sp/>=<sp/>oi_parseInt(packet<sp/>+<sp/>17);</highlight></codeline>
-<codeline lineno="228"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="keyword">self</highlight><highlight class="normal">-&gt;batteryCurrent<sp/>=<sp/>oi_parseInt(packet<sp/>+<sp/>19);</highlight></codeline>
-<codeline lineno="229"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="keyword">self</highlight><highlight class="normal">-&gt;batteryTemperature<sp/>=<sp/>packet[21];</highlight></codeline>
-<codeline lineno="230"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="keyword">self</highlight><highlight class="normal">-&gt;batteryCharge<sp/>=<sp/>oi_parseInt(packet<sp/>+<sp/>22);</highlight></codeline>
-<codeline lineno="231"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="keyword">self</highlight><highlight class="normal">-&gt;batteryCapacity<sp/>=<sp/>oi_parseInt(packet<sp/>+<sp/>24);</highlight></codeline>
-<codeline lineno="232"><highlight class="normal"></highlight></codeline>
-<codeline lineno="233"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="keyword">self</highlight><highlight class="normal">-&gt;wallSignal<sp/>=<sp/>oi_parseInt(packet<sp/>+<sp/>26);</highlight></codeline>
-<codeline lineno="234"><highlight class="normal"></highlight></codeline>
-<codeline lineno="235"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="keyword">self</highlight><highlight class="normal">-&gt;cliffLeftSignal<sp/>=<sp/>oi_parseInt(packet<sp/>+<sp/>28);</highlight></codeline>
-<codeline lineno="236"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="keyword">self</highlight><highlight class="normal">-&gt;cliffFrontLeftSignal<sp/>=<sp/>oi_parseInt(packet<sp/>+<sp/>30);</highlight></codeline>
-<codeline lineno="237"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="keyword">self</highlight><highlight class="normal">-&gt;cliffFrontRightSignal<sp/>=<sp/>oi_parseInt(packet<sp/>+<sp/>32);</highlight></codeline>
-<codeline lineno="238"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="keyword">self</highlight><highlight class="normal">-&gt;cliffRightSignal<sp/>=<sp/>oi_parseInt(packet<sp/>+<sp/>34);</highlight></codeline>
-<codeline lineno="239"><highlight class="normal"></highlight></codeline>
-<codeline lineno="240"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="comment">//Bytes<sp/>36-38<sp/>unused</highlight><highlight class="normal"></highlight></codeline>
-<codeline lineno="241"><highlight class="normal"></highlight></codeline>
-<codeline lineno="242"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="keyword">self</highlight><highlight class="normal">-&gt;chargingSourcesAvailable<sp/>=<sp/>packet[39];</highlight></codeline>
-<codeline lineno="243"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="keyword">self</highlight><highlight class="normal">-&gt;oiMode<sp/>=<sp/>packet[40];</highlight></codeline>
+<codeline lineno="188"><highlight class="normal"><sp/><sp/><sp/><sp/><ref refid="timer_8c_1a7e2a3b4520e885e5e7d40fa87e242a75" kindref="member">timer_waitMillis</ref>(25);<sp/></highlight><highlight class="comment">//<sp/>reduces<sp/>USART<sp/>errors<sp/>that<sp/>occur<sp/>when<sp/>continuously<sp/>transmitting/receiving<sp/>min<sp/>wait<sp/>time=15ms</highlight><highlight class="normal"></highlight></codeline>
+<codeline lineno="189"><highlight class="normal">}</highlight></codeline>
+<codeline lineno="190"><highlight class="normal"></highlight></codeline>
+<codeline lineno="191" refid="open__interface_8c_1aa238e081cfecd7a9bf3d274f53504362" refkind="member"><highlight class="normal"></highlight><highlight class="keywordtype">void</highlight><highlight class="normal"><sp/><ref refid="open__interface_8c_1aa238e081cfecd7a9bf3d274f53504362" kindref="member">oi_parsePacket</ref>(<ref refid="structoi__t" kindref="compound">oi_t</ref>*<sp/></highlight><highlight class="keyword">self</highlight><highlight class="normal">,<sp/>uint8_t<sp/>packet[])</highlight></codeline>
+<codeline lineno="192"><highlight class="normal">{</highlight></codeline>
+<codeline lineno="193"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="keyword">self</highlight><highlight class="normal">-&gt;wheelDropLeft<sp/>=<sp/>!!(packet[0]<sp/>&amp;<sp/>0x08);</highlight></codeline>
+<codeline lineno="194"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="keyword">self</highlight><highlight class="normal">-&gt;wheelDropRight<sp/>=<sp/>!!(packet[0]<sp/>&amp;<sp/>0x04);</highlight></codeline>
+<codeline lineno="195"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="keyword">self</highlight><highlight class="normal">-&gt;bumpLeft<sp/>=<sp/>!!(packet[0]<sp/>&amp;<sp/>0x02);</highlight></codeline>
+<codeline lineno="196"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="keyword">self</highlight><highlight class="normal">-&gt;bumpRight<sp/>=<sp/>packet[0]<sp/>&amp;<sp/>0x01;</highlight></codeline>
+<codeline lineno="197"><highlight class="normal"></highlight></codeline>
+<codeline lineno="198"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="keyword">self</highlight><highlight class="normal">-&gt;wallSensor<sp/>=<sp/>packet[1];</highlight></codeline>
+<codeline lineno="199"><highlight class="normal"></highlight></codeline>
+<codeline lineno="200"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="keyword">self</highlight><highlight class="normal">-&gt;cliffLeft<sp/>=<sp/>packet[2];</highlight></codeline>
+<codeline lineno="201"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="keyword">self</highlight><highlight class="normal">-&gt;cliffFrontLeft<sp/>=<sp/>packet[3];</highlight></codeline>
+<codeline lineno="202"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="keyword">self</highlight><highlight class="normal">-&gt;cliffFrontRight<sp/>=<sp/>packet[4];</highlight></codeline>
+<codeline lineno="203"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="keyword">self</highlight><highlight class="normal">-&gt;cliffRight<sp/>=<sp/>packet[5];</highlight></codeline>
+<codeline lineno="204"><highlight class="normal"></highlight></codeline>
+<codeline lineno="205"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="keyword">self</highlight><highlight class="normal">-&gt;virtualWall<sp/>=<sp/>packet[6];</highlight></codeline>
+<codeline lineno="206"><highlight class="normal"></highlight></codeline>
+<codeline lineno="207"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="keyword">self</highlight><highlight class="normal">-&gt;overcurrentLeftWheel<sp/>=<sp/>!!(packet[7]<sp/>&amp;<sp/>0x10);</highlight></codeline>
+<codeline lineno="208"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="keyword">self</highlight><highlight class="normal">-&gt;overcurrentRightWheel<sp/>=<sp/>!!(packet[7]<sp/>&amp;<sp/>0x08);</highlight></codeline>
+<codeline lineno="209"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="keyword">self</highlight><highlight class="normal">-&gt;overcurrentMainBrush<sp/>=<sp/>!!(packet[7]<sp/>&amp;<sp/>0x04);</highlight></codeline>
+<codeline lineno="210"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="keyword">self</highlight><highlight class="normal">-&gt;overcurrentSideBrush<sp/>=<sp/>packet[7]<sp/>&amp;<sp/>0x01;</highlight></codeline>
+<codeline lineno="211"><highlight class="normal"></highlight></codeline>
+<codeline lineno="212"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="keyword">self</highlight><highlight class="normal">-&gt;dirtDetect<sp/>=<sp/>packet[8];</highlight></codeline>
+<codeline lineno="213"><highlight class="normal"></highlight></codeline>
+<codeline lineno="214"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="comment">//Byte<sp/>9<sp/>unused</highlight><highlight class="normal"></highlight></codeline>
+<codeline lineno="215"><highlight class="normal"></highlight></codeline>
+<codeline lineno="216"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="keyword">self</highlight><highlight class="normal">-&gt;infraredCharOmni<sp/>=<sp/>packet[10];</highlight></codeline>
+<codeline lineno="217"><highlight class="normal"></highlight></codeline>
+<codeline lineno="218"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="keyword">self</highlight><highlight class="normal">-&gt;buttonClock<sp/>=<sp/>!!(packet[11]<sp/>&amp;<sp/>0x80);</highlight></codeline>
+<codeline lineno="219"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="keyword">self</highlight><highlight class="normal">-&gt;buttonSchedule<sp/>=<sp/>!!(packet[11]<sp/>&amp;<sp/>0x40);</highlight></codeline>
+<codeline lineno="220"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="keyword">self</highlight><highlight class="normal">-&gt;buttonDay<sp/>=<sp/>!!(packet[11]<sp/>&amp;<sp/>0x20);</highlight></codeline>
+<codeline lineno="221"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="keyword">self</highlight><highlight class="normal">-&gt;buttonHour<sp/>=<sp/>!!(packet[11]<sp/>&amp;<sp/>0x10);</highlight></codeline>
+<codeline lineno="222"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="keyword">self</highlight><highlight class="normal">-&gt;buttonMinute<sp/>=<sp/>!!(packet[11]<sp/>&amp;<sp/>0x08);</highlight></codeline>
+<codeline lineno="223"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="keyword">self</highlight><highlight class="normal">-&gt;buttonDock<sp/>=<sp/>!!(packet[11]<sp/>&amp;<sp/>0x04);</highlight></codeline>
+<codeline lineno="224"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="keyword">self</highlight><highlight class="normal">-&gt;buttonSpot<sp/>=<sp/>!!(packet[11]<sp/>&amp;<sp/>0x02);</highlight></codeline>
+<codeline lineno="225"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="keyword">self</highlight><highlight class="normal">-&gt;buttonClean<sp/>=<sp/>packet[11]<sp/>&amp;<sp/>0x01;</highlight></codeline>
+<codeline lineno="226"><highlight class="normal"></highlight></codeline>
+<codeline lineno="227"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="keyword">self</highlight><highlight class="normal">-&gt;distance<sp/>=<sp/><ref refid="open__interface_8c_1a8c54153bd272749c1fc36a3f98ffc8b1" kindref="member">oi_parseInt</ref>(packet<sp/>+<sp/>12);</highlight></codeline>
+<codeline lineno="228"><highlight class="normal"></highlight></codeline>
+<codeline lineno="229"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="keyword">self</highlight><highlight class="normal">-&gt;chargingState<sp/>=<sp/>packet[16];</highlight></codeline>
+<codeline lineno="230"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="keyword">self</highlight><highlight class="normal">-&gt;batteryVoltage<sp/>=<sp/><ref refid="open__interface_8c_1a8c54153bd272749c1fc36a3f98ffc8b1" kindref="member">oi_parseInt</ref>(packet<sp/>+<sp/>17);</highlight></codeline>
+<codeline lineno="231"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="keyword">self</highlight><highlight class="normal">-&gt;batteryCurrent<sp/>=<sp/><ref refid="open__interface_8c_1a8c54153bd272749c1fc36a3f98ffc8b1" kindref="member">oi_parseInt</ref>(packet<sp/>+<sp/>19);</highlight></codeline>
+<codeline lineno="232"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="keyword">self</highlight><highlight class="normal">-&gt;batteryTemperature<sp/>=<sp/>packet[21];</highlight></codeline>
+<codeline lineno="233"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="keyword">self</highlight><highlight class="normal">-&gt;batteryCharge<sp/>=<sp/><ref refid="open__interface_8c_1a8c54153bd272749c1fc36a3f98ffc8b1" kindref="member">oi_parseInt</ref>(packet<sp/>+<sp/>22);</highlight></codeline>
+<codeline lineno="234"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="keyword">self</highlight><highlight class="normal">-&gt;batteryCapacity<sp/>=<sp/><ref refid="open__interface_8c_1a8c54153bd272749c1fc36a3f98ffc8b1" kindref="member">oi_parseInt</ref>(packet<sp/>+<sp/>24);</highlight></codeline>
+<codeline lineno="235"><highlight class="normal"></highlight></codeline>
+<codeline lineno="236"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="keyword">self</highlight><highlight class="normal">-&gt;wallSignal<sp/>=<sp/><ref refid="open__interface_8c_1a8c54153bd272749c1fc36a3f98ffc8b1" kindref="member">oi_parseInt</ref>(packet<sp/>+<sp/>26);</highlight></codeline>
+<codeline lineno="237"><highlight class="normal"></highlight></codeline>
+<codeline lineno="238"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="keyword">self</highlight><highlight class="normal">-&gt;cliffLeftSignal<sp/>=<sp/><ref refid="open__interface_8c_1a8c54153bd272749c1fc36a3f98ffc8b1" kindref="member">oi_parseInt</ref>(packet<sp/>+<sp/>28);</highlight></codeline>
+<codeline lineno="239"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="keyword">self</highlight><highlight class="normal">-&gt;cliffFrontLeftSignal<sp/>=<sp/><ref refid="open__interface_8c_1a8c54153bd272749c1fc36a3f98ffc8b1" kindref="member">oi_parseInt</ref>(packet<sp/>+<sp/>30);</highlight></codeline>
+<codeline lineno="240"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="keyword">self</highlight><highlight class="normal">-&gt;cliffFrontRightSignal<sp/>=<sp/><ref refid="open__interface_8c_1a8c54153bd272749c1fc36a3f98ffc8b1" kindref="member">oi_parseInt</ref>(packet<sp/>+<sp/>32);</highlight></codeline>
+<codeline lineno="241"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="keyword">self</highlight><highlight class="normal">-&gt;cliffRightSignal<sp/>=<sp/><ref refid="open__interface_8c_1a8c54153bd272749c1fc36a3f98ffc8b1" kindref="member">oi_parseInt</ref>(packet<sp/>+<sp/>34);</highlight></codeline>
+<codeline lineno="242"><highlight class="normal"></highlight></codeline>
+<codeline lineno="243"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="comment">//Bytes<sp/>36-38<sp/>unused</highlight><highlight class="normal"></highlight></codeline>
 <codeline lineno="244"><highlight class="normal"></highlight></codeline>
-<codeline lineno="245"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="keyword">self</highlight><highlight class="normal">-&gt;songNumber<sp/>=<sp/>packet[41];</highlight></codeline>
-<codeline lineno="246"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="keyword">self</highlight><highlight class="normal">-&gt;songPlaying<sp/>=<sp/>packet[42];</highlight></codeline>
+<codeline lineno="245"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="keyword">self</highlight><highlight class="normal">-&gt;chargingSourcesAvailable<sp/>=<sp/>packet[39];</highlight></codeline>
+<codeline lineno="246"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="keyword">self</highlight><highlight class="normal">-&gt;oiMode<sp/>=<sp/>packet[40];</highlight></codeline>
 <codeline lineno="247"><highlight class="normal"></highlight></codeline>
-<codeline lineno="248"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="keyword">self</highlight><highlight class="normal">-&gt;numberOfStreamPackets<sp/>=<sp/>packet[43];</highlight></codeline>
-<codeline lineno="249"><highlight class="normal"></highlight></codeline>
-<codeline lineno="250"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="keyword">self</highlight><highlight class="normal">-&gt;requestedVelocity<sp/>=<sp/>oi_parseInt(packet<sp/>+<sp/>44);</highlight></codeline>
-<codeline lineno="251"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="keyword">self</highlight><highlight class="normal">-&gt;requestedRadius<sp/>=<sp/>oi_parseInt(packet<sp/>+<sp/>46);</highlight></codeline>
-<codeline lineno="252"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="keyword">self</highlight><highlight class="normal">-&gt;requestedRightVelocity<sp/>=<sp/>oi_parseInt(packet<sp/>+<sp/>48);</highlight></codeline>
-<codeline lineno="253"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="keyword">self</highlight><highlight class="normal">-&gt;requestedLeftVelocity<sp/>=<sp/>oi_parseInt(packet<sp/>+<sp/>50);</highlight></codeline>
-<codeline lineno="254"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="keyword">self</highlight><highlight class="normal">-&gt;leftEncoderCount<sp/>=<sp/>oi_parseInt(packet<sp/>+<sp/>52);</highlight></codeline>
-<codeline lineno="255"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="keyword">self</highlight><highlight class="normal">-&gt;rightEncoderCount<sp/>=<sp/>oi_parseInt(packet<sp/>+<sp/>54);</highlight></codeline>
-<codeline lineno="256"><highlight class="normal"></highlight></codeline>
-<codeline lineno="257"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="keyword">self</highlight><highlight class="normal">-&gt;lightBumperRight<sp/>=<sp/>!!(packet[56]<sp/>&amp;<sp/>0x20);</highlight></codeline>
-<codeline lineno="258"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="keyword">self</highlight><highlight class="normal">-&gt;lightBumperFrontRight<sp/>=<sp/>!!(packet[56]<sp/>&amp;<sp/>0x10);</highlight></codeline>
-<codeline lineno="259"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="keyword">self</highlight><highlight class="normal">-&gt;lightBumperCenterRight<sp/>=<sp/>!!(packet[56]<sp/>&amp;<sp/>0x08);</highlight></codeline>
-<codeline lineno="260"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="keyword">self</highlight><highlight class="normal">-&gt;lightBumperCenterLeft<sp/>=<sp/>!!(packet[56]<sp/>&amp;<sp/>0x04);</highlight></codeline>
-<codeline lineno="261"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="keyword">self</highlight><highlight class="normal">-&gt;lightBumperFrontLeft<sp/>=<sp/>!!(packet[56]<sp/>&amp;<sp/>0x02);</highlight></codeline>
-<codeline lineno="262"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="keyword">self</highlight><highlight class="normal">-&gt;lightBumperLeft<sp/>=<sp/>packet[56]<sp/>&amp;<sp/>0x01;</highlight></codeline>
-<codeline lineno="263"><highlight class="normal"></highlight></codeline>
-<codeline lineno="264"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="keyword">self</highlight><highlight class="normal">-&gt;lightBumpLeftSignal<sp/>=<sp/>oi_parseInt(packet<sp/>+<sp/>57);</highlight></codeline>
-<codeline lineno="265"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="keyword">self</highlight><highlight class="normal">-&gt;lightBumpFrontLeftSignal<sp/>=<sp/>oi_parseInt(packet<sp/>+<sp/>59);</highlight></codeline>
-<codeline lineno="266"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="keyword">self</highlight><highlight class="normal">-&gt;lightBumpCenterLeftSignal<sp/>=<sp/>oi_parseInt(packet<sp/>+<sp/>61);</highlight></codeline>
-<codeline lineno="267"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="keyword">self</highlight><highlight class="normal">-&gt;lightBumpCenterRightSignal<sp/>=<sp/>oi_parseInt(packet<sp/>+<sp/>63);</highlight></codeline>
-<codeline lineno="268"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="keyword">self</highlight><highlight class="normal">-&gt;lightBumpFrontRightSignal<sp/>=<sp/>oi_parseInt(packet<sp/>+<sp/>65);</highlight></codeline>
-<codeline lineno="269"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="keyword">self</highlight><highlight class="normal">-&gt;lightBumpRightSignal<sp/>=<sp/>oi_parseInt(packet<sp/>+<sp/>67);</highlight></codeline>
-<codeline lineno="270"><highlight class="normal"></highlight></codeline>
-<codeline lineno="271"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="keyword">self</highlight><highlight class="normal">-&gt;infraredCharLeft<sp/>=<sp/>packet[69];</highlight></codeline>
-<codeline lineno="272"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="keyword">self</highlight><highlight class="normal">-&gt;infraredCharRight<sp/>=<sp/>packet[70];</highlight></codeline>
+<codeline lineno="248"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="keyword">self</highlight><highlight class="normal">-&gt;songNumber<sp/>=<sp/>packet[41];</highlight></codeline>
+<codeline lineno="249"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="keyword">self</highlight><highlight class="normal">-&gt;songPlaying<sp/>=<sp/>packet[42];</highlight></codeline>
+<codeline lineno="250"><highlight class="normal"></highlight></codeline>
+<codeline lineno="251"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="keyword">self</highlight><highlight class="normal">-&gt;numberOfStreamPackets<sp/>=<sp/>packet[43];</highlight></codeline>
+<codeline lineno="252"><highlight class="normal"></highlight></codeline>
+<codeline lineno="253"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="keyword">self</highlight><highlight class="normal">-&gt;requestedVelocity<sp/>=<sp/><ref refid="open__interface_8c_1a8c54153bd272749c1fc36a3f98ffc8b1" kindref="member">oi_parseInt</ref>(packet<sp/>+<sp/>44);</highlight></codeline>
+<codeline lineno="254"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="keyword">self</highlight><highlight class="normal">-&gt;requestedRadius<sp/>=<sp/><ref refid="open__interface_8c_1a8c54153bd272749c1fc36a3f98ffc8b1" kindref="member">oi_parseInt</ref>(packet<sp/>+<sp/>46);</highlight></codeline>
+<codeline lineno="255"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="keyword">self</highlight><highlight class="normal">-&gt;requestedRightVelocity<sp/>=<sp/><ref refid="open__interface_8c_1a8c54153bd272749c1fc36a3f98ffc8b1" kindref="member">oi_parseInt</ref>(packet<sp/>+<sp/>48);</highlight></codeline>
+<codeline lineno="256"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="keyword">self</highlight><highlight class="normal">-&gt;requestedLeftVelocity<sp/>=<sp/><ref refid="open__interface_8c_1a8c54153bd272749c1fc36a3f98ffc8b1" kindref="member">oi_parseInt</ref>(packet<sp/>+<sp/>50);</highlight></codeline>
+<codeline lineno="257"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="keyword">self</highlight><highlight class="normal">-&gt;leftEncoderCount<sp/>=<sp/><ref refid="open__interface_8c_1a8c54153bd272749c1fc36a3f98ffc8b1" kindref="member">oi_parseInt</ref>(packet<sp/>+<sp/>52);</highlight></codeline>
+<codeline lineno="258"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="keyword">self</highlight><highlight class="normal">-&gt;rightEncoderCount<sp/>=<sp/><ref refid="open__interface_8c_1a8c54153bd272749c1fc36a3f98ffc8b1" kindref="member">oi_parseInt</ref>(packet<sp/>+<sp/>54);</highlight></codeline>
+<codeline lineno="259"><highlight class="normal"></highlight></codeline>
+<codeline lineno="260"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="keyword">self</highlight><highlight class="normal">-&gt;lightBumperRight<sp/>=<sp/>!!(packet[56]<sp/>&amp;<sp/>0x20);</highlight></codeline>
+<codeline lineno="261"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="keyword">self</highlight><highlight class="normal">-&gt;lightBumperFrontRight<sp/>=<sp/>!!(packet[56]<sp/>&amp;<sp/>0x10);</highlight></codeline>
+<codeline lineno="262"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="keyword">self</highlight><highlight class="normal">-&gt;lightBumperCenterRight<sp/>=<sp/>!!(packet[56]<sp/>&amp;<sp/>0x08);</highlight></codeline>
+<codeline lineno="263"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="keyword">self</highlight><highlight class="normal">-&gt;lightBumperCenterLeft<sp/>=<sp/>!!(packet[56]<sp/>&amp;<sp/>0x04);</highlight></codeline>
+<codeline lineno="264"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="keyword">self</highlight><highlight class="normal">-&gt;lightBumperFrontLeft<sp/>=<sp/>!!(packet[56]<sp/>&amp;<sp/>0x02);</highlight></codeline>
+<codeline lineno="265"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="keyword">self</highlight><highlight class="normal">-&gt;lightBumperLeft<sp/>=<sp/>packet[56]<sp/>&amp;<sp/>0x01;</highlight></codeline>
+<codeline lineno="266"><highlight class="normal"></highlight></codeline>
+<codeline lineno="267"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="keyword">self</highlight><highlight class="normal">-&gt;lightBumpLeftSignal<sp/>=<sp/><ref refid="open__interface_8c_1a8c54153bd272749c1fc36a3f98ffc8b1" kindref="member">oi_parseInt</ref>(packet<sp/>+<sp/>57);</highlight></codeline>
+<codeline lineno="268"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="keyword">self</highlight><highlight class="normal">-&gt;lightBumpFrontLeftSignal<sp/>=<sp/><ref refid="open__interface_8c_1a8c54153bd272749c1fc36a3f98ffc8b1" kindref="member">oi_parseInt</ref>(packet<sp/>+<sp/>59);</highlight></codeline>
+<codeline lineno="269"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="keyword">self</highlight><highlight class="normal">-&gt;lightBumpCenterLeftSignal<sp/>=<sp/><ref refid="open__interface_8c_1a8c54153bd272749c1fc36a3f98ffc8b1" kindref="member">oi_parseInt</ref>(packet<sp/>+<sp/>61);</highlight></codeline>
+<codeline lineno="270"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="keyword">self</highlight><highlight class="normal">-&gt;lightBumpCenterRightSignal<sp/>=<sp/><ref refid="open__interface_8c_1a8c54153bd272749c1fc36a3f98ffc8b1" kindref="member">oi_parseInt</ref>(packet<sp/>+<sp/>63);</highlight></codeline>
+<codeline lineno="271"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="keyword">self</highlight><highlight class="normal">-&gt;lightBumpFrontRightSignal<sp/>=<sp/><ref refid="open__interface_8c_1a8c54153bd272749c1fc36a3f98ffc8b1" kindref="member">oi_parseInt</ref>(packet<sp/>+<sp/>65);</highlight></codeline>
+<codeline lineno="272"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="keyword">self</highlight><highlight class="normal">-&gt;lightBumpRightSignal<sp/>=<sp/><ref refid="open__interface_8c_1a8c54153bd272749c1fc36a3f98ffc8b1" kindref="member">oi_parseInt</ref>(packet<sp/>+<sp/>67);</highlight></codeline>
 <codeline lineno="273"><highlight class="normal"></highlight></codeline>
-<codeline lineno="274"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="keyword">self</highlight><highlight class="normal">-&gt;leftMotorCurrent<sp/>=<sp/>oi_parseInt(packet<sp/>+<sp/>71);</highlight></codeline>
-<codeline lineno="275"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="keyword">self</highlight><highlight class="normal">-&gt;rightMotorCurrent<sp/>=<sp/>oi_parseInt(packet<sp/>+<sp/>73);</highlight></codeline>
-<codeline lineno="276"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="keyword">self</highlight><highlight class="normal">-&gt;mainBrushMotorCurrent<sp/>=<sp/>oi_parseInt(packet<sp/>+<sp/>75);</highlight></codeline>
-<codeline lineno="277"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="keyword">self</highlight><highlight class="normal">-&gt;sideBrushMotorCurrent<sp/>=<sp/>oi_parseInt(packet<sp/>+<sp/>77);</highlight></codeline>
-<codeline lineno="278"><highlight class="normal"></highlight></codeline>
-<codeline lineno="279"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="keyword">self</highlight><highlight class="normal">-&gt;stasis<sp/>=<sp/>packet[79];</highlight></codeline>
-<codeline lineno="280"><highlight class="normal"></highlight></codeline>
-<codeline lineno="281"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="keyword">self</highlight><highlight class="normal">-&gt;angle<sp/>=<sp/>getDegrees(</highlight><highlight class="keyword">self</highlight><highlight class="normal">);</highlight></codeline>
-<codeline lineno="282"><highlight class="normal">}</highlight></codeline>
+<codeline lineno="274"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="keyword">self</highlight><highlight class="normal">-&gt;infraredCharLeft<sp/>=<sp/>packet[69];</highlight></codeline>
+<codeline lineno="275"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="keyword">self</highlight><highlight class="normal">-&gt;infraredCharRight<sp/>=<sp/>packet[70];</highlight></codeline>
+<codeline lineno="276"><highlight class="normal"></highlight></codeline>
+<codeline lineno="277"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="keyword">self</highlight><highlight class="normal">-&gt;leftMotorCurrent<sp/>=<sp/><ref refid="open__interface_8c_1a8c54153bd272749c1fc36a3f98ffc8b1" kindref="member">oi_parseInt</ref>(packet<sp/>+<sp/>71);</highlight></codeline>
+<codeline lineno="278"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="keyword">self</highlight><highlight class="normal">-&gt;rightMotorCurrent<sp/>=<sp/><ref refid="open__interface_8c_1a8c54153bd272749c1fc36a3f98ffc8b1" kindref="member">oi_parseInt</ref>(packet<sp/>+<sp/>73);</highlight></codeline>
+<codeline lineno="279"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="keyword">self</highlight><highlight class="normal">-&gt;mainBrushMotorCurrent<sp/>=<sp/><ref refid="open__interface_8c_1a8c54153bd272749c1fc36a3f98ffc8b1" kindref="member">oi_parseInt</ref>(packet<sp/>+<sp/>75);</highlight></codeline>
+<codeline lineno="280"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="keyword">self</highlight><highlight class="normal">-&gt;sideBrushMotorCurrent<sp/>=<sp/><ref refid="open__interface_8c_1a8c54153bd272749c1fc36a3f98ffc8b1" kindref="member">oi_parseInt</ref>(packet<sp/>+<sp/>77);</highlight></codeline>
+<codeline lineno="281"><highlight class="normal"></highlight></codeline>
+<codeline lineno="282"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="keyword">self</highlight><highlight class="normal">-&gt;stasis<sp/>=<sp/>packet[79];</highlight></codeline>
 <codeline lineno="283"><highlight class="normal"></highlight></codeline>
-<codeline lineno="284"><highlight class="normal"></highlight><highlight class="keyword">inline</highlight><highlight class="normal"><sp/>int16_t<sp/>oi_parseInt(uint8_t*<sp/>theInt)</highlight></codeline>
-<codeline lineno="285"><highlight class="normal">{</highlight></codeline>
-<codeline lineno="286"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">return</highlight><highlight class="normal"><sp/>(theInt[0]<sp/>&lt;&lt;<sp/>8)<sp/>|<sp/>theInt[1];</highlight></codeline>
-<codeline lineno="287"><highlight class="normal">}</highlight></codeline>
-<codeline lineno="288"><highlight class="normal"></highlight></codeline>
-<codeline lineno="294"><highlight class="keywordtype">void</highlight><highlight class="normal"><sp/>oi_setLeds(uint8_t<sp/>play_led,<sp/>uint8_t<sp/>advance_led,<sp/>uint8_t<sp/>power_color,</highlight></codeline>
-<codeline lineno="295"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>uint8_t<sp/>power_intensity)</highlight></codeline>
-<codeline lineno="296"><highlight class="normal">{</highlight></codeline>
-<codeline lineno="297"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="comment">//<sp/>LED<sp/>Opcode</highlight><highlight class="normal"></highlight></codeline>
-<codeline lineno="298"><highlight class="normal"><sp/><sp/><sp/><sp/>oi_uartSendChar(OI_OPCODE_LEDS);</highlight></codeline>
-<codeline lineno="299"><highlight class="normal"></highlight></codeline>
-<codeline lineno="300"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="comment">//<sp/>Set<sp/>the<sp/>Play<sp/>and<sp/>Advance<sp/>LEDs</highlight><highlight class="normal"></highlight></codeline>
-<codeline lineno="301"><highlight class="normal"><sp/><sp/><sp/><sp/>oi_uartSendChar(advance_led<sp/>&lt;&lt;<sp/>3<sp/>&amp;&amp;<sp/>play_led<sp/>&lt;&lt;<sp/>2);</highlight></codeline>
+<codeline lineno="284"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="keyword">self</highlight><highlight class="normal">-&gt;angle<sp/>=<sp/><ref refid="open__interface_8c_1a22afee5afdd7d60bc1bd9d58a428e4b7" kindref="member">getDegrees</ref>(</highlight><highlight class="keyword">self</highlight><highlight class="normal">);</highlight></codeline>
+<codeline lineno="285"><highlight class="normal">}</highlight></codeline>
+<codeline lineno="286"><highlight class="normal"></highlight></codeline>
+<codeline lineno="287" refid="open__interface_8c_1a8c54153bd272749c1fc36a3f98ffc8b1" refkind="member"><highlight class="normal"></highlight><highlight class="keyword">inline</highlight><highlight class="normal"><sp/>int16_t<sp/><ref refid="open__interface_8c_1a8c54153bd272749c1fc36a3f98ffc8b1" kindref="member">oi_parseInt</ref>(uint8_t*<sp/>theInt)</highlight></codeline>
+<codeline lineno="288"><highlight class="normal">{</highlight></codeline>
+<codeline lineno="289"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">return</highlight><highlight class="normal"><sp/>(theInt[0]<sp/>&lt;&lt;<sp/>8)<sp/>|<sp/>theInt[1];</highlight></codeline>
+<codeline lineno="290"><highlight class="normal">}</highlight></codeline>
+<codeline lineno="291"><highlight class="normal"></highlight></codeline>
+<codeline lineno="297" refid="open__interface_8h_1a9ce8d6194cf8cb1d39104b641cb5254d" refkind="member"><highlight class="keywordtype">void</highlight><highlight class="normal"><sp/><ref refid="open__interface_8c_1a9ce8d6194cf8cb1d39104b641cb5254d" kindref="member">oi_setLeds</ref>(uint8_t<sp/>play_led,<sp/>uint8_t<sp/>advance_led,<sp/>uint8_t<sp/>power_color,</highlight></codeline>
+<codeline lineno="298"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>uint8_t<sp/>power_intensity)</highlight></codeline>
+<codeline lineno="299"><highlight class="normal">{</highlight></codeline>
+<codeline lineno="300"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="comment">//<sp/>LED<sp/>Opcode</highlight><highlight class="normal"></highlight></codeline>
+<codeline lineno="301"><highlight class="normal"><sp/><sp/><sp/><sp/><ref refid="open__interface_8c_1aced7535453b0c0e29af698308d0498d4" kindref="member">oi_uartSendChar</ref>(OI_OPCODE_LEDS);</highlight></codeline>
 <codeline lineno="302"><highlight class="normal"></highlight></codeline>
-<codeline lineno="303"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="comment">//<sp/>Set<sp/>the<sp/>power<sp/>led<sp/>color</highlight><highlight class="normal"></highlight></codeline>
-<codeline lineno="304"><highlight class="normal"><sp/><sp/><sp/><sp/>oi_uartSendChar(power_color);</highlight></codeline>
+<codeline lineno="303"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="comment">//<sp/>Set<sp/>the<sp/>Play<sp/>and<sp/>Advance<sp/>LEDs</highlight><highlight class="normal"></highlight></codeline>
+<codeline lineno="304"><highlight class="normal"><sp/><sp/><sp/><sp/><ref refid="open__interface_8c_1aced7535453b0c0e29af698308d0498d4" kindref="member">oi_uartSendChar</ref>(advance_led<sp/>&lt;&lt;<sp/>3<sp/>&amp;&amp;<sp/>play_led<sp/>&lt;&lt;<sp/>2);</highlight></codeline>
 <codeline lineno="305"><highlight class="normal"></highlight></codeline>
-<codeline lineno="306"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="comment">//<sp/>Set<sp/>the<sp/>power<sp/>led<sp/>intensity</highlight><highlight class="normal"></highlight></codeline>
-<codeline lineno="307"><highlight class="normal"><sp/><sp/><sp/><sp/>oi_uartSendChar(power_intensity);</highlight></codeline>
-<codeline lineno="308"><highlight class="normal">}</highlight></codeline>
-<codeline lineno="309"><highlight class="normal"></highlight></codeline>
-<codeline lineno="313"><highlight class="keywordtype">void</highlight><highlight class="normal"><sp/>oi_setWheels(int16_t<sp/>right_wheel,<sp/>int16_t<sp/>left_wheel)</highlight></codeline>
-<codeline lineno="314"><highlight class="normal">{</highlight></codeline>
-<codeline lineno="315"><highlight class="normal"><sp/><sp/><sp/><sp/>oi_uartSendChar(OI_OPCODE_DRIVE_WHEELS);</highlight></codeline>
-<codeline lineno="316"><highlight class="normal"><sp/><sp/><sp/><sp/>oi_uartSendChar(right_wheel<sp/>&gt;&gt;<sp/>8);</highlight></codeline>
-<codeline lineno="317"><highlight class="normal"><sp/><sp/><sp/><sp/>oi_uartSendChar(right_wheel<sp/>&amp;<sp/>0xff);</highlight></codeline>
-<codeline lineno="318"><highlight class="normal"><sp/><sp/><sp/><sp/>oi_uartSendChar(left_wheel<sp/>&gt;&gt;<sp/>8);</highlight></codeline>
-<codeline lineno="319"><highlight class="normal"><sp/><sp/><sp/><sp/>oi_uartSendChar(left_wheel<sp/>&amp;<sp/>0xff);</highlight></codeline>
-<codeline lineno="320"><highlight class="normal">}</highlight></codeline>
-<codeline lineno="321"><highlight class="normal"></highlight></codeline>
-<codeline lineno="327"><highlight class="keywordtype">void</highlight><highlight class="normal"><sp/>oi_loadSong(</highlight><highlight class="keywordtype">int</highlight><highlight class="normal"><sp/>song_index,<sp/></highlight><highlight class="keywordtype">int</highlight><highlight class="normal"><sp/>num_notes,<sp/></highlight><highlight class="keywordtype">unsigned</highlight><highlight class="normal"><sp/></highlight><highlight class="keywordtype">char</highlight><highlight class="normal"><sp/>*notes,</highlight></codeline>
-<codeline lineno="328"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordtype">unsigned</highlight><highlight class="normal"><sp/></highlight><highlight class="keywordtype">char</highlight><highlight class="normal"><sp/>*duration)</highlight></codeline>
-<codeline lineno="329"><highlight class="normal">{</highlight></codeline>
-<codeline lineno="330"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="keywordtype">int</highlight><highlight class="normal"><sp/>i;</highlight></codeline>
-<codeline lineno="331"><highlight class="normal"><sp/><sp/><sp/><sp/>oi_uartSendChar(OI_OPCODE_SONG);</highlight></codeline>
-<codeline lineno="332"><highlight class="normal"><sp/><sp/><sp/><sp/>oi_uartSendChar(song_index);</highlight></codeline>
-<codeline lineno="333"><highlight class="normal"><sp/><sp/><sp/><sp/>oi_uartSendChar(num_notes);</highlight></codeline>
-<codeline lineno="334"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">for</highlight><highlight class="normal"><sp/>(i<sp/>=<sp/>0;<sp/>i<sp/>&lt;<sp/>num_notes;<sp/>i++)</highlight></codeline>
-<codeline lineno="335"><highlight class="normal"><sp/><sp/><sp/><sp/>{</highlight></codeline>
-<codeline lineno="336"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>oi_uartSendChar(notes[i]);</highlight></codeline>
-<codeline lineno="337"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>oi_uartSendChar(duration[i]);</highlight></codeline>
-<codeline lineno="338"><highlight class="normal"><sp/><sp/><sp/><sp/>}</highlight></codeline>
-<codeline lineno="339"><highlight class="normal">}</highlight></codeline>
-<codeline lineno="340"><highlight class="normal"></highlight></codeline>
-<codeline lineno="342"><highlight class="keywordtype">void</highlight><highlight class="normal"><sp/>oi_play_song(</highlight><highlight class="keywordtype">int</highlight><highlight class="normal"><sp/>index)</highlight></codeline>
-<codeline lineno="343"><highlight class="normal">{</highlight></codeline>
-<codeline lineno="344"><highlight class="normal"><sp/><sp/><sp/><sp/>oi_uartSendChar(OI_OPCODE_PLAY);</highlight></codeline>
-<codeline lineno="345"><highlight class="normal"><sp/><sp/><sp/><sp/>oi_uartSendChar(index);</highlight></codeline>
-<codeline lineno="346"><highlight class="normal">}</highlight></codeline>
-<codeline lineno="347"><highlight class="normal"></highlight></codeline>
-<codeline lineno="349"><highlight class="keywordtype">void</highlight><highlight class="normal"><sp/>go_charge(</highlight><highlight class="keywordtype">void</highlight><highlight class="normal">)</highlight></codeline>
-<codeline lineno="350"><highlight class="normal">{</highlight></codeline>
-<codeline lineno="351"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="comment">//char<sp/>charging_state=0;</highlight><highlight class="normal"></highlight></codeline>
-<codeline lineno="352"><highlight class="normal"></highlight></codeline>
-<codeline lineno="353"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="comment">/*<sp/><sp/>//Calling<sp/>demo<sp/>that<sp/>will<sp/>cause<sp/>Create<sp/>to<sp/>seek<sp/>out<sp/>home<sp/>base</highlight></codeline>
-<codeline lineno="354"><highlight class="comment"><sp/><sp/><sp/><sp/><sp/>oi_uartSendChar(OI_OPCODE_MAX);</highlight></codeline>
-<codeline lineno="355"><highlight class="comment"><sp/><sp/><sp/><sp/><sp/>oi_uartSendChar(0x01);</highlight></codeline>
-<codeline lineno="356"><highlight class="comment"></highlight></codeline>
-<codeline lineno="357"><highlight class="comment"><sp/><sp/><sp/><sp/><sp/>//Control<sp/>is<sp/>returned<sp/>immediately,<sp/>so<sp/>need<sp/>to<sp/>check<sp/>for<sp/>docking<sp/>status</highlight></codeline>
-<codeline lineno="358"><highlight class="comment"><sp/><sp/><sp/><sp/><sp/>DDRB<sp/>&amp;=<sp/>~0x80;<sp/>//Setting<sp/>pin7<sp/>to<sp/>input</highlight></codeline>
-<codeline lineno="359"><highlight class="comment"><sp/><sp/><sp/><sp/><sp/>PORTB<sp/>|=<sp/>0x80;<sp/>//Setting<sp/>pullup<sp/>on<sp/>pin7</highlight></codeline>
-<codeline lineno="360"><highlight class="comment"></highlight></codeline>
-<codeline lineno="361"><highlight class="comment"><sp/><sp/><sp/><sp/><sp/>do<sp/>{</highlight></codeline>
-<codeline lineno="362"><highlight class="comment"><sp/><sp/><sp/><sp/><sp/>charging_state<sp/>=<sp/>PINB<sp/>&gt;&gt;<sp/>7;</highlight></codeline>
-<codeline lineno="363"><highlight class="comment"><sp/><sp/><sp/><sp/><sp/>}<sp/>while<sp/>(charging_state<sp/>==<sp/>0);</highlight></codeline>
-<codeline lineno="364"><highlight class="comment"><sp/><sp/><sp/><sp/><sp/>*/</highlight><highlight class="normal"></highlight></codeline>
-<codeline lineno="365"><highlight class="normal">}</highlight></codeline>
-<codeline lineno="366"><highlight class="normal"></highlight></codeline>
-<codeline lineno="369"><highlight class="keywordtype">void</highlight><highlight class="normal"><sp/>oi_uartInit(</highlight><highlight class="keywordtype">void</highlight><highlight class="normal">)</highlight></codeline>
-<codeline lineno="370"><highlight class="normal">{</highlight></codeline>
-<codeline lineno="371"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="comment">//Calculated<sp/>Baudrate<sp/>for<sp/>115200;</highlight><highlight class="normal"></highlight></codeline>
-<codeline lineno="372"><highlight class="normal"><sp/><sp/><sp/><sp/>uint16_t<sp/>iBRD<sp/>=<sp/>0x08;<sp/></highlight><highlight class="comment">//BRD=SYSCLK/((ClkDiv)(BaudRate)),<sp/>HSE=0<sp/>ClkDiv=16,<sp/>BaudRate=115,200</highlight><highlight class="normal"></highlight></codeline>
-<codeline lineno="373"><highlight class="normal"><sp/><sp/><sp/><sp/>uint16_t<sp/>fBRD<sp/>=<sp/>44;<sp/></highlight><highlight class="comment">//Fractional<sp/>remainder<sp/>is<sp/>0.6805,<sp/>DIVFRAC<sp/>=<sp/>(.6805)(64)+0.5<sp/>=<sp/>44</highlight><highlight class="normal"></highlight></codeline>
-<codeline lineno="374"><highlight class="normal"></highlight></codeline>
-<codeline lineno="375"><highlight class="normal"><sp/><sp/><sp/><sp/>SYSCTL_RCGCGPIO_R<sp/>|=<sp/>SYSCTL_RCGCGPIO_R2;<sp/></highlight><highlight class="comment">//enable<sp/>GPIO<sp/>Port<sp/>C</highlight><highlight class="normal"></highlight></codeline>
-<codeline lineno="376"><highlight class="normal"></highlight></codeline>
-<codeline lineno="377"><highlight class="normal"><sp/><sp/><sp/><sp/>SYSCTL_RCGCUART_R<sp/>|=<sp/>SYSCTL_RCGCUART_R4;<sp/></highlight><highlight class="comment">//enable<sp/>UART4</highlight><highlight class="normal"></highlight></codeline>
-<codeline lineno="378"><highlight class="normal"></highlight></codeline>
-<codeline lineno="379"><highlight class="normal"><sp/><sp/><sp/><sp/>GPIO_PORTC_AFSEL_R<sp/>|=<sp/>(BIT4<sp/>|<sp/>BIT5);<sp/></highlight><highlight class="comment">//Enable<sp/>alternate<sp/>function<sp/>on<sp/>PC6,PC7</highlight><highlight class="normal"></highlight></codeline>
-<codeline lineno="380"><highlight class="normal"><sp/><sp/><sp/><sp/>GPIO_PORTC_PCTL_R<sp/>|=<sp/>0x00110000;<sp/></highlight><highlight class="comment">//Enable<sp/>function<sp/>1<sp/>(UART<sp/>Rx/Tx)<sp/>on<sp/>PC4,PC5</highlight><highlight class="normal"></highlight></codeline>
-<codeline lineno="381"><highlight class="normal"><sp/><sp/><sp/><sp/>GPIO_PORTC_DEN_R<sp/>|=<sp/>(BIT4<sp/>|<sp/>BIT5);<sp/></highlight><highlight class="comment">//Enable<sp/>PC4,5<sp/>data</highlight><highlight class="normal"></highlight></codeline>
-<codeline lineno="382"><highlight class="normal"><sp/><sp/><sp/><sp/>GPIO_PORTC_DIR_R<sp/>|=<sp/>BIT5;<sp/></highlight><highlight class="comment">//Set<sp/>pin<sp/>direction<sp/>to<sp/>output<sp/>on<sp/>PC5</highlight><highlight class="normal"></highlight></codeline>
-<codeline lineno="383"><highlight class="normal"><sp/><sp/><sp/><sp/>GPIO_PORTC_DIR_R<sp/>&amp;=<sp/>~BIT4;<sp/></highlight><highlight class="comment">//Set<sp/>pin<sp/>direction<sp/>to<sp/>input<sp/>on<sp/>PC4</highlight><highlight class="normal"></highlight></codeline>
-<codeline lineno="384"><highlight class="normal"></highlight></codeline>
-<codeline lineno="385"><highlight class="normal"><sp/><sp/><sp/><sp/>UART4_CTL_R<sp/>&amp;=<sp/>~(UART_CTL_UARTEN);<sp/></highlight><highlight class="comment">//Disable<sp/>UART4<sp/>while<sp/>we<sp/>mess<sp/>with<sp/>it</highlight><highlight class="normal"></highlight></codeline>
-<codeline lineno="386"><highlight class="normal"></highlight></codeline>
-<codeline lineno="387"><highlight class="normal"><sp/><sp/><sp/><sp/>UART4_IBRD_R<sp/>=<sp/>iBRD;</highlight></codeline>
-<codeline lineno="388"><highlight class="normal"><sp/><sp/><sp/><sp/>UART4_FBRD_R<sp/>=<sp/>fBRD;</highlight></codeline>
+<codeline lineno="306"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="comment">//<sp/>Set<sp/>the<sp/>power<sp/>led<sp/>color</highlight><highlight class="normal"></highlight></codeline>
+<codeline lineno="307"><highlight class="normal"><sp/><sp/><sp/><sp/><ref refid="open__interface_8c_1aced7535453b0c0e29af698308d0498d4" kindref="member">oi_uartSendChar</ref>(power_color);</highlight></codeline>
+<codeline lineno="308"><highlight class="normal"></highlight></codeline>
+<codeline lineno="309"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="comment">//<sp/>Set<sp/>the<sp/>power<sp/>led<sp/>intensity</highlight><highlight class="normal"></highlight></codeline>
+<codeline lineno="310"><highlight class="normal"><sp/><sp/><sp/><sp/><ref refid="open__interface_8c_1aced7535453b0c0e29af698308d0498d4" kindref="member">oi_uartSendChar</ref>(power_intensity);</highlight></codeline>
+<codeline lineno="311"><highlight class="normal">}</highlight></codeline>
+<codeline lineno="312"><highlight class="normal"></highlight></codeline>
+<codeline lineno="316" refid="open__interface_8h_1a49949f029cc5f84ad903aa7022f4e5e0" refkind="member"><highlight class="keywordtype">void</highlight><highlight class="normal"><sp/><ref refid="open__interface_8c_1a49949f029cc5f84ad903aa7022f4e5e0" kindref="member">oi_setWheels</ref>(int16_t<sp/>right_wheel,<sp/>int16_t<sp/>left_wheel)</highlight></codeline>
+<codeline lineno="317"><highlight class="normal">{</highlight></codeline>
+<codeline lineno="318"><highlight class="normal"><sp/><sp/><sp/><sp/><ref refid="open__interface_8c_1aced7535453b0c0e29af698308d0498d4" kindref="member">oi_uartSendChar</ref>(OI_OPCODE_DRIVE_WHEELS);</highlight></codeline>
+<codeline lineno="319"><highlight class="normal"><sp/><sp/><sp/><sp/><ref refid="open__interface_8c_1aced7535453b0c0e29af698308d0498d4" kindref="member">oi_uartSendChar</ref>(right_wheel<sp/>&gt;&gt;<sp/>8);</highlight></codeline>
+<codeline lineno="320"><highlight class="normal"><sp/><sp/><sp/><sp/><ref refid="open__interface_8c_1aced7535453b0c0e29af698308d0498d4" kindref="member">oi_uartSendChar</ref>(right_wheel<sp/>&amp;<sp/>0xff);</highlight></codeline>
+<codeline lineno="321"><highlight class="normal"><sp/><sp/><sp/><sp/><ref refid="open__interface_8c_1aced7535453b0c0e29af698308d0498d4" kindref="member">oi_uartSendChar</ref>(left_wheel<sp/>&gt;&gt;<sp/>8);</highlight></codeline>
+<codeline lineno="322"><highlight class="normal"><sp/><sp/><sp/><sp/><ref refid="open__interface_8c_1aced7535453b0c0e29af698308d0498d4" kindref="member">oi_uartSendChar</ref>(left_wheel<sp/>&amp;<sp/>0xff);</highlight></codeline>
+<codeline lineno="323"><highlight class="normal">}</highlight></codeline>
+<codeline lineno="324"><highlight class="normal"></highlight></codeline>
+<codeline lineno="330" refid="open__interface_8h_1ad945411d8b234cf7c50488a8d9388ff5" refkind="member"><highlight class="keywordtype">void</highlight><highlight class="normal"><sp/><ref refid="open__interface_8c_1ad945411d8b234cf7c50488a8d9388ff5" kindref="member">oi_loadSong</ref>(</highlight><highlight class="keywordtype">int</highlight><highlight class="normal"><sp/>song_index,<sp/></highlight><highlight class="keywordtype">int</highlight><highlight class="normal"><sp/>num_notes,<sp/></highlight><highlight class="keywordtype">unsigned</highlight><highlight class="normal"><sp/></highlight><highlight class="keywordtype">char</highlight><highlight class="normal"><sp/>*notes,</highlight></codeline>
+<codeline lineno="331"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordtype">unsigned</highlight><highlight class="normal"><sp/></highlight><highlight class="keywordtype">char</highlight><highlight class="normal"><sp/>*duration)</highlight></codeline>
+<codeline lineno="332"><highlight class="normal">{</highlight></codeline>
+<codeline lineno="333"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="keywordtype">int</highlight><highlight class="normal"><sp/>i;</highlight></codeline>
+<codeline lineno="334"><highlight class="normal"><sp/><sp/><sp/><sp/><ref refid="open__interface_8c_1aced7535453b0c0e29af698308d0498d4" kindref="member">oi_uartSendChar</ref>(OI_OPCODE_SONG);</highlight></codeline>
+<codeline lineno="335"><highlight class="normal"><sp/><sp/><sp/><sp/><ref refid="open__interface_8c_1aced7535453b0c0e29af698308d0498d4" kindref="member">oi_uartSendChar</ref>(song_index);</highlight></codeline>
+<codeline lineno="336"><highlight class="normal"><sp/><sp/><sp/><sp/><ref refid="open__interface_8c_1aced7535453b0c0e29af698308d0498d4" kindref="member">oi_uartSendChar</ref>(num_notes);</highlight></codeline>
+<codeline lineno="337"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">for</highlight><highlight class="normal"><sp/>(i<sp/>=<sp/>0;<sp/>i<sp/>&lt;<sp/>num_notes;<sp/>i++)</highlight></codeline>
+<codeline lineno="338"><highlight class="normal"><sp/><sp/><sp/><sp/>{</highlight></codeline>
+<codeline lineno="339"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><ref refid="open__interface_8c_1aced7535453b0c0e29af698308d0498d4" kindref="member">oi_uartSendChar</ref>(notes[i]);</highlight></codeline>
+<codeline lineno="340"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><ref refid="open__interface_8c_1aced7535453b0c0e29af698308d0498d4" kindref="member">oi_uartSendChar</ref>(duration[i]);</highlight></codeline>
+<codeline lineno="341"><highlight class="normal"><sp/><sp/><sp/><sp/>}</highlight></codeline>
+<codeline lineno="342"><highlight class="normal">}</highlight></codeline>
+<codeline lineno="343"><highlight class="normal"></highlight></codeline>
+<codeline lineno="345" refid="open__interface_8h_1a353765c4297939ef0390a47ca869af56" refkind="member"><highlight class="keywordtype">void</highlight><highlight class="normal"><sp/><ref refid="open__interface_8c_1a353765c4297939ef0390a47ca869af56" kindref="member">oi_play_song</ref>(</highlight><highlight class="keywordtype">int</highlight><highlight class="normal"><sp/>index)</highlight></codeline>
+<codeline lineno="346"><highlight class="normal">{</highlight></codeline>
+<codeline lineno="347"><highlight class="normal"><sp/><sp/><sp/><sp/><ref refid="open__interface_8c_1aced7535453b0c0e29af698308d0498d4" kindref="member">oi_uartSendChar</ref>(OI_OPCODE_PLAY);</highlight></codeline>
+<codeline lineno="348"><highlight class="normal"><sp/><sp/><sp/><sp/><ref refid="open__interface_8c_1aced7535453b0c0e29af698308d0498d4" kindref="member">oi_uartSendChar</ref>(index);</highlight></codeline>
+<codeline lineno="349"><highlight class="normal">}</highlight></codeline>
+<codeline lineno="350"><highlight class="normal"></highlight></codeline>
+<codeline lineno="352" refid="open__interface_8h_1a6c701c5d6642b0f7128b03542a09ed76" refkind="member"><highlight class="keywordtype">void</highlight><highlight class="normal"><sp/><ref refid="open__interface_8c_1a6c701c5d6642b0f7128b03542a09ed76" kindref="member">go_charge</ref>(</highlight><highlight class="keywordtype">void</highlight><highlight class="normal">)</highlight></codeline>
+<codeline lineno="353"><highlight class="normal">{</highlight></codeline>
+<codeline lineno="354"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="comment">//char<sp/>charging_state=0;</highlight><highlight class="normal"></highlight></codeline>
+<codeline lineno="355"><highlight class="normal"></highlight></codeline>
+<codeline lineno="356"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="comment">/*<sp/><sp/>//Calling<sp/>demo<sp/>that<sp/>will<sp/>cause<sp/>Create<sp/>to<sp/>seek<sp/>out<sp/>home<sp/>base</highlight></codeline>
+<codeline lineno="357"><highlight class="comment"><sp/><sp/><sp/><sp/><sp/>oi_uartSendChar(OI_OPCODE_MAX);</highlight></codeline>
+<codeline lineno="358"><highlight class="comment"><sp/><sp/><sp/><sp/><sp/>oi_uartSendChar(0x01);</highlight></codeline>
+<codeline lineno="359"><highlight class="comment"></highlight></codeline>
+<codeline lineno="360"><highlight class="comment"><sp/><sp/><sp/><sp/><sp/>//Control<sp/>is<sp/>returned<sp/>immediately,<sp/>so<sp/>need<sp/>to<sp/>check<sp/>for<sp/>docking<sp/>status</highlight></codeline>
+<codeline lineno="361"><highlight class="comment"><sp/><sp/><sp/><sp/><sp/>DDRB<sp/>&amp;=<sp/>~0x80;<sp/>//Setting<sp/>pin7<sp/>to<sp/>input</highlight></codeline>
+<codeline lineno="362"><highlight class="comment"><sp/><sp/><sp/><sp/><sp/>PORTB<sp/>|=<sp/>0x80;<sp/>//Setting<sp/>pullup<sp/>on<sp/>pin7</highlight></codeline>
+<codeline lineno="363"><highlight class="comment"></highlight></codeline>
+<codeline lineno="364"><highlight class="comment"><sp/><sp/><sp/><sp/><sp/>do<sp/>{</highlight></codeline>
+<codeline lineno="365"><highlight class="comment"><sp/><sp/><sp/><sp/><sp/>charging_state<sp/>=<sp/>PINB<sp/>&gt;&gt;<sp/>7;</highlight></codeline>
+<codeline lineno="366"><highlight class="comment"><sp/><sp/><sp/><sp/><sp/>}<sp/>while<sp/>(charging_state<sp/>==<sp/>0);</highlight></codeline>
+<codeline lineno="367"><highlight class="comment"><sp/><sp/><sp/><sp/><sp/>*/</highlight><highlight class="normal"></highlight></codeline>
+<codeline lineno="368"><highlight class="normal">}</highlight></codeline>
+<codeline lineno="369"><highlight class="normal"></highlight></codeline>
+<codeline lineno="372" refid="open__interface_8c_1ad9923d0a228d340572e71997ddf32df9" refkind="member"><highlight class="keywordtype">void</highlight><highlight class="normal"><sp/><ref refid="open__interface_8c_1ad9923d0a228d340572e71997ddf32df9" kindref="member">oi_uartInit</ref>(</highlight><highlight class="keywordtype">void</highlight><highlight class="normal">)</highlight></codeline>
+<codeline lineno="373"><highlight class="normal">{</highlight></codeline>
+<codeline lineno="374"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="comment">//Calculated<sp/>Baudrate<sp/>for<sp/>115200;</highlight><highlight class="normal"></highlight></codeline>
+<codeline lineno="375"><highlight class="normal"><sp/><sp/><sp/><sp/>uint16_t<sp/>iBRD<sp/>=<sp/>0x08;<sp/></highlight><highlight class="comment">//BRD=SYSCLK/((ClkDiv)(BaudRate)),<sp/>HSE=0<sp/>ClkDiv=16,<sp/>BaudRate=115,200</highlight><highlight class="normal"></highlight></codeline>
+<codeline lineno="376"><highlight class="normal"><sp/><sp/><sp/><sp/>uint16_t<sp/>fBRD<sp/>=<sp/>44;<sp/></highlight><highlight class="comment">//Fractional<sp/>remainder<sp/>is<sp/>0.6805,<sp/>DIVFRAC<sp/>=<sp/>(.6805)(64)+0.5<sp/>=<sp/>44</highlight><highlight class="normal"></highlight></codeline>
+<codeline lineno="377"><highlight class="normal"></highlight></codeline>
+<codeline lineno="378"><highlight class="normal"><sp/><sp/><sp/><sp/>SYSCTL_RCGCGPIO_R<sp/>|=<sp/>SYSCTL_RCGCGPIO_R2;<sp/></highlight><highlight class="comment">//enable<sp/>GPIO<sp/>Port<sp/>C</highlight><highlight class="normal"></highlight></codeline>
+<codeline lineno="379"><highlight class="normal"></highlight></codeline>
+<codeline lineno="380"><highlight class="normal"><sp/><sp/><sp/><sp/>SYSCTL_RCGCUART_R<sp/>|=<sp/>SYSCTL_RCGCUART_R4;<sp/></highlight><highlight class="comment">//enable<sp/>UART4</highlight><highlight class="normal"></highlight></codeline>
+<codeline lineno="381"><highlight class="normal"></highlight></codeline>
+<codeline lineno="382"><highlight class="normal"><sp/><sp/><sp/><sp/>GPIO_PORTC_AFSEL_R<sp/>|=<sp/>(BIT4<sp/>|<sp/>BIT5);<sp/></highlight><highlight class="comment">//Enable<sp/>alternate<sp/>function<sp/>on<sp/>PC6,PC7</highlight><highlight class="normal"></highlight></codeline>
+<codeline lineno="383"><highlight class="normal"><sp/><sp/><sp/><sp/>GPIO_PORTC_PCTL_R<sp/>|=<sp/>0x00110000;<sp/></highlight><highlight class="comment">//Enable<sp/>function<sp/>1<sp/>(UART<sp/>Rx/Tx)<sp/>on<sp/>PC4,PC5</highlight><highlight class="normal"></highlight></codeline>
+<codeline lineno="384"><highlight class="normal"><sp/><sp/><sp/><sp/>GPIO_PORTC_DEN_R<sp/>|=<sp/>(BIT4<sp/>|<sp/>BIT5);<sp/></highlight><highlight class="comment">//Enable<sp/>PC4,5<sp/>data</highlight><highlight class="normal"></highlight></codeline>
+<codeline lineno="385"><highlight class="normal"><sp/><sp/><sp/><sp/>GPIO_PORTC_DIR_R<sp/>|=<sp/>BIT5;<sp/></highlight><highlight class="comment">//Set<sp/>pin<sp/>direction<sp/>to<sp/>output<sp/>on<sp/>PC5</highlight><highlight class="normal"></highlight></codeline>
+<codeline lineno="386"><highlight class="normal"><sp/><sp/><sp/><sp/>GPIO_PORTC_DIR_R<sp/>&amp;=<sp/>~BIT4;<sp/></highlight><highlight class="comment">//Set<sp/>pin<sp/>direction<sp/>to<sp/>input<sp/>on<sp/>PC4</highlight><highlight class="normal"></highlight></codeline>
+<codeline lineno="387"><highlight class="normal"></highlight></codeline>
+<codeline lineno="388"><highlight class="normal"><sp/><sp/><sp/><sp/>UART4_CTL_R<sp/>&amp;=<sp/>~(UART_CTL_UARTEN);<sp/></highlight><highlight class="comment">//Disable<sp/>UART4<sp/>while<sp/>we<sp/>mess<sp/>with<sp/>it</highlight><highlight class="normal"></highlight></codeline>
 <codeline lineno="389"><highlight class="normal"></highlight></codeline>
-<codeline lineno="390"><highlight class="normal"><sp/><sp/><sp/><sp/>UART4_LCRH_R<sp/>=<sp/>UART_LCRH_WLEN_8;<sp/></highlight><highlight class="comment">//8<sp/>bit,<sp/>1<sp/>stop,<sp/>no<sp/>parity,<sp/>no<sp/>FIFO</highlight><highlight class="normal"></highlight></codeline>
-<codeline lineno="391"><highlight class="normal"><sp/><sp/><sp/><sp/>UART4_CC_R<sp/>=<sp/>UART_CC_CS_SYSCLK;<sp/></highlight><highlight class="comment">//Use<sp/>System<sp/>Clock</highlight><highlight class="normal"></highlight></codeline>
-<codeline lineno="392"><highlight class="normal"><sp/><sp/><sp/><sp/>UART4_CTL_R<sp/>=<sp/>UART_CTL_RXE<sp/>|<sp/>UART_CTL_TXE<sp/>|<sp/>UART_CTL_UARTEN;<sp/></highlight><highlight class="comment">//Enable<sp/>Rx,<sp/>Tx<sp/>and<sp/>UART<sp/>module</highlight><highlight class="normal"></highlight></codeline>
-<codeline lineno="393"><highlight class="normal">}</highlight></codeline>
-<codeline lineno="394"><highlight class="normal"></highlight></codeline>
-<codeline lineno="397"><highlight class="keywordtype">void</highlight><highlight class="normal"><sp/>oi_uartSendChar(</highlight><highlight class="keywordtype">char</highlight><highlight class="normal"><sp/><ref refid="movementcommands_8c_1a91a70b77df95bd8b0830b49a094c2acb" kindref="member">data</ref>)</highlight></codeline>
-<codeline lineno="398"><highlight class="normal">{</highlight></codeline>
-<codeline lineno="399"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">while</highlight><highlight class="normal"><sp/>((UART4_FR_R<sp/>&amp;<sp/>UART_FR_TXFF)<sp/>!=<sp/>0)</highlight></codeline>
-<codeline lineno="400"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>;<sp/></highlight><highlight class="comment">//holds<sp/>until<sp/>no<sp/>data<sp/>in<sp/>transmit<sp/>buffer</highlight><highlight class="normal"></highlight></codeline>
-<codeline lineno="401"><highlight class="normal"></highlight></codeline>
-<codeline lineno="402"><highlight class="normal"><sp/><sp/><sp/><sp/>UART4_DR_R<sp/>=<sp/><ref refid="movementcommands_8c_1a91a70b77df95bd8b0830b49a094c2acb" kindref="member">data</ref>;<sp/></highlight><highlight class="comment">//puts<sp/>data<sp/>in<sp/>transmission<sp/>buffer</highlight><highlight class="normal"></highlight></codeline>
-<codeline lineno="403"><highlight class="normal"></highlight></codeline>
-<codeline lineno="404"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="comment">//For<sp/>debugging</highlight><highlight class="normal"></highlight></codeline>
-<codeline lineno="405"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="comment">//timer_waitMicros(1000);</highlight><highlight class="normal"></highlight></codeline>
-<codeline lineno="406"><highlight class="normal">}</highlight></codeline>
-<codeline lineno="407"><highlight class="normal"></highlight></codeline>
-<codeline lineno="408"><highlight class="normal"></highlight><highlight class="keywordtype">char</highlight><highlight class="normal"><sp/>oi_uartReceive(</highlight><highlight class="keywordtype">void</highlight><highlight class="normal">)</highlight></codeline>
-<codeline lineno="409"><highlight class="normal">{</highlight></codeline>
-<codeline lineno="410"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="keyword">static</highlight><highlight class="normal"><sp/></highlight><highlight class="keywordtype">int</highlight><highlight class="normal"><sp/>count<sp/>=<sp/>0;</highlight></codeline>
-<codeline lineno="411"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="comment">//uint32_t<sp/>tempData;<sp/>//used<sp/>for<sp/>error<sp/>checking</highlight><highlight class="normal"></highlight></codeline>
-<codeline lineno="412"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="keywordtype">char</highlight><highlight class="normal"><sp/><ref refid="movementcommands_8c_1a91a70b77df95bd8b0830b49a094c2acb" kindref="member">data</ref>;</highlight></codeline>
-<codeline lineno="413"><highlight class="normal"></highlight></codeline>
-<codeline lineno="414"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">while</highlight><highlight class="normal"><sp/>((UART4_FR_R<sp/>&amp;<sp/>UART_FR_RXFE))</highlight></codeline>
-<codeline lineno="415"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>;<sp/></highlight><highlight class="comment">//wait<sp/>here<sp/>until<sp/>data<sp/>is<sp/>recieved</highlight><highlight class="normal"></highlight></codeline>
+<codeline lineno="390"><highlight class="normal"><sp/><sp/><sp/><sp/>UART4_IBRD_R<sp/>=<sp/>iBRD;</highlight></codeline>
+<codeline lineno="391"><highlight class="normal"><sp/><sp/><sp/><sp/>UART4_FBRD_R<sp/>=<sp/>fBRD;</highlight></codeline>
+<codeline lineno="392"><highlight class="normal"></highlight></codeline>
+<codeline lineno="393"><highlight class="normal"><sp/><sp/><sp/><sp/>UART4_LCRH_R<sp/>=<sp/>UART_LCRH_WLEN_8;<sp/></highlight><highlight class="comment">//8<sp/>bit,<sp/>1<sp/>stop,<sp/>no<sp/>parity,<sp/>no<sp/>FIFO</highlight><highlight class="normal"></highlight></codeline>
+<codeline lineno="394"><highlight class="normal"><sp/><sp/><sp/><sp/>UART4_CC_R<sp/>=<sp/>UART_CC_CS_SYSCLK;<sp/></highlight><highlight class="comment">//Use<sp/>System<sp/>Clock</highlight><highlight class="normal"></highlight></codeline>
+<codeline lineno="395"><highlight class="normal"><sp/><sp/><sp/><sp/>UART4_CTL_R<sp/>=<sp/>UART_CTL_RXE<sp/>|<sp/>UART_CTL_TXE<sp/>|<sp/>UART_CTL_UARTEN;<sp/></highlight><highlight class="comment">//Enable<sp/>Rx,<sp/>Tx<sp/>and<sp/>UART<sp/>module</highlight><highlight class="normal"></highlight></codeline>
+<codeline lineno="396"><highlight class="normal">}</highlight></codeline>
+<codeline lineno="397"><highlight class="normal"></highlight></codeline>
+<codeline lineno="400" refid="open__interface_8c_1aced7535453b0c0e29af698308d0498d4" refkind="member"><highlight class="keywordtype">void</highlight><highlight class="normal"><sp/><ref refid="open__interface_8c_1aced7535453b0c0e29af698308d0498d4" kindref="member">oi_uartSendChar</ref>(</highlight><highlight class="keywordtype">char</highlight><highlight class="normal"><sp/><ref refid="main_8c_1a91a70b77df95bd8b0830b49a094c2acb" kindref="member">data</ref>)</highlight></codeline>
+<codeline lineno="401"><highlight class="normal">{</highlight></codeline>
+<codeline lineno="402"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">while</highlight><highlight class="normal"><sp/>((UART4_FR_R<sp/>&amp;<sp/>UART_FR_TXFF)<sp/>!=<sp/>0)</highlight></codeline>
+<codeline lineno="403"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>;<sp/></highlight><highlight class="comment">//holds<sp/>until<sp/>no<sp/>data<sp/>in<sp/>transmit<sp/>buffer</highlight><highlight class="normal"></highlight></codeline>
+<codeline lineno="404"><highlight class="normal"></highlight></codeline>
+<codeline lineno="405"><highlight class="normal"><sp/><sp/><sp/><sp/>UART4_DR_R<sp/>=<sp/><ref refid="main_8c_1a91a70b77df95bd8b0830b49a094c2acb" kindref="member">data</ref>;<sp/></highlight><highlight class="comment">//puts<sp/>data<sp/>in<sp/>transmission<sp/>buffer</highlight><highlight class="normal"></highlight></codeline>
+<codeline lineno="406"><highlight class="normal"></highlight></codeline>
+<codeline lineno="407"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="comment">//For<sp/>debugging</highlight><highlight class="normal"></highlight></codeline>
+<codeline lineno="408"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="comment">//timer_waitMicros(1000);</highlight><highlight class="normal"></highlight></codeline>
+<codeline lineno="409"><highlight class="normal">}</highlight></codeline>
+<codeline lineno="410"><highlight class="normal"></highlight></codeline>
+<codeline lineno="411" refid="open__interface_8c_1a5e7e1773c5782c2be5f333f733aab29f" refkind="member"><highlight class="normal"></highlight><highlight class="keywordtype">char</highlight><highlight class="normal"><sp/><ref refid="open__interface_8c_1a5e7e1773c5782c2be5f333f733aab29f" kindref="member">oi_uartReceive</ref>(</highlight><highlight class="keywordtype">void</highlight><highlight class="normal">)</highlight></codeline>
+<codeline lineno="412"><highlight class="normal">{</highlight></codeline>
+<codeline lineno="413"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="keyword">static</highlight><highlight class="normal"><sp/></highlight><highlight class="keywordtype">int</highlight><highlight class="normal"><sp/>count<sp/>=<sp/>0;</highlight></codeline>
+<codeline lineno="414"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="comment">//uint32_t<sp/>tempData;<sp/>//used<sp/>for<sp/>error<sp/>checking</highlight><highlight class="normal"></highlight></codeline>
+<codeline lineno="415"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="keywordtype">char</highlight><highlight class="normal"><sp/><ref refid="main_8c_1a91a70b77df95bd8b0830b49a094c2acb" kindref="member">data</ref>;</highlight></codeline>
 <codeline lineno="416"><highlight class="normal"></highlight></codeline>
-<codeline lineno="417"><highlight class="normal"><sp/><sp/><sp/><sp/><ref refid="movementcommands_8c_1a91a70b77df95bd8b0830b49a094c2acb" kindref="member">data</ref><sp/>=<sp/>(char)<sp/>(UART4_DR_R<sp/>&amp;<sp/>0xFF);</highlight></codeline>
-<codeline lineno="418"><highlight class="normal"></highlight></codeline>
-<codeline lineno="419"><highlight class="normal"><sp/><sp/><sp/><sp/>count++;</highlight></codeline>
-<codeline lineno="420"><highlight class="normal"></highlight></codeline>
-<codeline lineno="421"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="comment">//ToDo:<sp/>Implement<sp/>error<sp/>checking</highlight><highlight class="normal"></highlight></codeline>
-<codeline lineno="422"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">return</highlight><highlight class="normal"><sp/><ref refid="movementcommands_8c_1a91a70b77df95bd8b0830b49a094c2acb" kindref="member">data</ref>;</highlight></codeline>
-<codeline lineno="423"><highlight class="normal">}</highlight></codeline>
-<codeline lineno="424"><highlight class="normal"></highlight></codeline>
-<codeline lineno="426"><highlight class="keywordtype">void</highlight><highlight class="normal"><sp/>oi_uartSendStr(</highlight><highlight class="keyword">const</highlight><highlight class="normal"><sp/></highlight><highlight class="keywordtype">char</highlight><highlight class="normal"><sp/>*theData)</highlight></codeline>
-<codeline lineno="427"><highlight class="normal">{</highlight></codeline>
-<codeline lineno="428"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">while</highlight><highlight class="normal"><sp/>(*theData<sp/>!=<sp/></highlight><highlight class="charliteral">&apos;\0&apos;</highlight><highlight class="normal">)</highlight></codeline>
-<codeline lineno="429"><highlight class="normal"><sp/><sp/><sp/><sp/>{</highlight></codeline>
-<codeline lineno="430"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>oi_uartSendChar(*theData);</highlight></codeline>
-<codeline lineno="431"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>theData++;</highlight></codeline>
-<codeline lineno="432"><highlight class="normal"><sp/><sp/><sp/><sp/>}</highlight></codeline>
-<codeline lineno="433"><highlight class="normal"></highlight></codeline>
-<codeline lineno="434"><highlight class="normal">}</highlight></codeline>
-<codeline lineno="435"><highlight class="normal"></highlight></codeline>
-<codeline lineno="436"><highlight class="normal"></highlight><highlight class="keywordtype">void</highlight><highlight class="normal"><sp/>oi_uartSendBuff(</highlight><highlight class="keyword">const</highlight><highlight class="normal"><sp/>uint8_t<sp/>theData[],<sp/>uint8_t<sp/>theSize)</highlight></codeline>
-<codeline lineno="437"><highlight class="normal">{</highlight></codeline>
-<codeline lineno="438"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="keywordtype">int</highlight><highlight class="normal"><sp/>i;</highlight></codeline>
-<codeline lineno="439"><highlight class="normal"></highlight></codeline>
-<codeline lineno="440"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">for</highlight><highlight class="normal"><sp/>(i<sp/>=<sp/>0;<sp/>i<sp/>&lt;<sp/>theSize;<sp/>i++)</highlight></codeline>
-<codeline lineno="441"><highlight class="normal"><sp/><sp/><sp/><sp/>{</highlight></codeline>
-<codeline lineno="442"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>oi_uartSendChar(theData[i]);</highlight></codeline>
-<codeline lineno="443"><highlight class="normal"><sp/><sp/><sp/><sp/>}</highlight></codeline>
-<codeline lineno="444"><highlight class="normal">}</highlight></codeline>
-<codeline lineno="445"><highlight class="normal"></highlight></codeline>
-<codeline lineno="446"><highlight class="normal"></highlight><highlight class="keywordtype">char</highlight><highlight class="normal">*<sp/>oi_checkFirmware()</highlight></codeline>
-<codeline lineno="447"><highlight class="normal">{</highlight></codeline>
-<codeline lineno="448"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="keyword">const</highlight><highlight class="normal"><sp/></highlight><highlight class="keywordtype">char</highlight><highlight class="normal"><sp/>FIRM_STR[]<sp/>=<sp/></highlight><highlight class="stringliteral">&quot;r3_robot/tags/&quot;</highlight><highlight class="normal">;</highlight></codeline>
-<codeline lineno="449"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="keyword">const</highlight><highlight class="normal"><sp/></highlight><highlight class="keywordtype">char</highlight><highlight class="normal"><sp/>FIRM_END<sp/>=<sp/></highlight><highlight class="charliteral">&apos;:&apos;</highlight><highlight class="normal">;</highlight></codeline>
-<codeline lineno="450"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="keyword">const</highlight><highlight class="normal"><sp/>uint8_t<sp/>FIRM_STRLEN<sp/>=<sp/>14;</highlight></codeline>
-<codeline lineno="451"><highlight class="normal"></highlight></codeline>
-<codeline lineno="452"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="keyword">static</highlight><highlight class="normal"><sp/></highlight><highlight class="keywordtype">char</highlight><highlight class="normal"><sp/>firmware[21];</highlight></codeline>
-<codeline lineno="453"><highlight class="normal"></highlight></codeline>
-<codeline lineno="454"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="keywordtype">char</highlight><highlight class="normal"><sp/><ref refid="uart_8h_1aff2566f4c366b48d73479bef43ee4d2e" kindref="member">buffer</ref>[512];</highlight></codeline>
-<codeline lineno="455"><highlight class="normal"><sp/><sp/><sp/><sp/>uint16_t<sp/>ptr;</highlight></codeline>
+<codeline lineno="417"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">while</highlight><highlight class="normal"><sp/>((UART4_FR_R<sp/>&amp;<sp/>UART_FR_RXFE))</highlight></codeline>
+<codeline lineno="418"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>;<sp/></highlight><highlight class="comment">//wait<sp/>here<sp/>until<sp/>data<sp/>is<sp/>recieved</highlight><highlight class="normal"></highlight></codeline>
+<codeline lineno="419"><highlight class="normal"></highlight></codeline>
+<codeline lineno="420"><highlight class="normal"><sp/><sp/><sp/><sp/><ref refid="main_8c_1a91a70b77df95bd8b0830b49a094c2acb" kindref="member">data</ref><sp/>=<sp/>(char)<sp/>(UART4_DR_R<sp/>&amp;<sp/>0xFF);</highlight></codeline>
+<codeline lineno="421"><highlight class="normal"></highlight></codeline>
+<codeline lineno="422"><highlight class="normal"><sp/><sp/><sp/><sp/>count++;</highlight></codeline>
+<codeline lineno="423"><highlight class="normal"></highlight></codeline>
+<codeline lineno="424"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="comment">//ToDo:<sp/>Implement<sp/>error<sp/>checking</highlight><highlight class="normal"></highlight></codeline>
+<codeline lineno="425"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">return</highlight><highlight class="normal"><sp/><ref refid="main_8c_1a91a70b77df95bd8b0830b49a094c2acb" kindref="member">data</ref>;</highlight></codeline>
+<codeline lineno="426"><highlight class="normal">}</highlight></codeline>
+<codeline lineno="427"><highlight class="normal"></highlight></codeline>
+<codeline lineno="429" refid="open__interface_8c_1a5eb8e6923f80c6f02cccbb79535cfa7f" refkind="member"><highlight class="keywordtype">void</highlight><highlight class="normal"><sp/><ref refid="open__interface_8c_1a5eb8e6923f80c6f02cccbb79535cfa7f" kindref="member">oi_uartSendStr</ref>(</highlight><highlight class="keyword">const</highlight><highlight class="normal"><sp/></highlight><highlight class="keywordtype">char</highlight><highlight class="normal"><sp/>*theData)</highlight></codeline>
+<codeline lineno="430"><highlight class="normal">{</highlight></codeline>
+<codeline lineno="431"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">while</highlight><highlight class="normal"><sp/>(*theData<sp/>!=<sp/></highlight><highlight class="charliteral">&apos;\0&apos;</highlight><highlight class="normal">)</highlight></codeline>
+<codeline lineno="432"><highlight class="normal"><sp/><sp/><sp/><sp/>{</highlight></codeline>
+<codeline lineno="433"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><ref refid="open__interface_8c_1aced7535453b0c0e29af698308d0498d4" kindref="member">oi_uartSendChar</ref>(*theData);</highlight></codeline>
+<codeline lineno="434"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>theData++;</highlight></codeline>
+<codeline lineno="435"><highlight class="normal"><sp/><sp/><sp/><sp/>}</highlight></codeline>
+<codeline lineno="436"><highlight class="normal"></highlight></codeline>
+<codeline lineno="437"><highlight class="normal">}</highlight></codeline>
+<codeline lineno="438"><highlight class="normal"></highlight></codeline>
+<codeline lineno="439" refid="open__interface_8c_1afcbad4c0a94458d1ba7ff11dac9ff42b" refkind="member"><highlight class="normal"></highlight><highlight class="keywordtype">void</highlight><highlight class="normal"><sp/><ref refid="open__interface_8c_1afcbad4c0a94458d1ba7ff11dac9ff42b" kindref="member">oi_uartSendBuff</ref>(</highlight><highlight class="keyword">const</highlight><highlight class="normal"><sp/>uint8_t<sp/>theData[],<sp/>uint8_t<sp/>theSize)</highlight></codeline>
+<codeline lineno="440"><highlight class="normal">{</highlight></codeline>
+<codeline lineno="441"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="keywordtype">int</highlight><highlight class="normal"><sp/>i;</highlight></codeline>
+<codeline lineno="442"><highlight class="normal"></highlight></codeline>
+<codeline lineno="443"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">for</highlight><highlight class="normal"><sp/>(i<sp/>=<sp/>0;<sp/>i<sp/>&lt;<sp/>theSize;<sp/>i++)</highlight></codeline>
+<codeline lineno="444"><highlight class="normal"><sp/><sp/><sp/><sp/>{</highlight></codeline>
+<codeline lineno="445"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><ref refid="open__interface_8c_1aced7535453b0c0e29af698308d0498d4" kindref="member">oi_uartSendChar</ref>(theData[i]);</highlight></codeline>
+<codeline lineno="446"><highlight class="normal"><sp/><sp/><sp/><sp/>}</highlight></codeline>
+<codeline lineno="447"><highlight class="normal">}</highlight></codeline>
+<codeline lineno="448"><highlight class="normal"></highlight></codeline>
+<codeline lineno="449"><highlight class="normal"></highlight><highlight class="keywordtype">char</highlight><highlight class="normal">*<sp/>oi_checkFirmware()</highlight></codeline>
+<codeline lineno="450"><highlight class="normal">{</highlight></codeline>
+<codeline lineno="451"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="keyword">const</highlight><highlight class="normal"><sp/></highlight><highlight class="keywordtype">char</highlight><highlight class="normal"><sp/>FIRM_STR[]<sp/>=<sp/></highlight><highlight class="stringliteral">&quot;r3_robot/tags/&quot;</highlight><highlight class="normal">;</highlight></codeline>
+<codeline lineno="452"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="keyword">const</highlight><highlight class="normal"><sp/></highlight><highlight class="keywordtype">char</highlight><highlight class="normal"><sp/>FIRM_END<sp/>=<sp/></highlight><highlight class="charliteral">&apos;:&apos;</highlight><highlight class="normal">;</highlight></codeline>
+<codeline lineno="453"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="keyword">const</highlight><highlight class="normal"><sp/>uint8_t<sp/>FIRM_STRLEN<sp/>=<sp/>14;</highlight></codeline>
+<codeline lineno="454"><highlight class="normal"></highlight></codeline>
+<codeline lineno="455"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="keyword">static</highlight><highlight class="normal"><sp/></highlight><highlight class="keywordtype">char</highlight><highlight class="normal"><sp/>firmware[21];</highlight></codeline>
 <codeline lineno="456"><highlight class="normal"></highlight></codeline>
-<codeline lineno="457"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="comment">//Reset<sp/>the<sp/>iRobot</highlight><highlight class="normal"></highlight></codeline>
-<codeline lineno="458"><highlight class="normal"><sp/><sp/><sp/><sp/>oi_uartSendChar(OI_OPCODE_RESET);</highlight></codeline>
+<codeline lineno="457"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="keywordtype">char</highlight><highlight class="normal"><sp/><ref refid="uart_8h_1aff2566f4c366b48d73479bef43ee4d2e" kindref="member">buffer</ref>[512];</highlight></codeline>
+<codeline lineno="458"><highlight class="normal"><sp/><sp/><sp/><sp/>uint16_t<sp/>ptr;</highlight></codeline>
 <codeline lineno="459"><highlight class="normal"></highlight></codeline>
-<codeline lineno="460"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="keywordtype">char</highlight><highlight class="normal"><sp/>c;</highlight></codeline>
-<codeline lineno="461"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">while</highlight><highlight class="normal"><sp/>((c<sp/>=<sp/>oi_uartReceive())<sp/>||<sp/>1)</highlight></codeline>
-<codeline lineno="462"><highlight class="normal"><sp/><sp/><sp/><sp/>{</highlight></codeline>
-<codeline lineno="463"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><ref refid="uart_8h_1aff2566f4c366b48d73479bef43ee4d2e" kindref="member">buffer</ref>[ptr++]<sp/>=<sp/>c;</highlight></codeline>
-<codeline lineno="464"><highlight class="normal"></highlight></codeline>
-<codeline lineno="465"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="comment">//Do<sp/>a<sp/>string<sp/>compare</highlight><highlight class="normal"></highlight></codeline>
-<codeline lineno="466"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><ref refid="uart_8h_1aff2566f4c366b48d73479bef43ee4d2e" kindref="member">buffer</ref>[ptr]<sp/>=<sp/></highlight><highlight class="charliteral">&apos;\0&apos;</highlight><highlight class="normal">;</highlight></codeline>
-<codeline lineno="467"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">if</highlight><highlight class="normal"><sp/>(ptr<sp/>&gt;=<sp/>FIRM_STRLEN<sp/>&amp;&amp;<sp/>!strcmp(<ref refid="uart_8h_1aff2566f4c366b48d73479bef43ee4d2e" kindref="member">buffer</ref><sp/>+<sp/>ptr<sp/>-<sp/>FIRM_STRLEN,<sp/>FIRM_STR))</highlight></codeline>
-<codeline lineno="468"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>{</highlight></codeline>
-<codeline lineno="469"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>ptr<sp/>=<sp/>0;</highlight></codeline>
-<codeline lineno="470"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="comment">//Firmware<sp/>version<sp/>incoming</highlight><highlight class="normal"></highlight></codeline>
-<codeline lineno="471"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">while</highlight><highlight class="normal"><sp/>((c<sp/>=<sp/>oi_uartReceive())<sp/>!=<sp/>FIRM_END)</highlight></codeline>
-<codeline lineno="472"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>{</highlight></codeline>
-<codeline lineno="473"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>firmware[ptr++]<sp/>=<sp/>c;</highlight></codeline>
-<codeline lineno="474"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>}</highlight></codeline>
-<codeline lineno="475"><highlight class="normal"></highlight></codeline>
-<codeline lineno="476"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">break</highlight><highlight class="normal">;</highlight></codeline>
-<codeline lineno="477"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>}</highlight></codeline>
-<codeline lineno="478"><highlight class="normal"><sp/><sp/><sp/><sp/>}</highlight></codeline>
-<codeline lineno="479"><highlight class="normal"></highlight></codeline>
-<codeline lineno="480"><highlight class="normal"><sp/><sp/><sp/><sp/>firmware[ptr]<sp/>=<sp/></highlight><highlight class="charliteral">&apos;\0&apos;</highlight><highlight class="normal">;</highlight></codeline>
-<codeline lineno="481"><highlight class="normal"></highlight></codeline>
-<codeline lineno="482"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">return</highlight><highlight class="normal"><sp/>firmware;</highlight></codeline>
-<codeline lineno="483"><highlight class="normal">}</highlight></codeline>
+<codeline lineno="460"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="comment">//Reset<sp/>the<sp/>iRobot</highlight><highlight class="normal"></highlight></codeline>
+<codeline lineno="461"><highlight class="normal"><sp/><sp/><sp/><sp/><ref refid="open__interface_8c_1aced7535453b0c0e29af698308d0498d4" kindref="member">oi_uartSendChar</ref>(OI_OPCODE_RESET);</highlight></codeline>
+<codeline lineno="462"><highlight class="normal"></highlight></codeline>
+<codeline lineno="463"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="keywordtype">char</highlight><highlight class="normal"><sp/>c;</highlight></codeline>
+<codeline lineno="464"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">while</highlight><highlight class="normal"><sp/>((c<sp/>=<sp/><ref refid="open__interface_8c_1a5e7e1773c5782c2be5f333f733aab29f" kindref="member">oi_uartReceive</ref>())<sp/>||<sp/>1)</highlight></codeline>
+<codeline lineno="465"><highlight class="normal"><sp/><sp/><sp/><sp/>{</highlight></codeline>
+<codeline lineno="466"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><ref refid="uart_8h_1aff2566f4c366b48d73479bef43ee4d2e" kindref="member">buffer</ref>[ptr++]<sp/>=<sp/>c;</highlight></codeline>
+<codeline lineno="467"><highlight class="normal"></highlight></codeline>
+<codeline lineno="468"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="comment">//Do<sp/>a<sp/>string<sp/>compare</highlight><highlight class="normal"></highlight></codeline>
+<codeline lineno="469"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><ref refid="uart_8h_1aff2566f4c366b48d73479bef43ee4d2e" kindref="member">buffer</ref>[ptr]<sp/>=<sp/></highlight><highlight class="charliteral">&apos;\0&apos;</highlight><highlight class="normal">;</highlight></codeline>
+<codeline lineno="470"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">if</highlight><highlight class="normal"><sp/>(ptr<sp/>&gt;=<sp/>FIRM_STRLEN<sp/>&amp;&amp;<sp/>!strcmp(<ref refid="uart_8h_1aff2566f4c366b48d73479bef43ee4d2e" kindref="member">buffer</ref><sp/>+<sp/>ptr<sp/>-<sp/>FIRM_STRLEN,<sp/>FIRM_STR))</highlight></codeline>
+<codeline lineno="471"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>{</highlight></codeline>
+<codeline lineno="472"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>ptr<sp/>=<sp/>0;</highlight></codeline>
+<codeline lineno="473"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="comment">//Firmware<sp/>version<sp/>incoming</highlight><highlight class="normal"></highlight></codeline>
+<codeline lineno="474"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">while</highlight><highlight class="normal"><sp/>((c<sp/>=<sp/><ref refid="open__interface_8c_1a5e7e1773c5782c2be5f333f733aab29f" kindref="member">oi_uartReceive</ref>())<sp/>!=<sp/>FIRM_END)</highlight></codeline>
+<codeline lineno="475"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>{</highlight></codeline>
+<codeline lineno="476"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>firmware[ptr++]<sp/>=<sp/>c;</highlight></codeline>
+<codeline lineno="477"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>}</highlight></codeline>
+<codeline lineno="478"><highlight class="normal"></highlight></codeline>
+<codeline lineno="479"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">break</highlight><highlight class="normal">;</highlight></codeline>
+<codeline lineno="480"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>}</highlight></codeline>
+<codeline lineno="481"><highlight class="normal"><sp/><sp/><sp/><sp/>}</highlight></codeline>
+<codeline lineno="482"><highlight class="normal"></highlight></codeline>
+<codeline lineno="483"><highlight class="normal"><sp/><sp/><sp/><sp/>firmware[ptr]<sp/>=<sp/></highlight><highlight class="charliteral">&apos;\0&apos;</highlight><highlight class="normal">;</highlight></codeline>
 <codeline lineno="484"><highlight class="normal"></highlight></codeline>
-<codeline lineno="486"><highlight class="keywordtype">void</highlight><highlight class="normal"><sp/>oi_shutoff_init(</highlight><highlight class="keywordtype">void</highlight><highlight class="normal">)</highlight></codeline>
-<codeline lineno="487"><highlight class="normal">{</highlight></codeline>
-<codeline lineno="488"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="comment">//PF0<sp/>user<sp/>switch<sp/>-<sp/>OI<sp/>shut<sp/>down</highlight><highlight class="normal"></highlight></codeline>
-<codeline lineno="489"><highlight class="normal"><sp/><sp/><sp/><sp/>SYSCTL_RCGCGPIO_R<sp/>|=<sp/>SYSCTL_RCGCGPIO_R5;<sp/></highlight><highlight class="comment">//enable<sp/>clock<sp/>to<sp/>GPIO<sp/>F</highlight><highlight class="normal"></highlight></codeline>
-<codeline lineno="490"><highlight class="normal"><sp/><sp/><sp/><sp/>GPIO_PORTF_LOCK_R<sp/>=<sp/>0x4C4F434B;<sp/></highlight><highlight class="comment">//unlock<sp/>PF0</highlight><highlight class="normal"></highlight></codeline>
-<codeline lineno="491"><highlight class="normal"><sp/><sp/><sp/><sp/>GPIO_PORTF_CR_R<sp/>|=<sp/>0x01;<sp/></highlight><highlight class="comment">//allow<sp/>writes<sp/>PF0<sp/>DEN<sp/>to<sp/>be<sp/>commited</highlight><highlight class="normal"></highlight></codeline>
-<codeline lineno="492"><highlight class="normal"><sp/><sp/><sp/><sp/>GPIO_PORTF_DEN_R<sp/>|=<sp/>BIT0;<sp/></highlight><highlight class="comment">//enable<sp/>digital<sp/>on<sp/>pin<sp/>0</highlight><highlight class="normal"></highlight></codeline>
-<codeline lineno="493"><highlight class="normal"><sp/><sp/><sp/><sp/>GPIO_PORTF_DIR_R<sp/>|=<sp/>~BIT0;<sp/></highlight><highlight class="comment">//set<sp/>pin<sp/>0<sp/>to<sp/>input</highlight><highlight class="normal"></highlight></codeline>
-<codeline lineno="494"><highlight class="normal"><sp/><sp/><sp/><sp/>GPIO_PORTF_IBE_R<sp/>|=<sp/>BIT0;<sp/></highlight><highlight class="comment">//both<sp/>edges<sp/>can<sp/>trigger</highlight><highlight class="normal"></highlight></codeline>
-<codeline lineno="495"><highlight class="normal"><sp/><sp/><sp/><sp/>GPIO_PORTF_IEV_R<sp/>|=<sp/>BIT0;<sp/></highlight><highlight class="comment">//enable<sp/>rising<sp/>edge<sp/>trigger</highlight><highlight class="normal"></highlight></codeline>
-<codeline lineno="496"><highlight class="normal"><sp/><sp/><sp/><sp/>GPIO_PORTF_ICR_R<sp/>|=<sp/>BIT0;<sp/></highlight><highlight class="comment">//clear<sp/>interrupt<sp/>if<sp/>there<sp/>is<sp/>already<sp/>one</highlight><highlight class="normal"></highlight></codeline>
-<codeline lineno="497"><highlight class="normal"><sp/><sp/><sp/><sp/>GPIO_PORTF_IM_R<sp/>|=<sp/>BIT0;<sp/></highlight><highlight class="comment">//unmask<sp/>interrupt</highlight><highlight class="normal"></highlight></codeline>
-<codeline lineno="498"><highlight class="normal"></highlight></codeline>
-<codeline lineno="499"><highlight class="normal"><sp/><sp/><sp/><sp/>NVIC_EN0_R<sp/>|=<sp/>0x40000000;<sp/></highlight><highlight class="comment">//enable<sp/>IRQ<sp/>by<sp/>setting<sp/>bit<sp/>30</highlight><highlight class="normal"></highlight></codeline>
-<codeline lineno="500"><highlight class="normal"><sp/><sp/><sp/><sp/>IntRegister(INT_GPIOF,<sp/>GPIOF_Handler);<sp/></highlight><highlight class="comment">//tell<sp/>cpu<sp/>to<sp/>use<sp/>ISR<sp/>handler<sp/>for<sp/>GPIOF</highlight><highlight class="normal"></highlight></codeline>
-<codeline lineno="501"><highlight class="normal"><sp/><sp/><sp/><sp/>IntMasterEnable();<sp/></highlight><highlight class="comment">//enable<sp/>global<sp/>interrupts</highlight><highlight class="normal"></highlight></codeline>
-<codeline lineno="502"><highlight class="normal">}</highlight></codeline>
-<codeline lineno="503"><highlight class="normal"></highlight></codeline>
-<codeline lineno="504"><highlight class="normal"></highlight><highlight class="keywordtype">void</highlight><highlight class="normal"><sp/>GPIOF_Handler(</highlight><highlight class="keywordtype">void</highlight><highlight class="normal">)</highlight></codeline>
-<codeline lineno="505"><highlight class="normal">{</highlight></codeline>
-<codeline lineno="506"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">if</highlight><highlight class="normal"><sp/>(GPIO_PORTF_RIS_R<sp/>&amp;<sp/>BIT0)</highlight></codeline>
-<codeline lineno="507"><highlight class="normal"><sp/><sp/><sp/><sp/>{</highlight></codeline>
-<codeline lineno="508"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="comment">//shutoff<sp/>button<sp/>was<sp/>pressed,<sp/>turn<sp/>off<sp/>OI</highlight><highlight class="normal"></highlight></codeline>
-<codeline lineno="509"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>oi_close();</highlight></codeline>
-<codeline lineno="510"><highlight class="normal"></highlight></codeline>
-<codeline lineno="511"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>GPIO_PORTF_ICR_R<sp/>|=<sp/>BIT0;<sp/></highlight><highlight class="comment">//clear<sp/>interrupt</highlight><highlight class="normal"></highlight></codeline>
-<codeline lineno="512"><highlight class="normal"><sp/><sp/><sp/><sp/>}</highlight></codeline>
-<codeline lineno="513"><highlight class="normal">}</highlight></codeline>
-<codeline lineno="514"><highlight class="normal"></highlight></codeline>
-<codeline lineno="519"><highlight class="keywordtype">float</highlight><highlight class="normal"><sp/>getDegrees(<ref refid="structoi__t" kindref="compound">oi_t</ref><sp/>*</highlight><highlight class="keyword">self</highlight><highlight class="normal">)</highlight></codeline>
-<codeline lineno="520"><highlight class="normal">{</highlight></codeline>
-<codeline lineno="521"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="keyword">static</highlight><highlight class="normal"><sp/></highlight><highlight class="keywordtype">int</highlight><highlight class="normal"><sp/>iterations<sp/>=<sp/>0;</highlight></codeline>
-<codeline lineno="522"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="keyword">static</highlight><highlight class="normal"><sp/></highlight><highlight class="keywordtype">int</highlight><highlight class="normal"><sp/>prevLeft<sp/>=<sp/>0;</highlight></codeline>
-<codeline lineno="523"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="keyword">static</highlight><highlight class="normal"><sp/></highlight><highlight class="keywordtype">int</highlight><highlight class="normal"><sp/>prevRight<sp/>=<sp/>0;</highlight></codeline>
-<codeline lineno="524"><highlight class="normal"></highlight></codeline>
-<codeline lineno="525"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="comment">//if(self-&gt;leftEncoderCount<sp/>==<sp/>0<sp/>||<sp/>self-&gt;rightEncoderCount<sp/>==<sp/>0){<sp/><sp/>//<sp/>update<sp/>was<sp/>called<sp/>with<sp/>no<sp/>movement<sp/>of<sp/>the<sp/>bot</highlight><highlight class="normal"></highlight></codeline>
-<codeline lineno="526"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="comment">//<sp/><sp/>return<sp/>0;</highlight><highlight class="normal"></highlight></codeline>
-<codeline lineno="527"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="comment">//}</highlight><highlight class="normal"></highlight></codeline>
-<codeline lineno="528"><highlight class="normal"></highlight></codeline>
-<codeline lineno="529"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">if</highlight><highlight class="normal"><sp/>((self-&gt;leftEncoderCount<sp/>==<sp/>prevLeft)</highlight></codeline>
-<codeline lineno="530"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>&amp;&amp;<sp/>(self-&gt;rightEncoderCount<sp/>==<sp/>prevRight))</highlight></codeline>
-<codeline lineno="531"><highlight class="normal"><sp/><sp/><sp/><sp/>{<sp/></highlight><highlight class="comment">//<sp/>if<sp/>the<sp/>bot<sp/>has<sp/>not<sp/>moved<sp/>since<sp/>previous<sp/>update</highlight><highlight class="normal"></highlight></codeline>
-<codeline lineno="532"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>prevLeft<sp/>=<sp/></highlight><highlight class="keyword">self</highlight><highlight class="normal">-&gt;leftEncoderCount;</highlight></codeline>
-<codeline lineno="533"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>prevRight<sp/>=<sp/></highlight><highlight class="keyword">self</highlight><highlight class="normal">-&gt;rightEncoderCount;</highlight></codeline>
-<codeline lineno="534"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">return</highlight><highlight class="normal"><sp/>0;</highlight></codeline>
-<codeline lineno="535"><highlight class="normal"><sp/><sp/><sp/><sp/>}</highlight></codeline>
-<codeline lineno="536"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="comment">//ignore<sp/>the<sp/>first<sp/>run,<sp/>such<sp/>that<sp/>we<sp/>do<sp/>not<sp/>have<sp/>prevLeft<sp/>or<sp/>right=0,<sp/>this<sp/>would<sp/>give<sp/>a<sp/>very<sp/>large<sp/>degree<sp/>moved.</highlight><highlight class="normal"></highlight></codeline>
-<codeline lineno="537"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">else</highlight><highlight class="normal"><sp/></highlight><highlight class="keywordflow">if</highlight><highlight class="normal"><sp/>(iterations<sp/>==<sp/>0)</highlight></codeline>
-<codeline lineno="538"><highlight class="normal"><sp/><sp/><sp/><sp/>{</highlight></codeline>
-<codeline lineno="539"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>prevLeft<sp/>=<sp/></highlight><highlight class="keyword">self</highlight><highlight class="normal">-&gt;leftEncoderCount;</highlight></codeline>
-<codeline lineno="540"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>prevRight<sp/>=<sp/></highlight><highlight class="keyword">self</highlight><highlight class="normal">-&gt;rightEncoderCount;</highlight></codeline>
-<codeline lineno="541"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>iterations++;</highlight></codeline>
-<codeline lineno="542"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">return</highlight><highlight class="normal"><sp/>0;</highlight></codeline>
-<codeline lineno="543"><highlight class="normal"><sp/><sp/><sp/><sp/>}</highlight></codeline>
-<codeline lineno="544"><highlight class="normal"></highlight></codeline>
-<codeline lineno="545"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="comment">//get<sp/>distance<sp/>moved<sp/>in<sp/>mm<sp/>for<sp/>the<sp/>left<sp/>and<sp/>right<sp/>wheel</highlight><highlight class="normal"></highlight></codeline>
-<codeline lineno="546"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="comment">//<sp/>equation:<sp/>ticks<sp/>*<sp/>(1/508)*72pi</highlight><highlight class="normal"></highlight></codeline>
-<codeline lineno="547"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="comment">//update<sp/>the<sp/>previous<sp/>values<sp/>to<sp/>be<sp/>correct</highlight><highlight class="normal"></highlight></codeline>
-<codeline lineno="548"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="keywordtype">int</highlight><highlight class="normal"><sp/>distLeft<sp/>=<sp/>(</highlight><highlight class="keyword">self</highlight><highlight class="normal">-&gt;leftEncoderCount<sp/>-<sp/>prevLeft)<sp/>*<sp/>(0.445265);</highlight></codeline>
-<codeline lineno="549"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="keywordtype">int</highlight><highlight class="normal"><sp/>distRight<sp/>=<sp/>(</highlight><highlight class="keyword">self</highlight><highlight class="normal">-&gt;rightEncoderCount<sp/>-<sp/>prevRight)<sp/>*<sp/>(0.445265);</highlight></codeline>
-<codeline lineno="550"><highlight class="normal"><sp/><sp/><sp/><sp/>prevLeft<sp/>=<sp/></highlight><highlight class="keyword">self</highlight><highlight class="normal">-&gt;leftEncoderCount;</highlight></codeline>
-<codeline lineno="551"><highlight class="normal"><sp/><sp/><sp/><sp/>prevRight<sp/>=<sp/></highlight><highlight class="keyword">self</highlight><highlight class="normal">-&gt;rightEncoderCount;</highlight></codeline>
-<codeline lineno="552"><highlight class="normal"></highlight></codeline>
-<codeline lineno="553"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="comment">//calculate<sp/>the<sp/>degree<sp/>travelled<sp/>by<sp/>(right-left)/wheel<sp/>base<sp/>in<sp/>mm</highlight><highlight class="normal"></highlight></codeline>
-<codeline lineno="554"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="keywordtype">float</highlight><highlight class="normal"><sp/>deg<sp/>=<sp/>.82<sp/>*<sp/>(distRight<sp/>-<sp/>distLeft)<sp/>/<sp/>178.5;</highlight><highlight class="comment">//change<sp/>178.5<sp/>to<sp/>improve<sp/>accuracy<sp/>of<sp/>turning<sp/>if<sp/>needed</highlight><highlight class="normal"></highlight></codeline>
-<codeline lineno="555"><highlight class="normal"><sp/><sp/><sp/><sp/>deg<sp/>=<sp/>(deg<sp/>*<sp/>180)<sp/>/<sp/>M_PI;</highlight></codeline>
-<codeline lineno="556"><highlight class="normal"></highlight></codeline>
-<codeline lineno="557"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">return</highlight><highlight class="normal"><sp/>(deg);</highlight></codeline>
-<codeline lineno="558"><highlight class="normal"></highlight></codeline>
-<codeline lineno="559"><highlight class="normal">}</highlight></codeline>
-<codeline lineno="560"><highlight class="normal"></highlight></codeline>
+<codeline lineno="485"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">return</highlight><highlight class="normal"><sp/>firmware;</highlight></codeline>
+<codeline lineno="486"><highlight class="normal">}</highlight></codeline>
+<codeline lineno="487"><highlight class="normal"></highlight></codeline>
+<codeline lineno="489" refid="open__interface_8h_1a1bca24fa8dd6fb148a6ec99ffbe2f29d" refkind="member"><highlight class="keywordtype">void</highlight><highlight class="normal"><sp/><ref refid="open__interface_8c_1a1bca24fa8dd6fb148a6ec99ffbe2f29d" kindref="member">oi_shutoff_init</ref>(</highlight><highlight class="keywordtype">void</highlight><highlight class="normal">)</highlight></codeline>
+<codeline lineno="490"><highlight class="normal">{</highlight></codeline>
+<codeline lineno="491"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="comment">//PF0<sp/>user<sp/>switch<sp/>-<sp/>OI<sp/>shut<sp/>down</highlight><highlight class="normal"></highlight></codeline>
+<codeline lineno="492"><highlight class="normal"><sp/><sp/><sp/><sp/>SYSCTL_RCGCGPIO_R<sp/>|=<sp/>SYSCTL_RCGCGPIO_R5;<sp/></highlight><highlight class="comment">//enable<sp/>clock<sp/>to<sp/>GPIO<sp/>F</highlight><highlight class="normal"></highlight></codeline>
+<codeline lineno="493"><highlight class="normal"><sp/><sp/><sp/><sp/>GPIO_PORTF_LOCK_R<sp/>=<sp/>0x4C4F434B;<sp/></highlight><highlight class="comment">//unlock<sp/>PF0</highlight><highlight class="normal"></highlight></codeline>
+<codeline lineno="494"><highlight class="normal"><sp/><sp/><sp/><sp/>GPIO_PORTF_CR_R<sp/>|=<sp/>0x01;<sp/></highlight><highlight class="comment">//allow<sp/>writes<sp/>PF0<sp/>DEN<sp/>to<sp/>be<sp/>commited</highlight><highlight class="normal"></highlight></codeline>
+<codeline lineno="495"><highlight class="normal"><sp/><sp/><sp/><sp/>GPIO_PORTF_DEN_R<sp/>|=<sp/>BIT0;<sp/></highlight><highlight class="comment">//enable<sp/>digital<sp/>on<sp/>pin<sp/>0</highlight><highlight class="normal"></highlight></codeline>
+<codeline lineno="496"><highlight class="normal"><sp/><sp/><sp/><sp/>GPIO_PORTF_DIR_R<sp/>|=<sp/>~BIT0;<sp/></highlight><highlight class="comment">//set<sp/>pin<sp/>0<sp/>to<sp/>input</highlight><highlight class="normal"></highlight></codeline>
+<codeline lineno="497"><highlight class="normal"><sp/><sp/><sp/><sp/>GPIO_PORTF_IBE_R<sp/>|=<sp/>BIT0;<sp/></highlight><highlight class="comment">//both<sp/>edges<sp/>can<sp/>trigger</highlight><highlight class="normal"></highlight></codeline>
+<codeline lineno="498"><highlight class="normal"><sp/><sp/><sp/><sp/>GPIO_PORTF_IEV_R<sp/>|=<sp/>BIT0;<sp/></highlight><highlight class="comment">//enable<sp/>rising<sp/>edge<sp/>trigger</highlight><highlight class="normal"></highlight></codeline>
+<codeline lineno="499"><highlight class="normal"><sp/><sp/><sp/><sp/>GPIO_PORTF_ICR_R<sp/>|=<sp/>BIT0;<sp/></highlight><highlight class="comment">//clear<sp/>interrupt<sp/>if<sp/>there<sp/>is<sp/>already<sp/>one</highlight><highlight class="normal"></highlight></codeline>
+<codeline lineno="500"><highlight class="normal"><sp/><sp/><sp/><sp/>GPIO_PORTF_IM_R<sp/>|=<sp/>BIT0;<sp/></highlight><highlight class="comment">//unmask<sp/>interrupt</highlight><highlight class="normal"></highlight></codeline>
+<codeline lineno="501"><highlight class="normal"></highlight></codeline>
+<codeline lineno="502"><highlight class="normal"><sp/><sp/><sp/><sp/>NVIC_EN0_R<sp/>|=<sp/>0x40000000;<sp/></highlight><highlight class="comment">//enable<sp/>IRQ<sp/>by<sp/>setting<sp/>bit<sp/>30</highlight><highlight class="normal"></highlight></codeline>
+<codeline lineno="503"><highlight class="normal"><sp/><sp/><sp/><sp/>IntRegister(INT_GPIOF,<sp/>GPIOF_Handler);<sp/></highlight><highlight class="comment">//tell<sp/>cpu<sp/>to<sp/>use<sp/>ISR<sp/>handler<sp/>for<sp/>GPIOF</highlight><highlight class="normal"></highlight></codeline>
+<codeline lineno="504"><highlight class="normal"><sp/><sp/><sp/><sp/>IntMasterEnable();<sp/></highlight><highlight class="comment">//enable<sp/>global<sp/>interrupts</highlight><highlight class="normal"></highlight></codeline>
+<codeline lineno="505"><highlight class="normal">}</highlight></codeline>
+<codeline lineno="506"><highlight class="normal"></highlight></codeline>
+<codeline lineno="507"><highlight class="normal"></highlight><highlight class="keywordtype">void</highlight><highlight class="normal"><sp/>GPIOF_Handler(</highlight><highlight class="keywordtype">void</highlight><highlight class="normal">)</highlight></codeline>
+<codeline lineno="508"><highlight class="normal">{</highlight></codeline>
+<codeline lineno="509"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">if</highlight><highlight class="normal"><sp/>(GPIO_PORTF_RIS_R<sp/>&amp;<sp/>BIT0)</highlight></codeline>
+<codeline lineno="510"><highlight class="normal"><sp/><sp/><sp/><sp/>{</highlight></codeline>
+<codeline lineno="511"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="comment">//shutoff<sp/>button<sp/>was<sp/>pressed,<sp/>turn<sp/>off<sp/>OI</highlight><highlight class="normal"></highlight></codeline>
+<codeline lineno="512"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>oi_close();</highlight></codeline>
+<codeline lineno="513"><highlight class="normal"></highlight></codeline>
+<codeline lineno="514"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>GPIO_PORTF_ICR_R<sp/>|=<sp/>BIT0;<sp/></highlight><highlight class="comment">//clear<sp/>interrupt</highlight><highlight class="normal"></highlight></codeline>
+<codeline lineno="515"><highlight class="normal"><sp/><sp/><sp/><sp/>}</highlight></codeline>
+<codeline lineno="516"><highlight class="normal">}</highlight></codeline>
+<codeline lineno="517"><highlight class="normal"></highlight></codeline>
+<codeline lineno="522" refid="open__interface_8h_1a22afee5afdd7d60bc1bd9d58a428e4b7" refkind="member"><highlight class="keywordtype">float</highlight><highlight class="normal"><sp/><ref refid="open__interface_8c_1a22afee5afdd7d60bc1bd9d58a428e4b7" kindref="member">getDegrees</ref>(<ref refid="structoi__t" kindref="compound">oi_t</ref><sp/>*</highlight><highlight class="keyword">self</highlight><highlight class="normal">)</highlight></codeline>
+<codeline lineno="523"><highlight class="normal">{</highlight></codeline>
+<codeline lineno="524"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="keyword">static</highlight><highlight class="normal"><sp/></highlight><highlight class="keywordtype">int</highlight><highlight class="normal"><sp/>iterations<sp/>=<sp/>0;</highlight></codeline>
+<codeline lineno="525"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="keyword">static</highlight><highlight class="normal"><sp/></highlight><highlight class="keywordtype">int</highlight><highlight class="normal"><sp/>prevLeft<sp/>=<sp/>0;</highlight></codeline>
+<codeline lineno="526"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="keyword">static</highlight><highlight class="normal"><sp/></highlight><highlight class="keywordtype">int</highlight><highlight class="normal"><sp/>prevRight<sp/>=<sp/>0;</highlight></codeline>
+<codeline lineno="527"><highlight class="normal"></highlight></codeline>
+<codeline lineno="528"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="comment">//if(self-&gt;leftEncoderCount<sp/>==<sp/>0<sp/>||<sp/>self-&gt;rightEncoderCount<sp/>==<sp/>0){<sp/><sp/>//<sp/>update<sp/>was<sp/>called<sp/>with<sp/>no<sp/>movement<sp/>of<sp/>the<sp/>bot</highlight><highlight class="normal"></highlight></codeline>
+<codeline lineno="529"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="comment">//<sp/><sp/>return<sp/>0;</highlight><highlight class="normal"></highlight></codeline>
+<codeline lineno="530"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="comment">//}</highlight><highlight class="normal"></highlight></codeline>
+<codeline lineno="531"><highlight class="normal"></highlight></codeline>
+<codeline lineno="532"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">if</highlight><highlight class="normal"><sp/>((self-&gt;leftEncoderCount<sp/>==<sp/>prevLeft)</highlight></codeline>
+<codeline lineno="533"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>&amp;&amp;<sp/>(self-&gt;rightEncoderCount<sp/>==<sp/>prevRight))</highlight></codeline>
+<codeline lineno="534"><highlight class="normal"><sp/><sp/><sp/><sp/>{<sp/></highlight><highlight class="comment">//<sp/>if<sp/>the<sp/>bot<sp/>has<sp/>not<sp/>moved<sp/>since<sp/>previous<sp/>update</highlight><highlight class="normal"></highlight></codeline>
+<codeline lineno="535"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>prevLeft<sp/>=<sp/></highlight><highlight class="keyword">self</highlight><highlight class="normal">-&gt;leftEncoderCount;</highlight></codeline>
+<codeline lineno="536"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>prevRight<sp/>=<sp/></highlight><highlight class="keyword">self</highlight><highlight class="normal">-&gt;rightEncoderCount;</highlight></codeline>
+<codeline lineno="537"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">return</highlight><highlight class="normal"><sp/>0;</highlight></codeline>
+<codeline lineno="538"><highlight class="normal"><sp/><sp/><sp/><sp/>}</highlight></codeline>
+<codeline lineno="539"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="comment">//ignore<sp/>the<sp/>first<sp/>run,<sp/>such<sp/>that<sp/>we<sp/>do<sp/>not<sp/>have<sp/>prevLeft<sp/>or<sp/>right=0,<sp/>this<sp/>would<sp/>give<sp/>a<sp/>very<sp/>large<sp/>degree<sp/>moved.</highlight><highlight class="normal"></highlight></codeline>
+<codeline lineno="540"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">else</highlight><highlight class="normal"><sp/></highlight><highlight class="keywordflow">if</highlight><highlight class="normal"><sp/>(iterations<sp/>==<sp/>0)</highlight></codeline>
+<codeline lineno="541"><highlight class="normal"><sp/><sp/><sp/><sp/>{</highlight></codeline>
+<codeline lineno="542"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>prevLeft<sp/>=<sp/></highlight><highlight class="keyword">self</highlight><highlight class="normal">-&gt;leftEncoderCount;</highlight></codeline>
+<codeline lineno="543"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>prevRight<sp/>=<sp/></highlight><highlight class="keyword">self</highlight><highlight class="normal">-&gt;rightEncoderCount;</highlight></codeline>
+<codeline lineno="544"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>iterations++;</highlight></codeline>
+<codeline lineno="545"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">return</highlight><highlight class="normal"><sp/>0;</highlight></codeline>
+<codeline lineno="546"><highlight class="normal"><sp/><sp/><sp/><sp/>}</highlight></codeline>
+<codeline lineno="547"><highlight class="normal"></highlight></codeline>
+<codeline lineno="548"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="comment">//get<sp/>distance<sp/>moved<sp/>in<sp/>mm<sp/>for<sp/>the<sp/>left<sp/>and<sp/>right<sp/>wheel</highlight><highlight class="normal"></highlight></codeline>
+<codeline lineno="549"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="comment">//<sp/>equation:<sp/>ticks<sp/>*<sp/>(1/508)*72pi</highlight><highlight class="normal"></highlight></codeline>
+<codeline lineno="550"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="comment">//update<sp/>the<sp/>previous<sp/>values<sp/>to<sp/>be<sp/>correct</highlight><highlight class="normal"></highlight></codeline>
+<codeline lineno="551"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="keywordtype">int</highlight><highlight class="normal"><sp/>distLeft<sp/>=<sp/>(</highlight><highlight class="keyword">self</highlight><highlight class="normal">-&gt;leftEncoderCount<sp/>-<sp/>prevLeft)<sp/>*<sp/>(0.445265);</highlight></codeline>
+<codeline lineno="552"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="keywordtype">int</highlight><highlight class="normal"><sp/>distRight<sp/>=<sp/>(</highlight><highlight class="keyword">self</highlight><highlight class="normal">-&gt;rightEncoderCount<sp/>-<sp/>prevRight)<sp/>*<sp/>(0.445265);</highlight></codeline>
+<codeline lineno="553"><highlight class="normal"><sp/><sp/><sp/><sp/>prevLeft<sp/>=<sp/></highlight><highlight class="keyword">self</highlight><highlight class="normal">-&gt;leftEncoderCount;</highlight></codeline>
+<codeline lineno="554"><highlight class="normal"><sp/><sp/><sp/><sp/>prevRight<sp/>=<sp/></highlight><highlight class="keyword">self</highlight><highlight class="normal">-&gt;rightEncoderCount;</highlight></codeline>
+<codeline lineno="555"><highlight class="normal"></highlight></codeline>
+<codeline lineno="556"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="comment">//calculate<sp/>the<sp/>degree<sp/>travelled<sp/>by<sp/>(right-left)/wheel<sp/>base<sp/>in<sp/>mm</highlight><highlight class="normal"></highlight></codeline>
+<codeline lineno="557"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="keywordtype">float</highlight><highlight class="normal"><sp/>deg<sp/>=<sp/>.82<sp/>*<sp/>(distRight<sp/>-<sp/>distLeft)<sp/>/<sp/>178.5;</highlight><highlight class="comment">//change<sp/>178.5<sp/>to<sp/>improve<sp/>accuracy<sp/>of<sp/>turning<sp/>if<sp/>needed</highlight><highlight class="normal"></highlight></codeline>
+<codeline lineno="558"><highlight class="normal"><sp/><sp/><sp/><sp/>deg<sp/>=<sp/>(deg<sp/>*<sp/>180)<sp/>/<sp/>M_PI;</highlight></codeline>
+<codeline lineno="559"><highlight class="normal"></highlight></codeline>
+<codeline lineno="560"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">return</highlight><highlight class="normal"><sp/>(deg);</highlight></codeline>
+<codeline lineno="561"><highlight class="normal"></highlight></codeline>
+<codeline lineno="562"><highlight class="normal">}</highlight></codeline>
+<codeline lineno="563"><highlight class="normal"></highlight></codeline>
     </programlisting>
     <location file="C:/Users/DonsterLaptop/Documents/Robot288/cpre288_generalpurposeautomatedrobot/Robot/Utils/open_interface.c"/>
   </compounddef>
diff --git a/Doxygen/xml/open__interface_8h.xml b/Doxygen/xml/open__interface_8h.xml
index 04cb2f500a639ca7e4053f65f8234d20225d4485..8dcd3ad73e6fca3ca53a63f8242ba76dcf6c2874 100644
--- a/Doxygen/xml/open__interface_8h.xml
+++ b/Doxygen/xml/open__interface_8h.xml
@@ -36,7 +36,7 @@
       </node>
       <node id="316">
         <label>Utils/lcd.h</label>
-        <link refid="lcd_8h_source"/>
+        <link refid="lcd_8h"/>
         <childnode refid="309" relation="include">
         </childnode>
         <childnode refid="310" relation="include">
@@ -53,7 +53,7 @@
       </node>
       <node id="314">
         <label>Utils/Timer.h</label>
-        <link refid="timer_8h_source"/>
+        <link refid="timer_8h"/>
         <childnode refid="310" relation="include">
         </childnode>
         <childnode refid="315" relation="include">
@@ -123,11 +123,11 @@
       </node>
       <node id="320">
         <label>C:/Users/DonsterLaptop/Documents/Robot288/cpre288_generalpurposeautomatedrobot/Robot/main.c</label>
-        <link refid="main_8c_source"/>
+        <link refid="main_8c"/>
       </node>
       <node id="325">
         <label>C:/Users/DonsterLaptop/Documents/Robot288/cpre288_generalpurposeautomatedrobot/Robot/Utils/open_interface.c</label>
-        <link refid="open__interface_8c_source"/>
+        <link refid="open__interface_8c"/>
       </node>
       <node id="327">
         <label>C:/Users/DonsterLaptop/Documents/Robot288/cpre288_generalpurposeautomatedrobot/Robot/Utils/Sound.h</label>
@@ -178,7 +178,7 @@
         </detaileddescription>
         <inbodydescription>
         </inbodydescription>
-        <location file="C:/Users/DonsterLaptop/Documents/Robot288/cpre288_generalpurposeautomatedrobot/Robot/Utils/open_interface.h" line="127" column="1" bodyfile="C:/Users/DonsterLaptop/Documents/Robot288/cpre288_generalpurposeautomatedrobot/Robot/Utils/open_interface.c" bodystart="116" bodyend="119"/>
+        <location file="C:/Users/DonsterLaptop/Documents/Robot288/cpre288_generalpurposeautomatedrobot/Robot/Utils/open_interface.h" line="127" column="1" bodyfile="C:/Users/DonsterLaptop/Documents/Robot288/cpre288_generalpurposeautomatedrobot/Robot/Utils/open_interface.c" bodystart="119" bodyend="122"/>
       </memberdef>
       <memberdef kind="function" id="open__interface_8h_1abe8995b948a2f47938a574b59c2dda7e" prot="public" static="no" const="no" explicit="no" inline="no" virt="non-virtual">
         <type>void</type>
@@ -195,7 +195,7 @@
         </detaileddescription>
         <inbodydescription>
         </inbodydescription>
-        <location file="C:/Users/DonsterLaptop/Documents/Robot288/cpre288_generalpurposeautomatedrobot/Robot/Utils/open_interface.h" line="130" column="1" bodyfile="C:/Users/DonsterLaptop/Documents/Robot288/cpre288_generalpurposeautomatedrobot/Robot/Utils/open_interface.c" bodystart="122" bodyend="128"/>
+        <location file="C:/Users/DonsterLaptop/Documents/Robot288/cpre288_generalpurposeautomatedrobot/Robot/Utils/open_interface.h" line="130" column="1" bodyfile="C:/Users/DonsterLaptop/Documents/Robot288/cpre288_generalpurposeautomatedrobot/Robot/Utils/open_interface.c" bodystart="125" bodyend="131"/>
       </memberdef>
       <memberdef kind="function" id="open__interface_8h_1a9108ba8c791d0e97444c03b2f40b278a" prot="public" static="no" const="no" explicit="no" inline="no" virt="non-virtual">
         <type>void</type>
@@ -212,7 +212,7 @@
 <para>Initialize open interface communication with IRobot.</para><para>This function needs to be called to setup UART and other OI peripherals </para>        </detaileddescription>
         <inbodydescription>
         </inbodydescription>
-        <location file="C:/Users/DonsterLaptop/Documents/Robot288/cpre288_generalpurposeautomatedrobot/Robot/Utils/open_interface.h" line="133" column="1" bodyfile="C:/Users/DonsterLaptop/Documents/Robot288/cpre288_generalpurposeautomatedrobot/Robot/Utils/open_interface.c" bodystart="150" bodyend="157"/>
+        <location file="C:/Users/DonsterLaptop/Documents/Robot288/cpre288_generalpurposeautomatedrobot/Robot/Utils/open_interface.h" line="133" column="1" bodyfile="C:/Users/DonsterLaptop/Documents/Robot288/cpre288_generalpurposeautomatedrobot/Robot/Utils/open_interface.c" bodystart="153" bodyend="160"/>
       </memberdef>
       <memberdef kind="function" id="open__interface_8h_1a459768368a73c0a552d07edcea9c981e" prot="public" static="no" const="no" explicit="no" inline="no" virt="non-virtual">
         <type>void</type>
@@ -225,7 +225,7 @@
         </detaileddescription>
         <inbodydescription>
         </inbodydescription>
-        <location file="C:/Users/DonsterLaptop/Documents/Robot288/cpre288_generalpurposeautomatedrobot/Robot/Utils/open_interface.h" line="135" column="1" bodyfile="C:/Users/DonsterLaptop/Documents/Robot288/cpre288_generalpurposeautomatedrobot/Robot/Utils/open_interface.c" bodystart="159" bodyend="163"/>
+        <location file="C:/Users/DonsterLaptop/Documents/Robot288/cpre288_generalpurposeautomatedrobot/Robot/Utils/open_interface.h" line="135" column="1" bodyfile="C:/Users/DonsterLaptop/Documents/Robot288/cpre288_generalpurposeautomatedrobot/Robot/Utils/open_interface.c" bodystart="162" bodyend="166"/>
       </memberdef>
       <memberdef kind="function" id="open__interface_8h_1a9129559bba5ff9dc7e4df64330864674" prot="public" static="no" const="no" explicit="no" inline="no" virt="non-virtual">
         <type>void</type>
@@ -242,7 +242,7 @@
 <para>Update sensor data. </para>        </detaileddescription>
         <inbodydescription>
         </inbodydescription>
-        <location file="C:/Users/DonsterLaptop/Documents/Robot288/cpre288_generalpurposeautomatedrobot/Robot/Utils/open_interface.h" line="138" column="1" bodyfile="C:/Users/DonsterLaptop/Documents/Robot288/cpre288_generalpurposeautomatedrobot/Robot/Utils/open_interface.c" bodystart="166" bodyend="186"/>
+        <location file="C:/Users/DonsterLaptop/Documents/Robot288/cpre288_generalpurposeautomatedrobot/Robot/Utils/open_interface.h" line="138" column="1" bodyfile="C:/Users/DonsterLaptop/Documents/Robot288/cpre288_generalpurposeautomatedrobot/Robot/Utils/open_interface.c" bodystart="169" bodyend="189"/>
       </memberdef>
       <memberdef kind="function" id="open__interface_8h_1a9ce8d6194cf8cb1d39104b641cb5254d" prot="public" static="no" const="no" explicit="no" inline="no" virt="non-virtual">
         <type>void</type>
@@ -300,7 +300,7 @@
 </para>        </detaileddescription>
         <inbodydescription>
         </inbodydescription>
-        <location file="C:/Users/DonsterLaptop/Documents/Robot288/cpre288_generalpurposeautomatedrobot/Robot/Utils/open_interface.h" line="145" column="1" bodyfile="C:/Users/DonsterLaptop/Documents/Robot288/cpre288_generalpurposeautomatedrobot/Robot/Utils/open_interface.c" bodystart="294" bodyend="308"/>
+        <location file="C:/Users/DonsterLaptop/Documents/Robot288/cpre288_generalpurposeautomatedrobot/Robot/Utils/open_interface.h" line="145" column="1" bodyfile="C:/Users/DonsterLaptop/Documents/Robot288/cpre288_generalpurposeautomatedrobot/Robot/Utils/open_interface.c" bodystart="297" bodyend="311"/>
       </memberdef>
       <memberdef kind="function" id="open__interface_8h_1a49949f029cc5f84ad903aa7022f4e5e0" prot="public" static="no" const="no" explicit="no" inline="no" virt="non-virtual">
         <type>void</type>
@@ -336,7 +336,7 @@
 </para>        </detaileddescription>
         <inbodydescription>
         </inbodydescription>
-        <location file="C:/Users/DonsterLaptop/Documents/Robot288/cpre288_generalpurposeautomatedrobot/Robot/Utils/open_interface.h" line="151" column="1" bodyfile="C:/Users/DonsterLaptop/Documents/Robot288/cpre288_generalpurposeautomatedrobot/Robot/Utils/open_interface.c" bodystart="313" bodyend="320"/>
+        <location file="C:/Users/DonsterLaptop/Documents/Robot288/cpre288_generalpurposeautomatedrobot/Robot/Utils/open_interface.h" line="151" column="1" bodyfile="C:/Users/DonsterLaptop/Documents/Robot288/cpre288_generalpurposeautomatedrobot/Robot/Utils/open_interface.c" bodystart="316" bodyend="323"/>
       </memberdef>
       <memberdef kind="function" id="open__interface_8h_1ad945411d8b234cf7c50488a8d9388ff5" prot="public" static="no" const="no" explicit="no" inline="no" virt="non-virtual">
         <type>void</type>
@@ -394,7 +394,7 @@
 </para>        </detaileddescription>
         <inbodydescription>
         </inbodydescription>
-        <location file="C:/Users/DonsterLaptop/Documents/Robot288/cpre288_generalpurposeautomatedrobot/Robot/Utils/open_interface.h" line="158" column="1" bodyfile="C:/Users/DonsterLaptop/Documents/Robot288/cpre288_generalpurposeautomatedrobot/Robot/Utils/open_interface.c" bodystart="327" bodyend="339"/>
+        <location file="C:/Users/DonsterLaptop/Documents/Robot288/cpre288_generalpurposeautomatedrobot/Robot/Utils/open_interface.h" line="158" column="1" bodyfile="C:/Users/DonsterLaptop/Documents/Robot288/cpre288_generalpurposeautomatedrobot/Robot/Utils/open_interface.c" bodystart="330" bodyend="342"/>
       </memberdef>
       <memberdef kind="function" id="open__interface_8h_1a353765c4297939ef0390a47ca869af56" prot="public" static="no" const="no" explicit="no" inline="no" virt="non-virtual">
         <type>void</type>
@@ -419,7 +419,7 @@
 Play song. </para>        </detaileddescription>
         <inbodydescription>
         </inbodydescription>
-        <location file="C:/Users/DonsterLaptop/Documents/Robot288/cpre288_generalpurposeautomatedrobot/Robot/Utils/open_interface.h" line="163" column="1" bodyfile="C:/Users/DonsterLaptop/Documents/Robot288/cpre288_generalpurposeautomatedrobot/Robot/Utils/open_interface.c" bodystart="342" bodyend="346"/>
+        <location file="C:/Users/DonsterLaptop/Documents/Robot288/cpre288_generalpurposeautomatedrobot/Robot/Utils/open_interface.h" line="163" column="1" bodyfile="C:/Users/DonsterLaptop/Documents/Robot288/cpre288_generalpurposeautomatedrobot/Robot/Utils/open_interface.c" bodystart="345" bodyend="349"/>
       </memberdef>
       <memberdef kind="function" id="open__interface_8h_1a6c701c5d6642b0f7128b03542a09ed76" prot="public" static="no" const="no" explicit="no" inline="no" virt="non-virtual">
         <type>void</type>
@@ -435,7 +435,7 @@ Play song. </para>        </detaileddescription>
 <para>Calls in built in demo to send the iRobot to an open home base This will cause the iRobot to enter the Passive state </para>        </detaileddescription>
         <inbodydescription>
         </inbodydescription>
-        <location file="C:/Users/DonsterLaptop/Documents/Robot288/cpre288_generalpurposeautomatedrobot/Robot/Utils/open_interface.h" line="167" column="1" bodyfile="C:/Users/DonsterLaptop/Documents/Robot288/cpre288_generalpurposeautomatedrobot/Robot/Utils/open_interface.c" bodystart="349" bodyend="365"/>
+        <location file="C:/Users/DonsterLaptop/Documents/Robot288/cpre288_generalpurposeautomatedrobot/Robot/Utils/open_interface.h" line="167" column="1" bodyfile="C:/Users/DonsterLaptop/Documents/Robot288/cpre288_generalpurposeautomatedrobot/Robot/Utils/open_interface.c" bodystart="352" bodyend="368"/>
       </memberdef>
       <memberdef kind="function" id="open__interface_8h_1ad267467da06136cae30bdf71425575c8" prot="public" static="no" const="no" explicit="no" inline="no" virt="non-virtual">
         <type>char *</type>
@@ -448,7 +448,7 @@ Play song. </para>        </detaileddescription>
         </detaileddescription>
         <inbodydescription>
         </inbodydescription>
-        <location file="C:/Users/DonsterLaptop/Documents/Robot288/cpre288_generalpurposeautomatedrobot/Robot/Utils/open_interface.h" line="169" column="1" bodyfile="C:/Users/DonsterLaptop/Documents/Robot288/cpre288_generalpurposeautomatedrobot/Robot/Utils/open_interface.c" bodystart="446" bodyend="483"/>
+        <location file="C:/Users/DonsterLaptop/Documents/Robot288/cpre288_generalpurposeautomatedrobot/Robot/Utils/open_interface.h" line="169" column="1" bodyfile="C:/Users/DonsterLaptop/Documents/Robot288/cpre288_generalpurposeautomatedrobot/Robot/Utils/open_interface.c" bodystart="449" bodyend="486"/>
       </memberdef>
       <memberdef kind="function" id="open__interface_8h_1a1bca24fa8dd6fb148a6ec99ffbe2f29d" prot="public" static="no" const="no" explicit="no" inline="no" virt="non-virtual">
         <type>void</type>
@@ -464,7 +464,7 @@ Play song. </para>        </detaileddescription>
         </detaileddescription>
         <inbodydescription>
         </inbodydescription>
-        <location file="C:/Users/DonsterLaptop/Documents/Robot288/cpre288_generalpurposeautomatedrobot/Robot/Utils/open_interface.h" line="172" column="1" bodyfile="C:/Users/DonsterLaptop/Documents/Robot288/cpre288_generalpurposeautomatedrobot/Robot/Utils/open_interface.c" bodystart="486" bodyend="502"/>
+        <location file="C:/Users/DonsterLaptop/Documents/Robot288/cpre288_generalpurposeautomatedrobot/Robot/Utils/open_interface.h" line="172" column="1" bodyfile="C:/Users/DonsterLaptop/Documents/Robot288/cpre288_generalpurposeautomatedrobot/Robot/Utils/open_interface.c" bodystart="489" bodyend="505"/>
       </memberdef>
       <memberdef kind="function" id="open__interface_8h_1a02aad0ed1a15a7938e39823becf866e6" prot="public" static="no" const="no" explicit="no" inline="no" virt="non-virtual">
         <type>void</type>
@@ -480,7 +480,7 @@ Play song. </para>        </detaileddescription>
         </detaileddescription>
         <inbodydescription>
         </inbodydescription>
-        <location file="C:/Users/DonsterLaptop/Documents/Robot288/cpre288_generalpurposeautomatedrobot/Robot/Utils/open_interface.h" line="175" column="1" bodyfile="C:/Users/DonsterLaptop/Documents/Robot288/cpre288_generalpurposeautomatedrobot/Robot/Utils/open_interface.c" bodystart="504" bodyend="513"/>
+        <location file="C:/Users/DonsterLaptop/Documents/Robot288/cpre288_generalpurposeautomatedrobot/Robot/Utils/open_interface.h" line="175" column="1" bodyfile="C:/Users/DonsterLaptop/Documents/Robot288/cpre288_generalpurposeautomatedrobot/Robot/Utils/open_interface.c" bodystart="507" bodyend="516"/>
       </memberdef>
       <memberdef kind="function" id="open__interface_8h_1a22afee5afdd7d60bc1bd9d58a428e4b7" prot="public" static="no" const="no" explicit="no" inline="no" virt="non-virtual">
         <type>float</type>
@@ -505,29 +505,18 @@ Play song. </para>        </detaileddescription>
 </para>        </detaileddescription>
         <inbodydescription>
         </inbodydescription>
-        <location file="C:/Users/DonsterLaptop/Documents/Robot288/cpre288_generalpurposeautomatedrobot/Robot/Utils/open_interface.h" line="178" column="1" bodyfile="C:/Users/DonsterLaptop/Documents/Robot288/cpre288_generalpurposeautomatedrobot/Robot/Utils/open_interface.c" bodystart="519" bodyend="559"/>
+        <location file="C:/Users/DonsterLaptop/Documents/Robot288/cpre288_generalpurposeautomatedrobot/Robot/Utils/open_interface.h" line="179" column="1" bodyfile="C:/Users/DonsterLaptop/Documents/Robot288/cpre288_generalpurposeautomatedrobot/Robot/Utils/open_interface.c" bodystart="522" bodyend="562"/>
       </memberdef>
       </sectiondef>
     <briefdescription>
-    </briefdescription>
+<para>Header file for <ref refid="open__interface_8c" kindref="compound">open_interface.c</ref> Contains all functionality to interface with the IRobot Create V2 Communication over UART4 at 115200. </para>    </briefdescription>
     <detaileddescription>
-    </detaileddescription>
+<para><simplesect kind="author"><para>Noah Bergman </para></simplesect>
+<simplesect kind="date"><para>03/11/2016 </para></simplesect>
+</para>    </detaileddescription>
     <programlisting>
-<codeline lineno="1"><highlight class="comment">/*</highlight></codeline>
-<codeline lineno="2"><highlight class="comment"><sp/>*<sp/><sp/><sp/><sp/><sp/><sp/>@file<sp/><sp/><sp/>open_interface.h</highlight></codeline>
-<codeline lineno="3"><highlight class="comment"><sp/>*</highlight></codeline>
-<codeline lineno="4"><highlight class="comment"><sp/>*<sp/><sp/><sp/><sp/><sp/><sp/>@brief<sp/><sp/>Header<sp/>file<sp/>for<sp/>open_interface.c</highlight></codeline>
-<codeline lineno="5"><highlight class="comment"><sp/>*<sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>Contains<sp/>all<sp/>functionality<sp/>to<sp/>interface<sp/>with<sp/>the<sp/>IRobot<sp/>Create<sp/>V2</highlight></codeline>
-<codeline lineno="6"><highlight class="comment"><sp/>*<sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>Communication<sp/>over<sp/>UART4<sp/>at<sp/>115200</highlight></codeline>
-<codeline lineno="7"><highlight class="comment"><sp/>*</highlight></codeline>
-<codeline lineno="8"><highlight class="comment"><sp/>*<sp/>@author<sp/>Noah<sp/>Bergman</highlight></codeline>
-<codeline lineno="9"><highlight class="comment"><sp/>*<sp/>@date<sp/>03/11/2016</highlight></codeline>
-<codeline lineno="10"><highlight class="comment"><sp/>*</highlight></codeline>
-<codeline lineno="11"><highlight class="comment"><sp/>*</highlight></codeline>
-<codeline lineno="12"><highlight class="comment"><sp/>*</highlight></codeline>
-<codeline lineno="13"><highlight class="comment"><sp/>*/</highlight><highlight class="normal"></highlight></codeline>
-<codeline lineno="14"><highlight class="normal"></highlight></codeline>
-<codeline lineno="15"><highlight class="normal"></highlight><highlight class="preprocessor">#ifndef<sp/>OPEN_INTERFACE_H_</highlight><highlight class="normal"></highlight></codeline>
+<codeline lineno="1"></codeline>
+<codeline lineno="15"><highlight class="preprocessor">#ifndef<sp/>OPEN_INTERFACE_H_</highlight><highlight class="normal"></highlight></codeline>
 <codeline lineno="16"><highlight class="normal"></highlight><highlight class="preprocessor">#define<sp/>OPEN_INTERFACE_H_</highlight><highlight class="normal"></highlight></codeline>
 <codeline lineno="17"><highlight class="normal"></highlight></codeline>
 <codeline lineno="18"><highlight class="normal"></highlight><highlight class="preprocessor">#include<sp/>&lt;stdio.h&gt;</highlight><highlight class="normal"></highlight></codeline>
@@ -535,8 +524,8 @@ Play song. </para>        </detaileddescription>
 <codeline lineno="20"><highlight class="normal"></highlight><highlight class="preprocessor">#include<sp/>&lt;string.h&gt;</highlight><highlight class="normal"></highlight></codeline>
 <codeline lineno="21"><highlight class="normal"></highlight><highlight class="preprocessor">#include<sp/>&lt;stdlib.h&gt;</highlight><highlight class="normal"></highlight></codeline>
 <codeline lineno="22"><highlight class="normal"></highlight><highlight class="preprocessor">#include<sp/>&lt;math.h&gt;</highlight><highlight class="normal"></highlight></codeline>
-<codeline lineno="23"><highlight class="normal"></highlight><highlight class="preprocessor">#include<sp/>&quot;Utils/Timer.h&quot;</highlight><highlight class="normal"></highlight></codeline>
-<codeline lineno="24"><highlight class="normal"></highlight><highlight class="preprocessor">#include<sp/>&quot;Utils/lcd.h&quot;</highlight><highlight class="normal"></highlight></codeline>
+<codeline lineno="23"><highlight class="normal"></highlight><highlight class="preprocessor">#include<sp/>&quot;<ref refid="timer_8h" kindref="compound">Utils/Timer.h</ref>&quot;</highlight><highlight class="normal"></highlight></codeline>
+<codeline lineno="24"><highlight class="normal"></highlight><highlight class="preprocessor">#include<sp/>&quot;<ref refid="lcd_8h" kindref="compound">Utils/lcd.h</ref>&quot;</highlight><highlight class="normal"></highlight></codeline>
 <codeline lineno="25"><highlight class="normal"></highlight><highlight class="preprocessor">#include<sp/>&lt;inc/tm4c123gh6pm.h&gt;</highlight><highlight class="normal"></highlight></codeline>
 <codeline lineno="26"><highlight class="normal"></highlight><highlight class="preprocessor">#include<sp/>&lt;stdbool.h&gt;</highlight><highlight class="normal"></highlight></codeline>
 <codeline lineno="27"><highlight class="normal"></highlight><highlight class="preprocessor">#include<sp/>&quot;driverlib/interrupt.h&quot;</highlight><highlight class="normal"></highlight></codeline>
@@ -637,40 +626,41 @@ Play song. </para>        </detaileddescription>
 <codeline lineno="123"><highlight class="normal"></highlight></codeline>
 <codeline lineno="124"><highlight class="normal">}<sp/><ref refid="structoi__t" kindref="compound">oi_t</ref>;</highlight></codeline>
 <codeline lineno="125"><highlight class="normal"></highlight></codeline>
-<codeline lineno="127"><highlight class="normal"><ref refid="structoi__t" kindref="compound">oi_t</ref><sp/>*<sp/>oi_alloc();</highlight></codeline>
+<codeline lineno="127"><highlight class="normal"><ref refid="structoi__t" kindref="compound">oi_t</ref><sp/>*<sp/><ref refid="open__interface_8h_1aad249dffdf79454de76e09092a0445f5" kindref="member">oi_alloc</ref>();</highlight></codeline>
 <codeline lineno="128"><highlight class="normal"></highlight></codeline>
-<codeline lineno="130"><highlight class="keywordtype">void</highlight><highlight class="normal"><sp/>oi_free(<ref refid="structoi__t" kindref="compound">oi_t</ref><sp/>*</highlight><highlight class="keyword">self</highlight><highlight class="normal">);</highlight></codeline>
+<codeline lineno="130"><highlight class="keywordtype">void</highlight><highlight class="normal"><sp/><ref refid="open__interface_8h_1abe8995b948a2f47938a574b59c2dda7e" kindref="member">oi_free</ref>(<ref refid="structoi__t" kindref="compound">oi_t</ref><sp/>*</highlight><highlight class="keyword">self</highlight><highlight class="normal">);</highlight></codeline>
 <codeline lineno="131"><highlight class="normal"></highlight></codeline>
-<codeline lineno="133"><highlight class="keywordtype">void</highlight><highlight class="normal"><sp/>oi_init(<ref refid="structoi__t" kindref="compound">oi_t</ref><sp/>*</highlight><highlight class="keyword">self</highlight><highlight class="normal">);</highlight></codeline>
+<codeline lineno="133"><highlight class="keywordtype">void</highlight><highlight class="normal"><sp/><ref refid="open__interface_8h_1a9108ba8c791d0e97444c03b2f40b278a" kindref="member">oi_init</ref>(<ref refid="structoi__t" kindref="compound">oi_t</ref><sp/>*</highlight><highlight class="keyword">self</highlight><highlight class="normal">);</highlight></codeline>
 <codeline lineno="134"><highlight class="normal"></highlight></codeline>
 <codeline lineno="135"><highlight class="normal"></highlight><highlight class="keywordtype">void</highlight><highlight class="normal"><sp/>oi_close();</highlight></codeline>
 <codeline lineno="136"><highlight class="normal"></highlight></codeline>
-<codeline lineno="138"><highlight class="keywordtype">void</highlight><highlight class="normal"><sp/>oi_update(<ref refid="structoi__t" kindref="compound">oi_t</ref><sp/>*</highlight><highlight class="keyword">self</highlight><highlight class="normal">);</highlight></codeline>
+<codeline lineno="138"><highlight class="keywordtype">void</highlight><highlight class="normal"><sp/><ref refid="open__interface_8h_1a9129559bba5ff9dc7e4df64330864674" kindref="member">oi_update</ref>(<ref refid="structoi__t" kindref="compound">oi_t</ref><sp/>*</highlight><highlight class="keyword">self</highlight><highlight class="normal">);</highlight></codeline>
 <codeline lineno="139"><highlight class="normal"></highlight></codeline>
-<codeline lineno="145"><highlight class="keywordtype">void</highlight><highlight class="normal"><sp/>oi_setLeds(uint8_t<sp/>play_led,<sp/>uint8_t<sp/>advance_led,<sp/>uint8_t<sp/>power_color,</highlight></codeline>
+<codeline lineno="145"><highlight class="keywordtype">void</highlight><highlight class="normal"><sp/><ref refid="open__interface_8h_1a9ce8d6194cf8cb1d39104b641cb5254d" kindref="member">oi_setLeds</ref>(uint8_t<sp/>play_led,<sp/>uint8_t<sp/>advance_led,<sp/>uint8_t<sp/>power_color,</highlight></codeline>
 <codeline lineno="146"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>uint8_t<sp/>power_intensity);</highlight></codeline>
 <codeline lineno="147"><highlight class="normal"></highlight></codeline>
-<codeline lineno="151"><highlight class="keywordtype">void</highlight><highlight class="normal"><sp/>oi_setWheels(int16_t<sp/>right_wheel,<sp/>int16_t<sp/>left_wheel);</highlight></codeline>
+<codeline lineno="151"><highlight class="keywordtype">void</highlight><highlight class="normal"><sp/><ref refid="open__interface_8h_1a49949f029cc5f84ad903aa7022f4e5e0" kindref="member">oi_setWheels</ref>(int16_t<sp/>right_wheel,<sp/>int16_t<sp/>left_wheel);</highlight></codeline>
 <codeline lineno="152"><highlight class="normal"></highlight></codeline>
-<codeline lineno="158"><highlight class="keywordtype">void</highlight><highlight class="normal"><sp/>oi_loadSong(</highlight><highlight class="keywordtype">int</highlight><highlight class="normal"><sp/>song_index,<sp/></highlight><highlight class="keywordtype">int</highlight><highlight class="normal"><sp/>num_notes,<sp/></highlight><highlight class="keywordtype">unsigned</highlight><highlight class="normal"><sp/></highlight><highlight class="keywordtype">char</highlight><highlight class="normal"><sp/>*notes,</highlight></codeline>
+<codeline lineno="158"><highlight class="keywordtype">void</highlight><highlight class="normal"><sp/><ref refid="open__interface_8h_1ad945411d8b234cf7c50488a8d9388ff5" kindref="member">oi_loadSong</ref>(</highlight><highlight class="keywordtype">int</highlight><highlight class="normal"><sp/>song_index,<sp/></highlight><highlight class="keywordtype">int</highlight><highlight class="normal"><sp/>num_notes,<sp/></highlight><highlight class="keywordtype">unsigned</highlight><highlight class="normal"><sp/></highlight><highlight class="keywordtype">char</highlight><highlight class="normal"><sp/>*notes,</highlight></codeline>
 <codeline lineno="159"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordtype">unsigned</highlight><highlight class="normal"><sp/></highlight><highlight class="keywordtype">char</highlight><highlight class="normal"><sp/>*duration);</highlight></codeline>
 <codeline lineno="160"><highlight class="normal"></highlight></codeline>
-<codeline lineno="163"><highlight class="keywordtype">void</highlight><highlight class="normal"><sp/>oi_play_song(</highlight><highlight class="keywordtype">int</highlight><highlight class="normal"><sp/>index);</highlight></codeline>
+<codeline lineno="163"><highlight class="keywordtype">void</highlight><highlight class="normal"><sp/><ref refid="open__interface_8h_1a353765c4297939ef0390a47ca869af56" kindref="member">oi_play_song</ref>(</highlight><highlight class="keywordtype">int</highlight><highlight class="normal"><sp/>index);</highlight></codeline>
 <codeline lineno="164"><highlight class="normal"></highlight></codeline>
-<codeline lineno="167"><highlight class="keywordtype">void</highlight><highlight class="normal"><sp/>go_charge(</highlight><highlight class="keywordtype">void</highlight><highlight class="normal">);</highlight></codeline>
+<codeline lineno="167"><highlight class="keywordtype">void</highlight><highlight class="normal"><sp/><ref refid="open__interface_8h_1a6c701c5d6642b0f7128b03542a09ed76" kindref="member">go_charge</ref>(</highlight><highlight class="keywordtype">void</highlight><highlight class="normal">);</highlight></codeline>
 <codeline lineno="168"><highlight class="normal"></highlight></codeline>
 <codeline lineno="169"><highlight class="normal"></highlight><highlight class="keywordtype">char</highlight><highlight class="normal">*<sp/>oi_checkFirmware();</highlight></codeline>
 <codeline lineno="170"><highlight class="normal"></highlight></codeline>
 <codeline lineno="171"><highlight class="normal"></highlight><highlight class="comment">//initializes<sp/>interrupt<sp/>and<sp/>gpio<sp/>to<sp/>handle<sp/>button<sp/>press<sp/>to<sp/>end<sp/>OI</highlight><highlight class="normal"></highlight></codeline>
-<codeline lineno="172"><highlight class="normal"></highlight><highlight class="keywordtype">void</highlight><highlight class="normal"><sp/>oi_shutoff_init(</highlight><highlight class="keywordtype">void</highlight><highlight class="normal">);</highlight></codeline>
+<codeline lineno="172"><highlight class="normal"></highlight><highlight class="keywordtype">void</highlight><highlight class="normal"><sp/><ref refid="open__interface_8h_1a1bca24fa8dd6fb148a6ec99ffbe2f29d" kindref="member">oi_shutoff_init</ref>(</highlight><highlight class="keywordtype">void</highlight><highlight class="normal">);</highlight></codeline>
 <codeline lineno="173"><highlight class="normal"></highlight></codeline>
 <codeline lineno="174"><highlight class="normal"></highlight><highlight class="comment">//used<sp/>to<sp/>handle<sp/>interrupt<sp/>to<sp/>shut<sp/>off<sp/>OI</highlight><highlight class="normal"></highlight></codeline>
 <codeline lineno="175"><highlight class="normal"></highlight><highlight class="keywordtype">void</highlight><highlight class="normal"><sp/>GPIOF_Handler(</highlight><highlight class="keywordtype">void</highlight><highlight class="normal">);</highlight></codeline>
 <codeline lineno="176"><highlight class="normal"></highlight></codeline>
 <codeline lineno="177"><highlight class="normal"></highlight><highlight class="comment">//used<sp/>to<sp/>get<sp/>the<sp/>current<sp/>moved<sp/>degrees<sp/>from<sp/>encoder<sp/>count</highlight><highlight class="normal"></highlight></codeline>
-<codeline lineno="178"><highlight class="normal"></highlight><highlight class="keywordtype">float</highlight><highlight class="normal"><sp/>getDegrees(<ref refid="structoi__t" kindref="compound">oi_t</ref><sp/>*</highlight><highlight class="keyword">self</highlight><highlight class="normal">);</highlight></codeline>
-<codeline lineno="179"><highlight class="normal"></highlight></codeline>
-<codeline lineno="180"><highlight class="normal"></highlight><highlight class="preprocessor">#endif<sp/></highlight><highlight class="comment">/*<sp/>OPEN_INTERFACE_H_<sp/>*/</highlight><highlight class="preprocessor"></highlight></codeline>
+<codeline lineno="178"><highlight class="normal"></highlight><highlight class="comment">//Don<sp/>Kieu:<sp/>Modified<sp/>to<sp/>get<sp/>this<sp/>in<sp/>float<sp/>instead<sp/>of<sp/>integer</highlight><highlight class="normal"></highlight></codeline>
+<codeline lineno="179"><highlight class="normal"></highlight><highlight class="keywordtype">float</highlight><highlight class="normal"><sp/><ref refid="open__interface_8h_1a22afee5afdd7d60bc1bd9d58a428e4b7" kindref="member">getDegrees</ref>(<ref refid="structoi__t" kindref="compound">oi_t</ref><sp/>*</highlight><highlight class="keyword">self</highlight><highlight class="normal">);</highlight></codeline>
+<codeline lineno="180"><highlight class="normal"></highlight></codeline>
+<codeline lineno="181"><highlight class="normal"></highlight><highlight class="preprocessor">#endif<sp/></highlight><highlight class="comment">/*<sp/>OPEN_INTERFACE_H_<sp/>*/</highlight><highlight class="preprocessor"></highlight></codeline>
     </programlisting>
     <location file="C:/Users/DonsterLaptop/Documents/Robot288/cpre288_generalpurposeautomatedrobot/Robot/Utils/open_interface.h"/>
   </compounddef>
diff --git a/Doxygen/xml/sonic_8c.xml b/Doxygen/xml/sonic_8c.xml
index 762ad61226076ec385003c35d90d9697aedf603b..1c720a3bee4314e2591de5c493e3bb7f2013e261 100644
--- a/Doxygen/xml/sonic_8c.xml
+++ b/Doxygen/xml/sonic_8c.xml
@@ -33,7 +33,7 @@
       </node>
       <node id="223">
         <label>Utils/timer.h</label>
-        <link refid="timer_8h_source"/>
+        <link refid="timer_8h"/>
         <childnode refid="224" relation="include">
         </childnode>
         <childnode refid="225" relation="include">
@@ -298,7 +298,7 @@
 <codeline lineno="98"><highlight class="normal">{</highlight></codeline>
 <codeline lineno="99"><highlight class="normal"><sp/><sp/><sp/><sp/>SYSCTL_RCGCTIMER_R<sp/>|=<sp/>0x08;<sp/></highlight><highlight class="comment">//Enable<sp/>Timer<sp/>3</highlight><highlight class="normal"></highlight></codeline>
 <codeline lineno="100"><highlight class="normal"><sp/><sp/><sp/><sp/>SYSCTL_RCGCGPIO_R<sp/>|=<sp/>0x02;<sp/></highlight><highlight class="comment">//Enable<sp/>port<sp/>B</highlight><highlight class="normal"></highlight></codeline>
-<codeline lineno="101"><highlight class="normal"><sp/><sp/><sp/><sp/>timer_waitMillis(10);</highlight></codeline>
+<codeline lineno="101"><highlight class="normal"><sp/><sp/><sp/><sp/><ref refid="timer_8c_1a7e2a3b4520e885e5e7d40fa87e242a75" kindref="member">timer_waitMillis</ref>(10);</highlight></codeline>
 <codeline lineno="102"><highlight class="normal"><sp/><sp/><sp/><sp/>GPIO_PORTB_DEN_R<sp/>|=<sp/>0x08;<sp/></highlight><highlight class="comment">//Enable<sp/>pin<sp/>3</highlight><highlight class="normal"></highlight></codeline>
 <codeline lineno="103"><highlight class="normal"></highlight></codeline>
 <codeline lineno="104"><highlight class="normal"><sp/><sp/><sp/><sp/>TIMER3_CTL_R<sp/>&amp;=<sp/>~0x101;<sp/></highlight><highlight class="comment">//Clear<sp/>timer<sp/>3<sp/>CTL</highlight><highlight class="normal"></highlight></codeline>
diff --git a/Doxygen/xml/sonic_8h.xml b/Doxygen/xml/sonic_8h.xml
index 7cc075f4ebf9876105fe651c1b79aa00aaf62b85..0f61315a1057f7e3de816ab4c981d2ecd49a5202 100644
--- a/Doxygen/xml/sonic_8h.xml
+++ b/Doxygen/xml/sonic_8h.xml
@@ -32,7 +32,7 @@
       </node>
       <node id="230">
         <label>Utils/timer.h</label>
-        <link refid="timer_8h_source"/>
+        <link refid="timer_8h"/>
         <childnode refid="231" relation="include">
         </childnode>
         <childnode refid="232" relation="include">
@@ -69,7 +69,7 @@
       </node>
       <node id="238">
         <label>C:/Users/DonsterLaptop/Documents/Robot288/cpre288_generalpurposeautomatedrobot/Robot/main.c</label>
-        <link refid="main_8c_source"/>
+        <link refid="main_8c"/>
       </node>
     </invincdepgraph>
       <sectiondef kind="func">
@@ -192,7 +192,7 @@
 </para>    </detaileddescription>
     <programlisting>
 <codeline lineno="1"></codeline>
-<codeline lineno="16"><highlight class="preprocessor">#include<sp/>&lt;Utils/timer.h&gt;</highlight><highlight class="normal"></highlight></codeline>
+<codeline lineno="16"><highlight class="preprocessor">#include<sp/>&lt;<ref refid="timer_8h" kindref="compound">Utils/timer.h</ref>&gt;</highlight><highlight class="normal"></highlight></codeline>
 <codeline lineno="17"><highlight class="normal"></highlight><highlight class="preprocessor">#include<sp/>&lt;stdbool.h&gt;</highlight><highlight class="normal"></highlight></codeline>
 <codeline lineno="18"><highlight class="normal"></highlight><highlight class="preprocessor">#include<sp/>&lt;inc/tm4c123gh6pm.h&gt;</highlight><highlight class="normal"></highlight></codeline>
 <codeline lineno="19"><highlight class="normal"></highlight><highlight class="preprocessor">#include<sp/>&quot;driverlib/interrupt.h&quot;</highlight><highlight class="normal"></highlight></codeline>
diff --git a/Doxygen/xml/sweep__sensor_8c.xml b/Doxygen/xml/sweep__sensor_8c.xml
index 255adae5fbd31dc606a1a82752331abac6e5b68a..9317337bde93bc46fcdb7cc896711f21cbc1d83c 100644
--- a/Doxygen/xml/sweep__sensor_8c.xml
+++ b/Doxygen/xml/sweep__sensor_8c.xml
@@ -69,7 +69,7 @@
       </node>
       <node id="243">
         <label>Utils/timer.h</label>
-        <link refid="timer_8h_source"/>
+        <link refid="timer_8h"/>
         <childnode refid="244" relation="include">
         </childnode>
         <childnode refid="245" relation="include">
@@ -763,7 +763,7 @@
 <codeline lineno="340"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="comment">//<sp/>Move<sp/>servo<sp/>to<sp/>correct<sp/>position</highlight><highlight class="normal"></highlight></codeline>
 <codeline lineno="341"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>servoWaitTime_millis<sp/>=<sp/><ref refid="sweep__sensor_8c_1a87706abc24e10327499a2612a0ae3cbc" kindref="member">sweep_moveAbsolute</ref>(startAngle_deg);</highlight></codeline>
 <codeline lineno="342"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="comment">//<sp/>Wait<sp/>to<sp/>ensure<sp/>that<sp/>the<sp/>servo<sp/>has<sp/>reached<sp/>the<sp/>correct<sp/>position</highlight><highlight class="normal"></highlight></codeline>
-<codeline lineno="343"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>timer_waitMillis(servoWaitTime_millis);</highlight></codeline>
+<codeline lineno="343"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><ref refid="timer_8c_1a7e2a3b4520e885e5e7d40fa87e242a75" kindref="member">timer_waitMillis</ref>(servoWaitTime_millis);</highlight></codeline>
 <codeline lineno="344"><highlight class="normal"><sp/><sp/><sp/><sp/>}</highlight></codeline>
 <codeline lineno="345"><highlight class="normal"></highlight></codeline>
 <codeline lineno="346"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="comment">//<sp/>The<sp/>angular<sp/>position<sp/>of<sp/>the<sp/>robot<sp/>on<sp/>the<sp/>previous<sp/>loop<sp/>iteration</highlight><highlight class="normal"></highlight></codeline>
@@ -777,10 +777,10 @@
 <codeline lineno="354"><highlight class="normal"><sp/><sp/><sp/><sp/>{</highlight></codeline>
 <codeline lineno="355"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="comment">//<sp/>Wait<sp/>to<sp/>ensure<sp/>that<sp/>the<sp/>servo<sp/>has<sp/>reached<sp/>the<sp/>correct<sp/>position</highlight><highlight class="normal"></highlight></codeline>
 <codeline lineno="356"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">if</highlight><highlight class="normal"><sp/>(servoWaitTime_millis<sp/>&gt;<sp/>0)</highlight></codeline>
-<codeline lineno="357"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>timer_waitMillis(servoWaitTime_millis);</highlight></codeline>
+<codeline lineno="357"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><ref refid="timer_8c_1a7e2a3b4520e885e5e7d40fa87e242a75" kindref="member">timer_waitMillis</ref>(servoWaitTime_millis);</highlight></codeline>
 <codeline lineno="358"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="comment">//<sp/>Delay<sp/>the<sp/>specified<sp/>amount<sp/>of<sp/>time<sp/>between<sp/>increments</highlight><highlight class="normal"></highlight></codeline>
 <codeline lineno="359"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">if</highlight><highlight class="normal"><sp/>(incDelay_ms<sp/>&gt;<sp/>0)</highlight></codeline>
-<codeline lineno="360"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>timer_waitMillis(incDelay_ms);</highlight></codeline>
+<codeline lineno="360"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><ref refid="timer_8c_1a7e2a3b4520e885e5e7d40fa87e242a75" kindref="member">timer_waitMillis</ref>(incDelay_ms);</highlight></codeline>
 <codeline lineno="361"><highlight class="normal"></highlight></codeline>
 <codeline lineno="362"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="comment">//<sp/>Start<sp/>sonic<sp/>measurement</highlight><highlight class="normal"></highlight></codeline>
 <codeline lineno="363"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><ref refid="sonic_8c_1a588b501da316bcf0dec4756000d5ebce" kindref="member">sonic_chirp</ref>();</highlight></codeline>
@@ -812,7 +812,7 @@
 <codeline lineno="389"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="comment">//<sp/>Wait<sp/>to<sp/>ensure<sp/>that<sp/>the<sp/>servo<sp/>has<sp/>reached<sp/>the<sp/>correct<sp/>position</highlight><highlight class="normal"></highlight></codeline>
 <codeline lineno="390"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">if</highlight><highlight class="normal"><sp/>(servoWaitTime_millis<sp/>&gt;<sp/>0)</highlight></codeline>
 <codeline lineno="391"><highlight class="normal"><sp/><sp/><sp/><sp/>{</highlight></codeline>
-<codeline lineno="392"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>timer_waitMillis(servoWaitTime_millis);</highlight></codeline>
+<codeline lineno="392"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><ref refid="timer_8c_1a7e2a3b4520e885e5e7d40fa87e242a75" kindref="member">timer_waitMillis</ref>(servoWaitTime_millis);</highlight></codeline>
 <codeline lineno="393"><highlight class="normal"><sp/><sp/><sp/><sp/>}</highlight></codeline>
 <codeline lineno="394"><highlight class="normal"></highlight></codeline>
 <codeline lineno="395"><highlight class="normal">}</highlight></codeline>
@@ -850,7 +850,7 @@
 <codeline lineno="427"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="comment">//<sp/>Wait<sp/>to<sp/>ensure<sp/>that<sp/>the<sp/>servo<sp/>has<sp/>reached<sp/>the<sp/>correct<sp/>position</highlight><highlight class="normal"></highlight></codeline>
 <codeline lineno="428"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">if</highlight><highlight class="normal"><sp/>(servoWaitTime_millis<sp/>&gt;<sp/>0)</highlight></codeline>
 <codeline lineno="429"><highlight class="normal"><sp/><sp/><sp/><sp/>{</highlight></codeline>
-<codeline lineno="430"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>timer_waitMillis(servoWaitTime_millis);</highlight></codeline>
+<codeline lineno="430"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><ref refid="timer_8c_1a7e2a3b4520e885e5e7d40fa87e242a75" kindref="member">timer_waitMillis</ref>(servoWaitTime_millis);</highlight></codeline>
 <codeline lineno="431"><highlight class="normal"><sp/><sp/><sp/><sp/>}</highlight></codeline>
 <codeline lineno="432"><highlight class="normal"></highlight></codeline>
 <codeline lineno="433"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="comment">//<sp/>Perform<sp/>the<sp/>sweep<sp/>routine<sp/>between<sp/>the<sp/>maximum<sp/>clockwise<sp/>and<sp/>counterclockwise</highlight><highlight class="normal"></highlight></codeline>
diff --git a/Doxygen/xml/sweep__sensor_8h.xml b/Doxygen/xml/sweep__sensor_8h.xml
index 46417008c750c0e84a75319e35051cfc8a79704a..90f94dc688ae0a2900d77aea3d4f8c0113763dd0 100644
--- a/Doxygen/xml/sweep__sensor_8h.xml
+++ b/Doxygen/xml/sweep__sensor_8h.xml
@@ -71,7 +71,7 @@
       </node>
       <node id="256">
         <label>Utils/timer.h</label>
-        <link refid="timer_8h_source"/>
+        <link refid="timer_8h"/>
         <childnode refid="257" relation="include">
         </childnode>
         <childnode refid="258" relation="include">
@@ -115,7 +115,7 @@
       </node>
       <node id="267">
         <label>C:/Users/DonsterLaptop/Documents/Robot288/cpre288_generalpurposeautomatedrobot/Robot/main.c</label>
-        <link refid="main_8c_source"/>
+        <link refid="main_8c"/>
       </node>
     </invincdepgraph>
       <sectiondef kind="func">
diff --git a/Doxygen/xml/timer4_8c.xml b/Doxygen/xml/timer4_8c.xml
index 0a9d77557a27f6168d15722d427d5c541d2736ce..5ae38ed6d8e26c8840a3e3bec85078db41825e87 100644
--- a/Doxygen/xml/timer4_8c.xml
+++ b/Doxygen/xml/timer4_8c.xml
@@ -18,7 +18,7 @@
       </node>
       <node id="385">
         <label>timer4.h</label>
-        <link refid="timer4_8h_source"/>
+        <link refid="timer4_8h"/>
         <childnode refid="386" relation="include">
         </childnode>
         <childnode refid="387" relation="include">
@@ -45,7 +45,7 @@
         </detaileddescription>
         <inbodydescription>
         </inbodydescription>
-        <location file="C:/Users/DonsterLaptop/Documents/Robot288/cpre288_generalpurposeautomatedrobot/Robot/Utils/timer4.c" line="10" column="9" bodyfile="C:/Users/DonsterLaptop/Documents/Robot288/cpre288_generalpurposeautomatedrobot/Robot/Utils/timer4.c" bodystart="10" bodyend="-1"/>
+        <location file="C:/Users/DonsterLaptop/Documents/Robot288/cpre288_generalpurposeautomatedrobot/Robot/Utils/timer4.c" line="16" column="9" bodyfile="C:/Users/DonsterLaptop/Documents/Robot288/cpre288_generalpurposeautomatedrobot/Robot/Utils/timer4.c" bodystart="16" bodyend="-1"/>
       </memberdef>
       <memberdef kind="define" id="timer4_8c_1a331ba268ffcb9f2d37028b9131337cf7" prot="public" static="no">
         <name>TIMER4A_COUNTS</name>
@@ -56,7 +56,7 @@
         </detaileddescription>
         <inbodydescription>
         </inbodydescription>
-        <location file="C:/Users/DonsterLaptop/Documents/Robot288/cpre288_generalpurposeautomatedrobot/Robot/Utils/timer4.c" line="13" column="9" bodyfile="C:/Users/DonsterLaptop/Documents/Robot288/cpre288_generalpurposeautomatedrobot/Robot/Utils/timer4.c" bodystart="13" bodyend="-1"/>
+        <location file="C:/Users/DonsterLaptop/Documents/Robot288/cpre288_generalpurposeautomatedrobot/Robot/Utils/timer4.c" line="19" column="9" bodyfile="C:/Users/DonsterLaptop/Documents/Robot288/cpre288_generalpurposeautomatedrobot/Robot/Utils/timer4.c" bodystart="19" bodyend="-1"/>
       </memberdef>
       <memberdef kind="define" id="timer4_8c_1a4f99040cc6b5959c0e0cca1af97df207" prot="public" static="no">
         <name>TIMER4B_COUNTS</name>
@@ -67,7 +67,7 @@
         </detaileddescription>
         <inbodydescription>
         </inbodydescription>
-        <location file="C:/Users/DonsterLaptop/Documents/Robot288/cpre288_generalpurposeautomatedrobot/Robot/Utils/timer4.c" line="16" column="9" bodyfile="C:/Users/DonsterLaptop/Documents/Robot288/cpre288_generalpurposeautomatedrobot/Robot/Utils/timer4.c" bodystart="16" bodyend="-1"/>
+        <location file="C:/Users/DonsterLaptop/Documents/Robot288/cpre288_generalpurposeautomatedrobot/Robot/Utils/timer4.c" line="22" column="9" bodyfile="C:/Users/DonsterLaptop/Documents/Robot288/cpre288_generalpurposeautomatedrobot/Robot/Utils/timer4.c" bodystart="22" bodyend="-1"/>
       </memberdef>
       </sectiondef>
       <sectiondef kind="func">
@@ -85,56 +85,55 @@
 <para>initializes the timer to be used in the ir sensor </para>        </detaileddescription>
         <inbodydescription>
         </inbodydescription>
-        <location file="C:/Users/DonsterLaptop/Documents/Robot288/cpre288_generalpurposeautomatedrobot/Robot/Utils/timer4.c" line="18" column="1" bodyfile="C:/Users/DonsterLaptop/Documents/Robot288/cpre288_generalpurposeautomatedrobot/Robot/Utils/timer4.c" bodystart="18" bodyend="41"/>
+        <location file="C:/Users/DonsterLaptop/Documents/Robot288/cpre288_generalpurposeautomatedrobot/Robot/Utils/timer4.c" line="24" column="1" bodyfile="C:/Users/DonsterLaptop/Documents/Robot288/cpre288_generalpurposeautomatedrobot/Robot/Utils/timer4.c" bodystart="24" bodyend="47"/>
       </memberdef>
       </sectiondef>
     <briefdescription>
-    </briefdescription>
+<para>Library file for handling a timer interrupt for IR Sensor. </para>    </briefdescription>
     <detaileddescription>
-    </detaileddescription>
+<para><simplesect kind="author"><para>Quentin Urbanowicz </para></simplesect>
+<simplesect kind="author"><para>Rene Chavez </para></simplesect>
+<simplesect kind="author"><para>Peyton Sher </para></simplesect>
+<simplesect kind="author"><para>Don Kieu </para></simplesect>
+<simplesect kind="date"><para>2018-11-13, 2018-11-27 </para></simplesect>
+</para>    </detaileddescription>
     <programlisting>
-<codeline lineno="1"><highlight class="comment">/*</highlight></codeline>
-<codeline lineno="2"><highlight class="comment"><sp/>*<sp/>timer4.cpp</highlight></codeline>
-<codeline lineno="3"><highlight class="comment"><sp/>*</highlight></codeline>
-<codeline lineno="4"><highlight class="comment"><sp/>*<sp/><sp/>Created<sp/>on:<sp/>Oct<sp/>31,<sp/>2018</highlight></codeline>
-<codeline lineno="5"><highlight class="comment"><sp/>*<sp/><sp/><sp/><sp/><sp/><sp/>Author:<sp/>donster</highlight></codeline>
-<codeline lineno="6"><highlight class="comment"><sp/>*/</highlight><highlight class="normal"></highlight></codeline>
-<codeline lineno="7"><highlight class="normal"></highlight></codeline>
-<codeline lineno="8"><highlight class="normal"></highlight><highlight class="preprocessor">#include<sp/>&quot;timer4.h&quot;</highlight><highlight class="normal"></highlight></codeline>
-<codeline lineno="9"><highlight class="normal"></highlight></codeline>
-<codeline lineno="10"><highlight class="normal"></highlight><highlight class="preprocessor">#define<sp/>TIMER4_PRESCALER<sp/>250</highlight><highlight class="normal"></highlight></codeline>
-<codeline lineno="11"><highlight class="normal"></highlight></codeline>
-<codeline lineno="12"><highlight class="normal"></highlight><highlight class="comment">//<sp/>This<sp/>is<sp/>the<sp/>interval<sp/>for<sp/>incrementing<sp/>the<sp/>clock</highlight><highlight class="normal"></highlight></codeline>
-<codeline lineno="13"><highlight class="normal"></highlight><highlight class="preprocessor">#define<sp/>TIMER4A_COUNTS<sp/>9600<sp/>//<sp/>Starting<sp/>value<sp/>of<sp/>Timer<sp/>to<sp/>countdown<sp/>to<sp/>zero<sp/>in<sp/>75<sp/>millisecond</highlight><highlight class="normal"></highlight></codeline>
-<codeline lineno="14"><highlight class="normal"></highlight></codeline>
-<codeline lineno="15"><highlight class="normal"></highlight><highlight class="comment">//<sp/>This<sp/>is<sp/>the<sp/>interval<sp/>for<sp/>checking<sp/>the<sp/>buttons</highlight><highlight class="normal"></highlight></codeline>
-<codeline lineno="16"><highlight class="normal"></highlight><highlight class="preprocessor">#define<sp/>TIMER4B_COUNTS<sp/>19200<sp/>//<sp/>Starting<sp/>value<sp/>of<sp/>Timer<sp/>to<sp/>countdown<sp/>to<sp/>zero<sp/>in<sp/>150<sp/>milliseconds</highlight><highlight class="normal"></highlight></codeline>
+<codeline lineno="1"></codeline>
+<codeline lineno="14"><highlight class="preprocessor">#include<sp/>&quot;<ref refid="timer4_8h" kindref="compound">timer4.h</ref>&quot;</highlight><highlight class="normal"></highlight></codeline>
+<codeline lineno="15"><highlight class="normal"></highlight></codeline>
+<codeline lineno="16"><highlight class="normal"></highlight><highlight class="preprocessor">#define<sp/>TIMER4_PRESCALER<sp/>250</highlight><highlight class="normal"></highlight></codeline>
 <codeline lineno="17"><highlight class="normal"></highlight></codeline>
-<codeline lineno="18"><highlight class="normal"></highlight><highlight class="keywordtype">void</highlight><highlight class="normal"><sp/>clock_timer_init(</highlight><highlight class="keywordtype">void</highlight><highlight class="normal">)</highlight></codeline>
-<codeline lineno="19"><highlight class="normal">{</highlight></codeline>
-<codeline lineno="20"><highlight class="normal"><sp/><sp/><sp/><sp/>SYSCTL_RCGCTIMER_R<sp/>|=<sp/>SYSCTL_RCGCTIMER_R4;<sp/></highlight><highlight class="comment">//<sp/>Turn<sp/>on<sp/>clock<sp/>to<sp/>TIMER4</highlight><highlight class="normal"></highlight></codeline>
-<codeline lineno="21"><highlight class="normal"></highlight></codeline>
-<codeline lineno="22"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="comment">//Configure<sp/>the<sp/>timer<sp/>for<sp/>input<sp/>capture<sp/>mode</highlight><highlight class="normal"></highlight></codeline>
-<codeline lineno="23"><highlight class="normal"><sp/><sp/><sp/><sp/>TIMER4_CTL_R<sp/>&amp;=<sp/>~(TIMER_CTL_TAEN<sp/>|<sp/>TIMER_CTL_TBEN);<sp/></highlight><highlight class="comment">//disable<sp/>timerB<sp/>to<sp/>allow<sp/>us<sp/>to<sp/>change<sp/>settings</highlight><highlight class="normal"></highlight></codeline>
-<codeline lineno="24"><highlight class="normal"><sp/><sp/><sp/><sp/>TIMER4_CFG_R<sp/>|=<sp/>TIMER_CFG_16_BIT;<sp/></highlight><highlight class="comment">//set<sp/>to<sp/>16<sp/>bit<sp/>timer</highlight><highlight class="normal"></highlight></codeline>
-<codeline lineno="25"><highlight class="normal"></highlight></codeline>
-<codeline lineno="26"><highlight class="normal"><sp/><sp/><sp/><sp/>TIMER4_TAMR_R<sp/>=<sp/>TIMER_TAMR_TAMR_PERIOD;<sp/></highlight><highlight class="comment">//set<sp/>for<sp/>periodic<sp/>mode,<sp/>down<sp/>count</highlight><highlight class="normal"></highlight></codeline>
-<codeline lineno="27"><highlight class="normal"><sp/><sp/><sp/><sp/>TIMER4_TBMR_R<sp/>=<sp/>TIMER_TBMR_TBMR_PERIOD;<sp/></highlight><highlight class="comment">//set<sp/>for<sp/>periodic<sp/>mode,<sp/>down<sp/>count</highlight><highlight class="normal"></highlight></codeline>
-<codeline lineno="28"><highlight class="normal"></highlight></codeline>
-<codeline lineno="29"><highlight class="normal"><sp/><sp/><sp/><sp/>TIMER4_TAPR_R<sp/>=<sp/>TIMER4_PRESCALER<sp/>-<sp/>1;<sp/></highlight><highlight class="comment">//<sp/>75<sp/><sp/>ms<sp/>clock</highlight><highlight class="normal"></highlight></codeline>
-<codeline lineno="30"><highlight class="normal"><sp/><sp/><sp/><sp/>TIMER4_TBPR_R<sp/>=<sp/>TIMER4_PRESCALER<sp/>-<sp/>1;<sp/><sp/></highlight><highlight class="comment">//<sp/>200<sp/>ms<sp/>clock</highlight><highlight class="normal"></highlight></codeline>
+<codeline lineno="18"><highlight class="normal"></highlight><highlight class="comment">//<sp/>This<sp/>is<sp/>the<sp/>interval<sp/>for<sp/>incrementing<sp/>the<sp/>clock</highlight><highlight class="normal"></highlight></codeline>
+<codeline lineno="19"><highlight class="normal"></highlight><highlight class="preprocessor">#define<sp/>TIMER4A_COUNTS<sp/>9600<sp/>//<sp/>Starting<sp/>value<sp/>of<sp/>Timer<sp/>to<sp/>countdown<sp/>to<sp/>zero<sp/>in<sp/>75<sp/>millisecond</highlight><highlight class="normal"></highlight></codeline>
+<codeline lineno="20"><highlight class="normal"></highlight></codeline>
+<codeline lineno="21"><highlight class="normal"></highlight><highlight class="comment">//<sp/>This<sp/>is<sp/>the<sp/>interval<sp/>for<sp/>checking<sp/>the<sp/>buttons</highlight><highlight class="normal"></highlight></codeline>
+<codeline lineno="22"><highlight class="normal"></highlight><highlight class="preprocessor">#define<sp/>TIMER4B_COUNTS<sp/>19200<sp/>//<sp/>Starting<sp/>value<sp/>of<sp/>Timer<sp/>to<sp/>countdown<sp/>to<sp/>zero<sp/>in<sp/>150<sp/>milliseconds</highlight><highlight class="normal"></highlight></codeline>
+<codeline lineno="23"><highlight class="normal"></highlight></codeline>
+<codeline lineno="24" refid="timer4_8h_1afe6c9dd8b2439c58273cbd63b95088fe" refkind="member"><highlight class="normal"></highlight><highlight class="keywordtype">void</highlight><highlight class="normal"><sp/><ref refid="timer4_8c_1afe6c9dd8b2439c58273cbd63b95088fe" kindref="member">clock_timer_init</ref>(</highlight><highlight class="keywordtype">void</highlight><highlight class="normal">)</highlight></codeline>
+<codeline lineno="25"><highlight class="normal">{</highlight></codeline>
+<codeline lineno="26"><highlight class="normal"><sp/><sp/><sp/><sp/>SYSCTL_RCGCTIMER_R<sp/>|=<sp/>SYSCTL_RCGCTIMER_R4;<sp/></highlight><highlight class="comment">//<sp/>Turn<sp/>on<sp/>clock<sp/>to<sp/>TIMER4</highlight><highlight class="normal"></highlight></codeline>
+<codeline lineno="27"><highlight class="normal"></highlight></codeline>
+<codeline lineno="28"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="comment">//Configure<sp/>the<sp/>timer<sp/>for<sp/>input<sp/>capture<sp/>mode</highlight><highlight class="normal"></highlight></codeline>
+<codeline lineno="29"><highlight class="normal"><sp/><sp/><sp/><sp/>TIMER4_CTL_R<sp/>&amp;=<sp/>~(TIMER_CTL_TAEN<sp/>|<sp/>TIMER_CTL_TBEN);<sp/></highlight><highlight class="comment">//disable<sp/>Timer4A<sp/>and<sp/>Timer4B<sp/>to<sp/>allow<sp/>us<sp/>to<sp/>change<sp/>settings</highlight><highlight class="normal"></highlight></codeline>
+<codeline lineno="30"><highlight class="normal"><sp/><sp/><sp/><sp/>TIMER4_CFG_R<sp/>|=<sp/>TIMER_CFG_16_BIT;<sp/></highlight><highlight class="comment">//set<sp/>to<sp/>16<sp/>bit<sp/>timer</highlight><highlight class="normal"></highlight></codeline>
 <codeline lineno="31"><highlight class="normal"></highlight></codeline>
-<codeline lineno="32"><highlight class="normal"><sp/><sp/><sp/><sp/>TIMER4_TAILR_R<sp/>=<sp/>TIMER4A_COUNTS<sp/>-<sp/>1;<sp/></highlight><highlight class="comment">//<sp/>set<sp/>the<sp/>load<sp/>value<sp/>for<sp/>the<sp/>1<sp/>second<sp/>clock<sp/>(with<sp/>your<sp/>prescaler,<sp/>how<sp/>many<sp/>clock<sp/>cycles<sp/>happen<sp/>in<sp/>1<sp/>second?)</highlight><highlight class="normal"></highlight></codeline>
-<codeline lineno="33"><highlight class="normal"><sp/><sp/><sp/><sp/>TIMER4_TBILR_R<sp/>=<sp/>TIMER4B_COUNTS<sp/>-<sp/>1;<sp/></highlight><highlight class="comment">//<sp/>set<sp/>the<sp/>load<sp/>value<sp/>for<sp/>the<sp/>0.15<sp/>second<sp/>clock</highlight><highlight class="normal"></highlight></codeline>
+<codeline lineno="32"><highlight class="normal"><sp/><sp/><sp/><sp/>TIMER4_TAMR_R<sp/>=<sp/>TIMER_TAMR_TAMR_PERIOD;<sp/></highlight><highlight class="comment">//set<sp/>for<sp/>periodic<sp/>mode,<sp/>down<sp/>count</highlight><highlight class="normal"></highlight></codeline>
+<codeline lineno="33"><highlight class="normal"><sp/><sp/><sp/><sp/>TIMER4_TBMR_R<sp/>=<sp/>TIMER_TBMR_TBMR_PERIOD;<sp/></highlight><highlight class="comment">//set<sp/>for<sp/>periodic<sp/>mode,<sp/>down<sp/>count</highlight><highlight class="normal"></highlight></codeline>
 <codeline lineno="34"><highlight class="normal"></highlight></codeline>
-<codeline lineno="35"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="comment">//clear<sp/>TIMER3B<sp/>interrupt<sp/>flags</highlight><highlight class="normal"></highlight></codeline>
-<codeline lineno="36"><highlight class="normal"><sp/><sp/><sp/><sp/>TIMER4_ICR_R<sp/>=<sp/>(TIMER_ICR_TATOCINT<sp/>|<sp/>TIMER_ICR_TBTOCINT);<sp/></highlight><highlight class="comment">//clears<sp/>TIMER4<sp/>time-out<sp/>interrupt<sp/>flags</highlight><highlight class="normal"></highlight></codeline>
-<codeline lineno="37"><highlight class="normal"><sp/><sp/><sp/><sp/>TIMER4_IMR_R<sp/>|=<sp/>(TIMER_IMR_TATOIM<sp/>|<sp/>TIMER_IMR_TBTOIM);<sp/></highlight><highlight class="comment">//enable<sp/>TIMER4(A&amp;B)<sp/>time-out<sp/>interrupts</highlight><highlight class="normal"></highlight></codeline>
-<codeline lineno="38"><highlight class="normal"></highlight></codeline>
-<codeline lineno="39"><highlight class="normal"></highlight></codeline>
-<codeline lineno="40"><highlight class="normal"><sp/><sp/><sp/><sp/>TIMER4_CTL_R<sp/>|=<sp/>(TIMER_CTL_TAEN<sp/>|<sp/>TIMER_CTL_TBEN);<sp/></highlight><highlight class="comment">//Enable<sp/>TIMER4A<sp/>&amp;<sp/>TIMER4B</highlight><highlight class="normal"></highlight></codeline>
-<codeline lineno="41"><highlight class="normal">}</highlight></codeline>
-<codeline lineno="42"><highlight class="normal"></highlight></codeline>
+<codeline lineno="35"><highlight class="normal"><sp/><sp/><sp/><sp/>TIMER4_TAPR_R<sp/>=<sp/>TIMER4_PRESCALER<sp/>-<sp/>1;<sp/></highlight><highlight class="comment">//<sp/>75<sp/><sp/>ms<sp/>clock</highlight><highlight class="normal"></highlight></codeline>
+<codeline lineno="36"><highlight class="normal"><sp/><sp/><sp/><sp/>TIMER4_TBPR_R<sp/>=<sp/>TIMER4_PRESCALER<sp/>-<sp/>1;<sp/><sp/></highlight><highlight class="comment">//<sp/>150<sp/>ms<sp/>clock</highlight><highlight class="normal"></highlight></codeline>
+<codeline lineno="37"><highlight class="normal"></highlight></codeline>
+<codeline lineno="38"><highlight class="normal"><sp/><sp/><sp/><sp/>TIMER4_TAILR_R<sp/>=<sp/>TIMER4A_COUNTS<sp/>-<sp/>1;<sp/></highlight><highlight class="comment">//<sp/>set<sp/>the<sp/>load<sp/>value<sp/>for<sp/>the<sp/><sp/>75<sp/>ms<sp/>clock</highlight><highlight class="normal"></highlight></codeline>
+<codeline lineno="39"><highlight class="normal"><sp/><sp/><sp/><sp/>TIMER4_TBILR_R<sp/>=<sp/>TIMER4B_COUNTS<sp/>-<sp/>1;<sp/></highlight><highlight class="comment">//<sp/>set<sp/>the<sp/>load<sp/>value<sp/>for<sp/>the<sp/>150<sp/>ms<sp/>clock</highlight><highlight class="normal"></highlight></codeline>
+<codeline lineno="40"><highlight class="normal"></highlight></codeline>
+<codeline lineno="41"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="comment">//clear<sp/>TIMER4B<sp/>interrupt<sp/>flags</highlight><highlight class="normal"></highlight></codeline>
+<codeline lineno="42"><highlight class="normal"><sp/><sp/><sp/><sp/>TIMER4_ICR_R<sp/>=<sp/>(TIMER_ICR_TATOCINT<sp/>|<sp/>TIMER_ICR_TBTOCINT);<sp/></highlight><highlight class="comment">//clears<sp/>TIMER4<sp/>time-out<sp/>interrupt<sp/>flags</highlight><highlight class="normal"></highlight></codeline>
+<codeline lineno="43"><highlight class="normal"><sp/><sp/><sp/><sp/>TIMER4_IMR_R<sp/>|=<sp/>(TIMER_IMR_TATOIM<sp/>|<sp/>TIMER_IMR_TBTOIM);<sp/></highlight><highlight class="comment">//enable<sp/>TIMER4(A&amp;B)<sp/>time-out<sp/>interrupts</highlight><highlight class="normal"></highlight></codeline>
+<codeline lineno="44"><highlight class="normal"></highlight></codeline>
+<codeline lineno="45"><highlight class="normal"></highlight></codeline>
+<codeline lineno="46"><highlight class="normal"><sp/><sp/><sp/><sp/>TIMER4_CTL_R<sp/>|=<sp/>(TIMER_CTL_TAEN<sp/>|<sp/>TIMER_CTL_TBEN);<sp/></highlight><highlight class="comment">//Enable<sp/>TIMER4A<sp/>&amp;<sp/>TIMER4B</highlight><highlight class="normal"></highlight></codeline>
+<codeline lineno="47"><highlight class="normal">}</highlight></codeline>
+<codeline lineno="48"><highlight class="normal"></highlight></codeline>
     </programlisting>
     <location file="C:/Users/DonsterLaptop/Documents/Robot288/cpre288_generalpurposeautomatedrobot/Robot/Utils/timer4.c"/>
   </compounddef>
diff --git a/Doxygen/xml/timer4_8h.xml b/Doxygen/xml/timer4_8h.xml
index c5670df8aac66507397d36ad0ed8475218be6f49..047d9cfb7a36af5eb7140e973d894ebe24ed313f 100644
--- a/Doxygen/xml/timer4_8h.xml
+++ b/Doxygen/xml/timer4_8h.xml
@@ -37,7 +37,7 @@
     <invincdepgraph>
       <node id="398">
         <label>C:/Users/DonsterLaptop/Documents/Robot288/cpre288_generalpurposeautomatedrobot/Robot/Utils/timer4.c</label>
-        <link refid="timer4_8c_source"/>
+        <link refid="timer4_8c"/>
       </node>
       <node id="396">
         <label>C:/Users/DonsterLaptop/Documents/Robot288/cpre288_generalpurposeautomatedrobot/Robot/Utils/timer4.h</label>
@@ -49,7 +49,7 @@
       </node>
       <node id="397">
         <label>C:/Users/DonsterLaptop/Documents/Robot288/cpre288_generalpurposeautomatedrobot/Robot/main.c</label>
-        <link refid="main_8c_source"/>
+        <link refid="main_8c"/>
       </node>
     </invincdepgraph>
       <sectiondef kind="func">
@@ -67,36 +67,31 @@
 <para>initializes the timer to be used in the ir sensor </para>        </detaileddescription>
         <inbodydescription>
         </inbodydescription>
-        <location file="C:/Users/DonsterLaptop/Documents/Robot288/cpre288_generalpurposeautomatedrobot/Robot/Utils/timer4.h" line="23" column="1" bodyfile="C:/Users/DonsterLaptop/Documents/Robot288/cpre288_generalpurposeautomatedrobot/Robot/Utils/timer4.c" bodystart="18" bodyend="41"/>
+        <location file="C:/Users/DonsterLaptop/Documents/Robot288/cpre288_generalpurposeautomatedrobot/Robot/Utils/timer4.h" line="25" column="1" bodyfile="C:/Users/DonsterLaptop/Documents/Robot288/cpre288_generalpurposeautomatedrobot/Robot/Utils/timer4.c" bodystart="24" bodyend="47"/>
       </memberdef>
       </sectiondef>
     <briefdescription>
-    </briefdescription>
+<para>Header file for handling a timer interrupt for IR Sensor. </para>    </briefdescription>
     <detaileddescription>
-    </detaileddescription>
+<para><simplesect kind="author"><para>Quentin Urbanowicz </para></simplesect>
+<simplesect kind="author"><para>Rene Chavez </para></simplesect>
+<simplesect kind="author"><para>Peyton Sher </para></simplesect>
+<simplesect kind="author"><para>Don Kieu </para></simplesect>
+<simplesect kind="date"><para>2018-11-13, 2018-11-27 </para></simplesect>
+</para>    </detaileddescription>
     <programlisting>
-<codeline lineno="1"><highlight class="comment">/*</highlight></codeline>
-<codeline lineno="2"><highlight class="comment"><sp/>*<sp/>timer4.h</highlight></codeline>
-<codeline lineno="3"><highlight class="comment"><sp/>*</highlight></codeline>
-<codeline lineno="4"><highlight class="comment"><sp/>*<sp/><sp/>Created<sp/>on:<sp/>Oct<sp/>31,<sp/>2018</highlight></codeline>
-<codeline lineno="5"><highlight class="comment"><sp/>*<sp/><sp/><sp/><sp/><sp/><sp/>@author<sp/>Quentin<sp/>Urbanowicz</highlight></codeline>
-<codeline lineno="6"><highlight class="comment"><sp/>*<sp/><sp/><sp/><sp/><sp/><sp/>@author<sp/>Rene<sp/>Chavez</highlight></codeline>
-<codeline lineno="7"><highlight class="comment"><sp/>*<sp/><sp/><sp/><sp/><sp/><sp/>@author<sp/>Peyton<sp/>Sher</highlight></codeline>
-<codeline lineno="8"><highlight class="comment"><sp/>*<sp/><sp/><sp/><sp/><sp/><sp/>@author<sp/>Don<sp/>Kieu</highlight></codeline>
-<codeline lineno="9"><highlight class="comment"><sp/>*<sp/><sp/><sp/><sp/><sp/><sp/>@date<sp/><sp/><sp/>2018-11-13,<sp/>2018-11-27</highlight></codeline>
-<codeline lineno="10"><highlight class="comment"><sp/>*/</highlight><highlight class="normal"></highlight></codeline>
-<codeline lineno="11"><highlight class="normal"></highlight></codeline>
-<codeline lineno="12"><highlight class="normal"></highlight><highlight class="preprocessor">#include<sp/>&lt;stdint.h&gt;</highlight><highlight class="normal"></highlight></codeline>
-<codeline lineno="13"><highlight class="normal"></highlight><highlight class="preprocessor">#include<sp/>&lt;stdbool.h&gt;</highlight><highlight class="normal"></highlight></codeline>
-<codeline lineno="14"><highlight class="normal"></highlight><highlight class="preprocessor">#include<sp/>&lt;inc/tm4c123gh6pm.h&gt;</highlight><highlight class="normal"></highlight></codeline>
-<codeline lineno="15"><highlight class="normal"></highlight><highlight class="preprocessor">#include<sp/>&quot;driverlib/interrupt.h&quot;</highlight><highlight class="normal"></highlight></codeline>
-<codeline lineno="16"><highlight class="normal"></highlight></codeline>
-<codeline lineno="17"><highlight class="normal"></highlight><highlight class="preprocessor">#ifndef<sp/>TIMER4_H_</highlight><highlight class="normal"></highlight></codeline>
-<codeline lineno="18"><highlight class="normal"></highlight><highlight class="preprocessor">#define<sp/>TIMER4_H_</highlight><highlight class="normal"></highlight></codeline>
-<codeline lineno="19"><highlight class="normal"></highlight></codeline>
-<codeline lineno="23"><highlight class="keywordtype">void</highlight><highlight class="normal"><sp/>clock_timer_init(</highlight><highlight class="keywordtype">void</highlight><highlight class="normal">);</highlight></codeline>
-<codeline lineno="24"><highlight class="normal"></highlight></codeline>
-<codeline lineno="25"><highlight class="normal"></highlight><highlight class="preprocessor">#endif<sp/></highlight><highlight class="comment">/*<sp/>TIMER4_H_<sp/>*/</highlight><highlight class="preprocessor"></highlight></codeline>
+<codeline lineno="1"></codeline>
+<codeline lineno="14"><highlight class="preprocessor">#include<sp/>&lt;stdint.h&gt;</highlight><highlight class="normal"></highlight></codeline>
+<codeline lineno="15"><highlight class="normal"></highlight><highlight class="preprocessor">#include<sp/>&lt;stdbool.h&gt;</highlight><highlight class="normal"></highlight></codeline>
+<codeline lineno="16"><highlight class="normal"></highlight><highlight class="preprocessor">#include<sp/>&lt;inc/tm4c123gh6pm.h&gt;</highlight><highlight class="normal"></highlight></codeline>
+<codeline lineno="17"><highlight class="normal"></highlight><highlight class="preprocessor">#include<sp/>&quot;driverlib/interrupt.h&quot;</highlight><highlight class="normal"></highlight></codeline>
+<codeline lineno="18"><highlight class="normal"></highlight></codeline>
+<codeline lineno="19"><highlight class="normal"></highlight><highlight class="preprocessor">#ifndef<sp/>TIMER4_H_</highlight><highlight class="normal"></highlight></codeline>
+<codeline lineno="20"><highlight class="normal"></highlight><highlight class="preprocessor">#define<sp/>TIMER4_H_</highlight><highlight class="normal"></highlight></codeline>
+<codeline lineno="21"><highlight class="normal"></highlight></codeline>
+<codeline lineno="25"><highlight class="keywordtype">void</highlight><highlight class="normal"><sp/><ref refid="timer4_8h_1afe6c9dd8b2439c58273cbd63b95088fe" kindref="member">clock_timer_init</ref>(</highlight><highlight class="keywordtype">void</highlight><highlight class="normal">);</highlight></codeline>
+<codeline lineno="26"><highlight class="normal"></highlight></codeline>
+<codeline lineno="27"><highlight class="normal"></highlight><highlight class="preprocessor">#endif<sp/></highlight><highlight class="comment">/*<sp/>TIMER4_H_<sp/>*/</highlight><highlight class="preprocessor"></highlight></codeline>
     </programlisting>
     <location file="C:/Users/DonsterLaptop/Documents/Robot288/cpre288_generalpurposeautomatedrobot/Robot/Utils/timer4.h"/>
   </compounddef>
diff --git a/Doxygen/xml/timer_8c.xml b/Doxygen/xml/timer_8c.xml
index 3608360d9afa0daa78049ce5da759c651d36080c..663f91f829836139b722d6236861bd2187bda6d5 100644
--- a/Doxygen/xml/timer_8c.xml
+++ b/Doxygen/xml/timer_8c.xml
@@ -18,7 +18,7 @@
       </node>
       <node id="356">
         <label>Timer.h</label>
-        <link refid="timer_8h_source"/>
+        <link refid="timer_8h"/>
         <childnode refid="357" relation="include">
         </childnode>
         <childnode refid="358" relation="include">
@@ -37,7 +37,7 @@
         </detaileddescription>
         <inbodydescription>
         </inbodydescription>
-        <location file="C:/Users/DonsterLaptop/Documents/Robot288/cpre288_generalpurposeautomatedrobot/Robot/Utils/timer.c" line="9" column="1" bodyfile="C:/Users/DonsterLaptop/Documents/Robot288/cpre288_generalpurposeautomatedrobot/Robot/Utils/timer.c" bodystart="9" bodyend="-1"/>
+        <location file="C:/Users/DonsterLaptop/Documents/Robot288/cpre288_generalpurposeautomatedrobot/Robot/Utils/timer.c" line="13" column="1" bodyfile="C:/Users/DonsterLaptop/Documents/Robot288/cpre288_generalpurposeautomatedrobot/Robot/Utils/timer.c" bodystart="13" bodyend="-1"/>
       </memberdef>
       </sectiondef>
       <sectiondef kind="func">
@@ -56,7 +56,7 @@
         </detaileddescription>
         <inbodydescription>
 <para>Start timer with period of 1ms</para><para>loop until enough milliseconds have passed</para><para>wait until the millisecond timer has timed out</para><para>Reset the timeout flag</para><para>Stop the timer </para>        </inbodydescription>
-        <location file="C:/Users/DonsterLaptop/Documents/Robot288/cpre288_generalpurposeautomatedrobot/Robot/Utils/timer.c" line="11" column="1" bodyfile="C:/Users/DonsterLaptop/Documents/Robot288/cpre288_generalpurposeautomatedrobot/Robot/Utils/timer.c" bodystart="11" bodyend="31"/>
+        <location file="C:/Users/DonsterLaptop/Documents/Robot288/cpre288_generalpurposeautomatedrobot/Robot/Utils/timer.c" line="15" column="1" bodyfile="C:/Users/DonsterLaptop/Documents/Robot288/cpre288_generalpurposeautomatedrobot/Robot/Utils/timer.c" bodystart="15" bodyend="35"/>
       </memberdef>
       <memberdef kind="function" id="timer_8c_1abcd5da687b304e2354ddb88b72cde64a" prot="public" static="no" const="no" explicit="no" inline="no" virt="non-virtual">
         <type>void</type>
@@ -73,7 +73,7 @@
         </detaileddescription>
         <inbodydescription>
         </inbodydescription>
-        <location file="C:/Users/DonsterLaptop/Documents/Robot288/cpre288_generalpurposeautomatedrobot/Robot/Utils/timer.c" line="33" column="1" bodyfile="C:/Users/DonsterLaptop/Documents/Robot288/cpre288_generalpurposeautomatedrobot/Robot/Utils/timer.c" bodystart="33" bodyend="44"/>
+        <location file="C:/Users/DonsterLaptop/Documents/Robot288/cpre288_generalpurposeautomatedrobot/Robot/Utils/timer.c" line="37" column="1" bodyfile="C:/Users/DonsterLaptop/Documents/Robot288/cpre288_generalpurposeautomatedrobot/Robot/Utils/timer.c" bodystart="37" bodyend="48"/>
       </memberdef>
       <memberdef kind="function" id="timer_8c_1aa08f6f11a09e2494422193bf0f684614" prot="public" static="no" const="no" explicit="no" inline="no" virt="non-virtual">
         <type>void</type>
@@ -90,7 +90,7 @@
         </detaileddescription>
         <inbodydescription>
         </inbodydescription>
-        <location file="C:/Users/DonsterLaptop/Documents/Robot288/cpre288_generalpurposeautomatedrobot/Robot/Utils/timer.c" line="46" column="1" bodyfile="C:/Users/DonsterLaptop/Documents/Robot288/cpre288_generalpurposeautomatedrobot/Robot/Utils/timer.c" bodystart="46" bodyend="75"/>
+        <location file="C:/Users/DonsterLaptop/Documents/Robot288/cpre288_generalpurposeautomatedrobot/Robot/Utils/timer.c" line="50" column="1" bodyfile="C:/Users/DonsterLaptop/Documents/Robot288/cpre288_generalpurposeautomatedrobot/Robot/Utils/timer.c" bodystart="50" bodyend="79"/>
       </memberdef>
       <memberdef kind="function" id="timer_8c_1a3d897081503b0a7d6d9effeaa463c2b5" prot="public" static="no" const="no" explicit="no" inline="no" virt="non-virtual">
         <type>void</type>
@@ -106,7 +106,7 @@
         </detaileddescription>
         <inbodydescription>
         </inbodydescription>
-        <location file="C:/Users/DonsterLaptop/Documents/Robot288/cpre288_generalpurposeautomatedrobot/Robot/Utils/timer.c" line="77" column="1" bodyfile="C:/Users/DonsterLaptop/Documents/Robot288/cpre288_generalpurposeautomatedrobot/Robot/Utils/timer.c" bodystart="77" bodyend="84"/>
+        <location file="C:/Users/DonsterLaptop/Documents/Robot288/cpre288_generalpurposeautomatedrobot/Robot/Utils/timer.c" line="81" column="1" bodyfile="C:/Users/DonsterLaptop/Documents/Robot288/cpre288_generalpurposeautomatedrobot/Robot/Utils/timer.c" bodystart="81" bodyend="88"/>
       </memberdef>
       <memberdef kind="function" id="timer_8c_1a43a678f95810bcc411845f6335ac533c" prot="public" static="no" const="no" explicit="no" inline="no" virt="non-virtual">
         <type>clock_t</type>
@@ -122,7 +122,7 @@
         </detaileddescription>
         <inbodydescription>
         </inbodydescription>
-        <location file="C:/Users/DonsterLaptop/Documents/Robot288/cpre288_generalpurposeautomatedrobot/Robot/Utils/timer.c" line="86" column="1" bodyfile="C:/Users/DonsterLaptop/Documents/Robot288/cpre288_generalpurposeautomatedrobot/Robot/Utils/timer.c" bodystart="86" bodyend="117"/>
+        <location file="C:/Users/DonsterLaptop/Documents/Robot288/cpre288_generalpurposeautomatedrobot/Robot/Utils/timer.c" line="90" column="1" bodyfile="C:/Users/DonsterLaptop/Documents/Robot288/cpre288_generalpurposeautomatedrobot/Robot/Utils/timer.c" bodystart="90" bodyend="121"/>
       </memberdef>
       <memberdef kind="function" id="timer_8c_1ab132d5e330af878718aa25f238afb3c5" prot="public" static="no" const="no" explicit="no" inline="no" virt="non-virtual">
         <type>clock_t</type>
@@ -138,7 +138,7 @@
         </detaileddescription>
         <inbodydescription>
         </inbodydescription>
-        <location file="C:/Users/DonsterLaptop/Documents/Robot288/cpre288_generalpurposeautomatedrobot/Robot/Utils/timer.c" line="119" column="1" bodyfile="C:/Users/DonsterLaptop/Documents/Robot288/cpre288_generalpurposeautomatedrobot/Robot/Utils/timer.c" bodystart="119" bodyend="122"/>
+        <location file="C:/Users/DonsterLaptop/Documents/Robot288/cpre288_generalpurposeautomatedrobot/Robot/Utils/timer.c" line="123" column="1" bodyfile="C:/Users/DonsterLaptop/Documents/Robot288/cpre288_generalpurposeautomatedrobot/Robot/Utils/timer.c" bodystart="123" bodyend="126"/>
       </memberdef>
       <memberdef kind="function" id="timer_8c_1a599f7a15d9067ffb8f32bf0a307e7274" prot="public" static="no" const="no" explicit="no" inline="no" virt="non-virtual">
         <type>void</type>
@@ -154,136 +154,133 @@
         </detaileddescription>
         <inbodydescription>
         </inbodydescription>
-        <location file="C:/Users/DonsterLaptop/Documents/Robot288/cpre288_generalpurposeautomatedrobot/Robot/Utils/timer.c" line="124" column="1" bodyfile="C:/Users/DonsterLaptop/Documents/Robot288/cpre288_generalpurposeautomatedrobot/Robot/Utils/timer.c" bodystart="124" bodyend="127"/>
+        <location file="C:/Users/DonsterLaptop/Documents/Robot288/cpre288_generalpurposeautomatedrobot/Robot/Utils/timer.c" line="128" column="1" bodyfile="C:/Users/DonsterLaptop/Documents/Robot288/cpre288_generalpurposeautomatedrobot/Robot/Utils/timer.c" bodystart="128" bodyend="131"/>
       </memberdef>
       </sectiondef>
     <briefdescription>
-    </briefdescription>
+<para>Library Functions for pause timer. </para>    </briefdescription>
     <detaileddescription>
-    </detaileddescription>
+<para><simplesect kind="author"><para>Eric Middleton</para></simplesect>
+<simplesect kind="date"><para>2016-03-03 </para></simplesect>
+</para>    </detaileddescription>
     <programlisting>
-<codeline lineno="1"><highlight class="comment">/*</highlight></codeline>
-<codeline lineno="2"><highlight class="comment"><sp/>*<sp/>Timer.cpp</highlight></codeline>
-<codeline lineno="3"><highlight class="comment"><sp/>*</highlight></codeline>
-<codeline lineno="4"><highlight class="comment"><sp/>*<sp/><sp/>@author<sp/>Eric<sp/>Middleton</highlight></codeline>
-<codeline lineno="5"><highlight class="comment"><sp/>*/</highlight><highlight class="normal"></highlight></codeline>
-<codeline lineno="6"><highlight class="normal"></highlight></codeline>
-<codeline lineno="7"><highlight class="normal"></highlight><highlight class="preprocessor">#include<sp/>&quot;Timer.h&quot;</highlight><highlight class="normal"></highlight></codeline>
-<codeline lineno="8"><highlight class="normal"></highlight></codeline>
-<codeline lineno="9"><highlight class="normal"></highlight><highlight class="keyword">volatile</highlight><highlight class="normal"><sp/>uint32_t<sp/>_timer_ticks;</highlight></codeline>
-<codeline lineno="10"><highlight class="normal"></highlight></codeline>
-<codeline lineno="11"><highlight class="normal"></highlight><highlight class="keywordtype">void</highlight><highlight class="normal"><sp/>timer_waitMillis(uint32_t<sp/>millis)</highlight></codeline>
-<codeline lineno="12"><highlight class="normal">{</highlight></codeline>
-<codeline lineno="14"><highlight class="normal"><sp/><sp/><sp/><sp/>timer_startTimer(999);</highlight></codeline>
-<codeline lineno="15"><highlight class="normal"></highlight></codeline>
-<codeline lineno="17"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">while</highlight><highlight class="normal"><sp/>(millis<sp/>&gt;<sp/>0)</highlight></codeline>
-<codeline lineno="18"><highlight class="normal"><sp/><sp/><sp/><sp/>{</highlight></codeline>
-<codeline lineno="20"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">while</highlight><highlight class="normal"><sp/>(!(TIMER5_RIS_R<sp/>&amp;<sp/>TIMER_RIS_TATORIS))</highlight></codeline>
-<codeline lineno="21"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>;</highlight></codeline>
-<codeline lineno="22"><highlight class="normal"></highlight></codeline>
-<codeline lineno="24"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>TIMER5_ICR_R<sp/>|=<sp/>TIMER_RIS_TATORIS;</highlight></codeline>
-<codeline lineno="25"><highlight class="normal"></highlight></codeline>
-<codeline lineno="26"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>millis--;</highlight></codeline>
-<codeline lineno="27"><highlight class="normal"><sp/><sp/><sp/><sp/>}</highlight></codeline>
-<codeline lineno="28"><highlight class="normal"></highlight></codeline>
-<codeline lineno="30"><highlight class="normal"><sp/><sp/><sp/><sp/>timer_stopTimer();</highlight></codeline>
-<codeline lineno="31"><highlight class="normal">}</highlight></codeline>
+<codeline lineno="1"></codeline>
+<codeline lineno="11"><highlight class="preprocessor">#include<sp/>&quot;<ref refid="timer_8h" kindref="compound">Timer.h</ref>&quot;</highlight><highlight class="normal"></highlight></codeline>
+<codeline lineno="12"><highlight class="normal"></highlight></codeline>
+<codeline lineno="13"><highlight class="normal"></highlight><highlight class="keyword">volatile</highlight><highlight class="normal"><sp/>uint32_t<sp/>_timer_ticks;</highlight></codeline>
+<codeline lineno="14"><highlight class="normal"></highlight></codeline>
+<codeline lineno="15" refid="timer_8h_1a7e2a3b4520e885e5e7d40fa87e242a75" refkind="member"><highlight class="normal"></highlight><highlight class="keywordtype">void</highlight><highlight class="normal"><sp/><ref refid="timer_8c_1a7e2a3b4520e885e5e7d40fa87e242a75" kindref="member">timer_waitMillis</ref>(uint32_t<sp/>millis)</highlight></codeline>
+<codeline lineno="16"><highlight class="normal">{</highlight></codeline>
+<codeline lineno="18"><highlight class="normal"><sp/><sp/><sp/><sp/>timer_startTimer(999);</highlight></codeline>
+<codeline lineno="19"><highlight class="normal"></highlight></codeline>
+<codeline lineno="21"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">while</highlight><highlight class="normal"><sp/>(millis<sp/>&gt;<sp/>0)</highlight></codeline>
+<codeline lineno="22"><highlight class="normal"><sp/><sp/><sp/><sp/>{</highlight></codeline>
+<codeline lineno="24"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">while</highlight><highlight class="normal"><sp/>(!(TIMER5_RIS_R<sp/>&amp;<sp/>TIMER_RIS_TATORIS))</highlight></codeline>
+<codeline lineno="25"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>;</highlight></codeline>
+<codeline lineno="26"><highlight class="normal"></highlight></codeline>
+<codeline lineno="28"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>TIMER5_ICR_R<sp/>|=<sp/>TIMER_RIS_TATORIS;</highlight></codeline>
+<codeline lineno="29"><highlight class="normal"></highlight></codeline>
+<codeline lineno="30"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>millis--;</highlight></codeline>
+<codeline lineno="31"><highlight class="normal"><sp/><sp/><sp/><sp/>}</highlight></codeline>
 <codeline lineno="32"><highlight class="normal"></highlight></codeline>
-<codeline lineno="33"><highlight class="normal"></highlight><highlight class="keywordtype">void</highlight><highlight class="normal"><sp/>timer_waitMicros(uint16_t<sp/>micros)</highlight></codeline>
-<codeline lineno="34"><highlight class="normal">{</highlight></codeline>
-<codeline lineno="35"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="comment">//Start<sp/>timer<sp/>with<sp/>period<sp/>of<sp/>1us</highlight><highlight class="normal"></highlight></codeline>
-<codeline lineno="36"><highlight class="normal"><sp/><sp/><sp/><sp/>timer_startTimer(micros<sp/>-<sp/>1);</highlight></codeline>
-<codeline lineno="37"><highlight class="normal"></highlight></codeline>
-<codeline lineno="38"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">while</highlight><highlight class="normal"><sp/>(!(TIMER5_RIS_R<sp/>&amp;<sp/>TIMER_RIS_TATORIS))</highlight></codeline>
-<codeline lineno="39"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>;</highlight></codeline>
-<codeline lineno="40"><highlight class="normal"></highlight></codeline>
-<codeline lineno="41"><highlight class="normal"><sp/><sp/><sp/><sp/>TIMER5_ICR_R<sp/>|=<sp/>TIMER_RIS_TATORIS;</highlight></codeline>
-<codeline lineno="42"><highlight class="normal"></highlight></codeline>
-<codeline lineno="43"><highlight class="normal"><sp/><sp/><sp/><sp/>timer_stopTimer();</highlight></codeline>
-<codeline lineno="44"><highlight class="normal">}</highlight></codeline>
-<codeline lineno="45"><highlight class="normal"></highlight></codeline>
-<codeline lineno="46"><highlight class="normal"></highlight><highlight class="keywordtype">void</highlight><highlight class="normal"><sp/>timer_startTimer(uint16_t<sp/>startValue)</highlight></codeline>
-<codeline lineno="47"><highlight class="normal">{</highlight></codeline>
-<codeline lineno="48"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="comment">//Enable<sp/>Timer5</highlight><highlight class="normal"></highlight></codeline>
-<codeline lineno="49"><highlight class="normal"><sp/><sp/><sp/><sp/>SYSCTL_RCGCTIMER_R<sp/>|=<sp/>SYSCTL_RCGCTIMER_R5;</highlight></codeline>
-<codeline lineno="50"><highlight class="normal"></highlight></codeline>
-<codeline lineno="51"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="comment">//Disable<sp/>timer<sp/>(clear<sp/>bit<sp/>TnEN<sp/>in<sp/>GPTMCTL)</highlight><highlight class="normal"></highlight></codeline>
-<codeline lineno="52"><highlight class="normal"><sp/><sp/><sp/><sp/>TIMER5_CTL_R<sp/>&amp;=<sp/>~TIMER_CTL_TAEN;</highlight></codeline>
-<codeline lineno="53"><highlight class="normal"></highlight></codeline>
-<codeline lineno="54"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="comment">//Set<sp/>as<sp/>16-bit<sp/>timer</highlight><highlight class="normal"></highlight></codeline>
-<codeline lineno="55"><highlight class="normal"><sp/><sp/><sp/><sp/>TIMER5_CFG_R<sp/>=<sp/>TIMER_CFG_16_BIT;</highlight></codeline>
-<codeline lineno="56"><highlight class="normal"></highlight></codeline>
-<codeline lineno="57"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="comment">//Configure<sp/>the<sp/>timer<sp/>for<sp/>periodic<sp/>mode</highlight><highlight class="normal"></highlight></codeline>
-<codeline lineno="58"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="comment">//and<sp/>countdown</highlight><highlight class="normal"></highlight></codeline>
-<codeline lineno="59"><highlight class="normal"><sp/><sp/><sp/><sp/>TIMER5_TAMR_R<sp/>=<sp/>TIMER_TAMR_TAMR_PERIOD;</highlight></codeline>
+<codeline lineno="34"><highlight class="normal"><sp/><sp/><sp/><sp/>timer_stopTimer();</highlight></codeline>
+<codeline lineno="35"><highlight class="normal">}</highlight></codeline>
+<codeline lineno="36"><highlight class="normal"></highlight></codeline>
+<codeline lineno="37"><highlight class="normal"></highlight><highlight class="keywordtype">void</highlight><highlight class="normal"><sp/>timer_waitMicros(uint16_t<sp/>micros)</highlight></codeline>
+<codeline lineno="38"><highlight class="normal">{</highlight></codeline>
+<codeline lineno="39"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="comment">//Start<sp/>timer<sp/>with<sp/>period<sp/>of<sp/>1us</highlight><highlight class="normal"></highlight></codeline>
+<codeline lineno="40"><highlight class="normal"><sp/><sp/><sp/><sp/>timer_startTimer(micros<sp/>-<sp/>1);</highlight></codeline>
+<codeline lineno="41"><highlight class="normal"></highlight></codeline>
+<codeline lineno="42"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">while</highlight><highlight class="normal"><sp/>(!(TIMER5_RIS_R<sp/>&amp;<sp/>TIMER_RIS_TATORIS))</highlight></codeline>
+<codeline lineno="43"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>;</highlight></codeline>
+<codeline lineno="44"><highlight class="normal"></highlight></codeline>
+<codeline lineno="45"><highlight class="normal"><sp/><sp/><sp/><sp/>TIMER5_ICR_R<sp/>|=<sp/>TIMER_RIS_TATORIS;</highlight></codeline>
+<codeline lineno="46"><highlight class="normal"></highlight></codeline>
+<codeline lineno="47"><highlight class="normal"><sp/><sp/><sp/><sp/>timer_stopTimer();</highlight></codeline>
+<codeline lineno="48"><highlight class="normal">}</highlight></codeline>
+<codeline lineno="49"><highlight class="normal"></highlight></codeline>
+<codeline lineno="50"><highlight class="normal"></highlight><highlight class="keywordtype">void</highlight><highlight class="normal"><sp/>timer_startTimer(uint16_t<sp/>startValue)</highlight></codeline>
+<codeline lineno="51"><highlight class="normal">{</highlight></codeline>
+<codeline lineno="52"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="comment">//Enable<sp/>Timer5</highlight><highlight class="normal"></highlight></codeline>
+<codeline lineno="53"><highlight class="normal"><sp/><sp/><sp/><sp/>SYSCTL_RCGCTIMER_R<sp/>|=<sp/>SYSCTL_RCGCTIMER_R5;</highlight></codeline>
+<codeline lineno="54"><highlight class="normal"></highlight></codeline>
+<codeline lineno="55"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="comment">//Disable<sp/>timer<sp/>(clear<sp/>bit<sp/>TnEN<sp/>in<sp/>GPTMCTL)</highlight><highlight class="normal"></highlight></codeline>
+<codeline lineno="56"><highlight class="normal"><sp/><sp/><sp/><sp/>TIMER5_CTL_R<sp/>&amp;=<sp/>~TIMER_CTL_TAEN;</highlight></codeline>
+<codeline lineno="57"><highlight class="normal"></highlight></codeline>
+<codeline lineno="58"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="comment">//Set<sp/>as<sp/>16-bit<sp/>timer</highlight><highlight class="normal"></highlight></codeline>
+<codeline lineno="59"><highlight class="normal"><sp/><sp/><sp/><sp/>TIMER5_CFG_R<sp/>=<sp/>TIMER_CFG_16_BIT;</highlight></codeline>
 <codeline lineno="60"><highlight class="normal"></highlight></codeline>
-<codeline lineno="61"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="comment">//Load<sp/>initial<sp/>timer<sp/>value</highlight><highlight class="normal"></highlight></codeline>
-<codeline lineno="62"><highlight class="normal"><sp/><sp/><sp/><sp/>TIMER5_TAILR_R<sp/>=<sp/>startValue;</highlight></codeline>
-<codeline lineno="63"><highlight class="normal"></highlight></codeline>
-<codeline lineno="64"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="comment">//Clear<sp/>the<sp/>timeout<sp/>flag</highlight><highlight class="normal"></highlight></codeline>
-<codeline lineno="65"><highlight class="normal"><sp/><sp/><sp/><sp/>TIMER5_ICR_R<sp/>=<sp/>TIMER_ICR_TATOCINT;</highlight></codeline>
-<codeline lineno="66"><highlight class="normal"></highlight></codeline>
-<codeline lineno="67"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="comment">//Set<sp/>the<sp/>prescaler<sp/>to<sp/>15<sp/>(period<sp/>=<sp/>1us)</highlight><highlight class="normal"></highlight></codeline>
-<codeline lineno="68"><highlight class="normal"><sp/><sp/><sp/><sp/>TIMER5_TAPR_R<sp/>=<sp/>15;</highlight></codeline>
-<codeline lineno="69"><highlight class="normal"></highlight></codeline>
-<codeline lineno="70"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="comment">//Clear<sp/>the<sp/>interrupt<sp/>mask<sp/>register</highlight><highlight class="normal"></highlight></codeline>
-<codeline lineno="71"><highlight class="normal"><sp/><sp/><sp/><sp/>TIMER5_IMR_R<sp/>=<sp/>0;</highlight></codeline>
-<codeline lineno="72"><highlight class="normal"></highlight></codeline>
-<codeline lineno="73"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="comment">//Enable<sp/>Timer5<sp/>A</highlight><highlight class="normal"></highlight></codeline>
-<codeline lineno="74"><highlight class="normal"><sp/><sp/><sp/><sp/>TIMER5_CTL_R<sp/>|=<sp/>TIMER_CTL_TAEN;</highlight></codeline>
-<codeline lineno="75"><highlight class="normal">}</highlight></codeline>
+<codeline lineno="61"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="comment">//Configure<sp/>the<sp/>timer<sp/>for<sp/>periodic<sp/>mode</highlight><highlight class="normal"></highlight></codeline>
+<codeline lineno="62"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="comment">//and<sp/>countdown</highlight><highlight class="normal"></highlight></codeline>
+<codeline lineno="63"><highlight class="normal"><sp/><sp/><sp/><sp/>TIMER5_TAMR_R<sp/>=<sp/>TIMER_TAMR_TAMR_PERIOD;</highlight></codeline>
+<codeline lineno="64"><highlight class="normal"></highlight></codeline>
+<codeline lineno="65"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="comment">//Load<sp/>initial<sp/>timer<sp/>value</highlight><highlight class="normal"></highlight></codeline>
+<codeline lineno="66"><highlight class="normal"><sp/><sp/><sp/><sp/>TIMER5_TAILR_R<sp/>=<sp/>startValue;</highlight></codeline>
+<codeline lineno="67"><highlight class="normal"></highlight></codeline>
+<codeline lineno="68"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="comment">//Clear<sp/>the<sp/>timeout<sp/>flag</highlight><highlight class="normal"></highlight></codeline>
+<codeline lineno="69"><highlight class="normal"><sp/><sp/><sp/><sp/>TIMER5_ICR_R<sp/>=<sp/>TIMER_ICR_TATOCINT;</highlight></codeline>
+<codeline lineno="70"><highlight class="normal"></highlight></codeline>
+<codeline lineno="71"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="comment">//Set<sp/>the<sp/>prescaler<sp/>to<sp/>15<sp/>(period<sp/>=<sp/>1us)</highlight><highlight class="normal"></highlight></codeline>
+<codeline lineno="72"><highlight class="normal"><sp/><sp/><sp/><sp/>TIMER5_TAPR_R<sp/>=<sp/>15;</highlight></codeline>
+<codeline lineno="73"><highlight class="normal"></highlight></codeline>
+<codeline lineno="74"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="comment">//Clear<sp/>the<sp/>interrupt<sp/>mask<sp/>register</highlight><highlight class="normal"></highlight></codeline>
+<codeline lineno="75"><highlight class="normal"><sp/><sp/><sp/><sp/>TIMER5_IMR_R<sp/>=<sp/>0;</highlight></codeline>
 <codeline lineno="76"><highlight class="normal"></highlight></codeline>
-<codeline lineno="77"><highlight class="normal"></highlight><highlight class="keywordtype">void</highlight><highlight class="normal"><sp/>timer_stopTimer(</highlight><highlight class="keywordtype">void</highlight><highlight class="normal">)</highlight></codeline>
-<codeline lineno="78"><highlight class="normal">{</highlight></codeline>
-<codeline lineno="79"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="comment">//Disable<sp/>timer<sp/>(clear<sp/>bit<sp/>TnEN<sp/>in<sp/>GPTMCTL)</highlight><highlight class="normal"></highlight></codeline>
-<codeline lineno="80"><highlight class="normal"><sp/><sp/><sp/><sp/>TIMER5_CTL_R<sp/>&amp;=<sp/>~TIMER_CTL_TAEN;</highlight></codeline>
-<codeline lineno="81"><highlight class="normal"></highlight></codeline>
-<codeline lineno="82"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="comment">//Disable<sp/>system<sp/>control<sp/>for<sp/>Timer1</highlight><highlight class="normal"></highlight></codeline>
-<codeline lineno="83"><highlight class="normal"><sp/><sp/><sp/><sp/>SYSCTL_RCGCTIMER_R<sp/>&amp;=<sp/>~SYSCTL_RCGCTIMER_R5;</highlight></codeline>
-<codeline lineno="84"><highlight class="normal">}</highlight></codeline>
+<codeline lineno="77"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="comment">//Enable<sp/>Timer5<sp/>A</highlight><highlight class="normal"></highlight></codeline>
+<codeline lineno="78"><highlight class="normal"><sp/><sp/><sp/><sp/>TIMER5_CTL_R<sp/>|=<sp/>TIMER_CTL_TAEN;</highlight></codeline>
+<codeline lineno="79"><highlight class="normal">}</highlight></codeline>
+<codeline lineno="80"><highlight class="normal"></highlight></codeline>
+<codeline lineno="81"><highlight class="normal"></highlight><highlight class="keywordtype">void</highlight><highlight class="normal"><sp/>timer_stopTimer(</highlight><highlight class="keywordtype">void</highlight><highlight class="normal">)</highlight></codeline>
+<codeline lineno="82"><highlight class="normal">{</highlight></codeline>
+<codeline lineno="83"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="comment">//Disable<sp/>timer<sp/>(clear<sp/>bit<sp/>TnEN<sp/>in<sp/>GPTMCTL)</highlight><highlight class="normal"></highlight></codeline>
+<codeline lineno="84"><highlight class="normal"><sp/><sp/><sp/><sp/>TIMER5_CTL_R<sp/>&amp;=<sp/>~TIMER_CTL_TAEN;</highlight></codeline>
 <codeline lineno="85"><highlight class="normal"></highlight></codeline>
-<codeline lineno="86"><highlight class="normal">clock_t<sp/>timer_startClock(</highlight><highlight class="keywordtype">void</highlight><highlight class="normal">)</highlight></codeline>
-<codeline lineno="87"><highlight class="normal">{</highlight></codeline>
-<codeline lineno="88"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="comment">//Enable<sp/>Timer5</highlight><highlight class="normal"></highlight></codeline>
-<codeline lineno="89"><highlight class="normal"><sp/><sp/><sp/><sp/>SYSCTL_RCGCTIMER_R<sp/>|=<sp/>SYSCTL_RCGCTIMER_R5;</highlight></codeline>
-<codeline lineno="90"><highlight class="normal"></highlight></codeline>
-<codeline lineno="91"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="comment">//Disable<sp/>timer<sp/>(clear<sp/>bit<sp/>TnEN<sp/>in<sp/>GPTMCTL)</highlight><highlight class="normal"></highlight></codeline>
-<codeline lineno="92"><highlight class="normal"><sp/><sp/><sp/><sp/>TIMER5_CTL_R<sp/>&amp;=<sp/>~TIMER_CTL_TBEN;</highlight></codeline>
-<codeline lineno="93"><highlight class="normal"></highlight></codeline>
-<codeline lineno="94"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="comment">//Set<sp/>as<sp/>16-bit<sp/>timer</highlight><highlight class="normal"></highlight></codeline>
-<codeline lineno="95"><highlight class="normal"><sp/><sp/><sp/><sp/>TIMER5_CFG_R<sp/>=<sp/>TIMER_CFG_16_BIT;</highlight></codeline>
-<codeline lineno="96"><highlight class="normal"></highlight></codeline>
-<codeline lineno="97"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="comment">//Configure<sp/>the<sp/>timer<sp/>for<sp/>periodic<sp/>mode</highlight><highlight class="normal"></highlight></codeline>
-<codeline lineno="98"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="comment">//and<sp/>countdown</highlight><highlight class="normal"></highlight></codeline>
-<codeline lineno="99"><highlight class="normal"><sp/><sp/><sp/><sp/>TIMER5_TBMR_R<sp/>=<sp/>TIMER_TBMR_TBMR_PERIOD;</highlight></codeline>
+<codeline lineno="86"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="comment">//Disable<sp/>system<sp/>control<sp/>for<sp/>Timer1</highlight><highlight class="normal"></highlight></codeline>
+<codeline lineno="87"><highlight class="normal"><sp/><sp/><sp/><sp/>SYSCTL_RCGCTIMER_R<sp/>&amp;=<sp/>~SYSCTL_RCGCTIMER_R5;</highlight></codeline>
+<codeline lineno="88"><highlight class="normal">}</highlight></codeline>
+<codeline lineno="89"><highlight class="normal"></highlight></codeline>
+<codeline lineno="90"><highlight class="normal">clock_t<sp/>timer_startClock(</highlight><highlight class="keywordtype">void</highlight><highlight class="normal">)</highlight></codeline>
+<codeline lineno="91"><highlight class="normal">{</highlight></codeline>
+<codeline lineno="92"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="comment">//Enable<sp/>Timer5</highlight><highlight class="normal"></highlight></codeline>
+<codeline lineno="93"><highlight class="normal"><sp/><sp/><sp/><sp/>SYSCTL_RCGCTIMER_R<sp/>|=<sp/>SYSCTL_RCGCTIMER_R5;</highlight></codeline>
+<codeline lineno="94"><highlight class="normal"></highlight></codeline>
+<codeline lineno="95"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="comment">//Disable<sp/>timer<sp/>(clear<sp/>bit<sp/>TnEN<sp/>in<sp/>GPTMCTL)</highlight><highlight class="normal"></highlight></codeline>
+<codeline lineno="96"><highlight class="normal"><sp/><sp/><sp/><sp/>TIMER5_CTL_R<sp/>&amp;=<sp/>~TIMER_CTL_TBEN;</highlight></codeline>
+<codeline lineno="97"><highlight class="normal"></highlight></codeline>
+<codeline lineno="98"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="comment">//Set<sp/>as<sp/>16-bit<sp/>timer</highlight><highlight class="normal"></highlight></codeline>
+<codeline lineno="99"><highlight class="normal"><sp/><sp/><sp/><sp/>TIMER5_CFG_R<sp/>=<sp/>TIMER_CFG_16_BIT;</highlight></codeline>
 <codeline lineno="100"><highlight class="normal"></highlight></codeline>
-<codeline lineno="101"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="comment">//Load<sp/>initial<sp/>timer<sp/>value</highlight><highlight class="normal"></highlight></codeline>
-<codeline lineno="102"><highlight class="normal"><sp/><sp/><sp/><sp/>TIMER5_TBILR_R<sp/>=<sp/>0;</highlight></codeline>
-<codeline lineno="103"><highlight class="normal"></highlight></codeline>
-<codeline lineno="104"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="comment">//Clear<sp/>the<sp/>timeout<sp/>flag</highlight><highlight class="normal"></highlight></codeline>
-<codeline lineno="105"><highlight class="normal"><sp/><sp/><sp/><sp/>TIMER5_ICR_R<sp/>=<sp/>TIMER_ICR_TBTOCINT;</highlight></codeline>
-<codeline lineno="106"><highlight class="normal"></highlight></codeline>
-<codeline lineno="107"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="comment">//Set<sp/>the<sp/>prescaler<sp/>to<sp/>16000<sp/>(period<sp/>=<sp/>1us)</highlight><highlight class="normal"></highlight></codeline>
-<codeline lineno="108"><highlight class="normal"><sp/><sp/><sp/><sp/>TIMER5_TBPR_R<sp/>=<sp/>16000<sp/>-<sp/>1;</highlight></codeline>
-<codeline lineno="109"><highlight class="normal"></highlight></codeline>
-<codeline lineno="110"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="comment">//Clear<sp/>the<sp/>interrupt<sp/>mask<sp/>register</highlight><highlight class="normal"></highlight></codeline>
-<codeline lineno="111"><highlight class="normal"><sp/><sp/><sp/><sp/>TIMER5_IMR_R<sp/>=<sp/>0;</highlight></codeline>
-<codeline lineno="112"><highlight class="normal"></highlight></codeline>
-<codeline lineno="113"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="comment">//Enable<sp/>Timer5<sp/>B</highlight><highlight class="normal"></highlight></codeline>
-<codeline lineno="114"><highlight class="normal"><sp/><sp/><sp/><sp/>TIMER5_CTL_R<sp/>|=<sp/>TIMER_CTL_TBEN;</highlight></codeline>
-<codeline lineno="115"><highlight class="normal"></highlight></codeline>
-<codeline lineno="116"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">return</highlight><highlight class="normal"><sp/>TIMER5_TBR_R;</highlight></codeline>
-<codeline lineno="117"><highlight class="normal">}</highlight></codeline>
-<codeline lineno="118"><highlight class="normal"></highlight></codeline>
-<codeline lineno="119"><highlight class="normal">clock_t<sp/>timer_getClock(</highlight><highlight class="keywordtype">void</highlight><highlight class="normal">)</highlight></codeline>
-<codeline lineno="120"><highlight class="normal">{</highlight></codeline>
-<codeline lineno="121"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">return</highlight><highlight class="normal"><sp/>TIMER5_TBR_R;</highlight></codeline>
-<codeline lineno="122"><highlight class="normal">}</highlight></codeline>
-<codeline lineno="123"><highlight class="normal"></highlight></codeline>
-<codeline lineno="124"><highlight class="normal"></highlight><highlight class="keywordtype">void</highlight><highlight class="normal"><sp/>timer_stopClock(</highlight><highlight class="keywordtype">void</highlight><highlight class="normal">)</highlight></codeline>
-<codeline lineno="125"><highlight class="normal">{</highlight></codeline>
-<codeline lineno="126"><highlight class="normal"><sp/><sp/><sp/><sp/>TIMER5_CTL_R<sp/>&amp;=<sp/>~TIMER_CTL_TBEN;</highlight></codeline>
-<codeline lineno="127"><highlight class="normal">}</highlight></codeline>
+<codeline lineno="101"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="comment">//Configure<sp/>the<sp/>timer<sp/>for<sp/>periodic<sp/>mode</highlight><highlight class="normal"></highlight></codeline>
+<codeline lineno="102"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="comment">//and<sp/>countdown</highlight><highlight class="normal"></highlight></codeline>
+<codeline lineno="103"><highlight class="normal"><sp/><sp/><sp/><sp/>TIMER5_TBMR_R<sp/>=<sp/>TIMER_TBMR_TBMR_PERIOD;</highlight></codeline>
+<codeline lineno="104"><highlight class="normal"></highlight></codeline>
+<codeline lineno="105"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="comment">//Load<sp/>initial<sp/>timer<sp/>value</highlight><highlight class="normal"></highlight></codeline>
+<codeline lineno="106"><highlight class="normal"><sp/><sp/><sp/><sp/>TIMER5_TBILR_R<sp/>=<sp/>0;</highlight></codeline>
+<codeline lineno="107"><highlight class="normal"></highlight></codeline>
+<codeline lineno="108"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="comment">//Clear<sp/>the<sp/>timeout<sp/>flag</highlight><highlight class="normal"></highlight></codeline>
+<codeline lineno="109"><highlight class="normal"><sp/><sp/><sp/><sp/>TIMER5_ICR_R<sp/>=<sp/>TIMER_ICR_TBTOCINT;</highlight></codeline>
+<codeline lineno="110"><highlight class="normal"></highlight></codeline>
+<codeline lineno="111"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="comment">//Set<sp/>the<sp/>prescaler<sp/>to<sp/>16000<sp/>(period<sp/>=<sp/>1us)</highlight><highlight class="normal"></highlight></codeline>
+<codeline lineno="112"><highlight class="normal"><sp/><sp/><sp/><sp/>TIMER5_TBPR_R<sp/>=<sp/>16000<sp/>-<sp/>1;</highlight></codeline>
+<codeline lineno="113"><highlight class="normal"></highlight></codeline>
+<codeline lineno="114"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="comment">//Clear<sp/>the<sp/>interrupt<sp/>mask<sp/>register</highlight><highlight class="normal"></highlight></codeline>
+<codeline lineno="115"><highlight class="normal"><sp/><sp/><sp/><sp/>TIMER5_IMR_R<sp/>=<sp/>0;</highlight></codeline>
+<codeline lineno="116"><highlight class="normal"></highlight></codeline>
+<codeline lineno="117"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="comment">//Enable<sp/>Timer5<sp/>B</highlight><highlight class="normal"></highlight></codeline>
+<codeline lineno="118"><highlight class="normal"><sp/><sp/><sp/><sp/>TIMER5_CTL_R<sp/>|=<sp/>TIMER_CTL_TBEN;</highlight></codeline>
+<codeline lineno="119"><highlight class="normal"></highlight></codeline>
+<codeline lineno="120"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">return</highlight><highlight class="normal"><sp/>TIMER5_TBR_R;</highlight></codeline>
+<codeline lineno="121"><highlight class="normal">}</highlight></codeline>
+<codeline lineno="122"><highlight class="normal"></highlight></codeline>
+<codeline lineno="123"><highlight class="normal">clock_t<sp/>timer_getClock(</highlight><highlight class="keywordtype">void</highlight><highlight class="normal">)</highlight></codeline>
+<codeline lineno="124"><highlight class="normal">{</highlight></codeline>
+<codeline lineno="125"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">return</highlight><highlight class="normal"><sp/>TIMER5_TBR_R;</highlight></codeline>
+<codeline lineno="126"><highlight class="normal">}</highlight></codeline>
+<codeline lineno="127"><highlight class="normal"></highlight></codeline>
+<codeline lineno="128"><highlight class="normal"></highlight><highlight class="keywordtype">void</highlight><highlight class="normal"><sp/>timer_stopClock(</highlight><highlight class="keywordtype">void</highlight><highlight class="normal">)</highlight></codeline>
+<codeline lineno="129"><highlight class="normal">{</highlight></codeline>
+<codeline lineno="130"><highlight class="normal"><sp/><sp/><sp/><sp/>TIMER5_CTL_R<sp/>&amp;=<sp/>~TIMER_CTL_TBEN;</highlight></codeline>
+<codeline lineno="131"><highlight class="normal">}</highlight></codeline>
     </programlisting>
     <location file="C:/Users/DonsterLaptop/Documents/Robot288/cpre288_generalpurposeautomatedrobot/Robot/Utils/timer.c"/>
   </compounddef>
diff --git a/Doxygen/xml/timer_8h.xml b/Doxygen/xml/timer_8h.xml
index 2d88206ae869369fba013a95b895d543f72e6791..49fb20317746f9d9b31d435088fb237793fc33c7 100644
--- a/Doxygen/xml/timer_8h.xml
+++ b/Doxygen/xml/timer_8h.xml
@@ -80,11 +80,11 @@
       </node>
       <node id="376">
         <label>C:/Users/DonsterLaptop/Documents/Robot288/cpre288_generalpurposeautomatedrobot/Robot/Utils/lcd.c</label>
-        <link refid="lcd_8c_source"/>
+        <link refid="lcd_8c"/>
       </node>
       <node id="375">
         <label>C:/Users/DonsterLaptop/Documents/Robot288/cpre288_generalpurposeautomatedrobot/Robot/Utils/lcd.h</label>
-        <link refid="lcd_8h_source"/>
+        <link refid="lcd_8h"/>
         <childnode refid="365" relation="include">
         </childnode>
         <childnode refid="366" relation="include">
@@ -110,7 +110,7 @@
       </node>
       <node id="383">
         <label>C:/Users/DonsterLaptop/Documents/Robot288/cpre288_generalpurposeautomatedrobot/Robot/Utils/timer.c</label>
-        <link refid="timer_8c_source"/>
+        <link refid="timer_8c"/>
       </node>
       <node id="363">
         <label>C:/Users/DonsterLaptop/Documents/Robot288/cpre288_generalpurposeautomatedrobot/Robot/Utils/timer.h</label>
@@ -152,11 +152,11 @@
       </node>
       <node id="366">
         <label>C:/Users/DonsterLaptop/Documents/Robot288/cpre288_generalpurposeautomatedrobot/Robot/main.c</label>
-        <link refid="main_8c_source"/>
+        <link refid="main_8c"/>
       </node>
       <node id="380">
         <label>C:/Users/DonsterLaptop/Documents/Robot288/cpre288_generalpurposeautomatedrobot/Robot/Utils/open_interface.c</label>
-        <link refid="open__interface_8c_source"/>
+        <link refid="open__interface_8c"/>
       </node>
       <node id="382">
         <label>C:/Users/DonsterLaptop/Documents/Robot288/cpre288_generalpurposeautomatedrobot/Robot/Utils/Sound.h</label>
@@ -166,7 +166,7 @@
       </node>
       <node id="377">
         <label>C:/Users/DonsterLaptop/Documents/Robot288/cpre288_generalpurposeautomatedrobot/Robot/Utils/open_interface.h</label>
-        <link refid="open__interface_8h_source"/>
+        <link refid="open__interface_8h"/>
         <childnode refid="366" relation="include">
         </childnode>
         <childnode refid="367" relation="include">
@@ -191,7 +191,7 @@
         </detaileddescription>
         <inbodydescription>
         </inbodydescription>
-        <location file="C:/Users/DonsterLaptop/Documents/Robot288/cpre288_generalpurposeautomatedrobot/Robot/Utils/timer.h" line="15" column="9" bodyfile="C:/Users/DonsterLaptop/Documents/Robot288/cpre288_generalpurposeautomatedrobot/Robot/Utils/timer.h" bodystart="15" bodyend="-1"/>
+        <location file="C:/Users/DonsterLaptop/Documents/Robot288/cpre288_generalpurposeautomatedrobot/Robot/Utils/timer.h" line="17" column="9" bodyfile="C:/Users/DonsterLaptop/Documents/Robot288/cpre288_generalpurposeautomatedrobot/Robot/Utils/timer.h" bodystart="17" bodyend="-1"/>
       </memberdef>
       <memberdef kind="define" id="timer_8h_1a601923eba46784638244c1ebf2622a2a" prot="public" static="no">
         <name>BIT1</name>
@@ -202,7 +202,7 @@
         </detaileddescription>
         <inbodydescription>
         </inbodydescription>
-        <location file="C:/Users/DonsterLaptop/Documents/Robot288/cpre288_generalpurposeautomatedrobot/Robot/Utils/timer.h" line="16" column="9" bodyfile="C:/Users/DonsterLaptop/Documents/Robot288/cpre288_generalpurposeautomatedrobot/Robot/Utils/timer.h" bodystart="16" bodyend="-1"/>
+        <location file="C:/Users/DonsterLaptop/Documents/Robot288/cpre288_generalpurposeautomatedrobot/Robot/Utils/timer.h" line="18" column="9" bodyfile="C:/Users/DonsterLaptop/Documents/Robot288/cpre288_generalpurposeautomatedrobot/Robot/Utils/timer.h" bodystart="18" bodyend="-1"/>
       </memberdef>
       <memberdef kind="define" id="timer_8h_1a9c9560bccccb00174801c728f1ed1399" prot="public" static="no">
         <name>BIT2</name>
@@ -213,7 +213,7 @@
         </detaileddescription>
         <inbodydescription>
         </inbodydescription>
-        <location file="C:/Users/DonsterLaptop/Documents/Robot288/cpre288_generalpurposeautomatedrobot/Robot/Utils/timer.h" line="17" column="9" bodyfile="C:/Users/DonsterLaptop/Documents/Robot288/cpre288_generalpurposeautomatedrobot/Robot/Utils/timer.h" bodystart="17" bodyend="-1"/>
+        <location file="C:/Users/DonsterLaptop/Documents/Robot288/cpre288_generalpurposeautomatedrobot/Robot/Utils/timer.h" line="19" column="9" bodyfile="C:/Users/DonsterLaptop/Documents/Robot288/cpre288_generalpurposeautomatedrobot/Robot/Utils/timer.h" bodystart="19" bodyend="-1"/>
       </memberdef>
       <memberdef kind="define" id="timer_8h_1a8e44574a8a8becc885b05f3bc367ef6a" prot="public" static="no">
         <name>BIT3</name>
@@ -224,7 +224,7 @@
         </detaileddescription>
         <inbodydescription>
         </inbodydescription>
-        <location file="C:/Users/DonsterLaptop/Documents/Robot288/cpre288_generalpurposeautomatedrobot/Robot/Utils/timer.h" line="18" column="9" bodyfile="C:/Users/DonsterLaptop/Documents/Robot288/cpre288_generalpurposeautomatedrobot/Robot/Utils/timer.h" bodystart="18" bodyend="-1"/>
+        <location file="C:/Users/DonsterLaptop/Documents/Robot288/cpre288_generalpurposeautomatedrobot/Robot/Utils/timer.h" line="20" column="9" bodyfile="C:/Users/DonsterLaptop/Documents/Robot288/cpre288_generalpurposeautomatedrobot/Robot/Utils/timer.h" bodystart="20" bodyend="-1"/>
       </memberdef>
       <memberdef kind="define" id="timer_8h_1aa731e0b6cf75f4e637ee88959315f5e4" prot="public" static="no">
         <name>BIT4</name>
@@ -235,7 +235,7 @@
         </detaileddescription>
         <inbodydescription>
         </inbodydescription>
-        <location file="C:/Users/DonsterLaptop/Documents/Robot288/cpre288_generalpurposeautomatedrobot/Robot/Utils/timer.h" line="19" column="9" bodyfile="C:/Users/DonsterLaptop/Documents/Robot288/cpre288_generalpurposeautomatedrobot/Robot/Utils/timer.h" bodystart="19" bodyend="-1"/>
+        <location file="C:/Users/DonsterLaptop/Documents/Robot288/cpre288_generalpurposeautomatedrobot/Robot/Utils/timer.h" line="21" column="9" bodyfile="C:/Users/DonsterLaptop/Documents/Robot288/cpre288_generalpurposeautomatedrobot/Robot/Utils/timer.h" bodystart="21" bodyend="-1"/>
       </memberdef>
       <memberdef kind="define" id="timer_8h_1ae692bc3df48028ceb1ddc2534a993bb8" prot="public" static="no">
         <name>BIT5</name>
@@ -246,7 +246,7 @@
         </detaileddescription>
         <inbodydescription>
         </inbodydescription>
-        <location file="C:/Users/DonsterLaptop/Documents/Robot288/cpre288_generalpurposeautomatedrobot/Robot/Utils/timer.h" line="20" column="9" bodyfile="C:/Users/DonsterLaptop/Documents/Robot288/cpre288_generalpurposeautomatedrobot/Robot/Utils/timer.h" bodystart="20" bodyend="-1"/>
+        <location file="C:/Users/DonsterLaptop/Documents/Robot288/cpre288_generalpurposeautomatedrobot/Robot/Utils/timer.h" line="22" column="9" bodyfile="C:/Users/DonsterLaptop/Documents/Robot288/cpre288_generalpurposeautomatedrobot/Robot/Utils/timer.h" bodystart="22" bodyend="-1"/>
       </memberdef>
       <memberdef kind="define" id="timer_8h_1acc2d074401e2b6322ee8f03476c24677" prot="public" static="no">
         <name>BIT6</name>
@@ -257,7 +257,7 @@
         </detaileddescription>
         <inbodydescription>
         </inbodydescription>
-        <location file="C:/Users/DonsterLaptop/Documents/Robot288/cpre288_generalpurposeautomatedrobot/Robot/Utils/timer.h" line="21" column="9" bodyfile="C:/Users/DonsterLaptop/Documents/Robot288/cpre288_generalpurposeautomatedrobot/Robot/Utils/timer.h" bodystart="21" bodyend="-1"/>
+        <location file="C:/Users/DonsterLaptop/Documents/Robot288/cpre288_generalpurposeautomatedrobot/Robot/Utils/timer.h" line="23" column="9" bodyfile="C:/Users/DonsterLaptop/Documents/Robot288/cpre288_generalpurposeautomatedrobot/Robot/Utils/timer.h" bodystart="23" bodyend="-1"/>
       </memberdef>
       <memberdef kind="define" id="timer_8h_1aa6b8f3261ae9e2e1043380c192f7b5f0" prot="public" static="no">
         <name>BIT7</name>
@@ -268,7 +268,7 @@
         </detaileddescription>
         <inbodydescription>
         </inbodydescription>
-        <location file="C:/Users/DonsterLaptop/Documents/Robot288/cpre288_generalpurposeautomatedrobot/Robot/Utils/timer.h" line="22" column="9" bodyfile="C:/Users/DonsterLaptop/Documents/Robot288/cpre288_generalpurposeautomatedrobot/Robot/Utils/timer.h" bodystart="22" bodyend="-1"/>
+        <location file="C:/Users/DonsterLaptop/Documents/Robot288/cpre288_generalpurposeautomatedrobot/Robot/Utils/timer.h" line="24" column="9" bodyfile="C:/Users/DonsterLaptop/Documents/Robot288/cpre288_generalpurposeautomatedrobot/Robot/Utils/timer.h" bodystart="24" bodyend="-1"/>
       </memberdef>
       </sectiondef>
       <sectiondef kind="typedef">
@@ -283,7 +283,7 @@
         </detaileddescription>
         <inbodydescription>
         </inbodydescription>
-        <location file="C:/Users/DonsterLaptop/Documents/Robot288/cpre288_generalpurposeautomatedrobot/Robot/Utils/timer.h" line="24" column="1" bodyfile="C:/Users/DonsterLaptop/Documents/Robot288/cpre288_generalpurposeautomatedrobot/Robot/Utils/timer.h" bodystart="24" bodyend="-1"/>
+        <location file="C:/Users/DonsterLaptop/Documents/Robot288/cpre288_generalpurposeautomatedrobot/Robot/Utils/timer.h" line="26" column="1" bodyfile="C:/Users/DonsterLaptop/Documents/Robot288/cpre288_generalpurposeautomatedrobot/Robot/Utils/timer.h" bodystart="26" bodyend="-1"/>
       </memberdef>
       </sectiondef>
       <sectiondef kind="var">
@@ -298,7 +298,7 @@
         </detaileddescription>
         <inbodydescription>
         </inbodydescription>
-        <location file="C:/Users/DonsterLaptop/Documents/Robot288/cpre288_generalpurposeautomatedrobot/Robot/Utils/timer.h" line="29" column="1" bodyfile="C:/Users/DonsterLaptop/Documents/Robot288/cpre288_generalpurposeautomatedrobot/Robot/Utils/timer.c" bodystart="9" bodyend="-1"/>
+        <location file="C:/Users/DonsterLaptop/Documents/Robot288/cpre288_generalpurposeautomatedrobot/Robot/Utils/timer.h" line="31" column="1" bodyfile="C:/Users/DonsterLaptop/Documents/Robot288/cpre288_generalpurposeautomatedrobot/Robot/Utils/timer.c" bodystart="13" bodyend="-1"/>
       </memberdef>
       </sectiondef>
       <sectiondef kind="func">
@@ -317,7 +317,7 @@
         </detaileddescription>
         <inbodydescription>
 <para>Start timer with period of 1ms</para><para>loop until enough milliseconds have passed</para><para>wait until the millisecond timer has timed out</para><para>Reset the timeout flag</para><para>Stop the timer </para>        </inbodydescription>
-        <location file="C:/Users/DonsterLaptop/Documents/Robot288/cpre288_generalpurposeautomatedrobot/Robot/Utils/timer.h" line="31" column="1" bodyfile="C:/Users/DonsterLaptop/Documents/Robot288/cpre288_generalpurposeautomatedrobot/Robot/Utils/timer.c" bodystart="11" bodyend="31"/>
+        <location file="C:/Users/DonsterLaptop/Documents/Robot288/cpre288_generalpurposeautomatedrobot/Robot/Utils/timer.h" line="33" column="1" bodyfile="C:/Users/DonsterLaptop/Documents/Robot288/cpre288_generalpurposeautomatedrobot/Robot/Utils/timer.c" bodystart="15" bodyend="35"/>
       </memberdef>
       <memberdef kind="function" id="timer_8h_1abcd5da687b304e2354ddb88b72cde64a" prot="public" static="no" const="no" explicit="no" inline="no" virt="non-virtual">
         <type>void</type>
@@ -334,7 +334,7 @@
         </detaileddescription>
         <inbodydescription>
         </inbodydescription>
-        <location file="C:/Users/DonsterLaptop/Documents/Robot288/cpre288_generalpurposeautomatedrobot/Robot/Utils/timer.h" line="33" column="1" bodyfile="C:/Users/DonsterLaptop/Documents/Robot288/cpre288_generalpurposeautomatedrobot/Robot/Utils/timer.c" bodystart="33" bodyend="44"/>
+        <location file="C:/Users/DonsterLaptop/Documents/Robot288/cpre288_generalpurposeautomatedrobot/Robot/Utils/timer.h" line="35" column="1" bodyfile="C:/Users/DonsterLaptop/Documents/Robot288/cpre288_generalpurposeautomatedrobot/Robot/Utils/timer.c" bodystart="37" bodyend="48"/>
       </memberdef>
       <memberdef kind="function" id="timer_8h_1aa08f6f11a09e2494422193bf0f684614" prot="public" static="no" const="no" explicit="no" inline="no" virt="non-virtual">
         <type>void</type>
@@ -351,7 +351,7 @@
         </detaileddescription>
         <inbodydescription>
         </inbodydescription>
-        <location file="C:/Users/DonsterLaptop/Documents/Robot288/cpre288_generalpurposeautomatedrobot/Robot/Utils/timer.h" line="35" column="1" bodyfile="C:/Users/DonsterLaptop/Documents/Robot288/cpre288_generalpurposeautomatedrobot/Robot/Utils/timer.c" bodystart="46" bodyend="75"/>
+        <location file="C:/Users/DonsterLaptop/Documents/Robot288/cpre288_generalpurposeautomatedrobot/Robot/Utils/timer.h" line="37" column="1" bodyfile="C:/Users/DonsterLaptop/Documents/Robot288/cpre288_generalpurposeautomatedrobot/Robot/Utils/timer.c" bodystart="50" bodyend="79"/>
       </memberdef>
       <memberdef kind="function" id="timer_8h_1a3d897081503b0a7d6d9effeaa463c2b5" prot="public" static="no" const="no" explicit="no" inline="no" virt="non-virtual">
         <type>void</type>
@@ -367,7 +367,7 @@
         </detaileddescription>
         <inbodydescription>
         </inbodydescription>
-        <location file="C:/Users/DonsterLaptop/Documents/Robot288/cpre288_generalpurposeautomatedrobot/Robot/Utils/timer.h" line="37" column="1" bodyfile="C:/Users/DonsterLaptop/Documents/Robot288/cpre288_generalpurposeautomatedrobot/Robot/Utils/timer.c" bodystart="77" bodyend="84"/>
+        <location file="C:/Users/DonsterLaptop/Documents/Robot288/cpre288_generalpurposeautomatedrobot/Robot/Utils/timer.h" line="39" column="1" bodyfile="C:/Users/DonsterLaptop/Documents/Robot288/cpre288_generalpurposeautomatedrobot/Robot/Utils/timer.c" bodystart="81" bodyend="88"/>
       </memberdef>
       <memberdef kind="function" id="timer_8h_1a43a678f95810bcc411845f6335ac533c" prot="public" static="no" const="no" explicit="no" inline="no" virt="non-virtual">
         <type>clock_t</type>
@@ -383,7 +383,7 @@
         </detaileddescription>
         <inbodydescription>
         </inbodydescription>
-        <location file="C:/Users/DonsterLaptop/Documents/Robot288/cpre288_generalpurposeautomatedrobot/Robot/Utils/timer.h" line="39" column="1" bodyfile="C:/Users/DonsterLaptop/Documents/Robot288/cpre288_generalpurposeautomatedrobot/Robot/Utils/timer.c" bodystart="86" bodyend="117"/>
+        <location file="C:/Users/DonsterLaptop/Documents/Robot288/cpre288_generalpurposeautomatedrobot/Robot/Utils/timer.h" line="41" column="1" bodyfile="C:/Users/DonsterLaptop/Documents/Robot288/cpre288_generalpurposeautomatedrobot/Robot/Utils/timer.c" bodystart="90" bodyend="121"/>
       </memberdef>
       <memberdef kind="function" id="timer_8h_1ab132d5e330af878718aa25f238afb3c5" prot="public" static="no" const="no" explicit="no" inline="no" virt="non-virtual">
         <type>clock_t</type>
@@ -399,7 +399,7 @@
         </detaileddescription>
         <inbodydescription>
         </inbodydescription>
-        <location file="C:/Users/DonsterLaptop/Documents/Robot288/cpre288_generalpurposeautomatedrobot/Robot/Utils/timer.h" line="41" column="1" bodyfile="C:/Users/DonsterLaptop/Documents/Robot288/cpre288_generalpurposeautomatedrobot/Robot/Utils/timer.c" bodystart="119" bodyend="122"/>
+        <location file="C:/Users/DonsterLaptop/Documents/Robot288/cpre288_generalpurposeautomatedrobot/Robot/Utils/timer.h" line="43" column="1" bodyfile="C:/Users/DonsterLaptop/Documents/Robot288/cpre288_generalpurposeautomatedrobot/Robot/Utils/timer.c" bodystart="123" bodyend="126"/>
       </memberdef>
       <memberdef kind="function" id="timer_8h_1a599f7a15d9067ffb8f32bf0a307e7274" prot="public" static="no" const="no" explicit="no" inline="no" virt="non-virtual">
         <type>void</type>
@@ -415,59 +415,53 @@
         </detaileddescription>
         <inbodydescription>
         </inbodydescription>
-        <location file="C:/Users/DonsterLaptop/Documents/Robot288/cpre288_generalpurposeautomatedrobot/Robot/Utils/timer.h" line="43" column="1" bodyfile="C:/Users/DonsterLaptop/Documents/Robot288/cpre288_generalpurposeautomatedrobot/Robot/Utils/timer.c" bodystart="124" bodyend="127"/>
+        <location file="C:/Users/DonsterLaptop/Documents/Robot288/cpre288_generalpurposeautomatedrobot/Robot/Utils/timer.h" line="45" column="1" bodyfile="C:/Users/DonsterLaptop/Documents/Robot288/cpre288_generalpurposeautomatedrobot/Robot/Utils/timer.c" bodystart="128" bodyend="131"/>
       </memberdef>
       </sectiondef>
     <briefdescription>
-    </briefdescription>
+<para>Header file for <ref refid="timer_8c" kindref="compound">timer.c</ref> Library Functions for pause timer. </para>    </briefdescription>
     <detaileddescription>
-    </detaileddescription>
+<para><simplesect kind="author"><para>Eric Middleton (ericm)</para></simplesect>
+<simplesect kind="date"><para>2016-03-03 </para></simplesect>
+</para>    </detaileddescription>
     <programlisting>
-<codeline lineno="1"><highlight class="comment">/*</highlight></codeline>
-<codeline lineno="2"><highlight class="comment"><sp/>*<sp/><sp/><sp/><sp/><sp/><sp/>@file<sp/><sp/><sp/>timer.h</highlight></codeline>
-<codeline lineno="3"><highlight class="comment"><sp/>*</highlight></codeline>
-<codeline lineno="4"><highlight class="comment"><sp/>*<sp/><sp/><sp/><sp/><sp/><sp/>@brief<sp/><sp/>Header<sp/>file<sp/>for<sp/>timer.c</highlight></codeline>
-<codeline lineno="5"><highlight class="comment"><sp/>*<sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>Library<sp/>Functions<sp/>for<sp/>pause<sp/>timer</highlight></codeline>
-<codeline lineno="6"><highlight class="comment"><sp/>*<sp/><sp/>Created<sp/>on:<sp/>Mar<sp/>3,<sp/>2016</highlight></codeline>
-<codeline lineno="7"><highlight class="comment"><sp/>*<sp/><sp/><sp/><sp/><sp/><sp/>Author:<sp/>ericm</highlight></codeline>
-<codeline lineno="8"><highlight class="comment"><sp/>*/</highlight><highlight class="normal"></highlight></codeline>
-<codeline lineno="9"><highlight class="normal"></highlight></codeline>
-<codeline lineno="10"><highlight class="normal"></highlight><highlight class="preprocessor">#ifndef<sp/>TIMER_H_</highlight><highlight class="normal"></highlight></codeline>
-<codeline lineno="11"><highlight class="normal"></highlight><highlight class="preprocessor">#define<sp/>TIMER_H_</highlight><highlight class="normal"></highlight></codeline>
-<codeline lineno="12"><highlight class="normal"></highlight></codeline>
-<codeline lineno="13"><highlight class="normal"></highlight><highlight class="preprocessor">#include<sp/>&lt;stdint.h&gt;</highlight><highlight class="normal"></highlight></codeline>
+<codeline lineno="1"></codeline>
+<codeline lineno="12"><highlight class="preprocessor">#ifndef<sp/>TIMER_H_</highlight><highlight class="normal"></highlight></codeline>
+<codeline lineno="13"><highlight class="normal"></highlight><highlight class="preprocessor">#define<sp/>TIMER_H_</highlight><highlight class="normal"></highlight></codeline>
 <codeline lineno="14"><highlight class="normal"></highlight></codeline>
-<codeline lineno="15"><highlight class="normal"></highlight><highlight class="preprocessor">#define<sp/>BIT0<sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>0x01</highlight><highlight class="normal"></highlight></codeline>
-<codeline lineno="16"><highlight class="normal"></highlight><highlight class="preprocessor">#define<sp/>BIT1<sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>0x02</highlight><highlight class="normal"></highlight></codeline>
-<codeline lineno="17"><highlight class="normal"></highlight><highlight class="preprocessor">#define<sp/>BIT2<sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>0x04</highlight><highlight class="normal"></highlight></codeline>
-<codeline lineno="18"><highlight class="normal"></highlight><highlight class="preprocessor">#define<sp/>BIT3<sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>0x08</highlight><highlight class="normal"></highlight></codeline>
-<codeline lineno="19"><highlight class="normal"></highlight><highlight class="preprocessor">#define<sp/>BIT4<sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>0x10</highlight><highlight class="normal"></highlight></codeline>
-<codeline lineno="20"><highlight class="normal"></highlight><highlight class="preprocessor">#define<sp/>BIT5<sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>0x20</highlight><highlight class="normal"></highlight></codeline>
-<codeline lineno="21"><highlight class="normal"></highlight><highlight class="preprocessor">#define<sp/>BIT6<sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>0x40</highlight><highlight class="normal"></highlight></codeline>
-<codeline lineno="22"><highlight class="normal"></highlight><highlight class="preprocessor">#define<sp/>BIT7<sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>0x80</highlight><highlight class="normal"></highlight></codeline>
-<codeline lineno="23"><highlight class="normal"></highlight></codeline>
-<codeline lineno="24"><highlight class="normal"></highlight><highlight class="keyword">typedef</highlight><highlight class="normal"><sp/>uint32_t<sp/>clock_t;</highlight></codeline>
+<codeline lineno="15"><highlight class="normal"></highlight><highlight class="preprocessor">#include<sp/>&lt;stdint.h&gt;</highlight><highlight class="normal"></highlight></codeline>
+<codeline lineno="16"><highlight class="normal"></highlight></codeline>
+<codeline lineno="17"><highlight class="normal"></highlight><highlight class="preprocessor">#define<sp/>BIT0<sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>0x01</highlight><highlight class="normal"></highlight></codeline>
+<codeline lineno="18"><highlight class="normal"></highlight><highlight class="preprocessor">#define<sp/>BIT1<sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>0x02</highlight><highlight class="normal"></highlight></codeline>
+<codeline lineno="19"><highlight class="normal"></highlight><highlight class="preprocessor">#define<sp/>BIT2<sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>0x04</highlight><highlight class="normal"></highlight></codeline>
+<codeline lineno="20"><highlight class="normal"></highlight><highlight class="preprocessor">#define<sp/>BIT3<sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>0x08</highlight><highlight class="normal"></highlight></codeline>
+<codeline lineno="21"><highlight class="normal"></highlight><highlight class="preprocessor">#define<sp/>BIT4<sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>0x10</highlight><highlight class="normal"></highlight></codeline>
+<codeline lineno="22"><highlight class="normal"></highlight><highlight class="preprocessor">#define<sp/>BIT5<sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>0x20</highlight><highlight class="normal"></highlight></codeline>
+<codeline lineno="23"><highlight class="normal"></highlight><highlight class="preprocessor">#define<sp/>BIT6<sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>0x40</highlight><highlight class="normal"></highlight></codeline>
+<codeline lineno="24"><highlight class="normal"></highlight><highlight class="preprocessor">#define<sp/>BIT7<sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>0x80</highlight><highlight class="normal"></highlight></codeline>
 <codeline lineno="25"><highlight class="normal"></highlight></codeline>
-<codeline lineno="26"><highlight class="normal"></highlight><highlight class="preprocessor">#include<sp/>&lt;inc/tm4c123gh6pm.h&gt;</highlight><highlight class="normal"></highlight></codeline>
-<codeline lineno="27"><highlight class="normal"></highlight><highlight class="preprocessor">#include<sp/>&lt;stdint.h&gt;</highlight><highlight class="normal"></highlight></codeline>
-<codeline lineno="28"><highlight class="normal"></highlight></codeline>
-<codeline lineno="29"><highlight class="normal"></highlight><highlight class="keyword">extern</highlight><highlight class="normal"><sp/></highlight><highlight class="keyword">volatile</highlight><highlight class="normal"><sp/>uint32_t<sp/>_timer_ticks;</highlight></codeline>
+<codeline lineno="26"><highlight class="normal"></highlight><highlight class="keyword">typedef</highlight><highlight class="normal"><sp/>uint32_t<sp/>clock_t;</highlight></codeline>
+<codeline lineno="27"><highlight class="normal"></highlight></codeline>
+<codeline lineno="28"><highlight class="normal"></highlight><highlight class="preprocessor">#include<sp/>&lt;inc/tm4c123gh6pm.h&gt;</highlight><highlight class="normal"></highlight></codeline>
+<codeline lineno="29"><highlight class="normal"></highlight><highlight class="preprocessor">#include<sp/>&lt;stdint.h&gt;</highlight><highlight class="normal"></highlight></codeline>
 <codeline lineno="30"><highlight class="normal"></highlight></codeline>
-<codeline lineno="31"><highlight class="normal"></highlight><highlight class="keywordtype">void</highlight><highlight class="normal"><sp/>timer_waitMillis(uint32_t<sp/>millis);</highlight></codeline>
+<codeline lineno="31"><highlight class="normal"></highlight><highlight class="keyword">extern</highlight><highlight class="normal"><sp/></highlight><highlight class="keyword">volatile</highlight><highlight class="normal"><sp/>uint32_t<sp/>_timer_ticks;</highlight></codeline>
 <codeline lineno="32"><highlight class="normal"></highlight></codeline>
-<codeline lineno="33"><highlight class="normal"></highlight><highlight class="keywordtype">void</highlight><highlight class="normal"><sp/>timer_waitMicros(uint16_t<sp/>micros);</highlight></codeline>
+<codeline lineno="33"><highlight class="normal"></highlight><highlight class="keywordtype">void</highlight><highlight class="normal"><sp/><ref refid="timer_8h_1a7e2a3b4520e885e5e7d40fa87e242a75" kindref="member">timer_waitMillis</ref>(uint32_t<sp/>millis);</highlight></codeline>
 <codeline lineno="34"><highlight class="normal"></highlight></codeline>
-<codeline lineno="35"><highlight class="normal"></highlight><highlight class="keywordtype">void</highlight><highlight class="normal"><sp/>timer_startTimer(uint16_t<sp/>startValue);</highlight></codeline>
+<codeline lineno="35"><highlight class="normal"></highlight><highlight class="keywordtype">void</highlight><highlight class="normal"><sp/>timer_waitMicros(uint16_t<sp/>micros);</highlight></codeline>
 <codeline lineno="36"><highlight class="normal"></highlight></codeline>
-<codeline lineno="37"><highlight class="normal"></highlight><highlight class="keywordtype">void</highlight><highlight class="normal"><sp/>timer_stopTimer(</highlight><highlight class="keywordtype">void</highlight><highlight class="normal">);</highlight></codeline>
+<codeline lineno="37"><highlight class="normal"></highlight><highlight class="keywordtype">void</highlight><highlight class="normal"><sp/>timer_startTimer(uint16_t<sp/>startValue);</highlight></codeline>
 <codeline lineno="38"><highlight class="normal"></highlight></codeline>
-<codeline lineno="39"><highlight class="normal">clock_t<sp/>timer_startClock(</highlight><highlight class="keywordtype">void</highlight><highlight class="normal">);</highlight></codeline>
+<codeline lineno="39"><highlight class="normal"></highlight><highlight class="keywordtype">void</highlight><highlight class="normal"><sp/>timer_stopTimer(</highlight><highlight class="keywordtype">void</highlight><highlight class="normal">);</highlight></codeline>
 <codeline lineno="40"><highlight class="normal"></highlight></codeline>
-<codeline lineno="41"><highlight class="normal">clock_t<sp/>timer_getClock(</highlight><highlight class="keywordtype">void</highlight><highlight class="normal">);</highlight></codeline>
+<codeline lineno="41"><highlight class="normal">clock_t<sp/>timer_startClock(</highlight><highlight class="keywordtype">void</highlight><highlight class="normal">);</highlight></codeline>
 <codeline lineno="42"><highlight class="normal"></highlight></codeline>
-<codeline lineno="43"><highlight class="normal"></highlight><highlight class="keywordtype">void</highlight><highlight class="normal"><sp/>timer_stopClock(</highlight><highlight class="keywordtype">void</highlight><highlight class="normal">);</highlight></codeline>
+<codeline lineno="43"><highlight class="normal">clock_t<sp/>timer_getClock(</highlight><highlight class="keywordtype">void</highlight><highlight class="normal">);</highlight></codeline>
 <codeline lineno="44"><highlight class="normal"></highlight></codeline>
-<codeline lineno="45"><highlight class="normal"></highlight><highlight class="preprocessor">#endif<sp/></highlight><highlight class="comment">/*<sp/>TIMER_H_<sp/>*/</highlight><highlight class="preprocessor"></highlight></codeline>
+<codeline lineno="45"><highlight class="normal"></highlight><highlight class="keywordtype">void</highlight><highlight class="normal"><sp/>timer_stopClock(</highlight><highlight class="keywordtype">void</highlight><highlight class="normal">);</highlight></codeline>
+<codeline lineno="46"><highlight class="normal"></highlight></codeline>
+<codeline lineno="47"><highlight class="normal"></highlight><highlight class="preprocessor">#endif<sp/></highlight><highlight class="comment">/*<sp/>TIMER_H_<sp/>*/</highlight><highlight class="preprocessor"></highlight></codeline>
     </programlisting>
     <location file="C:/Users/DonsterLaptop/Documents/Robot288/cpre288_generalpurposeautomatedrobot/Robot/Utils/timer.h"/>
   </compounddef>
diff --git a/Doxygen/xml/uart_8c.xml b/Doxygen/xml/uart_8c.xml
index b768041e0773962e5db871af2e783e00f07ca96d..39048d36c1b26e34352420af2791c19b9b570815 100644
--- a/Doxygen/xml/uart_8c.xml
+++ b/Doxygen/xml/uart_8c.xml
@@ -23,7 +23,7 @@
       </node>
       <node id="101">
         <label>Utils/lcd.h</label>
-        <link refid="lcd_8h_source"/>
+        <link refid="lcd_8h"/>
         <childnode refid="95" relation="include">
         </childnode>
         <childnode refid="98" relation="include">
@@ -40,7 +40,7 @@
       </node>
       <node id="97">
         <label>Utils/timer.h</label>
-        <link refid="timer_8h_source"/>
+        <link refid="timer_8h"/>
         <childnode refid="98" relation="include">
         </childnode>
         <childnode refid="99" relation="include">
@@ -301,7 +301,7 @@
     <programlisting>
 <codeline lineno="1"></codeline>
 <codeline lineno="15"><highlight class="preprocessor">#include<sp/>&quot;<ref refid="uart_8h" kindref="compound">Communication/uart.h</ref>&quot;</highlight><highlight class="normal"></highlight></codeline>
-<codeline lineno="16"><highlight class="normal"></highlight><highlight class="preprocessor">#include<sp/>&quot;Utils/lcd.h&quot;</highlight><highlight class="normal"></highlight></codeline>
+<codeline lineno="16"><highlight class="normal"></highlight><highlight class="preprocessor">#include<sp/>&quot;<ref refid="lcd_8h" kindref="compound">Utils/lcd.h</ref>&quot;</highlight><highlight class="normal"></highlight></codeline>
 <codeline lineno="17"><highlight class="normal"></highlight><highlight class="preprocessor">#include<sp/>&lt;math.h&gt;</highlight><highlight class="normal"></highlight></codeline>
 <codeline lineno="18"><highlight class="normal"></highlight></codeline>
 <codeline lineno="19"><highlight class="normal"></highlight><highlight class="preprocessor">#define<sp/>SYSTEM_CLOCK_Hz<sp/>16000000<sp/><sp/><sp/><sp/>//<sp/>16<sp/>MHz</highlight><highlight class="normal"></highlight></codeline>
@@ -348,7 +348,7 @@
 <codeline lineno="60"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="comment">//<sp/>Enable<sp/>clock<sp/>to<sp/>UART1</highlight><highlight class="normal"></highlight></codeline>
 <codeline lineno="61"><highlight class="normal"><sp/><sp/><sp/><sp/>SYSCTL_RCGCUART_R<sp/>|=<sp/>0x02;</highlight></codeline>
 <codeline lineno="62"><highlight class="normal"></highlight></codeline>
-<codeline lineno="63"><highlight class="normal"><sp/><sp/><sp/><sp/>timer_waitMillis(1);<sp/></highlight><highlight class="comment">//<sp/>Small<sp/>delay</highlight><highlight class="normal"></highlight></codeline>
+<codeline lineno="63"><highlight class="normal"><sp/><sp/><sp/><sp/><ref refid="timer_8c_1a7e2a3b4520e885e5e7d40fa87e242a75" kindref="member">timer_waitMillis</ref>(1);<sp/></highlight><highlight class="comment">//<sp/>Small<sp/>delay</highlight><highlight class="normal"></highlight></codeline>
 <codeline lineno="64"><highlight class="normal"></highlight></codeline>
 <codeline lineno="65"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="comment">//<sp/>Set<sp/>Port<sp/>B<sp/>pins<sp/>0<sp/>and<sp/>1<sp/>to<sp/>their<sp/>alternative<sp/>function</highlight><highlight class="normal"></highlight></codeline>
 <codeline lineno="66"><highlight class="normal"><sp/><sp/><sp/><sp/>GPIO_PORTB_AFSEL_R<sp/>|=<sp/>0x03;</highlight></codeline>
@@ -398,14 +398,14 @@
 <codeline lineno="110"><highlight class="normal"></highlight></codeline>
 <codeline lineno="111"><highlight class="normal">}</highlight></codeline>
 <codeline lineno="112"><highlight class="normal"></highlight></codeline>
-<codeline lineno="113" refid="uart_8h_1a1bb761703934038d7820c4e7a92896c8" refkind="member"><highlight class="normal"></highlight><highlight class="keywordtype">void</highlight><highlight class="normal"><sp/><ref refid="uart_8c_1a1bb761703934038d7820c4e7a92896c8" kindref="member">uart_sendChar</ref>(</highlight><highlight class="keywordtype">char</highlight><highlight class="normal"><sp/><ref refid="movementcommands_8c_1a91a70b77df95bd8b0830b49a094c2acb" kindref="member">data</ref>)</highlight></codeline>
+<codeline lineno="113" refid="uart_8h_1a1bb761703934038d7820c4e7a92896c8" refkind="member"><highlight class="normal"></highlight><highlight class="keywordtype">void</highlight><highlight class="normal"><sp/><ref refid="uart_8c_1a1bb761703934038d7820c4e7a92896c8" kindref="member">uart_sendChar</ref>(</highlight><highlight class="keywordtype">char</highlight><highlight class="normal"><sp/><ref refid="main_8c_1a91a70b77df95bd8b0830b49a094c2acb" kindref="member">data</ref>)</highlight></codeline>
 <codeline lineno="114"><highlight class="normal">{</highlight></codeline>
 <codeline lineno="115"><highlight class="normal"></highlight></codeline>
 <codeline lineno="116"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="comment">//<sp/>Wait<sp/>until<sp/>there<sp/>is<sp/>room<sp/>to<sp/>send<sp/>data</highlight><highlight class="normal"></highlight></codeline>
 <codeline lineno="117"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">while</highlight><highlight class="normal"><sp/>((UART1_FR_R<sp/>&amp;<sp/>0x20))</highlight></codeline>
 <codeline lineno="118"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>;</highlight></codeline>
 <codeline lineno="119"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="comment">//<sp/>Send<sp/>data</highlight><highlight class="normal"></highlight></codeline>
-<codeline lineno="120"><highlight class="normal"><sp/><sp/><sp/><sp/>UART1_DR_R<sp/>=<sp/><ref refid="movementcommands_8c_1a91a70b77df95bd8b0830b49a094c2acb" kindref="member">data</ref>;</highlight></codeline>
+<codeline lineno="120"><highlight class="normal"><sp/><sp/><sp/><sp/>UART1_DR_R<sp/>=<sp/><ref refid="main_8c_1a91a70b77df95bd8b0830b49a094c2acb" kindref="member">data</ref>;</highlight></codeline>
 <codeline lineno="121"><highlight class="normal"></highlight></codeline>
 <codeline lineno="122"><highlight class="normal">}</highlight></codeline>
 <codeline lineno="123"><highlight class="normal"></highlight></codeline>
@@ -418,30 +418,30 @@
 <codeline lineno="130"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">return</highlight><highlight class="normal"><sp/>(UART1_DR_R<sp/>&amp;<sp/>0xFF);</highlight></codeline>
 <codeline lineno="131"><highlight class="normal">}</highlight></codeline>
 <codeline lineno="132"><highlight class="normal"></highlight></codeline>
-<codeline lineno="133" refid="uart_8h_1af96d1ce52b8a52eabc606489d31351e9" refkind="member"><highlight class="normal"></highlight><highlight class="keywordtype">void</highlight><highlight class="normal"><sp/><ref refid="uart_8c_1af96d1ce52b8a52eabc606489d31351e9" kindref="member">uart_sendStr</ref>(</highlight><highlight class="keyword">const</highlight><highlight class="normal"><sp/></highlight><highlight class="keywordtype">char</highlight><highlight class="normal"><sp/>*<ref refid="movementcommands_8c_1a91a70b77df95bd8b0830b49a094c2acb" kindref="member">data</ref>)</highlight></codeline>
+<codeline lineno="133" refid="open__interface_8c_1a33bd73bbfbc570a633f3622069087066" refkind="member"><highlight class="normal"></highlight><highlight class="keywordtype">void</highlight><highlight class="normal"><sp/><ref refid="uart_8c_1af96d1ce52b8a52eabc606489d31351e9" kindref="member">uart_sendStr</ref>(</highlight><highlight class="keyword">const</highlight><highlight class="normal"><sp/></highlight><highlight class="keywordtype">char</highlight><highlight class="normal"><sp/>*<ref refid="main_8c_1a91a70b77df95bd8b0830b49a094c2acb" kindref="member">data</ref>)</highlight></codeline>
 <codeline lineno="134"><highlight class="normal">{</highlight></codeline>
 <codeline lineno="135"><highlight class="normal"></highlight></codeline>
 <codeline lineno="136"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="comment">//<sp/>Iterate<sp/>through<sp/>the<sp/>string<sp/>and<sp/>send<sp/>each<sp/>character<sp/>until</highlight><highlight class="normal"></highlight></codeline>
 <codeline lineno="137"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="comment">//<sp/>the<sp/>end<sp/>of<sp/>the<sp/>string<sp/>(null<sp/>byte)<sp/>is<sp/>reached</highlight><highlight class="normal"></highlight></codeline>
 <codeline lineno="138"><highlight class="normal"></highlight></codeline>
-<codeline lineno="139"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">while</highlight><highlight class="normal"><sp/>(*<ref refid="movementcommands_8c_1a91a70b77df95bd8b0830b49a094c2acb" kindref="member">data</ref><sp/>!=<sp/></highlight><highlight class="charliteral">&apos;\0&apos;</highlight><highlight class="normal">)</highlight></codeline>
+<codeline lineno="139"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">while</highlight><highlight class="normal"><sp/>(*<ref refid="main_8c_1a91a70b77df95bd8b0830b49a094c2acb" kindref="member">data</ref><sp/>!=<sp/></highlight><highlight class="charliteral">&apos;\0&apos;</highlight><highlight class="normal">)</highlight></codeline>
 <codeline lineno="140"><highlight class="normal"><sp/><sp/><sp/><sp/>{</highlight></codeline>
 <codeline lineno="141"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="comment">//<sp/>Send<sp/>the<sp/>nth<sp/>char<sp/>in<sp/>the<sp/>string<sp/>over<sp/>UART</highlight><highlight class="normal"></highlight></codeline>
-<codeline lineno="142"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><ref refid="uart_8c_1a1bb761703934038d7820c4e7a92896c8" kindref="member">uart_sendChar</ref>(*<ref refid="movementcommands_8c_1a91a70b77df95bd8b0830b49a094c2acb" kindref="member">data</ref>);</highlight></codeline>
+<codeline lineno="142"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><ref refid="uart_8c_1a1bb761703934038d7820c4e7a92896c8" kindref="member">uart_sendChar</ref>(*<ref refid="main_8c_1a91a70b77df95bd8b0830b49a094c2acb" kindref="member">data</ref>);</highlight></codeline>
 <codeline lineno="143"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="comment">//<sp/>Move<sp/>pointer<sp/>to<sp/>the<sp/>next<sp/>char<sp/>in<sp/>the<sp/>array</highlight><highlight class="normal"></highlight></codeline>
-<codeline lineno="144"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><ref refid="movementcommands_8c_1a91a70b77df95bd8b0830b49a094c2acb" kindref="member">data</ref>++;</highlight></codeline>
+<codeline lineno="144"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><ref refid="main_8c_1a91a70b77df95bd8b0830b49a094c2acb" kindref="member">data</ref>++;</highlight></codeline>
 <codeline lineno="145"><highlight class="normal"><sp/><sp/><sp/><sp/>}</highlight></codeline>
 <codeline lineno="146"><highlight class="normal"></highlight></codeline>
 <codeline lineno="147"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="comment">//<sp/>Note:<sp/>for<sp/>reference<sp/>see<sp/>lcd_puts<sp/>from<sp/>lcd.c<sp/>file</highlight><highlight class="normal"></highlight></codeline>
 <codeline lineno="148"><highlight class="normal">}</highlight></codeline>
 <codeline lineno="149"><highlight class="normal"></highlight></codeline>
-<codeline lineno="150" refid="uart_8h_1a8ed365abbf581c32e90ed632bf60f88e" refkind="member"><highlight class="normal"></highlight><highlight class="keywordtype">void</highlight><highlight class="normal"><sp/><ref refid="uart_8c_1a8ed365abbf581c32e90ed632bf60f88e" kindref="member">uart_sendStrLen</ref>(</highlight><highlight class="keyword">const</highlight><highlight class="normal"><sp/></highlight><highlight class="keywordtype">char</highlight><highlight class="normal"><sp/>*<ref refid="movementcommands_8c_1a91a70b77df95bd8b0830b49a094c2acb" kindref="member">data</ref>,<sp/></highlight><highlight class="keywordtype">int</highlight><highlight class="normal"><sp/>length)</highlight></codeline>
+<codeline lineno="150" refid="uart_8h_1a8ed365abbf581c32e90ed632bf60f88e" refkind="member"><highlight class="normal"></highlight><highlight class="keywordtype">void</highlight><highlight class="normal"><sp/><ref refid="uart_8c_1a8ed365abbf581c32e90ed632bf60f88e" kindref="member">uart_sendStrLen</ref>(</highlight><highlight class="keyword">const</highlight><highlight class="normal"><sp/></highlight><highlight class="keywordtype">char</highlight><highlight class="normal"><sp/>*<ref refid="main_8c_1a91a70b77df95bd8b0830b49a094c2acb" kindref="member">data</ref>,<sp/></highlight><highlight class="keywordtype">int</highlight><highlight class="normal"><sp/>length)</highlight></codeline>
 <codeline lineno="151"><highlight class="normal">{</highlight></codeline>
 <codeline lineno="152"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="keywordtype">int</highlight><highlight class="normal"><sp/>i;</highlight></codeline>
 <codeline lineno="153"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">for</highlight><highlight class="normal"><sp/>(i<sp/>=<sp/>0;<sp/>i<sp/>&lt;<sp/>length;<sp/>++i)</highlight></codeline>
 <codeline lineno="154"><highlight class="normal"><sp/><sp/><sp/><sp/>{</highlight></codeline>
-<codeline lineno="155"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><ref refid="uart_8c_1a1bb761703934038d7820c4e7a92896c8" kindref="member">uart_sendChar</ref>(*<ref refid="movementcommands_8c_1a91a70b77df95bd8b0830b49a094c2acb" kindref="member">data</ref>);<sp/></highlight><highlight class="comment">//Send<sp/>character</highlight><highlight class="normal"></highlight></codeline>
-<codeline lineno="156"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>*<ref refid="movementcommands_8c_1a91a70b77df95bd8b0830b49a094c2acb" kindref="member">data</ref>++;<sp/></highlight><highlight class="comment">//Increment<sp/>to<sp/>the<sp/>next.</highlight><highlight class="normal"></highlight></codeline>
+<codeline lineno="155"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><ref refid="uart_8c_1a1bb761703934038d7820c4e7a92896c8" kindref="member">uart_sendChar</ref>(*<ref refid="main_8c_1a91a70b77df95bd8b0830b49a094c2acb" kindref="member">data</ref>);<sp/></highlight><highlight class="comment">//Send<sp/>character</highlight><highlight class="normal"></highlight></codeline>
+<codeline lineno="156"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>*<ref refid="main_8c_1a91a70b77df95bd8b0830b49a094c2acb" kindref="member">data</ref>++;<sp/></highlight><highlight class="comment">//Increment<sp/>to<sp/>the<sp/>next.</highlight><highlight class="normal"></highlight></codeline>
 <codeline lineno="157"><highlight class="normal"><sp/><sp/><sp/><sp/>}</highlight></codeline>
 <codeline lineno="158"><highlight class="normal">}</highlight></codeline>
 <codeline lineno="159"><highlight class="normal"></highlight></codeline>
diff --git a/Doxygen/xml/uart_8h.xml b/Doxygen/xml/uart_8h.xml
index 235d1994394e890453113d472d1a4ed294b06146..6077457128a8ef0120424c8dc0c8ba468640730d 100644
--- a/Doxygen/xml/uart_8h.xml
+++ b/Doxygen/xml/uart_8h.xml
@@ -27,7 +27,7 @@
       </node>
       <node id="109">
         <label>Utils/timer.h</label>
-        <link refid="timer_8h_source"/>
+        <link refid="timer_8h"/>
         <childnode refid="110" relation="include">
         </childnode>
         <childnode refid="111" relation="include">
@@ -99,7 +99,7 @@
       </node>
       <node id="115">
         <label>C:/Users/DonsterLaptop/Documents/Robot288/cpre288_generalpurposeautomatedrobot/Robot/main.c</label>
-        <link refid="main_8c_source"/>
+        <link refid="main_8c"/>
       </node>
     </invincdepgraph>
       <sectiondef kind="var">
@@ -114,7 +114,7 @@
 <para>Data where the last characters are store </para>        </detaileddescription>
         <inbodydescription>
         </inbodydescription>
-        <location file="C:/Users/DonsterLaptop/Documents/Robot288/cpre288_generalpurposeautomatedrobot/Robot/Communication/uart.h" line="29" column="1" bodyfile="C:/Users/DonsterLaptop/Documents/Robot288/cpre288_generalpurposeautomatedrobot/Robot/Communication/uart.h" bodystart="29" bodyend="-1"/>
+        <location file="C:/Users/DonsterLaptop/Documents/Robot288/cpre288_generalpurposeautomatedrobot/Robot/Communication/uart.h" line="28" column="1" bodyfile="C:/Users/DonsterLaptop/Documents/Robot288/cpre288_generalpurposeautomatedrobot/Robot/Communication/uart.h" bodystart="28" bodyend="-1"/>
       </memberdef>
       <memberdef kind="variable" id="uart_8h_1af1bf0c65f126ec15b3204246afdc614e" prot="public" static="no" mutable="no">
         <type>char *</type>
@@ -127,7 +127,7 @@
 <para>Data where the last parsed line is stored </para>        </detaileddescription>
         <inbodydescription>
         </inbodydescription>
-        <location file="C:/Users/DonsterLaptop/Documents/Robot288/cpre288_generalpurposeautomatedrobot/Robot/Communication/uart.h" line="33" column="1" bodyfile="C:/Users/DonsterLaptop/Documents/Robot288/cpre288_generalpurposeautomatedrobot/Robot/Communication/uart.h" bodystart="33" bodyend="-1"/>
+        <location file="C:/Users/DonsterLaptop/Documents/Robot288/cpre288_generalpurposeautomatedrobot/Robot/Communication/uart.h" line="32" column="1" bodyfile="C:/Users/DonsterLaptop/Documents/Robot288/cpre288_generalpurposeautomatedrobot/Robot/Communication/uart.h" bodystart="32" bodyend="-1"/>
       </memberdef>
       </sectiondef>
       <sectiondef kind="func">
@@ -145,7 +145,7 @@
 <para>Initialize Uart </para>        </detaileddescription>
         <inbodydescription>
         </inbodydescription>
-        <location file="C:/Users/DonsterLaptop/Documents/Robot288/cpre288_generalpurposeautomatedrobot/Robot/Communication/uart.h" line="38" column="1" bodyfile="C:/Users/DonsterLaptop/Documents/Robot288/cpre288_generalpurposeautomatedrobot/Robot/Communication/uart.c" bodystart="52" bodyend="111"/>
+        <location file="C:/Users/DonsterLaptop/Documents/Robot288/cpre288_generalpurposeautomatedrobot/Robot/Communication/uart.h" line="37" column="1" bodyfile="C:/Users/DonsterLaptop/Documents/Robot288/cpre288_generalpurposeautomatedrobot/Robot/Communication/uart.c" bodystart="52" bodyend="111"/>
       </memberdef>
       <memberdef kind="function" id="uart_8h_1a1bb761703934038d7820c4e7a92896c8" prot="public" static="no" const="no" explicit="no" inline="no" virt="non-virtual">
         <type>void</type>
@@ -170,7 +170,7 @@
 </para>        </detaileddescription>
         <inbodydescription>
         </inbodydescription>
-        <location file="C:/Users/DonsterLaptop/Documents/Robot288/cpre288_generalpurposeautomatedrobot/Robot/Communication/uart.h" line="43" column="1" bodyfile="C:/Users/DonsterLaptop/Documents/Robot288/cpre288_generalpurposeautomatedrobot/Robot/Communication/uart.c" bodystart="113" bodyend="122"/>
+        <location file="C:/Users/DonsterLaptop/Documents/Robot288/cpre288_generalpurposeautomatedrobot/Robot/Communication/uart.h" line="42" column="1" bodyfile="C:/Users/DonsterLaptop/Documents/Robot288/cpre288_generalpurposeautomatedrobot/Robot/Communication/uart.c" bodystart="113" bodyend="122"/>
       </memberdef>
       <memberdef kind="function" id="uart_8h_1a2cb93233c32004f54ac6103ac25ef64d" prot="public" static="no" const="no" explicit="no" inline="no" virt="non-virtual">
         <type>char</type>
@@ -186,7 +186,7 @@
 <para>Receive UART data and copy it into buffer </para>        </detaileddescription>
         <inbodydescription>
         </inbodydescription>
-        <location file="C:/Users/DonsterLaptop/Documents/Robot288/cpre288_generalpurposeautomatedrobot/Robot/Communication/uart.h" line="48" column="1" bodyfile="C:/Users/DonsterLaptop/Documents/Robot288/cpre288_generalpurposeautomatedrobot/Robot/Communication/uart.c" bodystart="124" bodyend="131"/>
+        <location file="C:/Users/DonsterLaptop/Documents/Robot288/cpre288_generalpurposeautomatedrobot/Robot/Communication/uart.h" line="47" column="1" bodyfile="C:/Users/DonsterLaptop/Documents/Robot288/cpre288_generalpurposeautomatedrobot/Robot/Communication/uart.c" bodystart="124" bodyend="131"/>
       </memberdef>
       <memberdef kind="function" id="uart_8h_1af96d1ce52b8a52eabc606489d31351e9" prot="public" static="no" const="no" explicit="no" inline="no" virt="non-virtual">
         <type>void</type>
@@ -211,7 +211,7 @@
 </para>        </detaileddescription>
         <inbodydescription>
         </inbodydescription>
-        <location file="C:/Users/DonsterLaptop/Documents/Robot288/cpre288_generalpurposeautomatedrobot/Robot/Communication/uart.h" line="53" column="1" bodyfile="C:/Users/DonsterLaptop/Documents/Robot288/cpre288_generalpurposeautomatedrobot/Robot/Communication/uart.c" bodystart="133" bodyend="148"/>
+        <location file="C:/Users/DonsterLaptop/Documents/Robot288/cpre288_generalpurposeautomatedrobot/Robot/Communication/uart.h" line="52" column="1" bodyfile="C:/Users/DonsterLaptop/Documents/Robot288/cpre288_generalpurposeautomatedrobot/Robot/Communication/uart.c" bodystart="133" bodyend="148"/>
       </memberdef>
       <memberdef kind="function" id="uart_8h_1a8ed365abbf581c32e90ed632bf60f88e" prot="public" static="no" const="no" explicit="no" inline="no" virt="non-virtual">
         <type>void</type>
@@ -247,7 +247,7 @@
 </para>        </detaileddescription>
         <inbodydescription>
         </inbodydescription>
-        <location file="C:/Users/DonsterLaptop/Documents/Robot288/cpre288_generalpurposeautomatedrobot/Robot/Communication/uart.h" line="59" column="1" bodyfile="C:/Users/DonsterLaptop/Documents/Robot288/cpre288_generalpurposeautomatedrobot/Robot/Communication/uart.c" bodystart="150" bodyend="158"/>
+        <location file="C:/Users/DonsterLaptop/Documents/Robot288/cpre288_generalpurposeautomatedrobot/Robot/Communication/uart.h" line="58" column="1" bodyfile="C:/Users/DonsterLaptop/Documents/Robot288/cpre288_generalpurposeautomatedrobot/Robot/Communication/uart.c" bodystart="150" bodyend="158"/>
       </memberdef>
       <memberdef kind="function" id="uart_8h_1a58d025fdfe1c8f521e1fa2a628cfa21d" prot="public" static="no" const="no" explicit="no" inline="no" virt="non-virtual">
         <type>void</type>
@@ -260,7 +260,7 @@
 <para>Copy the last buffered line to LastLine then clear the buffer </para>        </detaileddescription>
         <inbodydescription>
         </inbodydescription>
-        <location file="C:/Users/DonsterLaptop/Documents/Robot288/cpre288_generalpurposeautomatedrobot/Robot/Communication/uart.h" line="63" column="1" bodyfile="C:/Users/DonsterLaptop/Documents/Robot288/cpre288_generalpurposeautomatedrobot/Robot/Communication/uart.c" bodystart="40" bodyend="45"/>
+        <location file="C:/Users/DonsterLaptop/Documents/Robot288/cpre288_generalpurposeautomatedrobot/Robot/Communication/uart.h" line="62" column="1" bodyfile="C:/Users/DonsterLaptop/Documents/Robot288/cpre288_generalpurposeautomatedrobot/Robot/Communication/uart.c" bodystart="40" bodyend="45"/>
       </memberdef>
       <memberdef kind="function" id="uart_8h_1a8be40187644dacbc28cabbc673a36bff" prot="public" static="no" const="no" explicit="no" inline="no" virt="non-virtual">
         <type>void</type>
@@ -273,7 +273,7 @@
 <para>Clear the Last buffered line </para>        </detaileddescription>
         <inbodydescription>
         </inbodydescription>
-        <location file="C:/Users/DonsterLaptop/Documents/Robot288/cpre288_generalpurposeautomatedrobot/Robot/Communication/uart.h" line="67" column="1" bodyfile="C:/Users/DonsterLaptop/Documents/Robot288/cpre288_generalpurposeautomatedrobot/Robot/Communication/uart.c" bodystart="47" bodyend="50"/>
+        <location file="C:/Users/DonsterLaptop/Documents/Robot288/cpre288_generalpurposeautomatedrobot/Robot/Communication/uart.h" line="66" column="1" bodyfile="C:/Users/DonsterLaptop/Documents/Robot288/cpre288_generalpurposeautomatedrobot/Robot/Communication/uart.c" bodystart="47" bodyend="50"/>
       </memberdef>
       <memberdef kind="function" id="uart_8h_1a46df527ddf86c0ebfe750173a41dd4d3" prot="public" static="no" const="no" explicit="no" inline="no" virt="non-virtual">
         <type>char *</type>
@@ -286,7 +286,7 @@
 <para>Return the String of the last line read </para>        </detaileddescription>
         <inbodydescription>
         </inbodydescription>
-        <location file="C:/Users/DonsterLaptop/Documents/Robot288/cpre288_generalpurposeautomatedrobot/Robot/Communication/uart.h" line="71" column="1" bodyfile="C:/Users/DonsterLaptop/Documents/Robot288/cpre288_generalpurposeautomatedrobot/Robot/Communication/uart.c" bodystart="160" bodyend="164"/>
+        <location file="C:/Users/DonsterLaptop/Documents/Robot288/cpre288_generalpurposeautomatedrobot/Robot/Communication/uart.h" line="70" column="1" bodyfile="C:/Users/DonsterLaptop/Documents/Robot288/cpre288_generalpurposeautomatedrobot/Robot/Communication/uart.c" bodystart="160" bodyend="164"/>
       </memberdef>
       </sectiondef>
     <briefdescription>
@@ -306,26 +306,25 @@
 <codeline lineno="17"><highlight class="normal"></highlight><highlight class="preprocessor">#include<sp/>&lt;stdlib.h&gt;</highlight><highlight class="normal"></highlight></codeline>
 <codeline lineno="18"><highlight class="normal"></highlight><highlight class="preprocessor">#include<sp/>&lt;stdio.h&gt;</highlight><highlight class="normal"></highlight></codeline>
 <codeline lineno="19"><highlight class="normal"></highlight><highlight class="preprocessor">#include<sp/>&lt;stdbool.h&gt;</highlight><highlight class="normal"></highlight></codeline>
-<codeline lineno="20"><highlight class="normal"></highlight><highlight class="preprocessor">#include<sp/>&quot;Utils/timer.h&quot;</highlight><highlight class="normal"></highlight></codeline>
+<codeline lineno="20"><highlight class="normal"></highlight><highlight class="preprocessor">#include<sp/>&quot;<ref refid="timer_8h" kindref="compound">Utils/timer.h</ref>&quot;</highlight><highlight class="normal"></highlight></codeline>
 <codeline lineno="21"><highlight class="normal"></highlight></codeline>
-<codeline lineno="22"><highlight class="normal"></highlight><highlight class="comment">//#include<sp/>&quot;WiFi.h&quot;</highlight><highlight class="normal"></highlight></codeline>
-<codeline lineno="23"><highlight class="normal"></highlight><highlight class="preprocessor">#include<sp/>&lt;inc/tm4c123gh6pm.h&gt;</highlight><highlight class="normal"></highlight></codeline>
-<codeline lineno="24"><highlight class="normal"></highlight><highlight class="preprocessor">#include<sp/>&quot;driverlib/interrupt.h&quot;</highlight><highlight class="normal"></highlight></codeline>
-<codeline lineno="25"><highlight class="normal"></highlight></codeline>
-<codeline lineno="29" refid="uart_8h_1aff2566f4c366b48d73479bef43ee4d2e" refkind="member"><highlight class="keywordtype">char</highlight><highlight class="normal"><sp/>*<sp/><ref refid="uart_8h_1aff2566f4c366b48d73479bef43ee4d2e" kindref="member">buffer</ref>;</highlight></codeline>
-<codeline lineno="33" refid="uart_8h_1af1bf0c65f126ec15b3204246afdc614e" refkind="member"><highlight class="keywordtype">char</highlight><highlight class="normal"><sp/>*<sp/><ref refid="uart_8h_1af1bf0c65f126ec15b3204246afdc614e" kindref="member">LastLine</ref>;</highlight></codeline>
-<codeline lineno="34"><highlight class="normal"></highlight></codeline>
-<codeline lineno="38"><highlight class="keywordtype">void</highlight><highlight class="normal"><sp/><ref refid="uart_8h_1a0c0ca72359ddf28dcd15900dfba19343" kindref="member">uart_init</ref>(</highlight><highlight class="keywordtype">void</highlight><highlight class="normal">);</highlight></codeline>
-<codeline lineno="43"><highlight class="keywordtype">void</highlight><highlight class="normal"><sp/><ref refid="uart_8h_1a1bb761703934038d7820c4e7a92896c8" kindref="member">uart_sendChar</ref>(</highlight><highlight class="keywordtype">char</highlight><highlight class="normal"><sp/><ref refid="movementcommands_8c_1a91a70b77df95bd8b0830b49a094c2acb" kindref="member">data</ref>);</highlight></codeline>
-<codeline lineno="44"><highlight class="normal"></highlight></codeline>
-<codeline lineno="48"><highlight class="keywordtype">char</highlight><highlight class="normal"><sp/><ref refid="uart_8h_1a2cb93233c32004f54ac6103ac25ef64d" kindref="member">uart_receive</ref>(</highlight><highlight class="keywordtype">void</highlight><highlight class="normal">);</highlight></codeline>
-<codeline lineno="53"><highlight class="keywordtype">void</highlight><highlight class="normal"><sp/><ref refid="uart_8h_1af96d1ce52b8a52eabc606489d31351e9" kindref="member">uart_sendStr</ref>(</highlight><highlight class="keyword">const</highlight><highlight class="normal"><sp/></highlight><highlight class="keywordtype">char</highlight><highlight class="normal"><sp/>*<ref refid="movementcommands_8c_1a91a70b77df95bd8b0830b49a094c2acb" kindref="member">data</ref>);</highlight></codeline>
-<codeline lineno="59"><highlight class="keywordtype">void</highlight><highlight class="normal"><sp/><ref refid="uart_8h_1a8ed365abbf581c32e90ed632bf60f88e" kindref="member">uart_sendStrLen</ref>(</highlight><highlight class="keyword">const</highlight><highlight class="normal"><sp/></highlight><highlight class="keywordtype">char</highlight><highlight class="normal"><sp/>*<ref refid="movementcommands_8c_1a91a70b77df95bd8b0830b49a094c2acb" kindref="member">data</ref>,<sp/></highlight><highlight class="keywordtype">int</highlight><highlight class="normal"><sp/>length);</highlight></codeline>
-<codeline lineno="63"><highlight class="keywordtype">void</highlight><highlight class="normal"><sp/><ref refid="uart_8h_1a58d025fdfe1c8f521e1fa2a628cfa21d" kindref="member">uart_read</ref>();</highlight></codeline>
-<codeline lineno="67"><highlight class="keywordtype">void</highlight><highlight class="normal"><sp/><ref refid="uart_8h_1a8be40187644dacbc28cabbc673a36bff" kindref="member">uart_clear</ref>();</highlight></codeline>
-<codeline lineno="71"><highlight class="keywordtype">char</highlight><highlight class="normal"><sp/>*<sp/><ref refid="uart_8h_1a46df527ddf86c0ebfe750173a41dd4d3" kindref="member">getLastLine</ref>();</highlight></codeline>
-<codeline lineno="72"><highlight class="normal"></highlight></codeline>
-<codeline lineno="73"><highlight class="normal"></highlight><highlight class="preprocessor">#endif<sp/></highlight><highlight class="comment">/*<sp/>UART_H_<sp/>*/</highlight><highlight class="preprocessor"></highlight></codeline>
+<codeline lineno="22"><highlight class="normal"></highlight><highlight class="preprocessor">#include<sp/>&lt;inc/tm4c123gh6pm.h&gt;</highlight><highlight class="normal"></highlight></codeline>
+<codeline lineno="23"><highlight class="normal"></highlight><highlight class="preprocessor">#include<sp/>&quot;driverlib/interrupt.h&quot;</highlight><highlight class="normal"></highlight></codeline>
+<codeline lineno="24"><highlight class="normal"></highlight></codeline>
+<codeline lineno="28" refid="uart_8h_1aff2566f4c366b48d73479bef43ee4d2e" refkind="member"><highlight class="keywordtype">char</highlight><highlight class="normal"><sp/>*<sp/><ref refid="uart_8h_1aff2566f4c366b48d73479bef43ee4d2e" kindref="member">buffer</ref>;</highlight></codeline>
+<codeline lineno="32" refid="uart_8h_1af1bf0c65f126ec15b3204246afdc614e" refkind="member"><highlight class="keywordtype">char</highlight><highlight class="normal"><sp/>*<sp/><ref refid="uart_8h_1af1bf0c65f126ec15b3204246afdc614e" kindref="member">LastLine</ref>;</highlight></codeline>
+<codeline lineno="33"><highlight class="normal"></highlight></codeline>
+<codeline lineno="37"><highlight class="keywordtype">void</highlight><highlight class="normal"><sp/><ref refid="uart_8h_1a0c0ca72359ddf28dcd15900dfba19343" kindref="member">uart_init</ref>(</highlight><highlight class="keywordtype">void</highlight><highlight class="normal">);</highlight></codeline>
+<codeline lineno="42"><highlight class="keywordtype">void</highlight><highlight class="normal"><sp/><ref refid="uart_8h_1a1bb761703934038d7820c4e7a92896c8" kindref="member">uart_sendChar</ref>(</highlight><highlight class="keywordtype">char</highlight><highlight class="normal"><sp/><ref refid="main_8c_1a91a70b77df95bd8b0830b49a094c2acb" kindref="member">data</ref>);</highlight></codeline>
+<codeline lineno="43"><highlight class="normal"></highlight></codeline>
+<codeline lineno="47"><highlight class="keywordtype">char</highlight><highlight class="normal"><sp/><ref refid="uart_8h_1a2cb93233c32004f54ac6103ac25ef64d" kindref="member">uart_receive</ref>(</highlight><highlight class="keywordtype">void</highlight><highlight class="normal">);</highlight></codeline>
+<codeline lineno="52"><highlight class="keywordtype">void</highlight><highlight class="normal"><sp/><ref refid="uart_8h_1af96d1ce52b8a52eabc606489d31351e9" kindref="member">uart_sendStr</ref>(</highlight><highlight class="keyword">const</highlight><highlight class="normal"><sp/></highlight><highlight class="keywordtype">char</highlight><highlight class="normal"><sp/>*<ref refid="main_8c_1a91a70b77df95bd8b0830b49a094c2acb" kindref="member">data</ref>);</highlight></codeline>
+<codeline lineno="58"><highlight class="keywordtype">void</highlight><highlight class="normal"><sp/><ref refid="uart_8h_1a8ed365abbf581c32e90ed632bf60f88e" kindref="member">uart_sendStrLen</ref>(</highlight><highlight class="keyword">const</highlight><highlight class="normal"><sp/></highlight><highlight class="keywordtype">char</highlight><highlight class="normal"><sp/>*<ref refid="main_8c_1a91a70b77df95bd8b0830b49a094c2acb" kindref="member">data</ref>,<sp/></highlight><highlight class="keywordtype">int</highlight><highlight class="normal"><sp/>length);</highlight></codeline>
+<codeline lineno="62"><highlight class="keywordtype">void</highlight><highlight class="normal"><sp/><ref refid="uart_8h_1a58d025fdfe1c8f521e1fa2a628cfa21d" kindref="member">uart_read</ref>();</highlight></codeline>
+<codeline lineno="66"><highlight class="keywordtype">void</highlight><highlight class="normal"><sp/><ref refid="uart_8h_1a8be40187644dacbc28cabbc673a36bff" kindref="member">uart_clear</ref>();</highlight></codeline>
+<codeline lineno="70"><highlight class="keywordtype">char</highlight><highlight class="normal"><sp/>*<sp/><ref refid="uart_8h_1a46df527ddf86c0ebfe750173a41dd4d3" kindref="member">getLastLine</ref>();</highlight></codeline>
+<codeline lineno="71"><highlight class="normal"></highlight></codeline>
+<codeline lineno="72"><highlight class="normal"></highlight><highlight class="preprocessor">#endif<sp/></highlight><highlight class="comment">/*<sp/>UART_H_<sp/>*/</highlight><highlight class="preprocessor"></highlight></codeline>
     </programlisting>
     <location file="C:/Users/DonsterLaptop/Documents/Robot288/cpre288_generalpurposeautomatedrobot/Robot/Communication/uart.h"/>
   </compounddef>
diff --git a/README.md b/README.md
index 1b7b63aee3a78ee40875ff3ae169b0c8a68e3d1d..1aeb20ddc7aabf6ebc3a7b9853f2143d9996cf88 100644
--- a/README.md
+++ b/README.md
@@ -80,12 +80,16 @@ This robot is a nonholonomic system which means the robot cannot 'strafe'.
 @subsection Acknowledgements
 	Code that we didn't write:
 		
-		open_interface
-		timer
-		lcd
-	
+		open_interface.h - Author: Noah Bergman
+		open_interface.c - Author: Noah Bergman, Eric Middleton, dmlarson
+		timer.h - Author: Eric Middleton
+		timer.c - Author: Eric Middleton
+		lcd.h - Author: Noah Bergman
+		lcd.c - Author: Noah Bergman, Eric Middleton
+	
+	These have be lifted from the labs.
 	We did however, made some modifications to open_interface in order
-	to output degrees and distance as a float. 
+	to output degrees as a float. 
 
 @subsection Bugs
 	
diff --git a/Robot/Communication/uart.h b/Robot/Communication/uart.h
index 444d47f8dc11b464f6cc4e63f0d4f098ac7564a8..cb9db886565c29719d4385d707469959cc17dabe 100644
--- a/Robot/Communication/uart.h
+++ b/Robot/Communication/uart.h
@@ -19,7 +19,6 @@
 #include <stdbool.h>
 #include "Utils/timer.h"
 
-//#include "WiFi.h"
 #include <inc/tm4c123gh6pm.h>
 #include "driverlib/interrupt.h"
 
diff --git a/Robot/Utils/open_interface.c b/Robot/Utils/open_interface.c
index 4d28d5f9978990fefcabb515c90ac38b833f6e48..defbf0f2c83fa292741c972f0e3a30574cdecf17 100644
--- a/Robot/Utils/open_interface.c
+++ b/Robot/Utils/open_interface.c
@@ -1,8 +1,11 @@
-/*
- * open_interface.c
+/**
+ *      @file   open_interface.c
+ *
+ *      @brief  Contains all functionality to interface with the IRobot Create V2
+ *              Communication over UART4 at 115200
  *
- *  Created on: Mar 11, 2016
- *      Author: nbergman
+ * @author Noah Bergman
+ * @date 03/11/2016
  */
 
 /*
diff --git a/Robot/Utils/open_interface.h b/Robot/Utils/open_interface.h
index 1bdb100f5aaa82539aec4359264572b7d9e55819..c94f3f9c42bd531c93eb7e074327017127b7d3f6 100644
--- a/Robot/Utils/open_interface.h
+++ b/Robot/Utils/open_interface.h
@@ -1,4 +1,4 @@
-/*
+/**
  *      @file   open_interface.h
  *
  *      @brief  Header file for open_interface.c
@@ -175,6 +175,7 @@ void oi_shutoff_init(void);
 void GPIOF_Handler(void);
 
 //used to get the current moved degrees from encoder count
+//Don Kieu: Modified to get this in float instead of integer
 float getDegrees(oi_t *self);
 
 #endif /* OPEN_INTERFACE_H_ */
diff --git a/Robot/Utils/timer4.c b/Robot/Utils/timer4.c
index ede52cc0c117b778015f6dc25bf6e2bdaa360f68..057833a25ded0fff99a215fcd1e0ebbad430e8e1 100644
--- a/Robot/Utils/timer4.c
+++ b/Robot/Utils/timer4.c
@@ -1,8 +1,14 @@
-/*
- * timer4.cpp
+/**
  *
- *  Created on: Oct 31, 2018
- *      Author: donster
+ *      @file   timer4.c
+ *
+ *      @brief  Library file for handling a timer interrupt for IR Sensor
+ *
+ *      @author Quentin Urbanowicz
+ *      @author Rene Chavez
+ *      @author Peyton Sher
+ *      @author Don Kieu
+ *      @date   2018-11-13, 2018-11-27
  */
 
 #include "timer4.h"
@@ -20,19 +26,19 @@ void clock_timer_init(void)
     SYSCTL_RCGCTIMER_R |= SYSCTL_RCGCTIMER_R4; // Turn on clock to TIMER4
 
     //Configure the timer for input capture mode
-    TIMER4_CTL_R &= ~(TIMER_CTL_TAEN | TIMER_CTL_TBEN); //disable timerB to allow us to change settings
+    TIMER4_CTL_R &= ~(TIMER_CTL_TAEN | TIMER_CTL_TBEN); //disable Timer4A and Timer4B to allow us to change settings
     TIMER4_CFG_R |= TIMER_CFG_16_BIT; //set to 16 bit timer
 
     TIMER4_TAMR_R = TIMER_TAMR_TAMR_PERIOD; //set for periodic mode, down count
     TIMER4_TBMR_R = TIMER_TBMR_TBMR_PERIOD; //set for periodic mode, down count
 
     TIMER4_TAPR_R = TIMER4_PRESCALER - 1; // 75  ms clock
-    TIMER4_TBPR_R = TIMER4_PRESCALER - 1;  // 200 ms clock
+    TIMER4_TBPR_R = TIMER4_PRESCALER - 1;  // 150 ms clock
 
-    TIMER4_TAILR_R = TIMER4A_COUNTS - 1; // set the load value for the 1 second clock (with your prescaler, how many clock cycles happen in 1 second?)
-    TIMER4_TBILR_R = TIMER4B_COUNTS - 1; // set the load value for the 0.15 second clock
+    TIMER4_TAILR_R = TIMER4A_COUNTS - 1; // set the load value for the  75 ms clock
+    TIMER4_TBILR_R = TIMER4B_COUNTS - 1; // set the load value for the 150 ms clock
 
-    //clear TIMER3B interrupt flags
+    //clear TIMER4B interrupt flags
     TIMER4_ICR_R = (TIMER_ICR_TATOCINT | TIMER_ICR_TBTOCINT); //clears TIMER4 time-out interrupt flags
     TIMER4_IMR_R |= (TIMER_IMR_TATOIM | TIMER_IMR_TBTOIM); //enable TIMER4(A&B) time-out interrupts
 
diff --git a/Robot/Utils/timer4.h b/Robot/Utils/timer4.h
index 5992ce005ac47b2bc97b6d6990595f57ab820e01..aefc096882910eb0ec48859ce8de966c33d9e95d 100644
--- a/Robot/Utils/timer4.h
+++ b/Robot/Utils/timer4.h
@@ -1,7 +1,9 @@
-/*
- * timer4.h
+/**
+ *
+ *      @file   timer4.h
+ *
+ *      @brief  Header file for handling a timer interrupt for IR Sensor
  *
- *  Created on: Oct 31, 2018
  *      @author Quentin Urbanowicz
  *      @author Rene Chavez
  *      @author Peyton Sher