Interoperability Connext DDS Micro DPSE - Connext DDS Professional

RTI Connext DDS Micro provides two ways of determining endpoint information of other DomainParticipants: Dynamic Endpoint Discovery, and Static Endpoint Discovery.

Dynamic endpoint discovery uses the DDS Simple Discovery Protocol, which uses builtin discovery DataWriters and DataReaders to exchange messages about user created DataWriters, and DataReaders. Static endpoint discovery instead relies on function calls to statically assert information about remote endpoints without exchanging any additional information with remote DomainParticipants.

An application using the Dynamic Participant, Static Endpoint (DPSE) discovery module has direct control over which remote endpoints are discoverable by a DomainParticipant, and thus can potentially communicate with local DataWriters and DataReaders it contains. Since no information about available endpoints is exchanged at run-time, DPSE establishes matches between local and remote endpoints based only on information that has been explicitly asserted, whereas the Dynamic Participant, Dynamic Endpoint (DPDE) discovery module can establish matches  between local endpoints and previously unknown remote ones that have been detected via the discovery channels.

The Static Endpoint Discovery provided by DPSE is implemented by RTI Connext DDS Professional in a separate plug-in called Limited Bandwidth Endpoint Discovery Plug-in. The Limited Bandwidth Endpoint Discovery Plug-in must be used by any tool or application using RTI Connext DDS Professional that wishes to communicate with applications based on RTI Connext DDS Micro and using DPSE discovery.

Additional information on interoperability between RTI Connext DDS Micro and other RTI tools can be found at the following page of RTI Connext DDS Micro’s online help: https://community.rti.com/static/documentation/connext-micro/2.4.8/doc/html/group__UserManuals__MicroAndCore.html
 

This solution includes examples on how to properly configure several DDS applications and tools that use RTI Connext DDS professional to communicate with the HelloWorld_dpse example included with RTI Connext DDS Micro. Example applications include the HelloWorld example shipped with RTI DDS Connext Professional, RTI Admin Console, RTI Routing Service, RTI Recorder and RTI Replay.

For these examples, we have used HelloWorld_dpse Micro example found in the 2.4.8 release with a couple of modifications, RTI Connext® DDS Release 5.2.0, and RTI Limited-Bandwidth Endpoint Discovery Plug-in 5.2.0.
 

RTI Limited-Bandwidth Endpoint Discovery Plug-in is installed as a separate package on top of RTI Connext DDS. You can download this package from https://support.rti.com/downloads.php. The package documentation can be found in directory <NDDSHOME>/doc/manuals/connext_dds/limited_bandwidth_endpoint_disc once the package is installed.

We  recommend to run RTI Connext Launcher from the command line in order to specify the path to the directory where the Limited-Bandwidth Endpoint Discovery Plug-in libraries are located. In order to do this, you can:
  • Open a command line window

  • Manually add the path where libraries are stored to the PATH environment variable, or execute script <NDDSHOME>/resourcescripts/rtisetenv_<ARCH> (where <ARCH> is the Limited Bandwidth Endpoint Discovery Plug-in architecture that you installed).

  • Start  RTI Connext Launcher

  • Start desired tools from Launcher.

Since Launcher is being run from a command line, it will inherit the shell’s environment variables. Another option would be to modify the global environment variable PATH. Note that on Linux, these changes must be applied to variable LD_LIBRARY_PATH instead of PATH.

Connext DDS Micro HelloWorld_dpse with modifications

 

These are the modifications you need to perform (or you can download the modified example from here):

  • Update Subscriber participant name to be "Data Visualization" instead of “Subscriber”. This change is only required if you wish to have the application communicate with RTI AdminConsole version 5.2.x or earlier. In these versions, AdminConsole will always assign the name "Data Visualization" to the DomainParticipant used to subscribe to external data. This limitation will be removed in RTI DDS Connext next major release after 5.2.0.

  • Change ‘remote_participant_allocation’ in the DomainParticipantQos’s participant resource limits,to 8, instead of 1. This change is needed in order to have multiple participants (e.g. a subscriber HelloWorld application and AdminConsole) discover and communicate with the HelloWorld_dpse example application.

  • Modify the QoS of HelloWorld_dpse to be able to communicate with a bigger number of endpoints and take into account the multiple topics created for administration by AdminConsole. The following changes should be applied in file HelloWorldApplication.c :

    dp_qos.resource_limits.max_destination_ports = 32;
    dp_qos.resource_limits.max_receive_ports = 32;
    dp_qos.resource_limits.local_topic_allocation = 1;
    dp_qos.resource_limits.local_type_allocation = 1;
    dp_qos.resource_limits.local_reader_allocation = 1;
    dp_qos.resource_limits.local_writer_allocation = 1;
    dp_qos.resource_limits.remote_participant_allocation = 8;
    dp_qos.resource_limits.remote_reader_allocation = 32;
    dp_qos.resource_limits.remote_writer_allocation = 32;
    dp_qos.resource_limits.matching_writer_reader_pair_allocation = 128;

Note that Micro does not transmit any type code information nor type object. For this reason, both Micro application and Connext applications that wish to communicate with Micro applications must be supplied with data type definitions, typically stored in an IDL or XML file. Some of the following examples  reference a file named HelloWorld.xml which is assumed to include the definition of data type HelloWorld. This file can be generated by using the utility Type Converter on file HelloWorld.idl, included in example HelloWorld_dpse. The Type Converter utility can be run from tab Utilities in RTI Connext Launcher. 

Connext DDS Core HelloWorld

 

A modified RTI DDS Connext Core HelloWorld example can be downloaded from here. Refer to file USER_QOS_PROFILES.xml for an example of how the Limited-Bandwidth Endpoint Discovery Plug-in can be configured to communicate with Micro applications that use DPSE.

Using this configuration, it is possible to establish communication between a subscriber in one of the Connext examples and the Micro DPSE publisher , e.g. run

.\objs\i86Win32VS2010\HelloPublisher.exe  -domain 58  (in the Micro example)

.\objs\x64Win64VS2013\HelloWorld_subscriber.exe  58 (in the core example)

The subscriber will receive samples from the publisher. Both applications will communicate using domain 58.

Admin Console

 

The configuration files needed by AdminConsole can be downloaded from here.

Note: paths in file USER_ADMIN_CONSOLE_QOS_PROFILES.xml are hardcoded and they must be changed according to your local installation. 

  • Run Micro publisher in domain 58: .\objs\i86Win32VS2010\HelloPublisher.exe  -domain 58

  • Run RTI Connext Launcher and in tools tab run Admin Console.

  • In Admin Console select View->Preferences and add file USER_ADMIN_CONSOLE_QOS_PROFILES.xml to “Files specifying QoS profiles”. Select “DemoLibrary:MicroAdministration” as QoS profile and manually join domain 58.  

  • At this point Admin Console should discover the running Micro publisher. To subscribe to the data published by the micro publisher, right click in the topic name “Example HelloWorld” and select “Subscribe”. Use file HelloWorld.xml as data type, select QoS profile “DemoLibrary::MicroDataVisualization”.
 

 

Routing Service

 

The configuration files needed by RTI Routing Service can be downloaded from here

Note: paths in file USER_ROUTING_SERVICE.xml are hardcoded. and they must be changed according to your local installation. 

Run Micro publisher in domain 58: .\objs\i86Win32VS2010\HelloPublisher.exe  -domain 58

Run Core subscriber in domain 59: .\objs\x64Win64VS2013\HelloWorld_subscriber.exe  59

Run RTI Connext Launcher and in services tab run Routing Service. Set file USER_ROUTING_SERVICE.xml as custom configuration file and select “DPSE_bridge_domain_58_and_domain_59” as configuration. When routing service is run, it will be routing all samples from the micro publisher in domain 58 to the core subscriber in domain 59.
 
 

 

Recorder/Replay

 

The configuration files needed can be downloaded from here.

Note: paths in configuration files are hardcoded. You need to change them accordingly.

Run RTI Connext Launcher and in services tab run Recording Service. Set file USER_RECORDING_SERVICE.xml as custom configuration file and select “recorderDPSE” as configuration.

 

 

Run Micro publisher in domain 58: .\objs\i86Win32VS2010\HelloPublisher.exe  -domain 58 

Record a few samples and afterwards stop the Micro publisher and Recorder Service.

Run Micro subscriber in domain 58: .\objs\i86Win32VS2010\HelloSubscriber.exe  -domain 58

Run RTI Connext Launcher and in services tab run Replay Service. Set file USER_REPLAY_SERVICE.xml as custom configuration file and select “replayDPSE” as configuration.

 

 

After Replay Service is started, the Micro subscriber application should received all recorded samples.