Sophie

Sophie

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

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::CSickLaserSerial 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_sick_laser_serial.html">CSickLaserSerial</a>      </li>
    </ul>
  </div>
</div>
<div class="header">
  <div class="summary">
<a href="#pub-types">Public Types</a> &#124;
<a href="#pub-methods">Public Member Functions</a> &#124;
<a href="#pub-static-methods">Static Public Member Functions</a> &#124;
<a href="#pro-methods">Protected Member Functions</a> &#124;
<a href="#pro-attribs">Protected Attributes</a> &#124;
<a href="#pri-methods">Private Member Functions</a> &#124;
<a href="#pri-attribs">Private Attributes</a> &#124;
<a href="#pri-static-attribs">Static Private Attributes</a>  </div>
  <div class="headertitle">
<div class="title">mrpt::hwdrivers::CSickLaserSerial 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::CSickLaserSerial" --><!-- 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 LMS 2XX laser scanners through a standard RS232 serial port (or a USB2SERIAL converter). </p>
<p>The serial port is opened upon the first call to "doProcess" or "initialize", so you must call "loadConfig" before this, or manually call "setSerialPort". Another alternative is to call the base class method <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>, but the "setSerialPort" interface is probably much simpler to use.</p>
<p>For an example of usage see the example in "samples/SICK_laser_serial_test". See also the example configuration file for rawlog-grabber in "share/mrpt/config_files/rawlog-grabber".</p>
<div class="fragment"><pre class="fragment">  PARAMETERS IN THE <span class="stringliteral">&quot;.INI&quot;</span>-LIKE CONFIGURATION STRINGS:
 -------------------------------------------------------
   [supplied_section_name]
   COM_port_WIN = COM1   <span class="comment">// Serial port to connect to</span>
   COM_port_LIN = ttyS0

   COM_baudRate = 38400 <span class="comment">// Possible values: 9600 (default), 38400, 5000000</span>
   mm_mode      = 1/0   <span class="comment">// 1: millimeter mode, 0:centimeter mode (Default=0)</span>
   FOV          = 180   <span class="comment">// Field of view: 100 or 180 degrees (Default=180)</span>
   resolution   =  50   <span class="comment">// Scanning resolution, in units of 1/100 degree. Valid values: 25,50,100 (Default=50)</span>


   pose_x=0.21  <span class="comment">// Laser range scaner 3D position in the robot (meters)</span>
   pose_y=0
   pose_z=0.34
   pose_yaw=0   <span class="comment">// Angles in degrees</span>
   pose_pitch=0
   pose_roll=0
</pre></div><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" title="This is the base, abstract class for &quot;software drivers&quot; interfaces to 2D scanners (laser range finder...">C2DRangeFinderAbstract</a> </dd></dl>
</div>
<p><code>#include &lt;<a class="el" href="_c_sick_laser_serial_8h_source.html">mrpt/hwdrivers/CSickLaserSerial.h</a>&gt;</code></p>
<div class="dynheader">
Inheritance diagram for mrpt::hwdrivers::CSickLaserSerial:</div>
<div class="dyncontent">
<div class="center"><img src="classmrpt_1_1hwdrivers_1_1_c_sick_laser_serial__inherit__graph.png" border="0" usemap="#mrpt_1_1hwdrivers_1_1_c_sick_laser_serial_inherit__map" alt="Inheritance graph"/></div>
<map name="mrpt_1_1hwdrivers_1_1_c_sick_laser_serial_inherit__map" id="mrpt_1_1hwdrivers_1_1_c_sick_laser_serial_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_sick_laser_serial-members.html">List of all members.</a></p>
<table class="memberdecls">
<tr><td colspan="2"><h2><a name="pub-types"></a>
Public Types</h2></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1hwdrivers_1_1_c_generic_sensor.html#a44262a8f1ffcc87871fbd717d3fc2cab">TSensorState</a> { <a class="el" href="classmrpt_1_1hwdrivers_1_1_c_generic_sensor.html#a44262a8f1ffcc87871fbd717d3fc2caba0e2689514dd41d48164e021013549a44">ssInitializing</a> =  0, 
<a class="el" href="classmrpt_1_1hwdrivers_1_1_c_generic_sensor.html#a44262a8f1ffcc87871fbd717d3fc2cabaacc62e94572e3cd3b4b08caad173a489">ssWorking</a>, 
<a class="el" href="classmrpt_1_1hwdrivers_1_1_c_generic_sensor.html#a44262a8f1ffcc87871fbd717d3fc2caba8f76c8318736df85b6805ca460f8d262">ssError</a>
 }</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">The current state of the sensor.  <a href="classmrpt_1_1hwdrivers_1_1_c_generic_sensor.html#a44262a8f1ffcc87871fbd717d3fc2cab">More...</a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">typedef <a class="el" href="classstd_1_1multimap.html">std::multimap</a><br class="typebreak"/>
