ZBLOG

12.1.8. Type Propagation By default, Fast DDS leverages Remote Data Types Discovery both to discover remote types and to propagate local ones. Type propagation entails both adding meta-information to the EDP messages (see Discovery phases) and us...

12.1.8 类型传播

在Fast DDS中,默认情况下利用远程数据类型发现(Remote Data Types Discovery)来发现远程类型并传播本地类型。类型传播的过程涉及到向EDP消息(即发现阶段的消息)添加元信息,并使用一组专用的内置端点在网络中的不同DomainParticipants之间传输类型定义。

根据应用程序的设计和部署需求,可能希望更改默认的类型传播行为,以节省带宽或资源。因此,Fast DDS中的DomainParticipants可以配置一个名为 fastdds.type_propagation 的属性,用于控制如何传播类型信息。

属性及其值

PropertyPolicyQos 名称 描述 默认值
"fastdds.type_propagation" 控制如何传播类型信息,可以取以下几种值: "enabled"
"disabled":禁用类型传播。
"enabled":启用完整和最小化的类型信息注册与发送。
"minimal_bandwidth":仅发送最小化的信息以节省带宽。
"registration_only":只注册完整和最小化的信息,不发送。

不同属性值对本地 DomainParticipant 的影响

类型对象注册 在EDP上发送类型信息 在EDP上接收类型信息 类型查找服务回复
“disabled” NO NO IGNORED DISABLED
“enabled” COMPLETE and MINIMAL COMPLETE and MINIMAL PROCESSED ENABLED
“minimal_bandwidth” MINIMAL only MINIMAL only Only MINIMAL PROCESSED ENABLED
“registration_only” COMPLETE and MINIMAL COMPLETE and MINIMAL IGNORED DISABLED
  • disabled:禁止任何形式的类型传播,不会进行注册、发送或接收。
  • enabled:允许完整和最小化的消息进行注册和传输,同时处理收到的信息。
  • minimal_bandwidth:仅限于传输最小化的信息,适合需要节省带宽的场景。
  • registration_only:虽然允许完整和最小化消息进行注册,但不参与具体的数据传输。

示例代码

下面是如何在C++代码中设置 fastdds.type_propagation 属性为“enabled”的示例:

DomainParticipantQos pqos;

pqos.properties().properties().emplace_back(
    "fastdds.type_propagation",
    "enabled");

通过这段代码,您可以确保本地DomainParticipant能够完全参与到远程数据结构的发现和交换中,这对于需要频繁交互的数据模型非常重要。

总结

本节强调了在Fast DDS中控制数据结构的传播方式的重要性。通过合理配置 fastdds.type_propagation 属性,可以灵活应对不同应用场景下的带宽和资源需求,实现高效的数据通信。这种灵活性使得开发人员能够根据实际情况选择合适的数据传播策略,从而优化系统性能。


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

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

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

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

联系我们

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

微信号:3007537140

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

关注我们
x

注册

已经有帐号?