ZBLOG

3.1.2.1.1. DeadlineQosPolicy This QoS policy raises an alarm when the frequency of new samples falls below a certain threshold. It is useful for cases where data is expected to be updated periodically (see DeadlineQosPolicy). On the publishing s...

3.1.2.1.1. DeadlineQosPolicy

DeadlineQosPolicy 是一种质量服务(QoS)策略,当新样本的发布频率低于某个阈值时,会触发警报。它特别适用于期望数据定期更新的场景。

功能描述

  • 在发布端,截止日期定义了应用程序应在多长时间内提供新的样本。
  • 在订阅端,截止日期定义了接收新样本的最大时间间隔。

对于具有键(key)的主题,此QoS按键应用。例如,如果某些车辆的位置需要定期发布,可以将车辆的ID作为数据类型的键,并将截止日期QoS设置为所需的发布周期。

QoS 策略的数据成员列表

数据成员名称 类型 默认值
period Duration_t c_TimeInfinite

注意事项

  • 此QoS策略适用于主题(Topic)、数据读取器(DataReader)和数据写入器(DataWriter)实体。
  • 它可以在启用的实体上进行更改。

警告

为了确保数据写入器和数据读取器之间的匹配,它们必须遵循兼容性规则。有关更多详细信息,请参见兼容性规则部分。

兼容性规则

为了保持 DataReaders 和 DataWriters 之间 DeadlineQosPolicy 的兼容性,所提供的截止日期周期(配置在 DataWriter 上)必须小于或等于请求的截止日期周期(配置在 DataReader 上)。否则,这些实体将被视为不兼容。

此外,DeadlineQosPolicy 必须与 TimeBasedFilterQosPolicy 一致,这意味着截止日期周期必须大于或等于最小分隔时间。

示例

以下是一个使用 C++ 的示例代码:

  1. // 这个示例使用 DataWriter,但也可以应用于 DataReader 和 Topic 实体
  2. DataWriterQos writer_qos;
  3. // 截止日期 QoS 默认构造时周期为无限
  4. // 将周期修改为 1 秒
  5. writer_qos.deadline().period.seconds = 1;
  6. writer_qos.deadline().period.nanosec = 0;
  7. // 在创建相应实体时使用修改后的 QoS 设置
  8. writer_ = publisher_->create_datawriter(topic_, writer_qos);

该示例展示了如何创建一个 DataWriter 并设置其 DeadlineQosPolicy 的周期为一秒。通过这种方式,系统将在超过一秒未接收到新样本时触发警报,从而确保数据流动符合预期频率。这种机制非常适合需要实时或准实时更新的数据场景,如传感器数据、车辆位置等。


内容由零声教学AI助手提供,问题来源于学员提问

本站部分文章来源于网络,版权归原作者所有,如有侵权请联系站长删除。
转载请注明出处:https://golang.0voice.com/?id=22450

分享:
扫描分享到社交APP
上一篇
下一篇
发表列表
游客 游客
此处应有掌声~
评论列表

还没有评论,快来说点什么吧~

联系我们

在线咨询: 点击这里给我发消息

微信号:3007537140

上班时间: 10:30-22:30

关注我们
x

注册

已经有帐号?