.. _docker_usage: Docker Installation and Usage ----------------------------- To run *eProsima DDS Suite* container, Docker is required. From a terminal run .. code-block:: bash sudo apt install docker.io To load this image into your Docker repository, from a terminal run .. code-block:: bash docker load -i ubuntu-eprosima-dds-suite:.tar *eProsima DDS Suite* Docker container can be run as follows: .. code-block:: bash xhost local:root docker run \ -it \ --privileged \ -e DISPLAY=$DISPLAY \ -v /tmp/.X11-unix:/tmp/.X11-unix \ ubuntu-eprosima-dds-suite: Each feature can be run from the resulting Bash Shell. .. _eprosima_dds_suite_examples: Fast DDS Examples ----------------- Included in this Docker container is a set of binary examples that showcase several functionalities of the *Fast DDS* library. These examples' path can be accessed from a terminal by typing .. code-block:: bash goToExamples This will change the working directory to a location containing several examples, both for DDS and RTPS. Below are the steps to launch two such examples. Hello World Example ^^^^^^^^^^^^^^^^^^^ This is a minimal example that will perform a Publisher/Subscriber match and start sending samples. .. code-block:: bash goToExamples cd HelloWorldExample/bin tmux new-session \ "./HelloWorldExample publisher 0 1000" \; \ split-window "./HelloWorldExample subscriber" \; \ select-layout even-vertical This example is not constrained to the current image instance, meaning that it is possible to run several instances of this container to check the communication between them. From one terminal you could launch an image and, on the presented shell, run: .. code-block:: bash goToExamples cd HelloWorldExample/bin ./HelloWorldExample publisher And then from another terminal with another instance run the following: .. code-block:: bash goToExamples cd HelloWorldExample/bin ./HelloWorldExample subscriber Benchmark Example ^^^^^^^^^^^^^^^^^ This example creates either a Publisher or a Subscriber and, after a successful match, starts sending samples. After a few seconds the process that launched the Publisher will show a report with the number of samples transmitted. On the subscriber side, run: .. code-block:: bash goToExamples cd Benchmark/bin ./Benchmark subscriber udp On the publisher side, run: .. code-block:: bash goToExamples cd Benchmark/bin ./Benchmark publisher udp .. _eprosima_dds_suite_qos_profiles_manager: Fast DDS QoS Profiles Manager ----------------------------- Fast DDS QoS Profiles Manager CLI can be directly called in the Docker container. Please, run the following command to display the CLI usage: .. code-block:: bash fastddsqosprof -h *Fast DDS QoS Profiles Manager CLI* User Manual can be located on the `Fast DDS QoS Profiles Manager documentation `_. .. _eprosima_dds_suite_shapes_demo: Shapes Demo ----------- To launch the *Shapes Demo*, from a terminal run: .. code-block:: bash ShapesDemo *eProsima Shapes Demo* usage information can be found on the `Shapes Demo documentation `_. .. _eprosima_dds_suite_monitor: Fast DDS Monitor ---------------- To launch the *Fast DDS Monitor*, from a terminal run: .. code-block:: bash fastdds_monitor *eProsima Fast DDS Monitor* User Manual can be located on the `Fast DDS Monitor documentation `_. .. _eprosima_dds_router: DDS Router ---------- In this example the DDS Router is configured to communicate a publisher and subscriber running in different DDS Domains. Run the following command to create the DDS Router *yaml* configuration file (``/config.yml``). .. code-block:: bash echo "version: v2.0 participants: - name: simple_dds_participant_0 kind: local domain: 0 - name: simple_dds_participant_1 kind: local domain: 1" > /config.yml Then execute the following command to run the Publisher in Domain 0, the Subscriber in Domain 1, and the DDS Router communicating both Domains. .. code-block:: bash goToExamples cd DDS/BasicConfigurationExample/bin tmux new-session \ "ddsrouter --config-path /config.yml" \; \ split-window -h "./BasicConfigurationExample publisher --domain 0 --interval 1000 --transport udp" \; \ split-window -v "./BasicConfigurationExample subscriber --domain 1 --transport udp" .. _micro_xrce_dds: eProsima Micro XRCE-DDS ----------------------- To launch the *Micro XRCE-DDS Agent*, from a terminal run: .. code-block:: bash MicroXRCEAgent udp4 -p 2019 -r /root/agent.refs & With the Agent started, you can now run the *Shapes Demo* application: .. code-block:: bash ShapesDemo & And launch the ShapeDemoClient, a demo client used to send data to *Shapes Demo* via the *Micro XRCE-DDS Agent*. .. code-block:: bash ShapeDemoClient --udp4 127.0.0.1 2019 Inside that client, you can now follow the steps detailed in the `eProsima XRCE-DDS Shapes Demo page `_ to send data to *Shapes Demo*. .. _plotjuggler_eprosima_edition: PlotJuggler eProsima Edition ---------------------------- To launch the PlotJuggler eProsima Edition, from a terminal run: .. code-block:: bash $ plotjuggler eProsima PlotJuggler eProsima Edition usage information can be found on the `PlotJuggler eProsima Edition User Manual `_. .. _eprosima_dds_record_replay: DDS Record & Replay ------------------- DDS Record & Replay is composed of two different tools: DDS Recorder and DDS Replayer. DDS Recorder allows to record DDS traffic in a specific domain, storing all data in an MCAP file. To launch DDS Recorder, from a terminal run: .. code-block:: bash $ ddsrecorder Recorded data can then be inspected through visualization applications such as `Foxglove Studio `_. It is also possible to play data back in the same domain or a different one by leveraging DDS Replayer. To launch DDS Replayer, from a terminal run: .. code-block:: bash $ ddsreplayer -i my_data.mcap For more information on how to configure and use DDS Record & Replay, please refer to `DDS Record & Replay documentation website `_. .. _eprosima_fast_dds_spy: Fast DDS Spy ------------ To launch Fast DDS Spy, from a terminal run: .. code-block:: bash $ fastddsspy Fast DDS Spy usage information can be found on the `Fast DDS Spy User Manual `_.