Sophie

Sophie

distrib > Fedora > 16 > i386 > by-pkgid > 4bc66056a634db26a1f4d0845dc41ca6 > files > 4092

mrpt-doc-0.9.5-0.1.20110925svn2670.fc16.i686.rpm

<!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>mrpt::hwdrivers::CHokuyoURG Class Reference</title>
<link href="doxygen.css" rel="stylesheet" type="text/css">
<link href="tabs.css" rel="stylesheet" type="text/css">
</head><body>
<div align="left"><a href="http://www.mrpt.org/">Main MRPT website</a> &gt; <b>C++ reference</b> </div>
<div align="right">
<a href="index.html"><img border="0" src="mrpt_logo.png" alt="MRPT logo"></a>
</div>
<!-- Generated by Doxygen 1.7.5 -->
<script type="text/javascript">
var searchBox = new SearchBox("searchBox", "search",false,'Search');
</script>
  <div id="navrow1" class="tabs">
    <ul class="tablist">
      <li><a href="index.html"><span>Main&#160;Page</span></a></li>
      <li><a href="pages.html"><span>Related&#160;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 class="current"><a href="annotated.html"><span>Classes</span></a></li>
      <li><a href="files.html"><span>Files</span></a></li>
      <li>
        <div id="MSearchBox" class="MSearchBoxInactive">
          <div class="left">
            <form id="FSearchBox" action="search.php" method="get">
              <img id="MSearchSelect" src="search/mag.png" alt=""/>
              <input type="text" id="MSearchField" name="query" value="Search" size="20" accesskey="S" 
                     onfocus="searchBox.OnSearchFieldFocus(true)" 
                     onblur="searchBox.OnSearchFieldFocus(false)"/>
            </form>
          </div><div class="right"></div>
        </div>
      </li>
    </ul>
  </div>
  <div id="navrow2" class="tabs2">
    <ul class="tablist">
      <li><a href="annotated.html"><span>Class&#160;List</span></a></li>
      <li><a href="classes.html"><span>Class&#160;Index</span></a></li>
      <li><a href="inherits.html"><span>Class&#160;Hierarchy</span></a></li>
      <li><a href="functions.html"><span>Class&#160;Members</span></a></li>
    </ul>
  </div>
  <div id="nav-path" class="navpath">
    <ul>
      <li class="navelem"><a class="el" href="namespacemrpt.html">mrpt</a>      </li>
      <li class="navelem"><a class="el" href="namespacemrpt_1_1hwdrivers.html">hwdrivers</a>      </li>
      <li class="navelem"><a class="el" href="classmrpt_1_1hwdrivers_1_1_c_hokuyo_u_r_g.html">CHokuyoURG</a>      </li>
    </ul>
  </div>
</div>
<div class="header">
  <div class="summary">
<a href="#nested-classes">Classes</a> &#124;
<a href="#pub-types">Public Types</a> &#124;
<a href="#pub-methods">Public Member Functions</a> &#124;
<a href="#pub-static-methods">Static Public Member Functions</a> &#124;
<a href="#pro-methods">Protected Member Functions</a> &#124;
<a href="#pro-attribs">Protected Attributes</a> &#124;
<a href="#pri-methods">Private Member Functions</a> &#124;
<a href="#pri-attribs">Private Attributes</a>  </div>
  <div class="headertitle">
<div class="title">mrpt::hwdrivers::CHokuyoURG Class Reference<div class="ingroups"><a class="el" href="group__mrpt__hwdrivers__grp.html">[mrpt-hwdrivers]</a></div></div>  </div>
</div>
<div class="contents">
<!-- doxytag: class="mrpt::hwdrivers::CHokuyoURG" --><!-- doxytag: inherits="mrpt::hwdrivers::C2DRangeFinderAbstract" --><hr/><a name="details" id="details"></a><h2>Detailed Description</h2>
<div class="textblock"><p>This software driver implements the protocol SCIP-2.0 for interfacing HOKUYO URG, UTM and UXM laser scanners. </p>
<p>Refer to the wiki page for more details: <a href="http://www.mrpt.org/Example:HOKUYO_URG/UTM_Laser_Scanner">http://www.mrpt.org/Example:HOKUYO_URG/UTM_Laser_Scanner</a></p>
<p>See also the application "rawlog-grabber" for a ready-to-use application to gather data from the scanner.</p>
<div class="fragment"><pre class="fragment">  PARAMETERS IN THE <span class="stringliteral">&quot;.INI&quot;</span>-LIKE CONFIGURATION STRINGS:
 -------------------------------------------------------
   [supplied_section_name]
    HOKUYO_motorSpeed_rpm=600
    <span class="comment">//HOKUYO_HS_mode   = false    // Optional (un-comment line if used): Set/unset the High-sensitivity mode (not on all models/firmwares!)</span>
    COM_port_WIN = COM3
    COM_port_LIN = ttyS0
    pose_x=0.21 <span class="comment">// Laser range scaner 3D position in the robot (meters)</span>
    pose_y=0
    pose_z=0.34
    pose_yaw=0  <span class="comment">// Angles in degrees</span>
    pose_pitch=0
    pose_roll=0
    <span class="comment">//IP_DIR    =       192.168.0.10 // Uncommented this and &quot;PORT_DIR&quot; if the used HOKUYO is connected by Ethernet instead of USB</span>
    <span class="comment">//PORT_DIR = 10940</span>

    <span class="comment">// Optional: reduced FOV:</span>
    <span class="comment">// reduced_fov  = 25 // Deg</span>

    <span class="comment">// Optional: Exclusion zones to avoid the robot seeing itself:</span>
    <span class="comment">//exclusionZone1_x = 0.20 0.30 0.30 0.20</span>
    <span class="comment">//exclusionZone1_y = 0.20 0.30 0.30 0.20</span>

    <span class="comment">// Optional: Exclusion zones to avoid the robot seeing itself:</span>
    <span class="comment">//exclusionAngles1_ini = 20  // Deg</span>
    <span class="comment">//exclusionAngles1_end = 25  // Deg</span>
</pre></div> </div>
<p><code>#include &lt;<a class="el" href="_c_hokuyo_u_r_g_8h_source.html">mrpt/hwdrivers/CHokuyoURG.h</a>&gt;</code></p>
<div class="dynheader">
Inheritance diagram for mrpt::hwdrivers::CHokuyoURG:</div>
<div class="dyncontent">
<div class="center"><img src="classmrpt_1_1hwdrivers_1_1_c_hokuyo_u_r_g__inherit__graph.png" border="0" usemap="#mrpt_1_1hwdrivers_1_1_c_hokuyo_u_r_g_inherit__map" alt="Inheritance graph"/></div>
<map name="mrpt_1_1hwdrivers_1_1_c_hokuyo_u_r_g_inherit__map" id="mrpt_1_1hwdrivers_1_1_c_hokuyo_u_r_g_inherit__map">
<area shape="rect" id="node2" href="classmrpt_1_1hwdrivers_1_1_c2_d_range_finder_abstract.html" title="This is the base, abstract class for &quot;software drivers&quot; interfaces to 2D scanners (laser range finder..." alt="" coords="102,155,372,181"/><area shape="rect" id="node4" href="classmrpt_1_1utils_1_1_c_debug_output_capable.html" title="This base class provides a common printf&#45;like method to send debug information to std::cout..." alt="" coords="5,80,227,107"/><area shape="rect" id="node6" href="classmrpt_1_1hwdrivers_1_1_c_generic_sensor.html" title="A generic interface for a wide&#45;variety of sensors designed to be used in the application RawLogGrabbe..." alt="" coords="252,80,468,107"/><area shape="rect" id="node8" href="classmrpt_1_1utils_1_1_c_uncopiable.html" title="The base class of classes that cannot be copied: compile&#45;time errors will be issued on any copy opera..." alt="" coords="279,5,441,32"/></map>
<center><span class="legend">[<a href="graph_legend.html">legend</a>]</span></center></div>

<p><a href="classmrpt_1_1hwdrivers_1_1_c_hokuyo_u_r_g-members.html">List of all members.</a></p>
<table class="memberdecls">
<tr><td colspan="2"><h2><a name="nested-classes"></a>
Classes</h2></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structmrpt_1_1hwdrivers_1_1_c_hokuyo_u_r_g_1_1_t_sensor_info.html">TSensorInfo</a></td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Used in <a class="el" href="classmrpt_1_1hwdrivers_1_1_c_hokuyo_u_r_g.html#a2c49d999129c0356dd7130e09624ff20" title="Ask to the device, and print to the debug stream, details about the firmware version,serial number,...">CHokuyoURG::displayVersionInfo</a>.  <a href="structmrpt_1_1hwdrivers_1_1_c_hokuyo_u_r_g_1_1_t_sensor_info.html#details">More...</a><br/></td></tr>
<tr><td colspan="2"><h2><a name="pub-types"></a>
Public Types</h2></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1hwdrivers_1_1_c_generic_sensor.html#a44262a8f1ffcc87871fbd717d3fc2cab">TSensorState</a> { <a class="el" href="classmrpt_1_1hwdrivers_1_1_c_generic_sensor.html#a44262a8f1ffcc87871fbd717d3fc2caba0e2689514dd41d48164e021013549a44">ssInitializing</a> =  0, 
<a class="el" href="classmrpt_1_1hwdrivers_1_1_c_generic_sensor.html#a44262a8f1ffcc87871fbd717d3fc2cabaacc62e94572e3cd3b4b08caad173a489">ssWorking</a>, 
<a class="el" href="classmrpt_1_1hwdrivers_1_1_c_generic_sensor.html#a44262a8f1ffcc87871fbd717d3fc2caba8f76c8318736df85b6805ca460f8d262">ssError</a>
 }</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">The current state of the sensor.  <a href="classmrpt_1_1hwdrivers_1_1_c_generic_sensor.html#a44262a8f1ffcc87871fbd717d3fc2cab">More...</a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">typedef <a class="el" href="classstd_1_1multimap.html">std::multimap</a><br class="typebreak"/>
