RTT 2.0.0-beta2

This page is for helping you understand what's in RTT/OCL 2.0.0-beta2 release and what's not.

See the RTT 2.0.0-beta1 page for the notes of the previous beta, these will not be repeated here.

Caveats

Like in any beta, first the bad things:
  • Do not use this release on real machines !
  • There are *no* guarantees for real-time operation yet.
  • The API is 'pretty' stable, but the type system rework might have influences, especially on RTT 2.0 typekits (aka RTT 1.0 toolkits). This release will certainly not be binary compatible with the final 2.0.0 release.
  • Do not manually upgrade your code ! Use the rtt2-converter script found on this site first.
  • Reacting to Operations (former Event) is not yet possible in state machine scripts.
  • This release requires CMAKE 2.6-patch3 or later

For all upgrade-related notes, see Upgrading from RTT 1.x to 2.0

Missing things

The final release will have these, but this one has not:
  • A plugin system in RTT to load types (type kits) and plugins (like scripting, marshalling,...)
  • A tool/workflow to create type kits automatically
  • RT-Logging framework
  • Service deployment in the DeploymentComponent
  • Misc fixes/minor feature additions and better documentation
  • Repackaged OCL tree. Especially, in OCL, only TaskBrowser, Reporting and DeploymentComponent are fully operational.
  • Debian packages have not been updated yet
  • A couple of unit tests still fail. You should see at the end:

97% tests passed, 1 tests failed out of 31
 
The following tests FAILED:
         24 - types_test (Failed)
If other tests fail, this may be because of too strict timing checks, but you can report them anyway on the orocos-dev mailing list or rtt-dev website forum.

New Features

See the RTT 2.0.0-beta1 page for the features added in beta1. Most features below relate to the CORBA transport.

Feature compatibility with RTT 1.x

This release is able to build the same type of applications as with RTT 1.x. It may be rough on the edges, but no big chunks of functionality (or unit tests) have been left out.

Updated CORBA IDL

Want to use an Orocos component from another language or computer ? The simplified CORBA IDL gives quick access to all properties, operations and ports.

Transparent remote or inter-process communication

The corba::TaskContextProxy and corba::TaskContextServer allow fully transparant communication between components, providing the same semantics as in-process communication. The full TaskContext C++ api is available in IDL.

Improved memory usage and reduced bandwidth/callbacks

Calling an operation, setting a parameter, all these tasks are done with a single call from client to server. No callbacks from server to client are done as in RTT 1.x. This saves a lot of memory on both client and server side and eliminates virtually all memory leaks related to the CORBA transport.

Adapted OCL components

TaskBrowser and (Corba)Deployment code is fully operational and feature-equivalent to RTT 1.x. One can deploy Orocos components using a CORBA deployer and connect to them using other deployers or taskbrowsers.