<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html><head><meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1"> <title>mrpt::hwdrivers::CHokuyoURG Class Reference</title> <link href="doxygen.css" rel="stylesheet" type="text/css"> <link href="tabs.css" rel="stylesheet" type="text/css"> </head><body> <div align="left"><a href="http://www.mrpt.org/">Main MRPT website</a> > <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_hokuyo_u_r_g.html">CHokuyoURG</a> </li> </ul> </div> </div> <div class="header"> <div class="summary"> <a href="#nested-classes">Classes</a> | <a href="#pub-types">Public Types</a> | <a href="#pub-methods">Public Member Functions</a> | <a href="#pub-static-methods">Static Public Member Functions</a> | <a href="#pro-methods">Protected Member Functions</a> | <a href="#pro-attribs">Protected Attributes</a> | <a href="#pri-methods">Private Member Functions</a> | <a href="#pri-attribs">Private Attributes</a> </div> <div class="headertitle"> <div class="title">mrpt::hwdrivers::CHokuyoURG Class Reference<div class="ingroups"><a class="el" href="group__mrpt__hwdrivers__grp.html">[mrpt-hwdrivers]</a></div></div> </div> </div> <div class="contents"> <!-- doxytag: class="mrpt::hwdrivers::CHokuyoURG" --><!-- doxytag: inherits="mrpt::hwdrivers::C2DRangeFinderAbstract" --><hr/><a name="details" id="details"></a><h2>Detailed Description</h2> <div class="textblock"><p>This software driver implements the protocol SCIP-2.0 for interfacing HOKUYO URG, UTM and UXM laser scanners. </p> <p>Refer to the wiki page for more details: <a href="http://www.mrpt.org/Example:HOKUYO_URG/UTM_Laser_Scanner">http://www.mrpt.org/Example:HOKUYO_URG/UTM_Laser_Scanner</a></p> <p>See also the application "rawlog-grabber" for a ready-to-use application to gather data from the scanner.</p> <div class="fragment"><pre class="fragment"> PARAMETERS IN THE <span class="stringliteral">".INI"</span>-LIKE CONFIGURATION STRINGS: ------------------------------------------------------- [supplied_section_name] HOKUYO_motorSpeed_rpm=600 <span class="comment">//HOKUYO_HS_mode = false // Optional (un-comment line if used): Set/unset the High-sensitivity mode (not on all models/firmwares!)</span> COM_port_WIN = COM3 COM_port_LIN = ttyS0 pose_x=0.21 <span class="comment">// Laser range scaner 3D position in the robot (meters)</span> pose_y=0 pose_z=0.34 pose_yaw=0 <span class="comment">// Angles in degrees</span> pose_pitch=0 pose_roll=0 <span class="comment">//IP_DIR = 192.168.0.10 // Uncommented this and "PORT_DIR" if the used HOKUYO is connected by Ethernet instead of USB</span> <span class="comment">//PORT_DIR = 10940</span> <span class="comment">// Optional: reduced FOV:</span> <span class="comment">// reduced_fov = 25 // Deg</span> <span class="comment">// Optional: Exclusion zones to avoid the robot seeing itself:</span> <span class="comment">//exclusionZone1_x = 0.20 0.30 0.30 0.20</span> <span class="comment">//exclusionZone1_y = 0.20 0.30 0.30 0.20</span> <span class="comment">// Optional: Exclusion zones to avoid the robot seeing itself:</span> <span class="comment">//exclusionAngles1_ini = 20 // Deg</span> <span class="comment">//exclusionAngles1_end = 25 // Deg</span> </pre></div> </div> <p><code>#include <<a class="el" href="_c_hokuyo_u_r_g_8h_source.html">mrpt/hwdrivers/CHokuyoURG.h</a>></code></p> <div class="dynheader"> Inheritance diagram for mrpt::hwdrivers::CHokuyoURG:</div> <div class="dyncontent"> <div class="center"><img src="classmrpt_1_1hwdrivers_1_1_c_hokuyo_u_r_g__inherit__graph.png" border="0" usemap="#mrpt_1_1hwdrivers_1_1_c_hokuyo_u_r_g_inherit__map" alt="Inheritance graph"/></div> <map name="mrpt_1_1hwdrivers_1_1_c_hokuyo_u_r_g_inherit__map" id="mrpt_1_1hwdrivers_1_1_c_hokuyo_u_r_g_inherit__map"> <area shape="rect" id="node2" href="classmrpt_1_1hwdrivers_1_1_c2_d_range_finder_abstract.html" title="This is the base, abstract class for "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_hokuyo_u_r_g-members.html">List of all members.</a></p> <table class="memberdecls"> <tr><td colspan="2"><h2><a name="nested-classes"></a> Classes</h2></td></tr> <tr><td class="memItemLeft" align="right" valign="top">struct  </td><td class="memItemRight" valign="bottom"><a class="el" href="structmrpt_1_1hwdrivers_1_1_c_hokuyo_u_r_g_1_1_t_sensor_info.html">TSensorInfo</a></td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Used in <a class="el" href="classmrpt_1_1hwdrivers_1_1_c_hokuyo_u_r_g.html#a2c49d999129c0356dd7130e09624ff20" title="Ask to the device, and print to the debug stream, details about the firmware version,serial number,...">CHokuyoURG::displayVersionInfo</a>. <a href="structmrpt_1_1hwdrivers_1_1_c_hokuyo_u_r_g_1_1_t_sensor_info.html#details">More...</a><br/></td></tr> <tr><td colspan="2"><h2><a name="pub-types"></a> Public Types</h2></td></tr> <tr><td class="memItemLeft" align="right" valign="top">enum  </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="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_hokuyo_u_r_g.html#ab0bc6f799cb2c4781822ad64d6670cca">CHokuyoURG</a> ()</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Constructor. <a href="#ab0bc6f799cb2c4781822ad64d6670cca"></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_hokuyo_u_r_g.html#a7f37c57c0371656d80879a5785305956">~CHokuyoURG</a> ()</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Destructor: turns the laser off. <a href="#a7f37c57c0371656d80879a5785305956"></a><br/></td></tr> <tr><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1hwdrivers_1_1_c_hokuyo_u_r_g.html#a34779972f4dddb8ee2524d0778fd934d">doProcessSimple</a> (bool &outThereIsObservation, <a class="el" href="classmrpt_1_1slam_1_1_c_observation2_d_range_scan.html">mrpt::slam::CObservation2DRangeScan</a> &outObservation, bool &hardwareError)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Specific laser scanner "software drivers" must process here new data from the I/O stream, and, if a whole scan has arrived, return it. <a href="#a34779972f4dddb8ee2524d0778fd934d"></a><br/></td></tr> <tr><td class="memItemLeft" align="right" valign="top">bool </td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1hwdrivers_1_1_c_hokuyo_u_r_g.html#aca92934a8fb01a12b3419175a0cc9d34">turnOn</a> ()</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Enables the scanning mode (which may depend on the specific laser device); this must be called before asking for observations to assure that the protocol has been initializated. <a href="#aca92934a8fb01a12b3419175a0cc9d34"></a><br/></td></tr> <tr><td class="memItemLeft" align="right" valign="top">bool </td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1hwdrivers_1_1_c_hokuyo_u_r_g.html#adabd7857b1509d81991d47445943f33b">turnOff</a> ()</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Disables the scanning mode (this can be used to turn the device in low energy mode, if available) <a href="#adabd7857b1509d81991d47445943f33b"></a><br/></td></tr> <tr><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1hwdrivers_1_1_c_hokuyo_u_r_g.html#a0dc63135d809c41f2a374fb35ff1614e">purgeBuffers</a> ()</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Empties the RX buffers of the serial port. <a href="#a0dc63135d809c41f2a374fb35ff1614e"></a><br/></td></tr> <tr><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1hwdrivers_1_1_c_hokuyo_u_r_g.html#a649938742b4b547472a8198daa5e3ad6">setSerialPort</a> (const <a class="el" href="classstd_1_1string.html">std::string</a> &port_name)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">If set to non-empty, the serial port will be attempted to be opened automatically when this class is first used to request data from the laser. <a href="#a649938742b4b547472a8198daa5e3ad6"></a><br/></td></tr> <tr><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1hwdrivers_1_1_c_hokuyo_u_r_g.html#a493faccb1583d35dd08bd930835eb8e5">setIPandPort</a> (const <a class="el" href="classstd_1_1string.html">std::string</a> &ip, const unsigned int &port)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Set the ip direction and port to connect using Ethernet communication. <a href="#a493faccb1583d35dd08bd930835eb8e5"></a><br/></td></tr> <tr><td class="memItemLeft" align="right" valign="top">const <a class="el" href="classstd_1_1string.html">std::string</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1hwdrivers_1_1_c_hokuyo_u_r_g.html#a610d92b0d221bd2f58d80f0182bde4d6">getSerialPort</a> ()</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Returns the currently set serial port. <a href="#a610d92b0d221bd2f58d80f0182bde4d6"></a><br/></td></tr> <tr><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1hwdrivers_1_1_c_hokuyo_u_r_g.html#a989289ffb6072e3f3493ab9fb5720b6e">setReducedFOV</a> (const double fov)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">If called (before calling "turnOn"), the field of view of the laser is reduced to the given range (in radians), discarding the rest of measures. <a href="#a989289ffb6072e3f3493ab9fb5720b6e"></a><br/></td></tr> <tr><td class="memItemLeft" align="right" valign="top">bool </td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1hwdrivers_1_1_c_hokuyo_u_r_g.html#a3a5440a364d483cde1a53e76310ce321">setHighSensitivityMode</a> (bool enabled)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Changes the high sensitivity mode (HS) (default: false) <a href="#a3a5440a364d483cde1a53e76310ce321"></a><br/></td></tr> <tr><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1hwdrivers_1_1_c_hokuyo_u_r_g.html#ac9b357d18e13a33eb472222c4b72c843">setVerbose</a> (bool enable=true)</td></tr> <tr><td class="memItemLeft" align="right" valign="top">void </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">void </td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1hwdrivers_1_1_c2_d_range_finder_abstract.html#a9ab22161d6d802bcd5c8b609fb8a6b54">doProcess</a> ()</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Main method for a <a class="el" href="classmrpt_1_1hwdrivers_1_1_c_generic_sensor.html" title="A generic interface for a wide-variety of sensors designed to be used in the application RawLogGrabbe...">CGenericSensor</a>. <a href="#a9ab22161d6d802bcd5c8b609fb8a6b54"></a><br/></td></tr> <tr><td class="memItemLeft" align="right" valign="top">virtual const <br class="typebreak"/> <a class="el" href="structmrpt_1_1hwdrivers_1_1_t_sensor_class_id.html">mrpt::hwdrivers::TSensorClassId</a> * </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#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="pub-static-methods"></a> Static Public 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="pro-methods"></a> Protected Member Functions</h2></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_hokuyo_u_r_g.html#aa02c328a0d0ffc6cf49b3d208e09fc57">checkCOMisOpen</a> ()</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Returns true if there is a valid stream bound to the laser scanner, otherwise it first try to open the serial port "m_com_port". <a href="#aa02c328a0d0ffc6cf49b3d208e09fc57"></a><br/></td></tr> <tr><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1hwdrivers_1_1_c_hokuyo_u_r_g.html#ac72eb2cedacdcadf0a6405d0d1003f04">loadConfig_sensorSpecific</a> (const <a class="el" href="classmrpt_1_1utils_1_1_c_config_file_base.html">mrpt::utils::CConfigFileBase</a> &configSource, const <a class="el" href="classstd_1_1string.html">std::string</a> &iniSection)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Loads specific configuration for the device from a given source of configuration parameters, for example, an ".ini" file, loading from the section "[iniSection]" (see <a class="el" href="classmrpt_1_1utils_1_1_c_config_file_base.html" title="This class allows loading and storing values and vectors of different types from a configuration text...">utils::CConfigFileBase</a> and derived classes) See <a class="el" href="classmrpt_1_1hwdrivers_1_1_c_hokuyo_u_r_g.html" title="This software driver implements the protocol SCIP-2.0 for interfacing HOKUYO URG, UTM and UXM laser s...">hwdrivers::CHokuyoURG</a> for the possible parameters. <a href="#ac72eb2cedacdcadf0a6405d0d1003f04"></a><br/></td></tr> <tr><td class="memItemLeft" align="right" valign="top">void </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_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 colspan="2"><h2><a name="pro-attribs"></a> Protected Attributes</h2></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_hokuyo_u_r_g.html#a84157502f5a8573e5a729ff6bb47894d">m_reduced_fov</a></td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Used to reduce artificially the interval of scan ranges. <a href="#a84157502f5a8573e5a729ff6bb47894d"></a><br/></td></tr> <tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="classstd_1_1string.html">std::string</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1hwdrivers_1_1_c_hokuyo_u_r_g.html#a5b714bf193b24aa61d51c81210173223">m_com_port</a></td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">If set to non-empty, the serial port will be attempted to be opened automatically when this class is first used to request data from the laser. <a href="#a5b714bf193b24aa61d51c81210173223"></a><br/></td></tr> <tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="classstd_1_1string.html">std::string</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1hwdrivers_1_1_c_hokuyo_u_r_g.html#adaae01b49f030a3e545abd0923e229d7">m_ip_dir</a></td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">If set to non-empty and m_port_dir too, the program will try to connect to a Hokuyo using Ethernet communication. <a href="#adaae01b49f030a3e545abd0923e229d7"></a><br/></td></tr> <tr><td class="memItemLeft" align="right" valign="top">unsigned int </td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1hwdrivers_1_1_c_hokuyo_u_r_g.html#a3003d7d83ccf8ab3cf8661d28c455895">m_port_dir</a></td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">If set to non-empty and m_ip_dir too, the program will try to connect to a Hokuyo using Ethernet communication. <a href="#a3003d7d83ccf8ab3cf8661d28c455895"></a><br/></td></tr> <tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="structmrpt_1_1hwdrivers_1_1_c_hokuyo_u_r_g_1_1_t_sensor_info.html">TSensorInfo</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1hwdrivers_1_1_c_hokuyo_u_r_g.html#a008022bd5d84b46985bb83af7d9a4c24">m_sensor_info</a></td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">The information gathered when the laser is first open. <a href="#a008022bd5d84b46985bb83af7d9a4c24"></a><br/></td></tr> <tr><td class="memItemLeft" align="right" valign="top">bool </td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1hwdrivers_1_1_c_hokuyo_u_r_g.html#aea0bf2150874a54b4d3ca6d0587163bf">m_I_am_owner_serial_port</a></td></tr> <tr><td class="memItemLeft" align="right" valign="top">uint32_t </td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1hwdrivers_1_1_c_hokuyo_u_r_g.html#a2a25597fdbdca0945086a3a5ad8c0ed9">m_timeStartUI</a></td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Time of the first data packet, for synchronization purposes. <a href="#a2a25597fdbdca0945086a3a5ad8c0ed9"></a><br/></td></tr> <tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="group__time__date.html#ga42674286d8d56afea013b6329bb7327a">mrpt::system::TTimeStamp</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1hwdrivers_1_1_c_hokuyo_u_r_g.html#a022ea533d54b0220d09e0e23c3c770e6">m_timeStartTT</a></td></tr> <tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="classmrpt_1_1utils_1_1_c_stream.html">utils::CStream</a> * </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> <tr><td colspan="2"><h2><a name="pri-methods"></a> Private Member Functions</h2></td></tr> <tr><td class="memItemLeft" align="right" valign="top">bool </td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1hwdrivers_1_1_c_hokuyo_u_r_g.html#aad95606c4032e534b88d140c544b8f25">enableSCIP20</a> ()</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Enables the SCIP2.0 protocol (this must be called at the very begining!). <a href="#aad95606c4032e534b88d140c544b8f25"></a><br/></td></tr> <tr><td class="memItemLeft" align="right" valign="top">bool </td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1hwdrivers_1_1_c_hokuyo_u_r_g.html#a534585372e07284900b13f2e303bc024">setHighBaudrate</a> ()</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Passes to 115200bps bitrate. <a href="#a534585372e07284900b13f2e303bc024"></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_hokuyo_u_r_g.html#af58cf18299f447448ff2130fd566e3eb">switchLaserOn</a> ()</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Switchs the laser on. <a href="#af58cf18299f447448ff2130fd566e3eb"></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_hokuyo_u_r_g.html#abea22b2813cb62bdba1dbb5902c139a9">switchLaserOff</a> ()</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Switchs the laser off. <a href="#abea22b2813cb62bdba1dbb5902c139a9"></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_hokuyo_u_r_g.html#a44c74275800789266e65c34258e6ffe4">setMotorSpeed</a> (int motoSpeed_rpm)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Changes the motor speed in rpm's (default 600rpm) <a href="#a44c74275800789266e65c34258e6ffe4"></a><br/></td></tr> <tr><td class="memItemLeft" align="right" valign="top">bool </td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1hwdrivers_1_1_c_hokuyo_u_r_g.html#a2c49d999129c0356dd7130e09624ff20">displayVersionInfo</a> ()</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Ask to the device, and print to the debug stream, details about the firmware version,serial number,... <a href="#a2c49d999129c0356dd7130e09624ff20"></a><br/></td></tr> <tr><td class="memItemLeft" align="right" valign="top">bool </td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1hwdrivers_1_1_c_hokuyo_u_r_g.html#a444d44dc5f03edd65860d96d7b87f1d6">displaySensorInfo</a> (<a class="el" href="structmrpt_1_1hwdrivers_1_1_c_hokuyo_u_r_g_1_1_t_sensor_info.html">CHokuyoURG::TSensorInfo</a> *out_data=NULL)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Ask to the device, and print to the debug stream, details about the sensor model. <a href="#a444d44dc5f03edd65860d96d7b87f1d6"></a><br/></td></tr> <tr><td class="memItemLeft" align="right" valign="top">bool </td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1hwdrivers_1_1_c_hokuyo_u_r_g.html#ad8edc0bf4eb2ec66e2b5acfc536c19bb">startScanningMode</a> ()</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Start the scanning mode, using parameters stored in the object (loaded from the .ini file) After this command the device will start to send scans until "switchLaserOff" is called. <a href="#ad8edc0bf4eb2ec66e2b5acfc536c19bb"></a><br/></td></tr> <tr><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1hwdrivers_1_1_c_hokuyo_u_r_g.html#aa59ba12bc09efa95df4e84b8b0982bca">initialize</a> ()</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Turns the laser on. <a href="#aa59ba12bc09efa95df4e84b8b0982bca"></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_hokuyo_u_r_g.html#a03f3acbef537e9efa5793809adba2034">receiveResponse</a> (const char *sentCmd_forEchoVerification, char &rcv_status0, char &rcv_status1, char *rcv_data, int &rcv_dataLength)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Waits for a response from the device. <a href="#a03f3acbef537e9efa5793809adba2034"></a><br/></td></tr> <tr><td class="memItemLeft" align="right" valign="top">bool </td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1hwdrivers_1_1_c_hokuyo_u_r_g.html#a641da72d8e1342742e7cbbd00a7c2c73">assureBufferHasBytes</a> (const size_t nDesiredBytes)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Assures a minimum number of bytes in the input buffer, reading from the serial port only if required. <a href="#a641da72d8e1342742e7cbbd00a7c2c73"></a><br/></td></tr> <tr><td colspan="2"><h2><a name="pri-attribs"></a> Private Attributes</h2></td></tr> <tr><td class="memItemLeft" align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1hwdrivers_1_1_c_hokuyo_u_r_g.html#aa98622fc3f9f7f273777736761f96d8d">m_firstRange</a></td></tr> <tr><td class="memItemLeft" align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1hwdrivers_1_1_c_hokuyo_u_r_g.html#afd21b67347b033fb077b9d4eb920291b">m_lastRange</a></td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">The first and last ranges to consider from the scan. <a href="#afd21b67347b033fb077b9d4eb920291b"></a><br/></td></tr> <tr><td class="memItemLeft" align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1hwdrivers_1_1_c_hokuyo_u_r_g.html#af778f907212ac6427fe4ea9ce99fb881">m_motorSpeed_rpm</a></td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">The motor speed (default=600rpm) <a href="#af778f907212ac6427fe4ea9ce99fb881"></a><br/></td></tr> <tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="classmrpt_1_1poses_1_1_c_pose3_d.html">poses::CPose3D</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1hwdrivers_1_1_c_hokuyo_u_r_g.html#a8b7b2a11b7fb90beac8b704fbb2d6391">m_sensorPose</a></td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">The sensor 6D pose: <a href="#a8b7b2a11b7fb90beac8b704fbb2d6391"></a><br/></td></tr> <tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="classmrpt_1_1utils_1_1circular__buffer.html">mrpt::utils::circular_buffer</a><br class="typebreak"/> < uint8_t > </td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1hwdrivers_1_1_c_hokuyo_u_r_g.html#a80b98e185edc36578a7682fa8a3c10e5">m_rx_buffer</a></td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Auxiliary buffer for readings. <a href="#a80b98e185edc36578a7682fa8a3c10e5"></a><br/></td></tr> <tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="classstd_1_1string.html">std::string</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1hwdrivers_1_1_c_hokuyo_u_r_g.html#aed9b38ef8406bf96e56da57d66423d13">m_lastSentMeasCmd</a></td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">The last sent measurement command (MDXXX), including the last 0x0A. <a href="#aed9b38ef8406bf96e56da57d66423d13"></a><br/></td></tr> <tr><td class="memItemLeft" align="right" valign="top">bool </td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1hwdrivers_1_1_c_hokuyo_u_r_g.html#a5f8bf1fb50422e723ad1962fc33c14ba">m_verbose</a></td></tr> <tr><td class="memItemLeft" align="right" valign="top">bool </td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1hwdrivers_1_1_c_hokuyo_u_r_g.html#a2f474244d9a69dfa1524c86ef0d1029d">m_highSensMode</a></td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">High sensitivity [HS] mode (default: false) <a href="#a2f474244d9a69dfa1524c86ef0d1029d"></a><br/></td></tr> </table> <hr/><h2>Member Typedef Documentation</h2> <a class="anchor" id="af237beee1de7f3e5733e305921695b30"></a><!-- doxytag: member="mrpt::hwdrivers::CHokuyoURG::TListObservations" ref="af237beee1de7f3e5733e305921695b30" args="" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">typedef <a class="el" href="classstd_1_1multimap.html">std::multimap</a>< <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::CHokuyoURG::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::CHokuyoURG::TSensorState" ref="a44262a8f1ffcc87871fbd717d3fc2cab" args="" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">enum <a class="el" href="classmrpt_1_1hwdrivers_1_1_c_generic_sensor.html#a44262a8f1ffcc87871fbd717d3fc2cab">mrpt::hwdrivers::CGenericSensor::TSensorState</a><code> [inherited]</code></td> </tr> </table> </div> <div class="memdoc"> <p>The current state of the sensor. </p> <dl class="see"><dt><b>See also:</b></dt><dd><a class="el" href="classmrpt_1_1hwdrivers_1_1_c_generic_sensor.html#a0bd667caedc6a313d96c232bf75ba577" title="The current state of the sensor.">CGenericSensor::getState</a> </dd></dl> <dl><dt><b>Enumerator: </b></dt><dd><table border="0" cellspacing="2" cellpadding="0"> <tr><td valign="top"><em><a class="anchor" id="a44262a8f1ffcc87871fbd717d3fc2caba0e2689514dd41d48164e021013549a44"></a><!-- doxytag: member="ssInitializing" ref="a44262a8f1ffcc87871fbd717d3fc2caba0e2689514dd41d48164e021013549a44" args="" -->ssInitializing</em> </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="ab0bc6f799cb2c4781822ad64d6670cca"></a><!-- doxytag: member="mrpt::hwdrivers::CHokuyoURG::CHokuyoURG" ref="ab0bc6f799cb2c4781822ad64d6670cca" args="()" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">mrpt::hwdrivers::CHokuyoURG::CHokuyoURG </td> <td>(</td> <td class="paramname"></td><td>)</td> <td></td> </tr> </table> </div> <div class="memdoc"> <p>Constructor. </p> </div> </div> <a class="anchor" id="a7f37c57c0371656d80879a5785305956"></a><!-- doxytag: member="mrpt::hwdrivers::CHokuyoURG::~CHokuyoURG" ref="a7f37c57c0371656d80879a5785305956" args="()" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">virtual mrpt::hwdrivers::CHokuyoURG::~CHokuyoURG </td> <td>(</td> <td class="paramname"></td><td>)</td> <td><code> [virtual]</code></td> </tr> </table> </div> <div class="memdoc"> <p>Destructor: turns the laser off. </p> </div> </div> <hr/><h2>Member Function Documentation</h2> <a class="anchor" id="a03bf6784838d6418f4fe485933a1ab0c"></a><!-- doxytag: member="mrpt::hwdrivers::CHokuyoURG::appendObservation" ref="a03bf6784838d6418f4fe485933a1ab0c" args="(const mrpt::utils::CSerializablePtr &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::CHokuyoURG::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="a641da72d8e1342742e7cbbd00a7c2c73"></a><!-- doxytag: member="mrpt::hwdrivers::CHokuyoURG::assureBufferHasBytes" ref="a641da72d8e1342742e7cbbd00a7c2c73" args="(const size_t nDesiredBytes)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">bool mrpt::hwdrivers::CHokuyoURG::assureBufferHasBytes </td> <td>(</td> <td class="paramtype">const size_t </td> <td class="paramname"><em>nDesiredBytes</em></td><td>)</td> <td><code> [private]</code></td> </tr> </table> </div> <div class="memdoc"> <p>Assures a minimum number of bytes in the input buffer, reading from the serial port only if required. </p> <dl class="return"><dt><b>Returns:</b></dt><dd>false if the number of bytes are not available, even after trying to fetch more data from the serial port. </dd></dl> </div> </div> <a class="anchor" id="a9b619b52c015385fc16bfd213d39fd1c"></a><!-- doxytag: member="mrpt::hwdrivers::CHokuyoURG::bindIO" ref="a9b619b52c015385fc16bfd213d39fd1c" args="(CStream *streamIO)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">void mrpt::hwdrivers::C2DRangeFinderAbstract::bindIO </td> <td>(</td> <td class="paramtype"><a class="el" href="classmrpt_1_1utils_1_1_c_stream.html">CStream</a> * </td> <td class="paramname"><em>streamIO</em></td><td>)</td> <td><code> [inherited]</code></td> </tr> </table> </div> <div class="memdoc"> <p>Binds the object to a given I/O channel. </p> <p>The stream object must not be deleted before the destruction of this class. </p> <dl class="see"><dt><b>See also:</b></dt><dd><a class="el" href="classmrpt_1_1hwdrivers_1_1_c_serial_port.html" title="A communications serial port built as an implementation of a utils::CStream.">hwdrivers::CSerialPort</a> </dd></dl> </div> </div> <a class="anchor" id="aa02c328a0d0ffc6cf49b3d208e09fc57"></a><!-- doxytag: member="mrpt::hwdrivers::CHokuyoURG::checkCOMisOpen" ref="aa02c328a0d0ffc6cf49b3d208e09fc57" args="()" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">bool mrpt::hwdrivers::CHokuyoURG::checkCOMisOpen </td> <td>(</td> <td class="paramname"></td><td>)</td> <td><code> [protected]</code></td> </tr> </table> </div> <div class="memdoc"> <p>Returns true if there is a valid stream bound to the laser scanner, otherwise it first try to open the serial port "m_com_port". </p> </div> </div> <a class="anchor" id="ab652d017225fff3050a607f4461b0484"></a><!-- doxytag: member="mrpt::hwdrivers::CHokuyoURG::createSensor" ref="ab652d017225fff3050a607f4461b0484" args="(const std::string &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::CHokuyoURG::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="a444d44dc5f03edd65860d96d7b87f1d6"></a><!-- doxytag: member="mrpt::hwdrivers::CHokuyoURG::displaySensorInfo" ref="a444d44dc5f03edd65860d96d7b87f1d6" args="(CHokuyoURG::TSensorInfo *out_data=NULL)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">bool mrpt::hwdrivers::CHokuyoURG::displaySensorInfo </td> <td>(</td> <td class="paramtype"><a class="el" href="structmrpt_1_1hwdrivers_1_1_c_hokuyo_u_r_g_1_1_t_sensor_info.html">CHokuyoURG::TSensorInfo</a> * </td> <td class="paramname"><em>out_data</em> = <code>NULL</code></td><td>)</td> <td><code> [private]</code></td> </tr> </table> </div> <div class="memdoc"> <p>Ask to the device, and print to the debug stream, details about the sensor model. </p> <p>It also optionally saves all the information in an user supplied data structure "out_data". </p> <dl class="return"><dt><b>Returns:</b></dt><dd>false on any error </dd></dl> </div> </div> <a class="anchor" id="a2c49d999129c0356dd7130e09624ff20"></a><!-- doxytag: member="mrpt::hwdrivers::CHokuyoURG::displayVersionInfo" ref="a2c49d999129c0356dd7130e09624ff20" args="()" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">bool mrpt::hwdrivers::CHokuyoURG::displayVersionInfo </td> <td>(</td> <td class="paramname"></td><td>)</td> <td><code> [private]</code></td> </tr> </table> </div> <div class="memdoc"> <p>Ask to the device, and print to the debug stream, details about the firmware version,serial number,... </p> <dl class="return"><dt><b>Returns:</b></dt><dd>false on any error </dd></dl> </div> </div> <a class="anchor" id="a9ab22161d6d802bcd5c8b609fb8a6b54"></a><!-- doxytag: member="mrpt::hwdrivers::CHokuyoURG::doProcess" ref="a9ab22161d6d802bcd5c8b609fb8a6b54" args="()" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">void mrpt::hwdrivers::C2DRangeFinderAbstract::doProcess </td> <td>(</td> <td class="paramname"></td><td>)</td> <td><code> [virtual, inherited]</code></td> </tr> </table> </div> <div class="memdoc"> <p>Main method for a <a class="el" href="classmrpt_1_1hwdrivers_1_1_c_generic_sensor.html" title="A generic interface for a wide-variety of sensors designed to be used in the application RawLogGrabbe...">CGenericSensor</a>. </p> <p>Implements <a class="el" href="classmrpt_1_1hwdrivers_1_1_c_generic_sensor.html#a4f02ae5d7a345819f2521f72b633ab51">mrpt::hwdrivers::CGenericSensor</a>.</p> <p>Reimplemented in <a class="el" href="classmrpt_1_1hwdrivers_1_1_c_l_m_s100_eth.html#aa75b469c4121c09e1fc8327d293d5331">mrpt::hwdrivers::CLMS100Eth</a>.</p> </div> </div> <a class="anchor" id="a34779972f4dddb8ee2524d0778fd934d"></a><!-- doxytag: member="mrpt::hwdrivers::CHokuyoURG::doProcessSimple" ref="a34779972f4dddb8ee2524d0778fd934d" args="(bool &outThereIsObservation, mrpt::slam::CObservation2DRangeScan &outObservation, bool &hardwareError)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">void mrpt::hwdrivers::CHokuyoURG::doProcessSimple </td> <td>(</td> <td class="paramtype">bool & </td> <td class="paramname"><em>outThereIsObservation</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype"><a class="el" href="classmrpt_1_1slam_1_1_c_observation2_d_range_scan.html">mrpt::slam::CObservation2DRangeScan</a> & </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>Specific laser scanner "software drivers" must process here new data from the I/O stream, and, if a whole scan has arrived, return it. </p> <p>This method will be typically called in a different thread than other methods, and will be called in a timely fashion. </p> <p>Implements <a class="el" href="classmrpt_1_1hwdrivers_1_1_c2_d_range_finder_abstract.html#a1f64f58506a3fc9f00d00ac4bae716c4">mrpt::hwdrivers::C2DRangeFinderAbstract</a>.</p> </div> </div> <a class="anchor" id="aad95606c4032e534b88d140c544b8f25"></a><!-- doxytag: member="mrpt::hwdrivers::CHokuyoURG::enableSCIP20" ref="aad95606c4032e534b88d140c544b8f25" args="()" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">bool mrpt::hwdrivers::CHokuyoURG::enableSCIP20 </td> <td>(</td> <td class="paramname"></td><td>)</td> <td><code> [private]</code></td> </tr> </table> </div> <div class="memdoc"> <p>Enables the SCIP2.0 protocol (this must be called at the very begining!). </p> <dl class="return"><dt><b>Returns:</b></dt><dd>false on any error </dd></dl> </div> </div> <a class="anchor" id="a6a5778b1c951524c68f83d3735e60b6f"></a><!-- doxytag: member="mrpt::hwdrivers::CHokuyoURG::filterByExclusionAngles" ref="a6a5778b1c951524c68f83d3735e60b6f" args="(CObservation2DRangeScan &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::CHokuyoURG::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="a9d5aecec9f302feede271c9f1425a323"></a><!-- doxytag: member="mrpt::hwdrivers::CHokuyoURG::getExternalImageJPEGQuality" ref="a9d5aecec9f302feede271c9f1425a323" args="() const " --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">unsigned int mrpt::hwdrivers::CGenericSensor::getExternalImageJPEGQuality </td> <td>(</td> <td class="paramname"></td><td>)</td> <td> const<code> [inline, inherited]</code></td> </tr> </table> </div> <div class="memdoc"> <p>Definition at line <a class="el" href="_c_generic_sensor_8h_source.html#l00241">241</a> of file <a class="el" href="_c_generic_sensor_8h_source.html">CGenericSensor.h</a>.</p> </div> </div> <a class="anchor" id="ac235087adef28853027ec1c8f4dc912d"></a><!-- doxytag: member="mrpt::hwdrivers::CHokuyoURG::getObservation" ref="ac235087adef28853027ec1c8f4dc912d" args="(bool &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::CHokuyoURG::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::CHokuyoURG::getProcessRate" ref="a8a05c268aef7ecada94a0014a2b294f7" args="() const " --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">double mrpt::hwdrivers::CGenericSensor::getProcessRate </td> <td>(</td> <td class="paramname"></td><td>)</td> <td> const<code> [inline, inherited]</code></td> </tr> </table> </div> <div class="memdoc"> <p>Definition at line <a class="el" href="_c_generic_sensor_8h_source.html#l00100">100</a> of file <a class="el" href="_c_generic_sensor_8h_source.html">CGenericSensor.h</a>.</p> </div> </div> <a class="anchor" id="afbc26c93b989d1a0cc94c0c88d47cdba"></a><!-- doxytag: member="mrpt::hwdrivers::CHokuyoURG::GetRuntimeClass" ref="afbc26c93b989d1a0cc94c0c88d47cdba" args="() const =0" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">virtual const <a class="el" href="structmrpt_1_1hwdrivers_1_1_t_sensor_class_id.html">mrpt::hwdrivers::TSensorClassId</a>* mrpt::hwdrivers::CGenericSensor::GetRuntimeClass </td> <td>(</td> <td class="paramname"></td><td>)</td> <td> const<code> [pure virtual, inherited]</code></td> </tr> </table> </div> <div class="memdoc"> </div> </div> <a class="anchor" id="af3cd061ca684e7ddf5949ed78fced7c9"></a><!-- doxytag: member="mrpt::hwdrivers::CHokuyoURG::getSensorLabel" ref="af3cd061ca684e7ddf5949ed78fced7c9" args="() const " --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname"><a class="el" href="classstd_1_1string.html">std::string</a> mrpt::hwdrivers::CGenericSensor::getSensorLabel </td> <td>(</td> <td class="paramname"></td><td>)</td> <td> const<code> [inline, inherited]</code></td> </tr> </table> </div> <div class="memdoc"> <p>Definition at line <a class="el" href="_c_generic_sensor_8h_source.html#l00102">102</a> of file <a class="el" href="_c_generic_sensor_8h_source.html">CGenericSensor.h</a>.</p> </div> </div> <a class="anchor" id="a610d92b0d221bd2f58d80f0182bde4d6"></a><!-- doxytag: member="mrpt::hwdrivers::CHokuyoURG::getSerialPort" ref="a610d92b0d221bd2f58d80f0182bde4d6" args="()" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">const <a class="el" href="classstd_1_1string.html">std::string</a> mrpt::hwdrivers::CHokuyoURG::getSerialPort </td> <td>(</td> <td class="paramname"></td><td>)</td> <td><code> [inline]</code></td> </tr> </table> </div> <div class="memdoc"> <p>Returns the currently set serial port. </p> <dl class="see"><dt><b>See also:</b></dt><dd><a class="el" href="classmrpt_1_1hwdrivers_1_1_c_hokuyo_u_r_g.html#a649938742b4b547472a8198daa5e3ad6" title="If set to non-empty, the serial port will be attempted to be opened automatically when this class is ...">setSerialPort</a> </dd></dl> <p>Definition at line <a class="el" href="_c_hokuyo_u_r_g_8h_source.html#l00199">199</a> of file <a class="el" href="_c_hokuyo_u_r_g_8h_source.html">CHokuyoURG.h</a>.</p> </div> </div> <a class="anchor" id="a0bd667caedc6a313d96c232bf75ba577"></a><!-- doxytag: member="mrpt::hwdrivers::CHokuyoURG::getState" ref="a0bd667caedc6a313d96c232bf75ba577" args="() const " --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname"><a class="el" href="classmrpt_1_1hwdrivers_1_1_c_generic_sensor.html#a44262a8f1ffcc87871fbd717d3fc2cab">TSensorState</a> mrpt::hwdrivers::CGenericSensor::getState </td> <td>(</td> <td class="paramname"></td><td>)</td> <td> const<code> [inline, inherited]</code></td> </tr> </table> </div> <div class="memdoc"> <p>The current state of the sensor. </p> <p>Definition at line <a class="el" href="_c_generic_sensor_8h_source.html#l00098">98</a> of file <a class="el" href="_c_generic_sensor_8h_source.html">CGenericSensor.h</a>.</p> </div> </div> <a class="anchor" id="aa59ba12bc09efa95df4e84b8b0982bca"></a><!-- doxytag: member="mrpt::hwdrivers::CHokuyoURG::initialize" ref="aa59ba12bc09efa95df4e84b8b0982bca" args="()" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">void mrpt::hwdrivers::CHokuyoURG::initialize </td> <td>(</td> <td class="paramname"></td><td>)</td> <td><code> [private, virtual]</code></td> </tr> </table> </div> <div class="memdoc"> <p>Turns the laser on. </p> <p>Reimplemented from <a class="el" href="classmrpt_1_1hwdrivers_1_1_c_generic_sensor.html#a775782a8fef4c5cd11265024431ed8c3">mrpt::hwdrivers::CGenericSensor</a>.</p> </div> </div> <a class="anchor" id="a6f34c5b79a128d1cb6b47eaa987ecb51"></a><!-- doxytag: member="mrpt::hwdrivers::CHokuyoURG::loadConfig" ref="a6f34c5b79a128d1cb6b47eaa987ecb51" args="(const mrpt::utils::CConfigFileBase &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="ac72eb2cedacdcadf0a6405d0d1003f04"></a><!-- doxytag: member="mrpt::hwdrivers::CHokuyoURG::loadConfig_sensorSpecific" ref="ac72eb2cedacdcadf0a6405d0d1003f04" 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::CHokuyoURG::loadConfig_sensorSpecific </td> <td>(</td> <td class="paramtype">const <a class="el" href="classmrpt_1_1utils_1_1_c_config_file_base.html">mrpt::utils::CConfigFileBase</a> & </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>Loads specific configuration for the device from a given source of configuration parameters, for example, an ".ini" file, loading from the section "[iniSection]" (see <a class="el" href="classmrpt_1_1utils_1_1_c_config_file_base.html" title="This class allows loading and storing values and vectors of different types from a configuration text...">utils::CConfigFileBase</a> and derived classes) See <a class="el" href="classmrpt_1_1hwdrivers_1_1_c_hokuyo_u_r_g.html" title="This software driver implements the protocol SCIP-2.0 for interfacing HOKUYO URG, UTM and UXM laser s...">hwdrivers::CHokuyoURG</a> for the possible parameters. </p> <p>Implements <a class="el" href="classmrpt_1_1hwdrivers_1_1_c_generic_sensor.html#ac867f9cb46c72b4386a5488f171f178f">mrpt::hwdrivers::CGenericSensor</a>.</p> </div> </div> <a class="anchor" id="ae90d3b0b79158e678ede1537e0a9e900"></a><!-- doxytag: member="mrpt::hwdrivers::CHokuyoURG::loadExclusionAreas" ref="ae90d3b0b79158e678ede1537e0a9e900" args="(const mrpt::utils::CConfigFileBase &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::CHokuyoURG::printf_debug" ref="ab78281b5d70d6e295a8527a10fea66de" args="(const char *frmt,...)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">static void mrpt::utils::CDebugOutputCapable::printf_debug </td> <td>(</td> <td class="paramtype">const char * </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="a0dc63135d809c41f2a374fb35ff1614e"></a><!-- doxytag: member="mrpt::hwdrivers::CHokuyoURG::purgeBuffers" ref="a0dc63135d809c41f2a374fb35ff1614e" args="()" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">void mrpt::hwdrivers::CHokuyoURG::purgeBuffers </td> <td>(</td> <td class="paramname"></td><td>)</td> <td></td> </tr> </table> </div> <div class="memdoc"> <p>Empties the RX buffers of the serial port. </p> </div> </div> <a class="anchor" id="a03f3acbef537e9efa5793809adba2034"></a><!-- doxytag: member="mrpt::hwdrivers::CHokuyoURG::receiveResponse" ref="a03f3acbef537e9efa5793809adba2034" args="(const char *sentCmd_forEchoVerification, char &rcv_status0, char &rcv_status1, char *rcv_data, int &rcv_dataLength)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">bool mrpt::hwdrivers::CHokuyoURG::receiveResponse </td> <td>(</td> <td class="paramtype">const char * </td> <td class="paramname"><em>sentCmd_forEchoVerification</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">char & </td> <td class="paramname"><em>rcv_status0</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">char & </td> <td class="paramname"><em>rcv_status1</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">char * </td> <td class="paramname"><em>rcv_data</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">int & </td> <td class="paramname"><em>rcv_dataLength</em> </td> </tr> <tr> <td></td> <td>)</td> <td></td><td><code> [private]</code></td> </tr> </table> </div> <div class="memdoc"> <p>Waits for a response from the device. </p> <dl class="return"><dt><b>Returns:</b></dt><dd>false on any error </dd></dl> </div> </div> <a class="anchor" id="a640e1b953865c3d2e881bbd2c1a81428"></a><!-- doxytag: member="mrpt::hwdrivers::CHokuyoURG::registerClass" ref="a640e1b953865c3d2e881bbd2c1a81428" args="(const TSensorClassId *pNewClass)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">static void mrpt::hwdrivers::CGenericSensor::registerClass </td> <td>(</td> <td class="paramtype">const <a class="el" href="structmrpt_1_1hwdrivers_1_1_t_sensor_class_id.html">TSensorClassId</a> * </td> <td class="paramname"><em>pNewClass</em></td><td>)</td> <td><code> [static, inherited]</code></td> </tr> </table> </div> <div class="memdoc"> <p>Register a class into the internal list of "CGenericSensor" descendents. </p> <p>Used internally in the macros DEFINE_GENERIC_SENSOR, etc...</p> <p>Can be used as "CGenericSensor::registerClass( SENSOR_CLASS_ID(CMySensor) );" if building custom sensors outside mrpt libraries in user code. </p> </div> </div> <a class="anchor" id="aff4b208b901763557196b9326901c582"></a><!-- doxytag: member="mrpt::hwdrivers::CHokuyoURG::setExternalImageFormat" ref="aff4b208b901763557196b9326901c582" args="(const std::string &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::CHokuyoURG::setExternalImageJPEGQuality" ref="aca05f7ee991ee112b5e9f8f289a9ee94" args="(const unsigned int quality)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">void mrpt::hwdrivers::CGenericSensor::setExternalImageJPEGQuality </td> <td>(</td> <td class="paramtype">const unsigned int </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="a534585372e07284900b13f2e303bc024"></a><!-- doxytag: member="mrpt::hwdrivers::CHokuyoURG::setHighBaudrate" ref="a534585372e07284900b13f2e303bc024" args="()" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">bool mrpt::hwdrivers::CHokuyoURG::setHighBaudrate </td> <td>(</td> <td class="paramname"></td><td>)</td> <td><code> [private]</code></td> </tr> </table> </div> <div class="memdoc"> <p>Passes to 115200bps bitrate. </p> <dl class="return"><dt><b>Returns:</b></dt><dd>false on any error </dd></dl> </div> </div> <a class="anchor" id="a3a5440a364d483cde1a53e76310ce321"></a><!-- doxytag: member="mrpt::hwdrivers::CHokuyoURG::setHighSensitivityMode" ref="a3a5440a364d483cde1a53e76310ce321" args="(bool enabled)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">bool mrpt::hwdrivers::CHokuyoURG::setHighSensitivityMode </td> <td>(</td> <td class="paramtype">bool </td> <td class="paramname"><em>enabled</em></td><td>)</td> <td></td> </tr> </table> </div> <div class="memdoc"> <p>Changes the high sensitivity mode (HS) (default: false) </p> <dl class="return"><dt><b>Returns:</b></dt><dd>false on any error </dd></dl> </div> </div> <a class="anchor" id="a493faccb1583d35dd08bd930835eb8e5"></a><!-- doxytag: member="mrpt::hwdrivers::CHokuyoURG::setIPandPort" ref="a493faccb1583d35dd08bd930835eb8e5" args="(const std::string &ip, const unsigned int &port)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">void mrpt::hwdrivers::CHokuyoURG::setIPandPort </td> <td>(</td> <td class="paramtype">const <a class="el" href="classstd_1_1string.html">std::string</a> & </td> <td class="paramname"><em>ip</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">const unsigned int & </td> <td class="paramname"><em>port</em> </td> </tr> <tr> <td></td> <td>)</td> <td></td><td><code> [inline]</code></td> </tr> </table> </div> <div class="memdoc"> <p>Set the ip direction and port to connect using Ethernet communication. </p> <p>Definition at line <a class="el" href="_c_hokuyo_u_r_g_8h_source.html#l00196">196</a> of file <a class="el" href="_c_hokuyo_u_r_g_8h_source.html">CHokuyoURG.h</a>.</p> </div> </div> <a class="anchor" id="a44c74275800789266e65c34258e6ffe4"></a><!-- doxytag: member="mrpt::hwdrivers::CHokuyoURG::setMotorSpeed" ref="a44c74275800789266e65c34258e6ffe4" args="(int motoSpeed_rpm)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">bool mrpt::hwdrivers::CHokuyoURG::setMotorSpeed </td> <td>(</td> <td class="paramtype">int </td> <td class="paramname"><em>motoSpeed_rpm</em></td><td>)</td> <td><code> [private]</code></td> </tr> </table> </div> <div class="memdoc"> <p>Changes the motor speed in rpm's (default 600rpm) </p> <dl class="return"><dt><b>Returns:</b></dt><dd>false on any error </dd></dl> </div> </div> <a class="anchor" id="afa55ff06dbf360c8f631d371d6ebe35d"></a><!-- doxytag: member="mrpt::hwdrivers::CHokuyoURG::setPathForExternalImages" ref="afa55ff06dbf360c8f631d371d6ebe35d" args="(const std::string &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="a989289ffb6072e3f3493ab9fb5720b6e"></a><!-- doxytag: member="mrpt::hwdrivers::CHokuyoURG::setReducedFOV" ref="a989289ffb6072e3f3493ab9fb5720b6e" args="(const double fov)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">void mrpt::hwdrivers::CHokuyoURG::setReducedFOV </td> <td>(</td> <td class="paramtype">const double </td> <td class="paramname"><em>fov</em></td><td>)</td> <td><code> [inline]</code></td> </tr> </table> </div> <div class="memdoc"> <p>If called (before calling "turnOn"), the field of view of the laser is reduced to the given range (in radians), discarding the rest of measures. </p> <p>Call with "0" to disable this reduction again (the default). </p> <p>Definition at line <a class="el" href="_c_hokuyo_u_r_g_8h_source.html#l00204">204</a> of file <a class="el" href="_c_hokuyo_u_r_g_8h_source.html">CHokuyoURG.h</a>.</p> </div> </div> <a class="anchor" id="a044c1340c4b90957250f63fa89189036"></a><!-- doxytag: member="mrpt::hwdrivers::CHokuyoURG::setSensorLabel" ref="a044c1340c4b90957250f63fa89189036" args="(const std::string &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="a649938742b4b547472a8198daa5e3ad6"></a><!-- doxytag: member="mrpt::hwdrivers::CHokuyoURG::setSerialPort" ref="a649938742b4b547472a8198daa5e3ad6" args="(const std::string &port_name)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">void mrpt::hwdrivers::CHokuyoURG::setSerialPort </td> <td>(</td> <td class="paramtype">const <a class="el" href="classstd_1_1string.html">std::string</a> & </td> <td class="paramname"><em>port_name</em></td><td>)</td> <td><code> [inline]</code></td> </tr> </table> </div> <div class="memdoc"> <p>If set to non-empty, the serial port will be attempted to be opened automatically when this class is first used to request data from the laser. </p> <p>Definition at line <a class="el" href="_c_hokuyo_u_r_g_8h_source.html#l00193">193</a> of file <a class="el" href="_c_hokuyo_u_r_g_8h_source.html">CHokuyoURG.h</a>.</p> </div> </div> <a class="anchor" id="ac9b357d18e13a33eb472222c4b72c843"></a><!-- doxytag: member="mrpt::hwdrivers::CHokuyoURG::setVerbose" ref="ac9b357d18e13a33eb472222c4b72c843" args="(bool enable=true)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">void mrpt::hwdrivers::CHokuyoURG::setVerbose </td> <td>(</td> <td class="paramtype">bool </td> <td class="paramname"><em>enable</em> = <code>true</code></td><td>)</td> <td><code> [inline]</code></td> </tr> </table> </div> <div class="memdoc"> <p>Definition at line <a class="el" href="_c_hokuyo_u_r_g_8h_source.html#l00211">211</a> of file <a class="el" href="_c_hokuyo_u_r_g_8h_source.html">CHokuyoURG.h</a>.</p> </div> </div> <a class="anchor" id="ad8edc0bf4eb2ec66e2b5acfc536c19bb"></a><!-- doxytag: member="mrpt::hwdrivers::CHokuyoURG::startScanningMode" ref="ad8edc0bf4eb2ec66e2b5acfc536c19bb" args="()" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">bool mrpt::hwdrivers::CHokuyoURG::startScanningMode </td> <td>(</td> <td class="paramname"></td><td>)</td> <td><code> [private]</code></td> </tr> </table> </div> <div class="memdoc"> <p>Start the scanning mode, using parameters stored in the object (loaded from the .ini file) After this command the device will start to send scans until "switchLaserOff" is called. </p> <dl class="return"><dt><b>Returns:</b></dt><dd>false on any error </dd></dl> </div> </div> <a class="anchor" id="abea22b2813cb62bdba1dbb5902c139a9"></a><!-- doxytag: member="mrpt::hwdrivers::CHokuyoURG::switchLaserOff" ref="abea22b2813cb62bdba1dbb5902c139a9" args="()" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">bool mrpt::hwdrivers::CHokuyoURG::switchLaserOff </td> <td>(</td> <td class="paramname"></td><td>)</td> <td><code> [private]</code></td> </tr> </table> </div> <div class="memdoc"> <p>Switchs the laser off. </p> <dl class="return"><dt><b>Returns:</b></dt><dd>false on any error </dd></dl> </div> </div> <a class="anchor" id="af58cf18299f447448ff2130fd566e3eb"></a><!-- doxytag: member="mrpt::hwdrivers::CHokuyoURG::switchLaserOn" ref="af58cf18299f447448ff2130fd566e3eb" args="()" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">bool mrpt::hwdrivers::CHokuyoURG::switchLaserOn </td> <td>(</td> <td class="paramname"></td><td>)</td> <td><code> [private]</code></td> </tr> </table> </div> <div class="memdoc"> <p>Switchs the laser on. </p> <dl class="return"><dt><b>Returns:</b></dt><dd>false on any error </dd></dl> </div> </div> <a class="anchor" id="adabd7857b1509d81991d47445943f33b"></a><!-- doxytag: member="mrpt::hwdrivers::CHokuyoURG::turnOff" ref="adabd7857b1509d81991d47445943f33b" args="()" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">bool mrpt::hwdrivers::CHokuyoURG::turnOff </td> <td>(</td> <td class="paramname"></td><td>)</td> <td><code> [virtual]</code></td> </tr> </table> </div> <div class="memdoc"> <p>Disables the scanning mode (this can be used to turn the device in low energy mode, if available) </p> <dl class="return"><dt><b>Returns:</b></dt><dd>If everything works "true", or "false" if there is any error. </dd></dl> <p>Implements <a class="el" href="classmrpt_1_1hwdrivers_1_1_c2_d_range_finder_abstract.html#af0e4d6b3051435e235e9f92924cce968">mrpt::hwdrivers::C2DRangeFinderAbstract</a>.</p> </div> </div> <a class="anchor" id="aca92934a8fb01a12b3419175a0cc9d34"></a><!-- doxytag: member="mrpt::hwdrivers::CHokuyoURG::turnOn" ref="aca92934a8fb01a12b3419175a0cc9d34" args="()" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">bool mrpt::hwdrivers::CHokuyoURG::turnOn </td> <td>(</td> <td class="paramname"></td><td>)</td> <td><code> [virtual]</code></td> </tr> </table> </div> <div class="memdoc"> <p>Enables the scanning mode (which may depend on the specific laser device); this must be called before asking for observations to assure that the protocol has been initializated. </p> <dl class="return"><dt><b>Returns:</b></dt><dd>If everything works "true", or "false" if there is any error. </dd></dl> <p>Implements <a class="el" href="classmrpt_1_1hwdrivers_1_1_c2_d_range_finder_abstract.html#a2ba583282b207b13ee413d0d001e9d1a">mrpt::hwdrivers::C2DRangeFinderAbstract</a>.</p> </div> </div> <hr/><h2>Member Data Documentation</h2> <a class="anchor" id="a5b714bf193b24aa61d51c81210173223"></a><!-- doxytag: member="mrpt::hwdrivers::CHokuyoURG::m_com_port" ref="a5b714bf193b24aa61d51c81210173223" args="" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname"><a class="el" href="classstd_1_1string.html">std::string</a> <a class="el" href="classmrpt_1_1hwdrivers_1_1_c_hokuyo_u_r_g.html#a5b714bf193b24aa61d51c81210173223">mrpt::hwdrivers::CHokuyoURG::m_com_port</a><code> [protected]</code></td> </tr> </table> </div> <div class="memdoc"> <p>If set to non-empty, the serial port will be attempted to be opened automatically when this class is first used to request data from the laser. </p> <p>Definition at line <a class="el" href="_c_hokuyo_u_r_g_8h_source.html#l00221">221</a> of file <a class="el" href="_c_hokuyo_u_r_g_8h_source.html">CHokuyoURG.h</a>.</p> </div> </div> <a class="anchor" id="a7d153c5247b0180b6b9df5054d67b183"></a><!-- doxytag: member="mrpt::hwdrivers::CHokuyoURG::m_external_images_format" ref="a7d153c5247b0180b6b9df5054d67b183" args="" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname"><a class="el" href="classstd_1_1string.html">std::string</a> <a class="el" href="classmrpt_1_1hwdrivers_1_1_c_generic_sensor.html#a7d153c5247b0180b6b9df5054d67b183">mrpt::hwdrivers::CGenericSensor::m_external_images_format</a><code> [protected, inherited]</code></td> </tr> </table> </div> <div class="memdoc"> <p>The extension ("jpg","gif","png",...) that determines the format of images saved externally. </p> <dl class="see"><dt><b>See also:</b></dt><dd><a class="el" href="classmrpt_1_1hwdrivers_1_1_c_generic_sensor.html#afa55ff06dbf360c8f631d371d6ebe35d" title="Set the path where to save off-rawlog image files (will be ignored in those sensors where this is not...">setPathForExternalImages</a> </dd></dl> <p>Definition at line <a class="el" href="_c_generic_sensor_8h_source.html#l00139">139</a> of file <a class="el" href="_c_generic_sensor_8h_source.html">CGenericSensor.h</a>.</p> </div> </div> <a class="anchor" id="aeac331931fce4890793cd7f1b5f6eb3e"></a><!-- doxytag: member="mrpt::hwdrivers::CHokuyoURG::m_external_images_jpeg_quality" ref="aeac331931fce4890793cd7f1b5f6eb3e" args="" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">unsigned int <a class="el" href="classmrpt_1_1hwdrivers_1_1_c_generic_sensor.html#aeac331931fce4890793cd7f1b5f6eb3e">mrpt::hwdrivers::CGenericSensor::m_external_images_jpeg_quality</a><code> [protected, inherited]</code></td> </tr> </table> </div> <div class="memdoc"> <p>For JPEG images, the quality (default=95%). </p> <p>Definition at line <a class="el" href="_c_generic_sensor_8h_source.html#l00140">140</a> of file <a class="el" href="_c_generic_sensor_8h_source.html">CGenericSensor.h</a>.</p> </div> </div> <a class="anchor" id="aa98622fc3f9f7f273777736761f96d8d"></a><!-- doxytag: member="mrpt::hwdrivers::CHokuyoURG::m_firstRange" ref="aa98622fc3f9f7f273777736761f96d8d" args="" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">int <a class="el" href="classmrpt_1_1hwdrivers_1_1_c_hokuyo_u_r_g.html#aa98622fc3f9f7f273777736761f96d8d">mrpt::hwdrivers::CHokuyoURG::m_firstRange</a><code> [private]</code></td> </tr> </table> </div> <div class="memdoc"> <p>Definition at line <a class="el" href="_c_hokuyo_u_r_g_8h_source.html#l00092">92</a> of file <a class="el" href="_c_hokuyo_u_r_g_8h_source.html">CHokuyoURG.h</a>.</p> </div> </div> <a class="anchor" id="a587daaab2cb302eb4cc72eb1396d5f21"></a><!-- doxytag: member="mrpt::hwdrivers::CHokuyoURG::m_grab_decimation" ref="a587daaab2cb302eb4cc72eb1396d5f21" args="" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">size_t <a class="el" href="classmrpt_1_1hwdrivers_1_1_c_generic_sensor.html#a587daaab2cb302eb4cc72eb1396d5f21">mrpt::hwdrivers::CGenericSensor::m_grab_decimation</a><code> [protected, inherited]</code></td> </tr> </table> </div> <div class="memdoc"> <p>If set to N>=2, only 1 out of N observations will be saved to m_objList. </p> <p>Definition at line <a class="el" href="_c_generic_sensor_8h_source.html#l00127">127</a> of file <a class="el" href="_c_generic_sensor_8h_source.html">CGenericSensor.h</a>.</p> </div> </div> <a class="anchor" id="a564a6c2bc7f1baaea9a9d90112a7b376"></a><!-- doxytag: member="mrpt::hwdrivers::CHokuyoURG::m_grab_decimation_counter" ref="a564a6c2bc7f1baaea9a9d90112a7b376" args="" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">size_t <a class="el" href="classmrpt_1_1hwdrivers_1_1_c_generic_sensor.html#a564a6c2bc7f1baaea9a9d90112a7b376">mrpt::hwdrivers::CGenericSensor::m_grab_decimation_counter</a><code> [protected, inherited]</code></td> </tr> </table> </div> <div class="memdoc"> <p>Used when "m_grab_decimation" is enabled. </p> <p>Definition at line <a class="el" href="_c_generic_sensor_8h_source.html#l00132">132</a> of file <a class="el" href="_c_generic_sensor_8h_source.html">CGenericSensor.h</a>.</p> </div> </div> <a class="anchor" id="a2f474244d9a69dfa1524c86ef0d1029d"></a><!-- doxytag: member="mrpt::hwdrivers::CHokuyoURG::m_highSensMode" ref="a2f474244d9a69dfa1524c86ef0d1029d" args="" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">bool <a class="el" href="classmrpt_1_1hwdrivers_1_1_c_hokuyo_u_r_g.html#a2f474244d9a69dfa1524c86ef0d1029d">mrpt::hwdrivers::CHokuyoURG::m_highSensMode</a><code> [private]</code></td> </tr> </table> </div> <div class="memdoc"> <p>High sensitivity [HS] mode (default: false) </p> <p>Definition at line <a class="el" href="_c_hokuyo_u_r_g_8h_source.html#l00100">100</a> of file <a class="el" href="_c_hokuyo_u_r_g_8h_source.html">CHokuyoURG.h</a>.</p> </div> </div> <a class="anchor" id="aea0bf2150874a54b4d3ca6d0587163bf"></a><!-- doxytag: member="mrpt::hwdrivers::CHokuyoURG::m_I_am_owner_serial_port" ref="aea0bf2150874a54b4d3ca6d0587163bf" args="" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">bool <a class="el" href="classmrpt_1_1hwdrivers_1_1_c_hokuyo_u_r_g.html#aea0bf2150874a54b4d3ca6d0587163bf">mrpt::hwdrivers::CHokuyoURG::m_I_am_owner_serial_port</a><code> [protected]</code></td> </tr> </table> </div> <div class="memdoc"> <p>Definition at line <a class="el" href="_c_hokuyo_u_r_g_8h_source.html#l00229">229</a> of file <a class="el" href="_c_hokuyo_u_r_g_8h_source.html">CHokuyoURG.h</a>.</p> </div> </div> <a class="anchor" id="adaae01b49f030a3e545abd0923e229d7"></a><!-- doxytag: member="mrpt::hwdrivers::CHokuyoURG::m_ip_dir" ref="adaae01b49f030a3e545abd0923e229d7" args="" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname"><a class="el" href="classstd_1_1string.html">std::string</a> <a class="el" href="classmrpt_1_1hwdrivers_1_1_c_hokuyo_u_r_g.html#adaae01b49f030a3e545abd0923e229d7">mrpt::hwdrivers::CHokuyoURG::m_ip_dir</a><code> [protected]</code></td> </tr> </table> </div> <div class="memdoc"> <p>If set to non-empty and m_port_dir too, the program will try to connect to a Hokuyo using Ethernet communication. </p> <p>Definition at line <a class="el" href="_c_hokuyo_u_r_g_8h_source.html#l00223">223</a> of file <a class="el" href="_c_hokuyo_u_r_g_8h_source.html">CHokuyoURG.h</a>.</p> </div> </div> <a class="anchor" id="afd21b67347b033fb077b9d4eb920291b"></a><!-- doxytag: member="mrpt::hwdrivers::CHokuyoURG::m_lastRange" ref="afd21b67347b033fb077b9d4eb920291b" args="" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">int <a class="el" href="classmrpt_1_1hwdrivers_1_1_c_hokuyo_u_r_g.html#afd21b67347b033fb077b9d4eb920291b">mrpt::hwdrivers::CHokuyoURG::m_lastRange</a><code> [private]</code></td> </tr> </table> </div> <div class="memdoc"> <p>The first and last ranges to consider from the scan. </p> <p>Definition at line <a class="el" href="_c_hokuyo_u_r_g_8h_source.html#l00092">92</a> of file <a class="el" href="_c_hokuyo_u_r_g_8h_source.html">CHokuyoURG.h</a>.</p> </div> </div> <a class="anchor" id="aed9b38ef8406bf96e56da57d66423d13"></a><!-- doxytag: member="mrpt::hwdrivers::CHokuyoURG::m_lastSentMeasCmd" ref="aed9b38ef8406bf96e56da57d66423d13" args="" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname"><a class="el" href="classstd_1_1string.html">std::string</a> <a class="el" href="classmrpt_1_1hwdrivers_1_1_c_hokuyo_u_r_g.html#aed9b38ef8406bf96e56da57d66423d13">mrpt::hwdrivers::CHokuyoURG::m_lastSentMeasCmd</a><code> [private]</code></td> </tr> </table> </div> <div class="memdoc"> <p>The last sent measurement command (MDXXX), including the last 0x0A. </p> <p>Definition at line <a class="el" href="_c_hokuyo_u_r_g_8h_source.html#l00097">97</a> of file <a class="el" href="_c_hokuyo_u_r_g_8h_source.html">CHokuyoURG.h</a>.</p> </div> </div> <a class="anchor" id="a6f35448579bd4d27cd4f4685b31a8cc0"></a><!-- doxytag: member="mrpt::hwdrivers::CHokuyoURG::m_max_queue_len" ref="a6f35448579bd4d27cd4f4685b31a8cc0" args="" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">size_t <a class="el" href="classmrpt_1_1hwdrivers_1_1_c_generic_sensor.html#a6f35448579bd4d27cd4f4685b31a8cc0">mrpt::hwdrivers::CGenericSensor::m_max_queue_len</a><code> [protected, inherited]</code></td> </tr> </table> </div> <div class="memdoc"> <p>See <a class="el" href="classmrpt_1_1hwdrivers_1_1_c_generic_sensor.html" title="A generic interface for a wide-variety of sensors designed to be used in the application RawLogGrabbe...">CGenericSensor</a>. </p> <p>Definition at line <a class="el" href="_c_generic_sensor_8h_source.html#l00126">126</a> of file <a class="el" href="_c_generic_sensor_8h_source.html">CGenericSensor.h</a>.</p> </div> </div> <a class="anchor" id="af778f907212ac6427fe4ea9ce99fb881"></a><!-- doxytag: member="mrpt::hwdrivers::CHokuyoURG::m_motorSpeed_rpm" ref="af778f907212ac6427fe4ea9ce99fb881" args="" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">int <a class="el" href="classmrpt_1_1hwdrivers_1_1_c_hokuyo_u_r_g.html#af778f907212ac6427fe4ea9ce99fb881">mrpt::hwdrivers::CHokuyoURG::m_motorSpeed_rpm</a><code> [private]</code></td> </tr> </table> </div> <div class="memdoc"> <p>The motor speed (default=600rpm) </p> <p>Definition at line <a class="el" href="_c_hokuyo_u_r_g_8h_source.html#l00093">93</a> of file <a class="el" href="_c_hokuyo_u_r_g_8h_source.html">CHokuyoURG.h</a>.</p> </div> </div> <a class="anchor" id="a06fe84426b813b9c1966c12bb69e6ee6"></a><!-- doxytag: member="mrpt::hwdrivers::CHokuyoURG::m_path_for_external_images" ref="a06fe84426b813b9c1966c12bb69e6ee6" args="" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname"><a class="el" href="classstd_1_1string.html">std::string</a> <a class="el" href="classmrpt_1_1hwdrivers_1_1_c_generic_sensor.html#a06fe84426b813b9c1966c12bb69e6ee6">mrpt::hwdrivers::CGenericSensor::m_path_for_external_images</a><code> [protected, inherited]</code></td> </tr> </table> </div> <div class="memdoc"> <p>The path where to save off-rawlog images: empty means save images embedded in the rawlog. </p> <p>Definition at line <a class="el" href="_c_generic_sensor_8h_source.html#l00138">138</a> of file <a class="el" href="_c_generic_sensor_8h_source.html">CGenericSensor.h</a>.</p> </div> </div> <a class="anchor" id="a3003d7d83ccf8ab3cf8661d28c455895"></a><!-- doxytag: member="mrpt::hwdrivers::CHokuyoURG::m_port_dir" ref="a3003d7d83ccf8ab3cf8661d28c455895" args="" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">unsigned int <a class="el" href="classmrpt_1_1hwdrivers_1_1_c_hokuyo_u_r_g.html#a3003d7d83ccf8ab3cf8661d28c455895">mrpt::hwdrivers::CHokuyoURG::m_port_dir</a><code> [protected]</code></td> </tr> </table> </div> <div class="memdoc"> <p>If set to non-empty and m_ip_dir too, the program will try to connect to a Hokuyo using Ethernet communication. </p> <p>Definition at line <a class="el" href="_c_hokuyo_u_r_g_8h_source.html#l00224">224</a> of file <a class="el" href="_c_hokuyo_u_r_g_8h_source.html">CHokuyoURG.h</a>.</p> </div> </div> <a class="anchor" id="a77094b791971e8f42b94de34f4adb0f7"></a><!-- doxytag: member="mrpt::hwdrivers::CHokuyoURG::m_process_rate" ref="a77094b791971e8f42b94de34f4adb0f7" args="" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">double <a class="el" href="classmrpt_1_1hwdrivers_1_1_c_generic_sensor.html#a77094b791971e8f42b94de34f4adb0f7">mrpt::hwdrivers::CGenericSensor::m_process_rate</a><code> [protected, inherited]</code></td> </tr> </table> </div> <div class="memdoc"> <p>See <a class="el" href="classmrpt_1_1hwdrivers_1_1_c_generic_sensor.html" title="A generic interface for a wide-variety of sensors designed to be used in the application RawLogGrabbe...">CGenericSensor</a>. </p> <p>Definition at line <a class="el" href="_c_generic_sensor_8h_source.html#l00125">125</a> of file <a class="el" href="_c_generic_sensor_8h_source.html">CGenericSensor.h</a>.</p> </div> </div> <a class="anchor" id="a84157502f5a8573e5a729ff6bb47894d"></a><!-- doxytag: member="mrpt::hwdrivers::CHokuyoURG::m_reduced_fov" ref="a84157502f5a8573e5a729ff6bb47894d" args="" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">double <a class="el" href="classmrpt_1_1hwdrivers_1_1_c_hokuyo_u_r_g.html#a84157502f5a8573e5a729ff6bb47894d">mrpt::hwdrivers::CHokuyoURG::m_reduced_fov</a><code> [protected]</code></td> </tr> </table> </div> <div class="memdoc"> <p>Used to reduce artificially the interval of scan ranges. </p> <p>Definition at line <a class="el" href="_c_hokuyo_u_r_g_8h_source.html#l00219">219</a> of file <a class="el" href="_c_hokuyo_u_r_g_8h_source.html">CHokuyoURG.h</a>.</p> </div> </div> <a class="anchor" id="a80b98e185edc36578a7682fa8a3c10e5"></a><!-- doxytag: member="mrpt::hwdrivers::CHokuyoURG::m_rx_buffer" ref="a80b98e185edc36578a7682fa8a3c10e5" args="" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname"><a class="el" href="classmrpt_1_1utils_1_1circular__buffer.html">mrpt::utils::circular_buffer</a><uint8_t> <a class="el" href="classmrpt_1_1hwdrivers_1_1_c_hokuyo_u_r_g.html#a80b98e185edc36578a7682fa8a3c10e5">mrpt::hwdrivers::CHokuyoURG::m_rx_buffer</a><code> [private]</code></td> </tr> </table> </div> <div class="memdoc"> <p>Auxiliary buffer for readings. </p> <p>Definition at line <a class="el" href="_c_hokuyo_u_r_g_8h_source.html#l00095">95</a> of file <a class="el" href="_c_hokuyo_u_r_g_8h_source.html">CHokuyoURG.h</a>.</p> </div> </div> <a class="anchor" id="a008022bd5d84b46985bb83af7d9a4c24"></a><!-- doxytag: member="mrpt::hwdrivers::CHokuyoURG::m_sensor_info" ref="a008022bd5d84b46985bb83af7d9a4c24" args="" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname"><a class="el" href="structmrpt_1_1hwdrivers_1_1_c_hokuyo_u_r_g_1_1_t_sensor_info.html">TSensorInfo</a> <a class="el" href="classmrpt_1_1hwdrivers_1_1_c_hokuyo_u_r_g.html#a008022bd5d84b46985bb83af7d9a4c24">mrpt::hwdrivers::CHokuyoURG::m_sensor_info</a><code> [protected]</code></td> </tr> </table> </div> <div class="memdoc"> <p>The information gathered when the laser is first open. </p> <p>Definition at line <a class="el" href="_c_hokuyo_u_r_g_8h_source.html#l00227">227</a> of file <a class="el" href="_c_hokuyo_u_r_g_8h_source.html">CHokuyoURG.h</a>.</p> </div> </div> <a class="anchor" id="accd4de8daeb5966c191fbc62a5d90355"></a><!-- doxytag: member="mrpt::hwdrivers::CHokuyoURG::m_sensorLabel" ref="accd4de8daeb5966c191fbc62a5d90355" args="" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname"><a class="el" href="classstd_1_1string.html">std::string</a> <a class="el" href="classmrpt_1_1hwdrivers_1_1_c_generic_sensor.html#accd4de8daeb5966c191fbc62a5d90355">mrpt::hwdrivers::CGenericSensor::m_sensorLabel</a><code> [protected, inherited]</code></td> </tr> </table> </div> <div class="memdoc"> <p>See <a class="el" href="classmrpt_1_1hwdrivers_1_1_c_generic_sensor.html" title="A generic interface for a wide-variety of sensors designed to be used in the application RawLogGrabbe...">CGenericSensor</a>. </p> <p>Definition at line <a class="el" href="_c_generic_sensor_8h_source.html#l00128">128</a> of file <a class="el" href="_c_generic_sensor_8h_source.html">CGenericSensor.h</a>.</p> </div> </div> <a class="anchor" id="a8b7b2a11b7fb90beac8b704fbb2d6391"></a><!-- doxytag: member="mrpt::hwdrivers::CHokuyoURG::m_sensorPose" ref="a8b7b2a11b7fb90beac8b704fbb2d6391" args="" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname"><a class="el" href="classmrpt_1_1poses_1_1_c_pose3_d.html">poses::CPose3D</a> <a class="el" href="classmrpt_1_1hwdrivers_1_1_c_hokuyo_u_r_g.html#a8b7b2a11b7fb90beac8b704fbb2d6391">mrpt::hwdrivers::CHokuyoURG::m_sensorPose</a><code> [private]</code></td> </tr> </table> </div> <div class="memdoc"> <p>The sensor 6D pose: </p> <p>Definition at line <a class="el" href="_c_hokuyo_u_r_g_8h_source.html#l00094">94</a> of file <a class="el" href="_c_hokuyo_u_r_g_8h_source.html">CHokuyoURG.h</a>.</p> </div> </div> <a class="anchor" id="ab3e8a003783acd03bfd64716640fd67c"></a><!-- doxytag: member="mrpt::hwdrivers::CHokuyoURG::m_state" ref="ab3e8a003783acd03bfd64716640fd67c" args="" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname"><a class="el" href="classmrpt_1_1hwdrivers_1_1_c_generic_sensor.html#a44262a8f1ffcc87871fbd717d3fc2cab">TSensorState</a> <a class="el" href="classmrpt_1_1hwdrivers_1_1_c_generic_sensor.html#ab3e8a003783acd03bfd64716640fd67c">mrpt::hwdrivers::CGenericSensor::m_state</a><code> [protected, inherited]</code></td> </tr> </table> </div> <div class="memdoc"> <p>Definition at line <a class="el" href="_c_generic_sensor_8h_source.html#l00134">134</a> of file <a class="el" href="_c_generic_sensor_8h_source.html">CGenericSensor.h</a>.</p> </div> </div> <a class="anchor" id="acc3dd38ff320d03d0a2bce7e44e8a2d9"></a><!-- doxytag: member="mrpt::hwdrivers::CHokuyoURG::m_stream" ref="acc3dd38ff320d03d0a2bce7e44e8a2d9" args="" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname"><a class="el" href="classmrpt_1_1utils_1_1_c_stream.html">utils::CStream</a>* <a class="el" href="classmrpt_1_1hwdrivers_1_1_c2_d_range_finder_abstract.html#acc3dd38ff320d03d0a2bce7e44e8a2d9">mrpt::hwdrivers::C2DRangeFinderAbstract::m_stream</a><code> [protected, inherited]</code></td> </tr> </table> </div> <div class="memdoc"> <p>The I/O channel (will be NULL if not bound). </p> <p>Definition at line <a class="el" href="_c2_d_range_finder_abstract_8h_source.html#l00081">81</a> of file <a class="el" href="_c2_d_range_finder_abstract_8h_source.html">C2DRangeFinderAbstract.h</a>.</p> </div> </div> <a class="anchor" id="a022ea533d54b0220d09e0e23c3c770e6"></a><!-- doxytag: member="mrpt::hwdrivers::CHokuyoURG::m_timeStartTT" ref="a022ea533d54b0220d09e0e23c3c770e6" args="" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname"><a class="el" href="group__time__date.html#ga42674286d8d56afea013b6329bb7327a">mrpt::system::TTimeStamp</a> <a class="el" href="classmrpt_1_1hwdrivers_1_1_c_hokuyo_u_r_g.html#a022ea533d54b0220d09e0e23c3c770e6">mrpt::hwdrivers::CHokuyoURG::m_timeStartTT</a><code> [protected]</code></td> </tr> </table> </div> <div class="memdoc"> <p>Definition at line <a class="el" href="_c_hokuyo_u_r_g_8h_source.html#l00232">232</a> of file <a class="el" href="_c_hokuyo_u_r_g_8h_source.html">CHokuyoURG.h</a>.</p> </div> </div> <a class="anchor" id="a2a25597fdbdca0945086a3a5ad8c0ed9"></a><!-- doxytag: member="mrpt::hwdrivers::CHokuyoURG::m_timeStartUI" ref="a2a25597fdbdca0945086a3a5ad8c0ed9" args="" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">uint32_t <a class="el" href="classmrpt_1_1hwdrivers_1_1_c_hokuyo_u_r_g.html#a2a25597fdbdca0945086a3a5ad8c0ed9">mrpt::hwdrivers::CHokuyoURG::m_timeStartUI</a><code> [protected]</code></td> </tr> </table> </div> <div class="memdoc"> <p>Time of the first data packet, for synchronization purposes. </p> <p>Definition at line <a class="el" href="_c_hokuyo_u_r_g_8h_source.html#l00231">231</a> of file <a class="el" href="_c_hokuyo_u_r_g_8h_source.html">CHokuyoURG.h</a>.</p> </div> </div> <a class="anchor" id="a5f8bf1fb50422e723ad1962fc33c14ba"></a><!-- doxytag: member="mrpt::hwdrivers::CHokuyoURG::m_verbose" ref="a5f8bf1fb50422e723ad1962fc33c14ba" args="" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">bool <a class="el" href="classmrpt_1_1hwdrivers_1_1_c_hokuyo_u_r_g.html#a5f8bf1fb50422e723ad1962fc33c14ba">mrpt::hwdrivers::CHokuyoURG::m_verbose</a><code> [private]</code></td> </tr> </table> </div> <div class="memdoc"> <p>Definition at line <a class="el" href="_c_hokuyo_u_r_g_8h_source.html#l00099">99</a> of file <a class="el" href="_c_hokuyo_u_r_g_8h_source.html">CHokuyoURG.h</a>.</p> </div> </div> </div> <br><hr><br> <table border="0" width="100%"> <tr> <td> Page generated by <a href="http://www.doxygen.org" target="_blank">Doxygen 1.7.5</a> for MRPT 0.9.5 SVN: at Sun Sep 25 17:20:18 UTC 2011</td><td></td> <td width="100"> </td> <td width="150"> </td></tr> </table> </body></html>