&lt; <a class="el" href="group__time__date.html#ga42674286d8d56afea013b6329bb7327a">mrpt::system::TTimeStamp</a>, <br class="typebreak"/>
<a class="el" href="structmrpt_1_1utils_1_1_c_serializable_ptr.html">mrpt::utils::CSerializablePtr</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1hwdrivers_1_1_c_generic_sensor.html#af237beee1de7f3e5733e305921695b30">TListObservations</a></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">typedef std::pair<br class="typebreak"/>
&lt; <a class="el" href="group__time__date.html#ga42674286d8d56afea013b6329bb7327a">mrpt::system::TTimeStamp</a>, <br class="typebreak"/>
<a class="el" href="structmrpt_1_1utils_1_1_c_serializable_ptr.html">mrpt::utils::CSerializablePtr</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1hwdrivers_1_1_c_generic_sensor.html#a78712e0c40c510978fb8589774056ab3">TListObsPair</a></td></tr>
<tr><td colspan="2"><h2><a name="pub-methods"></a>
Public Member Functions</h2></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1hwdrivers_1_1_c_sick_laser_serial.html#aa6abac114a5821aabbad166d0bace675">CSickLaserSerial</a> ()</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Constructor.  <a href="#aa6abac114a5821aabbad166d0bace675"></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_sick_laser_serial.html#aa958bc2c5cacdae148c1120ca60b47ad">~CSickLaserSerial</a> ()</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Destructor.  <a href="#aa958bc2c5cacdae148c1120ca60b47ad"></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_sick_laser_serial.html#a5983b8c6b4ed4ea54af0096d3aa261a6">setSerialPort</a> (const <a class="el" href="classstd_1_1string.html">std::string</a> &amp;port)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Changes the serial port to connect to (call prior to 'doProcess'), for example "COM1" or "ttyS0".  <a href="#a5983b8c6b4ed4ea54af0096d3aa261a6"></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_sick_laser_serial.html#a4419de690af513782a3c22174426e916">getSerialPort</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_sick_laser_serial.html#a2825fb1dc6b654bf5b92837493bdf967">setBaudRate</a> (int baud)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Changes the serial port baud rate (call prior to 'doProcess'); valid values are 9600,38400 and 500000.  <a href="#a2825fb1dc6b654bf5b92837493bdf967"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1hwdrivers_1_1_c_sick_laser_serial.html#a313d6933288717ec0645fb98831a90ea">getBaudRate</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_sick_laser_serial.html#a7dcc9c07fd4866677fde9a0904fcb153">setMillimeterMode</a> (bool mm_mode=true)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Enables/Disables the millimeter mode, with a greater accuracy but a shorter range (default=false) (call prior to 'doProcess') This is not needed if the configuration is loaded with "loadConfig".  <a href="#a7dcc9c07fd4866677fde9a0904fcb153"></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_sick_laser_serial.html#a269cdcf7dc576930714791374ac8a7fc">setScanFOV</a> (int fov_degrees)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Set the scanning field of view - possible values are 100 or 180 (default) (call prior to 'doProcess') This is not needed if the configuration is loaded with "loadConfig".  <a href="#a269cdcf7dc576930714791374ac8a7fc"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1hwdrivers_1_1_c_sick_laser_serial.html#aa7f4b9db0fd2b355071c2958d698fc59">getScanFOV</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_sick_laser_serial.html#a295f896117842895b47fe9daf10b6072">setScanResolution</a> (int res_1_100th_degree)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Set the scanning resolution, in units of 1/100 degree - Possible values are 25, 50 and 100, for 0.25, 0.5 (default) and 1 deg.  <a href="#a295f896117842895b47fe9daf10b6072"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1hwdrivers_1_1_c_sick_laser_serial.html#a87c607f2d156ac45504ea812809e0b00">getScanResolution</a> () const </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_sick_laser_serial.html#aeaf315d986bd7363f2630af80b49eb99">getCurrentConnectTry</a> () const </td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">If performing several tries in ::initialize(), this is the current try loop number.  <a href="#aeaf315d986bd7363f2630af80b49eb99"></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_sick_laser_serial.html#a1e86e2054643700cae84c80c701098cf">doProcessSimple</a> (bool &amp;outThereIsObservation, <a class="el" href="classmrpt_1_1slam_1_1_c_observation2_d_range_scan.html">mrpt::slam::CObservation2DRangeScan</a> &amp;outObservation, bool &amp;hardwareError)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Specific laser scanner "software drivers" must process here new data from the I/O stream, and, if a whole scan has arrived, return it.  <a href="#a1e86e2054643700cae84c80c701098cf"></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_sick_laser_serial.html#a4074cd3efda8a33671353fd357d46f43">initialize</a> ()</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Set-up communication with the laser.  <a href="#a4074cd3efda8a33671353fd357d46f43"></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_sick_laser_serial.html#abf31dac14e8696603b0c43ba7c8c7840">turnOn</a> ()</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Enables the scanning mode (in this class this has no effect).  <a href="#abf31dac14e8696603b0c43ba7c8c7840"></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_sick_laser_serial.html#a86c1d41cbc68f14437de57d4931e9a5a">turnOff</a> ()</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Disables the scanning mode (in this class this has no effect).  <a href="#a86c1d41cbc68f14437de57d4931e9a5a"></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">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1hwdrivers_1_1_c2_d_range_finder_abstract.html#a9ab22161d6d802bcd5c8b609fb8a6b54">doProcess</a> ()</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Main method for a <a class="el" href="classmrpt_1_1hwdrivers_1_1_c_generic_sensor.html" title="A generic interface for a wide-variety of sensors designed to be used in the application RawLogGrabbe...">CGenericSensor</a>.  <a href="#a9ab22161d6d802bcd5c8b609fb8a6b54"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">virtual const <br class="typebreak"/>
<a class="el" href="structmrpt_1_1hwdrivers_1_1_t_sensor_class_id.html">mrpt::hwdrivers::TSensorClassId</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1hwdrivers_1_1_c_generic_sensor.html#afbc26c93b989d1a0cc94c0c88d47cdba">GetRuntimeClass</a> () const =0</td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="classmrpt_1_1hwdrivers_1_1_c_generic_sensor.html#a44262a8f1ffcc87871fbd717d3fc2cab">TSensorState</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1hwdrivers_1_1_c_generic_sensor.html#a0bd667caedc6a313d96c232bf75ba577">getState</a> () const </td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">The current state of the sensor.  <a href="#a0bd667caedc6a313d96c232bf75ba577"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">double&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1hwdrivers_1_1_c_generic_sensor.html#a8a05c268aef7ecada94a0014a2b294f7">getProcessRate</a> () const </td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="classstd_1_1string.html">std::string</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1hwdrivers_1_1_c_generic_sensor.html#af3cd061ca684e7ddf5949ed78fced7c9">getSensorLabel</a> () const </td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1hwdrivers_1_1_c_generic_sensor.html#a044c1340c4b90957250f63fa89189036">setSensorLabel</a> (const <a class="el" href="classstd_1_1string.html">std::string</a> &amp;sensorLabel)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1hwdrivers_1_1_c_generic_sensor.html#a6f34c5b79a128d1cb6b47eaa987ecb51">loadConfig</a> (const <a class="el" href="classmrpt_1_1utils_1_1_c_config_file_base.html">mrpt::utils::CConfigFileBase</a> &amp;configSource, const <a class="el" href="classstd_1_1string.html">std::string</a> &amp;section)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Loads the generic settings common to any sensor (See <a class="el" href="classmrpt_1_1hwdrivers_1_1_c_generic_sensor.html" title="A generic interface for a wide-variety of sensors designed to be used in the application RawLogGrabbe...">CGenericSensor</a>), then call to "loadConfig_sensorSpecific" </p>
<dl><dt><b>Exceptions:</b></dt><dd>
  <table class="exception">
    <tr><td class="paramname">This</td><td>method throws an exception with a descriptive message if some critical parameter is missing or has an invalid value. </td></tr>
  </table>
  </dd>
