7. Working with Connext Micro and Connext Professional

In some cases, it may be necessary to write an application that is compiled against both Connext Micro and Connext Professional. In general this is not easy to do because Connext Micro supports a very limited set of features compared to Connext Professional.

However, due to the nature of the DDS API and the philosophy of declaring behavior through QoS profiles instead of using different APIs, it may be possible to share common code. In particular, Connext Professional supports configuration through QoS profile files, which eases the job of writing portable code.

Please refer to the Introduction for an overview of features and what is supported by Connext Micro.

7.1. Development Environment

There are no conflicts between Connext Micro and Connext Professional with respect to library names, header files, etc. It is advisable to keep the two installations separate, which is the normal case.

Connext Micro uses the environment variable RTIMEHOME to locate the root of the Connext Micro installation.

Connext Professional uses the environment variable NDDSHOME to locate the root of the Connext Professional installation.

7.2. Non-standard APIs

The DDS specification omits many APIs and policies necessary to configure a DDS application, such as transport, discovery, memory, logging, etc. In general, Connext Micro and Connext Professional do not share APIs for these functions.

It is recommended to configure Connext Professional using QoS profiles as much as possible.

7.3. QoS Policies

QoS policies defined by the DDS standard behave the same between Connext Micro and Connext Professional. However, note that Connext Micro does not always support all the values for a policy and in particular unlimited resources are not supported.

Unsupported QoS policies are the most likely reason for not being able to switch between Connext Micro and Connext Professional.

7.4. Standard APIs

APIs that are defined by the standard behave the same between Connext Micro and Connext Professional.

7.5. IDL Files

Connext Micro and Connext Professional use the same IDL compiler (rtiddsgen) and Connext Micro typically ships with the latest version. However, Connext Micro and Connext Professional use different templates to generate code and it is not possible to share the generated code. Thus, while the same IDL can be used, the generated output must be saved in different locations.

7.6. Interoperability

Connext Micro and Connext Professional interoperate on the wire unless noted otherwise.

7.6.1. Discovery

When trying to establish communication between an Connext Micro application that uses the Dynamic Participant / Static Endpoint (DPSE) discovery module and an RTI product based on Connext Professional, every participant in the DDS system must be configured with a unique participant name. While the static discovery functionality provided by Connext Professional allows participants on different hosts to share the same name, Connext Micro requires every participant to have a different name to help keep the complexity of its implementation suitable for smaller targets.

Also, Connext DataWriters that are configured to send compressed data will not match with Connext Micro DataReaders, since Connext Micro does not support sending or receiving compressed data. See DATA_REPRESENTATION QosPolicy in the Core Libraries User’s Manual for more information on the Connext compression feature.

7.6.2. Transports

When interoperating with Connext Professional, Connext Micro must specify at least one unicast transport for each DataWriter and DataReader, either from DDS_DomainParticipantQos::transports or the endpoint DDS_DataReaderQos::transport and DDS_DataWriterQos::transport, as it expects to use the unicast transport’s RTPS port mapping to determine automatic participant IDs if needed. This also affects Connext Micro itself, where participant IDs must be set manually if only multicast transports are enabled.

Also, when interoperating with Connext Professional, only one multicast transport can be specified per DataReader of Connext Micro.

7.7. Connext Tools

In general, Connext Micro is compatible with RTI tools and other products. The following sections provide additional information for each product.

7.7.1. Admin Console

Admin Console can discover and display Connext Micro applications that use full dynamic discovery (DPDE). When using static discovery (DPSE), it is required to use the Limited Bandwidth Endpoint Discovery (LBED) that is available as a separate product for Connext Professional. With the library a configuration file with the discovery configuration must be provided (just as in the case for products such as Routing Service, etc.). This is provided through the QoS XML file.

Data can be visualized from Connext Micro DataWriters. Keep in mind that Connext Micro does not currently distribute type information and the type information has to be provided through an XML file using the “Create Subscription” dialog. Unlike some other products, this information cannot be provided through the QoS XML file. To provide the data types to Admin Console, first run the code generator with the -convertToXml option:

rtiddsgen -convertToXml <file>

Then click on the “Load Data Types from XML file” hyperlink in the “Create Subscription” dialog and add the generated IDL file.

Other Features Supported:

  • Match analysis is supported.

  • Discovery-based QoS are shown.

The following resource-limits in Connext Micro must be incremented as follows when using Admin Console:

  • Add 24 to DDS_DomainParticipantResourceLimitsQosPolicy::remote_reader_allocation

  • Add 24 to DDS_DomainParticipantResourceLimitsQosPolicy::remote_writer_allocation

  • Add 1 to DDS_DomainParticipantResourceLimitsQosPolicy::remote_participant_allocation

  • Add 1 to DDS_DomainParticipantResourceLimitsQosPolicy::remote_participant_allocation if data-visualization is used

Connext Micro does not currently support any administration capabilities or services, and does not match with the Admin Console DataReaders and DataWriters. However, if matching DataReaders and DataWriters are created, e.g., by the application, the following resource must be updated:

  • Add 48 to DDS_DomainParticipantResourceLimitsQosPolicy::matching_writer_reader_pair_allocation

7.7.2. Distributed Logger

This product is not supported by Connext Micro.

7.7.3. LabVIEW

The LabVIEW toolkit uses Connext Professional, and it must be configured as any other Connext Professional application. A possible option is to use the builtin Connext Professional profile: BuiltinQosLib::Generic.ConnextMicroCompatibility.

7.7.4. Monitor

This product is not supported by Connext Micro.

7.7.5. Recording Service

7.7.5.1. RTI Recorder

RTI Recorder is compatible with Connext Micro in the following ways:

  • If static endpoint discovery is used, Recorder is compatible starting with version 5.1.0.3 and onwards.

  • If dynamic endpoint discovery is used, Recorder is compatible with Connext Micro the same way it is with any other DDS application.

  • In both cases, type information has to be provided via XML. Read Recording Data with RTI Connext Micro for more information.

7.7.5.2. RTI Replay

RTI Replay is compatible with Connext Micro in the following ways:

  • If static endpoint discovery is used, Replay is compatible starting with version 5.1.0.3 and onwards.

  • If dynamic endpoint discovery is used, Replay is compatible with Connext Micro the same way it is with any other DDS application.

  • In both cases, type information has to be provided via XML. Read Recording Data with RTI Connext Micro for more information on how to convert from IDL to XML.

7.7.5.3. RTI Converter

Databases recorded with Connext Micro contains no type information in the DCPSPublication table, but the type information can be provided via XML. Read Recording Data with RTI Connext Micro for more information on how to convert from IDL to XML.

7.7.6. Wireshark

Wireshark fully supports Connext Micro.

7.7.7. Persistence Service

Connext Micro only supports VOLATILE and TRANSIENT_LOCAL durability and does not support the use of Persistence Service.

7.7.8. Application Generation Using XML

An application defined in XML can be shared between Connext Micro and Connext Professional, with the limitations documented in Application Generation Using XML.