Sophie

Sophie

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

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::CLMS100Eth 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_l_m_s100_eth.html">CLMS100Eth</a>      </li>
    </ul>
  </div>
</div>
<div class="header">
  <div class="summary">
<a href="#pub-methods">Public Member Functions</a> &#124;
<a href="#pro-methods">Protected Member Functions</a> &#124;
<a href="#pri-types">Private Types</a> &#124;
<a href="#pri-methods">Private Member Functions</a> &#124;
<a href="#pri-static-methods">Static Private Member Functions</a> &#124;
<a href="#pri-attribs">Private Attributes</a>  </div>
  <div class="headertitle">
<div class="title">mrpt::hwdrivers::CLMS100Eth 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::CLMS100Eth" --><!-- 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 communication protocol for interfacing a SICK LMS100 laser scanners through an ethernet controller. </p>
<p>This class does not need to be bind, i.e. you do not need to call <a class="el" href="classmrpt_1_1hwdrivers_1_1_c2_d_range_finder_abstract.html#a9b619b52c015385fc16bfd213d39fd1c" title="Binds the object to a given I/O channel.">C2DRangeFinderAbstract::bindIO</a>. Connection is established when user call the <a class="el" href="classmrpt_1_1hwdrivers_1_1_c_l_m_s100_eth.html#aee005b6d36e5a005c40b0edbc4b64663" title="This method must be called before trying to get a laser scan.">turnOn()</a> method. You can pass to the class's constructor the LMS100 's ip address and port. Device will be configured with the following parameters :</p>
<ul>
<li>Start Angle : -45 deg (imposed by hardware)</li>
<li>Stop Angle : +225 deg (imposed by hardware)</li>
<li>Apperture : 270 deg (imposed by hardware)</li>
<li>Angular resolution : 0.25 deg</li>
<li>Scan frequency : 25 Hz</li>
<li>Max Range : 20m (imposed by hardware).</li>
</ul>
<p><b>Important note:</b> SICK LMS 1xx devices have two levels of configuration. In its present implementation, this class only handles one of them, so <b>before using this class</b>, you must "pre-configure" your scanner with the SICK's software "SOAP" (this software ships with the device), and set the framerate with this software. Of course, you have to pre-configure the device just once, then save that configuration in its flash memory.</p>
<p>To get a laser scan you must proceed like that : </p>
<div class="fragment"><pre class="fragment">     CLMS200Eth laser(<span class="keywordtype">string</span>(<span class="stringliteral">&quot;192.168.0.10&quot;</span>), 1234);
     laser.turnOn();
     <span class="keywordtype">bool</span> isOutObs, hardwareError;
     CObservation2DRangeScan outObs;
     laser.doProcessSimple(isOutObs, outObs, hardwareError);
</pre></div><p>The sensor pose on the vehicle could be loaded from an ini configuration file with : </p>
<div class="fragment"><pre class="fragment">  PARAMETERS IN THE <span class="stringliteral">&quot;.INI&quot;</span>-LIKE CONFIGURATION STRINGS:
 -------------------------------------------------------
   [supplied_section_name]
          ip_address = 192.168.0.50 ;a <span class="keywordtype">string</span> wich is the SICK<span class="stringliteral">&#39;s ip adress (default is 192.168.0.1)</span>