</dl>
 <a href="#a6f34c5b79a128d1cb6b47eaa987ecb51"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1hwdrivers_1_1_c_generic_sensor.html#a34b2a73792cbe176b28c932646bba0ed">getObservations</a> (<a class="el" href="classmrpt_1_1hwdrivers_1_1_c_generic_sensor.html#af237beee1de7f3e5733e305921695b30">TListObservations</a> &amp;lstObjects)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns a list of enqueued objects, emptying it (thread-safe).  <a href="#a34b2a73792cbe176b28c932646bba0ed"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1hwdrivers_1_1_c_generic_sensor.html#afa55ff06dbf360c8f631d371d6ebe35d">setPathForExternalImages</a> (const <a class="el" href="classstd_1_1string.html">std::string</a> &amp;directory)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Set the path where to save off-rawlog image files (will be ignored in those sensors where this is not applicable).  <a href="#afa55ff06dbf360c8f631d371d6ebe35d"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1hwdrivers_1_1_c_generic_sensor.html#aff4b208b901763557196b9326901c582">setExternalImageFormat</a> (const <a class="el" href="classstd_1_1string.html">std::string</a> &amp;ext)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Set the extension ("jpg","gif","png",...) that determines the format of images saved externally The default is "jpg".  <a href="#aff4b208b901763557196b9326901c582"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1hwdrivers_1_1_c_generic_sensor.html#aca05f7ee991ee112b5e9f8f289a9ee94">setExternalImageJPEGQuality</a> (const unsigned int quality)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">The quality of JPEG compression, when external images is enabled and the format is "jpg".  <a href="#aca05f7ee991ee112b5e9f8f289a9ee94"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">unsigned int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1hwdrivers_1_1_c_generic_sensor.html#a9d5aecec9f302feede271c9f1425a323">getExternalImageJPEGQuality</a> () const </td></tr>