&lt; <a class="el" href="group__time__date.html#ga42674286d8d56afea013b6329bb7327a">mrpt::system::TTimeStamp</a>, <br class="typebreak"/>
<a class="el" href="structmrpt_1_1utils_1_1_c_serializable_ptr.html">mrpt::utils::CSerializablePtr</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1hwdrivers_1_1_c_generic_sensor.html#af237beee1de7f3e5733e305921695b30">TListObservations</a></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">typedef std::pair<br class="typebreak"/>
&lt; <a class="el" href="group__time__date.html#ga42674286d8d56afea013b6329bb7327a">mrpt::system::TTimeStamp</a>, <br class="typebreak"/>
<a class="el" href="structmrpt_1_1utils_1_1_c_serializable_ptr.html">mrpt::utils::CSerializablePtr</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1hwdrivers_1_1_c_generic_sensor.html#a78712e0c40c510978fb8589774056ab3">TListObsPair</a></td></tr>
<tr><td colspan="2"><h2><a name="pub-methods"></a>
Public Member Functions</h2></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1hwdrivers_1_1_c_hokuyo_u_r_g.html#ab0bc6f799cb2c4781822ad64d6670cca">CHokuyoURG</a> ()</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Constructor.  <a href="#ab0bc6f799cb2c4781822ad64d6670cca"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">virtual&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1hwdrivers_1_1_c_hokuyo_u_r_g.html#a7f37c57c0371656d80879a5785305956">~CHokuyoURG</a> ()</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Destructor: turns the laser off.  <a href="#a7f37c57c0371656d80879a5785305956"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1hwdrivers_1_1_c_hokuyo_u_r_g.html#a34779972f4dddb8ee2524d0778fd934d">doProcessSimple</a> (bool &amp;outThereIsObservation, <a class="el" href="classmrpt_1_1slam_1_1_c_observation2_d_range_scan.html">mrpt::slam::CObservation2DRangeScan</a> &amp;outObservation, bool &amp;hardwareError)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Specific laser scanner "software drivers" must process here new data from the I/O stream, and, if a whole scan has arrived, return it.  <a href="#a34779972f4dddb8ee2524d0778fd934d"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1hwdrivers_1_1_c_hokuyo_u_r_g.html#aca92934a8fb01a12b3419175a0cc9d34">turnOn</a> ()</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Enables the scanning mode (which may depend on the specific laser device); this must be called before asking for observations to assure that the protocol has been initializated.  <a href="#aca92934a8fb01a12b3419175a0cc9d34"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1hwdrivers_1_1_c_hokuyo_u_r_g.html#adabd7857b1509d81991d47445943f33b">turnOff</a> ()</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Disables the scanning mode (this can be used to turn the device in low energy mode, if available)  <a href="#adabd7857b1509d81991d47445943f33b"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1hwdrivers_1_1_c_hokuyo_u_r_g.html#a0dc63135d809c41f2a374fb35ff1614e">purgeBuffers</a> ()</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Empties the RX buffers of the serial port.  <a href="#a0dc63135d809c41f2a374fb35ff1614e"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1hwdrivers_1_1_c_hokuyo_u_r_g.html#a649938742b4b547472a8198daa5e3ad6">setSerialPort</a> (const <a class="el" href="classstd_1_1string.html">std::string</a> &amp;port_name)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">If set to non-empty, the serial port will be attempted to be opened automatically when this class is first used to request data from the laser.  <a href="#a649938742b4b547472a8198daa5e3ad6"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1hwdrivers_1_1_c_hokuyo_u_r_g.html#a493faccb1583d35dd08bd930835eb8e5">setIPandPort</a> (const <a class="el" href="classstd_1_1string.html">std::string</a> &amp;ip, const unsigned int &amp;port)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Set the ip direction and port to connect using Ethernet communication.  <a href="#a493faccb1583d35dd08bd930835eb8e5"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">const <a class="el" href="classstd_1_1string.html">std::string</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1hwdrivers_1_1_c_hokuyo_u_r_g.html#a610d92b0d221bd2f58d80f0182bde4d6">getSerialPort</a> ()</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the currently set serial port.  <a href="#a610d92b0d221bd2f58d80f0182bde4d6"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1hwdrivers_1_1_c_hokuyo_u_r_g.html#a989289ffb6072e3f3493ab9fb5720b6e">setReducedFOV</a> (const double fov)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">If called (before calling "turnOn"), the field of view of the laser is reduced to the given range (in radians), discarding the rest of measures.  <a href="#a989289ffb6072e3f3493ab9fb5720b6e"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1hwdrivers_1_1_c_hokuyo_u_r_g.html#a3a5440a364d483cde1a53e76310ce321">setHighSensitivityMode</a> (bool enabled)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Changes the high sensitivity mode (HS) (default: false)  <a href="#a3a5440a364d483cde1a53e76310ce321"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1hwdrivers_1_1_c_hokuyo_u_r_g.html#ac9b357d18e13a33eb472222c4b72c843">setVerbose</a> (bool enable=true)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1hwdrivers_1_1_c2_d_range_finder_abstract.html#a9b619b52c015385fc16bfd213d39fd1c">bindIO</a> (<a class="el" href="classmrpt_1_1utils_1_1_c_stream.html">CStream</a> *streamIO)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Binds the object to a given I/O channel.  <a href="#a9b619b52c015385fc16bfd213d39fd1c"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1hwdrivers_1_1_c2_d_range_finder_abstract.html#ac235087adef28853027ec1c8f4dc912d">getObservation</a> (bool &amp;outThereIsObservation, <a class="el" href="classmrpt_1_1slam_1_1_c_observation2_d_range_scan.html">CObservation2DRangeScan</a> &amp;outObservation, bool &amp;hardwareError)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Get the last observation from the sensor, if available, and unmarks it as being "the last one" (thus a new scan must arrive or subsequent calls will find no new observations).  <a href="#ac235087adef28853027ec1c8f4dc912d"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1hwdrivers_1_1_c2_d_range_finder_abstract.html#a9ab22161d6d802bcd5c8b609fb8a6b54">doProcess</a> ()</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Main method for a <a class="el" href="classmrpt_1_1hwdrivers_1_1_c_generic_sensor.html" title="A generic interface for a wide-variety of sensors designed to be used in the application RawLogGrabbe...">CGenericSensor</a>.  <a href="#a9ab22161d6d802bcd5c8b609fb8a6b54"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">virtual const <br class="typebreak"/>
<a class="el" href="structmrpt_1_1hwdrivers_1_1_t_sensor_class_id.html">mrpt::hwdrivers::TSensorClassId</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1hwdrivers_1_1_c_generic_sensor.html#afbc26c93b989d1a0cc94c0c88d47cdba">GetRuntimeClass</a> () const =0</td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="classmrpt_1_1hwdrivers_1_1_c_generic_sensor.html#a44262a8f1ffcc87871fbd717d3fc2cab">TSensorState</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1hwdrivers_1_1_c_generic_sensor.html#a0bd667caedc6a313d96c232bf75ba577">getState</a> () const </td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">The current state of the sensor.  <a href="#a0bd667caedc6a313d96c232bf75ba577"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">double&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1hwdrivers_1_1_c_generic_sensor.html#a8a05c268aef7ecada94a0014a2b294f7">getProcessRate</a> () const </td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="classstd_1_1string.html">std::string</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1hwdrivers_1_1_c_generic_sensor.html#af3cd061ca684e7ddf5949ed78fced7c9">getSensorLabel</a> () const </td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1hwdrivers_1_1_c_generic_sensor.html#a044c1340c4b90957250f63fa89189036">setSensorLabel</a> (const <a class="el" href="classstd_1_1string.html">std::string</a> &amp;sensorLabel)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1hwdrivers_1_1_c_generic_sensor.html#a6f34c5b79a128d1cb6b47eaa987ecb51">loadConfig</a> (const <a class="el" href="classmrpt_1_1utils_1_1_c_config_file_base.html">mrpt::utils::CConfigFileBase</a> &amp;configSource, const <a class="el" href="classstd_1_1string.html">std::string</a> &amp;section)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Loads the generic settings common to any sensor (See <a class="el" href="classmrpt_1_1hwdrivers_1_1_c_generic_sensor.html" title="A generic interface for a wide-variety of sensors designed to be used in the application RawLogGrabbe...">CGenericSensor</a>), then call to "loadConfig_sensorSpecific" </p>
<dl><dt><b>Exceptions:</b></dt><dd>
  <table class="exception">
    <tr><td class="paramname">This</td><td>method throws an exception with a descriptive message if some critical parameter is missing or has an invalid value. </td></tr>
  </table>
  </dd>
</dl>
 <a href="#a6f34c5b79a128d1cb6b47eaa987ecb51"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1hwdrivers_1_1_c_generic_sensor.html#a34b2a73792cbe176b28c932646bba0ed">getObservations</a> (<a class="el" href="classmrpt_1_1hwdrivers_1_1_c_generic_sensor.html#af237beee1de7f3e5733e305921695b30">TListObservations</a> &amp;lstObjects)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns a list of enqueued objects, emptying it (thread-safe).  <a href="#a34b2a73792cbe176b28c932646bba0ed"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1hwdrivers_1_1_c_generic_sensor.html#afa55ff06dbf360c8f631d371d6ebe35d">setPathForExternalImages</a> (const <a class="el" href="classstd_1_1string.html">std::string</a> &amp;directory)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Set the path where to save off-rawlog image files (will be ignored in those sensors where this is not applicable).  <a href="#afa55ff06dbf360c8f631d371d6ebe35d"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1hwdrivers_1_1_c_generic_sensor.html#aff4b208b901763557196b9326901c582">setExternalImageFormat</a> (const <a class="el" href="classstd_1_1string.html">std::string</a> &amp;ext)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Set the extension ("jpg","gif","png",...) that determines the format of images saved externally The default is "jpg".  <a href="#aff4b208b901763557196b9326901c582"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1hwdrivers_1_1_c_generic_sensor.html#aca05f7ee991ee112b5e9f8f289a9ee94">setExternalImageJPEGQuality</a> (const unsigned int quality)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">The quality of JPEG compression, when external images is enabled and the format is "jpg".  <a href="#aca05f7ee991ee112b5e9f8f289a9ee94"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">unsigned int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1hwdrivers_1_1_c_generic_sensor.html#a9d5aecec9f302feede271c9f1425a323">getExternalImageJPEGQuality</a> () const </td></tr>
