3.1.2.2.3. RTPSReliableReaderQos
RTPSReliableReaderQos 是用于配置多个可靠阅读器(DataReader)方面的 RTPS QoS(质量服务)策略。以下是此 QoS 策略的详细信息。
QoS Policy 数据成员列表:
数据成员名称 | 类型 |
---|---|
times | ReaderTimes |
disable_positive_acks | DisablePositiveACKsQosPolicy |
times: 定义了 RTPSReader 事件的持续时间。有关详细信息,请参阅 ReaderTimes。
disable_positive_acks: 配置禁用正向确认(ACK)的设置。有关详细信息,请参阅 DisablePositiveACKsQosPolicy。
注意
此 QoS 策略适用于 DataReader 实体。只有在启用实体上,DisablePositiveACKsQosPolicy 的持续时间数据成员和 times 数据成员可以被修改。
ReaderTimes
这个结构定义了与可靠阅读器事件相关的时间设置。有关更多信息,请参阅 ReaderTimes。
结构成员列表:
成员名称 | 类型 | 默认值 |
---|---|---|
initial_acknack_delay | Duration_t | 70 ms |
heartbeat_response_delay | Duration_t | 5 ms |
initial_acknack_delay: 定义初始 ACK/NACK 延迟的持续时间。
heartbeat_response_delay: 确定收到心跳消息时应用的延迟持续时间。
示例
// 此示例仅适用于 DataReader 实体
DataReaderQos reader_qos;
// RTPSReliableReaderQos 默认构造初始 ack/nack 延迟为 70 ms
// 将 initialAcknackDelay 修改为 70 纳秒
reader_qos.reliable_reader_qos().times.initial_acknack_delay = {0, 70};
// RTPSReliableReaderQos 默认构造心跳响应延迟为 5 ms
// 将 heartbeatResponseDelay 修改为 5 纳秒
reader_qos.reliable_reader_qos().times.heartbeat_response_delay = {0, 5};
// 您还可以更改 DisablePositiveACKsQosPolicy。有关详细信息,请参见 DisablePositiveACKsQosPolicy 部分。
reader_qos.reliable_reader_qos().disable_positive_acks.enabled = true;
// 在创建 DataReader 实体时使用修改后的 QoS 设置
reader_ = subscriber_->create_datareader(topic_, reader_qos);
总结
这段代码演示了如何使用 RTPSReliableReaderQos
来配置一个可靠的数据阅读器 (DataReader)。它主要做了以下几件事:
- 创建一个
DataReaderQos
对象来配置阅读器的 QoS 参数。 - 修改默认的初始 ACK/NACK 延迟和心跳响应延迟,从默认值(分别为 70 毫秒和 5 毫秒)更新为更小的值(例如,70 纳秒和5纳秒)。
- 启用了禁用正向确认的设置。
- 使用配置好的
reader_qos
创建新的数据阅读器实体。
通过这种方式,可以根据具体需求灵活调整数据通信中的时延和行为,以优化性能或满足特定要求。在实际应用中,这些参数会影响消息传递的可靠性、效率和系统整体表现,因此需要根据场景进行合理选择与调整。
内容由零声教学AI助手提供,问题来源于学员提问