<tr><td colspan="2"><h2><a name="pub-static-methods"></a>
Static Public Member Functions</h2></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">static void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1utils_1_1_c_debug_output_capable.html#ab78281b5d70d6e295a8527a10fea66de">printf_debug</a> (const char *frmt,...)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Sends a formated text to "debugOut" if not NULL, or to cout otherwise.  <a href="#ab78281b5d70d6e295a8527a10fea66de"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">static void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1hwdrivers_1_1_c_generic_sensor.html#a640e1b953865c3d2e881bbd2c1a81428">registerClass</a> (const <a class="el" href="structmrpt_1_1hwdrivers_1_1_t_sensor_class_id.html">TSensorClassId</a> *pNewClass)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Register a class into the internal list of "CGenericSensor" descendents.  <a href="#a640e1b953865c3d2e881bbd2c1a81428"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">static <a class="el" href="classmrpt_1_1hwdrivers_1_1_c_generic_sensor.html">CGenericSensor</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1hwdrivers_1_1_c_generic_sensor.html#ab652d017225fff3050a607f4461b0484">createSensor</a> (const <a class="el" href="classstd_1_1string.html">std::string</a> &amp;className)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Creates a sensor by a name of the class.  <a href="#ab652d017225fff3050a607f4461b0484"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">static <a class="el" href="namespacemrpt_1_1hwdrivers.html#a71aef48ea8dd23e43c706cc1a3ae0e74">CGenericSensorPtr</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1hwdrivers_1_1_c_generic_sensor.html#aff4e4450e420bf60a2487ab0cff91907">createSensorPtr</a> (const <a class="el" href="classstd_1_1string.html">std::string</a> &amp;className)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Just like createSensor, but returning a smart pointer to the newly created sensor object.  <a href="#aff4e4450e420bf60a2487ab0cff91907"></a><br/></td></tr>
<tr><td colspan="2"><h2><a name="pro-methods"></a>
Protected Member Functions</h2></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1hwdrivers_1_1_c_sick_laser_serial.html#aba6ad2f5e7ba1725b1ba2256312ac202">loadConfig_sensorSpecific</a> (const <a class="el" href="classmrpt_1_1utils_1_1_c_config_file_base.html">mrpt::utils::CConfigFileBase</a> &amp;configSource, const <a class="el" href="classstd_1_1string.html">std::string</a> &amp;iniSection)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Loads specific configuration for the device from a given source of configuration parameters, for example, an ".ini" file, loading from the section "[iniSection]" (see <a class="el" href="classmrpt_1_1utils_1_1_c_config_file_base.html" title="This class allows loading and storing values and vectors of different types from a configuration text...">utils::CConfigFileBase</a> and derived classes) See <a class="el" href="classmrpt_1_1hwdrivers_1_1_c_sick_laser_serial.html" title="This &quot;software driver&quot; implements the communication protocol for interfacing a SICK LMS 2XX laser sca...">hwdrivers::CSickLaserSerial</a> for the possible parameters.  <a href="#aba6ad2f5e7ba1725b1ba2256312ac202"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1hwdrivers_1_1_c2_d_range_finder_abstract.html#ae90d3b0b79158e678ede1537e0a9e900">loadExclusionAreas</a> (const <a class="el" href="classmrpt_1_1utils_1_1_c_config_file_base.html">mrpt::utils::CConfigFileBase</a> &amp;configSource, const <a class="el" href="classstd_1_1string.html">std::string</a> &amp;iniSection)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Should be call by derived classes at "loadConfig" (loads exclusion areas AND exclusion angles).  <a href="#ae90d3b0b79158e678ede1537e0a9e900"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1hwdrivers_1_1_c2_d_range_finder_abstract.html#a35e79cc5b9805cf868b3fdc909ec78eb">filterByExclusionAreas</a> (<a class="el" href="classmrpt_1_1slam_1_1_c_observation2_d_range_scan.html">CObservation2DRangeScan</a> &amp;obs) const </td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Mark as invalid those points which (x,y) coordinates fall within the exclusion polygons.  <a href="#a35e79cc5b9805cf868b3fdc909ec78eb"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1hwdrivers_1_1_c2_d_range_finder_abstract.html#a6a5778b1c951524c68f83d3735e60b6f">filterByExclusionAngles</a> (<a class="el" href="classmrpt_1_1slam_1_1_c_observation2_d_range_scan.html">CObservation2DRangeScan</a> &amp;obs) const </td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Mark as invalid those ranges in a set of forbiden angle ranges.  <a href="#a6a5778b1c951524c68f83d3735e60b6f"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1hwdrivers_1_1_c_generic_sensor.html#ad3a33098f257c379ee6bd1bca24e45f9">appendObservations</a> (const <a class="el" href="classstd_1_1vector.html">std::vector</a>&lt; <a class="el" href="structmrpt_1_1utils_1_1_c_serializable_ptr.html">mrpt::utils::CSerializablePtr</a> &gt; &amp;obj)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">This method must be called by derived classes to enqueue a new observation in the list to be returned by getObservations.  <a href="#ad3a33098f257c379ee6bd1bca24e45f9"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1hwdrivers_1_1_c_generic_sensor.html#a03bf6784838d6418f4fe485933a1ab0c">appendObservation</a> (const <a class="el" href="structmrpt_1_1utils_1_1_c_serializable_ptr.html">mrpt::utils::CSerializablePtr</a> &amp;obj)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Like <a class="el" href="classmrpt_1_1hwdrivers_1_1_c_generic_sensor.html#ad3a33098f257c379ee6bd1bca24e45f9" title="This method must be called by derived classes to enqueue a new observation in the list to be returned...">appendObservations()</a> but for just one observation.  <a href="#a03bf6784838d6418f4fe485933a1ab0c"></a><br/></td></tr>
<tr><td colspan="2"><h2><a name="pro-attribs"></a>
Protected Attributes</h2></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="classmrpt_1_1utils_1_1_c_stream.html">utils::CStream</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1hwdrivers_1_1_c2_d_range_finder_abstract.html#acc3dd38ff320d03d0a2bce7e44e8a2d9">m_stream</a></td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">The I/O channel (will be NULL if not bound).  <a href="#acc3dd38ff320d03d0a2bce7e44e8a2d9"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">size_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1hwdrivers_1_1_c_generic_sensor.html#a564a6c2bc7f1baaea9a9d90112a7b376">m_grab_decimation_counter</a></td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Used when "m_grab_decimation" is enabled.  <a href="#a564a6c2bc7f1baaea9a9d90112a7b376"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="classmrpt_1_1hwdrivers_1_1_c_generic_sensor.html#a44262a8f1ffcc87871fbd717d3fc2cab">TSensorState</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1hwdrivers_1_1_c_generic_sensor.html#ab3e8a003783acd03bfd64716640fd67c">m_state</a></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="classstd_1_1string.html">std::string</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1hwdrivers_1_1_c_generic_sensor.html#a06fe84426b813b9c1966c12bb69e6ee6">m_path_for_external_images</a></td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">The path where to save off-rawlog images: empty means save images embedded in the rawlog.  <a href="#a06fe84426b813b9c1966c12bb69e6ee6"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="classstd_1_1string.html">std::string</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1hwdrivers_1_1_c_generic_sensor.html#a7d153c5247b0180b6b9df5054d67b183">m_external_images_format</a></td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">The extension ("jpg","gif","png",...) that determines the format of images saved externally.  <a href="#a7d153c5247b0180b6b9df5054d67b183"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">unsigned int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1hwdrivers_1_1_c_generic_sensor.html#aeac331931fce4890793cd7f1b5f6eb3e">m_external_images_jpeg_quality</a></td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">For JPEG images, the quality (default=95%).  <a href="#aeac331931fce4890793cd7f1b5f6eb3e"></a><br/></td></tr>
<tr><td colspan="2"><div class="groupHeader">Common settings to any sensor, loaded in "loadConfig"</div></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">double&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1hwdrivers_1_1_c_generic_sensor.html#a77094b791971e8f42b94de34f4adb0f7">m_process_rate</a></td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">See <a class="el" href="classmrpt_1_1hwdrivers_1_1_c_generic_sensor.html" title="A generic interface for a wide-variety of sensors designed to be used in the application RawLogGrabbe...">CGenericSensor</a>.  <a href="#a77094b791971e8f42b94de34f4adb0f7"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">size_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1hwdrivers_1_1_c_generic_sensor.html#a6f35448579bd4d27cd4f4685b31a8cc0">m_max_queue_len</a></td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">See <a class="el" href="classmrpt_1_1hwdrivers_1_1_c_generic_sensor.html" title="A generic interface for a wide-variety of sensors designed to be used in the application RawLogGrabbe...">CGenericSensor</a>.  <a href="#a6f35448579bd4d27cd4f4685b31a8cc0"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">size_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1hwdrivers_1_1_c_generic_sensor.html#a587daaab2cb302eb4cc72eb1396d5f21">m_grab_decimation</a></td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">If set to N&gt;=2, only 1 out of N observations will be saved to m_objList.  <a href="#a587daaab2cb302eb4cc72eb1396d5f21"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="classstd_1_1string.html">std::string</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1hwdrivers_1_1_c_generic_sensor.html#accd4de8daeb5966c191fbc62a5d90355">m_sensorLabel</a></td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">See <a class="el" href="classmrpt_1_1hwdrivers_1_1_c_generic_sensor.html" title="A generic interface for a wide-variety of sensors designed to be used in the application RawLogGrabbe...">CGenericSensor</a>.  <a href="#accd4de8daeb5966c191fbc62a5d90355"></a><br/></td></tr>
<tr><td colspan="2"><h2><a name="pri-methods"></a>
Private Member Functions</h2></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1hwdrivers_1_1_c_sick_laser_serial.html#ac2d59a30d982b74f017e8596788d9321">tryToOpenComms</a> (<a class="el" href="classstd_1_1string.html">std::string</a> *err_msg=NULL)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Tries to open the com port and setup all the LMS protocol. Returns true if OK or already open.  <a href="#ac2d59a30d982b74f017e8596788d9321"></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_sick_laser_serial.html#a83b8bd08883309e39ebabba74790ad7b">waitContinuousSampleFrame</a> (<a class="el" href="classstd_1_1vector.html">std::vector</a>&lt; float &gt; &amp;ranges, unsigned char &amp;LMS_status, bool &amp;is_mm_mode)</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_sick_laser_serial.html#a1ba855b3cea81cd6aa8ab93c2014d160">LMS_setupSerialComms</a> ()</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Assures laser is connected and operating at 38400, in its case returns true.  <a href="#a1ba855b3cea81cd6aa8ab93c2014d160"></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_sick_laser_serial.html#a969aa143d68d49c2e4040f8b8f8d9261">LMS_setupBaudrate</a> (int baud)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Send a command to change the LMS comms baudrate, return true if ACK is OK. baud can be: 9600, 19200, 38400, 500000.  <a href="#a969aa143d68d49c2e4040f8b8f8d9261"></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_sick_laser_serial.html#a15dfc495879e223dd0c4bedd10e9e44f">LMS_statusQuery</a> ()</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Send a status query and wait for the answer. Return true on OK.  <a href="#a15dfc495879e223dd0c4bedd10e9e44f"></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_sick_laser_serial.html#a0624db148b77763767d6fb0676c6b526">LMS_waitACK</a> (uint16_t timeout_ms)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns false if timeout.  <a href="#a0624db148b77763767d6fb0676c6b526"></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_sick_laser_serial.html#a32ee3d6c362557fec96ccec5a223575d">LMS_waitIncomingFrame</a> (uint16_t timeout)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns false if timeout.  <a href="#a32ee3d6c362557fec96ccec5a223575d"></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_sick_laser_serial.html#a2853dadbac9cf4594b09164bda26a34d">LMS_sendMeasuringMode_cm_mm</a> ()</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns false on error.  <a href="#a2853dadbac9cf4594b09164bda26a34d"></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_sick_laser_serial.html#af708451fd7da05616a0958c07c99fa59">LMS_startContinuousMode</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_sick_laser_serial.html#a60a1698c05c30550bdc8565450e107ae">LMS_endContinuousMode</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_sick_laser_serial.html#a1c825888d5ee232ebf34c65cccb29c4f">SendCommandToSICK</a> (const uint8_t *cmd, const uint16_t cmd_len)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Send header+command-data+crc and waits for ACK. Return false on error.  <a href="#a1c825888d5ee232ebf34c65cccb29c4f"></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">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1hwdrivers_1_1_c_sick_laser_serial.html#ae0d4030543a72a6ee3cc5e572616fc2c">m_mm_mode</a></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1hwdrivers_1_1_c_sick_laser_serial.html#afa1a3d09e5cc3c4613a2691843f938a6">m_scans_FOV</a></td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">100 or 180 deg  <a href="#afa1a3d09e5cc3c4613a2691843f938a6"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1hwdrivers_1_1_c_sick_laser_serial.html#acd36ddf29b52a69dddb4f2576c1e7fa4">m_scans_res</a></td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">1/100th of deg: 100, 50 or 25  <a href="#acd36ddf29b52a69dddb4f2576c1e7fa4"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="structmrpt_1_1math_1_1_t_pose3_d.html">poses::TPose3D</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1hwdrivers_1_1_c_sick_laser_serial.html#a204584b599c90ced77b8bd645b83ca98">m_sensorPose</a></td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">The sensor 6D pose:  <a href="#a204584b599c90ced77b8bd645b83ca98"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1hwdrivers_1_1_c_sick_laser_serial.html#acf56eaf7d798ca6efd4e539e2dfbb900">m_received_frame_buffer</a> [2000]</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_sick_laser_serial.html#a155aebcdba964cabbd2e9398a529faef">m_com_port</a></td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">If set to non-empty, the serial port will be attempted to be opened automatically when this class is first used to request data from the laser.  <a href="#a155aebcdba964cabbd2e9398a529faef"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="classmrpt_1_1hwdrivers_1_1_c_serial_port.html">CSerialPort</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1hwdrivers_1_1_c_sick_laser_serial.html#ac2146dbe9d5ac4be74ed9cd1759557ec">m_mySerialPort</a></td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Will be !=NULL only if I created it, so I must destroy it at the end.  <a href="#ac2146dbe9d5ac4be74ed9cd1759557ec"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1hwdrivers_1_1_c_sick_laser_serial.html#ab20ee4c9b1caea9113a6abaffc02a1fb">m_com_baudRate</a></td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Baudrate: 9600, 38400, 500000.  <a href="#ab20ee4c9b1caea9113a6abaffc02a1fb"></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_sick_laser_serial.html#a1233ac37b907cfcc0f5f69170be3821f">m_nTries_connect</a></td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Default = 1.  <a href="#a1233ac37b907cfcc0f5f69170be3821f"></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_sick_laser_serial.html#a2078a713bc000637e418c613d62e0147">m_nTries_current</a></td></tr>
<tr><td colspan="2"><h2><a name="pri-static-attribs"></a>
Static Private Attributes</h2></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">static int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1hwdrivers_1_1_c_sick_laser_serial.html#ad11dd629bc4f074ce9348d53ee556b7d">CRC16_GEN_POL</a></td></tr>
</table>
<hr/><h2>Member Typedef Documentation</h2>
<a class="anchor" id="af237beee1de7f3e5733e305921695b30"></a><!-- doxytag: member="mrpt::hwdrivers::CSickLaserSerial::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::CSickLaserSerial::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::CSickLaserSerial::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="aa6abac114a5821aabbad166d0bace675"></a><!-- doxytag: member="mrpt::hwdrivers::CSickLaserSerial::CSickLaserSerial" ref="aa6abac114a5821aabbad166d0bace675" args="()" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">mrpt::hwdrivers::CSickLaserSerial::CSickLaserSerial </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Constructor. </p>

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

