Fast DDS之Qos与Profiles

devtools/2024/9/25 3:23:52/

目录

  • XML profiles
    • 加载
    • 创建
    • 修改
    • 可配置内容
  • Qos
    • DeadlineQosPolicy
    • DestinationOrderQosPolicy
    • DurabilityQosPolicy
    • DurabilityServiceQosPolicy
    • EntityFactoryQosPolicy
    • GroupDataQosPolicy
    • HistoryQosPolicy
    • LatencyBudgetQosPolicy
    • LivelinessQosPolicy
    • OwnershipQosPolicy
    • OwnershipStrengthQosPolicy
    • PartitionQosPolicy
    • PresentationQosPolicy
    • ReaderDataLifecycleQosPolicy
    • ReliabilityQosPolicy
    • ResourceLimitsQosPolicy
    • TimeBasedFilterQosPolicy
    • TopicDataQosPolicy
    • TransportPriorityQosPolicy
    • UserDataQosPolicy
    • WriterDataLifecycleQosPolicy

Qos (Quality of Service)用于指定服务的行为,允许用户指定每个实体怎样表现或运行。通过XML文件(Profiles)来配置或者在代码中直接指定。

XML profiles

xml配置文件可以有多个。

加载

Fast DDS在初始化阶段自动加载XML:

  • 在当前可执行文件的路径下加载 DEFAULT_FASTRTPS_PROFILES.xml
  • 加载环境变量FASTRTPS_DEFAULT_PROFILES_FILE指定的xml
  • 加载配置参数指定的xml文件
  • 直接加载xml格式的字符串

创建

<?xml version="1.0" encoding="UTF-8" ?>
<dds xmlns="http://www.eprosima.com/XMLSchemas/fastRTPS_Profiles"><profiles><domainparticipant_factory profile_name="domainparticipant_factory_profile"><!-- ... --></domainparticipant_factory><participant profile_name="participant_profile"><!-- ... --></participant><data_writer profile_name="datawriter_profile"><!-- ... --></data_writer><data_reader profile_name="datareader_profile"><!-- ... --></data_reader><topic profile_name="topic_profile"><!-- ... --></topic><transport_descriptors><!-- ... --></transport_descriptors></profiles><library_settings><!-- ... --></library_settings><log><!-- ... --></log><types><!-- ... --></types>
</dds>
  1. <dds>, <profiles>, <library_settings>, <types>, and <log> 这些标签可以独立定义。
  2. <participant>, <data_reader>, <data_writer>, <topic>, and <transport_descriptors> 这些标签必须作为<profiles>的子元素

修改

if (ReturnCode_t::RETCODE_OK ==DomainParticipantFactory::get_instance()->load_XML_profiles_file("my_profiles.xml"))
{DomainParticipantQos participant_qos;DomainParticipantFactory::get_instance()->get_participant_qos_from_profile("participant_xml_profile",participant_qos);// Name obtained in another section of the codeparticipant_qos.name() = custom_name;// Modify number of preallocations (this overrides the one set in the XML profile)participant_qos.allocation().send_buffers.preallocated_number = 10;// Create participant using the modified XML QosDomainParticipant* participant =DomainParticipantFactory::get_instance()->create_participant(0, participant_qos);
}

可配置内容

  • DomainParticipantFactory profiles
  • DomainParticipant profiles
  • DataWriter profiles
  • DataReader profiles
  • Topic profiles
  • transport_descriptor
  • Intra-process delivery profiles
  • Log profiles
  • Dynamic Types profiles

Qos

每个Qos都有一个唯一的ID(定义在枚举QosPolicyId_t中),这个ID值用于一些Status中,以识别状态所引用的特定Qos策略。
Fast DDS中支持的Policies在这里

DeadlineQosPolicy

当新的数据样本的频率低于设定的阈值时,此QoS策略会发出警报。它对于预期定期更新数据的情况非常有用。

Data Member NameTypeDefault Value
periodDuration_tc_TimeInfinite

DestinationOrderQosPolicy

DurabilityQosPolicy

DurabilityServiceQosPolicy

EntityFactoryQosPolicy

