Bridge between Micro XRCE-DDS clients and DDS
Micro XRCE-DDS Agents receive messages containing Operations from
Clients. Agents keep track of the Clients and the Micro XRCE-DDS
Entities they create. The Agent uses the Entities to interact with
DDS Global Data Space on behalf of the Client.
The communication between a Micro XRCE-DDS Client and a Micro
XRCE-DDS Agent supports three kind transport: UDP, TCP, or SerialPort.
While running Micro XRCE-DDS Agent will attend any received
request from your Micro XRCE-DDS Clients. Micro XRCE-DDS Agent
answers back with the result of a request each time a request is
attended.
The Agent supports being run by the user like this:
$ micro-xrce-dds-agent --help
In addition, the Agent supports running as a service that can be
enabled with:
$ snap set micro-xrce-dds-agent daemon=true
If the service is enabled, by default it uses the udp4
transport on
port 8888. The following parameters can be changed (these are
specific to the service, the micro-xrce-dds-agent
command simply
takes command-line arguments, but the capabilities are the same):
transport
. Supported transports are udp4
, udp6
, tcp4
,
tcp6
, serial
, and pseudoterminal
. Default is udp4
. Change
with:
$ snap set micro-xrce-dds-agent transport="new transport"
middleware
. Supported kinds of middleware are ced
, rtps
, and
dds
. Default is dds
. Change with:
$ snap set micro-xrce-dds-agent middleware="new middleware"
verbosity
. Supported verbosity levels are 0-6, defaulting to 4.
Change with:
$ snap set micro-xrce-dds-agent verbosity="selected verbosity"
discovery
. Enable or disable the discovery server. Defaults to
"false". Change with:
$ snap set micro-xrce-dds-agent discovery="true or false"
discovery-port
. Port on which the discovery server (see above)
listens. Defaults to 7400. Change with:
$ snap set micro-xrce-dds-agent discovery-port="selected port"
p2p-port
. Port to use for the P2P profile. Change with:
$ snap set micro-xrce-dds-agent p2p-port="selected port"
port
. Port on which the agent listens. Only applicable to one of
the UDP or TCP transports (see above). Defaults to 8888. Change with:
$ snap set micro-xrce-dds-agent port="selected port"
baudrate
. Baud rate to use when accessing serial ports. Only
applicable when using the serial
or pseudoterminal
transport.
Defaults to 115200. Change with:
$ snap set micro-xrce-dds-agent baudrate="baud rate"
device
. The serial device to use. Only applicable when using the
serial
or pseudoterminal
transport. Change with:
$ snap set micro-xrce-dds-agent device="device path"
When using the snap with a serial device, some steps need to be taken
in order to establish a successful connection:
Refresh your local installation of the snap core
package:
$ sudo snap refresh core --edge
Enable the hotplug feature and restart the snapd
daemon:
$ sudo snap set core experimental.hotplug=true
$ sudo systemctl restart snapd
After plugging the microcontroller to the serial port, execute
the snap interface serial-port
command. You should see something
like this:
name: serial-port
summary: allows accessing a specific serial port
plugs:
- micro-xrce-dds-agent
slots:
- snapd:cp2102cp2109uartbrid (allows accessing a specific serial port)
Connect your snap image to the desired serial port (replace accordingly):
$ snap connect micro-xrce-dds-agent:serial-port snapd:cp2102cp2109uartbrid
After this, you can execute your snap as usual,
using micro-xrce-dds-agent serial -d <serial-dev>
.