<p>Destructor. </p>

</div>
</div>
<hr/><h2>Member Function Documentation</h2>
<a class="anchor" id="a03bf6784838d6418f4fe485933a1ab0c"></a><!-- doxytag: member="mrpt::hwdrivers::CSickLaserSerial::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::CSickLaserSerial::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::CSickLaserSerial::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="ab652d017225fff3050a607f4461b0484"></a><!-- doxytag: member="mrpt::hwdrivers::CSickLaserSerial::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::CSickLaserSerial::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="a9ab22161d6d802bcd5c8b609fb8a6b54"></a><!-- doxytag: member="mrpt::hwdrivers::CSickLaserSerial::doProcess" ref="a9ab22161d6d802bcd5c8b609fb8a6b54" args="()" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void mrpt::hwdrivers::C2DRangeFinderAbstract::doProcess </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td><code> [virtual, inherited]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

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

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

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

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

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

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

</div>
</div>
<a class="anchor" id="a6a5778b1c951524c68f83d3735e60b6f"></a><!-- doxytag: member="mrpt::hwdrivers::CSickLaserSerial::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::CSickLaserSerial::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="a313d6933288717ec0645fb98831a90ea"></a><!-- doxytag: member="mrpt::hwdrivers::CSickLaserSerial::getBaudRate" ref="a313d6933288717ec0645fb98831a90ea" args="() const " -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int mrpt::hwdrivers::CSickLaserSerial::getBaudRate </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td> const<code> [inline]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<dl class="see"><dt><b>See also:</b></dt><dd><a class="el" href="classmrpt_1_1hwdrivers_1_1_c_sick_laser_serial.html#a2825fb1dc6b654bf5b92837493bdf967" title="Changes the serial port baud rate (call prior to &#39;doProcess&#39;); valid values are 9600,38400 and 500000.">setBaudRate</a> </dd></dl>

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

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

