<!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::CRovio 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_rovio.html">CRovio</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-attribs">Public 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::CRovio 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::CRovio" --><hr/><a name="details" id="details"></a><h2>Detailed Description</h2> <div class="textblock"><p>A class to interface a Rovio robot (manufactured by WowWee). </p> <p>Supports: Simple motion commands, video streaming. </p> </div> <p><code>#include <<a class="el" href="_c_rovio_8h_source.html">mrpt/hwdrivers/CRovio.h</a>></code></p> <p><a href="classmrpt_1_1hwdrivers_1_1_c_rovio-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_rovio_1_1_t_encoders.html">TEncoders</a></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_rovio_1_1_t_options.html">TOptions</a></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_rovio_1_1_t_rovio_state.html">TRovioState</a></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_rovio.html#a4ae2b1916254750d8246dd0699253b9a">status</a> { <br/>   <a class="el" href="classmrpt_1_1hwdrivers_1_1_c_rovio.html#a4ae2b1916254750d8246dd0699253b9aa1e86d67a2765156046b3fab658475533">idle</a>, <a class="el" href="classmrpt_1_1hwdrivers_1_1_c_rovio.html#a4ae2b1916254750d8246dd0699253b9aae4fe27eed96cbb0076e12db1b89d0224">driving_home</a>, <a class="el" href="classmrpt_1_1hwdrivers_1_1_c_rovio.html#a4ae2b1916254750d8246dd0699253b9aa84caf482a698036904aa0c03e1c2e4ac">docking</a>, <a class="el" href="classmrpt_1_1hwdrivers_1_1_c_rovio.html#a4ae2b1916254750d8246dd0699253b9aab60df763fd72731711934097be8d3f2c">executing_path</a>, <br/>   <a class="el" href="classmrpt_1_1hwdrivers_1_1_c_rovio.html#a4ae2b1916254750d8246dd0699253b9aa8123b7057f5c035fafc4f8b96042bb2e">recording_path</a> <br/> }</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">void </td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1hwdrivers_1_1_c_rovio.html#a703feb30066e56fa05e915c21fa2ad50">initialize</a> ()</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Establish conection with Rovio and log in its system: Important, fill out "options" members *BEFORE* calling this method. <a href="#a703feb30066e56fa05e915c21fa2ad50"></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_rovio.html#af59574be5fca9f00d4274b18955d8f99">move</a> (char direction, int speed=5)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">move send Rovio the command to move in the specified direcction <a href="#af59574be5fca9f00d4274b18955d8f99"></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_rovio.html#a1e2dd99df10b312b6ad281e47ce1a10e">rotate</a> (char direction, int speed=5)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">rotate send Rovio the command to rotate in the specified direcction 'r'->right, 'l'->left <a href="#a1e2dd99df10b312b6ad281e47ce1a10e"></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_rovio.html#a44a28484fb767e00728c2acf18554fc3">takeHeadUp</a> ()</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Head positions. <a href="#a44a28484fb767e00728c2acf18554fc3"></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_rovio.html#a452e70ebab1b02e150d8a66402958bfb">takeHeadMiddle</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_rovio.html#a41d96bb0bda1c6485cfe5c6333e7a5c4">takeHeadDown</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_rovio.html#a50b08889c9980322fcae66f412acc910">pathRecord</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_rovio.html#ad8223434a8d282b829ba48bfeacb6499">pathRecordAbort</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_rovio.html#afde448410f63cdd809e845b9b2268fc1">pathRecordSave</a> (const <a class="el" href="classstd_1_1string.html">string</a> &path_name)</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_rovio.html#a38f4357625d94e52f01f0f746483ef86">pathDelete</a> (const <a class="el" href="classstd_1_1string.html">string</a> &path_name)</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_rovio.html#a634cf2f8ac8385285f02ec96b262ac46">pathGetList</a> (<a class="el" href="classstd_1_1string.html">string</a> &path_list)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Get list of saved paths. <a href="#a634cf2f8ac8385285f02ec96b262ac46"></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_rovio.html#a50df0e2671123a8e4221c48738a99320">pathRunForward</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_rovio.html#a6908b710f83d38478029a91e4a2cfee6">pathRunBackward</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_rovio.html#a9b4b3aef609b4868e0b52e70d04354cb">pathRunStop</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_rovio.html#ad984b414fd9660cf95b4f8f0ba80b949">pathRunPause</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_rovio.html#a091450bb2a4cad67ae8ffe59449e3aa8">pathRename</a> (const <a class="el" href="classstd_1_1string.html">string</a> &old_name, const <a class="el" href="classstd_1_1string.html">string</a> &new_name)</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_rovio.html#a0f56a46cd10dde1547b115472579ea0c">goHome</a> (bool dock, int speed=5)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">goHome(bool dock) drives Rovio in front of charging station if the paremeter dock is set to false, otherwise it also docks <a href="#a0f56a46cd10dde1547b115472579ea0c"></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_rovio.html#ae73ae762e351812c14d242e9a9a3c618">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 rovio camera calibration parameters (of leave the default ones if not found) (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="#ae73ae762e351812c14d242e9a9a3c618"></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_rovio.html#a72fbf754198898a8c49c745714a813d2">retrieve_video</a> ()</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">This function launchs a thread with the function "thread_video()" which gets frames into a buffer. <a href="#a72fbf754198898a8c49c745714a813d2"></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_rovio.html#a719495a19d4c0e7a1ac4f3de0746551d">stop_video</a> ()</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">This function stops and joins the thread launched by "retrieve_video()". <a href="#a719495a19d4c0e7a1ac4f3de0746551d"></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_rovio.html#a1e03f7a2b2aedc5704fd6e1a4d407e6c">getNextImageSync</a> (<a class="el" href="structmrpt_1_1slam_1_1_c_observation_image_ptr.html">CObservationImagePtr</a> &lastImage)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Returns the next frame from Rovio's live video stream, after starting the live streaming with <a class="el" href="classmrpt_1_1hwdrivers_1_1_c_rovio.html#a72fbf754198898a8c49c745714a813d2" title="This function launchs a thread with the function "thread_video()" which gets frames into a buffer...">retrieve_video()</a> <a href="#a1e03f7a2b2aedc5704fd6e1a4d407e6c"></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_rovio.html#a412e732947dceb6f023f4b9899dc5353">captureImageAsync</a> (<a class="el" href="classmrpt_1_1utils_1_1_c_image.html">CImage</a> &out_img, bool recttified)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Returns a snapshot from Rovio, if rectified is set true, the returned image is rectified with the parameters of intrinsic_matrix and distortion_matrix. <a href="#a412e732947dceb6f023f4b9899dc5353"></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_rovio.html#acbf5c82f7e0fba080a38d459ab9f3fc4">isVideoStreamming</a> () const </td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Return true if video is streaming correctly. <a href="#acbf5c82f7e0fba080a38d459ab9f3fc4"></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_rovio.html#a5c406d194b8ffc9238e607e42efbefba">getRovioState</a> (<a class="el" href="structmrpt_1_1hwdrivers_1_1_c_rovio_1_1_t_rovio_state.html">TRovioState</a> &state)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Returns a <a class="el" href="structmrpt_1_1hwdrivers_1_1_c_rovio_1_1_t_rovio_state.html">TRovioState</a> with internal information of Rovio (State, Navigation Signal Strength, Wifi Signal Strength) <a href="#a5c406d194b8ffc9238e607e42efbefba"></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_rovio.html#a68c64e037a78a532c15d6809d57bd3b5">getEncoders</a> (<a class="el" href="structmrpt_1_1hwdrivers_1_1_c_rovio_1_1_t_encoders.html">TEncoders</a> &<a class="el" href="classmrpt_1_1hwdrivers_1_1_c_rovio.html#a3b95035e902a6cac2d87218dfc4293ea">encoders</a>)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Returns a <a class="el" href="structmrpt_1_1hwdrivers_1_1_c_rovio_1_1_t_encoders.html">TEncoders</a> with information of Rovio encoders (since last read, it seems Rovio is continuously reading with unknown sample time) <a href="#a68c64e037a78a532c15d6809d57bd3b5"></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_rovio.html#aea21b445a73e24234ab50275278a75ec">getPosition</a> (<a class="el" href="structmrpt_1_1math_1_1_t_pose2_d.html">mrpt::math::TPose2D</a> &out_pose)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Returns the Rovio's pose. <a href="#aea21b445a73e24234ab50275278a75ec"></a><br/></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_rovio.html#af2e38ab0e89aefc75e77617c2817ddec">CRovio</a> ()</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_rovio.html#a957cf0be9ad736fe90f04ae405012616">~CRovio</a> ()</td></tr> <tr><td colspan="2"><h2><a name="pub-attribs"></a> Public Attributes</h2></td></tr> <tr><td class="memItemLeft" align="right" valign="top">struct <br class="typebreak"/> <a class="el" href="structmrpt_1_1hwdrivers_1_1_c_rovio_1_1_t_options.html">mrpt::hwdrivers::CRovio::TOptions</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1hwdrivers_1_1_c_rovio.html#a482527441e7a58b005e45d0848f6a86e">options</a></td></tr> <tr><td class="memItemLeft" align="right" valign="top">struct <br class="typebreak"/> <a class="el" href="structmrpt_1_1hwdrivers_1_1_c_rovio_1_1_t_encoders.html">mrpt::hwdrivers::CRovio::TEncoders</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1hwdrivers_1_1_c_rovio.html#a3b95035e902a6cac2d87218dfc4293ea">encoders</a></td></tr> <tr><td colspan="2"><h2><a name="pri-methods"></a> Private Member Functions</h2></td></tr> <tr><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1hwdrivers_1_1_c_rovio.html#af069ce650ef24c820156488bd668ae10">thread_video</a> ()</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">This function takes a frame and waits until getLastImage ask for it, and so on. <a href="#af069ce650ef24c820156488bd668ae10"></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_rovio.html#aac7281d105c76653f52eee43361c9309">send_cmd_action</a> (int act, int speed)</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_rovio.html#ab0a270fdccac5e8e405b7fde20c2c344">path_management</a> (int act)</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_rovio.html#a5cbda5c8ed482b5185900ed00f830e35">path_management</a> (int act, const <a class="el" href="classstd_1_1string.html">string</a> &path_name)</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_rovio.html#a3be30938677093c44e35bee899bad525">general_command</a> (int act, <a class="el" href="classstd_1_1string.html">string</a> &response, <a class="el" href="classstd_1_1string.html">string</a> &errormsg)</td></tr> <tr><td colspan="2"><h2><a name="pri-attribs"></a> Private Attributes</h2></td></tr> <tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="structmrpt_1_1system_1_1_t_thread_handle.html">mrpt::system::TThreadHandle</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1hwdrivers_1_1_c_rovio.html#acdb2006d78f67831c24eee0cfe5709cc">m_videoThread</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_rovio.html#a53c9464a3e1efbe1c951631421e08343">m_videothread_must_exit</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_rovio.html#ab1156ae2372af52ddc012878a8ac62bc">m_videothread_initialized_done</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_rovio.html#ab3ae6f122dc06b6f07cbbe5b2a309e66">m_videothread_initialized_error</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_rovio.html#a9503e1077b4d674860e6941174fbe684">m_videothread_finished</a></td></tr> <tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="structmrpt_1_1slam_1_1_c_observation_image_ptr.html">mrpt::slam::CObservationImagePtr</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1hwdrivers_1_1_c_rovio.html#aa8430e65309eba063484b707fecb1a9a">buffer_img</a></td></tr> <tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="classmrpt_1_1synch_1_1_c_critical_section.html">mrpt::synch::CCriticalSection</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1hwdrivers_1_1_c_rovio.html#a4099cafdbde963aebf1af1a1020f72a3">buffer_img_cs</a></td></tr> </table> <hr/><h2>Member Enumeration Documentation</h2> <a class="anchor" id="a4ae2b1916254750d8246dd0699253b9a"></a><!-- doxytag: member="mrpt::hwdrivers::CRovio::status" ref="a4ae2b1916254750d8246dd0699253b9a" 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_rovio.html#a4ae2b1916254750d8246dd0699253b9a">mrpt::hwdrivers::CRovio::status</a></td> </tr> </table> </div> <div class="memdoc"> <dl><dt><b>Enumerator: </b></dt><dd><table border="0" cellspacing="2" cellpadding="0"> <tr><td valign="top"><em><a class="anchor" id="a4ae2b1916254750d8246dd0699253b9aa1e86d67a2765156046b3fab658475533"></a><!-- doxytag: member="idle" ref="a4ae2b1916254750d8246dd0699253b9aa1e86d67a2765156046b3fab658475533" args="" -->idle</em> </td><td> </td></tr> <tr><td valign="top"><em><a class="anchor" id="a4ae2b1916254750d8246dd0699253b9aae4fe27eed96cbb0076e12db1b89d0224"></a><!-- doxytag: member="driving_home" ref="a4ae2b1916254750d8246dd0699253b9aae4fe27eed96cbb0076e12db1b89d0224" args="" -->driving_home</em> </td><td> </td></tr> <tr><td valign="top"><em><a class="anchor" id="a4ae2b1916254750d8246dd0699253b9aa84caf482a698036904aa0c03e1c2e4ac"></a><!-- doxytag: member="docking" ref="a4ae2b1916254750d8246dd0699253b9aa84caf482a698036904aa0c03e1c2e4ac" args="" -->docking</em> </td><td> </td></tr> <tr><td valign="top"><em><a class="anchor" id="a4ae2b1916254750d8246dd0699253b9aab60df763fd72731711934097be8d3f2c"></a><!-- doxytag: member="executing_path" ref="a4ae2b1916254750d8246dd0699253b9aab60df763fd72731711934097be8d3f2c" args="" -->executing_path</em> </td><td> </td></tr> <tr><td valign="top"><em><a class="anchor" id="a4ae2b1916254750d8246dd0699253b9aa8123b7057f5c035fafc4f8b96042bb2e"></a><!-- doxytag: member="recording_path" ref="a4ae2b1916254750d8246dd0699253b9aa8123b7057f5c035fafc4f8b96042bb2e" args="" -->recording_path</em> </td><td> </td></tr> </table> </dd> </dl> <p>Definition at line <a class="el" href="_c_rovio_8h_source.html#l00091">91</a> of file <a class="el" href="_c_rovio_8h_source.html">CRovio.h</a>.</p> </div> </div> <hr/><h2>Constructor & Destructor Documentation</h2> <a class="anchor" id="af2e38ab0e89aefc75e77617c2817ddec"></a><!-- doxytag: member="mrpt::hwdrivers::CRovio::CRovio" ref="af2e38ab0e89aefc75e77617c2817ddec" args="()" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">mrpt::hwdrivers::CRovio::CRovio </td> <td>(</td> <td class="paramname"></td><td>)</td> <td></td> </tr> </table> </div> <div class="memdoc"> </div> </div> <a class="anchor" id="a957cf0be9ad736fe90f04ae405012616"></a><!-- doxytag: member="mrpt::hwdrivers::CRovio::~CRovio" ref="a957cf0be9ad736fe90f04ae405012616" args="()" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">virtual mrpt::hwdrivers::CRovio::~CRovio </td> <td>(</td> <td class="paramname"></td><td>)</td> <td><code> [virtual]</code></td> </tr> </table> </div> <div class="memdoc"> </div> </div> <hr/><h2>Member Function Documentation</h2> <a class="anchor" id="a412e732947dceb6f023f4b9899dc5353"></a><!-- doxytag: member="mrpt::hwdrivers::CRovio::captureImageAsync" ref="a412e732947dceb6f023f4b9899dc5353" args="(CImage &out_img, bool recttified)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">bool mrpt::hwdrivers::CRovio::captureImageAsync </td> <td>(</td> <td class="paramtype"><a class="el" href="classmrpt_1_1utils_1_1_c_image.html">CImage</a> & </td> <td class="paramname"><em>out_img</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">bool </td> <td class="paramname"><em>recttified</em> </td> </tr> <tr> <td></td> <td>)</td> <td></td><td></td> </tr> </table> </div> <div class="memdoc"> <p>Returns a snapshot from Rovio, if rectified is set true, the returned image is rectified with the parameters of intrinsic_matrix and distortion_matrix. </p> <p>This function works asynchronously and does not need to have enabled the live video streaming. </p> <dl class="return"><dt><b>Returns:</b></dt><dd>False on error </dd></dl> <dl class="see"><dt><b>See also:</b></dt><dd>captureImageSync </dd></dl> </div> </div> <a class="anchor" id="a3be30938677093c44e35bee899bad525"></a><!-- doxytag: member="mrpt::hwdrivers::CRovio::general_command" ref="a3be30938677093c44e35bee899bad525" args="(int act, string &response, string &errormsg)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">bool mrpt::hwdrivers::CRovio::general_command </td> <td>(</td> <td class="paramtype">int </td> <td class="paramname"><em>act</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype"><a class="el" href="classstd_1_1string.html">string</a> & </td> <td class="paramname"><em>response</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype"><a class="el" href="classstd_1_1string.html">string</a> & </td> <td class="paramname"><em>errormsg</em> </td> </tr> <tr> <td></td> <td>)</td> <td></td><td><code> [private]</code></td> </tr> </table> </div> <div class="memdoc"> </div> </div> <a class="anchor" id="a68c64e037a78a532c15d6809d57bd3b5"></a><!-- doxytag: member="mrpt::hwdrivers::CRovio::getEncoders" ref="a68c64e037a78a532c15d6809d57bd3b5" args="(TEncoders &encoders)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">bool mrpt::hwdrivers::CRovio::getEncoders </td> <td>(</td> <td class="paramtype"><a class="el" href="structmrpt_1_1hwdrivers_1_1_c_rovio_1_1_t_encoders.html">TEncoders</a> & </td> <td class="paramname"><em>encoders</em></td><td>)</td> <td></td> </tr> </table> </div> <div class="memdoc"> <p>Returns a <a class="el" href="structmrpt_1_1hwdrivers_1_1_c_rovio_1_1_t_encoders.html">TEncoders</a> with information of Rovio encoders (since last read, it seems Rovio is continuously reading with unknown sample time) </p> <dl class="return"><dt><b>Returns:</b></dt><dd>False on error </dd></dl> </div> </div> <a class="anchor" id="a1e03f7a2b2aedc5704fd6e1a4d407e6c"></a><!-- doxytag: member="mrpt::hwdrivers::CRovio::getNextImageSync" ref="a1e03f7a2b2aedc5704fd6e1a4d407e6c" args="(CObservationImagePtr &lastImage)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">bool mrpt::hwdrivers::CRovio::getNextImageSync </td> <td>(</td> <td class="paramtype"><a class="el" href="structmrpt_1_1slam_1_1_c_observation_image_ptr.html">CObservationImagePtr</a> & </td> <td class="paramname"><em>lastImage</em></td><td>)</td> <td></td> </tr> </table> </div> <div class="memdoc"> <p>Returns the next frame from Rovio's live video stream, after starting the live streaming with <a class="el" href="classmrpt_1_1hwdrivers_1_1_c_rovio.html#a72fbf754198898a8c49c745714a813d2" title="This function launchs a thread with the function "thread_video()" which gets frames into a buffer...">retrieve_video()</a> </p> <dl class="return"><dt><b>Returns:</b></dt><dd>False on error </dd></dl> <dl class="see"><dt><b>See also:</b></dt><dd><a class="el" href="classmrpt_1_1hwdrivers_1_1_c_rovio.html#a72fbf754198898a8c49c745714a813d2" title="This function launchs a thread with the function "thread_video()" which gets frames into a buffer...">retrieve_video</a>, <a class="el" href="classmrpt_1_1hwdrivers_1_1_c_rovio.html#a412e732947dceb6f023f4b9899dc5353" title="Returns a snapshot from Rovio, if rectified is set true, the returned image is rectified with the par...">captureImageAsync</a> </dd></dl> </div> </div> <a class="anchor" id="aea21b445a73e24234ab50275278a75ec"></a><!-- doxytag: member="mrpt::hwdrivers::CRovio::getPosition" ref="aea21b445a73e24234ab50275278a75ec" args="(mrpt::math::TPose2D &out_pose)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">bool mrpt::hwdrivers::CRovio::getPosition </td> <td>(</td> <td class="paramtype"><a class="el" href="structmrpt_1_1math_1_1_t_pose2_d.html">mrpt::math::TPose2D</a> & </td> <td class="paramname"><em>out_pose</em></td><td>)</td> <td></td> </tr> </table> </div> <div class="memdoc"> <p>Returns the Rovio's pose. </p> <dl class="return"><dt><b>Returns:</b></dt><dd>False on error </dd></dl> </div> </div> <a class="anchor" id="a5c406d194b8ffc9238e607e42efbefba"></a><!-- doxytag: member="mrpt::hwdrivers::CRovio::getRovioState" ref="a5c406d194b8ffc9238e607e42efbefba" args="(TRovioState &state)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">bool mrpt::hwdrivers::CRovio::getRovioState </td> <td>(</td> <td class="paramtype"><a class="el" href="structmrpt_1_1hwdrivers_1_1_c_rovio_1_1_t_rovio_state.html">TRovioState</a> & </td> <td class="paramname"><em>state</em></td><td>)</td> <td></td> </tr> </table> </div> <div class="memdoc"> <p>Returns a <a class="el" href="structmrpt_1_1hwdrivers_1_1_c_rovio_1_1_t_rovio_state.html">TRovioState</a> with internal information of Rovio (State, Navigation Signal Strength, Wifi Signal Strength) </p> <dl class="return"><dt><b>Returns:</b></dt><dd>False on error </dd></dl> </div> </div> <a class="anchor" id="a0f56a46cd10dde1547b115472579ea0c"></a><!-- doxytag: member="mrpt::hwdrivers::CRovio::goHome" ref="a0f56a46cd10dde1547b115472579ea0c" args="(bool dock, int speed=5)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">bool mrpt::hwdrivers::CRovio::goHome </td> <td>(</td> <td class="paramtype">bool </td> <td class="paramname"><em>dock</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">int </td> <td class="paramname"><em>speed</em> = <code>5</code> </td> </tr> <tr> <td></td> <td>)</td> <td></td><td></td> </tr> </table> </div> <div class="memdoc"> <p>goHome(bool dock) drives Rovio in front of charging station if the paremeter dock is set to false, otherwise it also docks </p> <dl class="return"><dt><b>Returns:</b></dt><dd>False on error </dd></dl> </div> </div> <a class="anchor" id="a703feb30066e56fa05e915c21fa2ad50"></a><!-- doxytag: member="mrpt::hwdrivers::CRovio::initialize" ref="a703feb30066e56fa05e915c21fa2ad50" args="()" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">void mrpt::hwdrivers::CRovio::initialize </td> <td>(</td> <td class="paramname"></td><td>)</td> <td></td> </tr> </table> </div> <div class="memdoc"> <p>Establish conection with Rovio and log in its system: Important, fill out "options" members *BEFORE* calling this method. </p> <dl><dt><b>Exceptions:</b></dt><dd> <table class="exception"> <tr><td class="paramname">std::runtime</td><td>On errors </td></tr> </table> </dd> </dl> </div> </div> <a class="anchor" id="acbf5c82f7e0fba080a38d459ab9f3fc4"></a><!-- doxytag: member="mrpt::hwdrivers::CRovio::isVideoStreamming" ref="acbf5c82f7e0fba080a38d459ab9f3fc4" args="() const " --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">bool mrpt::hwdrivers::CRovio::isVideoStreamming </td> <td>(</td> <td class="paramname"></td><td>)</td> <td> const</td> </tr> </table> </div> <div class="memdoc"> <p>Return true if video is streaming correctly. </p> <dl class="see"><dt><b>See also:</b></dt><dd><a class="el" href="classmrpt_1_1hwdrivers_1_1_c_rovio.html#a72fbf754198898a8c49c745714a813d2" title="This function launchs a thread with the function "thread_video()" which gets frames into a buffer...">retrieve_video</a> </dd></dl> </div> </div> <a class="anchor" id="ae73ae762e351812c14d242e9a9a3c618"></a><!-- doxytag: member="mrpt::hwdrivers::CRovio::loadConfig" ref="ae73ae762e351812c14d242e9a9a3c618" 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::CRovio::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></td> </tr> </table> </div> <div class="memdoc"> <p>Loads the rovio camera calibration parameters (of leave the default ones if not found) (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="af59574be5fca9f00d4274b18955d8f99"></a><!-- doxytag: member="mrpt::hwdrivers::CRovio::move" ref="af59574be5fca9f00d4274b18955d8f99" args="(char direction, int speed=5)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">bool mrpt::hwdrivers::CRovio::move </td> <td>(</td> <td class="paramtype">char </td> <td class="paramname"><em>direction</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">int </td> <td class="paramname"><em>speed</em> = <code>5</code> </td> </tr> <tr> <td></td> <td>)</td> <td></td><td></td> </tr> </table> </div> <div class="memdoc"> <p>move send Rovio the command to move in the specified direcction </p> <dl><dt><b>Parameters:</b></dt><dd> <table class="params"> <tr><td class="paramname">direction</td><td>'f'->forward, 'b'->backward, 'r'->right, 'l'->left </td></tr> </table> </dd> </dl> <dl class="return"><dt><b>Returns:</b></dt><dd>False on error </dd></dl> </div> </div> <a class="anchor" id="ab0a270fdccac5e8e405b7fde20c2c344"></a><!-- doxytag: member="mrpt::hwdrivers::CRovio::path_management" ref="ab0a270fdccac5e8e405b7fde20c2c344" args="(int act)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">bool mrpt::hwdrivers::CRovio::path_management </td> <td>(</td> <td class="paramtype">int </td> <td class="paramname"><em>act</em></td><td>)</td> <td><code> [private]</code></td> </tr> </table> </div> <div class="memdoc"> </div> </div> <a class="anchor" id="a5cbda5c8ed482b5185900ed00f830e35"></a><!-- doxytag: member="mrpt::hwdrivers::CRovio::path_management" ref="a5cbda5c8ed482b5185900ed00f830e35" args="(int act, const string &path_name)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">bool mrpt::hwdrivers::CRovio::path_management </td> <td>(</td> <td class="paramtype">int </td> <td class="paramname"><em>act</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">const <a class="el" href="classstd_1_1string.html">string</a> & </td> <td class="paramname"><em>path_name</em> </td> </tr> <tr> <td></td> <td>)</td> <td></td><td><code> [private]</code></td> </tr> </table> </div> <div class="memdoc"> </div> </div> <a class="anchor" id="a38f4357625d94e52f01f0f746483ef86"></a><!-- doxytag: member="mrpt::hwdrivers::CRovio::pathDelete" ref="a38f4357625d94e52f01f0f746483ef86" args="(const string &path_name)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">bool mrpt::hwdrivers::CRovio::pathDelete </td> <td>(</td> <td class="paramtype">const <a class="el" href="classstd_1_1string.html">string</a> & </td> <td class="paramname"><em>path_name</em></td><td>)</td> <td></td> </tr> </table> </div> <div class="memdoc"> </div> </div> <a class="anchor" id="a634cf2f8ac8385285f02ec96b262ac46"></a><!-- doxytag: member="mrpt::hwdrivers::CRovio::pathGetList" ref="a634cf2f8ac8385285f02ec96b262ac46" args="(string &path_list)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">bool mrpt::hwdrivers::CRovio::pathGetList </td> <td>(</td> <td class="paramtype"><a class="el" href="classstd_1_1string.html">string</a> & </td> <td class="paramname"><em>path_list</em></td><td>)</td> <td></td> </tr> </table> </div> <div class="memdoc"> <p>Get list of saved paths. </p> </div> </div> <a class="anchor" id="a50b08889c9980322fcae66f412acc910"></a><!-- doxytag: member="mrpt::hwdrivers::CRovio::pathRecord" ref="a50b08889c9980322fcae66f412acc910" args="()" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">bool mrpt::hwdrivers::CRovio::pathRecord </td> <td>(</td> <td class="paramname"></td><td>)</td> <td></td> </tr> </table> </div> <div class="memdoc"> </div> </div> <a class="anchor" id="ad8223434a8d282b829ba48bfeacb6499"></a><!-- doxytag: member="mrpt::hwdrivers::CRovio::pathRecordAbort" ref="ad8223434a8d282b829ba48bfeacb6499" args="()" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">bool mrpt::hwdrivers::CRovio::pathRecordAbort </td> <td>(</td> <td class="paramname"></td><td>)</td> <td></td> </tr> </table> </div> <div class="memdoc"> </div> </div> <a class="anchor" id="afde448410f63cdd809e845b9b2268fc1"></a><!-- doxytag: member="mrpt::hwdrivers::CRovio::pathRecordSave" ref="afde448410f63cdd809e845b9b2268fc1" args="(const string &path_name)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">bool mrpt::hwdrivers::CRovio::pathRecordSave </td> <td>(</td> <td class="paramtype">const <a class="el" href="classstd_1_1string.html">string</a> & </td> <td class="paramname"><em>path_name</em></td><td>)</td> <td></td> </tr> </table> </div> <div class="memdoc"> </div> </div> <a class="anchor" id="a091450bb2a4cad67ae8ffe59449e3aa8"></a><!-- doxytag: member="mrpt::hwdrivers::CRovio::pathRename" ref="a091450bb2a4cad67ae8ffe59449e3aa8" args="(const string &old_name, const string &new_name)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">bool mrpt::hwdrivers::CRovio::pathRename </td> <td>(</td> <td class="paramtype">const <a class="el" href="classstd_1_1string.html">string</a> & </td> <td class="paramname"><em>old_name</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">const <a class="el" href="classstd_1_1string.html">string</a> & </td> <td class="paramname"><em>new_name</em> </td> </tr> <tr> <td></td> <td>)</td> <td></td><td></td> </tr> </table> </div> <div class="memdoc"> </div> </div> <a class="anchor" id="a6908b710f83d38478029a91e4a2cfee6"></a><!-- doxytag: member="mrpt::hwdrivers::CRovio::pathRunBackward" ref="a6908b710f83d38478029a91e4a2cfee6" args="()" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">bool mrpt::hwdrivers::CRovio::pathRunBackward </td> <td>(</td> <td class="paramname"></td><td>)</td> <td></td> </tr> </table> </div> <div class="memdoc"> </div> </div> <a class="anchor" id="a50df0e2671123a8e4221c48738a99320"></a><!-- doxytag: member="mrpt::hwdrivers::CRovio::pathRunForward" ref="a50df0e2671123a8e4221c48738a99320" args="()" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">bool mrpt::hwdrivers::CRovio::pathRunForward </td> <td>(</td> <td class="paramname"></td><td>)</td> <td></td> </tr> </table> </div> <div class="memdoc"> </div> </div> <a class="anchor" id="ad984b414fd9660cf95b4f8f0ba80b949"></a><!-- doxytag: member="mrpt::hwdrivers::CRovio::pathRunPause" ref="ad984b414fd9660cf95b4f8f0ba80b949" args="()" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">bool mrpt::hwdrivers::CRovio::pathRunPause </td> <td>(</td> <td class="paramname"></td><td>)</td> <td></td> </tr> </table> </div> <div class="memdoc"> </div> </div> <a class="anchor" id="a9b4b3aef609b4868e0b52e70d04354cb"></a><!-- doxytag: member="mrpt::hwdrivers::CRovio::pathRunStop" ref="a9b4b3aef609b4868e0b52e70d04354cb" args="()" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">bool mrpt::hwdrivers::CRovio::pathRunStop </td> <td>(</td> <td class="paramname"></td><td>)</td> <td></td> </tr> </table> </div> <div class="memdoc"> </div> </div> <a class="anchor" id="a72fbf754198898a8c49c745714a813d2"></a><!-- doxytag: member="mrpt::hwdrivers::CRovio::retrieve_video" ref="a72fbf754198898a8c49c745714a813d2" args="()" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">bool mrpt::hwdrivers::CRovio::retrieve_video </td> <td>(</td> <td class="paramname"></td><td>)</td> <td></td> </tr> </table> </div> <div class="memdoc"> <p>This function launchs a thread with the function "thread_video()" which gets frames into a buffer. </p> <p>After calling this method, images can be obtained with <a class="el" href="classmrpt_1_1hwdrivers_1_1_c_rovio.html#a1e03f7a2b2aedc5704fd6e1a4d407e6c" title="Returns the next frame from Rovio's live video stream, after starting the live streaming with retriev...">getNextImageSync()</a> </p> <dl class="return"><dt><b>Returns:</b></dt><dd>False on error </dd></dl> <dl class="see"><dt><b>See also:</b></dt><dd><a class="el" href="classmrpt_1_1hwdrivers_1_1_c_rovio.html#a1e03f7a2b2aedc5704fd6e1a4d407e6c" title="Returns the next frame from Rovio's live video stream, after starting the live streaming with retriev...">getNextImageSync</a> </dd></dl> </div> </div> <a class="anchor" id="a1e2dd99df10b312b6ad281e47ce1a10e"></a><!-- doxytag: member="mrpt::hwdrivers::CRovio::rotate" ref="a1e2dd99df10b312b6ad281e47ce1a10e" args="(char direction, int speed=5)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">bool mrpt::hwdrivers::CRovio::rotate </td> <td>(</td> <td class="paramtype">char </td> <td class="paramname"><em>direction</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">int </td> <td class="paramname"><em>speed</em> = <code>5</code> </td> </tr> <tr> <td></td> <td>)</td> <td></td><td></td> </tr> </table> </div> <div class="memdoc"> <p>rotate send Rovio the command to rotate in the specified direcction 'r'->right, 'l'->left </p> <dl class="return"><dt><b>Returns:</b></dt><dd>False on error </dd></dl> </div> </div> <a class="anchor" id="aac7281d105c76653f52eee43361c9309"></a><!-- doxytag: member="mrpt::hwdrivers::CRovio::send_cmd_action" ref="aac7281d105c76653f52eee43361c9309" args="(int act, int speed)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">bool mrpt::hwdrivers::CRovio::send_cmd_action </td> <td>(</td> <td class="paramtype">int </td> <td class="paramname"><em>act</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">int </td> <td class="paramname"><em>speed</em> </td> </tr> <tr> <td></td> <td>)</td> <td></td><td><code> [private]</code></td> </tr> </table> </div> <div class="memdoc"> </div> </div> <a class="anchor" id="a719495a19d4c0e7a1ac4f3de0746551d"></a><!-- doxytag: member="mrpt::hwdrivers::CRovio::stop_video" ref="a719495a19d4c0e7a1ac4f3de0746551d" args="()" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">bool mrpt::hwdrivers::CRovio::stop_video </td> <td>(</td> <td class="paramname"></td><td>)</td> <td></td> </tr> </table> </div> <div class="memdoc"> <p>This function stops and joins the thread launched by "retrieve_video()". </p> <dl class="return"><dt><b>Returns:</b></dt><dd>False on error </dd></dl> </div> </div> <a class="anchor" id="a41d96bb0bda1c6485cfe5c6333e7a5c4"></a><!-- doxytag: member="mrpt::hwdrivers::CRovio::takeHeadDown" ref="a41d96bb0bda1c6485cfe5c6333e7a5c4" args="()" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">bool mrpt::hwdrivers::CRovio::takeHeadDown </td> <td>(</td> <td class="paramname"></td><td>)</td> <td></td> </tr> </table> </div> <div class="memdoc"> </div> </div> <a class="anchor" id="a452e70ebab1b02e150d8a66402958bfb"></a><!-- doxytag: member="mrpt::hwdrivers::CRovio::takeHeadMiddle" ref="a452e70ebab1b02e150d8a66402958bfb" args="()" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">bool mrpt::hwdrivers::CRovio::takeHeadMiddle </td> <td>(</td> <td class="paramname"></td><td>)</td> <td></td> </tr> </table> </div> <div class="memdoc"> </div> </div> <a class="anchor" id="a44a28484fb767e00728c2acf18554fc3"></a><!-- doxytag: member="mrpt::hwdrivers::CRovio::takeHeadUp" ref="a44a28484fb767e00728c2acf18554fc3" args="()" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">bool mrpt::hwdrivers::CRovio::takeHeadUp </td> <td>(</td> <td class="paramname"></td><td>)</td> <td></td> </tr> </table> </div> <div class="memdoc"> <p>Head positions. </p> <dl class="return"><dt><b>Returns:</b></dt><dd>False on error </dd></dl> </div> </div> <a class="anchor" id="af069ce650ef24c820156488bd668ae10"></a><!-- doxytag: member="mrpt::hwdrivers::CRovio::thread_video" ref="af069ce650ef24c820156488bd668ae10" args="()" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">void mrpt::hwdrivers::CRovio::thread_video </td> <td>(</td> <td class="paramname"></td><td>)</td> <td><code> [private]</code></td> </tr> </table> </div> <div class="memdoc"> <p>This function takes a frame and waits until getLastImage ask for it, and so on. </p> </div> </div> <hr/><h2>Member Data Documentation</h2> <a class="anchor" id="aa8430e65309eba063484b707fecb1a9a"></a><!-- doxytag: member="mrpt::hwdrivers::CRovio::buffer_img" ref="aa8430e65309eba063484b707fecb1a9a" args="" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname"><a class="el" href="structmrpt_1_1slam_1_1_c_observation_image_ptr.html">mrpt::slam::CObservationImagePtr</a> <a class="el" href="classmrpt_1_1hwdrivers_1_1_c_rovio.html#aa8430e65309eba063484b707fecb1a9a">mrpt::hwdrivers::CRovio::buffer_img</a><code> [private]</code></td> </tr> </table> </div> <div class="memdoc"> <p>Definition at line <a class="el" href="_c_rovio_8h_source.html#l00062">62</a> of file <a class="el" href="_c_rovio_8h_source.html">CRovio.h</a>.</p> </div> </div> <a class="anchor" id="a4099cafdbde963aebf1af1a1020f72a3"></a><!-- doxytag: member="mrpt::hwdrivers::CRovio::buffer_img_cs" ref="a4099cafdbde963aebf1af1a1020f72a3" args="" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname"><a class="el" href="classmrpt_1_1synch_1_1_c_critical_section.html">mrpt::synch::CCriticalSection</a> <a class="el" href="classmrpt_1_1hwdrivers_1_1_c_rovio.html#a4099cafdbde963aebf1af1a1020f72a3">mrpt::hwdrivers::CRovio::buffer_img_cs</a><code> [private]</code></td> </tr> </table> </div> <div class="memdoc"> <p>Definition at line <a class="el" href="_c_rovio_8h_source.html#l00063">63</a> of file <a class="el" href="_c_rovio_8h_source.html">CRovio.h</a>.</p> </div> </div> <a class="anchor" id="a3b95035e902a6cac2d87218dfc4293ea"></a><!-- doxytag: member="mrpt::hwdrivers::CRovio::encoders" ref="a3b95035e902a6cac2d87218dfc4293ea" args="" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">struct <a class="el" href="structmrpt_1_1hwdrivers_1_1_c_rovio_1_1_t_encoders.html">mrpt::hwdrivers::CRovio::TEncoders</a> <a class="el" href="classmrpt_1_1hwdrivers_1_1_c_rovio.html#a3b95035e902a6cac2d87218dfc4293ea">mrpt::hwdrivers::CRovio::encoders</a></td> </tr> </table> </div> <div class="memdoc"> </div> </div> <a class="anchor" id="acdb2006d78f67831c24eee0cfe5709cc"></a><!-- doxytag: member="mrpt::hwdrivers::CRovio::m_videoThread" ref="acdb2006d78f67831c24eee0cfe5709cc" args="" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname"><a class="el" href="structmrpt_1_1system_1_1_t_thread_handle.html">mrpt::system::TThreadHandle</a> <a class="el" href="classmrpt_1_1hwdrivers_1_1_c_rovio.html#acdb2006d78f67831c24eee0cfe5709cc">mrpt::hwdrivers::CRovio::m_videoThread</a><code> [private]</code></td> </tr> </table> </div> <div class="memdoc"> <p>Definition at line <a class="el" href="_c_rovio_8h_source.html#l00056">56</a> of file <a class="el" href="_c_rovio_8h_source.html">CRovio.h</a>.</p> </div> </div> <a class="anchor" id="a9503e1077b4d674860e6941174fbe684"></a><!-- doxytag: member="mrpt::hwdrivers::CRovio::m_videothread_finished" ref="a9503e1077b4d674860e6941174fbe684" 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_rovio.html#a9503e1077b4d674860e6941174fbe684">mrpt::hwdrivers::CRovio::m_videothread_finished</a><code> [private]</code></td> </tr> </table> </div> <div class="memdoc"> <p>Definition at line <a class="el" href="_c_rovio_8h_source.html#l00060">60</a> of file <a class="el" href="_c_rovio_8h_source.html">CRovio.h</a>.</p> </div> </div> <a class="anchor" id="ab1156ae2372af52ddc012878a8ac62bc"></a><!-- doxytag: member="mrpt::hwdrivers::CRovio::m_videothread_initialized_done" ref="ab1156ae2372af52ddc012878a8ac62bc" 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_rovio.html#ab1156ae2372af52ddc012878a8ac62bc">mrpt::hwdrivers::CRovio::m_videothread_initialized_done</a><code> [private]</code></td> </tr> </table> </div> <div class="memdoc"> <p>Definition at line <a class="el" href="_c_rovio_8h_source.html#l00058">58</a> of file <a class="el" href="_c_rovio_8h_source.html">CRovio.h</a>.</p> </div> </div> <a class="anchor" id="ab3ae6f122dc06b6f07cbbe5b2a309e66"></a><!-- doxytag: member="mrpt::hwdrivers::CRovio::m_videothread_initialized_error" ref="ab3ae6f122dc06b6f07cbbe5b2a309e66" 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_rovio.html#ab3ae6f122dc06b6f07cbbe5b2a309e66">mrpt::hwdrivers::CRovio::m_videothread_initialized_error</a><code> [private]</code></td> </tr> </table> </div> <div class="memdoc"> <p>Definition at line <a class="el" href="_c_rovio_8h_source.html#l00059">59</a> of file <a class="el" href="_c_rovio_8h_source.html">CRovio.h</a>.</p> </div> </div> <a class="anchor" id="a53c9464a3e1efbe1c951631421e08343"></a><!-- doxytag: member="mrpt::hwdrivers::CRovio::m_videothread_must_exit" ref="a53c9464a3e1efbe1c951631421e08343" 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_rovio.html#a53c9464a3e1efbe1c951631421e08343">mrpt::hwdrivers::CRovio::m_videothread_must_exit</a><code> [private]</code></td> </tr> </table> </div> <div class="memdoc"> <p>Definition at line <a class="el" href="_c_rovio_8h_source.html#l00057">57</a> of file <a class="el" href="_c_rovio_8h_source.html">CRovio.h</a>.</p> </div> </div> <a class="anchor" id="a482527441e7a58b005e45d0848f6a86e"></a><!-- doxytag: member="mrpt::hwdrivers::CRovio::options" ref="a482527441e7a58b005e45d0848f6a86e" args="" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">struct <a class="el" href="structmrpt_1_1hwdrivers_1_1_c_rovio_1_1_t_options.html">mrpt::hwdrivers::CRovio::TOptions</a> <a class="el" href="classmrpt_1_1hwdrivers_1_1_c_rovio.html#a482527441e7a58b005e45d0848f6a86e">mrpt::hwdrivers::CRovio::options</a></td> </tr> </table> </div> <div class="memdoc"> </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>