<tr><td colspan="2"><h2><a name="pub-static-methods"></a>
Static Public Member Functions</h2></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">static void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1utils_1_1_c_debug_output_capable.html#ab78281b5d70d6e295a8527a10fea66de">printf_debug</a> (const char *frmt,...)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Sends a formated text to "debugOut" if not NULL, or to cout otherwise.  <a href="#ab78281b5d70d6e295a8527a10fea66de"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">static void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1hwdrivers_1_1_c_generic_sensor.html#a640e1b953865c3d2e881bbd2c1a81428">registerClass</a> (const <a class="el" href="structmrpt_1_1hwdrivers_1_1_t_sensor_class_id.html">TSensorClassId</a> *pNewClass)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Register a class into the internal list of "CGenericSensor" descendents.  <a href="#a640e1b953865c3d2e881bbd2c1a81428"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">static <a class="el" href="classmrpt_1_1hwdrivers_1_1_c_generic_sensor.html">CGenericSensor</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1hwdrivers_1_1_c_generic_sensor.html#ab652d017225fff3050a607f4461b0484">createSensor</a> (const <a class="el" href="classstd_1_1string.html">std::string</a> &amp;className)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Creates a sensor by a name of the class.  <a href="#ab652d017225fff3050a607f4461b0484"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">static <a class="el" href="namespacemrpt_1_1hwdrivers.html#a71aef48ea8dd23e43c706cc1a3ae0e74">CGenericSensorPtr</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1hwdrivers_1_1_c_generic_sensor.html#aff4e4450e420bf60a2487ab0cff91907">createSensorPtr</a> (const <a class="el" href="classstd_1_1string.html">std::string</a> &amp;className)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Just like createSensor, but returning a smart pointer to the newly created sensor object.  <a href="#aff4e4450e420bf60a2487ab0cff91907"></a><br/></td></tr>
<tr><td colspan="2"><h2><a name="pro-methods"></a>
Protected Member Functions</h2></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1hwdrivers_1_1_c_hokuyo_u_r_g.html#aa02c328a0d0ffc6cf49b3d208e09fc57">checkCOMisOpen</a> ()</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns true if there is a valid stream bound to the laser scanner, otherwise it first try to open the serial port "m_com_port".  <a href="#aa02c328a0d0ffc6cf49b3d208e09fc57"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1hwdrivers_1_1_c_hokuyo_u_r_g.html#ac72eb2cedacdcadf0a6405d0d1003f04">loadConfig_sensorSpecific</a> (const <a class="el" href="classmrpt_1_1utils_1_1_c_config_file_base.html">mrpt::utils::CConfigFileBase</a> &amp;configSource, const <a class="el" href="classstd_1_1string.html">std::string</a> &amp;iniSection)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Loads specific configuration for the device from a given source of configuration parameters, for example, an ".ini" file, loading from the section "[iniSection]" (see <a class="el" href="classmrpt_1_1utils_1_1_c_config_file_base.html" title="This class allows loading and storing values and vectors of different types from a configuration text...">utils::CConfigFileBase</a> and derived classes) See <a class="el" href="classmrpt_1_1hwdrivers_1_1_c_hokuyo_u_r_g.html" title="This software driver implements the protocol SCIP-2.0 for interfacing HOKUYO URG, UTM and UXM laser s...">hwdrivers::CHokuyoURG</a> for the possible parameters.  <a href="#ac72eb2cedacdcadf0a6405d0d1003f04"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1hwdrivers_1_1_c2_d_range_finder_abstract.html#ae90d3b0b79158e678ede1537e0a9e900">loadExclusionAreas</a> (const <a class="el" href="classmrpt_1_1utils_1_1_c_config_file_base.html">mrpt::utils::CConfigFileBase</a> &amp;configSource, const <a class="el" href="classstd_1_1string.html">std::string</a> &amp;iniSection)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Should be call by derived classes at "loadConfig" (loads exclusion areas AND exclusion angles).  <a href="#ae90d3b0b79158e678ede1537e0a9e900"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1hwdrivers_1_1_c2_d_range_finder_abstract.html#a35e79cc5b9805cf868b3fdc909ec78eb">filterByExclusionAreas</a> (<a class="el" href="classmrpt_1_1slam_1_1_c_observation2_d_range_scan.html">CObservation2DRangeScan</a> &amp;obs) const </td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Mark as invalid those points which (x,y) coordinates fall within the exclusion polygons.  <a href="#a35e79cc5b9805cf868b3fdc909ec78eb"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1hwdrivers_1_1_c2_d_range_finder_abstract.html#a6a5778b1c951524c68f83d3735e60b6f">filterByExclusionAngles</a> (<a class="el" href="classmrpt_1_1slam_1_1_c_observation2_d_range_scan.html">CObservation2DRangeScan</a> &amp;obs) const </td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Mark as invalid those ranges in a set of forbiden angle ranges.  <a href="#a6a5778b1c951524c68f83d3735e60b6f"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1hwdrivers_1_1_c_generic_sensor.html#ad3a33098f257c379ee6bd1bca24e45f9">appendObservations</a> (const <a class="el" href="classstd_1_1vector.html">std::vector</a>&lt; <a class="el" href="structmrpt_1_1utils_1_1_c_serializable_ptr.html">mrpt::utils::CSerializablePtr</a> &gt; &amp;obj)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">This method must be called by derived classes to enqueue a new observation in the list to be returned by getObservations.  <a href="#ad3a33098f257c379ee6bd1bca24e45f9"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1hwdrivers_1_1_c_generic_sensor.html#a03bf6784838d6418f4fe485933a1ab0c">appendObservation</a> (const <a class="el" href="structmrpt_1_1utils_1_1_c_serializable_ptr.html">mrpt::utils::CSerializablePtr</a> &amp;obj)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Like <a class="el" href="classmrpt_1_1hwdrivers_1_1_c_generic_sensor.html#ad3a33098f257c379ee6bd1bca24e45f9" title="This method must be called by derived classes to enqueue a new observation in the list to be returned...">appendObservations()</a> but for just one observation.  <a href="#a03bf6784838d6418f4fe485933a1ab0c"></a><br/></td></tr>
<tr><td colspan="2"><h2><a name="pro-attribs"></a>
Protected Attributes</h2></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">double&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1hwdrivers_1_1_c_hokuyo_u_r_g.html#a84157502f5a8573e5a729ff6bb47894d">m_reduced_fov</a></td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Used to reduce artificially the interval of scan ranges.  <a href="#a84157502f5a8573e5a729ff6bb47894d"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="classstd_1_1string.html">std::string</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1hwdrivers_1_1_c_hokuyo_u_r_g.html#a5b714bf193b24aa61d51c81210173223">m_com_port</a></td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">If set to non-empty, the serial port will be attempted to be opened automatically when this class is first used to request data from the laser.  <a href="#a5b714bf193b24aa61d51c81210173223"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="classstd_1_1string.html">std::string</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1hwdrivers_1_1_c_hokuyo_u_r_g.html#adaae01b49f030a3e545abd0923e229d7">m_ip_dir</a></td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">If set to non-empty and m_port_dir too, the program will try to connect to a Hokuyo using Ethernet communication.  <a href="#adaae01b49f030a3e545abd0923e229d7"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">unsigned int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1hwdrivers_1_1_c_hokuyo_u_r_g.html#a3003d7d83ccf8ab3cf8661d28c455895">m_port_dir</a></td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">If set to non-empty and m_ip_dir too, the program will try to connect to a Hokuyo using Ethernet communication.  <a href="#a3003d7d83ccf8ab3cf8661d28c455895"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="structmrpt_1_1hwdrivers_1_1_c_hokuyo_u_r_g_1_1_t_sensor_info.html">TSensorInfo</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1hwdrivers_1_1_c_hokuyo_u_r_g.html#a008022bd5d84b46985bb83af7d9a4c24">m_sensor_info</a></td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">The information gathered when the laser is first open.  <a href="#a008022bd5d84b46985bb83af7d9a4c24"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1hwdrivers_1_1_c_hokuyo_u_r_g.html#aea0bf2150874a54b4d3ca6d0587163bf">m_I_am_owner_serial_port</a></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">uint32_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1hwdrivers_1_1_c_hokuyo_u_r_g.html#a2a25597fdbdca0945086a3a5ad8c0ed9">m_timeStartUI</a></td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Time of the first data packet, for synchronization purposes.  <a href="#a2a25597fdbdca0945086a3a5ad8c0ed9"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="group__time__date.html#ga42674286d8d56afea013b6329bb7327a">mrpt::system::TTimeStamp</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1hwdrivers_1_1_c_hokuyo_u_r_g.html#a022ea533d54b0220d09e0e23c3c770e6">m_timeStartTT</a></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="classmrpt_1_1utils_1_1_c_stream.html">utils::CStream</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1hwdrivers_1_1_c2_d_range_finder_abstract.html#acc3dd38ff320d03d0a2bce7e44e8a2d9">m_stream</a></td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">The I/O channel (will be NULL if not bound).  <a href="#acc3dd38ff320d03d0a2bce7e44e8a2d9"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">size_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1hwdrivers_1_1_c_generic_sensor.html#a564a6c2bc7f1baaea9a9d90112a7b376">m_grab_decimation_counter</a></td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Used when "m_grab_decimation" is enabled.  <a href="#a564a6c2bc7f1baaea9a9d90112a7b376"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="classmrpt_1_1hwdrivers_1_1_c_generic_sensor.html#a44262a8f1ffcc87871fbd717d3fc2cab">TSensorState</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1hwdrivers_1_1_c_generic_sensor.html#ab3e8a003783acd03bfd64716640fd67c">m_state</a></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="classstd_1_1string.html">std::string</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1hwdrivers_1_1_c_generic_sensor.html#a06fe84426b813b9c1966c12bb69e6ee6">m_path_for_external_images</a></td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">The path where to save off-rawlog images: empty means save images embedded in the rawlog.  <a href="#a06fe84426b813b9c1966c12bb69e6ee6"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="classstd_1_1string.html">std::string</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1hwdrivers_1_1_c_generic_sensor.html#a7d153c5247b0180b6b9df5054d67b183">m_external_images_format</a></td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">The extension ("jpg","gif","png",...) that determines the format of images saved externally.  <a href="#a7d153c5247b0180b6b9df5054d67b183"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">unsigned int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1hwdrivers_1_1_c_generic_sensor.html#aeac331931fce4890793cd7f1b5f6eb3e">m_external_images_jpeg_quality</a></td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">For JPEG images, the quality (default=95%).  <a href="#aeac331931fce4890793cd7f1b5f6eb3e"></a><br/></td></tr>
<tr><td colspan="2"><div class="groupHeader">Common settings to any sensor, loaded in "loadConfig"</div></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">double&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1hwdrivers_1_1_c_generic_sensor.html#a77094b791971e8f42b94de34f4adb0f7">m_process_rate</a></td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">See <a class="el" href="classmrpt_1_1hwdrivers_1_1_c_generic_sensor.html" title="A generic interface for a wide-variety of sensors designed to be used in the application RawLogGrabbe...">CGenericSensor</a>.  <a href="#a77094b791971e8f42b94de34f4adb0f7"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">size_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1hwdrivers_1_1_c_generic_sensor.html#a6f35448579bd4d27cd4f4685b31a8cc0">m_max_queue_len</a></td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">See <a class="el" href="classmrpt_1_1hwdrivers_1_1_c_generic_sensor.html" title="A generic interface for a wide-variety of sensors designed to be used in the application RawLogGrabbe...">CGenericSensor</a>.  <a href="#a6f35448579bd4d27cd4f4685b31a8cc0"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">size_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1hwdrivers_1_1_c_generic_sensor.html#a587daaab2cb302eb4cc72eb1396d5f21">m_grab_decimation</a></td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">If set to N&gt;=2, only 1 out of N observations will be saved to m_objList.  <a href="#a587daaab2cb302eb4cc72eb1396d5f21"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="classstd_1_1string.html">std::string</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1hwdrivers_1_1_c_generic_sensor.html#accd4de8daeb5966c191fbc62a5d90355">m_sensorLabel</a></td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">See <a class="el" href="classmrpt_1_1hwdrivers_1_1_c_generic_sensor.html" title="A generic interface for a wide-variety of sensors designed to be used in the application RawLogGrabbe...">CGenericSensor</a>.  <a href="#accd4de8daeb5966c191fbc62a5d90355"></a><br/></td></tr>
<tr><td colspan="2"><h2><a name="pri-methods"></a>
Private Member Functions</h2></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1hwdrivers_1_1_c_hokuyo_u_r_g.html#aad95606c4032e534b88d140c544b8f25">enableSCIP20</a> ()</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Enables the SCIP2.0 protocol (this must be called at the very begining!).  <a href="#aad95606c4032e534b88d140c544b8f25"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1hwdrivers_1_1_c_hokuyo_u_r_g.html#a534585372e07284900b13f2e303bc024">setHighBaudrate</a> ()</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Passes to 115200bps bitrate.  <a href="#a534585372e07284900b13f2e303bc024"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1hwdrivers_1_1_c_hokuyo_u_r_g.html#af58cf18299f447448ff2130fd566e3eb">switchLaserOn</a> ()</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Switchs the laser on.  <a href="#af58cf18299f447448ff2130fd566e3eb"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1hwdrivers_1_1_c_hokuyo_u_r_g.html#abea22b2813cb62bdba1dbb5902c139a9">switchLaserOff</a> ()</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Switchs the laser off.  <a href="#abea22b2813cb62bdba1dbb5902c139a9"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1hwdrivers_1_1_c_hokuyo_u_r_g.html#a44c74275800789266e65c34258e6ffe4">setMotorSpeed</a> (int motoSpeed_rpm)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Changes the motor speed in rpm's (default 600rpm)  <a href="#a44c74275800789266e65c34258e6ffe4"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1hwdrivers_1_1_c_hokuyo_u_r_g.html#a2c49d999129c0356dd7130e09624ff20">displayVersionInfo</a> ()</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Ask to the device, and print to the debug stream, details about the firmware version,serial number,...  <a href="#a2c49d999129c0356dd7130e09624ff20"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1hwdrivers_1_1_c_hokuyo_u_r_g.html#a444d44dc5f03edd65860d96d7b87f1d6">displaySensorInfo</a> (<a class="el" href="structmrpt_1_1hwdrivers_1_1_c_hokuyo_u_r_g_1_1_t_sensor_info.html">CHokuyoURG::TSensorInfo</a> *out_data=NULL)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Ask to the device, and print to the debug stream, details about the sensor model.  <a href="#a444d44dc5f03edd65860d96d7b87f1d6"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1hwdrivers_1_1_c_hokuyo_u_r_g.html#ad8edc0bf4eb2ec66e2b5acfc536c19bb">startScanningMode</a> ()</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Start the scanning mode, using parameters stored in the object (loaded from the .ini file) After this command the device will start to send scans until "switchLaserOff" is called.  <a href="#ad8edc0bf4eb2ec66e2b5acfc536c19bb"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1hwdrivers_1_1_c_hokuyo_u_r_g.html#aa59ba12bc09efa95df4e84b8b0982bca">initialize</a> ()</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Turns the laser on.  <a href="#aa59ba12bc09efa95df4e84b8b0982bca"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1hwdrivers_1_1_c_hokuyo_u_r_g.html#a03f3acbef537e9efa5793809adba2034">receiveResponse</a> (const char *sentCmd_forEchoVerification, char &amp;rcv_status0, char &amp;rcv_status1, char *rcv_data, int &amp;rcv_dataLength)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Waits for a response from the device.  <a href="#a03f3acbef537e9efa5793809adba2034"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1hwdrivers_1_1_c_hokuyo_u_r_g.html#a641da72d8e1342742e7cbbd00a7c2c73">assureBufferHasBytes</a> (const size_t nDesiredBytes)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Assures a minimum number of bytes in the input buffer, reading from the serial port only if required.  <a href="#a641da72d8e1342742e7cbbd00a7c2c73"></a><br/></td></tr>
<tr><td colspan="2"><h2><a name="pri-attribs"></a>
Private Attributes</h2></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1hwdrivers_1_1_c_hokuyo_u_r_g.html#aa98622fc3f9f7f273777736761f96d8d">m_firstRange</a></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1hwdrivers_1_1_c_hokuyo_u_r_g.html#afd21b67347b033fb077b9d4eb920291b">m_lastRange</a></td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">The first and last ranges to consider from the scan.  <a href="#afd21b67347b033fb077b9d4eb920291b"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1hwdrivers_1_1_c_hokuyo_u_r_g.html#af778f907212ac6427fe4ea9ce99fb881">m_motorSpeed_rpm</a></td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">The motor speed (default=600rpm)  <a href="#af778f907212ac6427fe4ea9ce99fb881"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="classmrpt_1_1poses_1_1_c_pose3_d.html">poses::CPose3D</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1hwdrivers_1_1_c_hokuyo_u_r_g.html#a8b7b2a11b7fb90beac8b704fbb2d6391">m_sensorPose</a></td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">The sensor 6D pose:  <a href="#a8b7b2a11b7fb90beac8b704fbb2d6391"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="classmrpt_1_1utils_1_1circular__buffer.html">mrpt::utils::circular_buffer</a><br class="typebreak"/>
&lt; uint8_t &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1hwdrivers_1_1_c_hokuyo_u_r_g.html#a80b98e185edc36578a7682fa8a3c10e5">m_rx_buffer</a></td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Auxiliary buffer for readings.  <a href="#a80b98e185edc36578a7682fa8a3c10e5"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="classstd_1_1string.html">std::string</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1hwdrivers_1_1_c_hokuyo_u_r_g.html#aed9b38ef8406bf96e56da57d66423d13">m_lastSentMeasCmd</a></td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">The last sent measurement command (MDXXX), including the last 0x0A.  <a href="#aed9b38ef8406bf96e56da57d66423d13"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1hwdrivers_1_1_c_hokuyo_u_r_g.html#a5f8bf1fb50422e723ad1962fc33c14ba">m_verbose</a></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1hwdrivers_1_1_c_hokuyo_u_r_g.html#a2f474244d9a69dfa1524c86ef0d1029d">m_highSensMode</a></td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">High sensitivity [HS] mode (default: false)  <a href="#a2f474244d9a69dfa1524c86ef0d1029d"></a><br/></td></tr>
</table>
<hr/><h2>Member Typedef Documentation</h2>
<a class="anchor" id="af237beee1de7f3e5733e305921695b30"></a><!-- doxytag: member="mrpt::hwdrivers::CHokuyoURG::TListObservations" ref="af237beee1de7f3e5733e305921695b30" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">typedef <a class="el" href="classstd_1_1multimap.html">std::multimap</a>&lt; <a class="el" href="group__time__date.html#ga42674286d8d56afea013b6329bb7327a">mrpt::system::TTimeStamp</a>, <a class="el" href="structmrpt_1_1utils_1_1_c_serializable_ptr.html">mrpt::utils::CSerializablePtr</a> &gt; <a class="el" href="classmrpt_1_1hwdrivers_1_1_c_generic_sensor.html#af237beee1de7f3e5733e305921695b30">mrpt::hwdrivers::CGenericSensor::TListObservations</a><code> [inherited]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Definition at line <a class="el" href="_c_generic_sensor_8h_source.html#l00084">84</a> of file <a class="el" href="_c_generic_sensor_8h_source.html">CGenericSensor.h</a>.</p>

</div>
</div>
<a class="anchor" id="a78712e0c40c510978fb8589774056ab3"></a><!-- doxytag: member="mrpt::hwdrivers::CHokuyoURG::TListObsPair" ref="a78712e0c40c510978fb8589774056ab3" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">typedef std::pair&lt; <a class="el" href="group__time__date.html#ga42674286d8d56afea013b6329bb7327a">mrpt::system::TTimeStamp</a>, <a class="el" href="structmrpt_1_1utils_1_1_c_serializable_ptr.html">mrpt::utils::CSerializablePtr</a> &gt; <a class="el" href="classmrpt_1_1hwdrivers_1_1_c_generic_sensor.html#a78712e0c40c510978fb8589774056ab3">mrpt::hwdrivers::CGenericSensor::TListObsPair</a><code> [inherited]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Definition at line <a class="el" href="_c_generic_sensor_8h_source.html#l00085">85</a> of file <a class="el" href="_c_generic_sensor_8h_source.html">CGenericSensor.h</a>.</p>