<span class="stringliteral">   TCP_port = 1234                      ; an integer value : the tcp ip port on wich the sick is listening (default is 2111).</span>
<span class="stringliteral">   pose_x=0.21  ; Laser range scaner 3D position in the robot (meters)</span>
<span class="stringliteral">   pose_y=0</span>
<span class="stringliteral">   pose_z=0.34</span>
<span class="stringliteral">   pose_yaw=0   ; Angles in degrees</span>
<span class="stringliteral">   pose_pitch=0</span>
<span class="stringliteral">   pose_roll=0</span>
</pre></div><p> This class doesn't configure the SICK LMS sensor, it is recomended to configure the sensor via the the SICK software : SOPAS. </p>
<dl class="note"><dt><b>Note:</b></dt><dd>This class was contributed by Adrien Barral - Robopec (France) </dd></dl>
</div>
<p><code>#include &lt;<a class="el" href="_c_l_m_s100eth_8h_source.html">mrpt/hwdrivers/CLMS100eth.h</a>&gt;</code></p>
<div class="dynheader">
Inheritance diagram for mrpt::hwdrivers::CLMS100Eth:</div>
<div class="dyncontent">
<div class="center"><img src="classmrpt_1_1hwdrivers_1_1_c_l_m_s100_eth__inherit__graph.png" border="0" usemap="#mrpt_1_1hwdrivers_1_1_c_l_m_s100_eth_inherit__map" alt="Inheritance graph"/></div>
<map name="mrpt_1_1hwdrivers_1_1_c_l_m_s100_eth_inherit__map" id="mrpt_1_1hwdrivers_1_1_c_l_m_s100_eth_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_l_m_s100_eth-members.html">List of all members.</a></p>
<table class="memberdecls">
<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_l_m_s100_eth.html#a196a5aa3cd57df46476b07d046e35089">CLMS100Eth</a> (<a class="el" href="classstd_1_1string.html">string</a> _ip=<a class="el" href="classstd_1_1string.html">string</a>(&quot;192.168.0.1&quot;), unsigned int _port=2111)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Constructor.  <a href="#a196a5aa3cd57df46476b07d046e35089"></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_l_m_s100_eth.html#ad6da9a70816d24430a27d192266cdda7">~CLMS100Eth</a> ()</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Destructor.  <a href="#ad6da9a70816d24430a27d192266cdda7"></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_l_m_s100_eth.html#afc106e971d56fd6eef68272d1f91c7d0">doProcessSimple</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">This function acquire a laser scan from the device.  <a href="#afc106e971d56fd6eef68272d1f91c7d0"></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_l_m_s100_eth.html#aee005b6d36e5a005c40b0edbc4b64663">turnOn</a> ()</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">This method must be called before trying to get a laser scan.  <a href="#aee005b6d36e5a005c40b0edbc4b64663"></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_l_m_s100_eth.html#a324a0939d8df9d69246130f52255cab5">turnOff</a> ()</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">This method could be called manually to stop communication with the device.  <a href="#a324a0939d8df9d69246130f52255cab5"></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_l_m_s100_eth.html#ada039febe180653d46274ff389a84cc6">setSensorPose</a> (<a class="el" href="classmrpt_1_1poses_1_1_c_pose3_d.html">CPose3D</a> &amp;_pose)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">A method to set the sensor pose on the robot.  <a href="#ada039febe180653d46274ff389a84cc6"></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_l_m_s100_eth.html#aa75b469c4121c09e1fc8327d293d5331">doProcess</a> ()</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">This method should be called periodically.  <a href="#aa75b469c4121c09e1fc8327d293d5331"></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_l_m_s100_eth.html#ae57ec60cca05cb6c21475821a160297a">initialize</a> ()</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Initialize the sensor according to the parameters previously read in the configuration file.  <a href="#ae57ec60cca05cb6c21475821a160297a"></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">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1hwdrivers_1_1_c_l_m_s100_eth.html#a6f86a890bd4cf3d58810116f96af2b22">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">Load sensor pose on the robot, or keep the default sensor pose.  <a href="#a6f86a890bd4cf3d58810116f96af2b22"></a><br/></td></tr>
<tr><td colspan="2"><h2><a name="pri-types"></a>
Private 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="pri-methods"></a>
Private Member Functions</h2></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_l_m_s100_eth.html#a34ec47394f3de6d7a355a822f4bf0328">generateCmd</a> (const char *cmd)</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_l_m_s100_eth.html#ac16bf3cdaf4faf77b71af0629fa686f7">checkIsConnected</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_l_m_s100_eth.html#a987dde60134d861f00f0be9a9ca48ba6">decodeLogIn</a> (char *msg)</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_l_m_s100_eth.html#a1550582154ad92bae28a80467fb9c6a5">decodeScanCfg</a> (<a class="el" href="classstd_1_1istringstream.html">istringstream</a> &amp;stream)</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_l_m_s100_eth.html#aaeed51140d5bbb6563f583c04df559f1">decodeScanDataCfg</a> (<a class="el" href="classstd_1_1istringstream.html">istringstream</a> &amp;stream)</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_l_m_s100_eth.html#a21e44a89bcf928653d6537c8f3d9fccf">decodeScan</a> (char *buf, <a class="el" href="classmrpt_1_1slam_1_1_c_observation2_d_range_scan.html">CObservation2DRangeScan</a> &amp;outObservation)</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_l_m_s100_eth.html#a4f93e99d730c191f89bec675bef22e9c">sendCommand</a> (const char *cmd)</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_l_m_s100_eth.html#a6ad63503c0b0b1ca0c522a71b76c0609">roughPrint</a> (char *msg)</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_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">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#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 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="pri-static-methods"></a>
Static Private 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="pri-attribs"></a>
Private Attributes</h2></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="classstd_1_1string.html">string</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1hwdrivers_1_1_c_l_m_s100_eth.html#a1717cb5e0c909b11bcd41ff0c6fb41a8">m_ip</a></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_l_m_s100_eth.html#a443afa3f96df0f0ac6bb5f9dd05fb544">m_port</a></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="classmrpt_1_1utils_1_1_c_client_t_c_p_socket.html">CClientTCPSocket</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1hwdrivers_1_1_c_l_m_s100_eth.html#a2bc92d8b6defbd6f887c346981c683e7">m_client</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_l_m_s100_eth.html#abdec5f0e1fde5cc07c3162e1630568bf">m_turnedOn</a></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="classstd_1_1string.html">string</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1hwdrivers_1_1_c_l_m_s100_eth.html#a21a216cd0c1ed056f46e78e5bdd20429">m_cmd</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_l_m_s100_eth.html#a6abc8a99fd98e79fa487386c7b62c327">m_connected</a></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_l_m_s100_eth.html#afd9c06c261d4d2723585ae330b2b1343">m_scanFrequency</a></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_l_m_s100_eth.html#ae8a9fa19a02c9eb664d32c0957883205">m_angleResolution</a></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_l_m_s100_eth.html#afc8ec3a34fc98551155be682f9eb4aea">m_startAngle</a></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_l_m_s100_eth.html#aa188926c3abe4a35a62b42d534af9ed2">m_stopAngle</a></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="classmrpt_1_1poses_1_1_c_pose3_d.html">CPose3D</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1hwdrivers_1_1_c_l_m_s100_eth.html#a63090bd0bfd3b71109ba5aeabb8ffd5b">m_sensorPose</a></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_l_m_s100_eth.html#aa4af1603a5007a3534d40382b67eb9bf">m_maxRange</a></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_l_m_s100_eth.html#a1aeb24e61703c18696bca5b73f01bf11">m_beamApperture</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>
</table>
<hr/><h2>Member Typedef Documentation</h2>
<a class="anchor" id="af237beee1de7f3e5733e305921695b30"></a><!-- doxytag: member="mrpt::hwdrivers::CLMS100Eth::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::CLMS100Eth::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::CLMS100Eth::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="a196a5aa3cd57df46476b07d046e35089"></a><!-- doxytag: member="mrpt::hwdrivers::CLMS100Eth::CLMS100Eth" ref="a196a5aa3cd57df46476b07d046e35089" args="(string _ip=string(&quot;192.168.0.1&quot;), unsigned int _port=2111)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">mrpt::hwdrivers::CLMS100Eth::CLMS100Eth </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="classstd_1_1string.html">string</a>&#160;</td>
          <td class="paramname"><em>_ip</em> = <code><a class="el" href="classstd_1_1string.html">string</a>(&quot;192.168.0.1&quot;)</code>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">unsigned int&#160;</td>
          <td class="paramname"><em>_port</em> = <code>2111</code>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Constructor. </p>
