<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html><head><meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1"> <title>mrpt::hwdrivers::CLMS100Eth Class Reference</title> <link href="doxygen.css" rel="stylesheet" type="text/css"> <link href="tabs.css" rel="stylesheet" type="text/css"> </head><body> <div align="left"><a href="http://www.mrpt.org/">Main MRPT website</a> > <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 Page</span></a></li> <li><a href="pages.html"><span>Related Pages</span></a></li> <li><a href="modules.html"><span>Modules</span></a></li> <li><a href="namespaces.html"><span>Namespaces</span></a></li> <li 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 List</span></a></li> <li><a href="classes.html"><span>Class Index</span></a></li> <li><a href="inherits.html"><span>Class Hierarchy</span></a></li> <li><a href="functions.html"><span>Class Members</span></a></li> </ul> </div> <div id="nav-path" class="navpath"> <ul> <li class="navelem"><a class="el" href="namespacemrpt.html">mrpt</a> </li> <li class="navelem"><a class="el" href="namespacemrpt_1_1hwdrivers.html">hwdrivers</a> </li> <li class="navelem"><a class="el" href="classmrpt_1_1hwdrivers_1_1_c_l_m_s100_eth.html">CLMS100Eth</a> </li> </ul> </div> </div> <div class="header"> <div class="summary"> <a href="#pub-methods">Public Member Functions</a> | <a href="#pro-methods">Protected Member Functions</a> | <a href="#pri-types">Private Types</a> | <a href="#pri-methods">Private Member Functions</a> | <a href="#pri-static-methods">Static Private Member Functions</a> | <a href="#pri-attribs">Private Attributes</a> </div> <div class="headertitle"> <div class="title">mrpt::hwdrivers::CLMS100Eth Class Reference<div class="ingroups"><a class="el" href="group__mrpt__hwdrivers__grp.html">[mrpt-hwdrivers]</a></div></div> </div> </div> <div class="contents"> <!-- doxytag: class="mrpt::hwdrivers::CLMS100Eth" --><!-- doxytag: inherits="mrpt::hwdrivers::C2DRangeFinderAbstract" --><hr/><a name="details" id="details"></a><h2>Detailed Description</h2> <div class="textblock"><p>This "software driver" implements the communication protocol for interfacing a SICK LMS100 laser scanners through an ethernet controller. </p> <p>This class does not need to be bind, i.e. you do not need to call <a class="el" href="classmrpt_1_1hwdrivers_1_1_c2_d_range_finder_abstract.html#a9b619b52c015385fc16bfd213d39fd1c" title="Binds the object to a given I/O channel.">C2DRangeFinderAbstract::bindIO</a>. Connection is established when user call the <a class="el" href="classmrpt_1_1hwdrivers_1_1_c_l_m_s100_eth.html#aee005b6d36e5a005c40b0edbc4b64663" title="This method must be called before trying to get a laser scan.">turnOn()</a> method. You can pass to the class's constructor the LMS100 's ip address and port. Device will be configured with the following parameters :</p> <ul> <li>Start Angle : -45 deg (imposed by hardware)</li> <li>Stop Angle : +225 deg (imposed by hardware)</li> <li>Apperture : 270 deg (imposed by hardware)</li> <li>Angular resolution : 0.25 deg</li> <li>Scan frequency : 25 Hz</li> <li>Max Range : 20m (imposed by hardware).</li> </ul> <p><b>Important note:</b> SICK LMS 1xx devices have two levels of configuration. In its present implementation, this class only handles one of them, so <b>before using this class</b>, you must "pre-configure" your scanner with the SICK's software "SOAP" (this software ships with the device), and set the framerate with this software. Of course, you have to pre-configure the device just once, then save that configuration in its flash memory.</p> <p>To get a laser scan you must proceed like that : </p> <div class="fragment"><pre class="fragment"> CLMS200Eth laser(<span class="keywordtype">string</span>(<span class="stringliteral">"192.168.0.10"</span>), 1234); laser.turnOn(); <span class="keywordtype">bool</span> isOutObs, hardwareError; CObservation2DRangeScan outObs; laser.doProcessSimple(isOutObs, outObs, hardwareError); </pre></div><p>The sensor pose on the vehicle could be loaded from an ini configuration file with : </p> <div class="fragment"><pre class="fragment"> PARAMETERS IN THE <span class="stringliteral">".INI"</span>-LIKE CONFIGURATION STRINGS: ------------------------------------------------------- [supplied_section_name] ip_address = 192.168.0.50 ;a <span class="keywordtype">string</span> wich is the SICK<span class="stringliteral">'s ip adress (default is 192.168.0.1)</span> <span class="stringliteral"> TCP_port = 1234 ; an integer value : the tcp ip port on wich the sick is listening (default is 2111).</span> <span class="stringliteral"> pose_x=0.21 ; Laser range scaner 3D position in the robot (meters)</span> <span class="stringliteral"> pose_y=0</span> <span class="stringliteral"> pose_z=0.34</span> <span class="stringliteral"> pose_yaw=0 ; Angles in degrees</span> <span class="stringliteral"> pose_pitch=0</span> <span class="stringliteral"> pose_roll=0</span> </pre></div><p> This class doesn't configure the SICK LMS sensor, it is recomended to configure the sensor via the the SICK software : SOPAS. </p> <dl class="note"><dt><b>Note:</b></dt><dd>This class was contributed by Adrien Barral - Robopec (France) </dd></dl> </div> <p><code>#include <<a class="el" href="_c_l_m_s100eth_8h_source.html">mrpt/hwdrivers/CLMS100eth.h</a>></code></p> <div class="dynheader"> Inheritance diagram for mrpt::hwdrivers::CLMS100Eth:</div> <div class="dyncontent"> <div class="center"><img src="classmrpt_1_1hwdrivers_1_1_c_l_m_s100_eth__inherit__graph.png" border="0" usemap="#mrpt_1_1hwdrivers_1_1_c_l_m_s100_eth_inherit__map" alt="Inheritance graph"/></div> <map name="mrpt_1_1hwdrivers_1_1_c_l_m_s100_eth_inherit__map" id="mrpt_1_1hwdrivers_1_1_c_l_m_s100_eth_inherit__map"> <area shape="rect" id="node2" href="classmrpt_1_1hwdrivers_1_1_c2_d_range_finder_abstract.html" title="This is the base, abstract class for "software drivers" 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-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-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-time errors will be issued on any copy opera..." alt="" coords="279,5,441,32"/></map> <center><span class="legend">[<a href="graph_legend.html">legend</a>]</span></center></div> <p><a href="classmrpt_1_1hwdrivers_1_1_c_l_m_s100_eth-members.html">List of all members.</a></p> <table class="memberdecls"> <tr><td colspan="2"><h2><a name="pub-methods"></a> Public Member Functions</h2></td></tr> <tr><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1hwdrivers_1_1_c_l_m_s100_eth.html#a196a5aa3cd57df46476b07d046e35089">CLMS100Eth</a> (<a class="el" href="classstd_1_1string.html">string</a> _ip=<a class="el" href="classstd_1_1string.html">string</a>("192.168.0.1"), unsigned int _port=2111)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Constructor. <a href="#a196a5aa3cd57df46476b07d046e35089"></a><br/></td></tr> <tr><td class="memItemLeft" align="right" valign="top">virtual </td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1hwdrivers_1_1_c_l_m_s100_eth.html#ad6da9a70816d24430a27d192266cdda7">~CLMS100Eth</a> ()</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Destructor. <a href="#ad6da9a70816d24430a27d192266cdda7"></a><br/></td></tr> <tr><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1hwdrivers_1_1_c_l_m_s100_eth.html#afc106e971d56fd6eef68272d1f91c7d0">doProcessSimple</a> (bool &outThereIsObservation, <a class="el" href="classmrpt_1_1slam_1_1_c_observation2_d_range_scan.html">CObservation2DRangeScan</a> &outObservation, bool &hardwareError)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">This function acquire a laser scan from the device. <a href="#afc106e971d56fd6eef68272d1f91c7d0"></a><br/></td></tr> <tr><td class="memItemLeft" align="right" valign="top">bool </td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1hwdrivers_1_1_c_l_m_s100_eth.html#aee005b6d36e5a005c40b0edbc4b64663">turnOn</a> ()</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">This method must be called before trying to get a laser scan. <a href="#aee005b6d36e5a005c40b0edbc4b64663"></a><br/></td></tr> <tr><td class="memItemLeft" align="right" valign="top">bool </td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1hwdrivers_1_1_c_l_m_s100_eth.html#a324a0939d8df9d69246130f52255cab5">turnOff</a> ()</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">This method could be called manually to stop communication with the device. <a href="#a324a0939d8df9d69246130f52255cab5"></a><br/></td></tr> <tr><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1hwdrivers_1_1_c_l_m_s100_eth.html#ada039febe180653d46274ff389a84cc6">setSensorPose</a> (<a class="el" href="classmrpt_1_1poses_1_1_c_pose3_d.html">CPose3D</a> &_pose)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">A method to set the sensor pose on the robot. <a href="#ada039febe180653d46274ff389a84cc6"></a><br/></td></tr> <tr><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1hwdrivers_1_1_c_l_m_s100_eth.html#aa75b469c4121c09e1fc8327d293d5331">doProcess</a> ()</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">This method should be called periodically. <a href="#aa75b469c4121c09e1fc8327d293d5331"></a><br/></td></tr> <tr><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1hwdrivers_1_1_c_l_m_s100_eth.html#ae57ec60cca05cb6c21475821a160297a">initialize</a> ()</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Initialize the sensor according to the parameters previously read in the configuration file. <a href="#ae57ec60cca05cb6c21475821a160297a"></a><br/></td></tr> <tr><td colspan="2"><h2><a name="pro-methods"></a> Protected Member Functions</h2></td></tr> <tr><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1hwdrivers_1_1_c_l_m_s100_eth.html#a6f86a890bd4cf3d58810116f96af2b22">loadConfig_sensorSpecific</a> (const <a class="el" href="classmrpt_1_1utils_1_1_c_config_file_base.html">mrpt::utils::CConfigFileBase</a> &configSource, const <a class="el" href="classstd_1_1string.html">std::string</a> &iniSection)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Load sensor pose on the robot, or keep the default sensor pose. <a href="#a6f86a890bd4cf3d58810116f96af2b22"></a><br/></td></tr> <tr><td colspan="2"><h2><a name="pri-types"></a> Private Types</h2></td></tr> <tr><td class="memItemLeft" align="right" valign="top">enum  </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"> </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"/> < <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> > </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"/> < <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> > </td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1hwdrivers_1_1_c_generic_sensor.html#a78712e0c40c510978fb8589774056ab3">TListObsPair</a></td></tr> <tr><td colspan="2"><h2><a name="pri-methods"></a> Private Member Functions</h2></td></tr> <tr><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1hwdrivers_1_1_c_l_m_s100_eth.html#a34ec47394f3de6d7a355a822f4bf0328">generateCmd</a> (const char *cmd)</td></tr> <tr><td class="memItemLeft" align="right" valign="top">bool </td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1hwdrivers_1_1_c_l_m_s100_eth.html#ac16bf3cdaf4faf77b71af0629fa686f7">checkIsConnected</a> ()</td></tr> <tr><td class="memItemLeft" align="right" valign="top">bool </td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1hwdrivers_1_1_c_l_m_s100_eth.html#a987dde60134d861f00f0be9a9ca48ba6">decodeLogIn</a> (char *msg)</td></tr> <tr><td class="memItemLeft" align="right" valign="top">bool </td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1hwdrivers_1_1_c_l_m_s100_eth.html#a1550582154ad92bae28a80467fb9c6a5">decodeScanCfg</a> (<a class="el" href="classstd_1_1istringstream.html">istringstream</a> &stream)</td></tr> <tr><td class="memItemLeft" align="right" valign="top">bool </td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1hwdrivers_1_1_c_l_m_s100_eth.html#aaeed51140d5bbb6563f583c04df559f1">decodeScanDataCfg</a> (<a class="el" href="classstd_1_1istringstream.html">istringstream</a> &stream)</td></tr> <tr><td class="memItemLeft" align="right" valign="top">bool </td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1hwdrivers_1_1_c_l_m_s100_eth.html#a21e44a89bcf928653d6537c8f3d9fccf">decodeScan</a> (char *buf, <a class="el" href="classmrpt_1_1slam_1_1_c_observation2_d_range_scan.html">CObservation2DRangeScan</a> &outObservation)</td></tr> <tr><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1hwdrivers_1_1_c_l_m_s100_eth.html#a4f93e99d730c191f89bec675bef22e9c">sendCommand</a> (const char *cmd)</td></tr> <tr><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1hwdrivers_1_1_c_l_m_s100_eth.html#a6ad63503c0b0b1ca0c522a71b76c0609">roughPrint</a> (char *msg)</td></tr> <tr><td class="memItemLeft" align="right" valign="top">void </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> &configSource, const <a class="el" href="classstd_1_1string.html">std::string</a> &iniSection)</td></tr> <tr><td class="mdescLeft"> </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 </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> &obs) const </td></tr> <tr><td class="mdescLeft"> </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 </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> &obs) const </td></tr> <tr><td class="mdescLeft"> </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 </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"> </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 </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 &outThereIsObservation, <a class="el" href="classmrpt_1_1slam_1_1_c_observation2_d_range_scan.html">CObservation2DRangeScan</a> &outObservation, bool &hardwareError)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Get the last observation from the sensor, if available, and unmarks it as being "the last one" (thus a new scan must arrive or subsequent calls will find no new observations). <a href="#ac235087adef28853027ec1c8f4dc912d"></a><br/></td></tr> <tr><td class="memItemLeft" align="right" valign="top">virtual const <br class="typebreak"/> <a class="el" href="structmrpt_1_1hwdrivers_1_1_t_sensor_class_id.html">mrpt::hwdrivers::TSensorClassId</a> * </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> </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"> </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 </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> </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 </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> &sensorLabel)</td></tr> <tr><td class="memItemLeft" align="right" valign="top">void </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>< <a class="el" href="structmrpt_1_1utils_1_1_c_serializable_ptr.html">mrpt::utils::CSerializablePtr</a> > &obj)</td></tr> <tr><td class="mdescLeft"> </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 </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> &obj)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Like <a class="el" href="classmrpt_1_1hwdrivers_1_1_c_generic_sensor.html#ad3a33098f257c379ee6bd1bca24e45f9" title="This method must be called by derived classes to enqueue a new observation in the list to be returned...">appendObservations()</a> but for just one observation. <a href="#a03bf6784838d6418f4fe485933a1ab0c"></a><br/></td></tr> <tr><td class="memItemLeft" align="right" valign="top">void </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> &configSource, const <a class="el" href="classstd_1_1string.html">std::string</a> &section)</td></tr> <tr><td class="mdescLeft"> </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 </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> &lstObjects)</td></tr> <tr><td class="mdescLeft"> </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 </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> &directory)</td></tr> <tr><td class="mdescLeft"> </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 </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> &ext)</td></tr> <tr><td class="mdescLeft"> </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 </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"> </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 </td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1hwdrivers_1_1_c_generic_sensor.html#a9d5aecec9f302feede271c9f1425a323">getExternalImageJPEGQuality</a> () const </td></tr> <tr><td colspan="2"><h2><a name="pri-static-methods"></a> Static Private Member Functions</h2></td></tr> <tr><td class="memItemLeft" align="right" valign="top">static void </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"> </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 </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"> </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> * </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> &className)</td></tr> <tr><td class="mdescLeft"> </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> </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> &className)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Just like createSensor, but returning a smart pointer to the newly created sensor object. <a href="#aff4e4450e420bf60a2487ab0cff91907"></a><br/></td></tr> <tr><td colspan="2"><h2><a name="pri-attribs"></a> Private Attributes</h2></td></tr> <tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="classstd_1_1string.html">string</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1hwdrivers_1_1_c_l_m_s100_eth.html#a1717cb5e0c909b11bcd41ff0c6fb41a8">m_ip</a></td></tr> <tr><td class="memItemLeft" align="right" valign="top">unsigned int </td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1hwdrivers_1_1_c_l_m_s100_eth.html#a443afa3f96df0f0ac6bb5f9dd05fb544">m_port</a></td></tr> <tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="classmrpt_1_1utils_1_1_c_client_t_c_p_socket.html">CClientTCPSocket</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1hwdrivers_1_1_c_l_m_s100_eth.html#a2bc92d8b6defbd6f887c346981c683e7">m_client</a></td></tr> <tr><td class="memItemLeft" align="right" valign="top">bool </td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1hwdrivers_1_1_c_l_m_s100_eth.html#abdec5f0e1fde5cc07c3162e1630568bf">m_turnedOn</a></td></tr> <tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="classstd_1_1string.html">string</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1hwdrivers_1_1_c_l_m_s100_eth.html#a21a216cd0c1ed056f46e78e5bdd20429">m_cmd</a></td></tr> <tr><td class="memItemLeft" align="right" valign="top">bool </td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1hwdrivers_1_1_c_l_m_s100_eth.html#a6abc8a99fd98e79fa487386c7b62c327">m_connected</a></td></tr> <tr><td class="memItemLeft" align="right" valign="top">unsigned int </td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1hwdrivers_1_1_c_l_m_s100_eth.html#afd9c06c261d4d2723585ae330b2b1343">m_scanFrequency</a></td></tr> <tr><td class="memItemLeft" align="right" valign="top">double </td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1hwdrivers_1_1_c_l_m_s100_eth.html#ae8a9fa19a02c9eb664d32c0957883205">m_angleResolution</a></td></tr> <tr><td class="memItemLeft" align="right" valign="top">double </td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1hwdrivers_1_1_c_l_m_s100_eth.html#afc8ec3a34fc98551155be682f9eb4aea">m_startAngle</a></td></tr> <tr><td class="memItemLeft" align="right" valign="top">double </td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1hwdrivers_1_1_c_l_m_s100_eth.html#aa188926c3abe4a35a62b42d534af9ed2">m_stopAngle</a></td></tr> <tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="classmrpt_1_1poses_1_1_c_pose3_d.html">CPose3D</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1hwdrivers_1_1_c_l_m_s100_eth.html#a63090bd0bfd3b71109ba5aeabb8ffd5b">m_sensorPose</a></td></tr> <tr><td class="memItemLeft" align="right" valign="top">double </td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1hwdrivers_1_1_c_l_m_s100_eth.html#aa4af1603a5007a3534d40382b67eb9bf">m_maxRange</a></td></tr> <tr><td class="memItemLeft" align="right" valign="top">double </td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1hwdrivers_1_1_c_l_m_s100_eth.html#a1aeb24e61703c18696bca5b73f01bf11">m_beamApperture</a></td></tr> <tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="classmrpt_1_1utils_1_1_c_stream.html">utils::CStream</a> * </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"> </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 </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"> </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> </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> </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"> </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> </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"> </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 </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"> </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 </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"> </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 </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"> </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 </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"> </td><td class="mdescRight">If set to N>=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> </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"> </td><td class="mdescRight">See <a class="el" href="classmrpt_1_1hwdrivers_1_1_c_generic_sensor.html" title="A generic interface for a wide-variety of sensors designed to be used in the application RawLogGrabbe...">CGenericSensor</a>. <a href="#accd4de8daeb5966c191fbc62a5d90355"></a><br/></td></tr> </table> <hr/><h2>Member Typedef Documentation</h2> <a class="anchor" id="af237beee1de7f3e5733e305921695b30"></a><!-- doxytag: member="mrpt::hwdrivers::CLMS100Eth::TListObservations" ref="af237beee1de7f3e5733e305921695b30" args="" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">typedef <a class="el" href="classstd_1_1multimap.html">std::multimap</a>< <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> > <a class="el" href="classmrpt_1_1hwdrivers_1_1_c_generic_sensor.html#af237beee1de7f3e5733e305921695b30">mrpt::hwdrivers::CGenericSensor::TListObservations</a><code> [inherited]</code></td> </tr> </table> </div> <div class="memdoc"> <p>Definition at line <a class="el" href="_c_generic_sensor_8h_source.html#l00084">84</a> of file <a class="el" href="_c_generic_sensor_8h_source.html">CGenericSensor.h</a>.</p> </div> </div> <a class="anchor" id="a78712e0c40c510978fb8589774056ab3"></a><!-- doxytag: member="mrpt::hwdrivers::CLMS100Eth::TListObsPair" ref="a78712e0c40c510978fb8589774056ab3" args="" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">typedef std::pair< <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> > <a class="el" href="classmrpt_1_1hwdrivers_1_1_c_generic_sensor.html#a78712e0c40c510978fb8589774056ab3">mrpt::hwdrivers::CGenericSensor::TListObsPair</a><code> [inherited]</code></td> </tr> </table> </div> <div class="memdoc"> <p>Definition at line <a class="el" href="_c_generic_sensor_8h_source.html#l00085">85</a> of file <a class="el" href="_c_generic_sensor_8h_source.html">CGenericSensor.h</a>.</p> </div> </div> <hr/><h2>Member Enumeration Documentation</h2> <a class="anchor" id="a44262a8f1ffcc87871fbd717d3fc2cab"></a><!-- doxytag: member="mrpt::hwdrivers::CLMS100Eth::TSensorState" ref="a44262a8f1ffcc87871fbd717d3fc2cab" args="" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">enum <a class="el" href="classmrpt_1_1hwdrivers_1_1_c_generic_sensor.html#a44262a8f1ffcc87871fbd717d3fc2cab">mrpt::hwdrivers::CGenericSensor::TSensorState</a><code> [inherited]</code></td> </tr> </table> </div> <div class="memdoc"> <p>The current state of the sensor. </p> <dl class="see"><dt><b>See also:</b></dt><dd><a class="el" href="classmrpt_1_1hwdrivers_1_1_c_generic_sensor.html#a0bd667caedc6a313d96c232bf75ba577" title="The current state of the sensor.">CGenericSensor::getState</a> </dd></dl> <dl><dt><b>Enumerator: </b></dt><dd><table border="0" cellspacing="2" cellpadding="0"> <tr><td valign="top"><em><a class="anchor" id="a44262a8f1ffcc87871fbd717d3fc2caba0e2689514dd41d48164e021013549a44"></a><!-- doxytag: member="ssInitializing" ref="a44262a8f1ffcc87871fbd717d3fc2caba0e2689514dd41d48164e021013549a44" args="" -->ssInitializing</em> </td><td> </td></tr> <tr><td valign="top"><em><a class="anchor" id="a44262a8f1ffcc87871fbd717d3fc2cabaacc62e94572e3cd3b4b08caad173a489"></a><!-- doxytag: member="ssWorking" ref="a44262a8f1ffcc87871fbd717d3fc2cabaacc62e94572e3cd3b4b08caad173a489" args="" -->ssWorking</em> </td><td> </td></tr> <tr><td valign="top"><em><a class="anchor" id="a44262a8f1ffcc87871fbd717d3fc2caba8f76c8318736df85b6805ca460f8d262"></a><!-- doxytag: member="ssError" ref="a44262a8f1ffcc87871fbd717d3fc2caba8f76c8318736df85b6805ca460f8d262" args="" -->ssError</em> </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 & Destructor Documentation</h2> <a class="anchor" id="a196a5aa3cd57df46476b07d046e35089"></a><!-- doxytag: member="mrpt::hwdrivers::CLMS100Eth::CLMS100Eth" ref="a196a5aa3cd57df46476b07d046e35089" args="(string _ip=string("192.168.0.1"), unsigned int _port=2111)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">mrpt::hwdrivers::CLMS100Eth::CLMS100Eth </td> <td>(</td> <td class="paramtype"><a class="el" href="classstd_1_1string.html">string</a> </td> <td class="paramname"><em>_ip</em> = <code><a class="el" href="classstd_1_1string.html">string</a>("192.168.0.1")</code>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">unsigned int </td> <td class="paramname"><em>_port</em> = <code>2111</code> </td> </tr> <tr> <td></td> <td>)</td> <td></td><td></td> </tr> </table> </div> <div class="memdoc"> <p>Constructor. </p> <p>Note that there is default arguments, here you can customize IP Adress and TCP Port of your device. </p> </div> </div> <a class="anchor" id="ad6da9a70816d24430a27d192266cdda7"></a><!-- doxytag: member="mrpt::hwdrivers::CLMS100Eth::~CLMS100Eth" ref="ad6da9a70816d24430a27d192266cdda7" args="()" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">virtual mrpt::hwdrivers::CLMS100Eth::~CLMS100Eth </td> <td>(</td> <td class="paramname"></td><td>)</td> <td><code> [virtual]</code></td> </tr> </table> </div> <div class="memdoc"> <p>Destructor. </p> <p>Close communcation with the device, and free memory. </p> </div> </div> <hr/><h2>Member Function Documentation</h2> <a class="anchor" id="a03bf6784838d6418f4fe485933a1ab0c"></a><!-- doxytag: member="mrpt::hwdrivers::CLMS100Eth::appendObservation" ref="a03bf6784838d6418f4fe485933a1ab0c" args="(const mrpt::utils::CSerializablePtr &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> & </td> <td class="paramname"><em>obj</em></td><td>)</td> <td><code> [inline, protected, inherited]</code></td> </tr> </table> </div> <div class="memdoc"> <p>Like <a class="el" href="classmrpt_1_1hwdrivers_1_1_c_generic_sensor.html#ad3a33098f257c379ee6bd1bca24e45f9" title="This method must be called by derived classes to enqueue a new observation in the list to be returned...">appendObservations()</a> but for just one observation. </p> <p>Definition at line <a class="el" href="_c_generic_sensor_8h_source.html#l00155">155</a> of file <a class="el" href="_c_generic_sensor_8h_source.html">CGenericSensor.h</a>.</p> </div> </div> <a class="anchor" id="ad3a33098f257c379ee6bd1bca24e45f9"></a><!-- doxytag: member="mrpt::hwdrivers::CLMS100Eth::appendObservations" ref="ad3a33098f257c379ee6bd1bca24e45f9" args="(const std::vector< mrpt::utils::CSerializablePtr > &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>< <a class="el" href="structmrpt_1_1utils_1_1_c_serializable_ptr.html">mrpt::utils::CSerializablePtr</a> > & </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-> .... <span class="comment">// Set data</span> <a class="code" href="classmrpt_1_1hwdrivers_1_1_c_generic_sensor.html#a03bf6784838d6418f4fe485933a1ab0c" title="Like appendObservations() but for just one observation.">appendObservation</a>(o); </pre></div><p> If several observations are passed at once in the vector, they'll be considered as a block regarding the grabbing decimation factor. </p> </div> </div> <a class="anchor" id="a9b619b52c015385fc16bfd213d39fd1c"></a><!-- doxytag: member="mrpt::hwdrivers::CLMS100Eth::bindIO" ref="a9b619b52c015385fc16bfd213d39fd1c" args="(CStream *streamIO)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">void mrpt::hwdrivers::C2DRangeFinderAbstract::bindIO </td> <td>(</td> <td class="paramtype"><a class="el" href="classmrpt_1_1utils_1_1_c_stream.html">CStream</a> * </td> <td class="paramname"><em>streamIO</em></td><td>)</td> <td><code> [inherited]</code></td> </tr> </table> </div> <div class="memdoc"> <p>Binds the object to a given I/O channel. </p> <p>The stream object must not be deleted before the destruction of this class. </p> <dl class="see"><dt><b>See also:</b></dt><dd><a class="el" href="classmrpt_1_1hwdrivers_1_1_c_serial_port.html" title="A communications serial port built as an implementation of a utils::CStream.">hwdrivers::CSerialPort</a> </dd></dl> </div> </div> <a class="anchor" id="ac16bf3cdaf4faf77b71af0629fa686f7"></a><!-- doxytag: member="mrpt::hwdrivers::CLMS100Eth::checkIsConnected" ref="ac16bf3cdaf4faf77b71af0629fa686f7" args="()" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">bool mrpt::hwdrivers::CLMS100Eth::checkIsConnected </td> <td>(</td> <td class="paramname"></td><td>)</td> <td><code> [private]</code></td> </tr> </table> </div> <div class="memdoc"> </div> </div> <a class="anchor" id="ab652d017225fff3050a607f4461b0484"></a><!-- doxytag: member="mrpt::hwdrivers::CLMS100Eth::createSensor" ref="ab652d017225fff3050a607f4461b0484" args="(const std::string &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> & </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">"XXX"</span>) ); </pre></div> <dl class="return"><dt><b>Returns:</b></dt><dd>A pointer to a new class, or NULL if class name is unknown. </dd></dl> </div> </div> <a class="anchor" id="aff4e4450e420bf60a2487ab0cff91907"></a><!-- doxytag: member="mrpt::hwdrivers::CLMS100Eth::createSensorPtr" ref="aff4e4450e420bf60a2487ab0cff91907" args="(const std::string &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> & </td> <td class="paramname"><em>className</em></td><td>)</td> <td><code> [inline, static, inherited]</code></td> </tr> </table> </div> <div class="memdoc"> <p>Just like createSensor, but returning a smart pointer to the newly created sensor object. </p> <p>Definition at line <a class="el" href="_c_generic_sensor_8h_source.html#l00188">188</a> of file <a class="el" href="_c_generic_sensor_8h_source.html">CGenericSensor.h</a>.</p> </div> </div> <a class="anchor" id="a987dde60134d861f00f0be9a9ca48ba6"></a><!-- doxytag: member="mrpt::hwdrivers::CLMS100Eth::decodeLogIn" ref="a987dde60134d861f00f0be9a9ca48ba6" args="(char *msg)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">bool mrpt::hwdrivers::CLMS100Eth::decodeLogIn </td> <td>(</td> <td class="paramtype">char * </td> <td class="paramname"><em>msg</em></td><td>)</td> <td><code> [private]</code></td> </tr> </table> </div> <div class="memdoc"> </div> </div> <a class="anchor" id="a21e44a89bcf928653d6537c8f3d9fccf"></a><!-- doxytag: member="mrpt::hwdrivers::CLMS100Eth::decodeScan" ref="a21e44a89bcf928653d6537c8f3d9fccf" args="(char *buf, CObservation2DRangeScan &outObservation)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">bool mrpt::hwdrivers::CLMS100Eth::decodeScan </td> <td>(</td> <td class="paramtype">char * </td> <td class="paramname"><em>buf</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype"><a class="el" href="classmrpt_1_1slam_1_1_c_observation2_d_range_scan.html">CObservation2DRangeScan</a> & </td> <td class="paramname"><em>outObservation</em> </td> </tr> <tr> <td></td> <td>)</td> <td></td><td><code> [private]</code></td> </tr> </table> </div> <div class="memdoc"> </div> </div> <a class="anchor" id="a1550582154ad92bae28a80467fb9c6a5"></a><!-- doxytag: member="mrpt::hwdrivers::CLMS100Eth::decodeScanCfg" ref="a1550582154ad92bae28a80467fb9c6a5" args="(istringstream &stream)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">bool mrpt::hwdrivers::CLMS100Eth::decodeScanCfg </td> <td>(</td> <td class="paramtype"><a class="el" href="classstd_1_1istringstream.html">istringstream</a> & </td> <td class="paramname"><em>stream</em></td><td>)</td> <td><code> [private]</code></td> </tr> </table> </div> <div class="memdoc"> </div> </div> <a class="anchor" id="aaeed51140d5bbb6563f583c04df559f1"></a><!-- doxytag: member="mrpt::hwdrivers::CLMS100Eth::decodeScanDataCfg" ref="aaeed51140d5bbb6563f583c04df559f1" args="(istringstream &stream)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">bool mrpt::hwdrivers::CLMS100Eth::decodeScanDataCfg </td> <td>(</td> <td class="paramtype"><a class="el" href="classstd_1_1istringstream.html">istringstream</a> & </td> <td class="paramname"><em>stream</em></td><td>)</td> <td><code> [private]</code></td> </tr> </table> </div> <div class="memdoc"> </div> </div> <a class="anchor" id="aa75b469c4121c09e1fc8327d293d5331"></a><!-- doxytag: member="mrpt::hwdrivers::CLMS100Eth::doProcess" ref="aa75b469c4121c09e1fc8327d293d5331" args="()" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">void mrpt::hwdrivers::CLMS100Eth::doProcess </td> <td>(</td> <td class="paramname"></td><td>)</td> <td><code> [virtual]</code></td> </tr> </table> </div> <div class="memdoc"> <p>This method should be called periodically. </p> <p>Period depend on the process_rate in the configuration file. </p> <p>Reimplemented from <a class="el" href="classmrpt_1_1hwdrivers_1_1_c2_d_range_finder_abstract.html#a9ab22161d6d802bcd5c8b609fb8a6b54">mrpt::hwdrivers::C2DRangeFinderAbstract</a>.</p> </div> </div> <a class="anchor" id="afc106e971d56fd6eef68272d1f91c7d0"></a><!-- doxytag: member="mrpt::hwdrivers::CLMS100Eth::doProcessSimple" ref="afc106e971d56fd6eef68272d1f91c7d0" args="(bool &outThereIsObservation, CObservation2DRangeScan &outObservation, bool &hardwareError)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">void mrpt::hwdrivers::CLMS100Eth::doProcessSimple </td> <td>(</td> <td class="paramtype">bool & </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> & </td> <td class="paramname"><em>outObservation</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">bool & </td> <td class="paramname"><em>hardwareError</em> </td> </tr> <tr> <td></td> <td>)</td> <td></td><td><code> [virtual]</code></td> </tr> </table> </div> <div class="memdoc"> <p>This function acquire a laser scan from the device. </p> <p>If an error occured, hardwareError will be set to true. The new laser scan will be stored in the outObservation argument.</p> <dl><dt><b>Exceptions:</b></dt><dd> <table class="exception"> <tr><td class="paramname">This</td><td>method throw exception if the frame received from the LMS 100 contain the following bad parameters : * Status is not OK * Data in the scan aren't DIST1 (may be RSSIx or DIST2). </td></tr> </table> </dd> </dl> <p>Implements <a class="el" href="classmrpt_1_1hwdrivers_1_1_c2_d_range_finder_abstract.html#a1f64f58506a3fc9f00d00ac4bae716c4">mrpt::hwdrivers::C2DRangeFinderAbstract</a>.</p> </div> </div> <a class="anchor" id="a6a5778b1c951524c68f83d3735e60b6f"></a><!-- doxytag: member="mrpt::hwdrivers::CLMS100Eth::filterByExclusionAngles" ref="a6a5778b1c951524c68f83d3735e60b6f" args="(CObservation2DRangeScan &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> & </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 "loadConfig" (loads exclusion areas AND exclusion angles)...">loadExclusionAreas</a> </dd></dl> </div> </div> <a class="anchor" id="a35e79cc5b9805cf868b3fdc909ec78eb"></a><!-- doxytag: member="mrpt::hwdrivers::CLMS100Eth::filterByExclusionAreas" ref="a35e79cc5b9805cf868b3fdc909ec78eb" args="(CObservation2DRangeScan &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> & </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 "loadConfig" (loads exclusion areas AND exclusion angles)...">loadExclusionAreas</a> </dd></dl> </div> </div> <a class="anchor" id="a34ec47394f3de6d7a355a822f4bf0328"></a><!-- doxytag: member="mrpt::hwdrivers::CLMS100Eth::generateCmd" ref="a34ec47394f3de6d7a355a822f4bf0328" args="(const char *cmd)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">void mrpt::hwdrivers::CLMS100Eth::generateCmd </td> <td>(</td> <td class="paramtype">const char * </td> <td class="paramname"><em>cmd</em></td><td>)</td> <td><code> [private]</code></td> </tr> </table> </div> <div class="memdoc"> </div> </div> <a class="anchor" id="a9d5aecec9f302feede271c9f1425a323"></a><!-- doxytag: member="mrpt::hwdrivers::CLMS100Eth::getExternalImageJPEGQuality" ref="a9d5aecec9f302feede271c9f1425a323" args="() const " --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">unsigned int mrpt::hwdrivers::CGenericSensor::getExternalImageJPEGQuality </td> <td>(</td> <td class="paramname"></td><td>)</td> <td> const<code> [inline, inherited]</code></td> </tr> </table> </div> <div class="memdoc"> <p>Definition at line <a class="el" href="_c_generic_sensor_8h_source.html#l00241">241</a> of file <a class="el" href="_c_generic_sensor_8h_source.html">CGenericSensor.h</a>.</p> </div> </div> <a class="anchor" id="ac235087adef28853027ec1c8f4dc912d"></a><!-- doxytag: member="mrpt::hwdrivers::CLMS100Eth::getObservation" ref="ac235087adef28853027ec1c8f4dc912d" args="(bool &outThereIsObservation, CObservation2DRangeScan &outObservation, bool &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 & </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> & </td> <td class="paramname"><em>outObservation</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">bool & </td> <td class="paramname"><em>hardwareError</em> </td> </tr> <tr> <td></td> <td>)</td> <td></td><td><code> [inherited]</code></td> </tr> </table> </div> <div class="memdoc"> <p>Get the last observation from the sensor, if available, and unmarks it as being "the last one" (thus a new scan must arrive or subsequent calls will find no new observations). </p> </div> </div> <a class="anchor" id="a34b2a73792cbe176b28c932646bba0ed"></a><!-- doxytag: member="mrpt::hwdrivers::CLMS100Eth::getObservations" ref="a34b2a73792cbe176b28c932646bba0ed" args="(TListObservations &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> & </td> <td class="paramname"><em>lstObjects</em></td><td>)</td> <td><code> [inherited]</code></td> </tr> </table> </div> <div class="memdoc"> <p>Returns a list of enqueued objects, emptying it (thread-safe). </p> <p>The objects must be freed by the invoker. </p> </div> </div> <a class="anchor" id="a8a05c268aef7ecada94a0014a2b294f7"></a><!-- doxytag: member="mrpt::hwdrivers::CLMS100Eth::getProcessRate" ref="a8a05c268aef7ecada94a0014a2b294f7" args="() const " --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">double mrpt::hwdrivers::CGenericSensor::getProcessRate </td> <td>(</td> <td class="paramname"></td><td>)</td> <td> const<code> [inline, inherited]</code></td> </tr> </table> </div> <div class="memdoc"> <p>Definition at line <a class="el" href="_c_generic_sensor_8h_source.html#l00100">100</a> of file <a class="el" href="_c_generic_sensor_8h_source.html">CGenericSensor.h</a>.</p> </div> </div> <a class="anchor" id="afbc26c93b989d1a0cc94c0c88d47cdba"></a><!-- doxytag: member="mrpt::hwdrivers::CLMS100Eth::GetRuntimeClass" ref="afbc26c93b989d1a0cc94c0c88d47cdba" args="() const =0" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">virtual const <a class="el" href="structmrpt_1_1hwdrivers_1_1_t_sensor_class_id.html">mrpt::hwdrivers::TSensorClassId</a>* mrpt::hwdrivers::CGenericSensor::GetRuntimeClass </td> <td>(</td> <td class="paramname"></td><td>)</td> <td> const<code> [pure virtual, inherited]</code></td> </tr> </table> </div> <div class="memdoc"> </div> </div> <a class="anchor" id="af3cd061ca684e7ddf5949ed78fced7c9"></a><!-- doxytag: member="mrpt::hwdrivers::CLMS100Eth::getSensorLabel" ref="af3cd061ca684e7ddf5949ed78fced7c9" args="() const " --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname"><a class="el" href="classstd_1_1string.html">std::string</a> mrpt::hwdrivers::CGenericSensor::getSensorLabel </td> <td>(</td> <td class="paramname"></td><td>)</td> <td> const<code> [inline, inherited]</code></td> </tr> </table> </div> <div class="memdoc"> <p>Definition at line <a class="el" href="_c_generic_sensor_8h_source.html#l00102">102</a> of file <a class="el" href="_c_generic_sensor_8h_source.html">CGenericSensor.h</a>.</p> </div> </div> <a class="anchor" id="a0bd667caedc6a313d96c232bf75ba577"></a><!-- doxytag: member="mrpt::hwdrivers::CLMS100Eth::getState" ref="a0bd667caedc6a313d96c232bf75ba577" args="() const " --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname"><a class="el" href="classmrpt_1_1hwdrivers_1_1_c_generic_sensor.html#a44262a8f1ffcc87871fbd717d3fc2cab">TSensorState</a> mrpt::hwdrivers::CGenericSensor::getState </td> <td>(</td> <td class="paramname"></td><td>)</td> <td> const<code> [inline, inherited]</code></td> </tr> </table> </div> <div class="memdoc"> <p>The current state of the sensor. </p> <p>Definition at line <a class="el" href="_c_generic_sensor_8h_source.html#l00098">98</a> of file <a class="el" href="_c_generic_sensor_8h_source.html">CGenericSensor.h</a>.</p> </div> </div> <a class="anchor" id="ae57ec60cca05cb6c21475821a160297a"></a><!-- doxytag: member="mrpt::hwdrivers::CLMS100Eth::initialize" ref="ae57ec60cca05cb6c21475821a160297a" args="()" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">void mrpt::hwdrivers::CLMS100Eth::initialize </td> <td>(</td> <td class="paramname"></td><td>)</td> <td><code> [virtual]</code></td> </tr> </table> </div> <div class="memdoc"> <p>Initialize the sensor according to the parameters previously read in the configuration file. </p> <p>Reimplemented from <a class="el" href="classmrpt_1_1hwdrivers_1_1_c_generic_sensor.html#a775782a8fef4c5cd11265024431ed8c3">mrpt::hwdrivers::CGenericSensor</a>.</p> </div> </div> <a class="anchor" id="a6f34c5b79a128d1cb6b47eaa987ecb51"></a><!-- doxytag: member="mrpt::hwdrivers::CLMS100Eth::loadConfig" ref="a6f34c5b79a128d1cb6b47eaa987ecb51" args="(const mrpt::utils::CConfigFileBase &configSource, const std::string &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> & </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> & </td> <td class="paramname"><em>section</em> </td> </tr> <tr> <td></td> <td>)</td> <td></td><td><code> [inherited]</code></td> </tr> </table> </div> <div class="memdoc"> <p>Loads the generic settings common to any sensor (See <a class="el" href="classmrpt_1_1hwdrivers_1_1_c_generic_sensor.html" title="A generic interface for a wide-variety of sensors designed to be used in the application RawLogGrabbe...">CGenericSensor</a>), then call to "loadConfig_sensorSpecific" </p> <dl><dt><b>Exceptions:</b></dt><dd> <table class="exception"> <tr><td class="paramname">This</td><td>method throws an exception with a descriptive message if some critical parameter is missing or has an invalid value. </td></tr> </table> </dd> </dl> </p> </div> </div> <a class="anchor" id="a6f86a890bd4cf3d58810116f96af2b22"></a><!-- doxytag: member="mrpt::hwdrivers::CLMS100Eth::loadConfig_sensorSpecific" ref="a6f86a890bd4cf3d58810116f96af2b22" args="(const mrpt::utils::CConfigFileBase &configSource, const std::string &iniSection)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">void mrpt::hwdrivers::CLMS100Eth::loadConfig_sensorSpecific </td> <td>(</td> <td class="paramtype">const <a class="el" href="classmrpt_1_1utils_1_1_c_config_file_base.html">mrpt::utils::CConfigFileBase</a> & </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> & </td> <td class="paramname"><em>iniSection</em> </td> </tr> <tr> <td></td> <td>)</td> <td></td><td><code> [protected, virtual]</code></td> </tr> </table> </div> <div class="memdoc"> <p>Load sensor pose on the robot, or keep the default sensor pose. </p> <p>Implements <a class="el" href="classmrpt_1_1hwdrivers_1_1_c_generic_sensor.html#ac867f9cb46c72b4386a5488f171f178f">mrpt::hwdrivers::CGenericSensor</a>.</p> </div> </div> <a class="anchor" id="ae90d3b0b79158e678ede1537e0a9e900"></a><!-- doxytag: member="mrpt::hwdrivers::CLMS100Eth::loadExclusionAreas" ref="ae90d3b0b79158e678ede1537e0a9e900" args="(const mrpt::utils::CConfigFileBase &configSource, const std::string &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> & </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> & </td> <td class="paramname"><em>iniSection</em> </td> </tr> <tr> <td></td> <td>)</td> <td></td><td><code> [protected, inherited]</code></td> </tr> </table> </div> <div class="memdoc"> <p>Should be call by derived classes at "loadConfig" (loads exclusion areas AND exclusion angles). </p> <p>This loads a sequence of vertices of a polygon given by its (x,y) coordinates relative to the vehicle, that is, taking into account the "sensorPose".</p> <ul> <li>exclusionZoneu_x</li> <li>exclusionZoneu_y for u=1,2,3,... All points within the 2D polygon will be ignored, for any Z, unless an optional entry is found:</li> <li>exclusionZoneu_z=[z_min z_max] In that case, only the points within the 2D polygon AND the given range in Z will be ignored.</li> </ul> <p>The number of zones is variable, but they must start at 1 and be consecutive. </p> <dl class="see"><dt><b>See also:</b></dt><dd><a class="el" href="classmrpt_1_1hwdrivers_1_1_c2_d_range_finder_abstract.html#a35e79cc5b9805cf868b3fdc909ec78eb" title="Mark as invalid those points which (x,y) coordinates fall within the exclusion polygons.">filterByExclusionAreas</a> </dd></dl> </div> </div> <a class="anchor" id="ab78281b5d70d6e295a8527a10fea66de"></a><!-- doxytag: member="mrpt::hwdrivers::CLMS100Eth::printf_debug" ref="ab78281b5d70d6e295a8527a10fea66de" args="(const char *frmt,...)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">static void mrpt::utils::CDebugOutputCapable::printf_debug </td> <td>(</td> <td class="paramtype">const char * </td> <td class="paramname"><em>frmt</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype"> </td> <td class="paramname"><em>...</em> </td> </tr> <tr> <td></td> <td>)</td> <td></td><td><code> [static, inherited]</code></td> </tr> </table> </div> <div class="memdoc"> <p>Sends a formated text to "debugOut" if not NULL, or to cout otherwise. </p> <p>Referenced by <a class="el" href="_c_levenberg_marquardt_8h_source.html#l00098">mrpt::math::CLevenbergMarquardtTempl::execute()</a>.</p> </div> </div> <a class="anchor" id="a640e1b953865c3d2e881bbd2c1a81428"></a><!-- doxytag: member="mrpt::hwdrivers::CLMS100Eth::registerClass" ref="a640e1b953865c3d2e881bbd2c1a81428" args="(const TSensorClassId *pNewClass)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">static void mrpt::hwdrivers::CGenericSensor::registerClass </td> <td>(</td> <td class="paramtype">const <a class="el" href="structmrpt_1_1hwdrivers_1_1_t_sensor_class_id.html">TSensorClassId</a> * </td> <td class="paramname"><em>pNewClass</em></td><td>)</td> <td><code> [static, inherited]</code></td> </tr> </table> </div> <div class="memdoc"> <p>Register a class into the internal list of "CGenericSensor" descendents. </p> <p>Used internally in the macros DEFINE_GENERIC_SENSOR, etc...</p> <p>Can be used as "CGenericSensor::registerClass( SENSOR_CLASS_ID(CMySensor) );" if building custom sensors outside mrpt libraries in user code. </p> </div> </div> <a class="anchor" id="a6ad63503c0b0b1ca0c522a71b76c0609"></a><!-- doxytag: member="mrpt::hwdrivers::CLMS100Eth::roughPrint" ref="a6ad63503c0b0b1ca0c522a71b76c0609" args="(char *msg)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">void mrpt::hwdrivers::CLMS100Eth::roughPrint </td> <td>(</td> <td class="paramtype">char * </td> <td class="paramname"><em>msg</em></td><td>)</td> <td><code> [private]</code></td> </tr> </table> </div> <div class="memdoc"> </div> </div> <a class="anchor" id="a4f93e99d730c191f89bec675bef22e9c"></a><!-- doxytag: member="mrpt::hwdrivers::CLMS100Eth::sendCommand" ref="a4f93e99d730c191f89bec675bef22e9c" args="(const char *cmd)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">void mrpt::hwdrivers::CLMS100Eth::sendCommand </td> <td>(</td> <td class="paramtype">const char * </td> <td class="paramname"><em>cmd</em></td><td>)</td> <td><code> [private]</code></td> </tr> </table> </div> <div class="memdoc"> </div> </div> <a class="anchor" id="aff4b208b901763557196b9326901c582"></a><!-- doxytag: member="mrpt::hwdrivers::CLMS100Eth::setExternalImageFormat" ref="aff4b208b901763557196b9326901c582" args="(const std::string &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> & </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 "jpg"...">setExternalImageJPEGQuality</a> </dd></dl> <p>Definition at line <a class="el" href="_c_generic_sensor_8h_source.html#l00233">233</a> of file <a class="el" href="_c_generic_sensor_8h_source.html">CGenericSensor.h</a>.</p> </div> </div> <a class="anchor" id="aca05f7ee991ee112b5e9f8f289a9ee94"></a><!-- doxytag: member="mrpt::hwdrivers::CLMS100Eth::setExternalImageJPEGQuality" ref="aca05f7ee991ee112b5e9f8f289a9ee94" args="(const unsigned int quality)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">void mrpt::hwdrivers::CGenericSensor::setExternalImageJPEGQuality </td> <td>(</td> <td class="paramtype">const unsigned int </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 ("jpg","gif","png",...) that determines the format of images saved externally The d...">setExternalImageFormat</a> </dd></dl> <p>Definition at line <a class="el" href="_c_generic_sensor_8h_source.html#l00238">238</a> of file <a class="el" href="_c_generic_sensor_8h_source.html">CGenericSensor.h</a>.</p> </div> </div> <a class="anchor" id="afa55ff06dbf360c8f631d371d6ebe35d"></a><!-- doxytag: member="mrpt::hwdrivers::CLMS100Eth::setPathForExternalImages" ref="afa55ff06dbf360c8f631d371d6ebe35d" args="(const std::string &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> & </td> <td class="paramname"><em>directory</em></td><td>)</td> <td><code> [inline, virtual, inherited]</code></td> </tr> </table> </div> <div class="memdoc"> <p>Set the path where to save off-rawlog image files (will be ignored in those sensors where this is not applicable). </p> <p>An empty string (the default value at construction) means to save images embedded in the rawlog, instead of on separate files. </p> <dl><dt><b>Exceptions:</b></dt><dd> <table class="exception"> <tr><td class="paramname"><a class="el" href="classstd_1_1exception.html" title="STL class.">std::exception</a></td><td>If the directory doesn't exists and cannot be created. </td></tr> </table> </dd> </dl> <p>Reimplemented in <a class="el" href="classmrpt_1_1hwdrivers_1_1_c_kinect.html#af1eb1294ff0693595f46c26ede24d115">mrpt::hwdrivers::CKinect</a>, <a class="el" href="classmrpt_1_1hwdrivers_1_1_c_camera_sensor.html#a8cc198b85399850d439eda47d832bc8d">mrpt::hwdrivers::CCameraSensor</a>, and <a class="el" href="classmrpt_1_1hwdrivers_1_1_c_swiss_ranger3_d_camera.html#a7392e6fb7a5720f0cbfa6dd02b7ec439">mrpt::hwdrivers::CSwissRanger3DCamera</a>.</p> <p>Definition at line <a class="el" href="_c_generic_sensor_8h_source.html#l00225">225</a> of file <a class="el" href="_c_generic_sensor_8h_source.html">CGenericSensor.h</a>.</p> </div> </div> <a class="anchor" id="a044c1340c4b90957250f63fa89189036"></a><!-- doxytag: member="mrpt::hwdrivers::CLMS100Eth::setSensorLabel" ref="a044c1340c4b90957250f63fa89189036" args="(const std::string &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> & </td> <td class="paramname"><em>sensorLabel</em></td><td>)</td> <td><code> [inline, inherited]</code></td> </tr> </table> </div> <div class="memdoc"> <p>Definition at line <a class="el" href="_c_generic_sensor_8h_source.html#l00103">103</a> of file <a class="el" href="_c_generic_sensor_8h_source.html">CGenericSensor.h</a>.</p> </div> </div> <a class="anchor" id="ada039febe180653d46274ff389a84cc6"></a><!-- doxytag: member="mrpt::hwdrivers::CLMS100Eth::setSensorPose" ref="ada039febe180653d46274ff389a84cc6" args="(CPose3D &_pose)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">void mrpt::hwdrivers::CLMS100Eth::setSensorPose </td> <td>(</td> <td class="paramtype"><a class="el" href="classmrpt_1_1poses_1_1_c_pose3_d.html">CPose3D</a> & </td> <td class="paramname"><em>_pose</em></td><td>)</td> <td></td> </tr> </table> </div> <div class="memdoc"> <p>A method to set the sensor pose on the robot. </p> </div> </div> <a class="anchor" id="a324a0939d8df9d69246130f52255cab5"></a><!-- doxytag: member="mrpt::hwdrivers::CLMS100Eth::turnOff" ref="a324a0939d8df9d69246130f52255cab5" args="()" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">bool mrpt::hwdrivers::CLMS100Eth::turnOff </td> <td>(</td> <td class="paramname"></td><td>)</td> <td><code> [virtual]</code></td> </tr> </table> </div> <div class="memdoc"> <p>This method could be called manually to stop communication with the device. </p> <p>Method is also called by destructor. </p> <p>Implements <a class="el" href="classmrpt_1_1hwdrivers_1_1_c2_d_range_finder_abstract.html#af0e4d6b3051435e235e9f92924cce968">mrpt::hwdrivers::C2DRangeFinderAbstract</a>.</p> </div> </div> <a class="anchor" id="aee005b6d36e5a005c40b0edbc4b64663"></a><!-- doxytag: member="mrpt::hwdrivers::CLMS100Eth::turnOn" ref="aee005b6d36e5a005c40b0edbc4b64663" args="()" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">bool mrpt::hwdrivers::CLMS100Eth::turnOn </td> <td>(</td> <td class="paramname"></td><td>)</td> <td><code> [virtual]</code></td> </tr> </table> </div> <div class="memdoc"> <p>This method must be called before trying to get a laser scan. </p> <p>Implements <a class="el" href="classmrpt_1_1hwdrivers_1_1_c2_d_range_finder_abstract.html#a2ba583282b207b13ee413d0d001e9d1a">mrpt::hwdrivers::C2DRangeFinderAbstract</a>.</p> </div> </div> <hr/><h2>Member Data Documentation</h2> <a class="anchor" id="ae8a9fa19a02c9eb664d32c0957883205"></a><!-- doxytag: member="mrpt::hwdrivers::CLMS100Eth::m_angleResolution" ref="ae8a9fa19a02c9eb664d32c0957883205" args="" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">double <a class="el" href="classmrpt_1_1hwdrivers_1_1_c_l_m_s100_eth.html#ae8a9fa19a02c9eb664d32c0957883205">mrpt::hwdrivers::CLMS100Eth::m_angleResolution</a><code> [private]</code></td> </tr> </table> </div> <div class="memdoc"> <p>Definition at line <a class="el" href="_c_l_m_s100eth_8h_source.html#l00133">133</a> of file <a class="el" href="_c_l_m_s100eth_8h_source.html">CLMS100eth.h</a>.</p> </div> </div> <a class="anchor" id="a1aeb24e61703c18696bca5b73f01bf11"></a><!-- doxytag: member="mrpt::hwdrivers::CLMS100Eth::m_beamApperture" ref="a1aeb24e61703c18696bca5b73f01bf11" args="" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">double <a class="el" href="classmrpt_1_1hwdrivers_1_1_c_l_m_s100_eth.html#a1aeb24e61703c18696bca5b73f01bf11">mrpt::hwdrivers::CLMS100Eth::m_beamApperture</a><code> [private]</code></td> </tr> </table> </div> <div class="memdoc"> <p>Definition at line <a class="el" href="_c_l_m_s100eth_8h_source.html#l00138">138</a> of file <a class="el" href="_c_l_m_s100eth_8h_source.html">CLMS100eth.h</a>.</p> </div> </div> <a class="anchor" id="a2bc92d8b6defbd6f887c346981c683e7"></a><!-- doxytag: member="mrpt::hwdrivers::CLMS100Eth::m_client" ref="a2bc92d8b6defbd6f887c346981c683e7" args="" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname"><a class="el" href="classmrpt_1_1utils_1_1_c_client_t_c_p_socket.html">CClientTCPSocket</a> <a class="el" href="classmrpt_1_1hwdrivers_1_1_c_l_m_s100_eth.html#a2bc92d8b6defbd6f887c346981c683e7">mrpt::hwdrivers::CLMS100Eth::m_client</a><code> [private]</code></td> </tr> </table> </div> <div class="memdoc"> <p>Definition at line <a class="el" href="_c_l_m_s100eth_8h_source.html#l00128">128</a> of file <a class="el" href="_c_l_m_s100eth_8h_source.html">CLMS100eth.h</a>.</p> </div> </div> <a class="anchor" id="a21a216cd0c1ed056f46e78e5bdd20429"></a><!-- doxytag: member="mrpt::hwdrivers::CLMS100Eth::m_cmd" ref="a21a216cd0c1ed056f46e78e5bdd20429" args="" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname"><a class="el" href="classstd_1_1string.html">string</a> <a class="el" href="classmrpt_1_1hwdrivers_1_1_c_l_m_s100_eth.html#a21a216cd0c1ed056f46e78e5bdd20429">mrpt::hwdrivers::CLMS100Eth::m_cmd</a><code> [private]</code></td> </tr> </table> </div> <div class="memdoc"> <p>Definition at line <a class="el" href="_c_l_m_s100eth_8h_source.html#l00130">130</a> of file <a class="el" href="_c_l_m_s100eth_8h_source.html">CLMS100eth.h</a>.</p> </div> </div> <a class="anchor" id="a6abc8a99fd98e79fa487386c7b62c327"></a><!-- doxytag: member="mrpt::hwdrivers::CLMS100Eth::m_connected" ref="a6abc8a99fd98e79fa487386c7b62c327" args="" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">bool <a class="el" href="classmrpt_1_1hwdrivers_1_1_c_l_m_s100_eth.html#a6abc8a99fd98e79fa487386c7b62c327">mrpt::hwdrivers::CLMS100Eth::m_connected</a><code> [private]</code></td> </tr> </table> </div> <div class="memdoc"> <p>Definition at line <a class="el" href="_c_l_m_s100eth_8h_source.html#l00131">131</a> of file <a class="el" href="_c_l_m_s100eth_8h_source.html">CLMS100eth.h</a>.</p> </div> </div> <a class="anchor" id="a7d153c5247b0180b6b9df5054d67b183"></a><!-- doxytag: member="mrpt::hwdrivers::CLMS100Eth::m_external_images_format" ref="a7d153c5247b0180b6b9df5054d67b183" args="" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname"><a class="el" href="classstd_1_1string.html">std::string</a> <a class="el" href="classmrpt_1_1hwdrivers_1_1_c_generic_sensor.html#a7d153c5247b0180b6b9df5054d67b183">mrpt::hwdrivers::CGenericSensor::m_external_images_format</a><code> [protected, inherited]</code></td> </tr> </table> </div> <div class="memdoc"> <p>The extension ("jpg","gif","png",...) that determines the format of images saved externally. </p> <dl class="see"><dt><b>See also:</b></dt><dd><a class="el" href="classmrpt_1_1hwdrivers_1_1_c_generic_sensor.html#afa55ff06dbf360c8f631d371d6ebe35d" title="Set the path where to save off-rawlog image files (will be ignored in those sensors where this is not...">setPathForExternalImages</a> </dd></dl> <p>Definition at line <a class="el" href="_c_generic_sensor_8h_source.html#l00139">139</a> of file <a class="el" href="_c_generic_sensor_8h_source.html">CGenericSensor.h</a>.</p> </div> </div> <a class="anchor" id="aeac331931fce4890793cd7f1b5f6eb3e"></a><!-- doxytag: member="mrpt::hwdrivers::CLMS100Eth::m_external_images_jpeg_quality" ref="aeac331931fce4890793cd7f1b5f6eb3e" args="" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">unsigned int <a class="el" href="classmrpt_1_1hwdrivers_1_1_c_generic_sensor.html#aeac331931fce4890793cd7f1b5f6eb3e">mrpt::hwdrivers::CGenericSensor::m_external_images_jpeg_quality</a><code> [protected, inherited]</code></td> </tr> </table> </div> <div class="memdoc"> <p>For JPEG images, the quality (default=95%). </p> <p>Definition at line <a class="el" href="_c_generic_sensor_8h_source.html#l00140">140</a> of file <a class="el" href="_c_generic_sensor_8h_source.html">CGenericSensor.h</a>.</p> </div> </div> <a class="anchor" id="a587daaab2cb302eb4cc72eb1396d5f21"></a><!-- doxytag: member="mrpt::hwdrivers::CLMS100Eth::m_grab_decimation" ref="a587daaab2cb302eb4cc72eb1396d5f21" args="" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">size_t <a class="el" href="classmrpt_1_1hwdrivers_1_1_c_generic_sensor.html#a587daaab2cb302eb4cc72eb1396d5f21">mrpt::hwdrivers::CGenericSensor::m_grab_decimation</a><code> [protected, inherited]</code></td> </tr> </table> </div> <div class="memdoc"> <p>If set to N>=2, only 1 out of N observations will be saved to m_objList. </p> <p>Definition at line <a class="el" href="_c_generic_sensor_8h_source.html#l00127">127</a> of file <a class="el" href="_c_generic_sensor_8h_source.html">CGenericSensor.h</a>.</p> </div> </div> <a class="anchor" id="a564a6c2bc7f1baaea9a9d90112a7b376"></a><!-- doxytag: member="mrpt::hwdrivers::CLMS100Eth::m_grab_decimation_counter" ref="a564a6c2bc7f1baaea9a9d90112a7b376" args="" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">size_t <a class="el" href="classmrpt_1_1hwdrivers_1_1_c_generic_sensor.html#a564a6c2bc7f1baaea9a9d90112a7b376">mrpt::hwdrivers::CGenericSensor::m_grab_decimation_counter</a><code> [protected, inherited]</code></td> </tr> </table> </div> <div class="memdoc"> <p>Used when "m_grab_decimation" is enabled. </p> <p>Definition at line <a class="el" href="_c_generic_sensor_8h_source.html#l00132">132</a> of file <a class="el" href="_c_generic_sensor_8h_source.html">CGenericSensor.h</a>.</p> </div> </div> <a class="anchor" id="a1717cb5e0c909b11bcd41ff0c6fb41a8"></a><!-- doxytag: member="mrpt::hwdrivers::CLMS100Eth::m_ip" ref="a1717cb5e0c909b11bcd41ff0c6fb41a8" args="" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname"><a class="el" href="classstd_1_1string.html">string</a> <a class="el" href="classmrpt_1_1hwdrivers_1_1_c_l_m_s100_eth.html#a1717cb5e0c909b11bcd41ff0c6fb41a8">mrpt::hwdrivers::CLMS100Eth::m_ip</a><code> [private]</code></td> </tr> </table> </div> <div class="memdoc"> <p>Definition at line <a class="el" href="_c_l_m_s100eth_8h_source.html#l00126">126</a> of file <a class="el" href="_c_l_m_s100eth_8h_source.html">CLMS100eth.h</a>.</p> </div> </div> <a class="anchor" id="a6f35448579bd4d27cd4f4685b31a8cc0"></a><!-- doxytag: member="mrpt::hwdrivers::CLMS100Eth::m_max_queue_len" ref="a6f35448579bd4d27cd4f4685b31a8cc0" args="" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">size_t <a class="el" href="classmrpt_1_1hwdrivers_1_1_c_generic_sensor.html#a6f35448579bd4d27cd4f4685b31a8cc0">mrpt::hwdrivers::CGenericSensor::m_max_queue_len</a><code> [protected, inherited]</code></td> </tr> </table> </div> <div class="memdoc"> <p>See <a class="el" href="classmrpt_1_1hwdrivers_1_1_c_generic_sensor.html" title="A generic interface for a wide-variety of sensors designed to be used in the application RawLogGrabbe...">CGenericSensor</a>. </p> <p>Definition at line <a class="el" href="_c_generic_sensor_8h_source.html#l00126">126</a> of file <a class="el" href="_c_generic_sensor_8h_source.html">CGenericSensor.h</a>.</p> </div> </div> <a class="anchor" id="aa4af1603a5007a3534d40382b67eb9bf"></a><!-- doxytag: member="mrpt::hwdrivers::CLMS100Eth::m_maxRange" ref="aa4af1603a5007a3534d40382b67eb9bf" args="" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">double <a class="el" href="classmrpt_1_1hwdrivers_1_1_c_l_m_s100_eth.html#aa4af1603a5007a3534d40382b67eb9bf">mrpt::hwdrivers::CLMS100Eth::m_maxRange</a><code> [private]</code></td> </tr> </table> </div> <div class="memdoc"> <p>Definition at line <a class="el" href="_c_l_m_s100eth_8h_source.html#l00137">137</a> of file <a class="el" href="_c_l_m_s100eth_8h_source.html">CLMS100eth.h</a>.</p> </div> </div> <a class="anchor" id="a06fe84426b813b9c1966c12bb69e6ee6"></a><!-- doxytag: member="mrpt::hwdrivers::CLMS100Eth::m_path_for_external_images" ref="a06fe84426b813b9c1966c12bb69e6ee6" args="" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname"><a class="el" href="classstd_1_1string.html">std::string</a> <a class="el" href="classmrpt_1_1hwdrivers_1_1_c_generic_sensor.html#a06fe84426b813b9c1966c12bb69e6ee6">mrpt::hwdrivers::CGenericSensor::m_path_for_external_images</a><code> [protected, inherited]</code></td> </tr> </table> </div> <div class="memdoc"> <p>The path where to save off-rawlog images: empty means save images embedded in the rawlog. </p> <p>Definition at line <a class="el" href="_c_generic_sensor_8h_source.html#l00138">138</a> of file <a class="el" href="_c_generic_sensor_8h_source.html">CGenericSensor.h</a>.</p> </div> </div> <a class="anchor" id="a443afa3f96df0f0ac6bb5f9dd05fb544"></a><!-- doxytag: member="mrpt::hwdrivers::CLMS100Eth::m_port" ref="a443afa3f96df0f0ac6bb5f9dd05fb544" args="" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">unsigned int <a class="el" href="classmrpt_1_1hwdrivers_1_1_c_l_m_s100_eth.html#a443afa3f96df0f0ac6bb5f9dd05fb544">mrpt::hwdrivers::CLMS100Eth::m_port</a><code> [private]</code></td> </tr> </table> </div> <div class="memdoc"> <p>Definition at line <a class="el" href="_c_l_m_s100eth_8h_source.html#l00127">127</a> of file <a class="el" href="_c_l_m_s100eth_8h_source.html">CLMS100eth.h</a>.</p> </div> </div> <a class="anchor" id="a77094b791971e8f42b94de34f4adb0f7"></a><!-- doxytag: member="mrpt::hwdrivers::CLMS100Eth::m_process_rate" ref="a77094b791971e8f42b94de34f4adb0f7" args="" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">double <a class="el" href="classmrpt_1_1hwdrivers_1_1_c_generic_sensor.html#a77094b791971e8f42b94de34f4adb0f7">mrpt::hwdrivers::CGenericSensor::m_process_rate</a><code> [protected, inherited]</code></td> </tr> </table> </div> <div class="memdoc"> <p>See <a class="el" href="classmrpt_1_1hwdrivers_1_1_c_generic_sensor.html" title="A generic interface for a wide-variety of sensors designed to be used in the application RawLogGrabbe...">CGenericSensor</a>. </p> <p>Definition at line <a class="el" href="_c_generic_sensor_8h_source.html#l00125">125</a> of file <a class="el" href="_c_generic_sensor_8h_source.html">CGenericSensor.h</a>.</p> </div> </div> <a class="anchor" id="afd9c06c261d4d2723585ae330b2b1343"></a><!-- doxytag: member="mrpt::hwdrivers::CLMS100Eth::m_scanFrequency" ref="afd9c06c261d4d2723585ae330b2b1343" args="" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">unsigned int <a class="el" href="classmrpt_1_1hwdrivers_1_1_c_l_m_s100_eth.html#afd9c06c261d4d2723585ae330b2b1343">mrpt::hwdrivers::CLMS100Eth::m_scanFrequency</a><code> [private]</code></td> </tr> </table> </div> <div class="memdoc"> <p>Definition at line <a class="el" href="_c_l_m_s100eth_8h_source.html#l00132">132</a> of file <a class="el" href="_c_l_m_s100eth_8h_source.html">CLMS100eth.h</a>.</p> </div> </div> <a class="anchor" id="accd4de8daeb5966c191fbc62a5d90355"></a><!-- doxytag: member="mrpt::hwdrivers::CLMS100Eth::m_sensorLabel" ref="accd4de8daeb5966c191fbc62a5d90355" args="" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname"><a class="el" href="classstd_1_1string.html">std::string</a> <a class="el" href="classmrpt_1_1hwdrivers_1_1_c_generic_sensor.html#accd4de8daeb5966c191fbc62a5d90355">mrpt::hwdrivers::CGenericSensor::m_sensorLabel</a><code> [protected, inherited]</code></td> </tr> </table> </div> <div class="memdoc"> <p>See <a class="el" href="classmrpt_1_1hwdrivers_1_1_c_generic_sensor.html" title="A generic interface for a wide-variety of sensors designed to be used in the application RawLogGrabbe...">CGenericSensor</a>. </p> <p>Definition at line <a class="el" href="_c_generic_sensor_8h_source.html#l00128">128</a> of file <a class="el" href="_c_generic_sensor_8h_source.html">CGenericSensor.h</a>.</p> </div> </div> <a class="anchor" id="a63090bd0bfd3b71109ba5aeabb8ffd5b"></a><!-- doxytag: member="mrpt::hwdrivers::CLMS100Eth::m_sensorPose" ref="a63090bd0bfd3b71109ba5aeabb8ffd5b" args="" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname"><a class="el" href="classmrpt_1_1poses_1_1_c_pose3_d.html">CPose3D</a> <a class="el" href="classmrpt_1_1hwdrivers_1_1_c_l_m_s100_eth.html#a63090bd0bfd3b71109ba5aeabb8ffd5b">mrpt::hwdrivers::CLMS100Eth::m_sensorPose</a><code> [private]</code></td> </tr> </table> </div> <div class="memdoc"> <p>Definition at line <a class="el" href="_c_l_m_s100eth_8h_source.html#l00136">136</a> of file <a class="el" href="_c_l_m_s100eth_8h_source.html">CLMS100eth.h</a>.</p> </div> </div> <a class="anchor" id="afc8ec3a34fc98551155be682f9eb4aea"></a><!-- doxytag: member="mrpt::hwdrivers::CLMS100Eth::m_startAngle" ref="afc8ec3a34fc98551155be682f9eb4aea" args="" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">double <a class="el" href="classmrpt_1_1hwdrivers_1_1_c_l_m_s100_eth.html#afc8ec3a34fc98551155be682f9eb4aea">mrpt::hwdrivers::CLMS100Eth::m_startAngle</a><code> [private]</code></td> </tr> </table> </div> <div class="memdoc"> <p>Definition at line <a class="el" href="_c_l_m_s100eth_8h_source.html#l00134">134</a> of file <a class="el" href="_c_l_m_s100eth_8h_source.html">CLMS100eth.h</a>.</p> </div> </div> <a class="anchor" id="ab3e8a003783acd03bfd64716640fd67c"></a><!-- doxytag: member="mrpt::hwdrivers::CLMS100Eth::m_state" ref="ab3e8a003783acd03bfd64716640fd67c" args="" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname"><a class="el" href="classmrpt_1_1hwdrivers_1_1_c_generic_sensor.html#a44262a8f1ffcc87871fbd717d3fc2cab">TSensorState</a> <a class="el" href="classmrpt_1_1hwdrivers_1_1_c_generic_sensor.html#ab3e8a003783acd03bfd64716640fd67c">mrpt::hwdrivers::CGenericSensor::m_state</a><code> [protected, inherited]</code></td> </tr> </table> </div> <div class="memdoc"> <p>Definition at line <a class="el" href="_c_generic_sensor_8h_source.html#l00134">134</a> of file <a class="el" href="_c_generic_sensor_8h_source.html">CGenericSensor.h</a>.</p> </div> </div> <a class="anchor" id="aa188926c3abe4a35a62b42d534af9ed2"></a><!-- doxytag: member="mrpt::hwdrivers::CLMS100Eth::m_stopAngle" ref="aa188926c3abe4a35a62b42d534af9ed2" args="" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">double <a class="el" href="classmrpt_1_1hwdrivers_1_1_c_l_m_s100_eth.html#aa188926c3abe4a35a62b42d534af9ed2">mrpt::hwdrivers::CLMS100Eth::m_stopAngle</a><code> [private]</code></td> </tr> </table> </div> <div class="memdoc"> <p>Definition at line <a class="el" href="_c_l_m_s100eth_8h_source.html#l00135">135</a> of file <a class="el" href="_c_l_m_s100eth_8h_source.html">CLMS100eth.h</a>.</p> </div> </div> <a class="anchor" id="acc3dd38ff320d03d0a2bce7e44e8a2d9"></a><!-- doxytag: member="mrpt::hwdrivers::CLMS100Eth::m_stream" ref="acc3dd38ff320d03d0a2bce7e44e8a2d9" args="" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname"><a class="el" href="classmrpt_1_1utils_1_1_c_stream.html">utils::CStream</a>* <a class="el" href="classmrpt_1_1hwdrivers_1_1_c2_d_range_finder_abstract.html#acc3dd38ff320d03d0a2bce7e44e8a2d9">mrpt::hwdrivers::C2DRangeFinderAbstract::m_stream</a><code> [protected, inherited]</code></td> </tr> </table> </div> <div class="memdoc"> <p>The I/O channel (will be NULL if not bound). </p> <p>Definition at line <a class="el" href="_c2_d_range_finder_abstract_8h_source.html#l00081">81</a> of file <a class="el" href="_c2_d_range_finder_abstract_8h_source.html">C2DRangeFinderAbstract.h</a>.</p> </div> </div> <a class="anchor" id="abdec5f0e1fde5cc07c3162e1630568bf"></a><!-- doxytag: member="mrpt::hwdrivers::CLMS100Eth::m_turnedOn" ref="abdec5f0e1fde5cc07c3162e1630568bf" args="" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">bool <a class="el" href="classmrpt_1_1hwdrivers_1_1_c_l_m_s100_eth.html#abdec5f0e1fde5cc07c3162e1630568bf">mrpt::hwdrivers::CLMS100Eth::m_turnedOn</a><code> [private]</code></td> </tr> </table> </div> <div class="memdoc"> <p>Definition at line <a class="el" href="_c_l_m_s100eth_8h_source.html#l00129">129</a> of file <a class="el" href="_c_l_m_s100eth_8h_source.html">CLMS100eth.h</a>.</p> </div> </div> </div> <br><hr><br> <table border="0" width="100%"> <tr> <td> Page generated by <a href="http://www.doxygen.org" target="_blank">Doxygen 1.7.5</a> for MRPT 0.9.5 SVN: at Sun Sep 25 17:20:18 UTC 2011</td><td></td> <td width="100"> </td> <td width="150"> </td></tr> </table> </body></html>