<p>If performing several tries in ::initialize(), this is the current try loop number. </p>

<p>Definition at line <a class="el" href="_c_sick_laser_serial_8h_source.html#l00159">159</a> of file <a class="el" href="_c_sick_laser_serial_8h_source.html">CSickLaserSerial.h</a>.</p>

</div>
</div>
<a class="anchor" id="a9d5aecec9f302feede271c9f1425a323"></a><!-- doxytag: member="mrpt::hwdrivers::CSickLaserSerial::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::CSickLaserSerial::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::CSickLaserSerial::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::CSickLaserSerial::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::CSickLaserSerial::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="aa7f4b9db0fd2b355071c2958d698fc59"></a><!-- doxytag: member="mrpt::hwdrivers::CSickLaserSerial::getScanFOV" ref="aa7f4b9db0fd2b355071c2958d698fc59" args="() const " -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int mrpt::hwdrivers::CSickLaserSerial::getScanFOV </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td> const<code> [inline]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Definition at line <a class="el" href="_c_sick_laser_serial_8h_source.html#l00150">150</a> of file <a class="el" href="_c_sick_laser_serial_8h_source.html">CSickLaserSerial.h</a>.</p>

</div>
</div>
<a class="anchor" id="a87c607f2d156ac45504ea812809e0b00"></a><!-- doxytag: member="mrpt::hwdrivers::CSickLaserSerial::getScanResolution" ref="a87c607f2d156ac45504ea812809e0b00" args="() const " -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int mrpt::hwdrivers::CSickLaserSerial::getScanResolution </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td> const<code> [inline]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Definition at line <a class="el" href="_c_sick_laser_serial_8h_source.html#l00156">156</a> of file <a class="el" href="_c_sick_laser_serial_8h_source.html">CSickLaserSerial.h</a>.</p>

</div>
</div>
<a class="anchor" id="af3cd061ca684e7ddf5949ed78fced7c9"></a><!-- doxytag: member="mrpt::hwdrivers::CSickLaserSerial::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="a4419de690af513782a3c22174426e916"></a><!-- doxytag: member="mrpt::hwdrivers::CSickLaserSerial::getSerialPort" ref="a4419de690af513782a3c22174426e916" 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::CSickLaserSerial::getSerialPort </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td> const<code> [inline]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<dl class="see"><dt><b>See also:</b></dt><dd><a class="el" href="classmrpt_1_1hwdrivers_1_1_c_sick_laser_serial.html#a5983b8c6b4ed4ea54af0096d3aa261a6" title="Changes the serial port to connect to (call prior to &#39;doProcess&#39;), for example &quot;COM1&quot; or &quot;ttyS0&quot;...">setSerialPort</a> </dd></dl>

<p>Definition at line <a class="el" href="_c_sick_laser_serial_8h_source.html#l00129">129</a> of file <a class="el" href="_c_sick_laser_serial_8h_source.html">CSickLaserSerial.h</a>.</p>

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

<p>Set-up communication with the laser. </p>
<p>Called automatically by rawlog-grabber. If used manually, call after "loadConfig" and before "doProcess".</p>
<p>In this class this method does nothing, since the communications are setup at the first try from "doProcess" or "doProcessSimple". </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="a60a1698c05c30550bdc8565450e107ae"></a><!-- doxytag: member="mrpt::hwdrivers::CSickLaserSerial::LMS_endContinuousMode" ref="a60a1698c05c30550bdc8565450e107ae" args="()" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">bool mrpt::hwdrivers::CSickLaserSerial::LMS_endContinuousMode </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="a2853dadbac9cf4594b09164bda26a34d"></a><!-- doxytag: member="mrpt::hwdrivers::CSickLaserSerial::LMS_sendMeasuringMode_cm_mm" ref="a2853dadbac9cf4594b09164bda26a34d" args="()" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">bool mrpt::hwdrivers::CSickLaserSerial::LMS_sendMeasuringMode_cm_mm </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td><code> [private]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Returns false on error. </p>

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

<p>Send a command to change the LMS comms baudrate, return true if ACK is OK. baud can be: 9600, 19200, 38400, 500000. </p>

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

<p>Assures laser is connected and operating at 38400, in its case returns true. </p>

</div>
</div>
<a class="anchor" id="af708451fd7da05616a0958c07c99fa59"></a><!-- doxytag: member="mrpt::hwdrivers::CSickLaserSerial::LMS_startContinuousMode" ref="af708451fd7da05616a0958c07c99fa59" args="()" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">bool mrpt::hwdrivers::CSickLaserSerial::LMS_startContinuousMode </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="a15dfc495879e223dd0c4bedd10e9e44f"></a><!-- doxytag: member="mrpt::hwdrivers::CSickLaserSerial::LMS_statusQuery" ref="a15dfc495879e223dd0c4bedd10e9e44f" args="()" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">bool mrpt::hwdrivers::CSickLaserSerial::LMS_statusQuery </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td><code> [private]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Send a status query and wait for the answer. Return true on OK. </p>

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

<p>Returns false if timeout. </p>

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

<p>Returns false if timeout. </p>

</div>
</div>
<a class="anchor" id="a6f34c5b79a128d1cb6b47eaa987ecb51"></a><!-- doxytag: member="mrpt::hwdrivers::CSickLaserSerial::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="aba6ad2f5e7ba1725b1ba2256312ac202"></a><!-- doxytag: member="mrpt::hwdrivers::CSickLaserSerial::loadConfig_sensorSpecific" ref="aba6ad2f5e7ba1725b1ba2256312ac202" 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::CSickLaserSerial::loadConfig_sensorSpecific </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classmrpt_1_1utils_1_1_c_config_file_base.html">mrpt::utils::CConfigFileBase</a> &amp;&#160;</td>
          <td class="paramname"><em>configSource</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="classstd_1_1string.html">std::string</a> &amp;&#160;</td>
          <td class="paramname"><em>iniSection</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td><code> [protected, virtual]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Loads specific configuration for the device from a given source of configuration parameters, for example, an ".ini" file, loading from the section "[iniSection]" (see <a class="el" href="classmrpt_1_1utils_1_1_c_config_file_base.html" title="This class allows loading and storing values and vectors of different types from a configuration text...">utils::CConfigFileBase</a> and derived classes) See <a class="el" href="classmrpt_1_1hwdrivers_1_1_c_sick_laser_serial.html" title="This &quot;software driver&quot; implements the communication protocol for interfacing a SICK LMS 2XX laser sca...">hwdrivers::CSickLaserSerial</a> for the possible parameters. </p>

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