<p>Note that there is default arguments, here you can customize IP Adress and TCP Port of your device. </p>

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

<p>Destructor. </p>
<p>Close communcation with the device, and free memory. </p>

</div>
</div>
<hr/><h2>Member Function Documentation</h2>
<a class="anchor" id="a03bf6784838d6418f4fe485933a1ab0c"></a><!-- doxytag: member="mrpt::hwdrivers::CLMS100Eth::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::CLMS100Eth::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="a9b619b52c015385fc16bfd213d39fd1c"></a><!-- doxytag: member="mrpt::hwdrivers::CLMS100Eth::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="ac16bf3cdaf4faf77b71af0629fa686f7"></a><!-- doxytag: member="mrpt::hwdrivers::CLMS100Eth::checkIsConnected" ref="ac16bf3cdaf4faf77b71af0629fa686f7" args="()" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">bool mrpt::hwdrivers::CLMS100Eth::checkIsConnected </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td><code> [private]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

</div>
</div>
<a class="anchor" id="ab652d017225fff3050a607f4461b0484"></a><!-- doxytag: member="mrpt::hwdrivers::CLMS100Eth::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::CLMS100Eth::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="a987dde60134d861f00f0be9a9ca48ba6"></a><!-- doxytag: member="mrpt::hwdrivers::CLMS100Eth::decodeLogIn" ref="a987dde60134d861f00f0be9a9ca48ba6" args="(char *msg)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">bool mrpt::hwdrivers::CLMS100Eth::decodeLogIn </td>
          <td>(</td>
          <td class="paramtype">char *&#160;</td>
          <td class="paramname"><em>msg</em></td><td>)</td>
          <td><code> [private]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

