Ensure that your environment has:
- Qt 4
- Windows: Download and install qt-opensource-windows-x86-vs2010-4.8.6.exe from the archived Qt downloads site. Make sure that the directory containing
C:\Qt\4.8.6\bin) is included in the
PATHenvironment variable. Alternatively, those libraries may be copied into the directory where
- Ubunutu 16.04 LTS 64bit: Install by running
sudo apt install libqtgui4
- Download or compile the latest Shapes demo for your operating system:
- Shapes Demo downloads
- Alternatively, the Shapes demo can be run from a build from source of OpenDDS with Qt and Boost enabled. Boost is not required if building with a compiler that supports C++11. The demo resides in the
examples/DCPS/ishapesdirectory. See Building for a complete list of dependencies and supported platforms.
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 help demonstrate the capabilities better.
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
- Publish/Subscribe semantics
- One to Many and Many to One communications
- Different Quality of Service (QoS)
- Data Partitioning
- 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 Quick Start Guides
- Find more support information about dependencies and detailed build instructions here.
- Learn more about OpenDDS features and how to set up your own DDS infrastructure through the Developer's Guide.
- Need help? Curious about training? See Support.
- Visit the OpenDDS project on GitHub