3.3. Building Connext Micro with compatibility for Connext Cert

RTI Connext Micro can be compiled to only include features that are available or planned for RTI Connext Cert. This is useful to enable the development of a safety-certified project using Connext Micro before certification evidence for Connext Cert is available. Once Connext Cert certification is available, the transition from Connext Micro to Connext Cert typically requires few changes in the application. The Connext Micro Cert-compatibility profile refers to the subset of Connext Micro that is feature-comparable to Connext Cert.

Warning

Please note that this does not mean that certification evidence is provided for Connext Micro for any of these features or that using the Cert-compatibility profile constitutes safety. Please contact RTI for further information about Connext Cert and certification evidence.

When compiling Connext Micro with compatibility for Connext Cert, the following restrictions apply:

  • The C++ API is not supported

  • Only Dynamic Participant Static Endpoint (DPSE) discovery is available.

  • Memory deallocation is not possible

  • Any API that deallocates memory is not supported. In other words, any API whose name includes “finalize”, “free”, or “delete” is not supported (such as DDS_DomainParticipantFactory_delete_participant(), DDS_DomainParticipantQos_finalize(), or OSAPI_Heap_free())

  • POSIX®-compliant systems (Linux, macOS, QNX, etc.) and Windows systems are supported

  • Only one library, librti_me, is built. While Connext Micro consists of different libraries for discovery, reader and writer history, etc, Connext Cert consists of only one library

  • Code generated by the Connext Micro code generator is compatible with Connext Cert, but the code must be generated with the code generator using the -interpreted 0 option

  • The Log module is only available in the debug build

  • The UDP transport must be configured statically by using the API UDP_InterfaceTable_add_entry() and setting UDP_InterfaceFactoryProperty.disable_auto_interface_config equal to RTI_TRUE

  • OSAPI_Thread_sleep() is not available

  • Batching reception is not supported

  • UDP Transformations are not supported

  • The Zero Copy transport is not supported

  • The shared memory transport is not supported

  • The Property, User Data, and Partition Qos APIs are available in the Connext Micro Cert-compatibility profile, but are not yet available in Connext Cert

3.3.1. Compiling with compatibility for Connext Cert

To compile Connext Micro with the Cert-compatibility profile, you must use one of the available CERT architectures. To get a list of available CERT architectures, please use the following command:

cd <rti_me install directory>
resource/scripts/rtime-make --list

Architectures ending in CERT (e.g, x64Linux5gcc12.3.0CERT) are representative of Cert-compatibility profiles. To compile, use the following command:

cd <rti_me install directory>
resource/scripts/rtime-make --target x64Linux5gcc12.3.0CERT <other options>

The library is generated in the directory lib/x64Linux5gcc12.3.0CERT.

3.3.2. Compiling Applications with compatibility for Connext Cert

To compile an application with compatibility for Connext Cert, the application must be compiled with the RTI_CERT=1 preprocessor flag. This can be achieved with one of the following methods:

  • If a CMakeLists.txt file generated with rtiddsgen is used, pass -DRTIME_CERT=true to either rtime-make or cmake.

  • Pass -DRTI_CERT=1 directly to the C preprocessor

With rtime-make on Linux or macOS:

resource/scripts/rtime-make -target x64Linux5gcc12.3.0CERT -DRTIME_CERT=true --src-dir .  <other options>

With rtime-make On Windows:

resource/scripts/rtime-make --target x64Win64VS2015CERT -DRTIME_CERT_eq_true --src-dir .  <other options>

Please refer to Example Generation for more information about generating examples.