
DDS
文章平均质量分 91
Captain--Jack
这个作者很懒,什么都没留下…
展开
-
DDS介绍
DDS是一种网络中间件,可以简化网络编程;它实现了一个超越基本发布-订阅模式的机制,用于在节点之间发送和接收数据、事件和命令。产生信息的节点(发布者)创建“主题”(例如,温度、位置、压力)并发布“样本”。DDS 将样本交付给声明对该主题感兴趣的订阅者。主要好处是使用 DDS 进行通信的应用程序是分离的,很少需要花费设计时间来处理它们的相互交互。特别是,应用程序永远不需要有关其他参与应用程序的信息,包括它们的存在或位置(支持去中心化);DDS 透明地处理消息传递,无需用户应用程序的干预。原创 2023-04-12 10:49:21 · 5067 阅读 · 1 评论 -
Iceoryx请求/响应通信
除了设置队列的容量和定义是否应连接客户端以及创建时是否提供服务器外,还可以定义慢速客户端和服务器的行为。与客户端端口类似,服务器端口具有ServerPortData,该数据位于共享内存中,仅包含数据,但不包含访问它们的方法。ServerPortUser是提供用户访问方法的类,ServerPortRouDi提供RouDi所需的接口,以便在服务器提供服务后将客户端连接到服务器,并清理端口资源。根据客户端和服务器选项,请求可能会被丢弃,或者服务器可能有一个工作池,导致以与接收请求不同的顺序发送响应。原创 2024-09-18 15:56:30 · 947 阅读 · 0 评论 -
Eclipse iceoryx
Eclipse iceoryx是一种中间件,它使用零拷贝、共享内存的方法来优化进程间通信。翻译 2023-12-25 17:09:59 · 260 阅读 · 0 评论 -
Fast DDS 介绍
前面已经简要介绍过DDS协议规范了,接下来我们来看一个它的C++实现----Fast DDS。eProsima Fast-DDS是eprosima对于DDS的C++实现,这是一个免费开源软件,遵循Apache License 2.0。eProsima Fast DDS在性能,功能和对最新版本RTPS标准(RTPS 2.2)的遵守方面均处于领先地位。它最为被大家知道的可能是因为被ROS2设定为默认的消息中间件。Fast DDS由以下几部分组成:1.DDS API接口实现;原创 2023-04-12 14:38:31 · 2275 阅读 · 0 评论 -
fastDDS之Domain
一个domain代表了一个独立的通信平面。它在共享公共通信基础结构的实体之间创建了逻辑分离。从概念上讲,它可以被视为一个虚拟网络,将运行在同一个域中的所有应用程序连接起来,并将它们与运行在不同域中的应用程序隔离开来。通过这种方式,几个独立的分布式应用程序可以在同一个物理网络中共存,而不会相互干扰,甚至可以相互感知。每个域都有一个唯一的标识符,称为domainId,实现为uint32值。共享系统domainId的应用程序属于同一个域,相互之间能够进行通信。原创 2023-04-06 15:57:18 · 1367 阅读 · 0 评论 -
fastDDS之Publisher
发布定义了DataWriter和Publisher的关联。要开始发布数据实例的值,应用程序在Publisher中创建一个新的DataWriter。此DataWriter将绑定到描述正在传输的数据类型的Topic上。与此Topic匹配的远程订阅将能够从DataWriter接收数据值更新。原创 2023-04-06 19:18:34 · 997 阅读 · 0 评论 -
fastDDS之Subscriber
订阅由定义了DataReader与Subscriber的关联。为了接收发布的消息,应用程序需要再Subscriber创建一个新的DataReader。这个DataReader将被绑定到描述将要接收的数据类型的Topic上,然后就开始开始从与此Topic匹配的Publisher接收数据。当Subscriber接收到数据时,它通知应用程序有新数据可用。然后,应用程序通过DataReader来获取接收到的数据。原创 2023-04-09 15:30:06 · 1494 阅读 · 0 评论