Sophie

Sophie

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

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>Command line arguments<br/>
<small>
[<a class="el" href="group__tutorials.html">Tutorials</a>]</small>
</h1>  </div>
</div>
<div class="contents">

<p>Parsing command-line arguments.  
<a href="#_details">More...</a></p>
<table class="memberdecls">
</table>
<p>Parsing command-line arguments. </p>
<p>If you would like to pass command line arguments to your Player client programs you can use the getopt feature provided by unistd.h.</p>
 <div class="fragment"><pre class="fragment"><span class="preprocessor">  #include &lt;unistd.h&gt;</span>
</pre></div></p>
<p>You must supply a series of characters in optflags, which are the legitimate options to you program. If the characher is followed by a colon (:) then that option requires an additional parameter. These parameters are returned as const char* so you must use functions like atoi() or atof() if you would like numerical results.</p>
<p><div class="fragment"><pre class="fragment"><span class="keywordtype">int</span> parse_args(<span class="keywordtype">int</span> argc, <span class="keywordtype">char</span>** argv)
{
  <span class="comment">// set the flags</span>
  <span class="keyword">const</span> <span class="keywordtype">char</span>* optflags = <span class="stringliteral">&quot;h:p:i:d:u:lm:&quot;</span>;
  <span class="keywordtype">int</span> ch;

  <span class="comment">// use getopt to parse the flags</span>
  <span class="keywordflow">while</span>(-1 != (ch = getopt(argc, argv, optflags)))
  {
    <span class="keywordflow">switch</span>(ch)
    {
      <span class="comment">// case values must match long_options</span>
      <span class="keywordflow">case</span> <span class="charliteral">&#39;h&#39;</span>: <span class="comment">// hostname</span>
          gHostname = optarg;
          <span class="keywordflow">break</span>;
      <span class="keywordflow">case</span> <span class="charliteral">&#39;p&#39;</span>: <span class="comment">// port</span>
          gPort = atoi(optarg);
          <span class="keywordflow">break</span>;
      <span class="keywordflow">case</span> <span class="charliteral">&#39;i&#39;</span>: <span class="comment">// index</span>
          gIndex = atoi(optarg);
          <span class="keywordflow">break</span>;
      <span class="keywordflow">case</span> <span class="charliteral">&#39;d&#39;</span>: <span class="comment">// debug</span>
          gDebug = atoi(optarg);
          <span class="keywordflow">break</span>;
      <span class="keywordflow">case</span> <span class="charliteral">&#39;u&#39;</span>: <span class="comment">// update rate</span>
          gFrequency = atoi(optarg);
          <span class="keywordflow">break</span>;
      <span class="keywordflow">case</span> <span class="charliteral">&#39;m&#39;</span>: <span class="comment">// datamode</span>
          gDataMode = atoi(optarg);
          <span class="keywordflow">break</span>;
      <span class="keywordflow">case</span> <span class="charliteral">&#39;l&#39;</span>: <span class="comment">// datamode</span>
          gUseLaser = <span class="keyword">true</span>;
          <span class="keywordflow">break</span>;
      <span class="keywordflow">case</span> <span class="charliteral">&#39;?&#39;</span>: <span class="comment">// help</span>
      <span class="keywordflow">case</span> <span class="charliteral">&#39;:&#39;</span>:
      <span class="keywordflow">default</span>:  <span class="comment">// unknown</span>
        print_usage(argc, argv);
        exit (-1);
    }
  }

  <span class="keywordflow">return</span> (0);
} <span class="comment">// end parse_args</span>
</pre></div></p>
<p>It is also often helpfull to include a short output function that explains the option parameters to your program.</p>
<div class="fragment"><pre class="fragment">
USAGE:  myprogram [options]