</div>
</div>
<a class="anchor" id="ae90d3b0b79158e678ede1537e0a9e900"></a><!-- doxytag: member="mrpt::hwdrivers::CSickLaserSerial::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::CSickLaserSerial::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::CSickLaserSerial::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="a1c825888d5ee232ebf34c65cccb29c4f"></a><!-- doxytag: member="mrpt::hwdrivers::CSickLaserSerial::SendCommandToSICK" ref="a1c825888d5ee232ebf34c65cccb29c4f" args="(const uint8_t *cmd, const uint16_t cmd_len)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">bool mrpt::hwdrivers::CSickLaserSerial::SendCommandToSICK </td>
          <td>(</td>
          <td class="paramtype">const uint8_t *&#160;</td>
          <td class="paramname"><em>cmd</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const uint16_t&#160;</td>
          <td class="paramname"><em>cmd_len</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td><code> [private]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Send header+command-data+crc and waits for ACK. Return false on error. </p>

</div>
</div>
<a class="anchor" id="a2825fb1dc6b654bf5b92837493bdf967"></a><!-- doxytag: member="mrpt::hwdrivers::CSickLaserSerial::setBaudRate" ref="a2825fb1dc6b654bf5b92837493bdf967" args="(int baud)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void mrpt::hwdrivers::CSickLaserSerial::setBaudRate </td>
          <td>(</td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>baud</em></td><td>)</td>
          <td><code> [inline]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Changes the serial port baud rate (call prior to 'doProcess'); valid values are 9600,38400 and 500000. </p>
<p>This is not needed if the configuration is loaded with "loadConfig". </p>
<dl class="see"><dt><b>See also:</b></dt><dd><a class="el" href="classmrpt_1_1hwdrivers_1_1_c_sick_laser_serial.html#a313d6933288717ec0645fb98831a90ea">getBaudRate</a> </dd></dl>

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

</div>
</div>
<a class="anchor" id="aff4b208b901763557196b9326901c582"></a><!-- doxytag: member="mrpt::hwdrivers::CSickLaserSerial::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::CSickLaserSerial::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="a7dcc9c07fd4866677fde9a0904fcb153"></a><!-- doxytag: member="mrpt::hwdrivers::CSickLaserSerial::setMillimeterMode" ref="a7dcc9c07fd4866677fde9a0904fcb153" args="(bool mm_mode=true)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void mrpt::hwdrivers::CSickLaserSerial::setMillimeterMode </td>
          <td>(</td>
          <td class="paramtype">bool&#160;</td>
          <td class="paramname"><em>mm_mode</em> = <code>true</code></td><td>)</td>
          <td><code> [inline]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Enables/Disables the millimeter mode, with a greater accuracy but a shorter range (default=false) (call prior to 'doProcess') This is not needed if the configuration is loaded with "loadConfig". </p>

<p>Definition at line <a class="el" href="_c_sick_laser_serial_8h_source.html#l00144">144</a> of file <a class="el" href="_c_sick_laser_serial_8h_source.html">CSickLaserSerial.h</a>.</p>

</div>
</div>
<a class="anchor" id="afa55ff06dbf360c8f631d371d6ebe35d"></a><!-- doxytag: member="mrpt::hwdrivers::CSickLaserSerial::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="a269cdcf7dc576930714791374ac8a7fc"></a><!-- doxytag: member="mrpt::hwdrivers::CSickLaserSerial::setScanFOV" ref="a269cdcf7dc576930714791374ac8a7fc" args="(int fov_degrees)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void mrpt::hwdrivers::CSickLaserSerial::setScanFOV </td>
          <td>(</td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>fov_degrees</em></td><td>)</td>
          <td><code> [inline]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Set the scanning field of view - possible values are 100 or 180 (default) (call prior to 'doProcess') This is not needed if the configuration is loaded with "loadConfig". </p>

<p>Definition at line <a class="el" href="_c_sick_laser_serial_8h_source.html#l00149">149</a> of file <a class="el" href="_c_sick_laser_serial_8h_source.html">CSickLaserSerial.h</a>.</p>

</div>
</div>
<a class="anchor" id="a295f896117842895b47fe9daf10b6072"></a><!-- doxytag: member="mrpt::hwdrivers::CSickLaserSerial::setScanResolution" ref="a295f896117842895b47fe9daf10b6072" args="(int res_1_100th_degree)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void mrpt::hwdrivers::CSickLaserSerial::setScanResolution </td>
          <td>(</td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>res_1_100th_degree</em></td><td>)</td>
          <td><code> [inline]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Set the scanning resolution, in units of 1/100 degree - Possible values are 25, 50 and 100, for 0.25, 0.5 (default) and 1 deg. </p>
<p>(call prior to 'doProcess') This is not needed if the configuration is loaded with "loadConfig". </p>

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

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

<p>Changes the serial port to connect to (call prior to 'doProcess'), for example "COM1" or "ttyS0". </p>
<p>This is not needed if the configuration is loaded with "loadConfig". </p>

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

</div>
</div>
<a class="anchor" id="ac2d59a30d982b74f017e8596788d9321"></a><!-- doxytag: member="mrpt::hwdrivers::CSickLaserSerial::tryToOpenComms" ref="ac2d59a30d982b74f017e8596788d9321" args="(std::string *err_msg=NULL)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">bool mrpt::hwdrivers::CSickLaserSerial::tryToOpenComms </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="classstd_1_1string.html">std::string</a> *&#160;</td>
          <td class="paramname"><em>err_msg</em> = <code>NULL</code></td><td>)</td>
          <td><code> [private]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Tries to open the com port and setup all the LMS protocol. Returns true if OK or already open. </p>

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

<p>Disables the scanning mode (in this class this has no effect). </p>
<dl class="return"><dt><b>Returns:</b></dt><dd>If everything works "true", or "false" if there is any error. </dd></dl>

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

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

<p>Enables the scanning mode (in this class this has no effect). </p>
<dl class="return"><dt><b>Returns:</b></dt><dd>If everything works "true", or "false" if there is any error. </dd></dl>

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

</div>
</div>
<a class="anchor" id="a83b8bd08883309e39ebabba74790ad7b"></a><!-- doxytag: member="mrpt::hwdrivers::CSickLaserSerial::waitContinuousSampleFrame" ref="a83b8bd08883309e39ebabba74790ad7b" args="(std::vector&lt; float &gt; &amp;ranges, unsigned char &amp;LMS_status, bool &amp;is_mm_mode)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">bool mrpt::hwdrivers::CSickLaserSerial::waitContinuousSampleFrame </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="classstd_1_1vector.html">std::vector</a>&lt; float &gt; &amp;&#160;</td>
          <td class="paramname"><em>ranges</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">unsigned char &amp;&#160;</td>
          <td class="paramname"><em>LMS_status</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">bool &amp;&#160;</td>
          <td class="paramname"><em>is_mm_mode</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td><code> [private]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