</div>
</div>
<a class="anchor" id="a21e44a89bcf928653d6537c8f3d9fccf"></a><!-- doxytag: member="mrpt::hwdrivers::CLMS100Eth::decodeScan" ref="a21e44a89bcf928653d6537c8f3d9fccf" args="(char *buf, CObservation2DRangeScan &amp;outObservation)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">bool mrpt::hwdrivers::CLMS100Eth::decodeScan </td>
          <td>(</td>
          <td class="paramtype">char *&#160;</td>
          <td class="paramname"><em>buf</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>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td><code> [private]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

</div>
</div>
<a class="anchor" id="a1550582154ad92bae28a80467fb9c6a5"></a><!-- doxytag: member="mrpt::hwdrivers::CLMS100Eth::decodeScanCfg" ref="a1550582154ad92bae28a80467fb9c6a5" args="(istringstream &amp;stream)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">bool mrpt::hwdrivers::CLMS100Eth::decodeScanCfg </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="classstd_1_1istringstream.html">istringstream</a> &amp;&#160;</td>
          <td class="paramname"><em>stream</em></td><td>)</td>
          <td><code> [private]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

</div>
</div>
<a class="anchor" id="aaeed51140d5bbb6563f583c04df559f1"></a><!-- doxytag: member="mrpt::hwdrivers::CLMS100Eth::decodeScanDataCfg" ref="aaeed51140d5bbb6563f583c04df559f1" args="(istringstream &amp;stream)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">bool mrpt::hwdrivers::CLMS100Eth::decodeScanDataCfg </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="classstd_1_1istringstream.html">istringstream</a> &amp;&#160;</td>
          <td class="paramname"><em>stream</em></td><td>)</td>
          <td><code> [private]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

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

<p>This method should be called periodically. </p>
<p>Period depend on the process_rate in the configuration file. </p>

<p>Reimplemented from <a class="el" href="classmrpt_1_1hwdrivers_1_1_c2_d_range_finder_abstract.html#a9ab22161d6d802bcd5c8b609fb8a6b54">mrpt::hwdrivers::C2DRangeFinderAbstract</a>.</p>

</div>
</div>
<a class="anchor" id="afc106e971d56fd6eef68272d1f91c7d0"></a><!-- doxytag: member="mrpt::hwdrivers::CLMS100Eth::doProcessSimple" ref="afc106e971d56fd6eef68272d1f91c7d0" 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::CLMS100Eth::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">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>This function acquire a laser scan from the device. </p>
<p>If an error occured, hardwareError will be set to true. The new laser scan will be stored in the outObservation argument.</p>
<dl><dt><b>Exceptions:</b></dt><dd>
  <table class="exception">
    <tr><td class="paramname">This</td><td>method throw exception if the frame received from the LMS 100 contain the following bad parameters : * Status is not OK * Data in the scan aren't DIST1 (may be RSSIx or DIST2). </td></tr>
  </table>
  </dd>
</dl>

<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="a6a5778b1c951524c68f83d3735e60b6f"></a><!-- doxytag: member="mrpt::hwdrivers::CLMS100Eth::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::CLMS100Eth::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="a34ec47394f3de6d7a355a822f4bf0328"></a><!-- doxytag: member="mrpt::hwdrivers::CLMS100Eth::generateCmd" ref="a34ec47394f3de6d7a355a822f4bf0328" args="(const char *cmd)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void mrpt::hwdrivers::CLMS100Eth::generateCmd </td>
          <td>(</td>
          <td class="paramtype">const char *&#160;</td>
          <td class="paramname"><em>cmd</em></td><td>)</td>
          <td><code> [private]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

