5.9. Building Connext Micro with compatibility for Connext Cert

It is possible to compile Connext Micro to support only the same set of APIs and features as Connext Cert. This is useful to enable the development of a safety-certified project using Connext Micro before the certification of Connext Cert is completed. Once Connext Cert certification is finished, it will be easier to switch from Connext Micro to Connext Cert if Connext Micro has been compiled with compatibility for Connext Cert.

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

  • The C++ API is not supported.

  • Dynamic Participant Dynamic Endpoint (DPDE) discovery is not compiled by default. To make application development easier, DPDE can be enabled (any application using this discovery cannot be certified). DPDE discovery is not certified.

  • 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(), OSAPI_Heap_free()).

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

  • Only static libraries are compiled. Dynamic libraries are not supported.

  • Only one static library 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 again with the Connext Cert code generator.

  • The Log module is only available in the debug build.

  • The UDP transport shall 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.

To compile Connext Micro with compatibility with Connext Cert, you only need to set the CMake flag RTIME_CERT when compiling. For example, the following command compiles Connext Micro on a Linux system with Connext Cert compatibility:

resource/scripts/rtime-make --target Linux --name x64Linux4gcc9.3.0
    --build --config Debug -DRTIME_CERT=1

The CMake flag RTIME_CERT instructs the build system to build Connext Micro with Connext Cert compatibility. In the previous example, a 64-bit debug library is generated in the directory lib/x64Linux4gcc9.3.0.

Instead of using the flag -DRTIME_CERT=1, it is also possible to add the suffix “_cert” to the build name, and the build system will automatically set the RTIME_CERT flag. For example:

resource/scripts/rtime-make --target Linux --name
    x64Linux4gcc9.3.0_cert --build --config Release

The previous command compiles a 64-bit release library in the directory lib/x64Linux4gcc9.3.0_cert.

As mentioned earlier, it is possible to enable DPDE (Dynamic Participant Dynamic Endpoint) discovery, but this discovery is not certified so any application using it cannot be certified. To enable DPDE discovery when building Connext Micro with Connext Cert compatibility, simply add the following flag when compiling: -DRTIME_EXCLUDE_DPDE=0.