<!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 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 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="headertitle"> <h1>player.h</h1> </div> </div> <div class="contents"> <div class="fragment"><pre class="fragment"><a name="l00001"></a>00001 <span class="comment">/*</span> <a name="l00002"></a>00002 <span class="comment"> * Player - One Hell of a Robot Server</span> <a name="l00003"></a>00003 <span class="comment"> * Copyright (C) 2000</span> <a name="l00004"></a>00004 <span class="comment"> * Brian Gerkey, Kasper Stoy, Richard Vaughan, & Andrew Howard</span> <a name="l00005"></a>00005 <span class="comment"> *</span> <a name="l00006"></a>00006 <span class="comment"> *</span> <a name="l00007"></a>00007 <span class="comment"> * This program is free software; you can redistribute it and/or modify</span> <a name="l00008"></a>00008 <span class="comment"> * it under the terms of the GNU General Public License as published by</span> <a name="l00009"></a>00009 <span class="comment"> * the Free Software Foundation; either version 2 of the License, or</span> <a name="l00010"></a>00010 <span class="comment"> * (at your option) any later version.</span> <a name="l00011"></a>00011 <span class="comment"> *</span> <a name="l00012"></a>00012 <span class="comment"> * This program is distributed in the hope that it will be useful,</span> <a name="l00013"></a>00013 <span class="comment"> * but WITHOUT ANY WARRANTY; without even the implied warranty of</span> <a name="l00014"></a>00014 <span class="comment"> * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the</span> <a name="l00015"></a>00015 <span class="comment"> * GNU General Public License for more details.</span> <a name="l00016"></a>00016 <span class="comment"> *</span> <a name="l00017"></a>00017 <span class="comment"> * You should have received a copy of the GNU General Public License</span> <a name="l00018"></a>00018 <span class="comment"> * along with this program; if not, write to the Free Software</span> <a name="l00019"></a>00019 <span class="comment"> * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA</span> <a name="l00020"></a>00020 <span class="comment"> *</span> <a name="l00021"></a>00021 <span class="comment"> */</span> <a name="l00022"></a>00022 <span class="comment">/********************************************************************</span> <a name="l00023"></a>00023 <span class="comment"> *</span> <a name="l00024"></a>00024 <span class="comment"> * This library is free software; you can redistribute it and/or</span> <a name="l00025"></a>00025 <span class="comment"> * modify it under the terms of the GNU Lesser General Public</span> <a name="l00026"></a>00026 <span class="comment"> * License as published by the Free Software Foundation; either</span> <a name="l00027"></a>00027 <span class="comment"> * version 2.1 of the License, or (at your option) any later version.</span> <a name="l00028"></a>00028 <span class="comment"> *</span> <a name="l00029"></a>00029 <span class="comment"> * This library is distributed in the hope that it will be useful,</span> <a name="l00030"></a>00030 <span class="comment"> * but WITHOUT ANY WARRANTY; without even the implied warranty of</span> <a name="l00031"></a>00031 <span class="comment"> * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU</span> <a name="l00032"></a>00032 <span class="comment"> * Lesser General Public License for more details.</span> <a name="l00033"></a>00033 <span class="comment"> *</span> <a name="l00034"></a>00034 <span class="comment"> * You should have received a copy of the GNU Lesser General Public</span> <a name="l00035"></a>00035 <span class="comment"> * License along with this library; if not, write to the Free Software</span> <a name="l00036"></a>00036 <span class="comment"> * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA</span> <a name="l00037"></a>00037 <span class="comment"> *</span> <a name="l00038"></a>00038 <span class="comment"> ********************************************************************/</span> <a name="l00039"></a>00039 <a name="l00040"></a>00040 <span class="comment">/*</span> <a name="l00041"></a>00041 <span class="comment"> * Desc: Player communication packet structures and codes</span> <a name="l00042"></a>00042 <span class="comment"> * CVS: $Id: player.h 8799 2010-06-28 04:12:42Z jpgr87 $</span> <a name="l00043"></a>00043 <span class="comment"> */</span> <a name="l00044"></a>00044 <a name="l00045"></a>00045 <a name="l00046"></a>00046 <span class="preprocessor">#ifndef PLAYER_H</span> <a name="l00047"></a>00047 <span class="preprocessor"></span><span class="preprocessor">#define PLAYER_H</span> <a name="l00048"></a>00048 <span class="preprocessor"></span> <a name="l00049"></a>00049 <span class="preprocessor">#include <time.h></span> <a name="l00050"></a>00050 <a name="l00051"></a>00051 <span class="comment">/* Include values from the configure script */</span> <a name="l00052"></a>00052 <span class="preprocessor">#include "playerconfig.h"</span> <a name="l00053"></a>00053 <a name="l00064"></a><a class="code" href="group__message__constants.html#ga0a881473506fbe584fe7e6b1f601899f">00064</a> <span class="preprocessor">#define PLAYER_MAX_MESSAGE_SIZE 8388608 </span><span class="comment">/*8MB*/</span> <a name="l00065"></a>00065 <a name="l00066"></a><a class="code" href="group__message__constants.html#ga98441deb7c14c99a10f0d58677dc112b">00066</a> <span class="preprocessor">#define PLAYER_MAX_PAYLOAD_SIZE (PLAYER_MAX_MESSAGE_SIZE - sizeof(player_msghdr_t))</span> <a name="l00067"></a>00067 <span class="preprocessor"></span> <a name="l00068"></a><a class="code" href="group__message__constants.html#ga0289866b5285b8f0942b45ee7845fef5">00068</a> <span class="preprocessor">#define PLAYER_MAX_DRIVER_STRING_LEN 64</span> <a name="l00069"></a>00069 <span class="preprocessor"></span> <a name="l00070"></a><a class="code" href="group__message__constants.html#ga53a241d4790c84395c49d67c07643062">00070</a> <span class="preprocessor">#define PLAYER_MAX_DEVICES 4096</span> <a name="l00071"></a>00071 <span class="preprocessor"></span> <a name="l00072"></a><a class="code" href="group__message__constants.html#gadc8ec6a059c812f77fc21dda2f70d1a6">00072</a> <span class="preprocessor">#define PLAYER_MSGQUEUE_DEFAULT_MAXLEN 1024</span> <a name="l00073"></a>00073 <span class="preprocessor"></span> <a name="l00074"></a><a class="code" href="group__message__constants.html#ga6ca0505d6baa1f026ede3532b10a086a">00074</a> <span class="preprocessor">#define PLAYER_IDENT_STRING "Player v."</span> <a name="l00075"></a>00075 <span class="preprocessor"></span> <a name="l00076"></a><a class="code" href="group__message__constants.html#ga76f1a821642143063eb86684eef58f61">00076</a> <span class="preprocessor">#define PLAYER_IDENT_STRLEN 32</span> <a name="l00077"></a>00077 <span class="preprocessor"></span> <a name="l00078"></a><a class="code" href="group__message__constants.html#gab6b1bc64eb12267f58d54af0e81f0bbb">00078</a> <span class="preprocessor">#define PLAYER_KEYLEN 32</span> <a name="l00079"></a>00079 <span class="preprocessor"></span> <a name="l00091"></a><a class="code" href="group__message__types.html#ga57872b03daef439c29a81f0aba7208b5">00091</a> <span class="preprocessor">#define PLAYER_MSGTYPE_DATA 1</span> <a name="l00092"></a>00092 <span class="preprocessor"></span> <a name="l00095"></a><a class="code" href="group__message__types.html#gaf8fb5087b5a1f4ec631034e71dec0f3d">00095</a> <span class="preprocessor">#define PLAYER_MSGTYPE_CMD 2</span> <a name="l00096"></a>00096 <span class="preprocessor"></span> <a name="l00102"></a><a class="code" href="group__message__types.html#ga59ed953188471436df98bfc3adf0f457">00102</a> <span class="preprocessor">#define PLAYER_MSGTYPE_REQ 3</span> <a name="l00103"></a>00103 <span class="preprocessor"></span> <a name="l00108"></a><a class="code" href="group__message__types.html#ga312e72e1417096125470061385979696">00108</a> <span class="preprocessor">#define PLAYER_MSGTYPE_RESP_ACK 4</span> <a name="l00109"></a>00109 <span class="preprocessor"></span> <a name="l00113"></a><a class="code" href="group__message__types.html#ga5bf6a8dfdb85327b655811823824f34a">00113</a> <span class="preprocessor">#define PLAYER_MSGTYPE_SYNCH 5</span> <a name="l00114"></a>00114 <span class="preprocessor"></span> <a name="l00121"></a><a class="code" href="group__message__types.html#gae80fbeee8ef3da0e6f78ec1a18613750">00121</a> <span class="preprocessor">#define PLAYER_MSGTYPE_RESP_NACK 6</span> <a name="l00122"></a>00122 <span class="preprocessor"></span> <a name="l00141"></a><a class="code" href="structplayer__devaddr.html">00141</a> <span class="keyword">typedef</span> <span class="keyword">struct </span><a class="code" href="structplayer__devaddr.html" title="A device address.">player_devaddr</a> <a name="l00142"></a>00142 { <a name="l00144"></a><a class="code" href="structplayer__devaddr.html#a7514f8e66c9532d235cc4258a7102af5">00144</a> uint32_t <a class="code" href="structplayer__devaddr.html#a7514f8e66c9532d235cc4258a7102af5" title="The &quot;host&quot; on which the device resides.">host</a>; <a name="l00147"></a><a class="code" href="structplayer__devaddr.html#a5bfc4826407c3a01f4ae884ffcef00c7">00147</a> uint32_t <a class="code" href="structplayer__devaddr.html#a5bfc4826407c3a01f4ae884ffcef00c7" title="The &quot;robot&quot; or device collection in which the device resides.">robot</a>; <a name="l00149"></a><a class="code" href="structplayer__devaddr.html#ac6a1d9efc69d7dee301aba2ef4b5948d">00149</a> uint16_t <a class="code" href="structplayer__devaddr.html#ac6a1d9efc69d7dee301aba2ef4b5948d" title="The interface provided by the device; must be one of PLAYER_*_CODE.">interf</a>; <a name="l00151"></a><a class="code" href="structplayer__devaddr.html#a2814dc42b4162c8451876312fc85f0a8">00151</a> uint16_t <a class="code" href="structplayer__devaddr.html#a2814dc42b4162c8451876312fc85f0a8" title="Which device of that interface.">index</a>; <a name="l00152"></a>00152 } <a class="code" href="structplayer__devaddr.html" title="A device address.">player_devaddr_t</a>; <a name="l00153"></a>00153 <a name="l00157"></a><a class="code" href="structplayer__msghdr.html">00157</a> <span class="keyword">typedef</span> <span class="keyword">struct </span><a class="code" href="structplayer__msghdr.html" title="Generic message header.">player_msghdr</a> <a name="l00158"></a>00158 { <a name="l00160"></a><a class="code" href="structplayer__msghdr.html#aefb4cbdabb4aa6cb01fd56ba7b2aeafb">00160</a> <a class="code" href="structplayer__devaddr.html" title="A device address.">player_devaddr_t</a> <a class="code" href="structplayer__msghdr.html#aefb4cbdabb4aa6cb01fd56ba7b2aeafb" title="Device to which this message pertains.">addr</a>; <a name="l00162"></a><a class="code" href="structplayer__msghdr.html#a1c20e2f82ad8f6164f7cf31d940255fb">00162</a> uint8_t <a class="code" href="structplayer__msghdr.html#a1c20e2f82ad8f6164f7cf31d940255fb" title="Message type; must be one of PLAYER_MSGTYPE_*.">type</a>; <a name="l00164"></a><a class="code" href="structplayer__msghdr.html#aeba88246e5ba9d3d6c1f2b60c329352b">00164</a> uint8_t <a class="code" href="structplayer__msghdr.html#aeba88246e5ba9d3d6c1f2b60c329352b" title="Message subtype; interface specific.">subtype</a>; <a name="l00166"></a><a class="code" href="structplayer__msghdr.html#af4034407074c43e83614c4e624c0db95">00166</a> <span class="keywordtype">double</span> <a class="code" href="structplayer__msghdr.html#af4034407074c43e83614c4e624c0db95" title="Time associated with message contents (seconds since epoch).">timestamp</a>; <a name="l00168"></a><a class="code" href="structplayer__msghdr.html#a8a86a39c0c90da298750d05061a7d72b">00168</a> uint32_t <a class="code" href="structplayer__msghdr.html#a8a86a39c0c90da298750d05061a7d72b" title="For keeping track of associated messages.">seq</a>; <a name="l00170"></a><a class="code" href="structplayer__msghdr.html#a27ef3166ee2eacc5e694e5a20f6fe5b6">00170</a> uint32_t <a class="code" href="structplayer__msghdr.html#a27ef3166ee2eacc5e694e5a20f6fe5b6" title="Size in bytes of the payload to follow.">size</a>; <a name="l00171"></a>00171 } <a class="code" href="structplayer__msghdr.html" title="Generic message header.">player_msghdr_t</a>; <a name="l00180"></a><a class="code" href="structplayer__point__2d.html">00180</a> <span class="keyword">typedef</span> <span class="keyword">struct </span><a class="code" href="structplayer__point__2d.html" title="A point in the plane.">player_point_2d</a> <a name="l00181"></a>00181 { <a name="l00183"></a><a class="code" href="structplayer__point__2d.html#aedb60ad31851b647cd144433e19bd244">00183</a> <span class="keywordtype">double</span> <a class="code" href="structplayer__point__2d.html#aedb60ad31851b647cd144433e19bd244" title="X [m].">px</a>; <a name="l00185"></a><a class="code" href="structplayer__point__2d.html#a19587524a8ca8ca7cf6da869250207fa">00185</a> <span class="keywordtype">double</span> <a class="code" href="structplayer__point__2d.html#a19587524a8ca8ca7cf6da869250207fa" title="Y [m].">py</a>; <a name="l00186"></a>00186 } <a class="code" href="structplayer__point__2d.html" title="A point in the plane.">player_point_2d_t</a>; <a name="l00187"></a>00187 <a name="l00188"></a>00188 <a name="l00190"></a><a class="code" href="structplayer__point__3d.html">00190</a> <span class="keyword">typedef</span> <span class="keyword">struct </span><a class="code" href="structplayer__point__3d.html" title="A point in 3D space.">player_point_3d</a> <a name="l00191"></a>00191 { <a name="l00193"></a><a class="code" href="structplayer__point__3d.html#a0ead003b06dacb5a5ea76e5bd9346d7c">00193</a> <span class="keywordtype">double</span> <a class="code" href="structplayer__point__3d.html#a0ead003b06dacb5a5ea76e5bd9346d7c" title="X [m].">px</a>; <a name="l00195"></a><a class="code" href="structplayer__point__3d.html#af9aa5190b440f9f1f9e3c8a545c7bc57">00195</a> <span class="keywordtype">double</span> <a class="code" href="structplayer__point__3d.html#af9aa5190b440f9f1f9e3c8a545c7bc57" title="Y [m].">py</a>; <a name="l00197"></a><a class="code" href="structplayer__point__3d.html#aa9bae5db692e22a5b2cbd5a548ead26e">00197</a> <span class="keywordtype">double</span> <a class="code" href="structplayer__point__3d.html#aa9bae5db692e22a5b2cbd5a548ead26e" title="Z [m].">pz</a>; <a name="l00198"></a>00198 } <a class="code" href="structplayer__point__3d.html" title="A point in 3D space.">player_point_3d_t</a>; <a name="l00199"></a>00199 <a name="l00200"></a>00200 <a name="l00202"></a><a class="code" href="structplayer__orientation__3d.html">00202</a> <span class="keyword">typedef</span> <span class="keyword">struct </span><a class="code" href="structplayer__orientation__3d.html" title="An angle in 3D space.">player_orientation_3d</a> <a name="l00203"></a>00203 { <a name="l00205"></a><a class="code" href="structplayer__orientation__3d.html#a51622061094b56c727f39a30dce08a29">00205</a> <span class="keywordtype">double</span> <a class="code" href="structplayer__orientation__3d.html#a51622061094b56c727f39a30dce08a29" title="roll [rad]">proll</a>; <a name="l00207"></a><a class="code" href="structplayer__orientation__3d.html#abab69335b00bdb1ee9d1092686a2a100">00207</a> <span class="keywordtype">double</span> <a class="code" href="structplayer__orientation__3d.html#abab69335b00bdb1ee9d1092686a2a100" title="pitch [rad]">ppitch</a>; <a name="l00209"></a><a class="code" href="structplayer__orientation__3d.html#aaf32b967b3b2c09c8460df21d7b59521">00209</a> <span class="keywordtype">double</span> <a class="code" href="structplayer__orientation__3d.html#aaf32b967b3b2c09c8460df21d7b59521" title="yaw [rad]">pyaw</a>; <a name="l00210"></a>00210 } <a class="code" href="structplayer__orientation__3d.html" title="An angle in 3D space.">player_orientation_3d_t</a>; <a name="l00211"></a>00211 <a name="l00213"></a><a class="code" href="structplayer__pose2d.html">00213</a> <span class="keyword">typedef</span> <span class="keyword">struct </span><a class="code" href="structplayer__pose2d.html" title="A pose in the plane.">player_pose2d</a> <a name="l00214"></a>00214 { <a name="l00216"></a><a class="code" href="structplayer__pose2d.html#a7f84ac1c98924591797d8ce3de61d586">00216</a> <span class="keywordtype">double</span> <a class="code" href="structplayer__pose2d.html#a7f84ac1c98924591797d8ce3de61d586" title="X [m].">px</a>; <a name="l00218"></a><a class="code" href="structplayer__pose2d.html#a9b31f8c715a04d1165f06a27f1ab6d18">00218</a> <span class="keywordtype">double</span> <a class="code" href="structplayer__pose2d.html#a9b31f8c715a04d1165f06a27f1ab6d18" title="Y [m].">py</a>; <a name="l00220"></a><a class="code" href="structplayer__pose2d.html#a81438ba2b285ecbd3e52ea39450b5a92">00220</a> <span class="keywordtype">double</span> <a class="code" href="structplayer__pose2d.html#a81438ba2b285ecbd3e52ea39450b5a92" title="yaw [rad]">pa</a>; <a name="l00221"></a>00221 } <a class="code" href="structplayer__pose2d.html" title="A pose in the plane.">player_pose2d_t</a>; <a name="l00222"></a>00222 <a name="l00224"></a><a class="code" href="structplayer__pose3d.html">00224</a> <span class="keyword">typedef</span> <span class="keyword">struct </span><a class="code" href="structplayer__pose3d.html" title="A pose in space.">player_pose3d</a> <a name="l00225"></a>00225 { <a name="l00227"></a><a class="code" href="structplayer__pose3d.html#aa36562136aabc6805b4411d4b942e661">00227</a> <span class="keywordtype">double</span> <a class="code" href="structplayer__pose3d.html#aa36562136aabc6805b4411d4b942e661" title="X [m].">px</a>; <a name="l00229"></a><a class="code" href="structplayer__pose3d.html#a7fc88aeb333507a6026af12116d933b6">00229</a> <span class="keywordtype">double</span> <a class="code" href="structplayer__pose3d.html#a7fc88aeb333507a6026af12116d933b6" title="Y [m].">py</a>; <a name="l00231"></a><a class="code" href="structplayer__pose3d.html#a3872cad2e879fc4fef98d7a8c28248a1">00231</a> <span class="keywordtype">double</span> <a class="code" href="structplayer__pose3d.html#a3872cad2e879fc4fef98d7a8c28248a1" title="Z [m].">pz</a>; <a name="l00233"></a><a class="code" href="structplayer__pose3d.html#ac3da832499b20cc6099e8062552573bc">00233</a> <span class="keywordtype">double</span> <a class="code" href="structplayer__pose3d.html#ac3da832499b20cc6099e8062552573bc" title="roll [rad]">proll</a>; <a name="l00235"></a><a class="code" href="structplayer__pose3d.html#a8f5df4375e2bc0f2d988ff1bd7af6c57">00235</a> <span class="keywordtype">double</span> <a class="code" href="structplayer__pose3d.html#a8f5df4375e2bc0f2d988ff1bd7af6c57" title="pitch [rad]">ppitch</a>; <a name="l00237"></a><a class="code" href="structplayer__pose3d.html#abf168b9b5acd66c83a01783512be56dd">00237</a> <span class="keywordtype">double</span> <a class="code" href="structplayer__pose3d.html#abf168b9b5acd66c83a01783512be56dd" title="yaw [rad]">pyaw</a>; <a name="l00238"></a>00238 } <a class="code" href="structplayer__pose3d.html" title="A pose in space.">player_pose3d_t</a>; <a name="l00239"></a>00239 <a name="l00241"></a><a class="code" href="structplayer__bbox2d.html">00241</a> <span class="keyword">typedef</span> <span class="keyword">struct </span><a class="code" href="structplayer__bbox2d.html" title="A rectangular bounding box, used to define the size of an object.">player_bbox2d</a> <a name="l00242"></a>00242 { <a name="l00244"></a><a class="code" href="structplayer__bbox2d.html#a57ae2fd51c2495229dc4822fcff39898">00244</a> <span class="keywordtype">double</span> <a class="code" href="structplayer__bbox2d.html#a57ae2fd51c2495229dc4822fcff39898" title="Width [m].">sw</a>; <a name="l00246"></a><a class="code" href="structplayer__bbox2d.html#a59f20eca435f46d5e3d182c0b64f740d">00246</a> <span class="keywordtype">double</span> <a class="code" href="structplayer__bbox2d.html#a59f20eca435f46d5e3d182c0b64f740d" title="Length [m].">sl</a>; <a name="l00247"></a>00247 } <a class="code" href="structplayer__bbox2d.html" title="A rectangular bounding box, used to define the size of an object.">player_bbox2d_t</a>; <a name="l00248"></a>00248 <a name="l00250"></a><a class="code" href="structplayer__bbox3d.html">00250</a> <span class="keyword">typedef</span> <span class="keyword">struct </span><a class="code" href="structplayer__bbox3d.html" title="A rectangular bounding box, used to define the size of an object.">player_bbox3d</a> <a name="l00251"></a>00251 { <a name="l00253"></a><a class="code" href="structplayer__bbox3d.html#a44e93586d87a7cc4e2311ddc4d35e82b">00253</a> <span class="keywordtype">double</span> <a class="code" href="structplayer__bbox3d.html#a44e93586d87a7cc4e2311ddc4d35e82b" title="Width [m].">sw</a>; <a name="l00255"></a><a class="code" href="structplayer__bbox3d.html#ae5e642ddc5357ede0e2b7ca896e2b50d">00255</a> <span class="keywordtype">double</span> <a class="code" href="structplayer__bbox3d.html#ae5e642ddc5357ede0e2b7ca896e2b50d" title="Length [m].">sl</a>; <a name="l00257"></a><a class="code" href="structplayer__bbox3d.html#a19a913073a7704fa291fcdaf01e77766">00257</a> <span class="keywordtype">double</span> <a class="code" href="structplayer__bbox3d.html#a19a913073a7704fa291fcdaf01e77766" title="Height [m].">sh</a>; <a name="l00258"></a>00258 } <a class="code" href="structplayer__bbox3d.html" title="A rectangular bounding box, used to define the size of an object.">player_bbox3d_t</a>; <a name="l00259"></a>00259 <a name="l00261"></a><a class="code" href="structplayer__blackboard__entry.html">00261</a> <span class="keyword">typedef</span> <span class="keyword">struct </span><a class="code" href="structplayer__blackboard__entry.html" title="Vectormap feature data.">player_blackboard_entry</a> <a name="l00262"></a>00262 { <a name="l00264"></a><a class="code" href="structplayer__blackboard__entry.html#a95441fe89d2a2c0174d5c42278384b50">00264</a> uint32_t <a class="code" href="structplayer__blackboard__entry.html#a95441fe89d2a2c0174d5c42278384b50" title="Length of key in bytes.">key_count</a>; <a name="l00266"></a><a class="code" href="structplayer__blackboard__entry.html#a0bc3e5d7c19d00f65423c05eaef40f26">00266</a> <span class="keywordtype">char</span>* <a class="code" href="structplayer__blackboard__entry.html#a0bc3e5d7c19d00f65423c05eaef40f26" title="Identifier for the entry.">key</a>; <a name="l00268"></a><a class="code" href="structplayer__blackboard__entry.html#af72d1f76344b934b371ae5b52019c10c">00268</a> uint32_t <a class="code" href="structplayer__blackboard__entry.html#af72d1f76344b934b371ae5b52019c10c" title="Second identifier count.">group_count</a>; <a name="l00270"></a><a class="code" href="structplayer__blackboard__entry.html#a75134c5c60b252e8ce1d60a09bcb74d1">00270</a> <span class="keywordtype">char</span>* <a class="code" href="structplayer__blackboard__entry.html#a75134c5c60b252e8ce1d60a09bcb74d1" title="Second identifier.">group</a>; <a name="l00272"></a><a class="code" href="structplayer__blackboard__entry.html#a39ce68306acfdf9ed16b2cb682051744">00272</a> uint16_t <a class="code" href="structplayer__blackboard__entry.html#a39ce68306acfdf9ed16b2cb682051744" title="Entry data type.">type</a>; <a name="l00274"></a><a class="code" href="structplayer__blackboard__entry.html#a4af82cc654bcb270b403888726adf34c">00274</a> uint16_t <a class="code" href="structplayer__blackboard__entry.html#a4af82cc654bcb270b403888726adf34c" title="Entry data subtype.">subtype</a>; <a name="l00276"></a><a class="code" href="structplayer__blackboard__entry.html#a4923d9129361672bfb03e6ab3d87515b">00276</a> uint32_t <a class="code" href="structplayer__blackboard__entry.html#a4923d9129361672bfb03e6ab3d87515b" title="Entry data length.">data_count</a>; <a name="l00278"></a><a class="code" href="structplayer__blackboard__entry.html#afad2e7fd76fd8673f4b5bb8840579d5e">00278</a> uint8_t* <a class="code" href="structplayer__blackboard__entry.html#afad2e7fd76fd8673f4b5bb8840579d5e" title="Entry data.">data</a>; <a name="l00280"></a><a class="code" href="structplayer__blackboard__entry.html#a3702bda7cf46fface14674e000bb36fa">00280</a> uint32_t <a class="code" href="structplayer__blackboard__entry.html#a3702bda7cf46fface14674e000bb36fa" title="Time of entry creation.">timestamp_sec</a>; <a name="l00282"></a><a class="code" href="structplayer__blackboard__entry.html#afdc754939354fa67b930a838c49fec9b">00282</a> uint32_t <a class="code" href="structplayer__blackboard__entry.html#afdc754939354fa67b930a838c49fec9b" title="Time of entry creation.">timestamp_usec</a>; <a name="l00284"></a>00284 } <a class="code" href="structplayer__blackboard__entry.html" title="Vectormap feature data.">player_blackboard_entry_t</a>; <a name="l00285"></a>00285 <a name="l00287"></a><a class="code" href="structplayer__segment.html">00287</a> <span class="keyword">typedef</span> <span class="keyword">struct </span><a class="code" href="structplayer__segment.html" title="A line segment, used to construct vector-based maps.">player_segment</a> <a name="l00288"></a>00288 { <a name="l00290"></a><a class="code" href="structplayer__segment.html#a814f147bb3ba0c37e002b7499f2ff2ea">00290</a> <span class="keywordtype">double</span> <a class="code" href="structplayer__segment.html#a814f147bb3ba0c37e002b7499f2ff2ea" title="Endpoints [m].">x0</a>; <a name="l00292"></a><a class="code" href="structplayer__segment.html#a408ffd9ddf3cfd3510fb4d0358e79a0b">00292</a> <span class="keywordtype">double</span> <a class="code" href="structplayer__segment.html#a408ffd9ddf3cfd3510fb4d0358e79a0b" title="Endpoints [m].">y0</a>; <a name="l00294"></a><a class="code" href="structplayer__segment.html#aebb2c357f1629d044d25118b2dae8250">00294</a> <span class="keywordtype">double</span> <a class="code" href="structplayer__segment.html#aebb2c357f1629d044d25118b2dae8250" title="Endpoints [m].">x1</a>; <a name="l00296"></a><a class="code" href="structplayer__segment.html#ad964a74920488113627e38a93230fad8">00296</a> <span class="keywordtype">double</span> <a class="code" href="structplayer__segment.html#ad964a74920488113627e38a93230fad8" title="Endpoints [m].">y1</a>; <a name="l00297"></a>00297 } <a class="code" href="structplayer__segment.html" title="A line segment, used to construct vector-based maps.">player_segment_t</a>; <a name="l00298"></a>00298 <a name="l00303"></a><a class="code" href="structplayer__extent2d.html">00303</a> <span class="keyword">typedef</span> <span class="keyword">struct </span><a class="code" href="structplayer__extent2d.html" title="A rectangular bounding box, used to define the origin and bounds of an object.">player_extent2d</a> <a name="l00304"></a>00304 { <a name="l00306"></a><a class="code" href="structplayer__extent2d.html#ab14eeb6d64f99f7d3aeb768a883eb55c">00306</a> <span class="keywordtype">double</span> <a class="code" href="structplayer__extent2d.html#ab14eeb6d64f99f7d3aeb768a883eb55c" title="Origin x [m].">x0</a>; <a name="l00308"></a><a class="code" href="structplayer__extent2d.html#ae85dff7554245394f4dffd96e543173f">00308</a> <span class="keywordtype">double</span> <a class="code" href="structplayer__extent2d.html#ae85dff7554245394f4dffd96e543173f" title="Origin y [m].">y0</a>; <a name="l00310"></a><a class="code" href="structplayer__extent2d.html#a9e0936e55441c518eb06548cfce96f65">00310</a> <span class="keywordtype">double</span> <a class="code" href="structplayer__extent2d.html#a9e0936e55441c518eb06548cfce96f65" title="Endpoints [m].">x1</a>; <a name="l00312"></a><a class="code" href="structplayer__extent2d.html#a31494e58f9774aca3a7b1db9f75e6786">00312</a> <span class="keywordtype">double</span> <a class="code" href="structplayer__extent2d.html#a31494e58f9774aca3a7b1db9f75e6786" title="Endpoints [m].">y1</a>; <a name="l00313"></a>00313 } <a class="code" href="structplayer__extent2d.html" title="A rectangular bounding box, used to define the origin and bounds of an object.">player_extent2d_t</a>; <a name="l00314"></a>00314 <a name="l00316"></a><a class="code" href="structplayer__color.html">00316</a> <span class="keyword">typedef</span> <span class="keyword">struct </span><a class="code" href="structplayer__color.html" title="A color descriptor.">player_color</a> <a name="l00317"></a>00317 { <a name="l00319"></a><a class="code" href="structplayer__color.html#ad27663a28e18e065e55cde1592573b17">00319</a> uint8_t <a class="code" href="structplayer__color.html#ad27663a28e18e065e55cde1592573b17" title="Alpha (transparency) channel.">alpha</a>; <a name="l00321"></a><a class="code" href="structplayer__color.html#a48a67af1eec4e6b5675109bd981fcdf5">00321</a> uint8_t <a class="code" href="structplayer__color.html#a48a67af1eec4e6b5675109bd981fcdf5" title="Red color channel.">red</a>; <a name="l00323"></a><a class="code" href="structplayer__color.html#a20a50c56f1ce32b1219f4e03d6834db9">00323</a> uint8_t <a class="code" href="structplayer__color.html#a20a50c56f1ce32b1219f4e03d6834db9" title="Green color channel.">green</a>; <a name="l00325"></a><a class="code" href="structplayer__color.html#a265fe225a21a2dac1c50ec462d14b5ef">00325</a> uint8_t <a class="code" href="structplayer__color.html#a265fe225a21a2dac1c50ec462d14b5ef" title="Blue color channel.">blue</a>; <a name="l00326"></a>00326 } <a class="code" href="structplayer__color.html" title="A color descriptor.">player_color_t</a>; <a name="l00327"></a>00327 <a name="l00329"></a><a class="code" href="structplayer__bool.html">00329</a> <span class="keyword">typedef</span> <span class="keyword">struct </span><a class="code" href="structplayer__bool.html" title="A boolean variable, 0 for false anything else for true.">player_bool</a> <a name="l00330"></a>00330 { <a name="l00332"></a><a class="code" href="structplayer__bool.html#aea086f9d14ec741d6f83c30cdb6d73e3">00332</a> uint8_t <a class="code" href="structplayer__bool.html#aea086f9d14ec741d6f83c30cdb6d73e3" title="state">state</a>; <a name="l00333"></a>00333 } <a class="code" href="structplayer__bool.html" title="A boolean variable, 0 for false anything else for true.">player_bool_t</a>; <a name="l00334"></a>00334 <a name="l00336"></a><a class="code" href="structplayer__uint32.html">00336</a> <span class="keyword">typedef</span> <span class="keyword">struct </span><a class="code" href="structplayer__uint32.html" title="Structure for messages returning a single integer.">player_uint32</a> <a name="l00337"></a>00337 { <a name="l00338"></a>00338 uint32_t value; <a name="l00339"></a>00339 } <a class="code" href="structplayer__uint32.html" title="Structure for messages returning a single integer.">player_uint32_t</a>; <a name="l00340"></a>00340 <a name="l00341"></a>00341 <a name="l00389"></a>00389 <span class="preprocessor">#define PLAYER_CAPABILTIES_REQ 255</span> <a name="l00390"></a>00390 <span class="preprocessor"></span> <a name="l00392"></a><a class="code" href="structplayer__capabilities__req.html">00392</a> <span class="keyword">typedef</span> <span class="keyword">struct </span><a class="code" href="structplayer__capabilities__req.html" title="Structure containing a single capability request.">player_capabilities_req</a> <a name="l00393"></a>00393 { <a name="l00395"></a><a class="code" href="structplayer__capabilities__req.html#a31e91e5374ea2c9b9fd04591e24903e0">00395</a> uint32_t <a class="code" href="structplayer__capabilities__req.html#a31e91e5374ea2c9b9fd04591e24903e0" title="The type of the requested capability (i.e.">type</a>; <a name="l00397"></a><a class="code" href="structplayer__capabilities__req.html#ad226c35d884188e38e351ccdb1eaa2e3">00397</a> uint32_t <a class="code" href="structplayer__capabilities__req.html#ad226c35d884188e38e351ccdb1eaa2e3" title="The subtype of the requested capability (i.e.">subtype</a>; <a name="l00398"></a>00398 } <a class="code" href="structplayer__capabilities__req.html" title="Structure containing a single capability request.">player_capabilities_req_t</a>; <a name="l00399"></a>00399 <a name="l00400"></a>00400 <a name="l00408"></a>00408 <span class="preprocessor">#define PLAYER_GET_INTPROP_REQ 254</span> <a name="l00409"></a>00409 <span class="preprocessor"></span><span class="preprocessor">#define PLAYER_SET_INTPROP_REQ 253</span> <a name="l00410"></a>00410 <span class="preprocessor"></span><span class="preprocessor">#define PLAYER_GET_DBLPROP_REQ 252</span> <a name="l00411"></a>00411 <span class="preprocessor"></span><span class="preprocessor">#define PLAYER_SET_DBLPROP_REQ 251</span> <a name="l00412"></a>00412 <span class="preprocessor"></span><span class="preprocessor">#define PLAYER_GET_STRPROP_REQ 250</span> <a name="l00413"></a>00413 <span class="preprocessor"></span><span class="preprocessor">#define PLAYER_SET_STRPROP_REQ 249</span> <a name="l00414"></a>00414 <span class="preprocessor"></span><span class="preprocessor">#define PLAYER_GET_BOOLPROP_REQ 248</span> <a name="l00415"></a>00415 <span class="preprocessor"></span><span class="preprocessor">#define PLAYER_SET_BOOLPROP_REQ 247</span> <a name="l00416"></a>00416 <span class="preprocessor"></span> <a name="l00418"></a><a class="code" href="structplayer__boolprop__req.html">00418</a> <span class="keyword">typedef</span> <span class="keyword">struct </span><a class="code" href="structplayer__boolprop__req.html" title="Request to get a boolean property.">player_boolprop_req</a> <a name="l00419"></a>00419 { <a name="l00421"></a><a class="code" href="structplayer__boolprop__req.html#a3cf6eb89fd3f31f7ac3969695966ca94">00421</a> uint32_t <a class="code" href="structplayer__boolprop__req.html#a3cf6eb89fd3f31f7ac3969695966ca94" title="The property key&#39;s length.">key_count</a>; <a name="l00423"></a><a class="code" href="structplayer__boolprop__req.html#a833d9a17a93804af3e3d8c85691f4337">00423</a> <span class="keywordtype">char</span> *<a class="code" href="structplayer__boolprop__req.html#a833d9a17a93804af3e3d8c85691f4337" title="The property key.">key</a>; <a name="l00425"></a><a class="code" href="structplayer__boolprop__req.html#aa05f470b51351032db5f2ead43d6b253">00425</a> <span class="keywordtype">char</span> <a class="code" href="structplayer__boolprop__req.html#aa05f470b51351032db5f2ead43d6b253" title="The property value.">value</a>; <a name="l00426"></a>00426 } <a class="code" href="structplayer__boolprop__req.html" title="Request to get a boolean property.">player_boolprop_req_t</a>; <a name="l00427"></a>00427 <a name="l00429"></a><a class="code" href="structplayer__intprop__req.html">00429</a> <span class="keyword">typedef</span> <span class="keyword">struct </span><a class="code" href="structplayer__intprop__req.html" title="Request to get an integer property.">player_intprop_req</a> <a name="l00430"></a>00430 { <a name="l00432"></a><a class="code" href="structplayer__intprop__req.html#a7035d043133c54b1597962e49847c0f9">00432</a> uint32_t <a class="code" href="structplayer__intprop__req.html#a7035d043133c54b1597962e49847c0f9" title="The property key&#39;s length.">key_count</a>; <a name="l00434"></a><a class="code" href="structplayer__intprop__req.html#a5d33de85863df880301eb8056d883974">00434</a> <span class="keywordtype">char</span> *<a class="code" href="structplayer__intprop__req.html#a5d33de85863df880301eb8056d883974" title="The property key.">key</a>; <a name="l00436"></a><a class="code" href="structplayer__intprop__req.html#a2c2128d239572a4eb8eae8543d5ba0cf">00436</a> int32_t <a class="code" href="structplayer__intprop__req.html#a2c2128d239572a4eb8eae8543d5ba0cf" title="The property value.">value</a>; <a name="l00437"></a>00437 } <a class="code" href="structplayer__intprop__req.html" title="Request to get an integer property.">player_intprop_req_t</a>; <a name="l00438"></a>00438 <a name="l00440"></a><a class="code" href="structplayer__dblprop__req.html">00440</a> <span class="keyword">typedef</span> <span class="keyword">struct </span><a class="code" href="structplayer__dblprop__req.html" title="Request to get a double property.">player_dblprop_req</a> <a name="l00441"></a>00441 { <a name="l00443"></a><a class="code" href="structplayer__dblprop__req.html#a205e7649d06fccd2ada9ed36bd08c1d3">00443</a> uint32_t <a class="code" href="structplayer__dblprop__req.html#a205e7649d06fccd2ada9ed36bd08c1d3" title="The property key&#39;s length.">key_count</a>; <a name="l00445"></a><a class="code" href="structplayer__dblprop__req.html#a7e868aa47c25127aa1b250764f073b0d">00445</a> <span class="keywordtype">char</span> *<a class="code" href="structplayer__dblprop__req.html#a7e868aa47c25127aa1b250764f073b0d" title="The property key.">key</a>; <a name="l00447"></a><a class="code" href="structplayer__dblprop__req.html#a756fb7d8f4d7b27c22485b7c584e868c">00447</a> <span class="keywordtype">double</span> <a class="code" href="structplayer__dblprop__req.html#a756fb7d8f4d7b27c22485b7c584e868c" title="The property value.">value</a>; <a name="l00448"></a>00448 } <a class="code" href="structplayer__dblprop__req.html" title="Request to get a double property.">player_dblprop_req_t</a>; <a name="l00449"></a>00449 <a name="l00451"></a><a class="code" href="structplayer__strprop__req.html">00451</a> <span class="keyword">typedef</span> <span class="keyword">struct </span><a class="code" href="structplayer__strprop__req.html" title="Request to get a string property.">player_strprop_req</a> <a name="l00452"></a>00452 { <a name="l00454"></a><a class="code" href="structplayer__strprop__req.html#aeff8517b9075cb6d213cbb5508c3b7a1">00454</a> uint32_t <a class="code" href="structplayer__strprop__req.html#aeff8517b9075cb6d213cbb5508c3b7a1" title="The property key&#39;s length.">key_count</a>; <a name="l00456"></a><a class="code" href="structplayer__strprop__req.html#a7d3574fef0bbabe3d6c49e1e43df8269">00456</a> <span class="keywordtype">char</span> *<a class="code" href="structplayer__strprop__req.html#a7d3574fef0bbabe3d6c49e1e43df8269" title="The property key.">key</a>; <a name="l00458"></a><a class="code" href="structplayer__strprop__req.html#ae2239ff2088b555e3542b71cd53f9430">00458</a> uint32_t <a class="code" href="structplayer__strprop__req.html#ae2239ff2088b555e3542b71cd53f9430" title="The property&#39;s length.">value_count</a>; <a name="l00460"></a><a class="code" href="structplayer__strprop__req.html#abbfd78accc57c13711b1fc42a335762e">00460</a> <span class="keywordtype">char</span> *<a class="code" href="structplayer__strprop__req.html#abbfd78accc57c13711b1fc42a335762e" title="The property value.">value</a>; <a name="l00461"></a>00461 } <a class="code" href="structplayer__strprop__req.html" title="Request to get a string property.">player_strprop_req_t</a>; <a name="l00462"></a>00462 <a name="l00463"></a>00463 <span class="comment">// /////////////////////////////////////////////////////////////////////////////</span> <a name="l00464"></a>00464 <span class="comment">//</span> <a name="l00465"></a>00465 <span class="comment">// Here starts the alphabetical list of interfaces</span> <a name="l00466"></a>00466 <span class="comment">// (please keep it that way)</span> <a name="l00467"></a>00467 <span class="comment">//</span> <a name="l00468"></a>00468 <span class="comment">// /////////////////////////////////////////////////////////////////////////////</span> <a name="l00469"></a>00469 <a name="l00506"></a>00506 <span class="preprocessor">#include <libplayerinterface/player_interfaces.h></span> <a name="l00507"></a>00507 <a name="l00508"></a>00508 <span class="preprocessor">#endif </span><span class="comment">/* PLAYER_H */</span> </pre></div></div> </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>