Sophie

Sophie

distrib > Fedora > 14 > x86_64 > media > updates > by-pkgid > 727fa15453fcace956b835e2377d4269 > files > 194

player-doc-3.0.2-5.fc14.noarch.rpm

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"
   "http://www.w3.org/TR/html4/strict.dtd">

<html>
<!-- $Id: header.html 8799 2010-06-28 04:12:42Z jpgr87 $ -->

<HEAD>


<meta HTTP-EQUIV="Content-Type" CONTENT="text/html;CHARSET=utf-8">
<meta name="keywords" content="stage, robot, simulation, player, player/stage">
<link href="doxygen.css" rel="stylesheet" type="text/css">

<style type="text/css">

.floatright { float: right; margin: 0 0 1em 1em; }

body {
  font-family: sans-serif;
  #font-family: Geneva, Verdana, Helvetica, Arial, sans-serif;
  background-color: #FFF;
  color:#000;
}


a:link { 
	color: #A00;
}

a:visited { 
	color: #800;
}

a { text-decoration: none; }
a:hover { text-decoration: underline; }


.timestamp { text-align:right; background-color: #DDD; font-size:75%;}

h1 { 
  font-size:160%; 
}

h2 {
  font-size:110%;
  #color: #FFF;
  #background-color: #666;
  #padding:3px;
}

h3 { text-align:left; }

img {
  border: 0;
}

ul.menu { 
    position:relative;
    left:-2.5em;
    margin-bottom:0px;
    margin-top:0px;
}

ul.menu1 { 
    position:relative;
    left:-2.1em;
    margin-bottom:0px;
    margin-top:0px;
}

li.menu { 
    list-style-type: none;
    position:relative;
    #left:-0.5em;
}


#sidebar { position: absolute; left:0px; padding:2em; top:0em; width:12em;}

#content { position: absolute; left:12em; top:0em; padding-left:3em; padding-right:3em; padding-bottom:2em; margin-top:1em; margin-right:2em; }

div.box { background-color:#EEE; border: 1px solid #000; padding: 0.5ex 0.4em 0.5ex 0.6em; margin:1em;  }
div.title { font-weight:bold; background-color:#eee; margin-bottom:2px;}

div.topbar { position: absolute; top:0px; left:9em; margin:1em; }

</style>

<TITLE>Player Manual</TITLE>

</HEAD>

<body>

<div id="sidebar"> 

<h2 style="text-align:center;">
<a href="index.html">
<img width=140 src="http://playerstage.sourceforge.net/images/player_button_v3.png" alt="Player logo"><br></a>
</h2>



<div class="box">
<div class=title>Player</div>

<ul class=menu>
<li class=menu><a href="index.html">Frontpage</a>
<li class=menu><a href="modules.html">Contents</a>
</ul>
</div>

<div class="box">
<div class=title>User</div>

<ul class=menu>
<li class=menu><a href="install.html">Installation</a>
<li class=menu><a href="start.html">Quick start</a>
<li class=menu><a href="supported_hardware.html">Supported&nbsp;devices</a>
<li class=menu><a href="group__tutorials.html">Tutorials</a>
<li class=menu><a href="group__utils.html">Utilities</a>
<li class=menu><a href="group__clientlibs.html">Client&nbsp;libraries</a>
<li class=menu><a href="http://playerstage.sourceforge.net/wiki/Basic_FAQ">FAQ</a>
<li class=menu><a href="help.html">Help</a>

</ul>
</div>

<div class=box>
<div class="title">Developer</div>
<ul class=menu>
<li class=menu><a href="architecture.html">Architecture</a>
<li class=menu><a href="group__libplayercore.html">libplayercore</a>
<ul class=menu1>
<li class=menu><a href="group__interfaces.html">interfaces</a></li>
</ul>
<li class=menu><a href="group__libplayerdrivers.html">libplayerdrivers</a>
<ul class=menu1>
<li class=menu><a href="group__drivers.html">drivers</a></li>
</ul>
<li class=menu><a href="group__libplayercommon.html">libplayercommon</a>
<li class=menu><a href="group__libplayerutils.html">libplayerutils</a>
<li class=menu><a href="group__libplayersd.html">libplayersd</a>
<li class=menu><a href="group__libplayertcp.html">libplayertcp</a>
<li class=menu><a href="group__libplayerxdr.html">libplayerxdr</a>
<li class=menu><a href="todo.html">TODO</a>
</ul>
</div>

<div class=box>
<!-- <a href="http://sourceforge.net"><img border=0 src="http://sourceforge.net/sflogo.php?group_id=42445&type=1"></a> -->
<div class="title">Online</div>
<a href="http://playerstage.sourceforge.net">Homepage</a><br>
<a href="http://sourceforge.net/project/showfiles.php?group_id=42445">Download</a><br>
<a href="http://sourceforge.net/projects/playerstage">Project</a><br>
<a href="http://sourceforge.net/tracker/?group_id=42445">Bugs</a><br>
<a href="http://sourceforge.net/mail/?group_id=42445">Help</a>
</div>


</div>

<div id="content" >
<!-- Generated by Doxygen 1.7.1 -->
<div class="header">
  <div class="summary">
<a href="#pub-methods">Public Member Functions</a> &#124;
<a href="#pri-methods">Private Member Functions</a> &#124;
<a href="#pri-attribs">Private Attributes</a>  </div>
  <div class="headertitle">
<h1>P2OS Class Reference</h1>  </div>
</div>
<div class="contents">
<!-- doxytag: class="P2OS" --><!-- doxytag: inherits="ThreadedDriver" --><div class="dynheader">
Inheritance diagram for P2OS:</div>
<div class="dyncontent">
 <div class="center">
  <img src="classP2OS.png" usemap="#P2OS_map" alt=""/>
  <map id="P2OS_map" name="P2OS_map">
<area href="classThreadedDriver.html" alt="ThreadedDriver" shape="rect" coords="0,56,102,80"/>
<area href="classDriver.html" alt="Driver" shape="rect" coords="0,0,102,24"/>
</map>
</div>

<p><a href="classP2OS-members.html">List of all members.</a></p>
<table class="memberdecls">
<tr><td colspan="2"><h2><a name="pub-methods"></a>
Public Member Functions</h2></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ac85064f0235215bd78323f42dc86f507"></a><!-- doxytag: member="P2OS::P2OS" ref="ac85064f0235215bd78323f42dc86f507" args="(ConfigFile *cf, int section)" -->
&nbsp;</td><td class="memItemRight" valign="bottom"><b>P2OS</b> (<a class="el" href="classConfigFile.html">ConfigFile</a> *cf, int section)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">virtual int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classP2OS.html#a41b9cfcee8fa3fd74bd1aa27d8286fac">Subscribe</a> (<a class="el" href="structplayer__devaddr.html">player_devaddr_t</a> id)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Subscribe to this driver.  <a href="#a41b9cfcee8fa3fd74bd1aa27d8286fac"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">virtual int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classP2OS.html#a9a9a48fe08bc40aafb73bf6e5ead1368">Unsubscribe</a> (<a class="el" href="structplayer__devaddr.html">player_devaddr_t</a> id)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Unsubscribe from this driver.  <a href="#a9a9a48fe08bc40aafb73bf6e5ead1368"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">virtual void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classP2OS.html#ac3d15930f59fe70567cb4db0eadb6e6b">Main</a> ()</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Main method for driver thread.  <a href="#ac3d15930f59fe70567cb4db0eadb6e6b"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a0d68295c8ef5abb7fd895d8cf017e295"></a><!-- doxytag: member="P2OS::MainSetup" ref="a0d68295c8ef5abb7fd895d8cf017e295" args="()" -->
virtual int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classP2OS.html#a0d68295c8ef5abb7fd895d8cf017e295">MainSetup</a> ()</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Sets up the resources needed by the driver thread. <br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">virtual void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classP2OS.html#a9304ae4d2fb1750d6fd77f62cc76be6b">MainQuit</a> ()</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Cleanup method for driver thread (called when main exits).  <a href="#a9304ae4d2fb1750d6fd77f62cc76be6b"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">virtual int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classP2OS.html#a91bda6c36ac50b99c6cf4a3f9258cb8c">ProcessMessage</a> (<a class="el" href="classQueuePointer.html">QueuePointer</a> &amp;resp_queue, <a class="el" href="structplayer__msghdr.html">player_msghdr</a> *hdr, void *data)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight"><a class="el" href="classMessage.html" title="Reference-counted message objects.">Message</a> handler.  <a href="#a91bda6c36ac50b99c6cf4a3f9258cb8c"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ae85cf6e4afdb3cadf8d430ca04065e63"></a><!-- doxytag: member="P2OS::CMUcamReset" ref="ae85cf6e4afdb3cadf8d430ca04065e63" args="(bool doLock=true)" -->
void&nbsp;</td><td class="memItemRight" valign="bottom"><b>CMUcamReset</b> (bool doLock=true)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a1966cff265ae841dd1da3c4ce7ee8a7d"></a><!-- doxytag: member="P2OS::CMUcamTrack" ref="a1966cff265ae841dd1da3c4ce7ee8a7d" args="(int rmin=0, int rmax=0, int gmin=0, int gmax=0, int bmin=0, int bmax=0)" -->
void&nbsp;</td><td class="memItemRight" valign="bottom"><b>CMUcamTrack</b> (int rmin=0, int rmax=0, int gmin=0, int gmax=0, int bmin=0, int bmax=0)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a603c6c7f5a4c8bd11eb04839130b5a3e"></a><!-- doxytag: member="P2OS::CMUcamStartTracking" ref="a603c6c7f5a4c8bd11eb04839130b5a3e" args="(bool doLock=true)" -->
void&nbsp;</td><td class="memItemRight" valign="bottom"><b>CMUcamStartTracking</b> (bool doLock=true)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a33b574fb36b33d4a6c18aa3d508f0832"></a><!-- doxytag: member="P2OS::CMUcamStopTracking" ref="a33b574fb36b33d4a6c18aa3d508f0832" args="(bool doLock=true)" -->
void&nbsp;</td><td class="memItemRight" valign="bottom"><b>CMUcamStopTracking</b> (bool doLock=true)</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"><a class="anchor" id="a8cd4d9e9cf55fe8d55b7d8d73c666572"></a><!-- doxytag: member="P2OS::SendReceive" ref="a8cd4d9e9cf55fe8d55b7d8d73c666572" args="(P2OSPacket *pkt, bool publish_data=true)" -->
int&nbsp;</td><td class="memItemRight" valign="bottom"><b>SendReceive</b> (<a class="el" href="classP2OSPacket.html">P2OSPacket</a> *pkt, bool publish_data=true)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="acf60d5bf72e83e0a4978bec4745a35ec"></a><!-- doxytag: member="P2OS::ResetRawPositions" ref="acf60d5bf72e83e0a4978bec4745a35ec" args="()" -->
void&nbsp;</td><td class="memItemRight" valign="bottom"><b>ResetRawPositions</b> ()</td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="aa1212398383c8b354511e3975dad53ed"></a><!-- doxytag: member="P2OS::ToggleSonarPower" ref="aa1212398383c8b354511e3975dad53ed" args="(unsigned char val)" -->
void&nbsp;</td><td class="memItemRight" valign="bottom"><b>ToggleSonarPower</b> (unsigned char val)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a866755ae303823b8b79d867ac87b8692"></a><!-- doxytag: member="P2OS::ToggleMotorPower" ref="a866755ae303823b8b79d867ac87b8692" args="(unsigned char val)" -->
void&nbsp;</td><td class="memItemRight" valign="bottom"><b>ToggleMotorPower</b> (unsigned char val)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="af941d0bbd8f06f01016f291e9e20877f"></a><!-- doxytag: member="P2OS::HandleConfig" ref="af941d0bbd8f06f01016f291e9e20877f" args="(QueuePointer &amp;resp_queue, player_msghdr *hdr, void *data)" -->
int&nbsp;</td><td class="memItemRight" valign="bottom"><b>HandleConfig</b> (<a class="el" href="classQueuePointer.html">QueuePointer</a> &amp;resp_queue, <a class="el" href="structplayer__msghdr.html">player_msghdr</a> *hdr, void *data)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="acf3618acd551498da315ef9fd52d5b48"></a><!-- doxytag: member="P2OS::HandleCommand" ref="acf3618acd551498da315ef9fd52d5b48" args="(player_msghdr *hdr, void *data)" -->
int&nbsp;</td><td class="memItemRight" valign="bottom"><b>HandleCommand</b> (<a class="el" href="structplayer__msghdr.html">player_msghdr</a> *hdr, void *data)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ac20d8e00e6b359f6159409cf9b8c8fb0"></a><!-- doxytag: member="P2OS::StandardSIPPutData" ref="ac20d8e00e6b359f6159409cf9b8c8fb0" args="(double timestampStandardSIP)" -->
void&nbsp;</td><td class="memItemRight" valign="bottom"><b>StandardSIPPutData</b> (double timestampStandardSIP)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a5684738bec281a3aa2ae342e5ee9d2ff"></a><!-- doxytag: member="P2OS::GyroPutData" ref="a5684738bec281a3aa2ae342e5ee9d2ff" args="(double timestampGyro)" -->
void&nbsp;</td><td class="memItemRight" valign="bottom"><b>GyroPutData</b> (double timestampGyro)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="aa953f9db73c95f04383db334a74f17f6"></a><!-- doxytag: member="P2OS::BlobfinderPutData" ref="aa953f9db73c95f04383db334a74f17f6" args="(double timestampSERAUX)" -->
void&nbsp;</td><td class="memItemRight" valign="bottom"><b>BlobfinderPutData</b> (double timestampSERAUX)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a30ffc6feb851cb9c9f5f7cbe02b29df3"></a><!-- doxytag: member="P2OS::ActarrayPutData" ref="a30ffc6feb851cb9c9f5f7cbe02b29df3" args="(double timestampArm)" -->
void&nbsp;</td><td class="memItemRight" valign="bottom"><b>ActarrayPutData</b> (double timestampArm)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a1941ae9b46e9914b833c53ce57e9453d"></a><!-- doxytag: member="P2OS::HandlePositionCommand" ref="a1941ae9b46e9914b833c53ce57e9453d" args="(player_position2d_cmd_vel_t position_cmd)" -->
void&nbsp;</td><td class="memItemRight" valign="bottom"><b>HandlePositionCommand</b> (<a class="el" href="structplayer__position2d__cmd__vel.html">player_position2d_cmd_vel_t</a> position_cmd)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ab3f7f0e46579a3b249bbd43284f97eaa"></a><!-- doxytag: member="P2OS::HandleGripperCommand" ref="ab3f7f0e46579a3b249bbd43284f97eaa" args="(player_msghdr *hdr, void *data)" -->
int&nbsp;</td><td class="memItemRight" valign="bottom"><b>HandleGripperCommand</b> (<a class="el" href="structplayer__msghdr.html">player_msghdr</a> *hdr, void *data)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="aba48b125c4c4b84b3554ea8d2e1f1281"></a><!-- doxytag: member="P2OS::HandleLiftCommand" ref="aba48b125c4c4b84b3554ea8d2e1f1281" args="(player_msghdr *hdr, void *data)" -->
int&nbsp;</td><td class="memItemRight" valign="bottom"><b>HandleLiftCommand</b> (<a class="el" href="structplayer__msghdr.html">player_msghdr</a> *hdr, void *data)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="abeb83c52d818a066b26ec89841f5e5c1"></a><!-- doxytag: member="P2OS::HandleArmGripperCommand" ref="abeb83c52d818a066b26ec89841f5e5c1" args="(player_msghdr *hdr, void *data)" -->
int&nbsp;</td><td class="memItemRight" valign="bottom"><b>HandleArmGripperCommand</b> (<a class="el" href="structplayer__msghdr.html">player_msghdr</a> *hdr, void *data)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ae6765680e34dff1b9a8ee6e473737ab0"></a><!-- doxytag: member="P2OS::HandleAudioCommand" ref="ae6765680e34dff1b9a8ee6e473737ab0" args="(player_audio_sample_item_t audio_cmd)" -->
void&nbsp;</td><td class="memItemRight" valign="bottom"><b>HandleAudioCommand</b> (<a class="el" href="structplayer__audio__sample__item.html">player_audio_sample_item_t</a> audio_cmd)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="abaa6470aa39793cf7a00552924cdd723"></a><!-- doxytag: member="P2OS::get_ptz_packet" ref="abaa6470aa39793cf7a00552924cdd723" args="(int s1, int s2=0)" -->
void&nbsp;</td><td class="memItemRight" valign="bottom"><b>get_ptz_packet</b> (int s1, int s2=0)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a0981a09956caa8e9e535cdb4caf3c0f5"></a><!-- doxytag: member="P2OS::SetupPtz" ref="a0981a09956caa8e9e535cdb4caf3c0f5" args="()" -->
int&nbsp;</td><td class="memItemRight" valign="bottom"><b>SetupPtz</b> ()</td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a4e5e86884c4cffb679fe4815db0eda4e"></a><!-- doxytag: member="P2OS::OpenGripper" ref="a4e5e86884c4cffb679fe4815db0eda4e" args="(void)" -->
void&nbsp;</td><td class="memItemRight" valign="bottom"><b>OpenGripper</b> (void)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="acc84d64017f6e5899686eea6d3f71a3e"></a><!-- doxytag: member="P2OS::CloseGripper" ref="acc84d64017f6e5899686eea6d3f71a3e" args="(void)" -->
void&nbsp;</td><td class="memItemRight" valign="bottom"><b>CloseGripper</b> (void)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a04310fc2d0ce0419c025e13524f91614"></a><!-- doxytag: member="P2OS::StopGripper" ref="a04310fc2d0ce0419c025e13524f91614" args="(void)" -->
void&nbsp;</td><td class="memItemRight" valign="bottom"><b>StopGripper</b> (void)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a8553ce771c7ec9fc7376014fd9638c47"></a><!-- doxytag: member="P2OS::OpenArmGripper" ref="a8553ce771c7ec9fc7376014fd9638c47" args="(void)" -->
void&nbsp;</td><td class="memItemRight" valign="bottom"><b>OpenArmGripper</b> (void)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a1008ca32375b01ef3066c4da55509682"></a><!-- doxytag: member="P2OS::CloseArmGripper" ref="a1008ca32375b01ef3066c4da55509682" args="(void)" -->
void&nbsp;</td><td class="memItemRight" valign="bottom"><b>CloseArmGripper</b> (void)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a52cfa075ce04831da01edc53bcaf8053"></a><!-- doxytag: member="P2OS::StopArmGripper" ref="a52cfa075ce04831da01edc53bcaf8053" args="(void)" -->
void&nbsp;</td><td class="memItemRight" valign="bottom"><b>StopArmGripper</b> (void)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ac2f26a8f4ea89491c034e8ef27fbbcf4"></a><!-- doxytag: member="P2OS::TicksToDegrees" ref="ac2f26a8f4ea89491c034e8ef27fbbcf4" args="(int joint, unsigned char ticks)" -->
double&nbsp;</td><td class="memItemRight" valign="bottom"><b>TicksToDegrees</b> (int joint, unsigned char ticks)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a7ba8b6f7e0d27524bfe9d210ed1e2044"></a><!-- doxytag: member="P2OS::DegreesToTicks" ref="a7ba8b6f7e0d27524bfe9d210ed1e2044" args="(int joint, double degrees)" -->
unsigned char&nbsp;</td><td class="memItemRight" valign="bottom"><b>DegreesToTicks</b> (int joint, double degrees)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ae1fa4ad8b4a2e393545c98f92b77851b"></a><!-- doxytag: member="P2OS::TicksToRadians" ref="ae1fa4ad8b4a2e393545c98f92b77851b" args="(int joint, unsigned char ticks)" -->
double&nbsp;</td><td class="memItemRight" valign="bottom"><b>TicksToRadians</b> (int joint, unsigned char ticks)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a50a47a8694ada80435cc8f6551eb2c3a"></a><!-- doxytag: member="P2OS::RadiansToTicks" ref="a50a47a8694ada80435cc8f6551eb2c3a" args="(int joint, double rads)" -->
unsigned char&nbsp;</td><td class="memItemRight" valign="bottom"><b>RadiansToTicks</b> (int joint, double rads)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a1a6d927b87f6fbbdb8d851fb3d0afa57"></a><!-- doxytag: member="P2OS::RadsPerSectoSecsPerTick" ref="a1a6d927b87f6fbbdb8d851fb3d0afa57" args="(int joint, double speed)" -->
double&nbsp;</td><td class="memItemRight" valign="bottom"><b>RadsPerSectoSecsPerTick</b> (int joint, double speed)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a018dc32f53cb48703c3af17f0bd036cb"></a><!-- doxytag: member="P2OS::SecsPerTicktoRadsPerSec" ref="a018dc32f53cb48703c3af17f0bd036cb" args="(int joint, double secs)" -->
double&nbsp;</td><td class="memItemRight" valign="bottom"><b>SecsPerTicktoRadsPerSec</b> (int joint, double secs)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a49f6ebbb113d0aea1a16de6cc5e02a5f"></a><!-- doxytag: member="P2OS::ToggleActArrayPower" ref="a49f6ebbb113d0aea1a16de6cc5e02a5f" args="(unsigned char val, bool lock=true)" -->
void&nbsp;</td><td class="memItemRight" valign="bottom"><b>ToggleActArrayPower</b> (unsigned char val, bool lock=true)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a0f9040baebcd82805ba423cf86e9fa1a"></a><!-- doxytag: member="P2OS::SetActArrayJointSpeed" ref="a0f9040baebcd82805ba423cf86e9fa1a" args="(int joint, double speed)" -->
void&nbsp;</td><td class="memItemRight" valign="bottom"><b>SetActArrayJointSpeed</b> (int joint, double speed)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a6895a7e65488695141283fbfaee06d60"></a><!-- doxytag: member="P2OS::HandleActArrayPosCmd" ref="a6895a7e65488695141283fbfaee06d60" args="(player_actarray_position_cmd_t cmd)" -->
void&nbsp;</td><td class="memItemRight" valign="bottom"><b>HandleActArrayPosCmd</b> (<a class="el" href="structplayer__actarray__position__cmd.html">player_actarray_position_cmd_t</a> cmd)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="acaf99a5042b0b177575ff95413439561"></a><!-- doxytag: member="P2OS::HandleActArrayHomeCmd" ref="acaf99a5042b0b177575ff95413439561" args="(player_actarray_home_cmd_t cmd)" -->
void&nbsp;</td><td class="memItemRight" valign="bottom"><b>HandleActArrayHomeCmd</b> (<a class="el" href="structplayer__actarray__home__cmd.html">player_actarray_home_cmd_t</a> cmd)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a6d3d0d81bab0e0a41c3fd748b10a8330"></a><!-- doxytag: member="P2OS::HandleActArrayCommand" ref="a6d3d0d81bab0e0a41c3fd748b10a8330" args="(player_msghdr *hdr, void *data)" -->
int&nbsp;</td><td class="memItemRight" valign="bottom"><b>HandleActArrayCommand</b> (<a class="el" href="structplayer__msghdr.html">player_msghdr</a> *hdr, void *data)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="abc5de842ff4d033796244c2a5d2938ae"></a><!-- doxytag: member="P2OS::HandleLimbHomeCmd" ref="abc5de842ff4d033796244c2a5d2938ae" args="(void)" -->
void&nbsp;</td><td class="memItemRight" valign="bottom"><b>HandleLimbHomeCmd</b> (void)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="aebfde69cf7da352235349647934d8f81"></a><!-- doxytag: member="P2OS::HandleLimbStopCmd" ref="aebfde69cf7da352235349647934d8f81" args="(void)" -->
void&nbsp;</td><td class="memItemRight" valign="bottom"><b>HandleLimbStopCmd</b> (void)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="afed0153998a78bfd0f6dea494dd21ed0"></a><!-- doxytag: member="P2OS::HandleLimbSetPoseCmd" ref="afed0153998a78bfd0f6dea494dd21ed0" args="(player_limb_setpose_cmd_t cmd)" -->
void&nbsp;</td><td class="memItemRight" valign="bottom"><b>HandleLimbSetPoseCmd</b> (<a class="el" href="structplayer__limb__setpose__cmd.html">player_limb_setpose_cmd_t</a> cmd)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="aba7183ca7da2bf70b8f581218e04b4ef"></a><!-- doxytag: member="P2OS::HandleLimbSetPositionCmd" ref="aba7183ca7da2bf70b8f581218e04b4ef" args="(player_limb_setposition_cmd_t cmd)" -->
void&nbsp;</td><td class="memItemRight" valign="bottom"><b>HandleLimbSetPositionCmd</b> (<a class="el" href="structplayer__limb__setposition__cmd.html">player_limb_setposition_cmd_t</a> cmd)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ac3cc48e632774b9a718545b35278224e"></a><!-- doxytag: member="P2OS::HandleLimbVecMoveCmd" ref="ac3cc48e632774b9a718545b35278224e" args="(player_limb_vecmove_cmd_t cmd)" -->
void&nbsp;</td><td class="memItemRight" valign="bottom"><b>HandleLimbVecMoveCmd</b> (<a class="el" href="structplayer__limb__vecmove__cmd.html">player_limb_vecmove_cmd_t</a> cmd)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a851119254c6e7be0b27a7da8389fb653"></a><!-- doxytag: member="P2OS::HandleLimbCommand" ref="a851119254c6e7be0b27a7da8389fb653" args="(player_msghdr *hdr, void *data)" -->
int&nbsp;</td><td class="memItemRight" valign="bottom"><b>HandleLimbCommand</b> (<a class="el" href="structplayer__msghdr.html">player_msghdr</a> *hdr, void *data)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a115556b719ce891ac9efbd3a93e7b567"></a><!-- doxytag: member="P2OS::SendCommand" ref="a115556b719ce891ac9efbd3a93e7b567" args="(unsigned char *str, int len)" -->
int&nbsp;</td><td class="memItemRight" valign="bottom"><b>SendCommand</b> (unsigned char *str, int len)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a651219007971ffe9aa70cafce59b1d12"></a><!-- doxytag: member="P2OS::SendRequest" ref="a651219007971ffe9aa70cafce59b1d12" args="(unsigned char *str, int len, unsigned char *reply, uint8_t camera=1)" -->
int&nbsp;</td><td class="memItemRight" valign="bottom"><b>SendRequest</b> (unsigned char *str, int len, unsigned char *reply, uint8_t camera=1)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="adccc9055f1f5bb11ad649e1b4d5c673c"></a><!-- doxytag: member="P2OS::PrintPacket" ref="adccc9055f1f5bb11ad649e1b4d5c673c" args="(char *str, unsigned char *cmd, int len)" -->
void&nbsp;</td><td class="memItemRight" valign="bottom"><b>PrintPacket</b> (char *str, unsigned char *cmd, int len)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a9aa723f02b0315d0e2bce742642c4826"></a><!-- doxytag: member="P2OS::SendAbsPanTilt" ref="a9aa723f02b0315d0e2bce742642c4826" args="(int pan, int tilt)" -->
int&nbsp;</td><td class="memItemRight" valign="bottom"><b>SendAbsPanTilt</b> (int pan, int tilt)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a94eb3d449165b08b9e4e7f762891ea7c"></a><!-- doxytag: member="P2OS::setDefaultTiltRange" ref="a94eb3d449165b08b9e4e7f762891ea7c" args="()" -->
int&nbsp;</td><td class="memItemRight" valign="bottom"><b>setDefaultTiltRange</b> ()</td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ad8494bdf1ab52fc3e44b5d66d4013957"></a><!-- doxytag: member="P2OS::GetAbsPanTilt" ref="ad8494bdf1ab52fc3e44b5d66d4013957" args="(int *pan, int *tilt)" -->
int&nbsp;</td><td class="memItemRight" valign="bottom"><b>GetAbsPanTilt</b> (int *pan, int *tilt)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a99dd0168a12517fdbf39f92dfc51af64"></a><!-- doxytag: member="P2OS::GetAbsZoom" ref="a99dd0168a12517fdbf39f92dfc51af64" args="(int *zoom)" -->
int&nbsp;</td><td class="memItemRight" valign="bottom"><b>GetAbsZoom</b> (int *zoom)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a902bdd11207578e51708a17891b5582e"></a><!-- doxytag: member="P2OS::SendAbsZoom" ref="a902bdd11207578e51708a17891b5582e" args="(int zoom)" -->
int&nbsp;</td><td class="memItemRight" valign="bottom"><b>SendAbsZoom</b> (int zoom)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a336e6772cfe2e10f79c3f09fea149aa5"></a><!-- doxytag: member="P2OS::read_ptz" ref="a336e6772cfe2e10f79c3f09fea149aa5" args="(unsigned char *reply, int size)" -->
int&nbsp;</td><td class="memItemRight" valign="bottom"><b>read_ptz</b> (unsigned char *reply, int size)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ae9c18c6e89c49ff9bc0515ba406cc985"></a><!-- doxytag: member="P2OS::ReceiveCommandAnswer" ref="ae9c18c6e89c49ff9bc0515ba406cc985" args="(int asize)" -->
int&nbsp;</td><td class="memItemRight" valign="bottom"><b>ReceiveCommandAnswer</b> (int asize)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a609289fe384211d1e856dee7ba90f7ef"></a><!-- doxytag: member="P2OS::ReceiveRequestAnswer" ref="a609289fe384211d1e856dee7ba90f7ef" args="(unsigned char *data, int s1, int s2)" -->
int&nbsp;</td><td class="memItemRight" valign="bottom"><b>ReceiveRequestAnswer</b> (unsigned char *data, int s1, int s2)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="af60411132fce6a076feb2c5a154f8979"></a><!-- doxytag: member="P2OS::setControlMode" ref="af60411132fce6a076feb2c5a154f8979" args="()" -->
int&nbsp;</td><td class="memItemRight" valign="bottom"><b>setControlMode</b> ()</td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a1783ba15a7682aaeacbdbb52e78b659e"></a><!-- doxytag: member="P2OS::setNotifyCommand" ref="a1783ba15a7682aaeacbdbb52e78b659e" args="()" -->
int&nbsp;</td><td class="memItemRight" valign="bottom"><b>setNotifyCommand</b> ()</td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a8e6d2426369339735a144c309ee4635e"></a><!-- doxytag: member="P2OS::setPower" ref="a8e6d2426369339735a144c309ee4635e" args="(int on)" -->
int&nbsp;</td><td class="memItemRight" valign="bottom"><b>setPower</b> (int on)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="acb538b74ded5b20fc0d45f3c8e4a146c"></a><!-- doxytag: member="P2OS::setOnScreenOff" ref="acb538b74ded5b20fc0d45f3c8e4a146c" args="()" -->
int&nbsp;</td><td class="memItemRight" valign="bottom"><b>setOnScreenOff</b> ()</td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a5dd1c0aea3caeb8f628a2953595e6dfa"></a><!-- doxytag: member="P2OS::CheckHostControlMode" ref="a5dd1c0aea3caeb8f628a2953595e6dfa" args="()" -->
int&nbsp;</td><td class="memItemRight" valign="bottom"><b>CheckHostControlMode</b> ()</td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="aa32502ceceedbe5d43a385b347b0d538"></a><!-- doxytag: member="P2OS::sendInit" ref="aa32502ceceedbe5d43a385b347b0d538" args="()" -->
int&nbsp;</td><td class="memItemRight" valign="bottom"><b>sendInit</b> ()</td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a1b22b208052f09cbb0855b46a8a32d2f"></a><!-- doxytag: member="P2OS::GetMaxZoom" ref="a1b22b208052f09cbb0855b46a8a32d2f" args="(int *maxzoom)" -->
int&nbsp;</td><td class="memItemRight" valign="bottom"><b>GetMaxZoom</b> (int *maxzoom)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a11b2134ebb0c0d93eb05de2fb323e17b"></a><!-- doxytag: member="P2OS::SendPulse" ref="a11b2134ebb0c0d93eb05de2fb323e17b" args="(void)" -->
void&nbsp;</td><td class="memItemRight" valign="bottom"><b>SendPulse</b> (void)</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="anchor" id="a4338508783b6c911898798160132b4ed"></a><!-- doxytag: member="P2OS::p2os_data" ref="a4338508783b6c911898798160132b4ed" args="" -->
player_p2os_data_t&nbsp;</td><td class="memItemRight" valign="bottom"><b>p2os_data</b></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a85ec8410bc9d2e44ac4c10735395020c"></a><!-- doxytag: member="P2OS::position_id" ref="a85ec8410bc9d2e44ac4c10735395020c" args="" -->
<a class="el" href="structplayer__devaddr.html">player_devaddr_t</a>&nbsp;</td><td class="memItemRight" valign="bottom"><b>position_id</b></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a46a0caa031a469d898bbaee8d0b1d252"></a><!-- doxytag: member="P2OS::sonar_id" ref="a46a0caa031a469d898bbaee8d0b1d252" args="" -->
<a class="el" href="structplayer__devaddr.html">player_devaddr_t</a>&nbsp;</td><td class="memItemRight" valign="bottom"><b>sonar_id</b></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a41ceac770f60ceb83797f26b3d0cded3"></a><!-- doxytag: member="P2OS::aio_id" ref="a41ceac770f60ceb83797f26b3d0cded3" args="" -->
<a class="el" href="structplayer__devaddr.html">player_devaddr_t</a>&nbsp;</td><td class="memItemRight" valign="bottom"><b>aio_id</b></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a797ae0d28e8ff0b0cd5bf057bce4fa4e"></a><!-- doxytag: member="P2OS::dio_id" ref="a797ae0d28e8ff0b0cd5bf057bce4fa4e" args="" -->
<a class="el" href="structplayer__devaddr.html">player_devaddr_t</a>&nbsp;</td><td class="memItemRight" valign="bottom"><b>dio_id</b></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ae94b0b64e01662f02f18c91a5c297e55"></a><!-- doxytag: member="P2OS::gripper_id" ref="ae94b0b64e01662f02f18c91a5c297e55" args="" -->
<a class="el" href="structplayer__devaddr.html">player_devaddr_t</a>&nbsp;</td><td class="memItemRight" valign="bottom"><b>gripper_id</b></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a1d8727e656fbbd8f8b26fd25f2cb1be4"></a><!-- doxytag: member="P2OS::lift_id" ref="a1d8727e656fbbd8f8b26fd25f2cb1be4" args="" -->
<a class="el" href="structplayer__devaddr.html">player_devaddr_t</a>&nbsp;</td><td class="memItemRight" valign="bottom"><b>lift_id</b></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ae5f759263b26f41af852e014bd655cf4"></a><!-- doxytag: member="P2OS::bumper_id" ref="ae5f759263b26f41af852e014bd655cf4" args="" -->
<a class="el" href="structplayer__devaddr.html">player_devaddr_t</a>&nbsp;</td><td class="memItemRight" valign="bottom"><b>bumper_id</b></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a42a614f2c49cb31ffd8da082fe793607"></a><!-- doxytag: member="P2OS::power_id" ref="a42a614f2c49cb31ffd8da082fe793607" args="" -->
<a class="el" href="structplayer__devaddr.html">player_devaddr_t</a>&nbsp;</td><td class="memItemRight" valign="bottom"><b>power_id</b></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a32ae60d516fddafe875f5cced615875b"></a><!-- doxytag: member="P2OS::compass_id" ref="a32ae60d516fddafe875f5cced615875b" args="" -->
<a class="el" href="structplayer__devaddr.html">player_devaddr_t</a>&nbsp;</td><td class="memItemRight" valign="bottom"><b>compass_id</b></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="adb54ffbe342db7bdd7348030afbf8f19"></a><!-- doxytag: member="P2OS::gyro_id" ref="adb54ffbe342db7bdd7348030afbf8f19" args="" -->
<a class="el" href="structplayer__devaddr.html">player_devaddr_t</a>&nbsp;</td><td class="memItemRight" valign="bottom"><b>gyro_id</b></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ab68c46547cd634b91b0c54e24ad68362"></a><!-- doxytag: member="P2OS::blobfinder_id" ref="ab68c46547cd634b91b0c54e24ad68362" args="" -->
<a class="el" href="structplayer__devaddr.html">player_devaddr_t</a>&nbsp;</td><td class="memItemRight" valign="bottom"><b>blobfinder_id</b></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a243a7475e461b92b3682f3c2e50158a0"></a><!-- doxytag: member="P2OS::audio_id" ref="a243a7475e461b92b3682f3c2e50158a0" args="" -->
<a class="el" href="structplayer__devaddr.html">player_devaddr_t</a>&nbsp;</td><td class="memItemRight" valign="bottom"><b>audio_id</b></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ac845b347853a4f421e91fc116052335f"></a><!-- doxytag: member="P2OS::actarray_id" ref="ac845b347853a4f421e91fc116052335f" args="" -->
<a class="el" href="structplayer__devaddr.html">player_devaddr_t</a>&nbsp;</td><td class="memItemRight" valign="bottom"><b>actarray_id</b></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="aeb4c3aee98dcf3cee435b80a1b445e40"></a><!-- doxytag: member="P2OS::limb_id" ref="aeb4c3aee98dcf3cee435b80a1b445e40" args="" -->
<a class="el" href="structplayer__devaddr.html">player_devaddr_t</a>&nbsp;</td><td class="memItemRight" valign="bottom"><b>limb_id</b></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ad6ec394eef868c13703de437210ce75b"></a><!-- doxytag: member="P2OS::ptz_id" ref="ad6ec394eef868c13703de437210ce75b" args="" -->
<a class="el" href="structplayer__devaddr.html">player_devaddr_t</a>&nbsp;</td><td class="memItemRight" valign="bottom"><b>ptz_id</b></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a2651e895dfeaecc176b131b9a33133e6"></a><!-- doxytag: member="P2OS::armgripper_id" ref="a2651e895dfeaecc176b131b9a33133e6" args="" -->
<a class="el" href="structplayer__devaddr.html">player_devaddr_t</a>&nbsp;</td><td class="memItemRight" valign="bottom"><b>armgripper_id</b></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ab5f173fba28622eb8bd64daea099cbca"></a><!-- doxytag: member="P2OS::sentGripperCmd" ref="ab5f173fba28622eb8bd64daea099cbca" args="" -->
bool&nbsp;</td><td class="memItemRight" valign="bottom"><b>sentGripperCmd</b></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="abc2bd4feda18dd9300941c7b14f73285"></a><!-- doxytag: member="P2OS::lastGripperCmd" ref="abc2bd4feda18dd9300941c7b14f73285" args="" -->
uint8_t&nbsp;</td><td class="memItemRight" valign="bottom"><b>lastGripperCmd</b></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a287ec757cde9a1f72b23c627ec442580"></a><!-- doxytag: member="P2OS::lastLiftCmd" ref="a287ec757cde9a1f72b23c627ec442580" args="" -->
uint8_t&nbsp;</td><td class="memItemRight" valign="bottom"><b>lastLiftCmd</b></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a3b878afa51b213e167f676bb4e4dd8a5"></a><!-- doxytag: member="P2OS::lastLiftPosCmd" ref="a3b878afa51b213e167f676bb4e4dd8a5" args="" -->
<a class="el" href="structplayer__actarray__position__cmd.html">player_actarray_position_cmd_t</a>&nbsp;</td><td class="memItemRight" valign="bottom"><b>lastLiftPosCmd</b></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a160f1328b3432404c027ac68e8ee5e94"></a><!-- doxytag: member="P2OS::sentArmGripperCmd" ref="a160f1328b3432404c027ac68e8ee5e94" args="" -->
bool&nbsp;</td><td class="memItemRight" valign="bottom"><b>sentArmGripperCmd</b></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="afbecf2b039173da0001113c8ca56c4c1"></a><!-- doxytag: member="P2OS::lastArmGripperCmd" ref="afbecf2b039173da0001113c8ca56c4c1" args="" -->
uint8_t&nbsp;</td><td class="memItemRight" valign="bottom"><b>lastArmGripperCmd</b></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a92040e557e83a9f832b9924f1f6a7943"></a><!-- doxytag: member="P2OS::lastActArrayCmd" ref="a92040e557e83a9f832b9924f1f6a7943" args="" -->
uint8_t&nbsp;</td><td class="memItemRight" valign="bottom"><b>lastActArrayCmd</b></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ab19aad33751f5e8238e6d9d657644cfa"></a><!-- doxytag: member="P2OS::lastActArrayPosCmd" ref="ab19aad33751f5e8238e6d9d657644cfa" args="" -->
<a class="el" href="structplayer__actarray__position__cmd.html">player_actarray_position_cmd_t</a>&nbsp;</td><td class="memItemRight" valign="bottom"><b>lastActArrayPosCmd</b></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a86d9745e01d534b28634207b14569f06"></a><!-- doxytag: member="P2OS::lastActArrayHomeCmd" ref="a86d9745e01d534b28634207b14569f06" args="" -->
<a class="el" href="structplayer__actarray__home__cmd.html">player_actarray_home_cmd_t</a>&nbsp;</td><td class="memItemRight" valign="bottom"><b>lastActArrayHomeCmd</b></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="af52b4ce5b921dbbbcabf2ba77d6e39a4"></a><!-- doxytag: member="P2OS::sent_audio_cmd" ref="af52b4ce5b921dbbbcabf2ba77d6e39a4" args="" -->
bool&nbsp;</td><td class="memItemRight" valign="bottom"><b>sent_audio_cmd</b></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a124f0e9dae944fbdb5f95fd6872d0bec"></a><!-- doxytag: member="P2OS::last_audio_cmd" ref="a124f0e9dae944fbdb5f95fd6872d0bec" args="" -->
<a class="el" href="structplayer__audio__sample__item.html">player_audio_sample_item_t</a>&nbsp;</td><td class="memItemRight" valign="bottom"><b>last_audio_cmd</b></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="afa431b5d579c6306fcd173298e6ca6de"></a><!-- doxytag: member="P2OS::rot_kp" ref="afa431b5d579c6306fcd173298e6ca6de" args="" -->
int&nbsp;</td><td class="memItemRight" valign="bottom"><b>rot_kp</b></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a0ebbbec4b3316d7361848e86c18affcb"></a><!-- doxytag: member="P2OS::rot_kv" ref="a0ebbbec4b3316d7361848e86c18affcb" args="" -->
int&nbsp;</td><td class="memItemRight" valign="bottom"><b>rot_kv</b></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a72e976c5a8cdd20ef3722aa3a31f9464"></a><!-- doxytag: member="P2OS::rot_ki" ref="a72e976c5a8cdd20ef3722aa3a31f9464" args="" -->
int&nbsp;</td><td class="memItemRight" valign="bottom"><b>rot_ki</b></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="aa5cd150b42b8d8d91db51a29285b6612"></a><!-- doxytag: member="P2OS::trans_kp" ref="aa5cd150b42b8d8d91db51a29285b6612" args="" -->
int&nbsp;</td><td class="memItemRight" valign="bottom"><b>trans_kp</b></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ac2d2e1f26989a47e672409ae8875a9ff"></a><!-- doxytag: member="P2OS::trans_kv" ref="ac2d2e1f26989a47e672409ae8875a9ff" args="" -->
int&nbsp;</td><td class="memItemRight" valign="bottom"><b>trans_kv</b></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a90a489d6fa0f125394a74eb9e8ae9d66"></a><!-- doxytag: member="P2OS::trans_ki" ref="a90a489d6fa0f125394a74eb9e8ae9d66" args="" -->
int&nbsp;</td><td class="memItemRight" valign="bottom"><b>trans_ki</b></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="aeaff4d5976abe16e55b00ffcbd7242de"></a><!-- doxytag: member="P2OS::position_subscriptions" ref="aeaff4d5976abe16e55b00ffcbd7242de" args="" -->
int&nbsp;</td><td class="memItemRight" valign="bottom"><b>position_subscriptions</b></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a4e81b9921bc64cf7860721dd8c17fdbb"></a><!-- doxytag: member="P2OS::sonar_subscriptions" ref="a4e81b9921bc64cf7860721dd8c17fdbb" args="" -->
int&nbsp;</td><td class="memItemRight" valign="bottom"><b>sonar_subscriptions</b></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a7c66d8f5d588d5e933064e6433647f61"></a><!-- doxytag: member="P2OS::actarray_subscriptions" ref="a7c66d8f5d588d5e933064e6433647f61" args="" -->
int&nbsp;</td><td class="memItemRight" valign="bottom"><b>actarray_subscriptions</b></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="adec3a5e2f27bb2c8e5849388fa969b0e"></a><!-- doxytag: member="P2OS::ptz_subscriptions" ref="adec3a5e2f27bb2c8e5849388fa969b0e" args="" -->
int&nbsp;</td><td class="memItemRight" valign="bottom"><b>ptz_subscriptions</b></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="af48e1b72c26d0f50f71f105fdab7891c"></a><!-- doxytag: member="P2OS::sippacket" ref="af48e1b72c26d0f50f71f105fdab7891c" args="" -->
<a class="el" href="classSIP.html">SIP</a> *&nbsp;</td><td class="memItemRight" valign="bottom"><b>sippacket</b></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="abb67d2ae2ff02f8db62d4d21228e02c8"></a><!-- doxytag: member="P2OS::gripperPose" ref="abb67d2ae2ff02f8db62d4d21228e02c8" args="" -->
<a class="el" href="structplayer__pose3d.html">player_pose3d_t</a>&nbsp;</td><td class="memItemRight" valign="bottom"><b>gripperPose</b></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a3fc148c4dfe02a3275c566e77b096b0e"></a><!-- doxytag: member="P2OS::gripperOuterSize" ref="a3fc148c4dfe02a3275c566e77b096b0e" args="" -->
<a class="el" href="structplayer__bbox3d.html">player_bbox3d_t</a>&nbsp;</td><td class="memItemRight" valign="bottom"><b>gripperOuterSize</b></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a098faf019546fbbbdb8d5da2229fba0c"></a><!-- doxytag: member="P2OS::gripperInnerSize" ref="a098faf019546fbbbdb8d5da2229fba0c" args="" -->
<a class="el" href="structplayer__bbox3d.html">player_bbox3d_t</a>&nbsp;</td><td class="memItemRight" valign="bottom"><b>gripperInnerSize</b></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a79a369a80dcf28221bc662ffd1c94552"></a><!-- doxytag: member="P2OS::armGripperOuterSize" ref="a79a369a80dcf28221bc662ffd1c94552" args="" -->
<a class="el" href="structplayer__bbox3d.html">player_bbox3d_t</a>&nbsp;</td><td class="memItemRight" valign="bottom"><b>armGripperOuterSize</b></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a7f0f593b6e38c8f1d5b26157d6f0da7f"></a><!-- doxytag: member="P2OS::armGripperInnerSize" ref="a7f0f593b6e38c8f1d5b26157d6f0da7f" args="" -->
<a class="el" href="structplayer__bbox3d.html">player_bbox3d_t</a>&nbsp;</td><td class="memItemRight" valign="bottom"><b>armGripperInnerSize</b></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="afd1c6ddd938793b97174943fc366c6b8"></a><!-- doxytag: member="P2OS::aaLengths" ref="afd1c6ddd938793b97174943fc366c6b8" args="[6]" -->
double&nbsp;</td><td class="memItemRight" valign="bottom"><b>aaLengths</b> [6]</td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ac94e8d317b947e739851a2fce21158d3"></a><!-- doxytag: member="P2OS::aaOrients" ref="ac94e8d317b947e739851a2fce21158d3" args="[18]" -->
double&nbsp;</td><td class="memItemRight" valign="bottom"><b>aaOrients</b> [18]</td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a429f6490c773e859ecbd8d043c9afd57"></a><!-- doxytag: member="P2OS::aaAxes" ref="a429f6490c773e859ecbd8d043c9afd57" args="[18]" -->
double&nbsp;</td><td class="memItemRight" valign="bottom"><b>aaAxes</b> [18]</td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a0e89abc120d0c3136ca3bad6c6dbd9e2"></a><!-- doxytag: member="P2OS::aaBasePos" ref="a0e89abc120d0c3136ca3bad6c6dbd9e2" args="" -->
<a class="el" href="structplayer__point__3d.html">player_point_3d_t</a>&nbsp;</td><td class="memItemRight" valign="bottom"><b>aaBasePos</b></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a68304ca388252d0583bdc943e6169b25"></a><!-- doxytag: member="P2OS::aaBaseOrient" ref="a68304ca388252d0583bdc943e6169b25" args="" -->
<a class="el" href="structplayer__orientation__3d.html">player_orientation_3d_t</a>&nbsp;</td><td class="memItemRight" valign="bottom"><b>aaBaseOrient</b></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a67db5827a3631ea1eb877e726b4474ef"></a><!-- doxytag: member="P2OS::kineCalc" ref="a67db5827a3631ea1eb877e726b4474ef" args="" -->
<a class="el" href="classKineCalc.html">KineCalc</a> *&nbsp;</td><td class="memItemRight" valign="bottom"><b>kineCalc</b></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a30b87825a58648cc0312fe64ad536585"></a><!-- doxytag: member="P2OS::armOffsetX" ref="a30b87825a58648cc0312fe64ad536585" args="" -->
float&nbsp;</td><td class="memItemRight" valign="bottom"><b>armOffsetX</b></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ade1ec454cf1e269474f9e56d3d9e7884"></a><!-- doxytag: member="P2OS::armOffsetY" ref="ade1ec454cf1e269474f9e56d3d9e7884" args="" -->
float&nbsp;</td><td class="memItemRight" valign="bottom"><b>armOffsetY</b></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a4b89b2e17384fdd66408f26e056dab85"></a><!-- doxytag: member="P2OS::armOffsetZ" ref="a4b89b2e17384fdd66408f26e056dab85" args="" -->
float&nbsp;</td><td class="memItemRight" valign="bottom"><b>armOffsetZ</b></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a942d3d29f5cad62f75c5ca9022dc1a79"></a><!-- doxytag: member="P2OS::limb_data" ref="a942d3d29f5cad62f75c5ca9022dc1a79" args="" -->
<a class="el" href="structplayer__limb__data.html">player_limb_data_t</a>&nbsp;</td><td class="memItemRight" valign="bottom"><b>limb_data</b></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a5566fd82658659b556d202f2c1171a5e"></a><!-- doxytag: member="P2OS::param_idx" ref="a5566fd82658659b556d202f2c1171a5e" args="" -->
int&nbsp;</td><td class="memItemRight" valign="bottom"><b>param_idx</b></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ab0f62ac646a1c8ca5355fa33af357ccd"></a><!-- doxytag: member="P2OS::direct_wheel_vel_control" ref="ab0f62ac646a1c8ca5355fa33af357ccd" args="" -->
int&nbsp;</td><td class="memItemRight" valign="bottom"><b>direct_wheel_vel_control</b></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ac4e91c4b02e6572b4dac6466a65517ae"></a><!-- doxytag: member="P2OS::psos_fd" ref="ac4e91c4b02e6572b4dac6466a65517ae" args="" -->
int&nbsp;</td><td class="memItemRight" valign="bottom"><b>psos_fd</b></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a09227b874ceffbb1867e720a1500a976"></a><!-- doxytag: member="P2OS::psos_serial_port" ref="a09227b874ceffbb1867e720a1500a976" args="" -->
const char *&nbsp;</td><td class="memItemRight" valign="bottom"><b>psos_serial_port</b></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="afa2031806e7e9e865f5b43c5643caa22"></a><!-- doxytag: member="P2OS::psos_use_tcp" ref="afa2031806e7e9e865f5b43c5643caa22" args="" -->
bool&nbsp;</td><td class="memItemRight" valign="bottom"><b>psos_use_tcp</b></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="af7770580e0aba2ef58ff4312e2613361"></a><!-- doxytag: member="P2OS::psos_tcp_host" ref="af7770580e0aba2ef58ff4312e2613361" args="" -->
const char *&nbsp;</td><td class="memItemRight" valign="bottom"><b>psos_tcp_host</b></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a2d29e912c59a5ba4ab61fbdbecf18934"></a><!-- doxytag: member="P2OS::psos_tcp_port" ref="a2d29e912c59a5ba4ab61fbdbecf18934" args="" -->
int&nbsp;</td><td class="memItemRight" valign="bottom"><b>psos_tcp_port</b></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a0e77c7632848a261c4227ada917f3170"></a><!-- doxytag: member="P2OS::lastblob_tv" ref="a0e77c7632848a261c4227ada917f3170" args="" -->
struct timeval&nbsp;</td><td class="memItemRight" valign="bottom"><b>lastblob_tv</b></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="af37ae09a099c2c72ff0719aa2219224c"></a><!-- doxytag: member="P2OS::motor_max_speed" ref="af37ae09a099c2c72ff0719aa2219224c" args="" -->
int&nbsp;</td><td class="memItemRight" valign="bottom"><b>motor_max_speed</b></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a51f15ed7f6dc58e5e3a7c9ea46103d03"></a><!-- doxytag: member="P2OS::motor_max_turnspeed" ref="a51f15ed7f6dc58e5e3a7c9ea46103d03" args="" -->
int&nbsp;</td><td class="memItemRight" valign="bottom"><b>motor_max_turnspeed</b></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ae6ef7527006d92e1966d64441391efa0"></a><!-- doxytag: member="P2OS::use_vel_band" ref="ae6ef7527006d92e1966d64441391efa0" args="" -->
bool&nbsp;</td><td class="memItemRight" valign="bottom"><b>use_vel_band</b></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a96f7392d2f3e34ab011b7279c782f97b"></a><!-- doxytag: member="P2OS::motor_max_trans_accel" ref="a96f7392d2f3e34ab011b7279c782f97b" args="" -->
short&nbsp;</td><td class="memItemRight" valign="bottom"><b>motor_max_trans_accel</b></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a628a6b86c395014a7ccd5eb9c5b6fa8b"></a><!-- doxytag: member="P2OS::motor_max_trans_decel" ref="a628a6b86c395014a7ccd5eb9c5b6fa8b" args="" -->
short&nbsp;</td><td class="memItemRight" valign="bottom"><b>motor_max_trans_decel</b></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a142d54f6984d57a92d408c685637e5da"></a><!-- doxytag: member="P2OS::motor_max_rot_accel" ref="a142d54f6984d57a92d408c685637e5da" args="" -->
short&nbsp;</td><td class="memItemRight" valign="bottom"><b>motor_max_rot_accel</b></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a7bf8c6afb0d1640e6874c539d5998c30"></a><!-- doxytag: member="P2OS::motor_max_rot_decel" ref="a7bf8c6afb0d1640e6874c539d5998c30" args="" -->
short&nbsp;</td><td class="memItemRight" valign="bottom"><b>motor_max_rot_decel</b></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a7ea8331da5a88ea50cda99a2c25c575b"></a><!-- doxytag: member="P2OS::radio_modemp" ref="a7ea8331da5a88ea50cda99a2c25c575b" args="" -->
int&nbsp;</td><td class="memItemRight" valign="bottom"><b>radio_modemp</b></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a3f4fa26c939297d39e0767317a371984"></a><!-- doxytag: member="P2OS::joystickp" ref="a3f4fa26c939297d39e0767317a371984" args="" -->
int&nbsp;</td><td class="memItemRight" valign="bottom"><b>joystickp</b></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a29651b77289fbfcf47bb9a49ad177246"></a><!-- doxytag: member="P2OS::bumpstall" ref="a29651b77289fbfcf47bb9a49ad177246" args="" -->
int&nbsp;</td><td class="memItemRight" valign="bottom"><b>bumpstall</b></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ae470988907fd12aaf92dbe15592ef0ab"></a><!-- doxytag: member="P2OS::ignore_checksum" ref="ae470988907fd12aaf92dbe15592ef0ab" args="" -->
bool&nbsp;</td><td class="memItemRight" valign="bottom"><b>ignore_checksum</b></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a0a7d567b99663e77f9906b3f3a9b3073"></a><!-- doxytag: member="P2OS::ptz_data" ref="a0a7d567b99663e77f9906b3f3a9b3073" args="" -->
<a class="el" href="structplayer__ptz__data.html">player_ptz_data_t</a>&nbsp;</td><td class="memItemRight" valign="bottom"><b>ptz_data</b></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a277a24860c4b57cd6edbcfa0d3135cd4"></a><!-- doxytag: member="P2OS::maxfov" ref="a277a24860c4b57cd6edbcfa0d3135cd4" args="" -->
int&nbsp;</td><td class="memItemRight" valign="bottom"><b>maxfov</b></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a4800c288dd93bfb8bf6217fcfa2f5bb8"></a><!-- doxytag: member="P2OS::minfov" ref="a4800c288dd93bfb8bf6217fcfa2f5bb8" args="" -->
int&nbsp;</td><td class="memItemRight" valign="bottom"><b>minfov</b></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a31af117ee305c32bb5c72c6fb4b9a135"></a><!-- doxytag: member="P2OS::maxzoom" ref="a31af117ee305c32bb5c72c6fb4b9a135" args="" -->
int&nbsp;</td><td class="memItemRight" valign="bottom"><b>maxzoom</b></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a0d9cfe6494ac420cc992f2d490b6b626"></a><!-- doxytag: member="P2OS::pandemand" ref="a0d9cfe6494ac420cc992f2d490b6b626" args="" -->
int&nbsp;</td><td class="memItemRight" valign="bottom"><b>pandemand</b></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a2d2dbfa7301c6d1d330d131437f62b49"></a><!-- doxytag: member="P2OS::tiltdemand" ref="a2d2dbfa7301c6d1d330d131437f62b49" args="" -->
int&nbsp;</td><td class="memItemRight" valign="bottom"><b>tiltdemand</b></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="aa11da068bf7f5e5065f669d706414b5b"></a><!-- doxytag: member="P2OS::zoomdemand" ref="aa11da068bf7f5e5065f669d706414b5b" args="" -->
int&nbsp;</td><td class="memItemRight" valign="bottom"><b>zoomdemand</b></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ab702c767df3e59ed269ad91c7c77309e"></a><!-- doxytag: member="P2OS::cb" ref="ab702c767df3e59ed269ad91c7c77309e" args="" -->
<a class="el" href="classcircbuf.html">circbuf</a>&nbsp;</td><td class="memItemRight" valign="bottom"><b>cb</b></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a7b9398235df7fe24ee8d17b7ed5aa654"></a><!-- doxytag: member="P2OS::pulse" ref="a7b9398235df7fe24ee8d17b7ed5aa654" args="" -->
float&nbsp;</td><td class="memItemRight" valign="bottom"><b>pulse</b></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a1d654851dfddb41b70b70c29ed84f2a9"></a><!-- doxytag: member="P2OS::lastPulseTime" ref="a1d654851dfddb41b70b70c29ed84f2a9" args="" -->
double&nbsp;</td><td class="memItemRight" valign="bottom"><b>lastPulseTime</b></td></tr>
</table>
<hr/><h2>Member Function Documentation</h2>
<a class="anchor" id="ac3d15930f59fe70567cb4db0eadb6e6b"></a><!-- doxytag: member="P2OS::Main" ref="ac3d15930f59fe70567cb4db0eadb6e6b" args="()" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void P2OS::Main </td>
          <td>(</td>
          <td class="paramname"></td>
          <td>&nbsp;)&nbsp;</td>
          <td><code> [virtual]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Main method for driver thread. </p>
<p>drivers have their own thread of execution, created using StartThread(); this is the entry point for the driver thread, and must be overloaded by all threaded drivers. </p>

<p>Implements <a class="el" href="classThreadedDriver.html#a962ea9c4e4e36570dd33604552726ae9">ThreadedDriver</a>.</p>

<p>References <a class="el" href="classDriver.html#a125eab00b72ad55885162aef7024e09b">Driver::InQueue</a>, <a class="el" href="structplayer__devaddr.html#ac6a1d9efc69d7dee301aba2ef4b5948d">player_devaddr::interf</a>, <a class="el" href="structplayer__ptz__data.html#a5870c369ad13561cc46c99450301ff6f">player_ptz_data::pan</a>, <a class="el" href="classDriver.html#a91c6a959c611b5ff76623e82de665f68">Driver::ProcessMessages()</a>, <a class="el" href="structplayer__ptz__data.html#a9a56a3717b1615b6d011d9a9a8a0189a">player_ptz_data::tilt</a>, and <a class="el" href="structplayer__ptz__data.html#a84f4c556939952fa80295d3e624981a2">player_ptz_data::zoom</a>.</p>

</div>
</div>
<a class="anchor" id="a9304ae4d2fb1750d6fd77f62cc76be6b"></a><!-- doxytag: member="P2OS::MainQuit" ref="a9304ae4d2fb1750d6fd77f62cc76be6b" args="()" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void P2OS::MainQuit </td>
          <td>(</td>
          <td class="paramtype">void&nbsp;</td>
          <td class="paramname"></td>
          <td>&nbsp;)&nbsp;</td>
          <td><code> [virtual]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Cleanup method for driver thread (called when main exits). </p>
<p>Overload this method and to do additional cleanup when the driver thread exits. </p>

<p>Reimplemented from <a class="el" href="classThreadedDriver.html#ae35d4f9522aace06af1ca7056af9a2ae">ThreadedDriver</a>.</p>

<p>References <a class="el" href="structplayer__devaddr.html#ac6a1d9efc69d7dee301aba2ef4b5948d">player_devaddr::interf</a>.</p>

</div>
</div>
<a class="anchor" id="a91bda6c36ac50b99c6cf4a3f9258cb8c"></a><!-- doxytag: member="P2OS::ProcessMessage" ref="a91bda6c36ac50b99c6cf4a3f9258cb8c" args="(QueuePointer &amp;resp_queue, player_msghdr *hdr, void *data)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int P2OS::ProcessMessage </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="classQueuePointer.html">QueuePointer</a> &amp;&nbsp;</td>
          <td class="paramname"> <em>resp_queue</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="structplayer__msghdr.html">player_msghdr</a> *&nbsp;</td>
          <td class="paramname"> <em>hdr</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">void *&nbsp;</td>
          <td class="paramname"> <em>data</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td><code> [virtual]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p><a class="el" href="classMessage.html" title="Reference-counted message objects.">Message</a> handler. </p>
<p>This function is called once for each message in the incoming queue. Reimplement it to provide message handling. Return 0 if you handled the message and -1 otherwise</p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>resp_queue</em>&nbsp;</td><td>The queue to which any response should go. </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>hdr</em>&nbsp;</td><td>The message header </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>data</em>&nbsp;</td><td>The message body </td></tr>
  </table>
  </dd>
</dl>

<p>Reimplemented from <a class="el" href="classDriver.html#ab05d0e8502a494a83d0442a48095a35c">Driver</a>.</p>

<p>References <a class="el" href="group__interface__actarray.html#ga036013dcbd987cef2e839986f8093875">PLAYER_ACTARRAY_CMD_HOME</a>, <a class="el" href="group__interface__actarray.html#gabc6411a2c0a1a204bcc5dbcf61f768cb">PLAYER_ACTARRAY_CMD_MULTI_POS</a>, <a class="el" href="group__interface__actarray.html#ga16bbc0d570d5502ec30732d7de1ac19d">PLAYER_ACTARRAY_CMD_POS</a>, <a class="el" href="group__interface__actarray.html#gaada8c6cd0cad088aac5e83c61c07f9f1">PLAYER_ACTARRAY_REQ_GET_GEOM</a>, <a class="el" href="group__interface__actarray.html#ga5b7a23c7a918afacb961023eaa66b893">PLAYER_ACTARRAY_REQ_POWER</a>, <a class="el" href="group__interface__actarray.html#gafa77126c8bd1ed206b9e42b712f33950">PLAYER_ACTARRAY_REQ_SPEED</a>, <a class="el" href="group__interface__gripper.html#gac043e19a527151d851fe227df5c5297c">PLAYER_GRIPPER_CMD_CLOSE</a>, <a class="el" href="group__interface__gripper.html#gac77f5a5c66b1342c31f5fbf38a9cd80d">PLAYER_GRIPPER_CMD_OPEN</a>, <a class="el" href="group__interface__gripper.html#gaf84fd214b8a463a35bda6a66bef67c5d">PLAYER_GRIPPER_CMD_STOP</a>, <a class="el" href="group__interface__limb.html#gac69f71d888c699637418a52f842221d2">PLAYER_LIMB_CMD_HOME</a>, <a class="el" href="group__interface__limb.html#gaffce871172e4e81f5f4095d919fc6bcd">PLAYER_LIMB_CMD_SETPOSE</a>, <a class="el" href="group__interface__limb.html#ga996b717f3e34e01180f0ec2aea63f95c">PLAYER_LIMB_CMD_STOP</a>, <a class="el" href="group__interface__limb.html#ga3b86feb67ed1a6fd73418471a03b7738">PLAYER_LIMB_REQ_GEOM</a>, <a class="el" href="group__interface__limb.html#ga788bb90bdbdec62300d8522f4c40e2a1">PLAYER_LIMB_REQ_POWER</a>, <a class="el" href="group__message__types.html#gaf8fb5087b5a1f4ec631034e71dec0f3d">PLAYER_MSGTYPE_CMD</a>, <a class="el" href="group__message__types.html#ga59ed953188471436df98bfc3adf0f457">PLAYER_MSGTYPE_REQ</a>, <a class="el" href="group__interface__position2d.html#gacaf0b14c255b47d09fef5efd7dd0fb22">PLAYER_POSITION2D_CMD_VEL</a>, and <a class="el" href="structplayer__msghdr.html#a1c20e2f82ad8f6164f7cf31d940255fb">player_msghdr::type</a>.</p>

</div>
</div>
<a class="anchor" id="a41b9cfcee8fa3fd74bd1aa27d8286fac"></a><!-- doxytag: member="P2OS::Subscribe" ref="a41b9cfcee8fa3fd74bd1aa27d8286fac" args="(player_devaddr_t id)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int P2OS::Subscribe </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structplayer__devaddr.html">player_devaddr_t</a>&nbsp;</td>
          <td class="paramname"> <em>addr</em></td>
          <td>&nbsp;)&nbsp;</td>
          <td><code> [virtual]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Subscribe to this driver. </p>
<p>The <a class="el" href="classP2OS.html#a41b9cfcee8fa3fd74bd1aa27d8286fac" title="Subscribe to this driver.">Subscribe()</a> and <a class="el" href="classP2OS.html#a9a9a48fe08bc40aafb73bf6e5ead1368" title="Unsubscribe from this driver.">Unsubscribe()</a> methods are used to control subscriptions to the driver; a driver MAY override them, but usually won't.</p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>addr</em>&nbsp;</td><td>Address of the device to subscribe to (the driver may have more than one interface). </td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>Returns 0 on success. </dd></dl>

<p>Reimplemented from <a class="el" href="classDriver.html#ad56aad9b98662be96c000f4e3baf0ee3">Driver</a>.</p>

<p>References <a class="el" href="classDevice.html#a23253859a221d3e66fbd67e8f440132f">Device::MatchDeviceAddress()</a>, and <a class="el" href="classDriver.html#ad56aad9b98662be96c000f4e3baf0ee3">Driver::Subscribe()</a>.</p>

</div>
</div>
<a class="anchor" id="a9a9a48fe08bc40aafb73bf6e5ead1368"></a><!-- doxytag: member="P2OS::Unsubscribe" ref="a9a9a48fe08bc40aafb73bf6e5ead1368" args="(player_devaddr_t id)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int P2OS::Unsubscribe </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structplayer__devaddr.html">player_devaddr_t</a>&nbsp;</td>
          <td class="paramname"> <em>addr</em></td>
          <td>&nbsp;)&nbsp;</td>
          <td><code> [virtual]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Unsubscribe from this driver. </p>
<p>The <a class="el" href="classP2OS.html#a41b9cfcee8fa3fd74bd1aa27d8286fac" title="Subscribe to this driver.">Subscribe()</a> and <a class="el" href="classP2OS.html#a9a9a48fe08bc40aafb73bf6e5ead1368" title="Unsubscribe from this driver.">Unsubscribe()</a> methods are used to control subscriptions to the driver; a driver MAY override them, but usually won't.</p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>addr</em>&nbsp;</td><td>Address of the device to unsubscribe from (the driver may have more than one interface). </td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>Returns 0 on success. </dd></dl>

<p>Reimplemented from <a class="el" href="classDriver.html#a0f9daeb9fbb8fd0097e3e388fef686be">Driver</a>.</p>

<p>References <a class="el" href="classDevice.html#a23253859a221d3e66fbd67e8f440132f">Device::MatchDeviceAddress()</a>, and <a class="el" href="classDriver.html#a0f9daeb9fbb8fd0097e3e388fef686be">Driver::Unsubscribe()</a>.</p>

</div>
</div>
<hr/>The documentation for this class was generated from the following files:<ul>
<li><a class="el" href="p2os_8h_source.html">p2os.h</a></li>
<li>p2os.cc</li>
</ul>
</div>
<!-- render the modification time of the source file -->


<div class="timestamp">
<hr>

<table style="width:100%;">
<tr>
<td style="text-align:left;">
Last updated 12 September 2005 21:38:45
<!--
<td style="text-align:right;">
<a href="http://validator.w3.org/check/referer"><img style="vertical-align:middle;border:0;width:88px;height:31px"
          src="http://www.w3.org/Icons/valid-html401"
          alt="Valid HTML 4.01!"></a>

 <a href="http://jigsaw.w3.org/css-validator/">
  <img style="vertical-align:middle;border:0;width:88px;height:31px"
       src="http://jigsaw.w3.org/css-validator/images/vcss"
       alt="Valid CSS!">
 </a>
-->
</tr>
</table>
</div>


</tr>
</table>

</BODY>
</HTML>