Skip to content

Commit 2148565

Browse files
authored
Update Fast DDS Suite documentation (#1315)
Signed-off-by: Raul Sanchez-Mateos <raul@eprosima.com>
1 parent 958b430 commit 2148565

1 file changed

Lines changed: 130 additions & 72 deletions

File tree

docs/docker/fastdds_suite/fast_dds_suite.rst

Lines changed: 130 additions & 72 deletions
Original file line numberDiff line numberDiff line change
@@ -7,55 +7,63 @@
77
Fast DDS Suite Image
88
====================
99

10-
This Docker image contains the complete Fast DDS suite. This includes:
11-
12-
- :ref:`eProsima Fast DDS libraries and examples <fast_dds_suite_examples>`: Fast DDS libraries bundled with several
13-
examples that showcase a variety of capabilities of eProsima's Fast DDS implementation.
14-
15-
- :ref:`Shapes Demo <fast_dds_suite_shapes_demo>`: eProsima Shapes Demo is an application in which Publishers and
16-
Subscribers are shapes of different colors and sizes moving on a board. Each shape refers to its own topic: Square,
17-
Triangle or Circle. A single instance of the eProsima Shapes Demo can publish on or subscribe to several topics at
18-
a time.
10+
eProsima provides the *Fast DDS Suite* Docker image for those who want a Docker image with a set of eProsima's tools
11+
and libraries running on an Ubuntu platform.
12+
It can be downloaded from `eProsima's downloads page <https://eprosima.com/index.php/downloads-all>`_.
1913

20-
You can read more about this application on the `Shapes Demo documentation page <https://eprosima-shapes-demo.readthedocs.io/>`_.
21-
22-
- :ref:`DDS Monitor <fast_dds_suite_monitor>`: eProsima DDS Monitor is a graphical desktop application aimed
23-
at monitoring DDS environments deployed using the *eProsima Fast DDS* library. Thus, the user can monitor in real
24-
time the status of publication/subscription communications between DDS entities. They can also choose from a wide
25-
variety of communication parameters to be measured (latency, throughput, packet loss, etc.), as well as record and
26-
compute in real time statistical measurements on these parameters (mean, variance, standard deviation, etc.).
14+
This Docker image contains the complete Fast DDS suite. This includes:
2715

28-
You can read more about this application on the `DDS Monitor documentation page
16+
- :ref:`eProsima Fast DDS library and examples <eprosima_dds_suite_examples>`: *Fast DDS* library bundled with several
17+
examples that showcase a variety of capabilities of eProsima's *Fast DDS* implementation.
18+
For more information about *Fast DDS* please refer to `Fast DDS documentation page
19+
<https://fast-dds.docs.eprosima.com/>`_.
20+
21+
- :ref:`DDS Monitor <eprosima_dds_suite_monitor>`: *eProsima DDS Monitor* is a graphical desktop application
22+
aimed at monitoring DDS environments deployed using the *eProsima Fast DDS* library, which contains an open-source
23+
version of the *DDS Monitor*.
24+
Thus, the user can monitor the real time status of publication/subscription communications between DDS entities.
25+
They can also choose which communication parameters are to be measured (latency, throughput,
26+
packet loss, etc.), as well as record and compute real time statistical measurements on these parameters
27+
(mean, variance, standard deviation, etc.).
28+
For more information about *DDS Monitor* please refer to `DDS Monitor documentation page
2929
<https://dds-monitor.docs.eprosima.com/>`_.
3030

31-
- :ref:`DDS Router <fast_dds_suite_dds_router>`: eProsima DDS Router is an end-user software application that enables
32-
the connection of distributed DDS networks.
31+
- :ref:`DDS Router <eprosima_dds_router>`: *eProsima DDS Router* is an end-user software application that enables the
32+
connection of distributed DDS networks.
3333
That is, DDS entities such as publishers and subscribers deployed in one geographic location and using a dedicated
3434
local network will be able to communicate with other DDS entities deployed in different geographic areas on their own
3535
dedicated local networks as if they were all on the same network through the use of eProsima DDS Router.
36-
This is achieved by deploying a DDS Router on an edge device of each local network so that the DDS Router routes DDS
37-
traffic from one network to the other through WAN communication.
38-
39-
You can read more about this application on the
36+
For more information about *DDS Router* please refer to
4037
`DDS Router documentation website <https://eprosima-dds-router.readthedocs.io>`_.
4138

42-
- :ref:`Plotjuggler eProsima Edition <fast_dds_suite_plotjuggler>`: eProsima Fast DDS Visualizer Plugin is a plugin
43-
for the *PlotJuggler* application.
44-
PlotJuggler is a graphical desktop application providing visualization features
45-
of data series, time series, X-Y plots.
46-
It also adds data management features, such as
47-
data import and export, custom and built-in data manipulation functions,
48-
data series merges, etc.
49-
Also, this software supports many different layouts, with dynamic, rich and user-friendly customization.
50-
51-
You can read more about this application on the
52-
`Plotjuggler eProsima Edition documentation website <https://plotjuggler-fastdds-plugins.readthedocs.io/en/latest/>`_.
39+
- :ref:`DDS Record & Replay <eprosima_dds_record_replay>`:
40+
*eProsima DDS Record & Replay* is an end-user software application that efficiently saves DDS data published into
41+
a DDS environment in a MCAP or SQLite format database.
42+
Thus, the exact playback of the recorded network events is possible as the data is linked to the timestamp at which
43+
the original data was published.
44+
For more information about *eProsima DDS Record & Replay* please refer to
45+
`DDS Record & Replay documentation website <https://dds-recorder.readthedocs.io>`_.
46+
47+
- :ref:`Fast DDS Spy <eprosima_fast_dds_spy>`:
48+
*eProsima Fast DDS Spy* is a CLI interactive tool that allows to introspect a DDS network in human readable format.
49+
It is possible to query the network about the DomainParticipants connected, their endpoints
50+
(DataWriters and DataReaders) and the topics they communicate in, as well as see the data being sent through the
51+
network.
52+
For more information about *eProsima Fast DDS Spy* please refer to
53+
`Fast DDS Spy documentation website <https://fast-dds-spy.readthedocs.io>`_.
54+
55+
- :ref:`Shapes Demo <eprosima_dds_suite_shapes_demo>`: *eProsima Shapes Demo* is an application in which Publishers and
56+
Subscribers create and display shapes of different colors and sizes moving on a board.
57+
Each shape refers to its own topic: Square, Triangle or Circle.
58+
A single instance of the *eProsima Shapes Demo* can publish on and/or subscribe to several topics at a time.
59+
For more information about *Shapes Demo* please refer to `Shapes Demo documentation page
60+
<https://eprosima-shapes-demo.readthedocs.io/>`_.
5361

5462
To load this image into your Docker repository, from a terminal run
5563

5664
.. code-block:: bash
5765
58-
docker load -i "ubuntu-fastdds-suite <FastDDS-Version>.tar"
66+
docker load -i "ubuntu-fastdds-suite_<fastdds-version>.tar"
5967
6068
You can run this Docker container as follows
6169

@@ -69,18 +77,21 @@ From the resulting Bash Shell you can run each feature.
6977

7078
.. _fast_dds_suite_examples:
7179

80+
.. _eprosima_dds_suite_examples:
81+
7282
Fast DDS Examples
7383
-----------------
7484

7585
Included in this Docker container is a set of binary examples that showcase several functionalities of the
76-
Fast DDS libraries. These examples' path can be accessed from a terminal by typing
86+
*Fast DDS* library.
87+
These examples' path can be accessed from a terminal by typing
7788

7889
.. code-block:: bash
7990
8091
goToExamples
8192
82-
From this folder you can access all examples, both for DDS and RTPS. We detail the steps to launch two such
83-
examples below.
93+
This will change the working directory to a location containing several examples, both for DDS and RTPS.
94+
Below are the steps to launch two such examples.
8495

8596
Hello World Example
8697
^^^^^^^^^^^^^^^^^^^
@@ -90,61 +101,72 @@ This is a minimal example that will perform a Publisher/Subscriber match and sta
90101
.. code-block:: bash
91102
92103
goToExamples
93-
cd hello_world/bin
94-
tmux new-session "./hello_world publisher" \; \
95-
split-window "./hello_world subscriber" \; \
104+
cd HelloWorldExample/bin
105+
tmux new-session \
106+
"./HelloWorldExample publisher 0 1000" \; \
107+
split-window "./HelloWorldExample subscriber" \; \
96108
select-layout even-vertical
97109
98-
This example is not constrained to the current instance. It's possible to run several instances of this
99-
container to check the communication between them by running the following from each container.
110+
This example is not constrained to the current image instance, meaning that it is possible to run several instances of
111+
this container to check the communication between them.
112+
From one terminal you could launch an image and, on the presented shell, run:
100113

101114
.. code-block:: bash
102115
103116
goToExamples
104-
cd hello_world/bin
105-
./hello_world publisher
117+
cd HelloWorldExample/bin
118+
./HelloWorldExample publisher
106119
107-
or
120+
And then from another terminal with another instance run the following:
108121

109122
.. code-block:: bash
110123
111124
goToExamples
112-
cd hello_world/bin
113-
./hello_world subscriber
125+
cd HelloWorldExample/bin
126+
./HelloWorldExample subscriber
114127
115-
.. _fast_dds_suite_shapes_demo:
128+
Benchmark Example
129+
^^^^^^^^^^^^^^^^^
116130

117-
Shapes Demo
118-
-----------
131+
This example creates either a Publisher or a Subscriber and, after a successful match, starts sending samples.
132+
After a few seconds the process that launched the Publisher will show a report with the number of samples transmitted.
119133

120-
To launch the Shapes Demo, from a terminal run
134+
On the subscriber side, run:
121135

122136
.. code-block:: bash
123137
124-
ShapesDemo
138+
goToExamples
139+
cd Benchmark/bin
140+
./Benchmark subscriber udp
125141
126-
eProsima Shapes Demo usage information can be found on the `Shapes Demo documentation
127-
<https://eprosima-shapes-demo.readthedocs.io/en/latest/first_steps/first_steps.html>`_.
142+
On the publisher side, run:
143+
144+
.. code-block:: bash
145+
146+
goToExamples
147+
cd Benchmark/bin
148+
./Benchmark publisher udp
128149
129-
.. _fast_dds_suite_monitor:
150+
.. _eprosima_dds_suite_monitor:
130151

131152
DDS Monitor
132153
-----------
133154

134-
To launch DDS Monitor, from a terminal run
155+
To launch *DDS Monitor*, from a terminal run:
135156

136157
.. code-block:: bash
137158
138159
dds_monitor
139160
140-
eProsima DDS Monitor user manual can be found on the `DDS Monitor documentation
161+
*eProsima DDS Monitor* User Manual can be located on the `DDS Monitor documentation
141162
<https://dds-monitor.docs.eprosima.com/en/latest/rst/user_manual/initialize_monitoring.html>`_.
142163

143-
.. _fast_dds_suite_dds_router:
164+
.. _eprosima_dds_router:
144165

145166
DDS Router
146167
----------
147-
This example configures a DDS Router to communicate a publisher and subscriber running in different DDS Domains.
168+
169+
In this example the DDS Router is configured to communicate a publisher and subscriber running in different DDS Domains.
148170

149171
Run the following command to create the DDS Router *yaml* configuration file (``/config.yml``).
150172

@@ -165,25 +187,61 @@ DDS Router communicating both Domains.
165187
.. code-block:: bash
166188
167189
goToExamples
168-
cd configuration/bin
190+
cd DDS/BasicConfigurationExample/bin
169191
tmux new-session \
170192
"ddsrouter --config-path /config.yml" \; \
171-
split-window -h "./configuration publisher --domain 0 --interval 1000 --transport udp" \; \
172-
split-window -v "./configuration subscriber --domain 1 --transport udp"
193+
split-window -h "./BasicConfigurationExample publisher --domain 0 --interval 1000 --transport udp" \; \
194+
split-window -v "./BasicConfigurationExample subscriber --domain 1 --transport udp"
195+
196+
.. _eprosima_dds_record_replay:
173197

174-
eProsima DDS Router usage information can be found on the `DDS Router documentation
175-
<https://eprosima-dds-router.readthedocs.io/en/latest/rst/getting_started/project_overview.html>`_.
198+
DDS Record & Replay
199+
-------------------
176200

177-
.. _fast_dds_suite_plotjuggler:
201+
DDS Record & Replay is composed of two different tools: DDS Recorder and DDS Replayer.
202+
DDS Recorder allows to record DDS traffic in a specific domain, storing all data in an MCAP file.
203+
To launch DDS Recorder, from a terminal run:
178204

179-
PlotJuggler eProsima Edition
180-
----------------------------
205+
.. code-block:: bash
206+
207+
$ ddsrecorder
208+
209+
Recorded data can then be inspected through visualization applications such as `Foxglove Studio
210+
<https://foxglove.dev/>`_.
211+
It is also possible to play data back in the same domain or a different one by leveraging DDS Replayer.
212+
To launch DDS Replayer, from a terminal run:
213+
214+
.. code-block:: bash
215+
216+
$ ddsreplayer -i my_data.mcap
217+
218+
For more information on how to configure and use DDS Record & Replay, please refer to
219+
`DDS Record & Replay documentation website <https://dds-recorder.readthedocs.io>`_.
220+
221+
.. _eprosima_fast_dds_spy:
222+
223+
Fast DDS Spy
224+
------------
225+
226+
To launch Fast DDS Spy, from a terminal run:
181227

182-
To launch the PlotJuggler eProsima Edition, from a terminal run
228+
.. code-block:: bash
229+
230+
$ fastddsspy
231+
232+
Fast DDS Spy usage information can be found on the `Fast DDS Spy User Manual
233+
<https://fast-dds-spy.readthedocs.io/en/latest/rst/user_manual/usage_example.html/>`_.
234+
235+
.. _eprosima_dds_suite_shapes_demo:
236+
237+
Shapes Demo
238+
-----------
239+
240+
To launch the *Shapes Demo*, from a terminal run:
183241

184242
.. code-block:: bash
185243
186-
plotjuggler
244+
ShapesDemo
187245
188-
eProsima PlotJuggler eProsima Edition usage information can be located on the `PlotJuggler eProsima Edition User Manual
189-
<https://plotjuggler-fastdds-plugins.readthedocs.io/en/latest/>`_.
246+
*eProsima Shapes Demo* usage information can be found on the `Shapes Demo documentation
247+
<https://eprosima-shapes-demo.readthedocs.io/en/latest/first_steps/first_steps.html>`_.

0 commit comments

Comments
 (0)