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()
, orOSAPI_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
optionThe 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 settingUDP_InterfaceFactoryProperty.disable_auto_interface_config
equal toRTI_TRUE
OSAPI_Thread_sleep()
is not availableBatching 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 eitherrtime-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.