当前位置: 首页 > news >正文

DDS技术分享(一)

1.DDS简介
DDS定义:Data Distribution Service 数据分发服务,是新一代分布式实时通信中间件协议,采用发布/订阅体系架构,强调以数据为中心,DDS提供了Qos的策略可以确保通讯信号的监测功能。

在汽车领域,2018年Adaptive AUTOSAR引用了DDS,作为可选择的通信方式之一。
DDS是开源的库,但是其开源的库比较庞大,在汽车行业引入DDS需要进行配置和筛减以达到满足车载通讯的目的,因此这这个工具会在很多的行业进行了适配。所以会有供应商来适配DDS的产品,作为第二供应商提供DDS的平台通讯和搭建。

2.DDS是一个以数据为中心的中间件协议和API标准,数据通过Topic进行标识。发布和接收都是以这种主题消息发布的方式完成通讯的。
在这里插入图片描述
如图所示的方式通讯。
在代码层面,通常这样去设置:
pub.topic.topicKind = NO_KEY;
pub.topic.topicName = “Topic”;
pub.topic.topicDataType = “StructType”;
pub.topic.historyQos.kind = KEEP_LAST_HISTORY_QOS;
pub.topic.historyQos.depth = 30;
pub.topic.resourceLimitsQos.max_samples = 50;
pub.topic.resourceLimitsQos.allocated_samples = 20;
pub.qos.m_reliability.kind = RELIABLE_RELIABILITY_QOS;
pub.qos.m_durability.kind = TRANSIENT_LOCAL_DURABILITY_QOS;
解释一下:
topicName:就是所需要发布的话题名称
topicDataType:是这个话题所设置的话题数据结构,注意这个结构式在IDL文件中设置的。
关于IDL的设置,会在下一章节讲解,简单来说就是自动生成代码的设置文件,会自动生成所需代码,生成的代码是接口代码,开发人员可以使用这些接口文件调用进行代码实现。
historyQos:这是Qos通信设置,用来设置通信的状态等
m_reliability :用来设置Qos状态。
以上是发送端的代码。
sub.topic.topicKind = NO_KEY;
sub.topic.topicName = “Topic”;
sub.topic.topicDataType = “StructType”;
sub.topic.historyQos.kind = KEEP_LAST_HISTORY_QOS;
sub.topic.historyQos.depth = 30;
sub.topic.resourceLimitsQos.max_samples = 50;
sub.topic.resourceLimitsQos.allocated_samples = 20;
sub.qos.m_reliability.kind = RELIABLE_RELIABILITY_QOS;
sub.qos.m_durability.kind = TRANSIENT_LOCAL_DURABILITY_QOS;
以上是接收端的代码。

下一章讲解IDL。。。 。。。

相关文章:

  • std::ranges::ref_view,std::ranges::owning_view, std::ranges::views::all
  • 【TypeScript】ts在vue中的使用
  • 电脑显示屏亮度怎么调?电脑屏幕亮度调节步骤介绍
  • laravel11设置中文语言包
  • 技术架构和工程架构区别
  • 【论文解读】《C-Pack: Packed Resources For General Chinese Embeddings》
  • 深入探讨K8s资源管理和性能优化
  • 深入解析 Spring 中的 BeanDefinition 和 BeanDefinitionRegistry
  • 链表理论基础
  • Java并发编程面试题:并发工具类(10题)
  • [2/11]C#性能优化-不要使用空析构函数-每个细节都有示例代码
  • Windows和AD域提权枚举脚本及工具介绍
  • python-leetcode-乘积最大子数组
  • 【CI/CD】Jenkins + Docker +SpringCloud微服务项目持续集成
  • 项目总结nk
  • Android ObjectBox数据库使用与集成指南
  • Doris系列之基础使用
  • Magma:多模态 AI 智体的基础模型
  • DeepSeek 助力 Vue3 开发:打造丝滑的下拉选择框(Dropdown Select)
  • 数据结构——基于单链表创建通讯录
  • 泽连斯基:将带领乌代表团前往土耳其,已准备好与普京会谈
  • 马克思主义理论研究教学名师系列访谈|董雅华:让学生感知马克思主义理论存在于社会生活中
  • 中消协点名新能源汽车行业:定金退款争议频发
  • 复旦设立新文科发展基金,校友曹国伟、王长田联合捐赠1亿元
  • 巴基斯坦军方:印度袭击已致巴方31人死亡
  • 马上评|颜宁“简历打假”的启示