<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html><head><meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1"> <title>GearBox Project</title> <link rel="icon" href="gbx_icon_cardbox_sky.png" type="image/png"> <link rel="shortcut icon" href="gbx_icon_cardbox_sky.png" type="image/png"> <link href="doxygen.css" rel="stylesheet" type="text/css"> <link href="tabs.css" rel="stylesheet" type="text/css"> <!-- Google Analytics --> <script type="text/javascript"> var gaJsHost = (("https:" == document.location.protocol) ? "https://ssl." : "http://www."); document.write(unescape("%3Cscript src='" + gaJsHost + "google-analytics.com/ga.js' type='text/javascript'%3E%3C/script%3E")); </script> <script type="text/javascript"> var pageTracker = _gat._getTracker("UA-3583782-1"); pageTracker._initData(); pageTracker._trackPageview(); </script> <!-- Returning you to your regular programming --> </head><body> <!-- Header --> <table border="0" cellspacing="0" cellpadding="0"> <tr><!-- create row --> <!-- spacer cell --> <!-- #CC CC CC --> <td rowspan="1" colspan="1" bgcolor="#EEEEEE"> </td> <!-- menu cell --> <td width="170" rowspan="1" colspan="1" align="left" valign="top" bgcolor="#EEEEEE"> <p> </p> <p align="center"><a href="index.html"><img src="gbx_logo_cardbox_sky_150x150.png"></a></p><br> <strong>INTRODUCTION</strong><br> <strong><a href="gbx_doc_overview.html" style="text-decoration:none">Overview</a></strong><br> <strong><a href="gbx_doc_getting.html" style="text-decoration:none">Download and Install</a></strong><br> <!-- <strong><a href="gbx_doc_quickstart.html" style="text-decoration:none">Quick Start</a></strong><br> --> <strong><a href="gbx_doc_documentation.html" style="text-decoration:none">Documentation</a></strong><br> <strong><a href="gbx_doc_publications.html" style="text-decoration:none">Publications</a></strong><br> <br> <strong>REPOSITORY</strong><br> <strong><a href="group__gbx__libs.html" style="text-decoration:none">Libraries</a></strong><br> <!-- <strong><a href="group__gbx__utils.html" style="text-decoration:none">Utilities</a></strong><br> --> <br> <strong>DEVELOPER</strong><br> <!--<strong><a href="gbx_doc_tutorials.html" style="text-decoration:none">Tutorials</a></strong><br> <strong><a href="group__gbx__examples.html" style="text-decoration:none">Examples</a></strong><br>--> <strong><a href="gbx_doc_devguide.html" style="text-decoration:none">Dev Guide</a></strong><br> <!-- <strong><a href="gbx_doc_faq.html" style="text-decoration:none">FAQ</a></strong><br> --> <strong><a href="http://cdash.acfr.usyd.edu.au/index.php?project=Gearbox" style="text-decoration:none">Dashboard</a></strong><br> <!--<strong><a href="http://wiki2.cas.edu.au/orca">Wiki</a></strong><br> login/pass: orca/orca<br>--> <br> <strong>PEOPLE</strong><br> <strong><a href="gbx_doc_contributors.html" style="text-decoration:none">Contributors</a></strong><br> <strong><a href="gbx_doc_users.html" style="text-decoration:none">Users</a></strong><br> <br> <a href="http://sourceforge.net"><img src="http://sourceforge.net/sflogo.php?group_id=216468&type=2" width="125" height="37" border="0" alt="SourceForge.net Logo" /></a><br> <strong><a href="http://sourceforge.net/projects/gearbox">Project</a></strong><br> <strong><a href="http://sourceforge.net/project/showfiles.php?group_id=216468">Download</a></strong><br> <!--<strong><a href="http://sourceforge.net/tracker/?group_id=216468">Bugs/Feedback</a></strong><br>--> <strong><a href="http://sourceforge.net/mail/?group_id=216468">Mailing lists</a></strong></p> <p> </p> </td><!-- /menu cell --> <!-- one grey spacer cells --> <td rowspan="1" colspan="1" bgcolor="#EEEEEE"> </td> <!-- one white spacer cells --> <td rowspan="1" colspan="1"> </td> <!-- main content cell --> <td rowspan="1" colspan="1" align="left" valign="top"> <!-- Generated by Doxygen 1.6.2-20100208 --> <div class="navigation" id="top"> <div class="tabs"> <ul> <li><a href="index.html"><span>Main Page</span></a></li> <li><a href="pages.html"><span>Related Pages</span></a></li> <li><a href="modules.html"><span>Modules</span></a></li> <li><a href="namespaces.html"><span>Namespaces</span></a></li> <li><a href="annotated.html"><span>Classes</span></a></li> <li class="current"><a href="files.html"><span>Files</span></a></li> <li><a href="dirs.html"><span>Directories</span></a></li> </ul> </div> <div class="tabs"> <ul> <li><a href="files.html"><span>File List</span></a></li> </ul> </div> <div class="navpath"><a class="el" href="dir_b8ba9ebcb71a95a44c4fd60b7d348fe1.html">src</a> » <a class="el" href="dir_e3f15aa23b050338afa5a01a94d6f1bf.html">gbxgarminacfr</a> </div> </div> <div class="contents"> <h1>gbxgarminacfr/driver.h</h1><div class="fragment"><pre class="fragment"><a name="l00001"></a>00001 <span class="comment">/*</span> <a name="l00002"></a>00002 <span class="comment"> * GearBox Project: Peer-Reviewed Open-Source Libraries for Robotics</span> <a name="l00003"></a>00003 <span class="comment"> * http://gearbox.sf.net/</span> <a name="l00004"></a>00004 <span class="comment"> * Copyright (c) 2004-2008 Duncan Mercer, Alex Brooks, Alexei Makarenko, Tobias Kaupp</span> <a name="l00005"></a>00005 <span class="comment"> *</span> <a name="l00006"></a>00006 <span class="comment"> * This distribution is licensed to you under the terms described in</span> <a name="l00007"></a>00007 <span class="comment"> * the LICENSE file included in this distribution.</span> <a name="l00008"></a>00008 <span class="comment"> *</span> <a name="l00009"></a>00009 <span class="comment"> */</span> <a name="l00010"></a>00010 <a name="l00011"></a>00011 <span class="preprocessor">#ifndef GBXGARMINACFR_DRIVER_H</span> <a name="l00012"></a>00012 <span class="preprocessor"></span><span class="preprocessor">#define GBXGARMINACFR_DRIVER_H</span> <a name="l00013"></a>00013 <span class="preprocessor"></span> <a name="l00014"></a>00014 <span class="preprocessor">#include <gbxserialacfr/serial.h></span> <a name="l00015"></a>00015 <span class="preprocessor">#include <gbxutilacfr/tracer.h></span> <a name="l00016"></a>00016 <span class="preprocessor">#include <gbxutilacfr/status.h></span> <a name="l00017"></a>00017 <span class="preprocessor">#include <memory></span> <a name="l00018"></a>00018 <a name="l00019"></a>00019 <span class="keyword">namespace </span>gbxgarminacfr { <a name="l00020"></a>00020 <a name="l00022"></a><a class="code" href="classgbxgarminacfr_1_1Config.html">00022</a> <span class="keyword">class </span><a class="code" href="classgbxgarminacfr_1_1Config.html" title="Configuration structure.">Config</a> <a name="l00023"></a>00023 { <a name="l00024"></a>00024 <span class="keyword">public</span>: <a name="l00025"></a>00025 <a class="code" href="classgbxgarminacfr_1_1Config.html" title="Configuration structure.">Config</a>() : <a name="l00026"></a>00026 <a class="code" href="classgbxgarminacfr_1_1Config.html#a6b53d5a95a926f52c7057745f9e88de9" title="Read GPGGA sentence.">readGga</a>(<span class="keyword">true</span>), <a name="l00027"></a>00027 <a class="code" href="classgbxgarminacfr_1_1Config.html#a265a93fd8d8653ddd4b794e03eb4b4fd" title="Read GPVTG sentence.">readVtg</a>(<span class="keyword">true</span>), <a name="l00028"></a>00028 <a class="code" href="classgbxgarminacfr_1_1Config.html#a844ca8029a8465acc751f4c113e8378a" title="Read PGRME sentence.">readRme</a>(<span class="keyword">true</span>), <a name="l00029"></a>00029 <a class="code" href="classgbxgarminacfr_1_1Config.html#ae4505f5744b8bdd7e6a43139d6679049">ignoreUnknown</a>(<span class="keyword">false</span>) {}; <a name="l00030"></a>00030 <a name="l00034"></a>00034 <span class="keywordtype">bool</span> <a class="code" href="classgbxgarminacfr_1_1Config.html#a234caa76897d228203ca1aee33edc5e5">isValid</a>() <span class="keyword">const</span>; <a name="l00035"></a>00035 <a name="l00037"></a>00037 std::string <a class="code" href="classgbxgarminacfr_1_1Config.html#a94ed0b3fb7c1f1d16333648fedb0011f" title="Returns human-readable configuration description.">toString</a>() <span class="keyword">const</span>; <a name="l00038"></a>00038 <a name="l00040"></a><a class="code" href="classgbxgarminacfr_1_1Config.html#a6702d52ab06e1dddb3974e64dad0e773">00040</a> std::string <a class="code" href="classgbxgarminacfr_1_1Config.html#a6702d52ab06e1dddb3974e64dad0e773" title="Serial device. e.g. &quot;/dev/ttyS0&quot;.">device</a>; <a name="l00041"></a>00041 <a name="l00043"></a><a class="code" href="classgbxgarminacfr_1_1Config.html#a6b53d5a95a926f52c7057745f9e88de9">00043</a> <span class="keywordtype">bool</span> <a class="code" href="classgbxgarminacfr_1_1Config.html#a6b53d5a95a926f52c7057745f9e88de9" title="Read GPGGA sentence.">readGga</a>; <a name="l00045"></a><a class="code" href="classgbxgarminacfr_1_1Config.html#a265a93fd8d8653ddd4b794e03eb4b4fd">00045</a> <span class="keywordtype">bool</span> <a class="code" href="classgbxgarminacfr_1_1Config.html#a265a93fd8d8653ddd4b794e03eb4b4fd" title="Read GPVTG sentence.">readVtg</a>; <a name="l00047"></a><a class="code" href="classgbxgarminacfr_1_1Config.html#a844ca8029a8465acc751f4c113e8378a">00047</a> <span class="keywordtype">bool</span> <a class="code" href="classgbxgarminacfr_1_1Config.html#a844ca8029a8465acc751f4c113e8378a" title="Read PGRME sentence.">readRme</a>; <a name="l00048"></a>00048 <a name="l00052"></a><a class="code" href="classgbxgarminacfr_1_1Config.html#ae4505f5744b8bdd7e6a43139d6679049">00052</a> <span class="keywordtype">bool</span> <a class="code" href="classgbxgarminacfr_1_1Config.html#ae4505f5744b8bdd7e6a43139d6679049">ignoreUnknown</a>; <a name="l00053"></a>00053 }; <a name="l00054"></a>00054 <a name="l00056"></a><a class="code" href="namespacegbxgarminacfr.html#ac58741861a26a48c03cf9862c5e10f8b">00056</a> <span class="keyword">enum</span> <a class="code" href="namespacegbxgarminacfr.html#ac58741861a26a48c03cf9862c5e10f8b" title="Possible types GenericData can contain.">DataType</a> <a name="l00057"></a>00057 { <a name="l00059"></a><a class="code" href="namespacegbxgarminacfr.html#ac58741861a26a48c03cf9862c5e10f8ba47c8bfbb627e572a20244eeff6131a6f">00059</a> <a class="code" href="namespacegbxgarminacfr.html#ac58741861a26a48c03cf9862c5e10f8ba47c8bfbb627e572a20244eeff6131a6f" title="Contents of PGGGA message.">GpGga</a>, <a name="l00061"></a><a class="code" href="namespacegbxgarminacfr.html#ac58741861a26a48c03cf9862c5e10f8ba31a1d5fe5e051887f50b0b097dd7021c">00061</a> <a class="code" href="namespacegbxgarminacfr.html#ac58741861a26a48c03cf9862c5e10f8ba31a1d5fe5e051887f50b0b097dd7021c" title="Contents of PGVTG message.">GpVtg</a>, <a name="l00063"></a><a class="code" href="namespacegbxgarminacfr.html#ac58741861a26a48c03cf9862c5e10f8bae833766f5f22ae74c74ccaba94c49af5">00063</a> <a class="code" href="namespacegbxgarminacfr.html#ac58741861a26a48c03cf9862c5e10f8bae833766f5f22ae74c74ccaba94c49af5" title="Contents of PGRME message.">PgRme</a> <a name="l00064"></a>00064 }; <a name="l00065"></a>00065 <a name="l00067"></a><a class="code" href="classgbxgarminacfr_1_1GenericData.html">00067</a> <span class="keyword">class </span><a class="code" href="classgbxgarminacfr_1_1GenericData.html" title="Generic data type returned by a read.">GenericData</a> <a name="l00068"></a>00068 { <a name="l00069"></a>00069 <span class="keyword">public</span>: <a name="l00070"></a>00070 <span class="keyword">virtual</span> ~<a class="code" href="classgbxgarminacfr_1_1GenericData.html" title="Generic data type returned by a read.">GenericData</a>() {}; <a name="l00072"></a>00072 <span class="keyword">virtual</span> <a class="code" href="namespacegbxgarminacfr.html#ac58741861a26a48c03cf9862c5e10f8b" title="Possible types GenericData can contain.">DataType</a> <a class="code" href="classgbxgarminacfr_1_1GenericData.html#ab3ddd8a51cd217d4ed20a350e6bcd0a0" title="Returns data type.">type</a>() <span class="keyword">const</span>=0; <a name="l00073"></a>00073 <a name="l00074"></a>00074 <span class="keyword">private</span>: <a name="l00075"></a>00075 }; <a name="l00076"></a>00076 <a name="l00078"></a><a class="code" href="namespacegbxgarminacfr.html#a10d43e99e3d7dd13d8969143238c3164">00078</a> <span class="keyword">enum</span> <a class="code" href="namespacegbxgarminacfr.html#a10d43e99e3d7dd13d8969143238c3164" title="GPS fix types.">FixType</a> <a name="l00079"></a>00079 { <a name="l00081"></a><a class="code" href="namespacegbxgarminacfr.html#a10d43e99e3d7dd13d8969143238c3164aab6fd7c707d87d8dd4bdcbd8c50ff0b4">00081</a> <a class="code" href="namespacegbxgarminacfr.html#a10d43e99e3d7dd13d8969143238c3164aab6fd7c707d87d8dd4bdcbd8c50ff0b4" title="Invalid or not available.">Invalid</a>, <a name="l00084"></a><a class="code" href="namespacegbxgarminacfr.html#a10d43e99e3d7dd13d8969143238c3164a6b0602492d12e2c5c72f32d8b8222159">00084</a> <a class="code" href="namespacegbxgarminacfr.html#a10d43e99e3d7dd13d8969143238c3164a6b0602492d12e2c5c72f32d8b8222159">Autonomous</a>, <a name="l00086"></a><a class="code" href="namespacegbxgarminacfr.html#a10d43e99e3d7dd13d8969143238c3164a53df7519f8e59995843c886f95107fd2">00086</a> <a class="code" href="namespacegbxgarminacfr.html#a10d43e99e3d7dd13d8969143238c3164a53df7519f8e59995843c886f95107fd2" title="Differentially corrected.">Differential</a> <a name="l00087"></a>00087 }; <a name="l00088"></a>00088 std::string toString( <span class="keyword">const</span> <a class="code" href="namespacegbxgarminacfr.html#a10d43e99e3d7dd13d8969143238c3164" title="GPS fix types.">FixType</a> &f ); <a name="l00089"></a>00089 <a name="l00092"></a><a class="code" href="structgbxgarminacfr_1_1GgaData.html">00092</a> <span class="keyword">struct </span><a class="code" href="structgbxgarminacfr_1_1GgaData.html">GgaData</a> : <span class="keyword">public</span> <a class="code" href="classgbxgarminacfr_1_1GenericData.html" title="Generic data type returned by a read.">GenericData</a> <a name="l00093"></a>00093 { <a name="l00094"></a>00094 <span class="keyword">public</span>: <a name="l00095"></a><a class="code" href="structgbxgarminacfr_1_1GgaData.html#a843c693481edea65d2fd9e2256bc4267">00095</a> <a class="code" href="namespacegbxgarminacfr.html#ac58741861a26a48c03cf9862c5e10f8b" title="Possible types GenericData can contain.">DataType</a> <a class="code" href="structgbxgarminacfr_1_1GgaData.html#a843c693481edea65d2fd9e2256bc4267" title="Returns data type.">type</a>()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> <a class="code" href="namespacegbxgarminacfr.html#ac58741861a26a48c03cf9862c5e10f8ba47c8bfbb627e572a20244eeff6131a6f" title="Contents of PGGGA message.">GpGga</a>; } <a name="l00096"></a>00096 <a name="l00099"></a><a class="code" href="structgbxgarminacfr_1_1GgaData.html#a60c90c04d45f92ca876884f3e6c2f977">00099</a> <span class="keywordtype">int</span> <a class="code" href="structgbxgarminacfr_1_1GgaData.html#a60c90c04d45f92ca876884f3e6c2f977">timeStampSec</a>; <a name="l00102"></a><a class="code" href="structgbxgarminacfr_1_1GgaData.html#a4bafe4fadc1c8a63834c9bc03fca0472">00102</a> <span class="keywordtype">int</span> <a class="code" href="structgbxgarminacfr_1_1GgaData.html#a4bafe4fadc1c8a63834c9bc03fca0472">timeStampUsec</a>; <a name="l00103"></a>00103 <a name="l00106"></a><a class="code" href="structgbxgarminacfr_1_1GgaData.html#a6e35fd88d007cd7c5a51aabc31e7badd">00106</a> <span class="keywordtype">int</span> <a class="code" href="structgbxgarminacfr_1_1GgaData.html#a6e35fd88d007cd7c5a51aabc31e7badd">utcTimeHrs</a>; <a name="l00109"></a><a class="code" href="structgbxgarminacfr_1_1GgaData.html#a826a1d222a08e7a34e90b66e9ca7b904">00109</a> <span class="keywordtype">int</span> <a class="code" href="structgbxgarminacfr_1_1GgaData.html#a826a1d222a08e7a34e90b66e9ca7b904">utcTimeMin</a>; <a name="l00112"></a><a class="code" href="structgbxgarminacfr_1_1GgaData.html#a7a2918a0845e507eaf28ee82fcc9436d">00112</a> <span class="keywordtype">double</span> <a class="code" href="structgbxgarminacfr_1_1GgaData.html#a7a2918a0845e507eaf28ee82fcc9436d">utcTimeSec</a>; <a name="l00113"></a>00113 <a name="l00115"></a><a class="code" href="structgbxgarminacfr_1_1GgaData.html#a03a30f29fad96814eee1d00a7919381d">00115</a> <span class="keywordtype">double</span> <a class="code" href="structgbxgarminacfr_1_1GgaData.html#a03a30f29fad96814eee1d00a7919381d" title="Latitude [degrees].">latitude</a>; <a name="l00117"></a><a class="code" href="structgbxgarminacfr_1_1GgaData.html#a6990bb108d933c6d588e9984686a8913">00117</a> <span class="keywordtype">double</span> <a class="code" href="structgbxgarminacfr_1_1GgaData.html#a6990bb108d933c6d588e9984686a8913" title="Longitude [degrees].">longitude</a>; <a name="l00119"></a><a class="code" href="structgbxgarminacfr_1_1GgaData.html#af02fdf9501b4b62e47b4c5b77876c217">00119</a> <span class="keywordtype">bool</span> <a class="code" href="structgbxgarminacfr_1_1GgaData.html#af02fdf9501b4b62e47b4c5b77876c217" title="Altitude is meaningful if and only if isAltitudeKnown.">isAltitudeKnown</a>; <a name="l00121"></a><a class="code" href="structgbxgarminacfr_1_1GgaData.html#abf189f307b64ead689ff89b6f20d10d6">00121</a> <span class="keywordtype">double</span> <a class="code" href="structgbxgarminacfr_1_1GgaData.html#abf189f307b64ead689ff89b6f20d10d6" title="Altitude [metres above ellipsoid] (only meaningful if isAltitudeKnown).">altitude</a>; <a name="l00122"></a>00122 <a name="l00125"></a><a class="code" href="structgbxgarminacfr_1_1GgaData.html#a73da60a2b2df216183228b2b4920aa77">00125</a> <a class="code" href="namespacegbxgarminacfr.html#a10d43e99e3d7dd13d8969143238c3164" title="GPS fix types.">FixType</a> <a class="code" href="structgbxgarminacfr_1_1GgaData.html#a73da60a2b2df216183228b2b4920aa77">fixType</a>; <a name="l00126"></a>00126 <a name="l00128"></a><a class="code" href="structgbxgarminacfr_1_1GgaData.html#a2fff8a3ae021c3535294bb4e7ec874f9">00128</a> <span class="keywordtype">int</span> <a class="code" href="structgbxgarminacfr_1_1GgaData.html#a2fff8a3ae021c3535294bb4e7ec874f9" title="Number of satellites.">satellites</a>; <a name="l00129"></a>00129 <a name="l00131"></a><a class="code" href="structgbxgarminacfr_1_1GgaData.html#a4e5ed26c33b83cc9d0e248d7e5743e64">00131</a> <span class="keywordtype">double</span> <a class="code" href="structgbxgarminacfr_1_1GgaData.html#a4e5ed26c33b83cc9d0e248d7e5743e64" title="Horizontal dilution of position [metres].">horizontalDilutionOfPosition</a>; <a name="l00132"></a>00132 <a name="l00134"></a><a class="code" href="structgbxgarminacfr_1_1GgaData.html#ab9a8f29b32ba73f041f35ec07d51ebc8">00134</a> <span class="keywordtype">double</span> <a class="code" href="structgbxgarminacfr_1_1GgaData.html#ab9a8f29b32ba73f041f35ec07d51ebc8" title="Height of geoid (mean sea level) above WGS84 ellipsoid [metres].">geoidalSeparation</a>; <a name="l00135"></a>00135 }; <a name="l00136"></a>00136 std::string toString( <span class="keyword">const</span> <a class="code" href="structgbxgarminacfr_1_1GgaData.html">GgaData</a> &d ); <a name="l00137"></a>00137 <span class="keyword">inline</span> std::ostream &operator<<( std::ostream &s, <span class="keyword">const</span> <a class="code" href="structgbxgarminacfr_1_1GgaData.html">GgaData</a> &d ) <a name="l00138"></a>00138 { <span class="keywordflow">return</span> s << toString(d); } <a name="l00139"></a>00139 <a name="l00141"></a><a class="code" href="classgbxgarminacfr_1_1VtgData.html">00141</a> <span class="keyword">class </span><a class="code" href="classgbxgarminacfr_1_1VtgData.html" title="Vector track and speed over ground data structure.">VtgData</a> : <span class="keyword">public</span> <a class="code" href="classgbxgarminacfr_1_1GenericData.html" title="Generic data type returned by a read.">GenericData</a> <a name="l00142"></a>00142 { <a name="l00143"></a>00143 <span class="keyword">public</span>: <a name="l00144"></a><a class="code" href="classgbxgarminacfr_1_1VtgData.html#a0fe303f588157912c4c9291e827435f0">00144</a> <a class="code" href="namespacegbxgarminacfr.html#ac58741861a26a48c03cf9862c5e10f8b" title="Possible types GenericData can contain.">DataType</a> <a class="code" href="classgbxgarminacfr_1_1VtgData.html#a0fe303f588157912c4c9291e827435f0" title="Returns data type.">type</a>()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> <a class="code" href="namespacegbxgarminacfr.html#ac58741861a26a48c03cf9862c5e10f8ba31a1d5fe5e051887f50b0b097dd7021c" title="Contents of PGVTG message.">GpVtg</a>; } <a name="l00145"></a>00145 <a name="l00148"></a><a class="code" href="classgbxgarminacfr_1_1VtgData.html#a6e0736eadd15f5d74d9cc5966fb122f5">00148</a> <span class="keywordtype">int</span> <a class="code" href="classgbxgarminacfr_1_1VtgData.html#a6e0736eadd15f5d74d9cc5966fb122f5">timeStampSec</a>; <a name="l00151"></a><a class="code" href="classgbxgarminacfr_1_1VtgData.html#a4d2846cf7d733d240509cf33c0622330">00151</a> <span class="keywordtype">int</span> <a class="code" href="classgbxgarminacfr_1_1VtgData.html#a4d2846cf7d733d240509cf33c0622330">timeStampUsec</a>; <a name="l00152"></a>00152 <a name="l00155"></a><a class="code" href="classgbxgarminacfr_1_1VtgData.html#a9acc1654cf4e22eb746f983e02adba76">00155</a> <span class="keywordtype">bool</span> <a class="code" href="classgbxgarminacfr_1_1VtgData.html#a9acc1654cf4e22eb746f983e02adba76">isValid</a>; <a name="l00156"></a>00156 <a name="l00158"></a><a class="code" href="classgbxgarminacfr_1_1VtgData.html#a5b890201c8a15742526f2b8af76a71dc">00158</a> <span class="keywordtype">double</span> <a class="code" href="classgbxgarminacfr_1_1VtgData.html#a5b890201c8a15742526f2b8af76a71dc" title="Heading/track/course with respect to true North [rad].">headingTrue</a>; <a name="l00160"></a><a class="code" href="classgbxgarminacfr_1_1VtgData.html#ac5465ab542edb92a4b9ace9bdaf010cd">00160</a> <span class="keywordtype">double</span> <a class="code" href="classgbxgarminacfr_1_1VtgData.html#ac5465ab542edb92a4b9ace9bdaf010cd" title="Heading/track/course with respect to magnetic North [rad].">headingMagnetic</a>; <a name="l00162"></a><a class="code" href="classgbxgarminacfr_1_1VtgData.html#abf6cca06934f4ae6336e4be65f691559">00162</a> <span class="keywordtype">double</span> <a class="code" href="classgbxgarminacfr_1_1VtgData.html#abf6cca06934f4ae6336e4be65f691559" title="Horizontal velocity [metres/second].">speed</a>; <a name="l00163"></a>00163 }; <a name="l00164"></a>00164 std::string toString( <span class="keyword">const</span> <a class="code" href="classgbxgarminacfr_1_1VtgData.html" title="Vector track and speed over ground data structure.">VtgData</a> &d ); <a name="l00165"></a>00165 <span class="keyword">inline</span> std::ostream &operator<<( std::ostream &s, <span class="keyword">const</span> <a class="code" href="classgbxgarminacfr_1_1VtgData.html" title="Vector track and speed over ground data structure.">VtgData</a> &d ) <a name="l00166"></a>00166 { <span class="keywordflow">return</span> s << toString(d); } <a name="l00167"></a>00167 <a name="l00169"></a><a class="code" href="classgbxgarminacfr_1_1RmeData.html">00169</a> <span class="keyword">class </span><a class="code" href="classgbxgarminacfr_1_1RmeData.html" title="Gps data structure.">RmeData</a> : <span class="keyword">public</span> <a class="code" href="classgbxgarminacfr_1_1GenericData.html" title="Generic data type returned by a read.">GenericData</a> <a name="l00170"></a>00170 { <a name="l00171"></a>00171 <span class="keyword">public</span>: <a name="l00172"></a><a class="code" href="classgbxgarminacfr_1_1RmeData.html#a2ad37e26a50a0becf23dce70fd601818">00172</a> <a class="code" href="namespacegbxgarminacfr.html#ac58741861a26a48c03cf9862c5e10f8b" title="Possible types GenericData can contain.">DataType</a> <a class="code" href="classgbxgarminacfr_1_1RmeData.html#a2ad37e26a50a0becf23dce70fd601818" title="Returns data type.">type</a>()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> <a class="code" href="namespacegbxgarminacfr.html#ac58741861a26a48c03cf9862c5e10f8bae833766f5f22ae74c74ccaba94c49af5" title="Contents of PGRME message.">PgRme</a>; } <a name="l00173"></a>00173 <a name="l00176"></a><a class="code" href="classgbxgarminacfr_1_1RmeData.html#a93e257bdca8f2eeb8afc508e6e34d4f2">00176</a> <span class="keywordtype">int</span> <a class="code" href="classgbxgarminacfr_1_1RmeData.html#a93e257bdca8f2eeb8afc508e6e34d4f2">timeStampSec</a>; <a name="l00179"></a><a class="code" href="classgbxgarminacfr_1_1RmeData.html#a5212a1efe9206a3207802364793ea695">00179</a> <span class="keywordtype">int</span> <a class="code" href="classgbxgarminacfr_1_1RmeData.html#a5212a1efe9206a3207802364793ea695">timeStampUsec</a>; <a name="l00180"></a>00180 <a name="l00183"></a><a class="code" href="classgbxgarminacfr_1_1RmeData.html#ab761b9619b86b58ad43aa10936d8de09">00183</a> <span class="keywordtype">bool</span> <a class="code" href="classgbxgarminacfr_1_1RmeData.html#ab761b9619b86b58ad43aa10936d8de09">isValid</a>; <a name="l00184"></a>00184 <a name="l00187"></a><a class="code" href="classgbxgarminacfr_1_1RmeData.html#a9c71e02b60a7565a60d23c4c8e844d88">00187</a> <span class="keywordtype">bool</span> <a class="code" href="classgbxgarminacfr_1_1RmeData.html#a9c71e02b60a7565a60d23c4c8e844d88">isVerticalPositionErrorValid</a>; <a name="l00188"></a>00188 <a name="l00190"></a><a class="code" href="classgbxgarminacfr_1_1RmeData.html#a74f9566abffda01b0799aba2c5a9d74d">00190</a> <span class="keywordtype">double</span> <a class="code" href="classgbxgarminacfr_1_1RmeData.html#a74f9566abffda01b0799aba2c5a9d74d" title="Horizontal position error: one standard deviation [metres)].">horizontalPositionError</a>; <a name="l00192"></a><a class="code" href="classgbxgarminacfr_1_1RmeData.html#a7feb2c10f46ca925ef083c49d08eab27">00192</a> <span class="keywordtype">double</span> <a class="code" href="classgbxgarminacfr_1_1RmeData.html#a7feb2c10f46ca925ef083c49d08eab27" title="Vertical position error: one standard deviation [metres].">verticalPositionError</a>; <a name="l00193"></a>00193 <a name="l00195"></a><a class="code" href="classgbxgarminacfr_1_1RmeData.html#ad3baaa06baaacc5e5ed37a5f355d0ba7">00195</a> <span class="keywordtype">double</span> <a class="code" href="classgbxgarminacfr_1_1RmeData.html#ad3baaa06baaacc5e5ed37a5f355d0ba7" title="Estimated position error.">estimatedPositionError</a>; <a name="l00196"></a>00196 }; <a name="l00197"></a>00197 std::string toString( <span class="keyword">const</span> <a class="code" href="classgbxgarminacfr_1_1RmeData.html" title="Gps data structure.">RmeData</a> &d ); <a name="l00198"></a>00198 <span class="keyword">inline</span> std::ostream &operator<<( std::ostream &s, <span class="keyword">const</span> <a class="code" href="classgbxgarminacfr_1_1RmeData.html" title="Gps data structure.">RmeData</a> &d ) <a name="l00199"></a>00199 { <span class="keywordflow">return</span> s << toString(d); } <a name="l00200"></a>00200 <a name="l00222"></a><a class="code" href="classgbxgarminacfr_1_1Driver.html">00222</a> <span class="keyword">class </span><a class="code" href="classgbxgarminacfr_1_1Driver.html">Driver</a> <a name="l00223"></a>00223 { <a name="l00224"></a>00224 <a name="l00225"></a>00225 <span class="keyword">public</span>: <a name="l00226"></a>00226 <a name="l00232"></a>00232 <a class="code" href="classgbxgarminacfr_1_1Driver.html#aeee5bda2e5b456e12b566edaa9ac9288">Driver</a>( <span class="keyword">const</span> <a class="code" href="classgbxgarminacfr_1_1Config.html" title="Configuration structure.">Config</a>& config, <a name="l00233"></a>00233 <a class="code" href="classgbxutilacfr_1_1Tracer.html" title="Local and remote tracing.">gbxutilacfr::Tracer</a>& tracer, <a name="l00234"></a>00234 <a class="code" href="classgbxutilacfr_1_1Status.html" title="Local interface to component status.">gbxutilacfr::Status</a>& status ); <a name="l00235"></a>00235 <a name="l00236"></a>00236 ~<a class="code" href="classgbxgarminacfr_1_1Driver.html">Driver</a>(); <a name="l00237"></a>00237 <a name="l00254"></a>00254 std::auto_ptr<GenericData> <a class="code" href="classgbxgarminacfr_1_1Driver.html#afcd8394bb3a6fdfd11010afb553da635">read</a>(); <a name="l00255"></a>00255 <a name="l00256"></a>00256 <span class="keyword">private</span>: <a name="l00257"></a>00257 <a name="l00258"></a>00258 <span class="keywordtype">void</span> init(); <a name="l00259"></a>00259 <span class="keywordtype">void</span> enableDevice(); <a name="l00260"></a>00260 <span class="keywordtype">void</span> disableDevice(); <a name="l00261"></a>00261 <a name="l00262"></a>00262 std::auto_ptr<gbxserialacfr::Serial> serial_; <a name="l00263"></a>00263 <a name="l00264"></a>00264 <a class="code" href="classgbxgarminacfr_1_1Config.html" title="Configuration structure.">Config</a> config_; <a name="l00265"></a>00265 <a class="code" href="classgbxutilacfr_1_1Tracer.html" title="Local and remote tracing.">gbxutilacfr::Tracer</a>& tracer_; <a name="l00266"></a>00266 <a class="code" href="classgbxutilacfr_1_1Status.html" title="Local interface to component status.">gbxutilacfr::Status</a>& status_; <a name="l00267"></a>00267 }; <a name="l00268"></a>00268 <a name="l00269"></a>00269 } <span class="comment">// namespace</span> <a name="l00270"></a>00270 <a name="l00271"></a>00271 <span class="preprocessor">#endif</span> </pre></div></div> </td> <td colspan="1"> </td> </tr> </table> <!-- end of table --> <hr size="1"><address style="align: right;"><small>Generated for GearBox by <a href="http://www.doxygen.org/index.html"> <img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.4.5 </small></address> </body> </html>