</div>
</div>
<a class="anchor" id="a9d5aecec9f302feede271c9f1425a323"></a><!-- doxytag: member="mrpt::hwdrivers::CLMS100Eth::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::CLMS100Eth::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::CLMS100Eth::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::CLMS100Eth::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::CLMS100Eth::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::CLMS100Eth::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="a0bd667caedc6a313d96c232bf75ba577"></a><!-- doxytag: member="mrpt::hwdrivers::CLMS100Eth::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="ae57ec60cca05cb6c21475821a160297a"></a><!-- doxytag: member="mrpt::hwdrivers::CLMS100Eth::initialize" ref="ae57ec60cca05cb6c21475821a160297a" args="()" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void mrpt::hwdrivers::CLMS100Eth::initialize </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td><code> [virtual]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Initialize the sensor according to the parameters previously read in the configuration file. </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::CLMS100Eth::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="a6f86a890bd4cf3d58810116f96af2b22"></a><!-- doxytag: member="mrpt::hwdrivers::CLMS100Eth::loadConfig_sensorSpecific" ref="a6f86a890bd4cf3d58810116f96af2b22" 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::CLMS100Eth::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>Load sensor pose on the robot, or keep the default sensor pose. </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::CLMS100Eth::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::CLMS100Eth::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="a640e1b953865c3d2e881bbd2c1a81428"></a><!-- doxytag: member="mrpt::hwdrivers::CLMS100Eth::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="a6ad63503c0b0b1ca0c522a71b76c0609"></a><!-- doxytag: member="mrpt::hwdrivers::CLMS100Eth::roughPrint" ref="a6ad63503c0b0b1ca0c522a71b76c0609" args="(char *msg)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void mrpt::hwdrivers::CLMS100Eth::roughPrint </td>
          <td>(</td>
          <td class="paramtype">char *&#160;</td>
          <td class="paramname"><em>msg</em></td><td>)</td>
          <td><code> [private]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

</div>
</div>
<a class="anchor" id="a4f93e99d730c191f89bec675bef22e9c"></a><!-- doxytag: member="mrpt::hwdrivers::CLMS100Eth::sendCommand" ref="a4f93e99d730c191f89bec675bef22e9c" args="(const char *cmd)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void mrpt::hwdrivers::CLMS100Eth::sendCommand </td>
          <td>(</td>
          <td class="paramtype">const char *&#160;</td>
          <td class="paramname"><em>cmd</em></td><td>)</td>
          <td><code> [private]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

</div>
</div>
<a class="anchor" id="aff4b208b901763557196b9326901c582"></a><!-- doxytag: member="mrpt::hwdrivers::CLMS100Eth::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::CLMS100Eth::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="afa55ff06dbf360c8f631d371d6ebe35d"></a><!-- doxytag: member="mrpt::hwdrivers::CLMS100Eth::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="a044c1340c4b90957250f63fa89189036"></a><!-- doxytag: member="mrpt::hwdrivers::CLMS100Eth::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="ada039febe180653d46274ff389a84cc6"></a><!-- doxytag: member="mrpt::hwdrivers::CLMS100Eth::setSensorPose" ref="ada039febe180653d46274ff389a84cc6" args="(CPose3D &amp;_pose)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void mrpt::hwdrivers::CLMS100Eth::setSensorPose </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="classmrpt_1_1poses_1_1_c_pose3_d.html">CPose3D</a> &amp;&#160;</td>
          <td class="paramname"><em>_pose</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>A method to set the sensor pose on the robot. </p>

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

<p>This method could be called manually to stop communication with the device. </p>
<p>Method is also called by destructor. </p>

<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="aee005b6d36e5a005c40b0edbc4b64663"></a><!-- doxytag: member="mrpt::hwdrivers::CLMS100Eth::turnOn" ref="aee005b6d36e5a005c40b0edbc4b64663" args="()" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">bool mrpt::hwdrivers::CLMS100Eth::turnOn </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td><code> [virtual]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>This method must be called before trying to get a laser scan. </p>

