ZBLOG

12.1. Non consolidated QoS The PropertyPolicyQos Options are used to develop new eProsima Extensions QoS. Before consolidating a new QoS Policy, it is usually set using this generic QoS Policy. Consequently, this section is prone to frequent upda...

这段文字讨论了 eProsima Fast DDS 中的非合并 QoS(服务质量)设置,特别是关于数据写入者(DataWriter)的操作模式。以下是主要内容的详细解释:

12.1 非合并 QoS

PropertyPolicyQos 选项

  • 用于开发新的 eProsima 扩展 QoS。在合并新 QoS 策略之前,通常会使用这种通用的 QoS 策略进行设置。
  • 由于这一部分会频繁更新,用户在升级到不同版本后建议检查最新的更改。

12.1.1 数据写入者操作模式 QoS 策略

默认推送模式

  • 默认情况下,Fast DDS 的 DataWriters 使用推送模式。这意味着它们将新的样本添加到队列中,并立即将其发送给匹配的读取者(DataReaders)。
  • 对于产生不定期数据突发的写入者,这可能导致网络流量过大,从而增加在不可靠传输(如 UDP)上丢包的可能性。

拉取模式替代方案

  • 配置 DataWriters 为拉取模式允许每个读取者自行调节其数据流。
  • 在这种模式下,写入者通知读取者可用的数据,并等待读取者请求能够处理的数据量。虽然延迟增大,但这种模型能提供更高的可靠性,同时使用更少的数据包。

心跳机制

  • DataWriters 定期通过心跳信号公告其队列状态。当 DataReaders 接收到心跳后,会请求 DataWriter 发送它们希望处理的样本。因此,可以通过调整心跳周期来调节发布速率。

配置示例

PropertyPolicyQos 设置

  • 属性名称: "fastdds.push_mode"
  • 值选择: "true""false"(默认值为 "true"

C++ 示例代码

DataWriterQos wqos;

// 启用拉取模式
wqos.properties().properties().emplace_back(
    "fastdds.push_mode",
    "false");

XML 配置示例

<?xml version="1.0" encoding="UTF-8" ?>
<profiles xmlns="http://www.eprosima.com">
<data_writer profile_name="pull_mode_datawriter_xml_profile">
    <propertiesPolicy>
        <properties>
            <!-- 启用拉取模式 -->
            <property>
                <name>fastdds.push_mode</name>
                <value>false</value>
            </property>
        </properties>
    </propertiesPolicy>
</data_writer>
</profiles>

注意事项

  1. 同一进程中的通信 (Intra-process delivery):

    • 始终使用推送模式。
  2. BEST_EFFORT_RELIABILITY_QOS 读者通信:

    • 始终使用推送模式。
  3. 不一致性警告:

    • 如果启用了拉取模式且将 ReliabilityQosPolicyKind 设置为 BEST_EFFORT_RELIABILITY_QOS 是不一致的。
    • 如果启用了拉取模式且将 heartbeat_period 设置为 c_TimeInfinite 是不一致的。

总结来说,这部分内容主要介绍了如何配置 Fast DDS 中 DataWriter 的工作模式,以及相关的一些注意事项和潜在的不一致问题,以确保数据传输效率和可靠性。


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

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

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

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

联系我们

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

微信号:3007537140

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

关注我们
x

注册

已经有帐号?