| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> 系统运维 -> FastDDs学习 -> 正文阅读 |
|
[系统运维]FastDDs学习 |
这次所有的例程都是在Linux ubantu 20.04.1上实现的 什么是DDs是一个以数据为中心的发布订阅 (DCPS) 模型,因此在其实现中定义了三个关键的应用实体:发布实体,它定义了信息生成对象及其属性;订阅实体,定义信息消费对象及其属性;以及定义作为主题传输的信息类型的配置实体,并使用其服务质量 (QoS) 属性创建发布者和订阅者,确保上述实体的正确性能。 实时发布订阅:RTPS 发展到支持DDS的应用,是一种出版物订阅通信中间件在尽力而为的 RTPSWriter:能够发送数据的端点 RTPSReader:端点能够接收数据 一个 RTPSParticipant 可以有任意数量的写入器和读取器端点 HelloWorld例程首先需要安装一些工具 ,在官网上也有一些描述 一 、安装依赖 Asio 是一个用于网络和低级 I/O 编程的跨平台 C++ 库,它提供了一致的异步模型。TinyXML2 是一个简单、小巧且高效的 C++ XML 解析器。使用相应 Linux 发行版的包管理器安装这些库。例如,在 Ubuntu 上使用命令:
OpenSSL 是用于 TLS 和 SSL 协议的强大工具包和通用加密库。使用相应 Linux 发行版的包管理器安装OpenSSL。例如,在 Ubuntu 上使用命令:
colcon是一个基于CMake的命令行工具,旨在构建软件包集。本节说明如何使用它来编译eProsima Fast DDS及其依赖项 通过执行以下命令安装 ROS 2 开发工具(colcon和vcstool):
如果这由于环境错误而失败,请将该–user标志添加到pip3安装命令中。 创建一个Fast-DDS目录并下载将用于安装eProsima Fast DDS及其依赖项的 repos 文件 :
构建包
二、编译安装 Foonathan memory ,提供了经过优化的分配器
三、编译安装 Fast CDR 提供了两种序列化机制
接着就是安装编译 Fast-DDS和 Fast-DDS-gen HelloWorld 例程实现DDS 是一个以数据为中心的通信中间件,它实现了 DCPS 模型。该模型基于发布者的开发,数据生成元素;和一个订阅者,一个数据消费元素。这些实体通过主题进行通信,主题是绑定两个 DDS 实体的元素。发布者在一个主题下生成信息,订阅者订阅同一主题以接收信息。 首先需要按照官网 安装好所有的依赖包 创建应用程序工作区在项目结束时,应用程序工作区将具有以下结构。Filesbuild/DDSHelloWorldPublisher和build/DDSHelloWorldSubscriber分别是发布者应用程序和订阅者应用程序。 我们先创建目录
再要看看Fast DDS 和 Fast CDR的头文件分别位于目录/usr/include/fastrtps/和 /usr/include/fastcdr/中。两者的编译库都可以在目录/usr/lib/ 中找到。 一、配置CMake项目
在每个部分中,我们将完成此文件以包含特定生成的文件 二、构建主题数据 为您的自定义主题生成 C++ 定义。 生成使用您的主题数据的功能示例。 本教程将遵循前者。要查看后者的应用示例,您可以查看其他示例。有关更多详细信息,请参阅简介。对于这个项目,我们将使用 Fast DDS-Gen 应用程序来定义将由发布者发送并由订阅者接收的消息的数据类型。 在工作空间目录中,执行以下命令:
这将在src目录中创建 HelloWorld.idl 文件。在您喜欢的文本编辑器中打开该文件,然后复制并粘贴以下代码片段。
通过这样做,我们已经定义了HelloWorld数据类型,它具有两个元件:一个索引类型的uint32_t 和消息类型的std::string。剩下的就是生成在 C++11 中实现此数据类型的源代码。为此,请从src目录运行以下命令。
如果找不到 fastddsgen 在哪个位置,可以用命令
进行查找 一般在 fastrtpsgen/scripts/fastddsgen
三、发布者代码 从工作区的src目录中,运行以下命令以下载 HelloWorldPublisher.cpp 文件
此时,您可以构建、编译和运行发布者应用程序。从工作区的构建目录中,运行以下命令
四、订阅者代码
遵循与发布者解释相同的结构,我们从 C++ 头文件的包含开始。在这些文件中,包含发布者类的文件被订阅者类替换,数据写入者类被数据读取者类替换
此时,您可以构建、编译和运行订阅者应用程序。从工作区的构建目录中,运行以下命令。
最后,从构建目录,从两个终端运行发布者和订阅者应用程序。
|
|
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年12日历 | -2024/12/30 1:52:44- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |