Sophie

Sophie

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

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="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, &amp; 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 &lt;time.h&gt;</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 &quot;playerconfig.h&quot;</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    &quot;Player v.&quot;</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 &amp;quot;host&amp;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 &amp;quot;robot&amp;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&amp;#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&amp;#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&amp;#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&amp;#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&amp;#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 &lt;libplayerinterface/player_interfaces.h&gt;</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>