An Easier Way To Design DDS Applications with RTI System Designer

rti-blog-post-image-2018-10-04-easier-way-dds-system-designer-642x396-1018

 

RTI System Designer is an easy-to-use (yet powerful!) tool, that is available as a prototype product since the release of RTI Connext DDS Pro 5.3. The online version can be started from within the standard Connext DDS installation, where it is launched from the RTI Labs tab of the Connext Launcher. It is also available directly from our Community site.

RTI System Designer can significantly help with understanding, designing, and configuring the various components of a Connext DDS-based system including data types, QoS, and (if your design is based on the RTI Application Creation) also entities, such as Topics, DomainParticipants, Publishers, Subscribers, DataReaders and DataWriters.

For more information on RTI Connext DDS XML Application Creation, take a look at this blog post. For even more details, please refer to the RTI Connext DDS documentation.

 

null

 

 

System Designer contains four major components:

  • Type Editor: this component allows you to visualize, navigate and change the data types used by your DDS-based system. For large and complex systems which may rely on many data types, with often complex definitions, it can become overwhelming to access these definitions through the IDL or XML files. System Designer helps you understand and navigate your types by visualizing them all in one place, even when they are defined in multiple files. The Type Editor also allows you to modify or create new data types (structs, unions, and valuetypes), as well as non-instantiable entities like constants, bitsets, bitmasks, enumerations, and typedefs. System Designer lets you see and export your type definitions in XML or IDL. If, for example, you are not familiar with IDL syntax, you can create your type system using System Designer, then export an IDL or XML representation of it which can be consumed by rtiddsgen to generate type support code for your DDS applications.
  • QoS Editor: the Quality of Service (QoS) section of System Designer can offer you that “quality of life improvement” you might need when facing the potentially overwhelming number of configurable QoS parameters that Connext DDS exposes to its users. The QoS Editor lets you create and edit all of the QoS profiles used by your system. Your profiles can inherit values from the built-in profiles included in the Connext DDS libraries. For each QoS profile, the QoS Editor will allow you to inspect the final value of each parameter, along with a description of how each value was obtained (by showing its inheritance chain). Any customized QoS parameter will be highlighted for easier reference, while default values will be shown (possibly derived from parent profiles) for those that are unassigned.
  • Domain Editor: this section lets you customize the DDS domains used within your system. It provides a guided graphical user interface that allows you to build your DDS types and topics, including any topic-specific QoS configuration your system might need. The generated XML domain definitions can be deployed in your applications using XML Application Creation.
  • Participant Editor: this is where all the magic happens! Here you will be able to define your system’s DomainParticipants, Publishers, Subscribers, DataReaders and DataWriters. Once all DDS entities have been defined with System Designer, the generated XML description can be loaded in your code using XML Application Creation, allowing you to instantiate and access all entities with a simple function call.

Using RTI System Designer together with RTI Connector (which relies extensively on XML Application Creation) gives you a very powerful way to create DDS-based applications in just a few minutes:

  • Start by defining the data types used by your app with the help of the System Designer Type Editor.
  • Define a DDS domain configuration that includes these types, then define topics with them which will be used by applications in your DDS system.
  • Define at least one DomainParticipant, with a Publisher and/or subscriber, and all the DataReaders and DataWriters that your application needs.
  • Using RTI Connector (with any of its available language bindings, such as Python or Javascript), take the generated XML and instantiate a Connector object, wrapping the DomainParticipant object you previously defined. You can then use the Connector to retrieve Input and/or Output objects to access DataReaders and Data Writers in the DomainParticipant. You can find examples for python here and for javascript here.
  • Alternatively, you can also use the artifacts generated by System Designer with RTI Prototyper with Lua.

That's it! Simply use Output objects to publish data from your application, and Input objects to read it in.

A newer version of System Designer with new powerful features (like XML direct file access, QoS inheritance, and configuration of DDS Security properties) is under active development and it will be made available soon. Meanwhile, if you want to have a taste of how System Designer works, you can test drive it using our online demo that you can find here – and, please let us know what you think in the comments!

 

Getting Started with Connext DDS

Connext® DDS is the world's leading implementation of the Data Distribution Service (DDS) standard for Real-Time Systems. Try a fully-functional version of Connext DDS 5.3 for 30 days.


Free Trial