hello-world-fastdds 本章我们运行第一个 fastdds 示例—— hello-world-fastdds 。步骤如下: 创建 消息.IDL 文件 使用 fastddsgen 生成消息对应的源文件 编译、运行示例 创建消息文件 //hello_fastdds.I
hello-world-fastdds
本章我们运行第一个fastdds
示例——hello-world-fastdds
。步骤如下:
- 创建
消息.IDL
文件 - 使用
fastddsgen
生成消息对应的源文件 - 编译、运行示例
创建消息文件
//hello_fastdds.IDL
struct hello_world
{
string name;
int counter;
};
生成消息对应的源文件
fastddsgen
会在命令运行的文件夹下生成文件。
export PATH=${FAST_DDS_ROOT}/Fast-DDS-Gen/scripts:$PATH
fastddsgen -example CMake hello_fastdds.IDL
编译运行
修改编译脚本
修改CMake文件,增加相关库的查找路径
# 这三个是必要的,为了找到对应的库,我们将库安装在 $ENV{FAST_DDS_ROOT}/install 下
set(fastcdr_DIR $ENV{FAST_DDS_ROOT}/install/lib/cmake/fastcdr)
set(fastrtps_DIR $ENV{FAST_DDS_ROOT}/install/share/fastrtps/cmake)
set(foonathan_memory_DIR $ENV{FAST_DDS_ROOT}/install/lib/foonathan_memory/cmake)
编写编译脚本
#!/bin/bash
export FAST_DDS_ROOT=~/work/code/third_party/Fast-DDS-GIT
export LD_LIBRARY_PATH=${FAST_DDS_ROOT}/install/lib:$LD_LIBRARY_PATH
rm build -rf
DIR = $PWD
mkdir build && cd build && cmake ../ && make -j4
cd $DIR
运行程序
运行程序前,需要指定依赖库的查找路径,命令和运行结果分别如下:
运行发布者
export FAST_DDS_ROOT=~/work/code/third_party/Fast-DDS-GIT
export LD_LIBRARY_PATH=${FAST_DDS_ROOT}/install/lib:$LD_LIBRARY_PATH
./hello_fastdds publisher
# Starting
# hello_world DataWriter created.
# hello_world DataWriter waiting for DataReaders.
# DataWriter matched.
运行消费者
export FAST_DDS_ROOT=~/work/code/third_party/Fast-DDS-GIT
export LD_LIBRARY_PATH=${FAST_DDS_ROOT}/install/lib:$LD_LIBRARY_PATH
./hello_fastdds subscriber
# Starting
# Waiting for Data, press Enter to stop the DataReader.
# Subscriber matched.
# Sample received, count=1