Where [options] can be:
  -h &lt;hostname&gt;  : hostname to connect to (default: localhost)
  -p &lt;port&gt;      : port where Player will listen (default: 6665)
  -i &lt;index&gt;     : device index (default: 0)
  -d &lt;level&gt;     : debug message level (0 = none -- 9 = all)
  -u &lt;rate&gt;      : set server update rate to &lt;rate&gt; in Hz
  -m &lt;datamode&gt;  : set server data delivery mode
                      PLAYER_DATAMODE_PUSH = 1
                      PLAYER_DATAMODE_PULL = 2
</pre></div><p><div class="fragment"><pre class="fragment"><span class="keywordtype">void</span> print_usage(<span class="keywordtype">int</span> argc, <span class="keywordtype">char</span>** argv)
{
  <span class="keyword">using namespace </span>std;
  cerr &lt;&lt; <span class="stringliteral">&quot;USAGE:  &quot;</span> &lt;&lt; *argv &lt;&lt; <span class="stringliteral">&quot; [options]&quot;</span> &lt;&lt; endl &lt;&lt; endl;
  cerr &lt;&lt; <span class="stringliteral">&quot;Where [options] can be:&quot;</span> &lt;&lt; endl;
  cerr &lt;&lt; <span class="stringliteral">&quot;  -h &lt;hostname&gt;  : hostname to connect to (default: &quot;</span>
       &lt;&lt; <a class="code" href="group__player__clientlib__utility.html#ga877a8a285e27eba8490bdd5861e4d288" title="The default hostname for PlayerClient.">PlayerCc::PLAYER_HOSTNAME</a> &lt;&lt; <span class="stringliteral">&quot;)&quot;</span> &lt;&lt; endl;
  cerr &lt;&lt; <span class="stringliteral">&quot;  -p &lt;port&gt;      : port where Player will listen (default: &quot;</span>
       &lt;&lt; <a class="code" href="group__player__clientlib__utility.html#ga6f4cc8d7ad32a50feb9c285cbe795df7" title="The default port number for PlayerClient.">PlayerCc::PLAYER_PORTNUM</a> &lt;&lt; <span class="stringliteral">&quot;)&quot;</span> &lt;&lt; endl;
  cerr &lt;&lt; <span class="stringliteral">&quot;  -i &lt;index&gt;     : device index (default: 0)&quot;</span>
       &lt;&lt; endl;
  cerr &lt;&lt; <span class="stringliteral">&quot;  -d &lt;level&gt;     : debug message level (0 = none -- 9 = all)&quot;</span>
       &lt;&lt; endl;
  cerr &lt;&lt; <span class="stringliteral">&quot;  -u &lt;rate&gt;      : set server update rate to &lt;rate&gt; in Hz&quot;</span>
       &lt;&lt; endl;
  cerr &lt;&lt; <span class="stringliteral">&quot;  -l      : Use laser if applicable&quot;</span>
       &lt;&lt; endl;
  cerr &lt;&lt; <span class="stringliteral">&quot;  -m &lt;datamode&gt;  : set server data delivery mode&quot;</span>
       &lt;&lt; endl;
  cerr &lt;&lt; <span class="stringliteral">&quot;                      PLAYER_DATAMODE_PUSH = &quot;</span>
       &lt;&lt; <a class="code" href="group__interface__player.html#ga873facd47a9efaa244a411efedb659c9" title="Data delivery mode: Send data from all subscribed devices all the time (i.e.">PLAYER_DATAMODE_PUSH</a> &lt;&lt; endl;
  cerr &lt;&lt; <span class="stringliteral">&quot;                      PLAYER_DATAMODE_PULL = &quot;</span>
       &lt;&lt; <a class="code" href="group__interface__player.html#ga32e47dfa038a268985593fc0bb9cd19b" title="Data delivery mode: Only on request, send data from all subscribed devices.">PLAYER_DATAMODE_PULL</a> &lt;&lt; endl;
} <span class="comment">// end print_usage</span>
</pre></div></p>
<p>For the complete code see examples/libplayerc++/args.h </p>
</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>