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

fastdds:默认qos入门

3.1.2. Policy - 3.3.0

fastdds中qos策略多,使用复杂,可以以默认qos为切入点进行梳理。

(1)fastdds支持的qos分类

①dds标准qos,这类qos是OMG组织定义的dds qos标准,理论上每一个dds实现,都要优先实现这部分的qos。

②fastdds扩展,这部分是fastdds特有的qos,这部分qos应用于rtps。

(2)qos策略适用对象

Publisher、Subscriber、DataWriter、DataReader、Topic均可以应用qos策略,不同的qos策略的使用范围是不一样的:DeadelineQosPolicy适用于Topic、DataWriter、DataReader;TopicDataQosPolicy仅适用于Topic;TransportPriorityQosPolicy适用于Topic和DataWriter;GroupDataQosPolicy适用于Publisher和Subscriber。

具体每种策略的适用范围,可以看官方文档的描述,也可以看fastdds源码,以TopicQos为例,源码中唵TopicQos类来管理,其中的汽油成员如下,说明这些qos策略适用于qos。

class TopicQos
{
private://!Topic Data Qos, NOT implemented in the library.TopicDataQosPolicy topic_data_;//!Durability Qos, implemented in the library.DurabilityQosPolicy durability_;//!Durability Service Qos, NOT implemented in the library.DurabilityServiceQosPolicy durability_service_;//!Deadline Qos, implemented in the library.DeadlineQosPolicy deadline_;//!Latency Budget Qos, NOT implemented in the library.LatencyBudgetQosPolicy latency_budget_;//!Liveliness Qos, implemented in the library.LivelinessQosPolicy liveliness_;//!Reliability Qos, implemented in the library.ReliabilityQosPolicy reliability_;//!Destination Order Qos, NOT implemented in the library.DestinationOrderQosPolicy destination_order_;//!History Qos, implemented in the library.HistoryQosPolicy history_;//!Resource Limits Qos, implemented in the library.ResourceLimitsQosPolicy resource_limits_;//!Transport Priority Qos, NOT implemented in the library.TransportPriorityQosPolicy transport_priority_;//!Lifespan Qos, implemented in the library.LifespanQosPolicy lifespan_;//!Ownership Qos, NOT implemented in the library.OwnershipQosPolicy ownership_;//!Data Representation Qos, (XTypes extension).DataRepresentationQosPolicy representation_;
};

(3)qos策略需要匹配,通信的双方才能通信

通信双方想要通信,qos策略需要匹配才可以,qos策略匹配并不要求双方的qos策略配置完全一致。具体匹配情况需要看个qos策略的介绍。

(4)不同的qos策略不是排他的

多个qos可以同时作用于一个对象,这个时候要注意不同策略的协同,并不是任意的组合都能生效。

TopicQos默认值

默认构造函数中特地对ReliabilityQosPolicy和DurabilityQosPolicy进行了修改。说明对这两个qos策略,不使用默认值,ReliabilityQosPolicy的默认类型是尽力而为,这里改成了可靠。尽力而为类似于网络传输层的udp,可靠网络类似于tcp;DurabilityQosPolicy的默认kind是VOLATILE_DURABILITY_QOS,改为了TRANSIENT_LOCAL_DURABILITY_QOS,则数据会保存在内存中,新上线的DataReader可以读取上线前的数据。那么DataWriter会一直保存吗,内存限制时多少?

DataWriterQos的默认值与TopicQos是一致的,可靠的、保留历史数据的。

DataWriterQos::DataWriterQos()
{reliability_.kind = RELIABLE_RELIABILITY_QOS;durability_.kind = TRANSIENT_LOCAL_DURABILITY_QOS;
}

DataReader、Publihser、SubScriber的默认qos没有做修改,即每种策略均是使用的默认值。

http://www.dtcms.com/a/294031.html

相关文章:

  • LeetCode|Day23|326. 3 的幂|Python刷题笔记
  • 牛客刷题 -- 二叉树遍历
  • 百度大涨,AIGC视频生成模型蒸汽机将会给百度带来什么?
  • 【Windows命令手册】Windows中的常用命令,并与 Linux 做比较
  • BiLLM:突破大语言模型后训练量化的极限
  • Linux Debian操作系统、Deepin深度操作系统手动分区方案参考
  • 利用红黑树封装实现map,set
  • Keil MDK5 介绍与安装教程
  • Python Day22 - 复习日
  • 【bug】Jetson Orin NX apt更换国内源
  • #Linux权限管理:从“Permission denied“到系统安全大师
  • 如何使用 minio 完成OceanBase社区版的归档和备份
  • [Bug | Cursor] import error: No module named ‘data‘
  • SpringCloud sentinel服务熔断 服务降级
  • 一个没有手动加分号引发的bug
  • python---元组(Tuple)
  • C#简介(从入门到精通)
  • 判断矩形能否放入多边形内——cad c# 二次开发实现
  • 【服务器】 MCTP Over PCIe 的内容、用途、工作原理及硬件设计注意事项
  • 数据结构(2)顺序表算法题
  • C#使用socket报错 System.Net.Sockets.SocketException:“在其上下文中,该请求的地址无效。
  • .net平台的跨平台桌面应用开发的技术方案总结对比
  • 【黑马SpringCloud微服务开发与实战】(六)分布式事务
  • Matlab学习笔记:逻辑基础
  • PyTorch武侠演义 第一卷:初入江湖 第6章:驿站的秘密信鸽
  • Apache JMeter 使用记录踩坑
  • 前端模块化:CommonJS 与 ES Module
  • 性能测试-jmeter实战5
  • 4️⃣字典(dict)速查表
  • I2C控制器