一、背景
XRCE-DDS使用Agent-Client的模式解决部署平台的资源紧张的问题。
Client做为客户端,一般可以部署在MCU、linux等平台上。
本文主要先将Client部署在ubuntu桌面平台上,结合上文的Agent的部署,先使用XRCE-DDS来,然后载将Client移植到MCU上。
二、XRCE-DDS Client编译
结合上文的ubuntu 22.04环境,运行终端
运行下列命令,下载代码
git clone https://github.com/eProsima/Micro-XRCE-DDS-Client.git
然后进入到代码目录
cd Micro-XRCE-DDS-Client
创建build目录并进入build目录
mkdir build && cd build
使用cmake生成makefile
cmake .. -DUCLIENT_BUILD_EXAMPLES=ON
使用make编译
make
编译完成后的结果
编译完成后在example文件夹生成了示例的可执行文件
三、XRCE-DDS通信实验
1、运行Agent,使用UDP模式,监听2019端口
cd /usr/local/bin && MicroXRCEAgent udp4 -p 2019
Agent启动后
2、进入第二章节生成的example可执行目录中,并进入PublishHelloWorld发布者例程中
3、运行发布者例程
运行后Agent代理上显示PublishHelloWorld发布连接信息
4、进入第二章节生成的example可执行目录中,并进入SubscribeHelloWorld订阅者例程中
5、运行SubscribeHelloWorld订阅者例程
运行后,Agent代理上显示SubscribeHelloWorld订阅者连接信息
6、订阅者和发布者同时连接上后,相同topic的实体即可进行数据传递
左侧是PublishHelloWorld发布者例程发布消息,右侧是SubscribeHelloWorld订阅者例程接收消息