</div>
</div>
<hr/><h2>Member Enumeration Documentation</h2>
<a class="anchor" id="a44262a8f1ffcc87871fbd717d3fc2cab"></a><!-- doxytag: member="mrpt::hwdrivers::CHokuyoURG::TSensorState" ref="a44262a8f1ffcc87871fbd717d3fc2cab" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">enum <a class="el" href="classmrpt_1_1hwdrivers_1_1_c_generic_sensor.html#a44262a8f1ffcc87871fbd717d3fc2cab">mrpt::hwdrivers::CGenericSensor::TSensorState</a><code> [inherited]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>The current state of the sensor. </p>
<dl class="see"><dt><b>See also:</b></dt><dd><a class="el" href="classmrpt_1_1hwdrivers_1_1_c_generic_sensor.html#a0bd667caedc6a313d96c232bf75ba577" title="The current state of the sensor.">CGenericSensor::getState</a> </dd></dl>
<dl><dt><b>Enumerator: </b></dt><dd><table border="0" cellspacing="2" cellpadding="0">
<tr><td valign="top"><em><a class="anchor" id="a44262a8f1ffcc87871fbd717d3fc2caba0e2689514dd41d48164e021013549a44"></a><!-- doxytag: member="ssInitializing" ref="a44262a8f1ffcc87871fbd717d3fc2caba0e2689514dd41d48164e021013549a44" args="" -->ssInitializing</em>&nbsp;</td><td>
</td></tr>
<tr><td valign="top"><em><a class="anchor" id="a44262a8f1ffcc87871fbd717d3fc2cabaacc62e94572e3cd3b4b08caad173a489"></a><!-- doxytag: member="ssWorking" ref="a44262a8f1ffcc87871fbd717d3fc2cabaacc62e94572e3cd3b4b08caad173a489" args="" -->ssWorking</em>&nbsp;</td><td>
</td></tr>
<tr><td valign="top"><em><a class="anchor" id="a44262a8f1ffcc87871fbd717d3fc2caba8f76c8318736df85b6805ca460f8d262"></a><!-- doxytag: member="ssError" ref="a44262a8f1ffcc87871fbd717d3fc2caba8f76c8318736df85b6805ca460f8d262" args="" -->ssError</em>&nbsp;</td><td>
</td></tr>
</table>
</dd>
</dl>

<p>Definition at line <a class="el" href="_c_generic_sensor_8h_source.html#l00090">90</a> of file <a class="el" href="_c_generic_sensor_8h_source.html">CGenericSensor.h</a>.</p>

</div>
</div>
<hr/><h2>Constructor &amp; Destructor Documentation</h2>
<a class="anchor" id="ab0bc6f799cb2c4781822ad64d6670cca"></a><!-- doxytag: member="mrpt::hwdrivers::CHokuyoURG::CHokuyoURG" ref="ab0bc6f799cb2c4781822ad64d6670cca" args="()" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">mrpt::hwdrivers::CHokuyoURG::CHokuyoURG </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Constructor. </p>

</div>
</div>
<a class="anchor" id="a7f37c57c0371656d80879a5785305956"></a><!-- doxytag: member="mrpt::hwdrivers::CHokuyoURG::~CHokuyoURG" ref="a7f37c57c0371656d80879a5785305956" args="()" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">virtual mrpt::hwdrivers::CHokuyoURG::~CHokuyoURG </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td><code> [virtual]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Destructor: turns the laser off. </p>

</div>
</div>
<hr/><h2>Member Function Documentation</h2>
<a class="anchor" id="a03bf6784838d6418f4fe485933a1ab0c"></a><!-- doxytag: member="mrpt::hwdrivers::CHokuyoURG::appendObservation" ref="a03bf6784838d6418f4fe485933a1ab0c" args="(const mrpt::utils::CSerializablePtr &amp;obj)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void mrpt::hwdrivers::CGenericSensor::appendObservation </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="structmrpt_1_1utils_1_1_c_serializable_ptr.html">mrpt::utils::CSerializablePtr</a> &amp;&#160;</td>
          <td class="paramname"><em>obj</em></td><td>)</td>
          <td><code> [inline, protected, inherited]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Like <a class="el" href="classmrpt_1_1hwdrivers_1_1_c_generic_sensor.html#ad3a33098f257c379ee6bd1bca24e45f9" title="This method must be called by derived classes to enqueue a new observation in the list to be returned...">appendObservations()</a> but for just one observation. </p>

<p>Definition at line <a class="el" href="_c_generic_sensor_8h_source.html#l00155">155</a> of file <a class="el" href="_c_generic_sensor_8h_source.html">CGenericSensor.h</a>.</p>

</div>
</div>
<a class="anchor" id="ad3a33098f257c379ee6bd1bca24e45f9"></a><!-- doxytag: member="mrpt::hwdrivers::CHokuyoURG::appendObservations" ref="ad3a33098f257c379ee6bd1bca24e45f9" args="(const std::vector&lt; mrpt::utils::CSerializablePtr &gt; &amp;obj)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void mrpt::hwdrivers::CGenericSensor::appendObservations </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classstd_1_1vector.html">std::vector</a>&lt; <a class="el" href="structmrpt_1_1utils_1_1_c_serializable_ptr.html">mrpt::utils::CSerializablePtr</a> &gt; &amp;&#160;</td>
          <td class="paramname"><em>obj</em></td><td>)</td>
          <td><code> [protected, inherited]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>This method must be called by derived classes to enqueue a new observation in the list to be returned by getObservations. </p>
<p>Passed objects must be created in dynamic memory and a smart pointer passed. Example of creation: </p>
<div class="fragment"><pre class="fragment">                                CObservationGPSPtr  o = CObservationGPSPtr( <span class="keyword">new</span> CObservationGPS() );
                                o-&gt; .... <span class="comment">// Set data</span>
                                <a class="code" href="classmrpt_1_1hwdrivers_1_1_c_generic_sensor.html#a03bf6784838d6418f4fe485933a1ab0c" title="Like appendObservations() but for just one observation.">appendObservation</a>(o);
</pre></div><p> If several observations are passed at once in the vector, they'll be considered as a block regarding the grabbing decimation factor. </p>

</div>
</div>
<a class="anchor" id="a641da72d8e1342742e7cbbd00a7c2c73"></a><!-- doxytag: member="mrpt::hwdrivers::CHokuyoURG::assureBufferHasBytes" ref="a641da72d8e1342742e7cbbd00a7c2c73" args="(const size_t nDesiredBytes)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">bool mrpt::hwdrivers::CHokuyoURG::assureBufferHasBytes </td>
          <td>(</td>
          <td class="paramtype">const size_t&#160;</td>
          <td class="paramname"><em>nDesiredBytes</em></td><td>)</td>
          <td><code> [private]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Assures a minimum number of bytes in the input buffer, reading from the serial port only if required. </p>
<dl class="return"><dt><b>Returns:</b></dt><dd>false if the number of bytes are not available, even after trying to fetch more data from the serial port. </dd></dl>

</div>
</div>
<a class="anchor" id="a9b619b52c015385fc16bfd213d39fd1c"></a><!-- doxytag: member="mrpt::hwdrivers::CHokuyoURG::bindIO" ref="a9b619b52c015385fc16bfd213d39fd1c" args="(CStream *streamIO)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void mrpt::hwdrivers::C2DRangeFinderAbstract::bindIO </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="classmrpt_1_1utils_1_1_c_stream.html">CStream</a> *&#160;</td>
          <td class="paramname"><em>streamIO</em></td><td>)</td>
          <td><code> [inherited]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Binds the object to a given I/O channel. </p>
<p>The stream object must not be deleted before the destruction of this class. </p>
<dl class="see"><dt><b>See also:</b></dt><dd><a class="el" href="classmrpt_1_1hwdrivers_1_1_c_serial_port.html" title="A communications serial port built as an implementation of a utils::CStream.">hwdrivers::CSerialPort</a> </dd></dl>

</div>
</div>
<a class="anchor" id="aa02c328a0d0ffc6cf49b3d208e09fc57"></a><!-- doxytag: member="mrpt::hwdrivers::CHokuyoURG::checkCOMisOpen" ref="aa02c328a0d0ffc6cf49b3d208e09fc57" args="()" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">bool mrpt::hwdrivers::CHokuyoURG::checkCOMisOpen </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td><code> [protected]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Returns true if there is a valid stream bound to the laser scanner, otherwise it first try to open the serial port "m_com_port". </p>

</div>
</div>
<a class="anchor" id="ab652d017225fff3050a607f4461b0484"></a><!-- doxytag: member="mrpt::hwdrivers::CHokuyoURG::createSensor" ref="ab652d017225fff3050a607f4461b0484" args="(const std::string &amp;className)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">static <a class="el" href="classmrpt_1_1hwdrivers_1_1_c_generic_sensor.html">CGenericSensor</a>* mrpt::hwdrivers::CGenericSensor::createSensor </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classstd_1_1string.html">std::string</a> &amp;&#160;</td>
          <td class="paramname"><em>className</em></td><td>)</td>
          <td><code> [static, inherited]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Creates a sensor by a name of the class. </p>
<p>Typically the user may want to create a smart pointer around the returned pointer, whis is made with: </p>
<div class="fragment"><pre class="fragment">   <a class="code" href="namespacemrpt_1_1hwdrivers.html#a71aef48ea8dd23e43c706cc1a3ae0e74">CGenericSensorPtr</a> sensor = <a class="code" href="namespacemrpt_1_1hwdrivers.html#a71aef48ea8dd23e43c706cc1a3ae0e74">CGenericSensorPtr</a>( <a class="code" href="classmrpt_1_1hwdrivers_1_1_c_generic_sensor.html#ab652d017225fff3050a607f4461b0484" title="Creates a sensor by a name of the class.">CGenericSensor::createSensor</a>(<span class="stringliteral">&quot;XXX&quot;</span>) );
</pre></div> <dl class="return"><dt><b>Returns:</b></dt><dd>A pointer to a new class, or NULL if class name is unknown. </dd></dl>

</div>
</div>
<a class="anchor" id="aff4e4450e420bf60a2487ab0cff91907"></a><!-- doxytag: member="mrpt::hwdrivers::CHokuyoURG::createSensorPtr" ref="aff4e4450e420bf60a2487ab0cff91907" args="(const std::string &amp;className)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">static <a class="el" href="namespacemrpt_1_1hwdrivers.html#a71aef48ea8dd23e43c706cc1a3ae0e74">CGenericSensorPtr</a> mrpt::hwdrivers::CGenericSensor::createSensorPtr </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classstd_1_1string.html">std::string</a> &amp;&#160;</td>
          <td class="paramname"><em>className</em></td><td>)</td>
          <td><code> [inline, static, inherited]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Just like createSensor, but returning a smart pointer to the newly created sensor object. </p>

<p>Definition at line <a class="el" href="_c_generic_sensor_8h_source.html#l00188">188</a> of file <a class="el" href="_c_generic_sensor_8h_source.html">CGenericSensor.h</a>.</p>

</div>
</div>
<a class="anchor" id="a444d44dc5f03edd65860d96d7b87f1d6"></a><!-- doxytag: member="mrpt::hwdrivers::CHokuyoURG::displaySensorInfo" ref="a444d44dc5f03edd65860d96d7b87f1d6" args="(CHokuyoURG::TSensorInfo *out_data=NULL)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">bool mrpt::hwdrivers::CHokuyoURG::displaySensorInfo </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structmrpt_1_1hwdrivers_1_1_c_hokuyo_u_r_g_1_1_t_sensor_info.html">CHokuyoURG::TSensorInfo</a> *&#160;</td>
          <td class="paramname"><em>out_data</em> = <code>NULL</code></td><td>)</td>
          <td><code> [private]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Ask to the device, and print to the debug stream, details about the sensor model. </p>
<p>It also optionally saves all the information in an user supplied data structure "out_data". </p>
<dl class="return"><dt><b>Returns:</b></dt><dd>false on any error </dd></dl>

</div>
</div>
<a class="anchor" id="a2c49d999129c0356dd7130e09624ff20"></a><!-- doxytag: member="mrpt::hwdrivers::CHokuyoURG::displayVersionInfo" ref="a2c49d999129c0356dd7130e09624ff20" args="()" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">bool mrpt::hwdrivers::CHokuyoURG::displayVersionInfo </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td><code> [private]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Ask to the device, and print to the debug stream, details about the firmware version,serial number,... </p>
<dl class="return"><dt><b>Returns:</b></dt><dd>false on any error </dd></dl>

</div>
</div>
<a class="anchor" id="a9ab22161d6d802bcd5c8b609fb8a6b54"></a><!-- doxytag: member="mrpt::hwdrivers::CHokuyoURG::doProcess" ref="a9ab22161d6d802bcd5c8b609fb8a6b54" args="()" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void mrpt::hwdrivers::C2DRangeFinderAbstract::doProcess </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td><code> [virtual, inherited]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Main method for a <a class="el" href="classmrpt_1_1hwdrivers_1_1_c_generic_sensor.html" title="A generic interface for a wide-variety of sensors designed to be used in the application RawLogGrabbe...">CGenericSensor</a>. </p>

<p>Implements <a class="el" href="classmrpt_1_1hwdrivers_1_1_c_generic_sensor.html#a4f02ae5d7a345819f2521f72b633ab51">mrpt::hwdrivers::CGenericSensor</a>.</p>

<p>Reimplemented in <a class="el" href="classmrpt_1_1hwdrivers_1_1_c_l_m_s100_eth.html#aa75b469c4121c09e1fc8327d293d5331">mrpt::hwdrivers::CLMS100Eth</a>.</p>