GroupDataQosPolicy

HistoryQosPolicy

LatencyBudgetQosPolicy

LivelinessQosPolicy

OwnershipQosPolicy

OwnershipStrengthQosPolicy

PartitionQosPolicy

PresentationQosPolicy

ReaderDataLifecycleQosPolicy

ReliabilityQosPolicy

ResourceLimitsQosPolicy

TimeBasedFilterQosPolicy

TopicDataQosPolicy

TransportPriorityQosPolicy

UserDataQosPolicy

WriterDataLifecycleQosPolicy

eProsima扩展的Qos


http://www.ppmy.cn/devtools/11731.html

相关文章

初入单元测试

单元测试&#xff1a;针对最小的功能单元(方法)&#xff0c;编写测试代码对其进行正确性测试 Junit可以用来对方法进行测试&#xff0c;虽然是有第三方公司开发&#xff0c;但是很多开发工具已经集成了&#xff0c;如IDEA。 Junit 优点&#xff1a;可以灵活的编写测试代码&am…

IDM2024破解版 IDM软件破解注册序列号 idm教程 idm序列激活永久授权 Internet Download Manager网络下载加速神器

你是不是感觉下载东西资源的时候&#xff0c;下载的非常慢&#xff0c;即便是五十兆的光纤依旧慢、是不是想下载网页上的视频但不知如何进行下载……这些问题是否一直在困扰着您&#xff0c;今日小编特意我大家带来了这款IDM 2024破解版。 众所周知&#xff0c;IDM是一款功能强…

【调制】π/4-DQPSK信号模型及其相关特性分析 【附MATLAB代码】

MATLAB代码 % pi/4-DQPSK modulation %输入一串数&#xff0c;输出经过差分并映射的I、Q两路数据 ​ function [I,Q]pi4_dqpskmod(data) ​ nlength(data)./2; data1data.*2-1; ​ Idatazeros(1,n); Qdatazeros(1,n); ​ ​ Idatadata1(1,1:2:2*n); %串并变换 Qdatadata1(…

【算法竞赛题目 题解收集】二分图最大匹配

1. hdu1068 Girls and Boys 传送门&#xff1a;https://vjudge.net.cn/problem/HDU-1068 t a g s tags tags&#xff1a;二分图最大匹配、最大独立集 题解&#xff1a;https://blog.csdn.net/m0_73500785/article/details/138076101?spm1001.2014.3001.5501 2. hdu1150 Mach…

统一SQL 支持Oracle number/decimal/dec/numeric转换

统一SQL介绍 https://www.light-pg.com/docs/LTSQL/current/index.html 源和目标 源数据库&#xff1a;Oracle 目标数据库&#xff1a;Postgresql&#xff0c;TDSQL-MySQL&#xff0c;达梦8&#xff0c;LightDB-Oracle 操作目标 通过统一SQL&#xff0c;将Oracle中的numb…

[C++] 内存对齐完整解读

说明&#xff1a;内存对齐是指按照特定的规则来组织数据在内存中的排列方式&#xff0c;以提高内存访问的效率。在计算机系统中&#xff0c;内存对齐可以减少CPU访问内存时所需的总周期数&#xff0c;因为许多硬件平台只能从某些特定地址&#xff08;如2的幂次方&#xff09;开…

Android系统native进程之我是installd进程

用心坚持输出易读、有趣、有深度、体系化的技术文章 本文摘要 这是Android系统进程系列的第五篇文章&#xff0c;本文同样以自述的方式带您了解installd进程&#xff0c;通过本文您将了解到linstalld进程为啥存在&#xff1f;以及在安装/卸载apk中发挥了哪些作用。&#xff0…

Qotom低功耗赛扬J4125 X86工控迷你电脑主板

Qotom X86 Mini PC主板低功耗赛扬J4125处理器itx主板适用于网络安全、工业控制、物联网等 • Intel Celeron J4125 Gemini Lake 处理器工业 PC 主板 • 英特尔高清显卡 600 • 1 x 高清视频、1 x 显示端口、1 x VGA&#xff08;接头&#xff09; • 4 个 USB 3.0、2 个 USB 2.…