数据分发服务 (DDS)及Fast DDS环境搭建

2 篇文章 0 订阅

1. 数据分发服务 (DDS)

数据分发服务 (DDS)是一种以 数据为中心的通信协议,用于分布式软件应用程序通信。它描述了支持数据提供者和数据消费者之间通信的通信应用程序编程接口 (API) 和通信语义。

由于它是一个以数据为中心的发布订阅 (DCPS) 模型,因此在其实现中定义了三个关键应用实体:

  • 发布实体,定义信息生成对象及其属性;

  • 订阅实体,它定义了信息消费对象及其属性;

  • 配置实体,定义作为主题传输的信息类型,并使用其服务质量 (QoS) 属性创建发布者和订阅者,确保上述实体的正确性能。

DDS 使用 QoS 来定义 DDS 实体的行为特征。QoS 由单独的 QoS 策略(源自 QoSPolicy 的类型的对象)组成。这些在Policy中描述。

2. eProsima Fast DDS

eProsima Fast DDSDDS(数据分发服务)规范的 C++ 实现,该规范由对象管理组 (OMG)定义。eProsima Fast DDS库提供应用程序编程接口 (API) 和通信协议,用于部署以数据为中心的发布者 - 订阅者 (DCPS) 模型,目的是在实时系统之间建立高效可靠的信息分发。 eProsima 快速 DDS在资源处理方面是可预测的、可扩展的、灵活的和高效的。为了满足这些要求,它使用类型化接口并依赖于多对多分布式网络范式,该范式巧妙地允许通信的发布方和订阅方分离。

eProsima Fast DDS包括:

  1. DDS API实现。
  2. Fast DDS-Gen,一种用于将类型化接口与中间件实现桥接的生成工具。
  3. 底层RTPS有线协议实现。

支持协议:

3. 环境搭建

3.1 windows安装

3.1.1 二进制安装

支持WINDOW二进制安装,支持源码编译安装,这种方法最简单,也最方便。

https://www.eprosima.com/index.php/downloads-all

3.1.2 从源码安装

3.1.2.1 安装choco

从powershell中输入以下

Set-ExecutionPolicy Bypass -Scope Process -Force; [System.Net.ServicePointManager]::SecurityProtocol = [System.Net.ServicePointManager]::SecurityProtocol -bor 3072; iex ((New-Object System.Net.WebClient).DownloadString('https://community.chocolatey.org/install.ps1'))
3.1.2.2 CMake、pip3、wget 和 git

这些软件包提供了从命令行安装eProsima Fast DDS及其依赖项所需的工具。按照各自网站中详细说明的说明下载并安装CMakepip3wgetgit。安装后,将可执行文件的路径添加到PATH编辑 系统环境变量控制面板中。

wget使用

3.1.2.3 依赖项

在 Windows 环境中从源安装时, eProsima Fast RTPS具有以下依赖项:

3.1.2.4 Libp11 和 SoftHSM 库

Libp11 为 OpenSSL 提供 PKCS#11 支持。这是一个可选依赖项,仅当eprosima Fast DDS与安全性和 PKCS#11 URI 一起使用时才需要。

从此 存储库下载适用于 Windows 的最新libp11版本 并按照安装说明进行操作

SoftHSM 是 HSM(硬件安全模块)的软件实现。如果激活了eProsima Fast DDS测试并在系统上安装了 libp11,则还需要 SoftHSM 来运行 PKCS#11 功能的测试。

从此 存储库下载SoftHSM for Windows 安装程序。执行安装程序并按照安装说明进行操作。

OpenSSL 通过其引擎功能访问 HSM 和其他硬件设备。为了设置新引擎,必须更新 OpenSSL 配置文件,指定 libp11和硬件模块(此处为 SoftHSM)动态库位置。

Windows 上的 OpenSSL 通过OPENSSL_CONF 环境变量引用其默认配置文件。默认情况下,OpenSSL 安装两个相同的默认配置文件:

  • C:\Program Files\OpenSSL-Win64\bin\cnf\openssl.cnf模仿 Linux 发行版之一。
  • C:\Program Files\OpenSSL-Win64\bin\openssl.cfg为向后兼容而保留。

默认情况下,它们都没有加载。为了指示 OpenSSL 加载其中一个或任何其他,我们必须设置变量:

cmd> set OPENSSL_CONF=C:\Program Files\OpenSSL-Win64\bin\cnf\openssl.cnf
powershell> $Env:OPENSSL_CONF="C:\Program Files\OpenSSL-Win64\bin\cnf\openssl.cnf"

一旦我们提示 OpenSSL 使用配置文件,我们必须修改它以按照 OpenSSL 指南设置新的 PKCS#11 引擎 ,用正确的路径替换二进制文件路径。例如,在配置文件的任何部分之前我们引入:

openssl_conf = openssl_init

在文件的末尾,我们包含了引擎专用部分。注意使用 POSIX 路径分隔符而不是 windows 之一。

[openssl_init]
    engines = engine_section

[engine_section]
    pkcs11 = pkcs11_section

    [pkcs11_section]
    engine_id = pkcs11
    dynamic_path = C:/Program Files/libp11/src/pkcs11.dll
    MODULE_PATH = C:/Program Files (x86)/SoftHSM2/lib/softhsm2-x64.dll
    init = 0

可以使用 OpenSSL 命令行工具验证正确的设置:

openssl engine pkcs11 -t
3.1.2.5 cmake编译

从github下载源码:https://github.com/eProsima/Fast-DDS.git
三方库依赖下载,一般放在Fast-DDS\thirdparty目录下,没有的自行打源码下载:

在这里插入图片描述
下面是使用cmake的脚本,我用的是VS2019


set DDS_SDK=F:/fastDDS/Fast-DDS
set DDS_ROOT=%DDS_SDK%\include

mkdir build
cd /d build
cmake.exe -DCMAKE_BUILD_TYPE=Debug -DCMAKE_INSTALL_PREFIX=%DDS_SDK%/install -DCMAKE_PREFIX_PATH=%DDS_SDK%\cmake -G "Visual Studio 16 2019" -A x64 ..

编译过程中少什么三方库,自行下载编译。

  • 1
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

baibingql

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值