</div>
</div>
<a class="anchor" id="a34779972f4dddb8ee2524d0778fd934d"></a><!-- doxytag: member="mrpt::hwdrivers::CHokuyoURG::doProcessSimple" ref="a34779972f4dddb8ee2524d0778fd934d" args="(bool &amp;outThereIsObservation, mrpt::slam::CObservation2DRangeScan &amp;outObservation, bool &amp;hardwareError)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void mrpt::hwdrivers::CHokuyoURG::doProcessSimple </td>
          <td>(</td>
          <td class="paramtype">bool &amp;&#160;</td>
          <td class="paramname"><em>outThereIsObservation</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="classmrpt_1_1slam_1_1_c_observation2_d_range_scan.html">mrpt::slam::CObservation2DRangeScan</a> &amp;&#160;</td>
          <td class="paramname"><em>outObservation</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">bool &amp;&#160;</td>
          <td class="paramname"><em>hardwareError</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td><code> [virtual]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Specific laser scanner "software drivers" must process here new data from the I/O stream, and, if a whole scan has arrived, return it. </p>
<p>This method will be typically called in a different thread than other methods, and will be called in a timely fashion. </p>

<p>Implements <a class="el" href="classmrpt_1_1hwdrivers_1_1_c2_d_range_finder_abstract.html#a1f64f58506a3fc9f00d00ac4bae716c4">mrpt::hwdrivers::C2DRangeFinderAbstract</a>.</p>

</div>
</div>
<a class="anchor" id="aad95606c4032e534b88d140c544b8f25"></a><!-- doxytag: member="mrpt::hwdrivers::CHokuyoURG::enableSCIP20" ref="aad95606c4032e534b88d140c544b8f25" args="()" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">bool mrpt::hwdrivers::CHokuyoURG::enableSCIP20 </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td><code> [private]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Enables the SCIP2.0 protocol (this must be called at the very begining!). </p>
<dl class="return"><dt><b>Returns:</b></dt><dd>false on any error </dd></dl>

</div>
</div>
<a class="anchor" id="a6a5778b1c951524c68f83d3735e60b6f"></a><!-- doxytag: member="mrpt::hwdrivers::CHokuyoURG::filterByExclusionAngles" ref="a6a5778b1c951524c68f83d3735e60b6f" args="(CObservation2DRangeScan &amp;obs) const " -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void mrpt::hwdrivers::C2DRangeFinderAbstract::filterByExclusionAngles </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="classmrpt_1_1slam_1_1_c_observation2_d_range_scan.html">CObservation2DRangeScan</a> &amp;&#160;</td>
          <td class="paramname"><em>obs</em></td><td>)</td>
          <td> const<code> [protected, inherited]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Mark as invalid those ranges in a set of forbiden angle ranges. </p>
<dl class="see"><dt><b>See also:</b></dt><dd><a class="el" href="classmrpt_1_1hwdrivers_1_1_c2_d_range_finder_abstract.html#ae90d3b0b79158e678ede1537e0a9e900" title="Should be call by derived classes at &quot;loadConfig&quot; (loads exclusion areas AND exclusion angles)...">loadExclusionAreas</a> </dd></dl>

</div>
</div>
<a class="anchor" id="a35e79cc5b9805cf868b3fdc909ec78eb"></a><!-- doxytag: member="mrpt::hwdrivers::CHokuyoURG::filterByExclusionAreas" ref="a35e79cc5b9805cf868b3fdc909ec78eb" args="(CObservation2DRangeScan &amp;obs) const " -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void mrpt::hwdrivers::C2DRangeFinderAbstract::filterByExclusionAreas </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="classmrpt_1_1slam_1_1_c_observation2_d_range_scan.html">CObservation2DRangeScan</a> &amp;&#160;</td>
          <td class="paramname"><em>obs</em></td><td>)</td>
          <td> const<code> [protected, inherited]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Mark as invalid those points which (x,y) coordinates fall within the exclusion polygons. </p>
<dl class="see"><dt><b>See also:</b></dt><dd><a class="el" href="classmrpt_1_1hwdrivers_1_1_c2_d_range_finder_abstract.html#ae90d3b0b79158e678ede1537e0a9e900" title="Should be call by derived classes at &quot;loadConfig&quot; (loads exclusion areas AND exclusion angles)...">loadExclusionAreas</a> </dd></dl>

</div>
</div>
<a class="anchor" id="a9d5aecec9f302feede271c9f1425a323"></a><!-- doxytag: member="mrpt::hwdrivers::CHokuyoURG::getExternalImageJPEGQuality" ref="a9d5aecec9f302feede271c9f1425a323" args="() const " -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">unsigned int mrpt::hwdrivers::CGenericSensor::getExternalImageJPEGQuality </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td> const<code> [inline, inherited]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Definition at line <a class="el" href="_c_generic_sensor_8h_source.html#l00241">241</a> of file <a class="el" href="_c_generic_sensor_8h_source.html">CGenericSensor.h</a>.</p>

</div>
</div>
<a class="anchor" id="ac235087adef28853027ec1c8f4dc912d"></a><!-- doxytag: member="mrpt::hwdrivers::CHokuyoURG::getObservation" ref="ac235087adef28853027ec1c8f4dc912d" args="(bool &amp;outThereIsObservation, CObservation2DRangeScan &amp;outObservation, bool &amp;hardwareError)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void mrpt::hwdrivers::C2DRangeFinderAbstract::getObservation </td>
          <td>(</td>
          <td class="paramtype">bool &amp;&#160;</td>
          <td class="paramname"><em>outThereIsObservation</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="classmrpt_1_1slam_1_1_c_observation2_d_range_scan.html">CObservation2DRangeScan</a> &amp;&#160;</td>
          <td class="paramname"><em>outObservation</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">bool &amp;&#160;</td>
          <td class="paramname"><em>hardwareError</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td><code> [inherited]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Get the last observation from the sensor, if available, and unmarks it as being "the last one" (thus a new scan must arrive or subsequent calls will find no new observations). </p>

</div>
</div>
<a class="anchor" id="a34b2a73792cbe176b28c932646bba0ed"></a><!-- doxytag: member="mrpt::hwdrivers::CHokuyoURG::getObservations" ref="a34b2a73792cbe176b28c932646bba0ed" args="(TListObservations &amp;lstObjects)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void mrpt::hwdrivers::CGenericSensor::getObservations </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="classmrpt_1_1hwdrivers_1_1_c_generic_sensor.html#af237beee1de7f3e5733e305921695b30">TListObservations</a> &amp;&#160;</td>
          <td class="paramname"><em>lstObjects</em></td><td>)</td>
          <td><code> [inherited]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Returns a list of enqueued objects, emptying it (thread-safe). </p>
<p>The objects must be freed by the invoker. </p>

</div>
</div>
<a class="anchor" id="a8a05c268aef7ecada94a0014a2b294f7"></a><!-- doxytag: member="mrpt::hwdrivers::CHokuyoURG::getProcessRate" ref="a8a05c268aef7ecada94a0014a2b294f7" args="() const " -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">double mrpt::hwdrivers::CGenericSensor::getProcessRate </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td> const<code> [inline, inherited]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Definition at line <a class="el" href="_c_generic_sensor_8h_source.html#l00100">100</a> of file <a class="el" href="_c_generic_sensor_8h_source.html">CGenericSensor.h</a>.</p>

</div>
</div>
<a class="anchor" id="afbc26c93b989d1a0cc94c0c88d47cdba"></a><!-- doxytag: member="mrpt::hwdrivers::CHokuyoURG::GetRuntimeClass" ref="afbc26c93b989d1a0cc94c0c88d47cdba" args="() const =0" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">virtual const <a class="el" href="structmrpt_1_1hwdrivers_1_1_t_sensor_class_id.html">mrpt::hwdrivers::TSensorClassId</a>* mrpt::hwdrivers::CGenericSensor::GetRuntimeClass </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td> const<code> [pure virtual, inherited]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

</div>
</div>
<a class="anchor" id="af3cd061ca684e7ddf5949ed78fced7c9"></a><!-- doxytag: member="mrpt::hwdrivers::CHokuyoURG::getSensorLabel" ref="af3cd061ca684e7ddf5949ed78fced7c9" args="() const " -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classstd_1_1string.html">std::string</a> mrpt::hwdrivers::CGenericSensor::getSensorLabel </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td> const<code> [inline, inherited]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Definition at line <a class="el" href="_c_generic_sensor_8h_source.html#l00102">102</a> of file <a class="el" href="_c_generic_sensor_8h_source.html">CGenericSensor.h</a>.</p>

</div>
</div>
<a class="anchor" id="a610d92b0d221bd2f58d80f0182bde4d6"></a><!-- doxytag: member="mrpt::hwdrivers::CHokuyoURG::getSerialPort" ref="a610d92b0d221bd2f58d80f0182bde4d6" args="()" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">const <a class="el" href="classstd_1_1string.html">std::string</a> mrpt::hwdrivers::CHokuyoURG::getSerialPort </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td><code> [inline]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Returns the currently set serial port. </p>
<dl class="see"><dt><b>See also:</b></dt><dd><a class="el" href="classmrpt_1_1hwdrivers_1_1_c_hokuyo_u_r_g.html#a649938742b4b547472a8198daa5e3ad6" title="If set to non-empty, the serial port will be attempted to be opened automatically when this class is ...">setSerialPort</a> </dd></dl>

<p>Definition at line <a class="el" href="_c_hokuyo_u_r_g_8h_source.html#l00199">199</a> of file <a class="el" href="_c_hokuyo_u_r_g_8h_source.html">CHokuyoURG.h</a>.</p>

</div>
</div>
<a class="anchor" id="a0bd667caedc6a313d96c232bf75ba577"></a><!-- doxytag: member="mrpt::hwdrivers::CHokuyoURG::getState" ref="a0bd667caedc6a313d96c232bf75ba577" args="() const " -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classmrpt_1_1hwdrivers_1_1_c_generic_sensor.html#a44262a8f1ffcc87871fbd717d3fc2cab">TSensorState</a> mrpt::hwdrivers::CGenericSensor::getState </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td> const<code> [inline, inherited]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>The current state of the sensor. </p>

<p>Definition at line <a class="el" href="_c_generic_sensor_8h_source.html#l00098">98</a> of file <a class="el" href="_c_generic_sensor_8h_source.html">CGenericSensor.h</a>.</p>

</div>
</div>
<a class="anchor" id="aa59ba12bc09efa95df4e84b8b0982bca"></a><!-- doxytag: member="mrpt::hwdrivers::CHokuyoURG::initialize" ref="aa59ba12bc09efa95df4e84b8b0982bca" args="()" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void mrpt::hwdrivers::CHokuyoURG::initialize </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td><code> [private, virtual]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Turns the laser on. </p>

<p>Reimplemented from <a class="el" href="classmrpt_1_1hwdrivers_1_1_c_generic_sensor.html#a775782a8fef4c5cd11265024431ed8c3">mrpt::hwdrivers::CGenericSensor</a>.</p>

</div>
</div>
<a class="anchor" id="a6f34c5b79a128d1cb6b47eaa987ecb51"></a><!-- doxytag: member="mrpt::hwdrivers::CHokuyoURG::loadConfig" ref="a6f34c5b79a128d1cb6b47eaa987ecb51" args="(const mrpt::utils::CConfigFileBase &amp;configSource, const std::string &amp;section)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void mrpt::hwdrivers::CGenericSensor::loadConfig </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classmrpt_1_1utils_1_1_c_config_file_base.html">mrpt::utils::CConfigFileBase</a> &amp;&#160;</td>
          <td class="paramname"><em>configSource</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="classstd_1_1string.html">std::string</a> &amp;&#160;</td>
          <td class="paramname"><em>section</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td><code> [inherited]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Loads the generic settings common to any sensor (See <a class="el" href="classmrpt_1_1hwdrivers_1_1_c_generic_sensor.html" title="A generic interface for a wide-variety of sensors designed to be used in the application RawLogGrabbe...">CGenericSensor</a>), then call to "loadConfig_sensorSpecific" </p>
<dl><dt><b>Exceptions:</b></dt><dd>
  <table class="exception">
    <tr><td class="paramname">This</td><td>method throws an exception with a descriptive message if some critical parameter is missing or has an invalid value. </td></tr>
  </table>
  </dd>
</dl>
</p>

</div>
</div>
<a class="anchor" id="ac72eb2cedacdcadf0a6405d0d1003f04"></a><!-- doxytag: member="mrpt::hwdrivers::CHokuyoURG::loadConfig_sensorSpecific" ref="ac72eb2cedacdcadf0a6405d0d1003f04" args="(const mrpt::utils::CConfigFileBase &amp;configSource, const std::string &amp;iniSection)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void mrpt::hwdrivers::CHokuyoURG::loadConfig_sensorSpecific </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classmrpt_1_1utils_1_1_c_config_file_base.html">mrpt::utils::CConfigFileBase</a> &amp;&#160;</td>
          <td class="paramname"><em>configSource</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="classstd_1_1string.html">std::string</a> &amp;&#160;</td>
          <td class="paramname"><em>iniSection</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td><code> [protected, virtual]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Loads specific configuration for the device from a given source of configuration parameters, for example, an ".ini" file, loading from the section "[iniSection]" (see <a class="el" href="classmrpt_1_1utils_1_1_c_config_file_base.html" title="This class allows loading and storing values and vectors of different types from a configuration text...">utils::CConfigFileBase</a> and derived classes) See <a class="el" href="classmrpt_1_1hwdrivers_1_1_c_hokuyo_u_r_g.html" title="This software driver implements the protocol SCIP-2.0 for interfacing HOKUYO URG, UTM and UXM laser s...">hwdrivers::CHokuyoURG</a> for the possible parameters. </p>

<p>Implements <a class="el" href="classmrpt_1_1hwdrivers_1_1_c_generic_sensor.html#ac867f9cb46c72b4386a5488f171f178f">mrpt::hwdrivers::CGenericSensor</a>.</p>

</div>
</div>
<a class="anchor" id="ae90d3b0b79158e678ede1537e0a9e900"></a><!-- doxytag: member="mrpt::hwdrivers::CHokuyoURG::loadExclusionAreas" ref="ae90d3b0b79158e678ede1537e0a9e900" args="(const mrpt::utils::CConfigFileBase &amp;configSource, const std::string &amp;iniSection)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void mrpt::hwdrivers::C2DRangeFinderAbstract::loadExclusionAreas </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classmrpt_1_1utils_1_1_c_config_file_base.html">mrpt::utils::CConfigFileBase</a> &amp;&#160;</td>
          <td class="paramname"><em>configSource</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="classstd_1_1string.html">std::string</a> &amp;&#160;</td>
          <td class="paramname"><em>iniSection</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td><code> [protected, inherited]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Should be call by derived classes at "loadConfig" (loads exclusion areas AND exclusion angles). </p>
