The goal of this guide is to walk through downloading and running the DDS Interoperability Shapes demo program. The Shapes demo is a graphical application that will help you visualize some of the DDS concepts that OpenDDS supports without needing to read or write source code. The application allows you to create publishers and subscribers on topics represented by data payloads shown as simple shapes and see the results of the different quality of service, data partitioning, and filtering options provided. The Shapes demo makes use of the Real-Time Publish-Subscribe Wire Protocol Specification (DDSI-RTPS) that provides interoperable communications between various DDS implementations.
This video demonstrates a few of the scenarios described below.
Ensure that your environment has Qt5 libraries available:
Download or compile the latest Shapes demo for your operating system:
Alternatively, the Shapes demo can be run from a build from source of OpenDDS with Qt enabled. The demo resides in the
examples/DCPS/ishapesdirectory. See Dependencies for a complete list of dependencies and
README.md#supported-platformsfor supported platforms.
Running the Shapes Demo#
Locate and run the Shapes demo and you should see a window that looks like this:
The most basic example is to simply click the
Publishbutton to begin publishing a circle and then click
Subscribeto begin subscribing to the same circle topic you are publishing. As soon as you begin publishing, you should see a green circle bouncing around the display area with a white center. This indicates that this is a published object, originating at this application.
Subscribe, as soon as the subscriber goes live and finds a match in the published circle topic, the center of the circle will go dark to indicate it is an instance of subscribed data, which in this case is being rendered over top the initial published instance.
Now that we have confirmed the ability to run an instance of the Shapes demo, let’s understand some of the DDS concepts seen at work even in this simple example.
Each of the available shapes in the drop-down menu are DDS Topics that can be published on or subscribed to.
Each instance on the topic has an instance key represented by the shape’s color and the shape itself is a DDS Data type comprised of x and y coordinates as well as a size.
What may not be apparent in this simple example is that the center of the circle going from white to dark is actually demonstrating the process of discovery, entity matching, publication, and subscription between two DDS entities. The additional example scenarios below make use of multiple shapes demo instances running concurrently to better demonstrate these capabilities.
The pages linked below contain example scenarios that demonstrate different features of OpenDDS:
The examples worked through above have demonstrated some of the many Data Distribution Service features provided by OpenDDS. OpenDDS provides a portable and interoperable publish/subscribe infrastructure. You have learned a little about many DDS concepts including:
Topics and Data Types
One to Many and Many to One communications
Different Quality of Service (QoS)
Time Based Filter
Content Filtered Topics
Hopefully this has helped provide an understanding of what using OpenDDS to provide a publish/subscribe infrastructure can look like and the different features that can be included in a product using OpenDDS as its communications infrastructure.
Now that you’ve acquired a conceptual baseline, here are some recommended next steps to continue learning about OpenDDS:
Work through downloading and building OpenDDS and running a simple example through the other Quick Start Guides.
Find more support information about dependencies and detailed instructions for Building and Installing.
Learn more about Getting Started with OpenDDS by walking through an end-to-end example.