Skip to content

Commit

Permalink
doc: updates to manuals wrt RTT 2.0.
Browse files Browse the repository at this point in the history
Signed-off-by: Peter Soetens <[email protected]>
  • Loading branch information
Peter Soetens committed Sep 7, 2010
1 parent ac43daf commit bc44169
Show file tree
Hide file tree
Showing 3 changed files with 76 additions and 29 deletions.
18 changes: 9 additions & 9 deletions doc/xml/images/ATaskContext.svg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
10 changes: 5 additions & 5 deletions doc/xml/orocos-task-context.xml
Original file line number Diff line number Diff line change
Expand Up @@ -55,7 +55,7 @@
</para>
<figure id="fig-task-peers">
<title>
Components Run in Threads
Typical application example for distributed control
</title>
<mediaobject>
<imageobject role="html">
Expand Down Expand Up @@ -199,14 +199,14 @@
</para>
<figure id="fig-hello-world-deployment">
<title>
Schematic Overview of the Hello Component.
Dynamic vs static loading of components
</title>
<mediaobject>
<imageobject role="html">
<imagedata fileref="images/HelloWorldDeployment" />
<imagedata fileref="images/HelloDeployment" />
</imageobject>
<imageobject role="fo">
<imagedata fileref="images/hires/HelloWorldDeployment" width="100%" scalefit="1"/>
<imagedata fileref="images/hires/HelloDeployment" width="100%" scalefit="1"/>
</imageobject>
<caption>
<para>The 'helloworld' executable is a static deployment of one component in a process, which
Expand Down Expand Up @@ -651,7 +651,7 @@ Printing Interface of 'the_input_port' :
// we assume this is done in all the following code listings :
using namespace RTT;

class MyTask : public<classname>RTT::TaskContext</classname>
class MyTask : public <classname>RTT::TaskContext</classname>
{
public:
ATask(const std::string&amp; name) : public TaskContext(name) {}
Expand Down
77 changes: 62 additions & 15 deletions doc/xml/orocos-typekit-plugin.xml
Original file line number Diff line number Diff line change
Expand Up @@ -28,6 +28,12 @@
</abstract>

<revhistory>
<revision>
<revnumber>2.0.1</revnumber>
<date>7 Sept 2010</date>
<authorinitials>ps</authorinitials>
<revremark>Updated status of typegen</revremark>
</revision>
<revision>
<revnumber>2.0.0</revnumber>
<date>21 Jun 2010</date>
Expand Down Expand Up @@ -65,9 +71,9 @@
<title>The Orocos Type System : Typekits</title>
<para>
Most applications define their own classes or structs to exchange
data between components. It is possible to tell the RTT about these
data between components. It is easy to tell the RTT about these
user defined types such that they can be displayed, stored to XML,
used in the scripting engine or even transfered over a network
used in the scripting engine and transfered between processes or over a network
connection.
</para>

Expand Down Expand Up @@ -96,8 +102,8 @@
<title>Generating Typekits</title>
<para>
There are two tools available to generate Typekits for users.
The first one is orogen, which generates typekits from existing C++
structs. The second is based on ROS, and generates typekits
The primary one is typegen, which generates typekits from existing C++
structs defined in headers. The second is based on ROS, and generates typekits
for ROS Messages (which are used in ros topics).
</para>
<para>
Expand All @@ -115,22 +121,24 @@
</thead>
<tbody>
<row>
<entry>orogen</entry>
<entry>typegen</entry>
<entry>
<itemizedlist>
<listitem><para>Works with existing C++ classes</para></listitem>
<listitem><para>Stable and tested</para></listitem>
<listitem><para>Usable with the CORBA transport</para></listitem>
<listitem><para>Usable with the mqueue transport</para></listitem>
<listitem><para>Usable for scripting, XML.</para></listitem>
</itemizedlist>
</entry>
<entry>
<itemizedlist>
<listitem><para>Can not be used with classes with virtual functions.</para></listitem>
<listitem><para>Requires manual ruby setup</para></listitem>
<listitem><para>Requires to be built with 'autoproj'</para></listitem>
<listitem><para>Does not provide scripting constructors or operators</para></listitem>
</itemizedlist>
</entry>
<entry>
Being ported to RTT 2.x, Available for RTT 1.x
Available for RTT 2.x, Available for RTT 1.x
</entry>
</row>
<row>
Expand All @@ -146,7 +154,8 @@
<listitem><para>Can not be used with existing C++ data types</para></listitem>
<listitem><para>Experimental.</para></listitem>
<listitem><para>Depends on ROS</para></listitem>
<listitem><para>Not compatible with the CORBA transport</para></listitem>
<listitem><para>Not compatible with the CORBA or mqueue transport</para></listitem>
<listitem><para>Does not provide scripting constructors or operators</para></listitem>
</itemizedlist>
</entry>
<entry>
Expand All @@ -157,17 +166,55 @@
</tgroup>
</table>
</para>
<note>
<important>
<para>
These tools are under development and will mature during the
2.x release cycles. In the meantime, users can fall back on
writing typekits manually as described below.
These tools are mature for most applications and users
should only write typekits by hand if they want to extend
beyond what typegen/rosgen offer. In practice, this means
adding specialized constructors or operators for scripting
for certain data types.
</para>
</note>
</section>
</important>
<section>
<title>Using <command>typegen</command></title>
<para>
Typegen requires that you have built the Orocos Toolchain with <command>autoproj</command>
and that you have 'sourced' the <filename>env.sh</filename> file in your shell. You
can use typegen as such:
<screen> cd myproject/src
typegen MyData.hpp -o typekit
</screen>
Which will create a directory 'typekit' which contains all necessary files to
build the typekit for all classes and structs defined in <filename>MyData.hpp</filename>.
To test your typekit, you can do afterwards:
<screen> cd myproject/src/typekit
CMAKE_INSTALL_PREFIX=/opt/orocos CMAKE_PREFIX_PATH=/opt/orocos cmake .
make install
</screen>
These variables tell cmake where to find Orocos and where to install the typekit:
<itemizedlist>
<listitem><para> CMAKE_INSTALL_PREFIX : where to install to (a single directory)</para></listitem>
<listitem><para> CMAKE_PREFIX_PATH : where to look for the installed Orocos Toolchain (a list of directories, similar to the PATH variable)</para></listitem>
</itemizedlist>
</para>
<para>
After make install finishes, you will see that your data types show up in the
deployer and taskbrowser applications, provided that the RTT_COMPONENT_PATH
variable contains the '/opt/orocos/lib/orocos' directory (= CMAKE_PREFIX_PATH + lib/orocos ).
</para>
</section>
<section>
<title>Using <command>rosgen</command></title>
<para>Under development. Consult the mailinglist or the wiki pages for this tool.</para>
</section>
</section>
<section>
<title>Creating a Typekit in C++</title>
<important>
<para>
Only continue here if you are sure you can not use typegen/rosgen !
</para>
</important>
<para>
In case you don't use any of the typekit generators, you need to
write a typekit yourself. This has been simplified in RTT
Expand Down

0 comments on commit bc44169

Please sign in to comment.