<p>This loads a sequence of vertices of a polygon given by its (x,y) coordinates relative to the vehicle, that is, taking into account the "sensorPose".</p>
<ul>
<li>exclusionZoneu_x</li>
<li>exclusionZoneu_y for u=1,2,3,... All points within the 2D polygon will be ignored, for any Z, unless an optional entry is found:</li>
<li>exclusionZoneu_z=[z_min z_max] In that case, only the points within the 2D polygon AND the given range in Z will be ignored.</li>
</ul>
<p>The number of zones is variable, but they must start at 1 and be consecutive. </p>
<dl class="see"><dt><b>See also:</b></dt><dd><a class="el" href="classmrpt_1_1hwdrivers_1_1_c2_d_range_finder_abstract.html#a35e79cc5b9805cf868b3fdc909ec78eb" title="Mark as invalid those points which (x,y) coordinates fall within the exclusion polygons.">filterByExclusionAreas</a> </dd></dl>

</div>
</div>
<a class="anchor" id="ab78281b5d70d6e295a8527a10fea66de"></a><!-- doxytag: member="mrpt::hwdrivers::CHokuyoURG::printf_debug" ref="ab78281b5d70d6e295a8527a10fea66de" args="(const char *frmt,...)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">static void mrpt::utils::CDebugOutputCapable::printf_debug </td>
          <td>(</td>
          <td class="paramtype">const char *&#160;</td>
          <td class="paramname"><em>frmt</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">&#160;</td>
          <td class="paramname"><em>...</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td><code> [static, inherited]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Sends a formated text to "debugOut" if not NULL, or to cout otherwise. </p>

<p>Referenced by <a class="el" href="_c_levenberg_marquardt_8h_source.html#l00098">mrpt::math::CLevenbergMarquardtTempl::execute()</a>.</p>

</div>
</div>
<a class="anchor" id="a0dc63135d809c41f2a374fb35ff1614e"></a><!-- doxytag: member="mrpt::hwdrivers::CHokuyoURG::purgeBuffers" ref="a0dc63135d809c41f2a374fb35ff1614e" args="()" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void mrpt::hwdrivers::CHokuyoURG::purgeBuffers </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Empties the RX buffers of the serial port. </p>

</div>
</div>
<a class="anchor" id="a03f3acbef537e9efa5793809adba2034"></a><!-- doxytag: member="mrpt::hwdrivers::CHokuyoURG::receiveResponse" ref="a03f3acbef537e9efa5793809adba2034" args="(const char *sentCmd_forEchoVerification, char &amp;rcv_status0, char &amp;rcv_status1, char *rcv_data, int &amp;rcv_dataLength)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">bool mrpt::hwdrivers::CHokuyoURG::receiveResponse </td>
          <td>(</td>
          <td class="paramtype">const char *&#160;</td>
          <td class="paramname"><em>sentCmd_forEchoVerification</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">char &amp;&#160;</td>
          <td class="paramname"><em>rcv_status0</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">char &amp;&#160;</td>
          <td class="paramname"><em>rcv_status1</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">char *&#160;</td>
          <td class="paramname"><em>rcv_data</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int &amp;&#160;</td>
          <td class="paramname"><em>rcv_dataLength</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td><code> [private]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Waits for a response from the device. </p>
<dl class="return"><dt><b>Returns:</b></dt><dd>false on any error </dd></dl>

</div>
</div>
<a class="anchor" id="a640e1b953865c3d2e881bbd2c1a81428"></a><!-- doxytag: member="mrpt::hwdrivers::CHokuyoURG::registerClass" ref="a640e1b953865c3d2e881bbd2c1a81428" args="(const TSensorClassId *pNewClass)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">static void mrpt::hwdrivers::CGenericSensor::registerClass </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="structmrpt_1_1hwdrivers_1_1_t_sensor_class_id.html">TSensorClassId</a> *&#160;</td>
          <td class="paramname"><em>pNewClass</em></td><td>)</td>
          <td><code> [static, inherited]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Register a class into the internal list of "CGenericSensor" descendents. </p>
<p>Used internally in the macros DEFINE_GENERIC_SENSOR, etc...</p>
<p>Can be used as "CGenericSensor::registerClass( SENSOR_CLASS_ID(CMySensor) );" if building custom sensors outside mrpt libraries in user code. </p>

</div>
</div>
<a class="anchor" id="aff4b208b901763557196b9326901c582"></a><!-- doxytag: member="mrpt::hwdrivers::CHokuyoURG::setExternalImageFormat" ref="aff4b208b901763557196b9326901c582" args="(const std::string &amp;ext)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void mrpt::hwdrivers::CGenericSensor::setExternalImageFormat </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classstd_1_1string.html">std::string</a> &amp;&#160;</td>
          <td class="paramname"><em>ext</em></td><td>)</td>
          <td><code> [inline, inherited]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Set the extension ("jpg","gif","png",...) that determines the format of images saved externally The default is "jpg". </p>
<dl class="see"><dt><b>See also:</b></dt><dd><a class="el" href="classmrpt_1_1hwdrivers_1_1_c_generic_sensor.html#afa55ff06dbf360c8f631d371d6ebe35d" title="Set the path where to save off-rawlog image files (will be ignored in those sensors where this is not...">setPathForExternalImages</a>, <a class="el" href="classmrpt_1_1hwdrivers_1_1_c_generic_sensor.html#aca05f7ee991ee112b5e9f8f289a9ee94" title="The quality of JPEG compression, when external images is enabled and the format is &quot;jpg&quot;...">setExternalImageJPEGQuality</a> </dd></dl>

<p>Definition at line <a class="el" href="_c_generic_sensor_8h_source.html#l00233">233</a> of file <a class="el" href="_c_generic_sensor_8h_source.html">CGenericSensor.h</a>.</p>

</div>
</div>
<a class="anchor" id="aca05f7ee991ee112b5e9f8f289a9ee94"></a><!-- doxytag: member="mrpt::hwdrivers::CHokuyoURG::setExternalImageJPEGQuality" ref="aca05f7ee991ee112b5e9f8f289a9ee94" args="(const unsigned int quality)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void mrpt::hwdrivers::CGenericSensor::setExternalImageJPEGQuality </td>
          <td>(</td>
          <td class="paramtype">const unsigned int&#160;</td>
          <td class="paramname"><em>quality</em></td><td>)</td>
          <td><code> [inline, inherited]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>The quality of JPEG compression, when external images is enabled and the format is "jpg". </p>
<dl class="see"><dt><b>See also:</b></dt><dd><a class="el" href="classmrpt_1_1hwdrivers_1_1_c_generic_sensor.html#aff4b208b901763557196b9326901c582" title="Set the extension (&quot;jpg&quot;,&quot;gif&quot;,&quot;png&quot;,...) that determines the format of images saved externally The d...">setExternalImageFormat</a> </dd></dl>

<p>Definition at line <a class="el" href="_c_generic_sensor_8h_source.html#l00238">238</a> of file <a class="el" href="_c_generic_sensor_8h_source.html">CGenericSensor.h</a>.</p>

</div>
</div>
<a class="anchor" id="a534585372e07284900b13f2e303bc024"></a><!-- doxytag: member="mrpt::hwdrivers::CHokuyoURG::setHighBaudrate" ref="a534585372e07284900b13f2e303bc024" args="()" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">bool mrpt::hwdrivers::CHokuyoURG::setHighBaudrate </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td><code> [private]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Passes to 115200bps bitrate. </p>
<dl class="return"><dt><b>Returns:</b></dt><dd>false on any error </dd></dl>

</div>
</div>
<a class="anchor" id="a3a5440a364d483cde1a53e76310ce321"></a><!-- doxytag: member="mrpt::hwdrivers::CHokuyoURG::setHighSensitivityMode" ref="a3a5440a364d483cde1a53e76310ce321" args="(bool enabled)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">bool mrpt::hwdrivers::CHokuyoURG::setHighSensitivityMode </td>
          <td>(</td>
          <td class="paramtype">bool&#160;</td>
          <td class="paramname"><em>enabled</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Changes the high sensitivity mode (HS) (default: false) </p>
<dl class="return"><dt><b>Returns:</b></dt><dd>false on any error </dd></dl>

</div>
</div>
<a class="anchor" id="a493faccb1583d35dd08bd930835eb8e5"></a><!-- doxytag: member="mrpt::hwdrivers::CHokuyoURG::setIPandPort" ref="a493faccb1583d35dd08bd930835eb8e5" args="(const std::string &amp;ip, const unsigned int &amp;port)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void mrpt::hwdrivers::CHokuyoURG::setIPandPort </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classstd_1_1string.html">std::string</a> &amp;&#160;</td>
          <td class="paramname"><em>ip</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const unsigned int &amp;&#160;</td>
          <td class="paramname"><em>port</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td><code> [inline]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Set the ip direction and port to connect using Ethernet communication. </p>

<p>Definition at line <a class="el" href="_c_hokuyo_u_r_g_8h_source.html#l00196">196</a> of file <a class="el" href="_c_hokuyo_u_r_g_8h_source.html">CHokuyoURG.h</a>.</p>

</div>
</div>
<a class="anchor" id="a44c74275800789266e65c34258e6ffe4"></a><!-- doxytag: member="mrpt::hwdrivers::CHokuyoURG::setMotorSpeed" ref="a44c74275800789266e65c34258e6ffe4" args="(int motoSpeed_rpm)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">bool mrpt::hwdrivers::CHokuyoURG::setMotorSpeed </td>
          <td>(</td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>motoSpeed_rpm</em></td><td>)</td>
          <td><code> [private]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Changes the motor speed in rpm's (default 600rpm) </p>
<dl class="return"><dt><b>Returns:</b></dt><dd>false on any error </dd></dl>

</div>
</div>
<a class="anchor" id="afa55ff06dbf360c8f631d371d6ebe35d"></a><!-- doxytag: member="mrpt::hwdrivers::CHokuyoURG::setPathForExternalImages" ref="afa55ff06dbf360c8f631d371d6ebe35d" args="(const std::string &amp;directory)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">virtual void mrpt::hwdrivers::CGenericSensor::setPathForExternalImages </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classstd_1_1string.html">std::string</a> &amp;&#160;</td>
          <td class="paramname"><em>directory</em></td><td>)</td>
          <td><code> [inline, virtual, inherited]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Set the path where to save off-rawlog image files (will be ignored in those sensors where this is not applicable). </p>
<p>An empty string (the default value at construction) means to save images embedded in the rawlog, instead of on separate files. </p>
<dl><dt><b>Exceptions:</b></dt><dd>
  <table class="exception">
    <tr><td class="paramname"><a class="el" href="classstd_1_1exception.html" title="STL class.">std::exception</a></td><td>If the directory doesn't exists and cannot be created. </td></tr>
  </table>
  </dd>
</dl>

<p>Reimplemented in <a class="el" href="classmrpt_1_1hwdrivers_1_1_c_kinect.html#af1eb1294ff0693595f46c26ede24d115">mrpt::hwdrivers::CKinect</a>, <a class="el" href="classmrpt_1_1hwdrivers_1_1_c_camera_sensor.html#a8cc198b85399850d439eda47d832bc8d">mrpt::hwdrivers::CCameraSensor</a>, and <a class="el" href="classmrpt_1_1hwdrivers_1_1_c_swiss_ranger3_d_camera.html#a7392e6fb7a5720f0cbfa6dd02b7ec439">mrpt::hwdrivers::CSwissRanger3DCamera</a>.</p>

<p>Definition at line <a class="el" href="_c_generic_sensor_8h_source.html#l00225">225</a> of file <a class="el" href="_c_generic_sensor_8h_source.html">CGenericSensor.h</a>.</p>

</div>
</div>
<a class="anchor" id="a989289ffb6072e3f3493ab9fb5720b6e"></a><!-- doxytag: member="mrpt::hwdrivers::CHokuyoURG::setReducedFOV" ref="a989289ffb6072e3f3493ab9fb5720b6e" args="(const double fov)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void mrpt::hwdrivers::CHokuyoURG::setReducedFOV </td>
          <td>(</td>
          <td class="paramtype">const double&#160;</td>
          <td class="paramname"><em>fov</em></td><td>)</td>
          <td><code> [inline]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>If called (before calling "turnOn"), the field of view of the laser is reduced to the given range (in radians), discarding the rest of measures. </p>
<p>Call with "0" to disable this reduction again (the default). </p>

<p>Definition at line <a class="el" href="_c_hokuyo_u_r_g_8h_source.html#l00204">204</a> of file <a class="el" href="_c_hokuyo_u_r_g_8h_source.html">CHokuyoURG.h</a>.</p>

</div>
</div>
<a class="anchor" id="a044c1340c4b90957250f63fa89189036"></a><!-- doxytag: member="mrpt::hwdrivers::CHokuyoURG::setSensorLabel" ref="a044c1340c4b90957250f63fa89189036" args="(const std::string &amp;sensorLabel)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void mrpt::hwdrivers::CGenericSensor::setSensorLabel </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classstd_1_1string.html">std::string</a> &amp;&#160;</td>
          <td class="paramname"><em>sensorLabel</em></td><td>)</td>
          <td><code> [inline, inherited]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Definition at line <a class="el" href="_c_generic_sensor_8h_source.html#l00103">103</a> of file <a class="el" href="_c_generic_sensor_8h_source.html">CGenericSensor.h</a>.</p>

</div>
</div>
<a class="anchor" id="a649938742b4b547472a8198daa5e3ad6"></a><!-- doxytag: member="mrpt::hwdrivers::CHokuyoURG::setSerialPort" ref="a649938742b4b547472a8198daa5e3ad6" args="(const std::string &amp;port_name)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void mrpt::hwdrivers::CHokuyoURG::setSerialPort </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classstd_1_1string.html">std::string</a> &amp;&#160;</td>
          <td class="paramname"><em>port_name</em></td><td>)</td>
          <td><code> [inline]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>If set to non-empty, the serial port will be attempted to be opened automatically when this class is first used to request data from the laser. </p>

<p>Definition at line <a class="el" href="_c_hokuyo_u_r_g_8h_source.html#l00193">193</a> of file <a class="el" href="_c_hokuyo_u_r_g_8h_source.html">CHokuyoURG.h</a>.</p>

</div>
</div>
<a class="anchor" id="ac9b357d18e13a33eb472222c4b72c843"></a><!-- doxytag: member="mrpt::hwdrivers::CHokuyoURG::setVerbose" ref="ac9b357d18e13a33eb472222c4b72c843" args="(bool enable=true)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void mrpt::hwdrivers::CHokuyoURG::setVerbose </td>
          <td>(</td>
          <td class="paramtype">bool&#160;</td>
          <td class="paramname"><em>enable</em> = <code>true</code></td><td>)</td>
          <td><code> [inline]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Definition at line <a class="el" href="_c_hokuyo_u_r_g_8h_source.html#l00211">211</a> of file <a class="el" href="_c_hokuyo_u_r_g_8h_source.html">CHokuyoURG.h</a>.</p>

</div>
</div>
<a class="anchor" id="ad8edc0bf4eb2ec66e2b5acfc536c19bb"></a><!-- doxytag: member="mrpt::hwdrivers::CHokuyoURG::startScanningMode" ref="ad8edc0bf4eb2ec66e2b5acfc536c19bb" args="()" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">bool mrpt::hwdrivers::CHokuyoURG::startScanningMode </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td><code> [private]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Start the scanning mode, using parameters stored in the object (loaded from the .ini file) After this command the device will start to send scans until "switchLaserOff" is called. </p>
<dl class="return"><dt><b>Returns:</b></dt><dd>false on any error </dd></dl>

</div>
</div>
<a class="anchor" id="abea22b2813cb62bdba1dbb5902c139a9"></a><!-- doxytag: member="mrpt::hwdrivers::CHokuyoURG::switchLaserOff" ref="abea22b2813cb62bdba1dbb5902c139a9" args="()" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">bool mrpt::hwdrivers::CHokuyoURG::switchLaserOff </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td><code> [private]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Switchs the laser off. </p>
<dl class="return"><dt><b>Returns:</b></dt><dd>false on any error </dd></dl>

</div>
</div>
<a class="anchor" id="af58cf18299f447448ff2130fd566e3eb"></a><!-- doxytag: member="mrpt::hwdrivers::CHokuyoURG::switchLaserOn" ref="af58cf18299f447448ff2130fd566e3eb" args="()" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">bool mrpt::hwdrivers::CHokuyoURG::switchLaserOn </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td><code> [private]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Switchs the laser on. </p>
<dl class="return"><dt><b>Returns:</b></dt><dd>false on any error </dd></dl>

</div>
</div>
<a class="anchor" id="adabd7857b1509d81991d47445943f33b"></a><!-- doxytag: member="mrpt::hwdrivers::CHokuyoURG::turnOff" ref="adabd7857b1509d81991d47445943f33b" args="()" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">bool mrpt::hwdrivers::CHokuyoURG::turnOff </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td><code> [virtual]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Disables the scanning mode (this can be used to turn the device in low energy mode, if available) </p>
<dl class="return"><dt><b>Returns:</b></dt><dd>If everything works "true", or "false" if there is any error. </dd></dl>

<p>Implements <a class="el" href="classmrpt_1_1hwdrivers_1_1_c2_d_range_finder_abstract.html#af0e4d6b3051435e235e9f92924cce968">mrpt::hwdrivers::C2DRangeFinderAbstract</a>.</p>

</div>
</div>
<a class="anchor" id="aca92934a8fb01a12b3419175a0cc9d34"></a><!-- doxytag: member="mrpt::hwdrivers::CHokuyoURG::turnOn" ref="aca92934a8fb01a12b3419175a0cc9d34" args="()" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">bool mrpt::hwdrivers::CHokuyoURG::turnOn </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td><code> [virtual]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Enables the scanning mode (which may depend on the specific laser device); this must be called before asking for observations to assure that the protocol has been initializated. </p>
<dl class="return"><dt><b>Returns:</b></dt><dd>If everything works "true", or "false" if there is any error. </dd></dl>

<p>Implements <a class="el" href="classmrpt_1_1hwdrivers_1_1_c2_d_range_finder_abstract.html#a2ba583282b207b13ee413d0d001e9d1a">mrpt::hwdrivers::C2DRangeFinderAbstract</a>.</p>

</div>
</div>
<hr/><h2>Member Data Documentation</h2>
<a class="anchor" id="a5b714bf193b24aa61d51c81210173223"></a><!-- doxytag: member="mrpt::hwdrivers::CHokuyoURG::m_com_port" ref="a5b714bf193b24aa61d51c81210173223" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classstd_1_1string.html">std::string</a> <a class="el" href="classmrpt_1_1hwdrivers_1_1_c_hokuyo_u_r_g.html#a5b714bf193b24aa61d51c81210173223">mrpt::hwdrivers::CHokuyoURG::m_com_port</a><code> [protected]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>If set to non-empty, the serial port will be attempted to be opened automatically when this class is first used to request data from the laser. </p>

<p>Definition at line <a class="el" href="_c_hokuyo_u_r_g_8h_source.html#l00221">221</a> of file <a class="el" href="_c_hokuyo_u_r_g_8h_source.html">CHokuyoURG.h</a>.</p>

</div>
</div>
<a class="anchor" id="a7d153c5247b0180b6b9df5054d67b183"></a><!-- doxytag: member="mrpt::hwdrivers::CHokuyoURG::m_external_images_format" ref="a7d153c5247b0180b6b9df5054d67b183" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classstd_1_1string.html">std::string</a> <a class="el" href="classmrpt_1_1hwdrivers_1_1_c_generic_sensor.html#a7d153c5247b0180b6b9df5054d67b183">mrpt::hwdrivers::CGenericSensor::m_external_images_format</a><code> [protected, inherited]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>The extension ("jpg","gif","png",...) that determines the format of images saved externally. </p>
<dl class="see"><dt><b>See also:</b></dt><dd><a class="el" href="classmrpt_1_1hwdrivers_1_1_c_generic_sensor.html#afa55ff06dbf360c8f631d371d6ebe35d" title="Set the path where to save off-rawlog image files (will be ignored in those sensors where this is not...">setPathForExternalImages</a> </dd></dl>

<p>Definition at line <a class="el" href="_c_generic_sensor_8h_source.html#l00139">139</a> of file <a class="el" href="_c_generic_sensor_8h_source.html">CGenericSensor.h</a>.</p>

</div>
</div>
<a class="anchor" id="aeac331931fce4890793cd7f1b5f6eb3e"></a><!-- doxytag: member="mrpt::hwdrivers::CHokuyoURG::m_external_images_jpeg_quality" ref="aeac331931fce4890793cd7f1b5f6eb3e" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">unsigned int <a class="el" href="classmrpt_1_1hwdrivers_1_1_c_generic_sensor.html#aeac331931fce4890793cd7f1b5f6eb3e">mrpt::hwdrivers::CGenericSensor::m_external_images_jpeg_quality</a><code> [protected, inherited]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>For JPEG images, the quality (default=95%). </p>

<p>Definition at line <a class="el" href="_c_generic_sensor_8h_source.html#l00140">140</a> of file <a class="el" href="_c_generic_sensor_8h_source.html">CGenericSensor.h</a>.</p>

</div>
</div>
<a class="anchor" id="aa98622fc3f9f7f273777736761f96d8d"></a><!-- doxytag: member="mrpt::hwdrivers::CHokuyoURG::m_firstRange" ref="aa98622fc3f9f7f273777736761f96d8d" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int <a class="el" href="classmrpt_1_1hwdrivers_1_1_c_hokuyo_u_r_g.html#aa98622fc3f9f7f273777736761f96d8d">mrpt::hwdrivers::CHokuyoURG::m_firstRange</a><code> [private]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Definition at line <a class="el" href="_c_hokuyo_u_r_g_8h_source.html#l00092">92</a> of file <a class="el" href="_c_hokuyo_u_r_g_8h_source.html">CHokuyoURG.h</a>.</p>

</div>
</div>
<a class="anchor" id="a587daaab2cb302eb4cc72eb1396d5f21"></a><!-- doxytag: member="mrpt::hwdrivers::CHokuyoURG::m_grab_decimation" ref="a587daaab2cb302eb4cc72eb1396d5f21" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">size_t <a class="el" href="classmrpt_1_1hwdrivers_1_1_c_generic_sensor.html#a587daaab2cb302eb4cc72eb1396d5f21">mrpt::hwdrivers::CGenericSensor::m_grab_decimation</a><code> [protected, inherited]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>If set to N&gt;=2, only 1 out of N observations will be saved to m_objList. </p>

<p>Definition at line <a class="el" href="_c_generic_sensor_8h_source.html#l00127">127</a> of file <a class="el" href="_c_generic_sensor_8h_source.html">CGenericSensor.h</a>.</p>

</div>
</div>
<a class="anchor" id="a564a6c2bc7f1baaea9a9d90112a7b376"></a><!-- doxytag: member="mrpt::hwdrivers::CHokuyoURG::m_grab_decimation_counter" ref="a564a6c2bc7f1baaea9a9d90112a7b376" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">size_t <a class="el" href="classmrpt_1_1hwdrivers_1_1_c_generic_sensor.html#a564a6c2bc7f1baaea9a9d90112a7b376">mrpt::hwdrivers::CGenericSensor::m_grab_decimation_counter</a><code> [protected, inherited]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Used when "m_grab_decimation" is enabled. </p>

<p>Definition at line <a class="el" href="_c_generic_sensor_8h_source.html#l00132">132</a> of file <a class="el" href="_c_generic_sensor_8h_source.html">CGenericSensor.h</a>.</p>

</div>
</div>
<a class="anchor" id="a2f474244d9a69dfa1524c86ef0d1029d"></a><!-- doxytag: member="mrpt::hwdrivers::CHokuyoURG::m_highSensMode" ref="a2f474244d9a69dfa1524c86ef0d1029d" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">bool <a class="el" href="classmrpt_1_1hwdrivers_1_1_c_hokuyo_u_r_g.html#a2f474244d9a69dfa1524c86ef0d1029d">mrpt::hwdrivers::CHokuyoURG::m_highSensMode</a><code> [private]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>High sensitivity [HS] mode (default: false) </p>

<p>Definition at line <a class="el" href="_c_hokuyo_u_r_g_8h_source.html#l00100">100</a> of file <a class="el" href="_c_hokuyo_u_r_g_8h_source.html">CHokuyoURG.h</a>.</p>

</div>
</div>
<a class="anchor" id="aea0bf2150874a54b4d3ca6d0587163bf"></a><!-- doxytag: member="mrpt::hwdrivers::CHokuyoURG::m_I_am_owner_serial_port" ref="aea0bf2150874a54b4d3ca6d0587163bf" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">bool <a class="el" href="classmrpt_1_1hwdrivers_1_1_c_hokuyo_u_r_g.html#aea0bf2150874a54b4d3ca6d0587163bf">mrpt::hwdrivers::CHokuyoURG::m_I_am_owner_serial_port</a><code> [protected]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Definition at line <a class="el" href="_c_hokuyo_u_r_g_8h_source.html#l00229">229</a> of file <a class="el" href="_c_hokuyo_u_r_g_8h_source.html">CHokuyoURG.h</a>.</p>

</div>
</div>
<a class="anchor" id="adaae01b49f030a3e545abd0923e229d7"></a><!-- doxytag: member="mrpt::hwdrivers::CHokuyoURG::m_ip_dir" ref="adaae01b49f030a3e545abd0923e229d7" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classstd_1_1string.html">std::string</a> <a class="el" href="classmrpt_1_1hwdrivers_1_1_c_hokuyo_u_r_g.html#adaae01b49f030a3e545abd0923e229d7">mrpt::hwdrivers::CHokuyoURG::m_ip_dir</a><code> [protected]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>If set to non-empty and m_port_dir too, the program will try to connect to a Hokuyo using Ethernet communication. </p>

<p>Definition at line <a class="el" href="_c_hokuyo_u_r_g_8h_source.html#l00223">223</a> of file <a class="el" href="_c_hokuyo_u_r_g_8h_source.html">CHokuyoURG.h</a>.</p>

</div>
</div>
<a class="anchor" id="afd21b67347b033fb077b9d4eb920291b"></a><!-- doxytag: member="mrpt::hwdrivers::CHokuyoURG::m_lastRange" ref="afd21b67347b033fb077b9d4eb920291b" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int <a class="el" href="classmrpt_1_1hwdrivers_1_1_c_hokuyo_u_r_g.html#afd21b67347b033fb077b9d4eb920291b">mrpt::hwdrivers::CHokuyoURG::m_lastRange</a><code> [private]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>The first and last ranges to consider from the scan. </p>

<p>Definition at line <a class="el" href="_c_hokuyo_u_r_g_8h_source.html#l00092">92</a> of file <a class="el" href="_c_hokuyo_u_r_g_8h_source.html">CHokuyoURG.h</a>.</p>

</div>
</div>
<a class="anchor" id="aed9b38ef8406bf96e56da57d66423d13"></a><!-- doxytag: member="mrpt::hwdrivers::CHokuyoURG::m_lastSentMeasCmd" ref="aed9b38ef8406bf96e56da57d66423d13" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classstd_1_1string.html">std::string</a> <a class="el" href="classmrpt_1_1hwdrivers_1_1_c_hokuyo_u_r_g.html#aed9b38ef8406bf96e56da57d66423d13">mrpt::hwdrivers::CHokuyoURG::m_lastSentMeasCmd</a><code> [private]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>The last sent measurement command (MDXXX), including the last 0x0A. </p>

<p>Definition at line <a class="el" href="_c_hokuyo_u_r_g_8h_source.html#l00097">97</a> of file <a class="el" href="_c_hokuyo_u_r_g_8h_source.html">CHokuyoURG.h</a>.</p>

