首页 > 其他分享 >[FASTDDS]03-hello_fastdds

[FASTDDS]03-hello_fastdds

时间:2023-03-11 15:00:54浏览次数:40  
标签:03 DDS FASTDDS FAST export PATH ROOT hello

hello-world-fastdds

本章我们运行第一个fastdds示例——hello-world-fastdds。步骤如下:

    1. 创建消息.IDL文件
    1. 使用fastddsgen生成消息对应的源文件
    1. 编译、运行示例

创建消息文件

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文件,增加相关库的查找路径

# 这三个是必要的,因为
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

标签:03,DDS,FASTDDS,FAST,export,PATH,ROOT,hello
From: https://blog.51cto.com/u_6650004/6114606

相关文章

  • 【230312PH-1】如图,物体重700N,动滑轮重100N,站在地上的人拉住绳子的一端,使物体处于静止
    ......
  • test20230304考试总结(2023春 · 字符串)
    前言赛时得分明细:ABCDTotalRank1001000702702C题如此说道:字符串没有学好的报应!!A.P4391[BOI2009]RadioTransmission无线传输题面给定一个字......
  • 03-变量和数据类型
    变量和数据类型所有定义的变量都存在内存中,定义变量需要内存空间,不同类型的变量需要的内存空间是不同的数据类型作用:告诉编译器,我这个数据在内存中需要多大的空间,编......
  • lc203.移除链表元素
    题目给你一个链表的头节点head和一个整数val,请你删除链表中所有满足Node.val==val的节点,并返回新的头节点。示例输入:head=[1,2,6,3,4,5,6],val=6输出:[......
  • 连网技术与网络管理 2023-03-11
    交换机DHCP防护,防止一个局域网里面,有2个DHCP误接入第二个路由器,就会导致多个DHCP.DHCP是应用层的协议  Wireshark分析DHCP_琳小白的博客-CSDN博客 IP地址,网络地......
  • Nginx基础 - 03基本配置
     一、Nginx配置文件结构Nginx主配置文件/etc/nginx/nginx.conf是一个纯文本类型的文件。整个配置文件是以区块的形式组织的。一般,每个区块以一对大括号{}来表示开始于......
  • [Go语言Web03]GORM数据库操作
    1.GORM连接MySQL1.1ORM1.1.1什么是ORM1.1.2ORM优缺点优点:提高开发效率缺点:牺牲执行性能牺牲灵活性弱化SQL能力1.2GROM官方文档执行下面命令安装GRO......
  • 2023.03.11.函数重载,引用等
    程序生成的过程:1.预处理:头文件的展开宏的替换预处理指令解析去掉注释2.编译:预处理后文件生成汇编文件.asm(汇编代码)词法解析,语法解析语义分析优化3.汇编:汇编文件进一......
  • 2023.03.11.命名空间
    c++命名空间为了区分不同库中相同名称的函数、类、变量等命名空间的定义使用关键字namespace,后跟命名空间的名称,如下所示:namespacenamespace_name{//代码声明}为......
  • 程序设计应用 2023-03-11
     DjangodoessupporttheModel-View-Controller(MVC)architecturalpattern.However,DjangousesaslightlydifferentapproachcalledModel-View-Template(MV......