这段文字详细描述了 DDS(数据分发服务)中 DataWriterQos
的构成和其内部的 QoS(服务质量)策略对象。以下是对这些内容的详细解析:
DataWriterQos 概述
DataWriterQos
控制着 DataWriter
的行为,它包含多个 QoS 策略对象,每个对象都通过访问器(Accessor)和修改器(Mutator)来获取或设置。
QoS 策略列表
QosPolicy 类 | 访问/修改函数 | 可变性 |
---|---|---|
DurabilityQosPolicy | durability() | 否 |
DurabilityServiceQosPolicy | durability_service() | 否 |
DeadlineQosPolicy | deadline() | 是 |
LatencyBudgetQosPolicy | latency_budget() | 是 |
LivelinessQosPolicy | liveliness() | 否 |
ReliabilityQosPolicy | reliability() | 否 (*) |
DestinationOrderQosPolicy | destination_order() | 否 |
HistoryQosPolicy | history() | 否 |
ResourceLimitsQosPolicy | resource_limits() | 否 |
TransportPriorityQosPolicy | transport_priority() | 是 |
LifespanQosPolicy | lifespan() | 是 |
UserDataQosPolicy | user_data() | 是 |
OwnershipQosPolicy | ownership() | 否 |
OwnershipStrengthQosPolicy | ownership_strength() | 是 |
WriterDataLifecycleQosPolicy | writer_data_lifecycle() | 是 |
PublishModeQosPolicy | publish_mode() | 否 |
DataRepresentationQosPolicy | representation() | 否 |
PropertyPolicyQoS | properties() | 否 |
RTPSReliableWriterQos | reliable_writer_qos() | 是 (*) |
RTPSEndpointQos | endpoint() | 否 |
| WriterResourceLimitsQoS | writer_resource_limits() | 否 │ | DataSharingQoS政策 | data_sharing() |否 |
策略的详细描述
Durability 和 Reliability:
- 指定数据持久性和可靠性特征,确保在不同的通信环境中能够有效传递信息。
Deadline 和 Latency Budget:
- 提供关于数据更新频率和延迟预算的信息,以满足实时应用需求。
Liveliness:
- 定义
DataWriter
的存活状态,用于确认是否仍然处于活动状态。
- 定义
Transport Priority 和 Ownership:
- 确保重要的数据可以被优先处理,同时也管理谁拥有对特定数据的发布权。
History 和 Resource Limits:
- 控制历史数据保留以及资源使用限制,以优化系统性能并防止资源耗尽。
User Data 和 Lifespan:
- 可以携带附加用户数据,并指定发布消息的有效期。
Property Policies 和 RTPS Settings:
- 管理与平台相关的一些属性,比如推送模式等,以支持不同的数据交互策略。
非合并属性指派的 QoS
- 一些额外属性如
fastdds.push_mode
(用于定义DataWriter
操作模式)以及partitions
(用于定义终端分区),这些在具体实现时需要特别关注,以便正确配置数据流向和隔离策略。
总结
理解这些 QoS 策略及其相应的功能,对于开发高效且可靠的数据发布与订阅系统至关重要。适当配置这些参数可以提高 DDS 系统在不同应用场景下的灵活性与响应能力。在实际开发中,建议参考每个 QoS 策略类的详细说明以获取更多用法及默认值信息。
内容由零声教学AI助手提供,问题来源于学员提问