<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="ae8a9fa19a02c9eb664d32c0957883205"></a><!-- doxytag: member="mrpt::hwdrivers::CLMS100Eth::m_angleResolution" ref="ae8a9fa19a02c9eb664d32c0957883205" 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_l_m_s100_eth.html#ae8a9fa19a02c9eb664d32c0957883205">mrpt::hwdrivers::CLMS100Eth::m_angleResolution</a><code> [private]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Definition at line <a class="el" href="_c_l_m_s100eth_8h_source.html#l00133">133</a> of file <a class="el" href="_c_l_m_s100eth_8h_source.html">CLMS100eth.h</a>.</p>

</div>
</div>
<a class="anchor" id="a1aeb24e61703c18696bca5b73f01bf11"></a><!-- doxytag: member="mrpt::hwdrivers::CLMS100Eth::m_beamApperture" ref="a1aeb24e61703c18696bca5b73f01bf11" 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_l_m_s100_eth.html#a1aeb24e61703c18696bca5b73f01bf11">mrpt::hwdrivers::CLMS100Eth::m_beamApperture</a><code> [private]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

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

</div>
</div>
<a class="anchor" id="a2bc92d8b6defbd6f887c346981c683e7"></a><!-- doxytag: member="mrpt::hwdrivers::CLMS100Eth::m_client" ref="a2bc92d8b6defbd6f887c346981c683e7" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classmrpt_1_1utils_1_1_c_client_t_c_p_socket.html">CClientTCPSocket</a> <a class="el" href="classmrpt_1_1hwdrivers_1_1_c_l_m_s100_eth.html#a2bc92d8b6defbd6f887c346981c683e7">mrpt::hwdrivers::CLMS100Eth::m_client</a><code> [private]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

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

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

<p>Definition at line <a class="el" href="_c_l_m_s100eth_8h_source.html#l00130">130</a> of file <a class="el" href="_c_l_m_s100eth_8h_source.html">CLMS100eth.h</a>.</p>

</div>
</div>
<a class="anchor" id="a6abc8a99fd98e79fa487386c7b62c327"></a><!-- doxytag: member="mrpt::hwdrivers::CLMS100Eth::m_connected" ref="a6abc8a99fd98e79fa487386c7b62c327" 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_l_m_s100_eth.html#a6abc8a99fd98e79fa487386c7b62c327">mrpt::hwdrivers::CLMS100Eth::m_connected</a><code> [private]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Definition at line <a class="el" href="_c_l_m_s100eth_8h_source.html#l00131">131</a> of file <a class="el" href="_c_l_m_s100eth_8h_source.html">CLMS100eth.h</a>.</p>

</div>
</div>
<a class="anchor" id="a7d153c5247b0180b6b9df5054d67b183"></a><!-- doxytag: member="mrpt::hwdrivers::CLMS100Eth::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::CLMS100Eth::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="a587daaab2cb302eb4cc72eb1396d5f21"></a><!-- doxytag: member="mrpt::hwdrivers::CLMS100Eth::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::CLMS100Eth::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="a1717cb5e0c909b11bcd41ff0c6fb41a8"></a><!-- doxytag: member="mrpt::hwdrivers::CLMS100Eth::m_ip" ref="a1717cb5e0c909b11bcd41ff0c6fb41a8" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classstd_1_1string.html">string</a> <a class="el" href="classmrpt_1_1hwdrivers_1_1_c_l_m_s100_eth.html#a1717cb5e0c909b11bcd41ff0c6fb41a8">mrpt::hwdrivers::CLMS100Eth::m_ip</a><code> [private]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

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

</div>
</div>
<a class="anchor" id="a6f35448579bd4d27cd4f4685b31a8cc0"></a><!-- doxytag: member="mrpt::hwdrivers::CLMS100Eth::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="aa4af1603a5007a3534d40382b67eb9bf"></a><!-- doxytag: member="mrpt::hwdrivers::CLMS100Eth::m_maxRange" ref="aa4af1603a5007a3534d40382b67eb9bf" 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_l_m_s100_eth.html#aa4af1603a5007a3534d40382b67eb9bf">mrpt::hwdrivers::CLMS100Eth::m_maxRange</a><code> [private]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Definition at line <a class="el" href="_c_l_m_s100eth_8h_source.html#l00137">137</a> of file <a class="el" href="_c_l_m_s100eth_8h_source.html">CLMS100eth.h</a>.</p>

