ZBLOG

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 side, the deadline defines the ...

以下是对您提供内容的详细解释,涉及到在 DDS(数据分发服务)中使用的 Deadline QoS 策略及其相关概念。

1. Deadline QoS Policy

  • 目的:Deadline QoS 策略用于监测新样本的发布频率,并在其低于特定阈值时触发警报。这对于需要定期更新数据的场景非常有用,例如实时数据流和状态更新。

2. 发布与订阅侧的定义

  • 发布侧

    • 在发布方,截止时间定义了应用程序预计提供新样本的最大时间间隔。
  • 订阅侧

    • 在订阅方,它定义了接收新样本应遵循的最大时间间隔。也就是说,订阅者期望在某个时间框架内接收到新的数据样本。

3. 针对带键主题的应用

  • 带键主题:对于具有键(keys)的主题,这个 QoS 策略按键进行应用。例如,如果要定期发布一些车辆的位置,可以将车辆 ID 设置为数据类型的键,并将 Deadline QoS 设置为所需的发布周期。

4. QoS 数据成员列表

数据成员名称 类型 默认值
period Duration_t c_TimeInfinite
  • 注意事项:该 QoS 策略适用于 Topic、DataReader 和 DataWriter 实体。它可以在启用实体上更改。

5. 兼容性规则

  • 匹配要求:为了确保 DataReaders 和 DataWriters 的 DeadlineQosPolicy 之间兼容,DataWriter 配置的提供截止时间周期必须小于或等于 DataReader 配置的请求截止时间周期。如果不满足这一条件,则这两个实体被视为不兼容。

  • TimeBasedFilterQosPolicy 的一致性:DeadlineQoSPolicy 必须与 TimeBasedFilterQosPolicy 一致,这意味着截止时间周期必须大于或等于最小间隔(minimum separation)。

示例代码

下面是一个 C++ 示例,演示如何设置 DeadlineQoSPolicy:

// 示例使用的是 DataWriter,但同样适用于 DataReader 和 Topic 实体
DataWriterQos writer_qos;

// 默认情况下,DeadlineQoSPolicy 使用无限周期构造
// 将周期更改为1秒
writer_qos.deadline().period.seconds = 1;
writer_qos.deadline().period.nanosec = 0;

// 使用修改后的 QoS 创建相应实体
writer_ = publisher_->create_datawriter(topic_, writer_qos);

总结:

通过合理地配置 DeadlineQoSPolicy,可以确保 DDS 系统在处理实时数据时能保持预期的数据更新频率。同时,开发人员需关注不同实体之间的兼容性,以保证系统正常运行并有效响应变化的数据需求。


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

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

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

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

联系我们

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

微信号:3007537140

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

关注我们
x

注册

已经有帐号?