2.1.1. Fast DDS System Handle

The Fast DDS System Handle can be used for three main purposes:

  • Connection between a DDS application and an application running over a different middleware implementation. This is the classic use-case for Integration Service.

  • Connecting two DDS applications running under different Domain IDs.

  • Creating a TCP tunnel, by running an Integration Service instance on each of the machines you want to establish a communication between.

2.1.1.1. Dependencies

The only dependency of this System Handle is to have a Fast DDS installation (v2.0.0 or superior) in your system.

Note

The Fast DDS System Handle requires an installation of Fast DDS to work. The System Handle first looks into the system for a previous installation of Fast DDS v2.0.0 or superior. If it doesn’t find one, it downloads and installs its own version.

2.1.1.2. Configuration

Regarding the Fast DDS System Handle, there are several specific parameters which can be configured for the DDS middleware. All of these parameters are optional, and are suboptions of the main five sections:

  • systems: The system type must be fastdds. In addition to the type and types-from fields, the Fast DDS System Handle accepts the following specific configuration fields:

    systems:
        dds:
        type: fastdds
        participant:
            domain_id: 3
            file_path: <path_to_xml_profiles_file>.xml
            profile_name: fastdds-sh-participant-profile
    
    • participant: Allows to add a specific configuration for the Fast DDS DomainParticipant:

      • domain_id: Provides an easy way to change the Domain ID of the DDS entities created by the Fast DDS System Handle.

      • file_path: Path to an XML file, containing a configuration profile for the System Handle participant. More information about Fast DDS XML profiles and how to fully customize the properties of DDS entities through them is available here.

      • profile_name: Within the provided XML file, the name of the XML profile associated to the Integration Service Fast DDS System Handle participant.

2.1.1.3. Examples

There are several examples that you can find in this documentation in which the Fast DDS System Handle is employed in the communication process. Some of them are presented here:

2.1.1.4. Compilation flags

Besides the Global compilation flags available for the whole Integration Service product suite, there are some specific flags which apply only to the Fast DDS System Handle. They are listed below:

  • BUILD_FASTDDS_TESTS: Allows to specifically compile the Fast DDS System Handle unitary and integration tests. It is useful to avoid compiling each System Handle’section test suite present in the colcon workspace, which is what would happen if using the BUILD_TESTS flag, with the objective of minimizing building time. To use it, after making sure that the Fast DDS System Handle is present in your colcon workspace, execute the following command:

    ~/is_ws$ colcon build --cmake-args -DBUILD_FASTDDS_TESTS=ON
    

2.1.1.5. API Reference

The Integration Service API Reference constitutes an independent section within this documentation. To access the Fast DDS System Handle subsection, use this link.