- Development
- European Robotics Forum 2011 Workshop on the Orocos Toolchain
- European Robotics Forum 2012: workshops
- Geometric relations semantics
- KDL wiki
- Kuka LBR user group
- Links of Orocos components
- OCL v1.x wiki
- RTT v1.x wiki
- Documentation suggestions
- Examples and Tutorials
- Frequently asked questions (FAQ)
- Installation
- RTT Dictionary
- RTT on MS Windows
- The 1st RTT Developers Workshop
- The Road to RTT 2.0
- Goals for RTT 2.0
- Contribute! Which weakness have you detected in RTT?
- Contribute! Suggest a new feature to be included in RTT 2.0.
- Create Reference Application Architectures
- Detailed Roadmap
- Full distribution support
- RTT 2.0.0-beta1
- RTT 2.0.0-beta2
- RTT and OCL Cleanup
- Real time logging
- Redesign of the data flow interface
- Simplified, more robust default activities
- Streamlined Execution Flow API
- Upgrading from RTT 1.x to 2.0
- Using Eclipse and Orocos
- Using Git and Orocos
- Toolchain v2.x
- Wiki for site admins
- iTaSC wiki
RTT 2.0 Renaming table
Table of Contents
This page lists the renamings/relocations done on the RTT 2.0 branch (available through gitorious on http://www.gitorious.org/orocos-toolchain/rtt/commits/master) and also offers the conversion scripts to do the renaming.
A note about headers/namespaces: If a header is in rtt/extras, the namespace will be RTT::extras and vice versa. A header in rtt/ has namespace RTT. Note: the OS namespace has been renamed to lowercase os. The Corba namespace has been renamed to lowercase corba.
Scripts
The script attached to the bottom of this page converts RTT 1.x code according to the renaming table below. They do so in a quasi-intelligent way and catch most cases quite correctly. Some changes require additional manual intervention because the script can not guess the missing content. You will also need to download the rtt2-converter program from here.Namespace conversions and simple renames
Many other files moved into sub-namespaces. For all these renames and more, a script is attached to this wiki page. You need to download headers.txt, classdump.txt and to-rtt-2.0.pl.txt and rename the to-rtt-2.0.pl.txt script to to-rtt-2.0.pl:mv to-rtt-2.0.pl.txt to-rtt-2.0.pl chmod a+x to-rtt-2.0.pl ./to-rtt-2.0.pl $(find . -name "*.cpp" -o -name "*.hpp")
Minor manual fixes may be expected after running this script. Be sure to have your sources version controlled, such that you can first test what the script does before permanently changing files.
Flow port and services conversions
A second program is required to convert flow port and method/command -> operation conversions that go further than a simple rename. This is called rtt2-converter. It requires boost 1.41.0 or newer. You can build rtt2-converter from Eclipse or using the Makefile using 'make all'. It also requires a recent installed version of boost with the regex library (It will link with -lregex and includes regex boost headers). See the rtt2-converter README.txt for instructions and download the converter sources from the toolchain/upgrading link.tar xjf rtt2-converter-1.1.tar.bz2 cd rtt2-converter-1.1 make ./rtt2-converter Component.hpp Component.cpp
The script takes preferably both header and implementation of your component, but will also accept a single file. It needs both class definition and implementation to make its best guesses on how to convert. If all your code is in a .hpp or .cpp file, you only need to specify that file. If nothing is to be done, the file will remain the same, so you may 'accidentally' feed non-Orocos files, or a file twice.
To run this on a large codebase, you can do something similar to:
# Calls : ./rtt2-converter Component.hpp Component.cpp for each file in orocos-app for i in $(find /home/user/src/orocos-app -name "*.cpp"); do ./rtt2-converter $(dirname $i)/$(basename $i cpp)hpp $i; done # Calls : ./rtt2-converter Component.cpp for each .cpp file in orocos-app for i in $(find /home/user/src/orocos-app -name "*.cpp"); do ./rtt2-converter $i; done # Calls : ./rtt2-converter Component.hpp for each .hpp file in orocos-app for i in $(find /home/user/src/orocos-app -name "*.hpp"); do ./rtt2-converter $i; done
Core API
RTT 1.0 | RTT 2.0 | Comments |
RTT::PeriodicActivity | RTT::extras::PeriodicActivity | Use of RTT::Activity is prefered |
RTT::Timer | RTT::os::Timer | |
RTT::SlaveActivity, SequentialActivity, SimulationThread, IRQActivity, FileDescriptorActivity, EventDrivenActivity, SimulationActivity, ConfigurationInterface, Configurator, TimerThread | RTT::extras::... | EventDrivenActivity has been removed. |
RTT::OS::SingleThread, RTT::OS::PeriodicThread | RTT::os::Thread | Can do periodic and non-periodic and switch at run-time. |
RTT::TimeService | RTT::os::TimeService | |
RTT::DataPort,BufferPort | RTT::InputPort,RTT::OutputPort | Buffered/unbuffered is decided upon connection time. Only input/output is hardcoded. |
RTT::types() | RTT::types::Types() | The function name collided with the namespace name |
RTT::Toolkit* | RTT::types::Typekit* | More logical name |
RTT::Command | RTT::Operation | Create an 'OwnThread' operation type |
RTT::Method | RTT::Operation | Create an 'ClientThread' operation type |
RTT::Event | RTT::internal::Signal | Events are replaced by OutputPort or Operation, the Signal class is a synchonous-only callback manager. |
commands()->getCommand<T>() | provides()->getOperation() | get a provided operation, no template argument required |
commands()->addCommand() | provides()->addOperation().doc("Description") | add a provided operation, document using .doc("doc").doc("a1","a1 doc")... |
methods()->getMethod<T>() | provides()->getOperation() | get a provided operation, no template argument required |
methods()->addMethod() | provides()->addOperation().doc("Description") | add a provided operation, document using .doc("doc").doc("a1","a1 doc")... |
attributes()->getAttribute<T>() | provides()->getAttribute() | get a provided attribute, no template argument required |
attributes()->addAttribute(&a) | provides()->addAttribute(a) | add a provided attribute, passed by reference, can now also add a normal member variable. |
properties()->getProperty<T>() | provides()->getProperty() | get a provided property, no template argument required |
properties()->addProperty(&p) | provides()->addProperty(p).doc("Description") | add a provided property, passed by reference, can now also add a normal member variable. |
events()->getEvent<T>() | ports()->getPort() OR provides()->getOperation<T>() | Event<T> was replaced by OutputPort<T> or Operation<T> |
ports()->addPort(&port, "Description") | ports()->addPort( port ).doc("Description") | Takes argument by reference and documents using .doc("text"). |
Scripting
RTT 1.0 | RTT 2.0 | Comments |
scripting() | getProvider<Scripting>("scripting") | Returns a RTT::Scripting object. Also add #include <rtt/scripting/Scripting.hpp> |
Marshalling
RTT 1.0 | RTT 2.0 | Comments |
marshalling() | getProvider<Marshalling>("marshalling") | Returns a RTT::Marshalling object. Also add #include <rtt/marsh/Marshalling.hpp> |
RTT::Marshaller | RTT::marsh::MarshallingInterface | Normally not needed for normal users. |
RTT::Demarshaller | RTT::marsh::DemarshallingInterface | Normally not needed for normal users. |
CORBA Transport
RTT 1.0 | RTT 2.0 | Comments |
RTT::Corba::* | RTT::corba::C* | Each proxy class or idl interface starts with a 'C' to avoid confusion with the same named RTT C++ classes |
RTT::Corba::ControlTaskServer | RTT::corba::TaskContextServer | renamed for consistency. |
RTT::Corba::ControlTaskProxy | RTT::corba::TaskContextProxy | renamed for consistency. |
RTT::Corba::Method,Command | RTT::corba::COperationRepository,CSendHandle | No need to create these helper objects, call COperationRepository directly |
RTT::Corba::AttributeInterface,Expression,AssignableExpression | RTT::corba::CAttributeRepository | No need to create expression objects, query/use CAttributeRepository directly. |
Attachment | Size |
---|---|
class-dump.txt | 7.89 KB |
headers.txt | 10.17 KB |
to-rtt-2.0.pl.txt | 4.78 KB |
»
- Printer-friendly version
- Login or register to post comments