</div>
</div>
<hr/><h2>Member Data Documentation</h2>
<a class="anchor" id="ad11dd629bc4f074ce9348d53ee556b7d"></a><!-- doxytag: member="mrpt::hwdrivers::CSickLaserSerial::CRC16_GEN_POL" ref="ad11dd629bc4f074ce9348d53ee556b7d" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int <a class="el" href="classmrpt_1_1hwdrivers_1_1_c_sick_laser_serial.html#ad11dd629bc4f074ce9348d53ee556b7d">mrpt::hwdrivers::CSickLaserSerial::CRC16_GEN_POL</a><code> [static, private]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Definition at line <a class="el" href="_c_sick_laser_serial_8h_source.html#l00082">82</a> of file <a class="el" href="_c_sick_laser_serial_8h_source.html">CSickLaserSerial.h</a>.</p>

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

<p>Baudrate: 9600, 38400, 500000. </p>

<p>Definition at line <a class="el" href="_c_sick_laser_serial_8h_source.html#l00104">104</a> of file <a class="el" href="_c_sick_laser_serial_8h_source.html">CSickLaserSerial.h</a>.</p>

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

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

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

</div>
</div>
<a class="anchor" id="a7d153c5247b0180b6b9df5054d67b183"></a><!-- doxytag: member="mrpt::hwdrivers::CSickLaserSerial::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::CSickLaserSerial::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::CSickLaserSerial::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::CSickLaserSerial::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="a6f35448579bd4d27cd4f4685b31a8cc0"></a><!-- doxytag: member="mrpt::hwdrivers::CSickLaserSerial::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="ae0d4030543a72a6ee3cc5e572616fc2c"></a><!-- doxytag: member="mrpt::hwdrivers::CSickLaserSerial::m_mm_mode" ref="ae0d4030543a72a6ee3cc5e572616fc2c" 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_sick_laser_serial.html#ae0d4030543a72a6ee3cc5e572616fc2c">mrpt::hwdrivers::CSickLaserSerial::m_mm_mode</a><code> [private]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Definition at line <a class="el" href="_c_sick_laser_serial_8h_source.html#l00075">75</a> of file <a class="el" href="_c_sick_laser_serial_8h_source.html">CSickLaserSerial.h</a>.</p>

</div>
</div>
<a class="anchor" id="ac2146dbe9d5ac4be74ed9cd1759557ec"></a><!-- doxytag: member="mrpt::hwdrivers::CSickLaserSerial::m_mySerialPort" ref="ac2146dbe9d5ac4be74ed9cd1759557ec" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classmrpt_1_1hwdrivers_1_1_c_serial_port.html">CSerialPort</a>* <a class="el" href="classmrpt_1_1hwdrivers_1_1_c_sick_laser_serial.html#ac2146dbe9d5ac4be74ed9cd1759557ec">mrpt::hwdrivers::CSickLaserSerial::m_mySerialPort</a><code> [private]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Will be !=NULL only if I created it, so I must destroy it at the end. </p>

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

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

<p>Default = 1. </p>

<p>Definition at line <a class="el" href="_c_sick_laser_serial_8h_source.html#l00105">105</a> of file <a class="el" href="_c_sick_laser_serial_8h_source.html">CSickLaserSerial.h</a>.</p>

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

<p>Definition at line <a class="el" href="_c_sick_laser_serial_8h_source.html#l00106">106</a> of file <a class="el" href="_c_sick_laser_serial_8h_source.html">CSickLaserSerial.h</a>.</p>

</div>
</div>
<a class="anchor" id="a06fe84426b813b9c1966c12bb69e6ee6"></a><!-- doxytag: member="mrpt::hwdrivers::CSickLaserSerial::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="a77094b791971e8f42b94de34f4adb0f7"></a><!-- doxytag: member="mrpt::hwdrivers::CSickLaserSerial::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="acf56eaf7d798ca6efd4e539e2dfbb900"></a><!-- doxytag: member="mrpt::hwdrivers::CSickLaserSerial::m_received_frame_buffer" ref="acf56eaf7d798ca6efd4e539e2dfbb900" args="[2000]" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">uint8_t <a class="el" href="classmrpt_1_1hwdrivers_1_1_c_sick_laser_serial.html#acf56eaf7d798ca6efd4e539e2dfbb900">mrpt::hwdrivers::CSickLaserSerial::m_received_frame_buffer</a>[2000]<code> [private]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

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

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

<p>100 or 180 deg </p>

<p>Definition at line <a class="el" href="_c_sick_laser_serial_8h_source.html#l00076">76</a> of file <a class="el" href="_c_sick_laser_serial_8h_source.html">CSickLaserSerial.h</a>.</p>

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

<p>1/100th of deg: 100, 50 or 25 </p>

<p>Definition at line <a class="el" href="_c_sick_laser_serial_8h_source.html#l00077">77</a> of file <a class="el" href="_c_sick_laser_serial_8h_source.html">CSickLaserSerial.h</a>.</p>

</div>
</div>
<a class="anchor" id="accd4de8daeb5966c191fbc62a5d90355"></a><!-- doxytag: member="mrpt::hwdrivers::CSickLaserSerial::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="a204584b599c90ced77b8bd645b83ca98"></a><!-- doxytag: member="mrpt::hwdrivers::CSickLaserSerial::m_sensorPose" ref="a204584b599c90ced77b8bd645b83ca98" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="structmrpt_1_1math_1_1_t_pose3_d.html">poses::TPose3D</a> <a class="el" href="classmrpt_1_1hwdrivers_1_1_c_sick_laser_serial.html#a204584b599c90ced77b8bd645b83ca98">mrpt::hwdrivers::CSickLaserSerial::m_sensorPose</a><code> [private]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

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

<p>Definition at line <a class="el" href="_c_sick_laser_serial_8h_source.html#l00080">80</a> of file <a class="el" href="_c_sick_laser_serial_8h_source.html">CSickLaserSerial.h</a>.</p>

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

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

</div>
</div>
<a class="anchor" id="acc3dd38ff320d03d0a2bce7e44e8a2d9"></a><!-- doxytag: member="mrpt::hwdrivers::CSickLaserSerial::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>
</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>