RTI Shapes Demo for Android is now Available!
Written by Valentin Perez Carrasco
October 26, 2017
I am excited to announce the release of a new version of RTI Shapes Demo for Android which is now available on Google Play. This new app has been compiled with the latest version of Connext DDS 5.3 and contains almost all of the features that the desktop version has. Let’s take a brief look at the most notable features.
Support for Extensible Types for DDS (DDS-XTypes)
Extensible Types allow systems to define data types in a more flexible way, and to evolve data types over time without giving up portability, interoperability or the expressiveness of the DDS type system.
The Shapes Demo application uses two different data types to demonstrate the concept of extensible types – “Shapes Extended” (the default) and a more basic “Shape” type. The difference between these two types is that Shapes Extended includes one more piece of information – a rotation speed (unlike the desktop version that also includes a fill-pattern).
Setting Quality of Service (QoS) Policies
QoSPolicies control many aspects of how and when data is distributed between applications. Shapes Demo allows you to control the QoS values in two different ways:
1. You can modify the QoS values in a profile and apply that profile to your model.
Using this method will allow you not only to modify the QoS values for DataWriters and DataReaders, but also to all the other entities, such as Domain Participants, Publishers, Subscribers, etc.
Shapes Demo provides a way to load and unload (delete) new QoS Profiles from an XML file. It also allows the user to enable/disable any specific file so the file will remain in the system.
Shapes Demo also contains two XML files: RTI_SHAPES_DEMO_QOS_PROFILES.xml and USER_SHAPES_DEMO_QOS_PROFILES.xml. These two XML files can be enabled or disabled like any other but they cannot be deleted.
2. You can explicitly set some QoS values directly from the Create New Publisher/Subscriber dialog.
Legend and Log View
The legend view shows you the publisher and subscribers created for the demo and their QoS settings. Inside that view you can perform a long click on a publisher entity to access these commands:
- Pause/resume publishing
- Dispose data and delete the DataWriter
- Unregister data and delete the DataWriter
Click on a subscriber in the Legend View to access a command to delete the DataReader.
The log view shows statuses, events and other information using three different color styles:
- If the text is black, it is information.
- If the text is yellow, it is a warning.
- If the text is red, it is an error.
You can navigate between these two views by clicking on the two buttons on the top side or swiping to the right and left.
Two Different GUIs
The app will automatically detect if it is being run on a tablet or a phone changing its appearance accordingly. This allows us to expand the content in a tablet and show more information, such as the Legend and Log View.
Updated Shapes Creation Menu
The Shapes creation menu has been improved to allow the user to add multiple shapes. Clicking on a color will add a new shape of that color to the shape’s list (this list can be seen at the bottom). This new mechanism not only allows you to add multiple shapes at the same time, but it also allows you to remove a shape before its creation by performing a long click on any of them.
Clicking on “ADVANCED” will expand this menu including all the different QoS values.
But that’s not all, a quick publish menu can be accessed by performing a long click on any of the publisher’s buttons. This will open a similar menu to the standard one with the following differences:
1. A Blue Shape is added by default (it can be removed).
2. It is not possible to modify any of the QoS values, each shape will be created using the default profile.
This menu is perfect if you are not interested in setting any QoS and just want to publish a shape. It is possible to go to the standard menu by clicking on the “ADVANCED” button.
By enabling this option in the Settings, the app will try to share any DataWriters/DataReaders if possible. Instead of creating a new DataWriter for each shape the app will first look through the list of entities (in this case DataWriters/DataReaders) trying to find one whose QoS policies are compatible with the selected ones.
For further details, open the User’s Manual from the application where you will find more details about all of the features and how to use them.