</div>
</div>
<a class="anchor" id="a6f35448579bd4d27cd4f4685b31a8cc0"></a><!-- doxytag: member="mrpt::hwdrivers::CHokuyoURG::m_max_queue_len" ref="a6f35448579bd4d27cd4f4685b31a8cc0" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">size_t <a class="el" href="classmrpt_1_1hwdrivers_1_1_c_generic_sensor.html#a6f35448579bd4d27cd4f4685b31a8cc0">mrpt::hwdrivers::CGenericSensor::m_max_queue_len</a><code> [protected, inherited]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>See <a class="el" href="classmrpt_1_1hwdrivers_1_1_c_generic_sensor.html" title="A generic interface for a wide-variety of sensors designed to be used in the application RawLogGrabbe...">CGenericSensor</a>. </p>

<p>Definition at line <a class="el" href="_c_generic_sensor_8h_source.html#l00126">126</a> of file <a class="el" href="_c_generic_sensor_8h_source.html">CGenericSensor.h</a>.</p>

</div>
</div>
<a class="anchor" id="af778f907212ac6427fe4ea9ce99fb881"></a><!-- doxytag: member="mrpt::hwdrivers::CHokuyoURG::m_motorSpeed_rpm" ref="af778f907212ac6427fe4ea9ce99fb881" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int <a class="el" href="classmrpt_1_1hwdrivers_1_1_c_hokuyo_u_r_g.html#af778f907212ac6427fe4ea9ce99fb881">mrpt::hwdrivers::CHokuyoURG::m_motorSpeed_rpm</a><code> [private]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>The motor speed (default=600rpm) </p>

<p>Definition at line <a class="el" href="_c_hokuyo_u_r_g_8h_source.html#l00093">93</a> of file <a class="el" href="_c_hokuyo_u_r_g_8h_source.html">CHokuyoURG.h</a>.</p>

</div>
</div>
<a class="anchor" id="a06fe84426b813b9c1966c12bb69e6ee6"></a><!-- doxytag: member="mrpt::hwdrivers::CHokuyoURG::m_path_for_external_images" ref="a06fe84426b813b9c1966c12bb69e6ee6" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classstd_1_1string.html">std::string</a> <a class="el" href="classmrpt_1_1hwdrivers_1_1_c_generic_sensor.html#a06fe84426b813b9c1966c12bb69e6ee6">mrpt::hwdrivers::CGenericSensor::m_path_for_external_images</a><code> [protected, inherited]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>The path where to save off-rawlog images: empty means save images embedded in the rawlog. </p>

<p>Definition at line <a class="el" href="_c_generic_sensor_8h_source.html#l00138">138</a> of file <a class="el" href="_c_generic_sensor_8h_source.html">CGenericSensor.h</a>.</p>

</div>
</div>
<a class="anchor" id="a3003d7d83ccf8ab3cf8661d28c455895"></a><!-- doxytag: member="mrpt::hwdrivers::CHokuyoURG::m_port_dir" ref="a3003d7d83ccf8ab3cf8661d28c455895" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">unsigned int <a class="el" href="classmrpt_1_1hwdrivers_1_1_c_hokuyo_u_r_g.html#a3003d7d83ccf8ab3cf8661d28c455895">mrpt::hwdrivers::CHokuyoURG::m_port_dir</a><code> [protected]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>If set to non-empty and m_ip_dir too, the program will try to connect to a Hokuyo using Ethernet communication. </p>

<p>Definition at line <a class="el" href="_c_hokuyo_u_r_g_8h_source.html#l00224">224</a> of file <a class="el" href="_c_hokuyo_u_r_g_8h_source.html">CHokuyoURG.h</a>.</p>

</div>
</div>
<a class="anchor" id="a77094b791971e8f42b94de34f4adb0f7"></a><!-- doxytag: member="mrpt::hwdrivers::CHokuyoURG::m_process_rate" ref="a77094b791971e8f42b94de34f4adb0f7" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">double <a class="el" href="classmrpt_1_1hwdrivers_1_1_c_generic_sensor.html#a77094b791971e8f42b94de34f4adb0f7">mrpt::hwdrivers::CGenericSensor::m_process_rate</a><code> [protected, inherited]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>See <a class="el" href="classmrpt_1_1hwdrivers_1_1_c_generic_sensor.html" title="A generic interface for a wide-variety of sensors designed to be used in the application RawLogGrabbe...">CGenericSensor</a>. </p>

<p>Definition at line <a class="el" href="_c_generic_sensor_8h_source.html#l00125">125</a> of file <a class="el" href="_c_generic_sensor_8h_source.html">CGenericSensor.h</a>.</p>

</div>
</div>
<a class="anchor" id="a84157502f5a8573e5a729ff6bb47894d"></a><!-- doxytag: member="mrpt::hwdrivers::CHokuyoURG::m_reduced_fov" ref="a84157502f5a8573e5a729ff6bb47894d" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">double <a class="el" href="classmrpt_1_1hwdrivers_1_1_c_hokuyo_u_r_g.html#a84157502f5a8573e5a729ff6bb47894d">mrpt::hwdrivers::CHokuyoURG::m_reduced_fov</a><code> [protected]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Used to reduce artificially the interval of scan ranges. </p>

<p>Definition at line <a class="el" href="_c_hokuyo_u_r_g_8h_source.html#l00219">219</a> of file <a class="el" href="_c_hokuyo_u_r_g_8h_source.html">CHokuyoURG.h</a>.</p>

</div>
</div>
<a class="anchor" id="a80b98e185edc36578a7682fa8a3c10e5"></a><!-- doxytag: member="mrpt::hwdrivers::CHokuyoURG::m_rx_buffer" ref="a80b98e185edc36578a7682fa8a3c10e5" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classmrpt_1_1utils_1_1circular__buffer.html">mrpt::utils::circular_buffer</a>&lt;uint8_t&gt; <a class="el" href="classmrpt_1_1hwdrivers_1_1_c_hokuyo_u_r_g.html#a80b98e185edc36578a7682fa8a3c10e5">mrpt::hwdrivers::CHokuyoURG::m_rx_buffer</a><code> [private]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Auxiliary buffer for readings. </p>

<p>Definition at line <a class="el" href="_c_hokuyo_u_r_g_8h_source.html#l00095">95</a> of file <a class="el" href="_c_hokuyo_u_r_g_8h_source.html">CHokuyoURG.h</a>.</p>

</div>
</div>
<a class="anchor" id="a008022bd5d84b46985bb83af7d9a4c24"></a><!-- doxytag: member="mrpt::hwdrivers::CHokuyoURG::m_sensor_info" ref="a008022bd5d84b46985bb83af7d9a4c24" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="structmrpt_1_1hwdrivers_1_1_c_hokuyo_u_r_g_1_1_t_sensor_info.html">TSensorInfo</a> <a class="el" href="classmrpt_1_1hwdrivers_1_1_c_hokuyo_u_r_g.html#a008022bd5d84b46985bb83af7d9a4c24">mrpt::hwdrivers::CHokuyoURG::m_sensor_info</a><code> [protected]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>The information gathered when the laser is first open. </p>

<p>Definition at line <a class="el" href="_c_hokuyo_u_r_g_8h_source.html#l00227">227</a> of file <a class="el" href="_c_hokuyo_u_r_g_8h_source.html">CHokuyoURG.h</a>.</p>

</div>
</div>
<a class="anchor" id="accd4de8daeb5966c191fbc62a5d90355"></a><!-- doxytag: member="mrpt::hwdrivers::CHokuyoURG::m_sensorLabel" ref="accd4de8daeb5966c191fbc62a5d90355" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classstd_1_1string.html">std::string</a> <a class="el" href="classmrpt_1_1hwdrivers_1_1_c_generic_sensor.html#accd4de8daeb5966c191fbc62a5d90355">mrpt::hwdrivers::CGenericSensor::m_sensorLabel</a><code> [protected, inherited]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>See <a class="el" href="classmrpt_1_1hwdrivers_1_1_c_generic_sensor.html" title="A generic interface for a wide-variety of sensors designed to be used in the application RawLogGrabbe...">CGenericSensor</a>. </p>

<p>Definition at line <a class="el" href="_c_generic_sensor_8h_source.html#l00128">128</a> of file <a class="el" href="_c_generic_sensor_8h_source.html">CGenericSensor.h</a>.</p>

</div>
</div>
<a class="anchor" id="a8b7b2a11b7fb90beac8b704fbb2d6391"></a><!-- doxytag: member="mrpt::hwdrivers::CHokuyoURG::m_sensorPose" ref="a8b7b2a11b7fb90beac8b704fbb2d6391" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classmrpt_1_1poses_1_1_c_pose3_d.html">poses::CPose3D</a> <a class="el" href="classmrpt_1_1hwdrivers_1_1_c_hokuyo_u_r_g.html#a8b7b2a11b7fb90beac8b704fbb2d6391">mrpt::hwdrivers::CHokuyoURG::m_sensorPose</a><code> [private]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>The sensor 6D pose: </p>

<p>Definition at line <a class="el" href="_c_hokuyo_u_r_g_8h_source.html#l00094">94</a> of file <a class="el" href="_c_hokuyo_u_r_g_8h_source.html">CHokuyoURG.h</a>.</p>

</div>
</div>
<a class="anchor" id="ab3e8a003783acd03bfd64716640fd67c"></a><!-- doxytag: member="mrpt::hwdrivers::CHokuyoURG::m_state" ref="ab3e8a003783acd03bfd64716640fd67c" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classmrpt_1_1hwdrivers_1_1_c_generic_sensor.html#a44262a8f1ffcc87871fbd717d3fc2cab">TSensorState</a> <a class="el" href="classmrpt_1_1hwdrivers_1_1_c_generic_sensor.html#ab3e8a003783acd03bfd64716640fd67c">mrpt::hwdrivers::CGenericSensor::m_state</a><code> [protected, inherited]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Definition at line <a class="el" href="_c_generic_sensor_8h_source.html#l00134">134</a> of file <a class="el" href="_c_generic_sensor_8h_source.html">CGenericSensor.h</a>.</p>

</div>
</div>
<a class="anchor" id="acc3dd38ff320d03d0a2bce7e44e8a2d9"></a><!-- doxytag: member="mrpt::hwdrivers::CHokuyoURG::m_stream" ref="acc3dd38ff320d03d0a2bce7e44e8a2d9" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classmrpt_1_1utils_1_1_c_stream.html">utils::CStream</a>* <a class="el" href="classmrpt_1_1hwdrivers_1_1_c2_d_range_finder_abstract.html#acc3dd38ff320d03d0a2bce7e44e8a2d9">mrpt::hwdrivers::C2DRangeFinderAbstract::m_stream</a><code> [protected, inherited]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>The I/O channel (will be NULL if not bound). </p>

<p>Definition at line <a class="el" href="_c2_d_range_finder_abstract_8h_source.html#l00081">81</a> of file <a class="el" href="_c2_d_range_finder_abstract_8h_source.html">C2DRangeFinderAbstract.h</a>.</p>

</div>
</div>
<a class="anchor" id="a022ea533d54b0220d09e0e23c3c770e6"></a><!-- doxytag: member="mrpt::hwdrivers::CHokuyoURG::m_timeStartTT" ref="a022ea533d54b0220d09e0e23c3c770e6" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="group__time__date.html#ga42674286d8d56afea013b6329bb7327a">mrpt::system::TTimeStamp</a> <a class="el" href="classmrpt_1_1hwdrivers_1_1_c_hokuyo_u_r_g.html#a022ea533d54b0220d09e0e23c3c770e6">mrpt::hwdrivers::CHokuyoURG::m_timeStartTT</a><code> [protected]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Definition at line <a class="el" href="_c_hokuyo_u_r_g_8h_source.html#l00232">232</a> of file <a class="el" href="_c_hokuyo_u_r_g_8h_source.html">CHokuyoURG.h</a>.</p>

</div>
</div>
<a class="anchor" id="a2a25597fdbdca0945086a3a5ad8c0ed9"></a><!-- doxytag: member="mrpt::hwdrivers::CHokuyoURG::m_timeStartUI" ref="a2a25597fdbdca0945086a3a5ad8c0ed9" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">uint32_t <a class="el" href="classmrpt_1_1hwdrivers_1_1_c_hokuyo_u_r_g.html#a2a25597fdbdca0945086a3a5ad8c0ed9">mrpt::hwdrivers::CHokuyoURG::m_timeStartUI</a><code> [protected]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Time of the first data packet, for synchronization purposes. </p>

<p>Definition at line <a class="el" href="_c_hokuyo_u_r_g_8h_source.html#l00231">231</a> of file <a class="el" href="_c_hokuyo_u_r_g_8h_source.html">CHokuyoURG.h</a>.</p>

</div>
</div>
<a class="anchor" id="a5f8bf1fb50422e723ad1962fc33c14ba"></a><!-- doxytag: member="mrpt::hwdrivers::CHokuyoURG::m_verbose" ref="a5f8bf1fb50422e723ad1962fc33c14ba" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">bool <a class="el" href="classmrpt_1_1hwdrivers_1_1_c_hokuyo_u_r_g.html#a5f8bf1fb50422e723ad1962fc33c14ba">mrpt::hwdrivers::CHokuyoURG::m_verbose</a><code> [private]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Definition at line <a class="el" href="_c_hokuyo_u_r_g_8h_source.html#l00099">99</a> of file <a class="el" href="_c_hokuyo_u_r_g_8h_source.html">CHokuyoURG.h</a>.</p>

</div>
</div>
</div>
<br><hr><br> <table border="0" width="100%"> <tr> <td> Page generated by <a href="http://www.doxygen.org" target="_blank">Doxygen 1.7.5</a> for MRPT 0.9.5 SVN: at Sun Sep 25 17:20:18 UTC 2011</td><td></td> <td width="100"> </td> <td width="150">  </td></tr> </table>  </body></html>