ZBLOG

# Flow control example The *eProsima Fast DDS flow control* example is a simple application intended to demonstrate the use of Flow Controllers. This example is part of the suite of examples designed by eProsima that aims to illustrate the featu...

Flow Control Example 说明

eProsima Fast DDS 的流控制示例是一个简单的应用程序,旨在演示流控制器的使用。该示例是由 eProsima 设计的一系列示例中的一部分,目的是通过 eProsima Fast DDS 展示 DDS 部署的特性和可能配置。

示例描述

在 eProsima Fast DDS 中,提供了一种机制来控制由 DataWriter 发送的数据流。流控制是通过称为流控制器的对象实现的。这些控制器在创建 DomainParticipant 时,通过 Flow Controller Descriptor 注册,然后在使用 Publish Mode Qos Policy 创建 DataWriter 时引用。

  • Flow Controller Descriptor 是一个简单的结构,唯一地定义了一个流控制器。它包括以下设置和配置:
    • 流控制器的名称。
    • 流控制器使用的调度策略。
    • 每个周期允许发送到网络的最大字节数。
    • 流控制器被允许发送最大字节数的时间周期(以毫秒为单位)。
    • 发件人线程的设置。

当使用流控制器时,DataWriter 可能需要与优先级和带宽相关的特定参数。有关更多信息,请参考 Flow Controller Settings

  • 属性 fastdds.sfc.priority 用于设置 DataWriter 的优先级,用于 HIGH_PRIORITYPRIORITY_WITH_RESERVATION 流控制器。允许值从 -10(最高优先级)到 10(最低优先级),默认值为最低优先级。
  • 属性 fastdds.sfc.bandwidth_reservation 用于设置 DataWriter 为 PRIORITY_WITH_RESERVATION 流控制器请求的带宽百分比。允许值范围从 0 到 100,以总流控限额的一定比例表示。默认情况下,没有为 DataWriter 保留带宽。

一旦实例化,一个流控制器将确保对其处理的数据施加限制,以便在指定时间内不会超过指定大小。

在此示例中,Fast DataWriter 没有流控制器,而 Slow DataWriter 有一个流控制器限制每个周期可以发送的最大字节数,以及允许发送数据所需的时间周期。

关于 DataWriter 类型的信息,无论是快速还是缓慢,都通过发现阶段中的用户数据字段进行通信。这些用户数据嵌入在发现协议中,使网络中的其他参与者能够共享信息,而无需直接通信或配置。有關更多信息,请参阅 UserDataQosPolicy

如何运行示例

通常,在这个部分会介绍如何构建和运行这个示例,包括所需依赖项、编译步骤和运行命令等。不过具体内容没有提供,需要查阅完整文档或项目说明获取详细指引。

总结

这个示例展示了如何利用 eProsima Fast DDS 的流控功能,可以用来管理实时应用中的数据传输效率,对高效的数据传输至关重要。在多线程或分布式系统中,这样的方法有助于避免数据过载,并保持系统稳定性。如果你需要更深入的信息或者具体代码片段,可以查看官方文档或相关资源。


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

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

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

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

联系我们

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

微信号:3007537140

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

关注我们
x

注册

已经有帐号?