</div>
</div>
<a class="anchor" id="a06fe84426b813b9c1966c12bb69e6ee6"></a><!-- doxytag: member="mrpt::hwdrivers::CLMS100Eth::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="a443afa3f96df0f0ac6bb5f9dd05fb544"></a><!-- doxytag: member="mrpt::hwdrivers::CLMS100Eth::m_port" ref="a443afa3f96df0f0ac6bb5f9dd05fb544" 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_l_m_s100_eth.html#a443afa3f96df0f0ac6bb5f9dd05fb544">mrpt::hwdrivers::CLMS100Eth::m_port</a><code> [private]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

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

</div>
</div>
<a class="anchor" id="a77094b791971e8f42b94de34f4adb0f7"></a><!-- doxytag: member="mrpt::hwdrivers::CLMS100Eth::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="afd9c06c261d4d2723585ae330b2b1343"></a><!-- doxytag: member="mrpt::hwdrivers::CLMS100Eth::m_scanFrequency" ref="afd9c06c261d4d2723585ae330b2b1343" 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_l_m_s100_eth.html#afd9c06c261d4d2723585ae330b2b1343">mrpt::hwdrivers::CLMS100Eth::m_scanFrequency</a><code> [private]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

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

</div>
</div>
<a class="anchor" id="accd4de8daeb5966c191fbc62a5d90355"></a><!-- doxytag: member="mrpt::hwdrivers::CLMS100Eth::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="a63090bd0bfd3b71109ba5aeabb8ffd5b"></a><!-- doxytag: member="mrpt::hwdrivers::CLMS100Eth::m_sensorPose" ref="a63090bd0bfd3b71109ba5aeabb8ffd5b" 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">CPose3D</a> <a class="el" href="classmrpt_1_1hwdrivers_1_1_c_l_m_s100_eth.html#a63090bd0bfd3b71109ba5aeabb8ffd5b">mrpt::hwdrivers::CLMS100Eth::m_sensorPose</a><code> [private]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Definition at line <a class="el" href="_c_l_m_s100eth_8h_source.html#l00136">136</a> of file <a class="el" href="_c_l_m_s100eth_8h_source.html">CLMS100eth.h</a>.</p>

</div>
</div>
<a class="anchor" id="afc8ec3a34fc98551155be682f9eb4aea"></a><!-- doxytag: member="mrpt::hwdrivers::CLMS100Eth::m_startAngle" ref="afc8ec3a34fc98551155be682f9eb4aea" 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_l_m_s100_eth.html#afc8ec3a34fc98551155be682f9eb4aea">mrpt::hwdrivers::CLMS100Eth::m_startAngle</a><code> [private]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

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

</div>
</div>
<a class="anchor" id="ab3e8a003783acd03bfd64716640fd67c"></a><!-- doxytag: member="mrpt::hwdrivers::CLMS100Eth::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="aa188926c3abe4a35a62b42d534af9ed2"></a><!-- doxytag: member="mrpt::hwdrivers::CLMS100Eth::m_stopAngle" ref="aa188926c3abe4a35a62b42d534af9ed2" 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_l_m_s100_eth.html#aa188926c3abe4a35a62b42d534af9ed2">mrpt::hwdrivers::CLMS100Eth::m_stopAngle</a><code> [private]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Definition at line <a class="el" href="_c_l_m_s100eth_8h_source.html#l00135">135</a> of file <a class="el" href="_c_l_m_s100eth_8h_source.html">CLMS100eth.h</a>.</p>

</div>
</div>
<a class="anchor" id="acc3dd38ff320d03d0a2bce7e44e8a2d9"></a><!-- doxytag: member="mrpt::hwdrivers::CLMS100Eth::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="abdec5f0e1fde5cc07c3162e1630568bf"></a><!-- doxytag: member="mrpt::hwdrivers::CLMS100Eth::m_turnedOn" ref="abdec5f0e1fde5cc07c3162e1630568bf" 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_l_m_s100_eth.html#abdec5f0e1fde5cc07c3162e1630568bf">mrpt::hwdrivers::CLMS100Eth::m_turnedOn</a><code> [private]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Definition at line <a class="el" href="_c_l_m_s100eth_8h_source.html#l00129">129</a> of file <a class="el" href="_c_l_m_s100eth_8h_source.html">CLMS100eth.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>